From 6a9b2a45d3c60d40d427c8d6517264fa6671bc80 Mon Sep 17 00:00:00 2001 From: Ridem Date: Mon, 3 May 2021 09:37:38 +0200 Subject: [PATCH 01/45] fix(gatsby-plugin-netlify-cms): Fix typo in semver (#31177) --- packages/gatsby-plugin-netlify-cms/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/gatsby-plugin-netlify-cms/package.json b/packages/gatsby-plugin-netlify-cms/package.json index 894ca6d4b0f26..362a42e083b33 100644 --- a/packages/gatsby-plugin-netlify-cms/package.json +++ b/packages/gatsby-plugin-netlify-cms/package.json @@ -14,7 +14,7 @@ "lodash": "^4.17.21", "mini-css-extract-plugin": "1.5.1", "netlify-identity-widget": "^1.9.1", - "webpack": "^5.23.00" + "webpack": "^5.23.0" }, "devDependencies": { "@babel/cli": "^7.12.17", diff --git a/yarn.lock b/yarn.lock index ba96ae017bab4..4df9052ad6201 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28096,7 +28096,7 @@ webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5.23.00: +webpack@^5.23.0: version "5.23.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.23.0.tgz#9ed57e9a54b267b3549899271ad780cddc6ee316" integrity sha512-RC6dwDuRxiU75F8XC4H08NtzUrMfufw5LDnO8dTtaKU2+fszEdySCgZhNwSBBn516iNaJbQI7T7OPHIgCwcJmg== From 9bf5f185f80ec4385997c030f1749c63fcd4f498 Mon Sep 17 00:00:00 2001 From: benomatis Date: Mon, 3 May 2021 10:11:12 +0200 Subject: [PATCH 02/45] chore(docs): GATSBY_ACTIVE_ENV is undefined by default (#31136) Co-authored-by: Lennart --- docs/docs/how-to/local-development/environment-variables.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/docs/how-to/local-development/environment-variables.md b/docs/docs/how-to/local-development/environment-variables.md index 8644578f04861..9c1e703d218c7 100644 --- a/docs/docs/how-to/local-development/environment-variables.md +++ b/docs/docs/how-to/local-development/environment-variables.md @@ -200,3 +200,5 @@ Local testing of the `staging` environment can be done with: ```shell GATSBY_ACTIVE_ENV=staging npm run develop ``` + +**Note:** The `GATSBY_ACTIVE_ENV` will not be set automatically. You have to explicitly set the environment variable (e.g. by adding it to the `gatsby` command or setting it inside your terminal and/or CI provider). If not set it'll be `undefined`. From 313f432facd9b71fd9aebfff92e77561efd86e52 Mon Sep 17 00:00:00 2001 From: Elisha Hollander Date: Mon, 3 May 2021 11:16:21 +0300 Subject: [PATCH 03/45] chore: Fix grammar error in README (#31186) Co-authored-by: Lennart --- README.md | 2 +- packages/gatsby/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3f27008979074..bed5c1fe77bd7 100644 --- a/README.md +++ b/README.md @@ -175,6 +175,6 @@ Licensed under the [MIT License](./LICENSE). ## 💜 Thanks -Thanks goes out to all our many contributors creating plugins, starters, videos, and blog posts. And a special appreciation for our community members helping with issues and PRs, or answering questions on Discord and GitHub Discussions. +Thanks go out to all our many contributors creating plugins, starters, videos, and blog posts. And a special appreciation for our community members helping with issues and PRs, or answering questions on Discord and GitHub Discussions. A big part of what makes Gatsby great is each and every one of you in the community. Your contributions enrich the Gatsby experience and make it better every day. diff --git a/packages/gatsby/README.md b/packages/gatsby/README.md index 5e02a17cae1cf..685a9777027a7 100644 --- a/packages/gatsby/README.md +++ b/packages/gatsby/README.md @@ -174,6 +174,6 @@ Licensed under the [MIT License](./LICENSE). ## 💜 Thanks -Thanks goes out to all our many contributors creating plugins, starters, videos, and blog posts. And a special appreciation for our community members helping with issues and PRs, or answering questions on Discord and GitHub Discussions. +Thanks go out to all our many contributors creating plugins, starters, videos, and blog posts. And a special appreciation for our community members helping with issues and PRs, or answering questions on Discord and GitHub Discussions. A big part of what makes Gatsby great is each and every one of you in the community. Your contributions enrich the Gatsby experience and make it better every day. From 4b9d0d4d4757d006ec385bb80f1db415a9636f63 Mon Sep 17 00:00:00 2001 From: Junaid Ilyas Date: Mon, 3 May 2021 09:47:35 +0100 Subject: [PATCH 04/45] fix(gatsby): add generic type to GatsbyFunctionResponse (#31182) Co-authored-by: gatsbybot --- packages/gatsby/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gatsby/index.d.ts b/packages/gatsby/index.d.ts index c2f1176fe125d..0bf5ad6530db9 100644 --- a/packages/gatsby/index.d.ts +++ b/packages/gatsby/index.d.ts @@ -1531,7 +1531,7 @@ type Send = (body: T) => void /** * Gatsby Function route response */ -export interface GatsbyFunctionResponse extends ServerResponse { +export interface GatsbyFunctionResponse extends ServerResponse { /** * Send `any` data in response */ From f4c1130f7ee93a07dc74c78eaa282b40c424a8ee Mon Sep 17 00:00:00 2001 From: Morrison Cole Date: Mon, 3 May 2021 18:45:01 +0900 Subject: [PATCH 05/45] fix(gatsby-plugin-image): add @babel/core peer dependency (#31188) --- packages/gatsby-plugin-image/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/gatsby-plugin-image/package.json b/packages/gatsby-plugin-image/package.json index eb0b83b03fcf8..58a611a8c0fe2 100644 --- a/packages/gatsby-plugin-image/package.json +++ b/packages/gatsby-plugin-image/package.json @@ -64,6 +64,7 @@ "typescript": "^4.1.5" }, "peerDependencies": { + "@babel/core": "^7.12.3", "gatsby": "^3.0.0-next.0", "gatsby-plugin-sharp": "^3.0.0-next.0", "gatsby-source-filesystem": "^3.0.0-next.0", From 257de93a6e1caf46cbad4172ef342e928aa4b97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benedikt=20R=C3=B6tsch?= Date: Mon, 3 May 2021 15:00:02 +0200 Subject: [PATCH 06/45] fix(gatsby): upgrade css-minimizer-webpack-plugin to v2 (#31176) --- packages/gatsby/package.json | 2 +- yarn.lock | 536 +++++++++++++++++++++++++++-------- 2 files changed, 424 insertions(+), 114 deletions(-) diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index f8ecd379d8f2c..045507e40a248 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -51,7 +51,7 @@ "core-js": "^3.9.0", "cors": "^2.8.5", "css-loader": "^5.0.1", - "css-minimizer-webpack-plugin": "^1.3.0", + "css-minimizer-webpack-plugin": "^2.0.0", "css.escape": "^1.5.1", "date-fns": "^2.14.0", "debug": "^3.2.7", diff --git a/yarn.lock b/yarn.lock index 4df9052ad6201..37b8922beee49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3476,14 +3476,6 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@npmcli/move-file@^1.0.1": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" - integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== - dependencies: - mkdirp "^1.0.4" - rimraf "^2.7.1" - "@octokit/auth-token@^2.4.0": version "2.4.2" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" @@ -4198,6 +4190,11 @@ resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3" integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w== +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + "@turist/fetch@^7.1.7": version "7.1.7" resolved "https://registry.yarnpkg.com/@turist/fetch/-/fetch-7.1.7.tgz#a2b1f7ec0265e6fe0946c51eef34bad9b9efc865" @@ -5742,7 +5739,7 @@ algoliasearch@^4.8.4: "@algolia/requester-node-http" "4.8.4" "@algolia/transporter" "4.8.4" -alphanum-sort@^1.0.0: +alphanum-sort@^1.0.0, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -7285,6 +7282,17 @@ browserslist@^4.0.0, browserslist@^4.12.2, browserslist@^4.13.0, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.70" +browserslist@^4.16.0: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -7469,29 +7477,6 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -7708,6 +7693,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001197.tgz#47ad15b977d2f32b3ec2fe2b087e0c50443771db" integrity sha512-8aE+sqBqtXz4G8g35Eg/XEaFr2N7rd/VQ6eABGBmNtcB8cN6qNJhMi6oSFy4UWWZgqgL3filHT8Nha4meu3tsw== +caniuse-lite@^1.0.30001219: + version "1.0.30001219" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz#5bfa5d0519f41f993618bd318f606a4c4c16156b" + integrity sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ== + capitalize@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/capitalize/-/capitalize-2.0.3.tgz#ccfeb1046d2a054eb30f34af907a70c3e90f3b73" @@ -7946,11 +7936,6 @@ chownr@^1.1.1, chownr@^1.1.2: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -8274,7 +8259,7 @@ color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" -color@^3.0.0, color@^3.1.3: +color@^3.0.0, color@^3.1.1, color@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== @@ -8344,6 +8329,11 @@ commander@^6.0.0, commander@^6.1.0, commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@~2.14.1: version "2.14.1" resolved "http://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" @@ -9164,6 +9154,18 @@ css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.0.tgz#eb21f75860078627e9e3cc6f5535ccfcea445817" + integrity sha512-S0TE4E0ha5+tBHdLWPc5n+S8E4dFBS5xScPvgHkLNZwWvX4ISoFGhGeerLC9uS1cKA/sC+K2wHq6qEbcagT/fg== + dependencies: + timsort "^0.3.0" + css-declaration-sorter@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" @@ -9235,20 +9237,18 @@ css-loader@^5.0.1: schema-utils "^3.0.0" semver "^7.3.2" -css-minimizer-webpack-plugin@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-1.3.0.tgz#d867b4a54ca9920125b30263505e8cca72bc8cf1" - integrity sha512-jFa0Siplmfef4ndKglpVaduY47oHQwioAOEGK0f0vAX0s+vc+SmP6cCMoc+8Adau5600RnOEld5VVdC8CQau7w== +css-minimizer-webpack-plugin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz#3c42f6624ed4cf4780dd963e23ee649e5a25c1a8" + integrity sha512-cG/uc94727tx5pBNtb1Sd7gvUPzwmcQi1lkpfqTpdkuNq75hJCw7bIVsCNijLm4dhDcr1atvuysl2rZqOG8Txw== dependencies: - cacache "^15.0.5" - cssnano "^4.1.10" - find-cache-dir "^3.3.1" + cssnano "^5.0.0" jest-worker "^26.3.0" p-limit "^3.0.2" + postcss "^8.2.9" schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - webpack-sources "^1.4.3" css-modules-loader-core@^1.1.0: version "1.1.0" @@ -9290,6 +9290,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.1" +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-selector-parser@^1.0.0, css-selector-parser@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" @@ -9311,6 +9322,14 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" @@ -9319,6 +9338,11 @@ css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -9397,6 +9421,41 @@ cssnano-preset-default@^4.0.7: postcss-svgo "^4.0.2" postcss-unique-selectors "^4.0.1" +cssnano-preset-default@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.0.1.tgz#76adc00f7aae36ae80552b8356e21bec4b233ca2" + integrity sha512-cfmfThYODGqhpQKDq9H0MTAqkMvZ3dGbOUTBKw0xWZiIycMqHid22LsJXJl4r1qX4qzDeKxcSyQ/Xb5Mu3Z//Q== + dependencies: + css-declaration-sorter "6.0.0" + cssnano-utils "^2.0.0" + postcss-calc "^8.0.0" + postcss-colormin "^5.0.0" + postcss-convert-values "^5.0.0" + postcss-discard-comments "^5.0.0" + postcss-discard-duplicates "^5.0.0" + postcss-discard-empty "^5.0.0" + postcss-discard-overridden "^5.0.0" + postcss-merge-longhand "^5.0.1" + postcss-merge-rules "^5.0.0" + postcss-minify-font-values "^5.0.0" + postcss-minify-gradients "^5.0.0" + postcss-minify-params "^5.0.0" + postcss-minify-selectors "^5.0.0" + postcss-normalize-charset "^5.0.0" + postcss-normalize-display-values "^5.0.0" + postcss-normalize-positions "^5.0.0" + postcss-normalize-repeat-style "^5.0.0" + postcss-normalize-string "^5.0.0" + postcss-normalize-timing-functions "^5.0.0" + postcss-normalize-unicode "^5.0.0" + postcss-normalize-url "^5.0.0" + postcss-normalize-whitespace "^5.0.0" + postcss-ordered-values "^5.0.0" + postcss-reduce-initial "^5.0.0" + postcss-reduce-transforms "^5.0.0" + postcss-svgo "^5.0.0" + postcss-unique-selectors "^5.0.0" + cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" @@ -9416,6 +9475,11 @@ cssnano-util-same-parent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz#d2a3de1039aa98bc4ec25001fa050330c2a16dac" +cssnano-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.0.tgz#b04baaa312aa3dd5a854b7f61d76b9d94be07f74" + integrity sha512-xvxmTszdrvSyTACdPe8VU5J6p4sm3egpgw54dILvNqt5eBUv6TFjACLhSxtRuEsxYrgy8uDy269YjScO5aKbGA== + cssnano@^4.1.10: version "4.1.10" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" @@ -9426,6 +9490,15 @@ cssnano@^4.1.10: is-resolvable "^1.0.0" postcss "^7.0.0" +cssnano@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.2.tgz#3f6de4fd5ecb7b5fb636c1a606de5f38cd241493" + integrity sha512-8JK3EnPsjQsULme9/e5M2hF564f/480hwsdcHvQ7ZtAIMfQ1O3SCfs+b8Mjf5KJxhYApyRshR2QSovEJi2K72Q== + dependencies: + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.0.1" + is-resolvable "^1.1.0" + csso@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" @@ -9433,6 +9506,13 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.37" +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + csso@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" @@ -10323,6 +10403,15 @@ dom-serializer@0, dom-serializer@^0.2.1: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + dom-serializer@~0.1.0, dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -10355,6 +10444,11 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -10387,6 +10481,13 @@ domhandler@^3.0, domhandler@^3.0.0: dependencies: domelementtype "^2.0.1" +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + dompurify@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.7.tgz#a5f055a2a471638680e779bd08fc334962d11fd8" @@ -10426,6 +10527,15 @@ domutils@^2.0.0: domelementtype "^2.0.1" domhandler "^3.0.0" +domutils@^2.4.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" + integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" @@ -10567,6 +10677,11 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.672.tgz#3a6e335016dab4bc584d5292adc4f98f54541f6a" integrity sha512-gFQe7HBb0lbOMqK2GAS5/1F+B0IMdYiAgB9OT/w1F4M7lgJK2aNOMNOM622aEax+nS1cTMytkiT0uMOkbtFmHw== +electron-to-chromium@^1.3.723: + version "1.3.725" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.725.tgz#04fc83f9189169aff50f0a00c6b4090b910cba85" + integrity sha512-2BbeAESz7kc6KBzs7WVrMc1BY5waUphk4D4DX5dSQXJhsc3tP5ZFaiyuL0AB7vUKzDYpIeYwTYlEfxyjsGUrhw== + elliptic@^6.0.0: version "6.5.3" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" @@ -12438,13 +12553,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" @@ -14714,7 +14822,7 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-color-stop@^1.0.0: +is-color-stop@^1.0.0, is-color-stop@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" dependencies: @@ -15119,7 +15227,7 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" -is-resolvable@^1.0.0: +is-resolvable@^1.0.0, is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -18194,6 +18302,11 @@ mdast-util-toc@^5.1.0: unist-util-is "^4.0.0" unist-util-visit "^2.0.0" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -18671,27 +18784,6 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - minipass@^2.2.1, minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" @@ -18699,27 +18791,12 @@ minipass@^2.2.1, minipass@^2.3.5: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - minizlib@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" dependencies: minipass "^2.2.1" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -18760,7 +18837,7 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: +mkdirp@*, mkdirp@^1.0.4, mkdirp@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -19309,6 +19386,11 @@ node-releases@^1.1.61, node-releases@^1.1.70: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== +node-releases@^1.1.71: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + node-request-interceptor@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/node-request-interceptor/-/node-request-interceptor-0.6.3.tgz#f2f0dbec2d421584419dd39ff6782ce1e02b42a7" @@ -19416,6 +19498,11 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.3.0.tgz#9c49e10fc1876aeb76dba88bf1b2b5d9fa57b2ee" integrity sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ== +normalize-url@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + normalize.css@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" @@ -20805,6 +20892,14 @@ postcss-calc@^7.0.1: postcss-selector-parser "^5.0.0-rc.4" postcss-value-parser "^3.3.1" +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + postcss-colormin@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" @@ -20816,6 +20911,15 @@ postcss-colormin@^4.0.3: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-colormin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.0.0.tgz#283b8934c8bdbc531e7648aeb0970107f6d06d0e" + integrity sha512-Yt84+5V6CgS/AhK7d7MA58vG8dSZ7+ytlRtWLaQhag3HXOncTfmYpuUOX4cDoXjvLfw1sHRCHMiBjYhc35CymQ== + dependencies: + browserslist "^4.16.0" + color "^3.1.1" + postcss-value-parser "^4.1.0" + postcss-convert-values@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" @@ -20824,6 +20928,13 @@ postcss-convert-values@^4.0.1: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-convert-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.0.tgz#cd77e1d23ebe8fcf508640551eed08e232784cba" + integrity sha512-V5kmYm4xoBAjNs+eHY/6XzXJkkGeg4kwNf2ocfqhLb1WBPEa4oaSmoi1fnVO7Dkblqvus9h+AenDvhCKUCK7uQ== + dependencies: + postcss-value-parser "^4.1.0" + postcss-discard-comments@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" @@ -20831,6 +20942,11 @@ postcss-discard-comments@^4.0.2: dependencies: postcss "^7.0.0" +postcss-discard-comments@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.0.tgz#6c27310e0657c0b9e38a6175ad001b5aa28964bc" + integrity sha512-Umig6Gxs8m20RihiXY6QkePd6mp4FxkA1Dg+f/Kd6uw0gEMfKRjDeQOyFkLibexbJJGHpE3lrN/Q0R9SMrUMbQ== + postcss-discard-duplicates@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" @@ -20838,6 +20954,11 @@ postcss-discard-duplicates@^4.0.2: dependencies: postcss "^7.0.0" +postcss-discard-duplicates@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.0.tgz#6a2c4f779e8d20da6781e90730f234f9e650c51c" + integrity sha512-vEJJ+Y3pFUnO1FyCBA6PSisGjHtnphL3V6GsNvkASq/VkP3OX5/No5RYXXLxHa2QegStNzg6HYrYdo71uR4caQ== + postcss-discard-empty@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" @@ -20845,6 +20966,11 @@ postcss-discard-empty@^4.0.1: dependencies: postcss "^7.0.0" +postcss-discard-empty@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.0.tgz#0f0a9baee415f5f7be4ae046ba235e98626ba821" + integrity sha512-+wigy099Y1xZxG36WG5L1f2zeH1oicntkJEW4TDIqKKDO2g9XVB3OhoiHTu08rDEjLnbcab4rw0BAccwi2VjiQ== + postcss-discard-overridden@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" @@ -20852,6 +20978,11 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" +postcss-discard-overridden@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.0.tgz#ac00f695a60001eda52135a11fac87376b8da9ee" + integrity sha512-hybnScTaZM2iEA6kzVQ6Spozy7kVdLw+lGw8hftLlBEzt93uzXoltkYp9u0tI8xbfhxDLTOOzHsHQCkYdmzRUg== + postcss-flexbugs-fixes@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" @@ -20903,6 +21034,15 @@ postcss-merge-longhand@^4.0.11: postcss-value-parser "^3.0.0" stylehacks "^4.0.0" +postcss-merge-longhand@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.1.tgz#1a008ff72d14cd3e2f3d32accc2ad37948bcabf4" + integrity sha512-H1RO8le5deFGumQzuhJjuL0bIXPRysa+w7xtk5KrHe38oiaSS9ksPXDo24+IOS3SETPhip0J5+1uCOW+ALs3Yw== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.0" + postcss-merge-rules@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" @@ -20915,6 +21055,17 @@ postcss-merge-rules@^4.0.3: postcss-selector-parser "^3.0.0" vendors "^1.0.0" +postcss-merge-rules@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.0.tgz#e0d0c0d45c98376f4adb49eb1f1dfe2aebfd7048" + integrity sha512-TfsXbKjNYCGfUPEXGIGPySnMiJbdS+3gcVeV8gwmJP4RajyKZHW8E0FYDL1WmggTj3hi+m+WUCAvqRpX2ut4Kg== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.0" + postcss-selector-parser "^6.0.4" + vendors "^1.0.3" + postcss-minify-font-values@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" @@ -20923,6 +21074,13 @@ postcss-minify-font-values@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-minify-font-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.0.tgz#fee5d0fa192fae8757cb744870a0ad02be5f402e" + integrity sha512-zi2JhFaMOcIaNxhndX5uhsqSY1rexKDp23wV8EOmC9XERqzLbHsoRye3aYF716Zm+hkcR4loqKDt8LZlmihwAg== + dependencies: + postcss-value-parser "^4.1.0" + postcss-minify-gradients@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" @@ -20933,6 +21091,15 @@ postcss-minify-gradients@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-minify-gradients@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.0.tgz#95dbe61567a45c0cd7ab897d78fb65d5096844ed" + integrity sha512-/jPtNgs6JySMwgsE5dPOq8a2xEopWTW3RyqoB9fLqxgR+mDUNLSi7joKd+N1z7FXWgVkc4l/dEBMXHgNAaUbvg== + dependencies: + cssnano-utils "^2.0.0" + is-color-stop "^1.1.0" + postcss-value-parser "^4.1.0" + postcss-minify-params@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" @@ -20945,6 +21112,17 @@ postcss-minify-params@^4.0.2: postcss-value-parser "^3.0.0" uniqs "^2.0.0" +postcss-minify-params@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.0.tgz#12c7f75d69b0b4827fafbd6649970a53784a9c24" + integrity sha512-KvZYIxTPBVKjdd+XgObq9A+Sfv8lMkXTpbZTsjhr42XbfWIeLaTItMlygsDWfjArEc3muUfDaUFgNSeDiJ5jug== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + postcss-minify-selectors@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" @@ -20955,6 +21133,14 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" +postcss-minify-selectors@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.0.0.tgz#d3e43d97fd0ba83ba0010950fc5acfa420f7caa9" + integrity sha512-cEM0O0eWwFIvmo6nfB0lH0vO/XFwgqIvymODbfPXZ1gTA3i76FKnb7TGUrEpiTxaXH6tgYQ6DcTHwRiRS+YQLQ== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^3.1.2" + postcss-modules-extract-imports@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" @@ -21055,6 +21241,11 @@ postcss-normalize-charset@^4.0.1: dependencies: postcss "^7.0.0" +postcss-normalize-charset@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.0.tgz#59e1fe2094fb2e3371cc5b054cbc39828a41a710" + integrity sha512-pqsCkgo9KmQP0ew6DqSA+uP9YN6EfsW20pQ3JU5JoQge09Z6Too4qU0TNDsTNWuEaP8SWsMp+19l15210MsDZQ== + postcss-normalize-display-values@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" @@ -21064,6 +21255,14 @@ postcss-normalize-display-values@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-display-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.0.tgz#4ff2d3b3b5146a366de28ec9e24131a1868f1933" + integrity sha512-t4f2d//gH1f7Ns0Jq3eNdnWuPT7TeLuISZ6RQx4j8gpl5XrhkdshdNcOnlrEK48YU6Tcb6jqK7dorME3N4oOGA== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + postcss-normalize-positions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" @@ -21074,6 +21273,13 @@ postcss-normalize-positions@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-positions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.0.tgz#fe1d9a8122dd385b9c6908bd2008140dea17750d" + integrity sha512-0o6/qU5ky74X/eWYj/tv4iiKCm3YqJnrhmVADpIMNXxzFZywsSQxl8F7cKs8jQEtF3VrJBgcDHTexZy1zgDoYg== + dependencies: + postcss-value-parser "^4.1.0" + postcss-normalize-repeat-style@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" @@ -21084,6 +21290,14 @@ postcss-normalize-repeat-style@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-repeat-style@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.0.tgz#e11d88fbf63f89179c6a7391853b2fe7f46e589d" + integrity sha512-KRT14JbrXKcFMYuc4q7lh8lvv8u22wLyMrq+UpHKLtbx2H/LOjvWXYdoDxmNrrrJzomAWL+ViEXr48/IhSUJnQ== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + postcss-normalize-string@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" @@ -21093,6 +21307,13 @@ postcss-normalize-string@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.0.tgz#2ea08ff4cb8817ce160755e9fdc7e6ef6d495002" + integrity sha512-wSO4pf7GNcDZpmelREWYADF1+XZWrAcbFLQCOqoE92ZwYgaP/RLumkUTaamEzdT2YKRZAH8eLLKGWotU/7FNPw== + dependencies: + postcss-value-parser "^4.1.0" + postcss-normalize-timing-functions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" @@ -21102,6 +21323,14 @@ postcss-normalize-timing-functions@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-timing-functions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.0.tgz#380eb1c9b179f96efc307c659a8049116f16f381" + integrity sha512-TwPaDX+wl9wO3MUm23lzGmOzGCGKnpk+rSDgzB2INpakD5dgWR3L6bJq1P1LQYzBAvz8fRIj2NWdnZdV4EV98Q== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + postcss-normalize-unicode@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" @@ -21111,6 +21340,14 @@ postcss-normalize-unicode@^4.0.1: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-unicode@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.0.tgz#aa46a89c86ae51a01cbca13e73c1ed7b0b38807e" + integrity sha512-2CpVoz/67rXU5s9tsPZDxG1YGS9OFHwoY9gsLAzrURrCxTAb0H7Vp87/62LvVPgRWTa5ZmvgmqTp2rL8tlm72A== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + postcss-normalize-url@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" @@ -21121,6 +21358,15 @@ postcss-normalize-url@^4.0.1: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.0.tgz#626a4c7d30007f94466cdf245e7ed9f253f1dbd9" + integrity sha512-ICDaGFBqLgA3dlrCIRuhblLl80D13YtgEV9NJPTYJtgR72vu61KgxAHv+z/lKMs1EbwfSQa3ALjOFLSmXiE34A== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^4.5.0" + postcss-value-parser "^4.1.0" + postcss-normalize-whitespace@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" @@ -21129,6 +21375,13 @@ postcss-normalize-whitespace@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize-whitespace@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.0.tgz#1faf147a4f8d3d93a3c75109d120b4eefa00589b" + integrity sha512-KRnxQvQAVkJfaeXSz7JlnD9nBN9sFZF9lrk9452Q2uRoqrRSkinqifF8Iex7wZGei2DZVG/qpmDFDmRvbNAOGA== + dependencies: + postcss-value-parser "^4.1.0" + postcss-ordered-values@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" @@ -21138,6 +21391,14 @@ postcss-ordered-values@^4.1.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-ordered-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.0.tgz#a50f224c5f40c566b338b0663655478737dcebee" + integrity sha512-dPr+SRObiHueCIc4IUaG0aOGQmYkuNu50wQvdXTGKy+rzi2mjmPsbeDsheLk5WPb9Zyf2tp8E+I+h40cnivm6g== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + postcss-reduce-initial@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" @@ -21148,6 +21409,14 @@ postcss-reduce-initial@^4.0.3: has "^1.0.0" postcss "^7.0.0" +postcss-reduce-initial@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.0.tgz#c724e5513b0ae7f3d7bff16f0fc82133fb2f820a" + integrity sha512-wR6pXUaFbSMG1oCKx8pKVA+rnSXCHlca5jMrlmkmif+uig0HNUTV9oGN5kjKsM3mATQAldv2PF9Tbl2vqLFjnA== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + postcss-reduce-transforms@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" @@ -21158,6 +21427,14 @@ postcss-reduce-transforms@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-reduce-transforms@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.0.tgz#5c820f71fbd4eec82b323523642b7b2d1c7d29ef" + integrity sha512-iHdGODW4YzM3WjVecBhPQt6fpJC4lGQZxJKjkBNHpp2b8dzmvj0ogKThqya+IRodQEFzjfXgYeESkf172FH5Lw== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + postcss-scss@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.3.1.tgz#65c610d8e2a7ee0e62b1835b71b8870734816e4b" @@ -21172,6 +21449,15 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" @@ -21201,6 +21487,14 @@ postcss-svgo@^4.0.2: postcss-value-parser "^3.0.0" svgo "^1.0.0" +postcss-svgo@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.0.tgz#c8d806e573394ab24f1e233cac5be4c199e9f1b2" + integrity sha512-M3/VS4sFI1Yp9g0bPL+xzzCNz5iLdRUztoFaugMit5a8sMfkVzzhwqbsOlD8IFFymCdJDmXmh31waYHWw1K4BA== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.3.0" + postcss-unique-selectors@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" @@ -21210,6 +21504,15 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" +postcss-unique-selectors@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.0.tgz#17856278f6c38d024defc9694d568bb09dd7f771" + integrity sha512-o9l4pF8SRn7aCMTmzb/kNv/kjV7wPZpZ8Nlb1Gq8v/Qvw969K1wanz1RVA0ehHzWe9+wHXaC2DvZlak/gdMJ5w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.2" + uniqs "^2.0.0" + postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" @@ -23979,7 +24282,7 @@ rgba-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -25074,13 +25377,6 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== - dependencies: - minipass "^3.1.1" - st@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/st/-/st-2.0.0.tgz#eabd11e7722863b8ee8cfbdd027cb25e76ff35e9" @@ -25632,6 +25928,14 @@ stylehacks@^4.0.0: postcss "^6.0.0" postcss-selector-parser "^3.0.0" +stylehacks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.0.tgz#c49b0b2cf9917fe37dc030b96a4c34698b932933" + integrity sha512-QOWm6XivDLb+fqffTZP8jrmPmPITVChl2KCY2R05nsCWwLi3VGhCdVc3IVGNwd1zzTt1jPd67zIKjpQfxzQZeA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + styletron-engine-atomic@^1.4.7: version "1.4.7" resolved "https://registry.yarnpkg.com/styletron-engine-atomic/-/styletron-engine-atomic-1.4.7.tgz#0c6572491685308f3a5b4565016c7c5637bcb4fb" @@ -25813,6 +26117,19 @@ svgo@^0.7.2: sax "~1.2.1" whet.extend "~0.9.9" +svgo@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + sw-precache@^5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" @@ -25945,18 +26262,6 @@ tar@^4, tar@^4.4.10, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - tdigest@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" @@ -27598,6 +27903,11 @@ vendors@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" +vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + verdaccio-audit@9.7.3: version "9.7.3" resolved "https://registry.yarnpkg.com/verdaccio-audit/-/verdaccio-audit-9.7.3.tgz#a31d0c63e9c050a9575431a82fbbc56a25a249e5" @@ -28039,7 +28349,7 @@ webpack-sources@^0.2.0: source-list-map "^1.1.1" source-map "~0.5.3" -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== From 5005588c92101d8be19c23d9404bdd952ac3ed73 Mon Sep 17 00:00:00 2001 From: Paul Kim Date: Mon, 3 May 2021 07:48:20 -0700 Subject: [PATCH 07/45] fix(gatsby): rehydration issue in Dev404Page with DEV_SSR (#30581) Co-authored-by: Lennart --- .../internal-plugins/dev-404-page/raw_dev-404-page.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js b/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js index fe0e9f785390c..de89a146161c9 100644 --- a/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js +++ b/packages/gatsby/src/internal-plugins/dev-404-page/raw_dev-404-page.js @@ -19,6 +19,7 @@ class Dev404Page extends React.Component { const initialPagePathSearchTerms = urlState.filter ? urlState.filter : `` this.state = { + hasMounted: false, showCustom404: false, initPagePaths: pagePaths, pagePathSearchTerms: initialPagePathSearchTerms, @@ -32,6 +33,12 @@ class Dev404Page extends React.Component { this.handleSearchTermChange = this.handleSearchTermChange.bind(this) } + componentDidMount() { + this.setState({ + hasMounted: true, + }) + } + showCustom404() { this.setState({ showCustom404: true }) } @@ -78,6 +85,10 @@ class Dev404Page extends React.Component { } render() { + if (!this.state.hasMounted) { + return null + } + // Detect when the query returns the default function node that's added when functions // are *not* enabled. That seems the simplest way to communicate whether // functions are enabled or not to this page. From 51053902082608e1effe824e66d7b68468dcf06c Mon Sep 17 00:00:00 2001 From: Kyle Mathews Date: Mon, 3 May 2021 08:57:24 -0700 Subject: [PATCH 08/45] feat(gatsby): speedup cli startup by lazily requiring modules (#31134) * feat(gatsby): speedup cli startup by lazily requiring modules * Fix import --- packages/gatsby-cli/src/create-cli.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/gatsby-cli/src/create-cli.ts b/packages/gatsby-cli/src/create-cli.ts index ede5a1e61b23a..530d5167d2722 100644 --- a/packages/gatsby-cli/src/create-cli.ts +++ b/packages/gatsby-cli/src/create-cli.ts @@ -10,7 +10,6 @@ import { setTelemetryEnabled, isTrackingEnabled, } from "gatsby-telemetry" -import { startGraphQLServer } from "gatsby-recipes" import { run as runCreateGatsby } from "create-gatsby" import report from "./reporter" import { setStore } from "./reporter/redux" @@ -19,10 +18,8 @@ import { initStarter } from "./init-starter" import { login } from "./login" import { logout } from "./logout" import { whoami } from "./whoami" -import { recipesHandler } from "./recipes" import { getPackageManager, setPackageManager } from "./util/package-manager" import reporter from "./reporter" -import pluginHandler from "./handlers/plugin" const handlerP = (fn: (args: yargs.Arguments) => void) => ( args: yargs.Arguments @@ -206,6 +203,7 @@ function buildLocalCommands(cli: yargs.Argv, isLocalSite: boolean): void { `develop`, (args: yargs.Arguments, cmd: (args: yargs.Arguments) => unknown) => { process.env.NODE_ENV = process.env.NODE_ENV || `development` + const { startGraphQLServer } = require(`gatsby-recipes`) startGraphQLServer(siteInfo.directory, true) if (args.hasOwnProperty(`inspect`)) { @@ -402,6 +400,7 @@ function buildLocalCommands(cli: yargs.Argv, isLocalSite: boolean): void { describe: `Install recipe (defaults to plan mode)`, }), handler: handlerP(async ({ recipe, develop, install }: yargs.Arguments) => { + const { recipesHandler } = require(`./recipes`) await recipesHandler( siteInfo.directory, recipe as string, @@ -430,6 +429,7 @@ function buildLocalCommands(cli: yargs.Argv, isLocalSite: boolean): void { }: yargs.Arguments<{ cmd: string | undefined }>) => { + const pluginHandler = require(`./handlers/plugin`).default await pluginHandler(siteInfo.directory, cmd) }, }) From c94fadd3806776ce8f445c63d4fcaae87db78a54 Mon Sep 17 00:00:00 2001 From: Tyler Barnes Date: Mon, 3 May 2021 10:19:31 -0700 Subject: [PATCH 09/45] =?UTF-8?q?chore(gatsby-source-wordpress):=20run=20i?= =?UTF-8?q?ncremental=20tests=20where=20values=20change=20based=20on=20the?= =?UTF-8?q?=20WARM=5FCACHE=20env=E2=80=A6=20(#31142)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * run incremental tests where values change based on the WARM_CACHE env var * group requires together * remove console.log --- .../__tests__/__snapshots__/index.js.snap | 276 +++++++++++++++++- .../__tests__/index.js | 23 ++ .../docker/seed/backup.sql | 267 +++++++++++------ .../gatsby-source-wordpress/package.json | 6 +- .../test-fns/data-resolution.js | 23 +- .../test-fns/filtered-type-defs.js | 1 + .../test-utils/increment-remote-data.js | 8 +- .../test-fns/test-utils/incremental-it.js | 11 +- .../test-fns/test-utils/queries.js | 6 +- 9 files changed, 500 insertions(+), 121 deletions(-) diff --git a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap index d9e3751d6cbb9..3f74013f6a00c 100644 --- a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap +++ b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap @@ -186,11 +186,191 @@ Object { } `; +exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves menus INCREMENTED 1`] = ` +Object { + "data": Object { + "allWpMenu": Object { + "nodes": Array [ + Object { + "count": 4, + "databaseId": 17, + "id": "dGVybToxNw==", + "menuItems": Object { + "nodes": Array [ + Object { + "childItems": Object { + "nodes": Array [], + }, + "databaseId": 564, + "id": "cG9zdDo1NjQ=", + "label": "Activity", + "nodeType": "MenuItem", + "target": null, + "title": null, + "url": "/activity/", + }, + Object { + "childItems": Object { + "nodes": Array [ + Object { + "childItems": Object { + "nodes": Array [ + Object { + "label": "test custom link", + "url": "https://google.com", + }, + ], + }, + "connectedNode": Object { + "node": Object { + "featuredImage": Object { + "node": Object { + "title": "84-1000×1000", + }, + }, + "title": "Hello world! DELTA SYNC", + "uri": "/2020/02/25/hello-world/", + }, + }, + "databaseId": 566, + "id": "cG9zdDo1NjY=", + "label": "Hello world!", + }, + ], + }, + "databaseId": 565, + "id": "cG9zdDo1NjU=", + "label": "Sample Page", + "nodeType": "MenuItem", + "target": null, + "title": null, + "url": "/sample-page/", + }, + Object { + "childItems": Object { + "nodes": Array [ + Object { + "childItems": Object { + "nodes": Array [], + }, + "connectedNode": null, + "databaseId": 567, + "id": "cG9zdDo1Njc=", + "label": "test custom link", + }, + ], + }, + "databaseId": 566, + "id": "cG9zdDo1NjY=", + "label": "Hello world!", + "nodeType": "MenuItem", + "target": null, + "title": null, + "url": "/2020/02/25/hello-world/", + }, + Object { + "childItems": Object { + "nodes": Array [], + }, + "databaseId": 567, + "id": "cG9zdDo1Njc=", + "label": "test custom link", + "nodeType": "MenuItem", + "target": null, + "title": null, + "url": "https://google.com", + }, + ], + }, + "name": "main menu", + }, + ], + }, + }, + "extensions": Object {}, +} +`; + exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves pages 1`] = ` Object { "data": Object { "allWpPage": Object { "nodes": Array [ + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "Sample Page", + "uri": "/sample-page/", + "wpChildren": Object { + "nodes": Array [], + }, + }, + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "Activity", + "uri": "/activity/", + "wpChildren": Object { + "nodes": Array [], + }, + }, + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "ACF Field Test", + "uri": "/acf-field-test/", + "wpChildren": Object { + "nodes": Array [], + }, + }, + ], + }, + "testPage": Object { + "title": "Sample Page", + }, + }, + "extensions": Object {}, +} +`; + +exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves pages INCREMENTED 1`] = ` +Object { + "data": Object { + "allWpPage": Object { + "nodes": Array [ + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "Sample Page DELTA SYNC", + "uri": "/sample-page/", + "wpChildren": Object { + "nodes": Array [], + }, + }, Object { "acfPageFields": Object { "fieldGroupName": "acfPageFields", @@ -223,6 +403,9 @@ Object { }, ], }, + "testPage": Object { + "title": "Sample Page DELTA SYNC", + }, }, "extensions": Object {}, } @@ -262,6 +445,40 @@ Object { } `; +exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves posts INCREMENTED 1`] = ` +Object { + "data": Object { + "allWpPost": Object { + "nodes": Array [ + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": Object { + "node": Object { + "altText": "", + "sourceUrl": "http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg", + }, + }, + "title": "Hello world! DELTA SYNC", + }, + ], + }, + "testPost": Object { + "title": "Hello world! DELTA SYNC", + }, + }, + "extensions": Object {}, +} +`; + exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves root fields 1`] = ` Object { "data": Object { @@ -310,6 +527,9 @@ Object { Object { "title": "Activity", }, + Object { + "title": "Sample Page", + }, ], }, "posts": Object { @@ -330,10 +550,64 @@ Object { } `; +exports[`[gatsby-source-wordpress] Run tests on develop build data resolution resolves users INCREMENTED 1`] = ` +Object { + "data": Object { + "allWpUser": Object { + "nodes": Array [ + Object { + "databaseId": 4, + "name": "admin", + "pages": Object { + "nodes": Array [ + Object { + "title": "ACF Field Test", + }, + Object { + "title": "Activity", + }, + Object { + "title": "Sample Page DELTA SYNC", + }, + ], + }, + "posts": Object { + "nodes": Array [ + Object { + "title": "Hello world! DELTA SYNC", + }, + ], + }, + }, + ], + }, + "testUser": Object { + "name": "admin", + }, + }, + "extensions": Object {}, +} +`; + exports[`[gatsby-source-wordpress] Run tests on develop build filtered type definitions Date field resolver is working 1`] = ` Object { "data": Object { - "wpPage": null, + "wpPage": Object { + "databaseId": 2, + "date": "2020-02-25T17:54:21", + "dateGmt": "2020-02-25T17:54:21", + "dayOfMonth": "25", + "dayOfMonthGmt": "25", + "dayOfWeekName": "Tuesday", + "dayOfWeekNameGmt": "Tuesday", + "dayOfWeekNumber": "2", + "dayOfWeekNumberGmt": "2", + "id": "cG9zdDoy", + "month": "February", + "monthGmt": "February", + "year": "2020", + "yearGmt": "2020", + }, }, "extensions": Object {}, } diff --git a/integration-tests/gatsby-source-wordpress/__tests__/index.js b/integration-tests/gatsby-source-wordpress/__tests__/index.js index a29302ca4fc74..069ea02154c10 100644 --- a/integration-tests/gatsby-source-wordpress/__tests__/index.js +++ b/integration-tests/gatsby-source-wordpress/__tests__/index.js @@ -9,6 +9,11 @@ const { gatsbyCleanBeforeAll, } = require(`../test-fns/test-utils/get-gatsby-process`) +const { + mutateSchema, + resetSchema, +} = require(`../test-fns/test-utils/increment-remote-data`) + jest.setTimeout(100000) // we run these tests twice in a row @@ -16,6 +21,7 @@ jest.setTimeout(100000) // we don't need to re-run some tests the second time, // so the following allows us to do that: const isWarmCache = process.env.WARM_CACHE + const testOnColdCacheOnly = isWarmCache ? test.skip : test describe(`[gatsby-source-wordpress] Build default options`, () => { @@ -52,6 +58,23 @@ describe(`[gatsby-source-wordpress] Run tests on develop build`, () => { await gatsbyCleanBeforeAll() } + if (isWarmCache && !process.env.WORDPRESS_BASIC_AUTH) { + console.log( + `Please add the env var WORDPRESS_BASIC_AUTH. It should be a string in the following pattern: base64Encode(\`\${username}:\${password}\`)` + ) + + await new Promise(resolve => setTimeout(resolve, 100)) + process.exit(1) + } + + if (isWarmCache) { + const response = await mutateSchema() + console.log(response) + } else { + const response = await resetSchema() + console.log(response) + } + gatsbyDevelopProcess = spawnGatsbyProcess(`develop`) await urling(`http://localhost:8000`) diff --git a/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql b/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql index 0b750558b7be0..b73f6e6eb2302 100644 --- a/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql +++ b/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql @@ -4,7 +4,7 @@ -- https://tableplus.com/ -- -- Database: wordpress --- Generation Time: 2021-04-21 15:00:07.1240 +-- Generation Time: 2021-04-30 16:34:53.0520 -- ------------------------------------------------------------- @@ -128,7 +128,7 @@ CREATE TABLE `wp_options` ( PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`), KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=5465 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5534 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_postmeta` ( `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -138,7 +138,7 @@ CREATE TABLE `wp_postmeta` ( PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=72631 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=72767 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_posts` ( `ID` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -169,7 +169,7 @@ CREATE TABLE `wp_posts` ( KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), KEY `post_parent` (`post_parent`), KEY `post_author` (`post_author`) -) ENGINE=InnoDB AUTO_INCREMENT=11756 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11784 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_term_relationships` ( `object_id` bigint unsigned NOT NULL DEFAULT '0', @@ -347,7 +347,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (100, 'widget_archives', 'a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}', 'yes'), (101, 'widget_meta', 'a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}', 'yes'), (102, 'sidebars_widgets', 'a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}', 'yes'), -(103, 'cron', 'a:20:{i:1619037015;a:1:{s:10:\"polls_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619038463;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619039336;a:1:{s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619039342;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619041123;a:1:{s:16:\"backupbuddy_cron\";a:1:{s:32:\"b2d6f4df5dfc2b203ff6fc9b49103fdc\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:2:{i:0;s:12:\"housekeeping\";i:1;a:0:{}}s:8:\"interval\";i:86400;}}}i:1619047664;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1619048017;a:1:{s:39:\"WPEngineSecurityAuditor_Scans_scheduler\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619049600;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619050136;a:1:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619050145;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619060935;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619070863;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619071735;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619114062;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619114068;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619114069;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619117910;a:1:{s:19:\"wpseo-reindex-links\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619119714;a:1:{s:17:\"gravityforms_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619466318;a:1:{s:16:\"wpseo_ryte_fetch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}', 'yes'), +(103, 'cron', 'a:19:{i:1619825617;a:1:{s:39:\"WPEngineSecurityAuditor_Scans_scheduler\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619826863;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827200;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619827736;a:2:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827742;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827745;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619829015;a:1:{s:10:\"polls_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619838535;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619848463;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619849335;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619891662;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619891668;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619891669;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619895510;a:1:{s:19:\"wpseo-reindex-links\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619897314;a:1:{s:17:\"gravityforms_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619905123;a:1:{s:16:\"backupbuddy_cron\";a:1:{s:32:\"b2d6f4df5dfc2b203ff6fc9b49103fdc\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:2:{i:0;s:12:\"housekeeping\";i:1;a:0:{}}s:8:\"interval\";i:86400;}}}i:1620071118;a:1:{s:16:\"wpseo_ryte_fetch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1620257264;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}', 'yes'), (104, 'widget_pages', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (105, 'widget_calendar', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (106, 'widget_media_audio', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), @@ -602,33 +602,34 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (5417, 'auto_update_core_dev', 'enabled', 'yes'), (5418, 'auto_update_core_minor', 'enabled', 'yes'), (5419, 'auto_update_core_major', 'unset', 'yes'), -(5420, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:3:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}i:1;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";s:9:\"new_files\";s:1:\"1\";}i:2;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.3.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.6.3.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.6.3-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.6.3-new-bundled.zip\";s:7:\"partial\";s:69:\"https://downloads.wordpress.org/release/wordpress-5.6.3-partial-0.zip\";s:8:\"rollback\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.6.3-rollback-0.zip\";}s:7:\"current\";s:5:\"5.6.3\";s:7:\"version\";s:5:\"5.6.3\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:3:\"5.6\";s:9:\"new_files\";s:0:\"\";}}s:12:\"last_checked\";i:1619033814;s:15:\"version_checked\";s:3:\"5.6\";s:12:\"translations\";a:0:{}}', 'no'), -(5424, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619033814;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.8\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.0\";}s:8:\"response\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.0\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.0.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.7\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.7.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.2\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.2.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:9:\"no_update\";a:0:{}s:12:\"translations\";a:0:{}}', 'no'), (5427, 'can_compress_scripts', '0', 'no'), -(5428, '_transient_timeout_acf_plugin_updates', '1619115550', 'no'), -(5429, '_transient_acf_plugin_updates', 'a:4:{s:7:\"plugins\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";a:8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:10:\"expiration\";i:172800;s:6:\"status\";i:1;s:7:\"checked\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";}}', 'no'), -(5436, '_site_transient_timeout_theme_roots', '1619034781', 'no'), -(5437, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), -(5441, '_site_transient_timeout_browser_d084a7cffca12a48f6ef32b18168de98', '1619637990', 'no'), -(5442, '_site_transient_browser_d084a7cffca12a48f6ef32b18168de98', 'a:10:{s:4:\"name\";s:6:\"Chrome\";s:7:\"version\";s:13:\"89.0.4389.114\";s:8:\"platform\";s:9:\"Macintosh\";s:10:\"update_url\";s:29:\"https://www.google.com/chrome\";s:7:\"img_src\";s:43:\"http://s.w.org/images/browsers/chrome.png?1\";s:11:\"img_src_ssl\";s:44:\"https://s.w.org/images/browsers/chrome.png?1\";s:15:\"current_version\";s:2:\"18\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}', 'no'), -(5443, '_site_transient_timeout_php_check_f03419f679b2e071a92e69acf99160bf', '1619637990', 'no'), -(5444, '_site_transient_php_check_f03419f679b2e071a92e69acf99160bf', 'a:5:{s:19:\"recommended_version\";s:3:\"7.4\";s:15:\"minimum_version\";s:6:\"5.6.20\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}', 'no'), -(5445, '_site_transient_timeout_community-events-343e65632639fd90f95a81dd0a994cde', '1619076391', 'no'), -(5446, '_site_transient_community-events-343e65632639fd90f95a81dd0a994cde', 'a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:10:\"172.26.0.0\";}s:6:\"events\";a:6:{i:0;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:66:\"Watch party + Discussion group: Using WordPress in Other Languages\";s:3:\"url\";s:68:\"https://www.meetup.com/learn-wordpress-discussions/events/277702142/\";s:6:\"meetup\";s:27:\"Learn WordPress Discussions\";s:10:\"meetup_url\";s:51:\"https://www.meetup.com/learn-wordpress-discussions/\";s:4:\"date\";s:19:\"2021-04-22 06:00:00\";s:8:\"end_date\";s:19:\"2021-04-22 07:00:00\";s:20:\"start_unix_timestamp\";i:1619096400;s:18:\"end_unix_timestamp\";i:1619100000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:37.779998779297;s:9:\"longitude\";d:-122.41999816895;}}i:1;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:26:\"WordPress Help Desk Meetup\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/sjblsryccgbbc/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-04-20 18:30:00\";s:8:\"end_date\";s:19:\"2021-04-20 20:30:00\";s:20:\"start_unix_timestamp\";i:1618968600;s:18:\"end_unix_timestamp\";i:1618975800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:2;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:48:\"Online Event: DIY User Group for Bloggers & More\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/gtvlhsyccgbgc/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-04-24 10:00:00\";s:8:\"end_date\";s:19:\"2021-04-24 12:00:00\";s:20:\"start_unix_timestamp\";i:1619283600;s:18:\"end_unix_timestamp\";i:1619290800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:3;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:38:\"WordPress - Online Meetup (April 2021)\";s:3:\"url\";s:73:\"https://www.meetup.com/Vancouver-WordPress-Meetup-Group/events/277518012/\";s:6:\"meetup\";s:36:\"The Vancouver WordPress Meetup Group\";s:10:\"meetup_url\";s:56:\"https://www.meetup.com/Vancouver-WordPress-Meetup-Group/\";s:4:\"date\";s:19:\"2021-04-27 18:00:00\";s:8:\"end_date\";s:19:\"2021-04-27 19:30:00\";s:20:\"start_unix_timestamp\";i:1619571600;s:18:\"end_unix_timestamp\";i:1619577000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"CA\";s:8:\"latitude\";d:49.270000457764;s:9:\"longitude\";d:-123.15000152588;}}i:4;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:19:\"Virtual Mega Meetup\";s:3:\"url\";s:63:\"https://www.meetup.com/SeattleWordPressMeetup/events/277077262/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-05-16 10:00:00\";s:8:\"end_date\";s:19:\"2021-05-16 14:00:00\";s:20:\"start_unix_timestamp\";i:1621184400;s:18:\"end_unix_timestamp\";i:1621198800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:5;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:48:\"Online Event: DIY User Group for Bloggers & More\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/gtvlhsycchbdc/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-05-22 10:00:00\";s:8:\"end_date\";s:19:\"2021-05-22 12:00:00\";s:20:\"start_unix_timestamp\";i:1621702800;s:18:\"end_unix_timestamp\";i:1621710000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}}}', 'no'), -(5447, '_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3', '1619076391', 'no'); +(5470, '_transient_health-check-site-status-result', '{\"good\":13,\"recommended\":5,\"critical\":2}', 'yes'), +(5475, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:2:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}i:1;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";s:9:\"new_files\";s:1:\"1\";}}s:12:\"last_checked\";i:1619821745;s:15:\"version_checked\";s:5:\"5.6.3\";s:12:\"translations\";a:0:{}}', 'no'), +(5478, 'auto_core_update_notified', 'a:4:{s:4:\"type\";s:7:\"success\";s:5:\"email\";s:18:\"tyler@gatsbyjs.com\";s:7:\"version\";s:5:\"5.6.3\";s:9:\"timestamp\";i:1619126108;}', 'no'), +(5488, '_transient_timeout_acf_plugin_updates', '1619994547', 'no'), +(5489, '_transient_acf_plugin_updates', 'a:4:{s:7:\"plugins\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";a:8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:10:\"expiration\";i:172800;s:6:\"status\";i:1;s:7:\"checked\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";}}', 'no'), +(5490, '_site_transient_timeout_theme_roots', '1619823547', 'no'), +(5491, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), +(5492, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619821748;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.9\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.1\";}s:8:\"response\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.0\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.0.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.7\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.7.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.3\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.3.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:9:\"no_update\";a:0:{}s:12:\"translations\";a:0:{}}', 'no'), +(5493, '_site_transient_update_plugins', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619821748;s:7:\"checked\";a:7:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:5:\"1.8.1\";s:25:\"basic-auth/basic-auth.php\";s:3:\"0.1\";s:23:\"wp-gatsby/wp-gatsby.php\";s:5:\"0.9.1\";s:25:\"wp-graphql/wp-graphql.php\";s:5:\"1.1.2\";s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";s:3:\"1.1\";s:33:\"wp-graphql-acf/wp-graphql-acf.php\";s:5:\"0.3.1\";}s:8:\"response\";a:4:{s:43:\"custom-post-type-ui/custom-post-type-ui.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:33:\"w.org/plugins/custom-post-type-ui\";s:4:\"slug\";s:19:\"custom-post-type-ui\";s:6:\"plugin\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:11:\"new_version\";s:5:\"1.9.1\";s:3:\"url\";s:50:\"https://wordpress.org/plugins/custom-post-type-ui/\";s:7:\"package\";s:68:\"https://downloads.wordpress.org/plugin/custom-post-type-ui.1.9.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-256x256.png?rev=1069557\";s:2:\"1x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-128x128.png?rev=1069557\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:75:\"https://ps.w.org/custom-post-type-ui/assets/banner-1544x500.png?rev=1069557\";s:2:\"1x\";s:74:\"https://ps.w.org/custom-post-type-ui/assets/banner-772x250.png?rev=1069557\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.7.0\";s:12:\"requires_php\";s:3:\"5.6\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:23:\"wp-gatsby/wp-gatsby.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:23:\"w.org/plugins/wp-gatsby\";s:4:\"slug\";s:9:\"wp-gatsby\";s:6:\"plugin\";s:23:\"wp-gatsby/wp-gatsby.php\";s:11:\"new_version\";s:6:\"1.0.10\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/wp-gatsby/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-gatsby.1.0.10.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-256x256.png?rev=2336725\";s:2:\"1x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-128x128.png?rev=2336725\";}s:7:\"banners\";a:0:{}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.3\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:25:\"wp-graphql/wp-graphql.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:24:\"w.org/plugins/wp-graphql\";s:4:\"slug\";s:10:\"wp-graphql\";s:6:\"plugin\";s:25:\"wp-graphql/wp-graphql.php\";s:11:\"new_version\";s:5:\"1.3.6\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/wp-graphql/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.6.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=2482884\";s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=2482884\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=2482884\";s:2:\"1x\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=2482884\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.1\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:34:\"advanced-custom-fields-pro/acf.php\";O:8:\"stdClass\":8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:0:{}}', 'no'), +(5494, '_site_transient_timeout_browser_220ac8ceb1db13ed6db2da1a3be63cdd', '1620426548', 'no'), +(5495, '_site_transient_browser_220ac8ceb1db13ed6db2da1a3be63cdd', 'a:10:{s:4:\"name\";s:6:\"Chrome\";s:7:\"version\";s:12:\"90.0.4430.93\";s:8:\"platform\";s:9:\"Macintosh\";s:10:\"update_url\";s:29:\"https://www.google.com/chrome\";s:7:\"img_src\";s:43:\"http://s.w.org/images/browsers/chrome.png?1\";s:11:\"img_src_ssl\";s:44:\"https://s.w.org/images/browsers/chrome.png?1\";s:15:\"current_version\";s:2:\"18\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}', 'no'), +(5496, '_site_transient_timeout_php_check_7841c854be39099ac1d9b61bb411ecb0', '1620426549', 'no'), +(5497, '_site_transient_php_check_7841c854be39099ac1d9b61bb411ecb0', 'a:5:{s:19:\"recommended_version\";s:3:\"7.4\";s:15:\"minimum_version\";s:6:\"5.6.20\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}', 'no'), +(5500, '_site_transient_timeout_community-events-e945964770a0fd6f0dbbcd9622f2e63f', '1619864949', 'no'), +(5501, '_site_transient_community-events-e945964770a0fd6f0dbbcd9622f2e63f', 'a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:10:\"172.30.0.0\";}s:6:\"events\";a:7:{i:0;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:64:\"Demo + Discussion group: Creating and Registering Block Patterns\";s:3:\"url\";s:68:\"https://www.meetup.com/learn-wordpress-discussions/events/277669500/\";s:6:\"meetup\";s:27:\"Learn WordPress Discussions\";s:10:\"meetup_url\";s:51:\"https://www.meetup.com/learn-wordpress-discussions/\";s:4:\"date\";s:19:\"2021-05-04 07:00:00\";s:8:\"end_date\";s:19:\"2021-05-04 08:00:00\";s:20:\"start_unix_timestamp\";i:1620136800;s:18:\"end_unix_timestamp\";i:1620140400;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:37.779998779297;s:9:\"longitude\";d:-122.41999816895;}}i:1;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:18:\"WordCamp Venezuela\";s:3:\"url\";s:36:\"https://venezuela.wordcamp.org/2021/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2021-05-06 16:00:00\";s:8:\"end_date\";s:19:\"2021-05-07 00:00:00\";s:20:\"start_unix_timestamp\";i:1620331200;s:18:\"end_unix_timestamp\";i:1620360000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"VE\";s:8:\"latitude\";d:10.4805937;s:9:\"longitude\";d:-66.9036063;}}i:2;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:19:\"Virtual Mega Meetup\";s:3:\"url\";s:63:\"https://www.meetup.com/SeattleWordPressMeetup/events/277077262/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-05-16 10:00:00\";s:8:\"end_date\";s:19:\"2021-05-16 14:00:00\";s:20:\"start_unix_timestamp\";i:1621184400;s:18:\"end_unix_timestamp\";i:1621198800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:3;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:21:\"WP Freelancers Meetup\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/jjtpbsyccjbfb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-03 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-03 12:00:00\";s:20:\"start_unix_timestamp\";i:1622739600;s:18:\"end_unix_timestamp\";i:1622746800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:4;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:37:\"WordPress Developer Meetup: Topic TBD\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/lzwzgsyccjbmb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-09 18:00:00\";s:8:\"end_date\";s:19:\"2021-06-09 20:00:00\";s:20:\"start_unix_timestamp\";i:1623286800;s:18:\"end_unix_timestamp\";i:1623294000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:5;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:31:\"Virtual: WordPress Fundamentals\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/zhfqdsyccjbzb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-19 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-19 12:00:00\";s:20:\"start_unix_timestamp\";i:1624122000;s:18:\"end_unix_timestamp\";i:1624129200;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:6;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:48:\"Online Event: DIY User Group for Bloggers & More\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/dxgdhsyccjbjc/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-26 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-26 12:00:00\";s:20:\"start_unix_timestamp\";i:1624726800;s:18:\"end_unix_timestamp\";i:1624734000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}}}', 'no'), +(5502, '_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3', '1619864950', 'no'), +(5503, '_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:49:\"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"News – – WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-US\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=5.8-alpha-50799\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:10:{i:0;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"Getting Started with the Figma WordPress Design Library\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"https://wordpress.org/news/2021/04/getting-started-with-the-figma-wordpress-design-library/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Uncategorized\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10173\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"Get Started with the Figma WordPress Design Library! \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:26010:\"\n

Created by James Koster, (@jameskoster)

\n\n\n\n

As the name suggests, the WordPress Design Library is a library of WordPress design assets, enabling anyone to quickly create design prototypes for WordPress UI in Figma.

\n\n\n\n

These tools are useful for designers when creating new UI and for anyone looking to contribute ideas, enhancements, or even solutions to bug reports. Sometimes pictures really do speak a thousand words.

\n\n\n\n

In this post, we’ll talk about some key features of Figma before diving into a practical example that demonstrates some of the WordPress Design Library utilities.

\n\n\n\n

What Is Figma?

\n\n\n\n
\"\"
\n\n\n\n

Figma is a collaborative design tool that members of the WordPress project’s design team have been using for several years to work on and share design concepts. It offers a variety of handy features such as: in-browser access, rich prototyping tools, component libraries, code inspectors, live embeds, inline commenting, plugins, and much much more.

\n\n\n\n

Perhaps best of all, it is totally free to sign up and start playing around. If you join the WordPress.org Figma organization (instructions below), you’ll gain access to the WordPress Design Library enabling you to design WordPress UI in no time.

\n\n\n\n

What Is the WordPress Design Library?

\n\n\n\n

In Figma, you can share components and styles by publishing them, transforming your file into a library so that you can use instances of those components in other files.

Figma.com
\n\n\n\n

It may be easiest to think of the WordPress Design Library as a visual representation of all the javascript components that compose UI in the WordPress codebase. As an end user of the library, you can use those components in a self-contained environment to create new interface designs. It’s kind of like a big LEGO box containing all the UI pieces (buttons, form inputs, etc.) that you can use to create and try out new designs.

\n\n\n\n
\"\"\"\"
\n\n\n\n

Creating designs with these assets enables rapid ideation on new interfaces by removing mundane processes that one would ordinarily have to work through. Nobody wants to repeatedly double-check that the button they made perfectly matches the buttons rendered by the code! And on the flip-side of that coin, anyone sharing a design with others will generally endeavor to make specific elements (like buttons) match what exists in the code as closely as possible. The WordPress Design Library solves both these headaches and more.

\n\n\n\n

An additional benefit to these assets visually matching what exists in the codebase is that any designs you create with them will inherently make use of the latest WordPress design language and consequently feel like WordPress with almost no effort required. Passing such designs on to developers makes them easier to interpret and implement too.

\n\n\n\n

Figma Fundamentals

\n\n\n\n

Before getting into the practical section of this post, let’s quickly cover some of the fundamental features of Figma libraries. This will help prepare us for working with the WordPress Design Library.

\n\n\n\n

Components

\n\n\n\n

As we touched on above, the library consists of “components” that serve as visual counterparts to their code-based equivalents. That is to say, there is a Button component in Figma, and a matching Button component in the WordPress codebase.

\n\n\n\n

But what is a Figma component?

\n\n\n\n

Components are elements you can reuse across your designs. They help to create and manage consistent designs across projects.

help.figma.com
\n\n\n\n

Let’s quickly explore some of the properties of Figma components to understand the ways they help when working on our next design.

\n\n\n\n

Variants

\n\n\n\n

Some Figma components offer variants. One example is Button(s) which all have the following states:

\n\n\n\n
  • Resting
  • Hover
  • Focus
  • Disabled
\n\n\n\n

These can be manipulated via the variants interface in Figma:

\n\n\n\n
\"\"
\n\n\n\n

Other examples of components with variants are form inputs and menu items. Variants are a new feature in Figma, so we’ll be adding more over time.

\n\n\n\n

Overrides

\n\n\n\n

Although any components you insert are intrinsically linked to the master component in the library, it is possible to override some properties.

\n\n\n\n

While working with an instance of the Button component, you can change things like the label, or even the background color, while maintaining the link to the master component in the library. If you’re familiar with git workflows, this is kind of like creating a local branch. Any changes you make can easily be reset in a couple of clicks.

\n\n\n\n
\"\"
\n\n\n\n

Overrides made to your local instance will persist even when the master component is updated. So if your design calls for a button with a green background, you can apply that override safely with the knowledge that even if the master component is updated, your button can inherit those updates and remain green.

\n\n\n\n
\n\n\n\n

We’ve only really scratched the surface of components here. So I would recommend the official Figma documentation for more advanced information.

\n\n\n\n

Figma Styles

\n\n\n\n

In addition to components, styles are also published as part of the WordPress Design Library. They have similar properties to components in that a master style exists in the library and can be utilized in your local Figma file. Just like Components, Styles will receive updates when changes to the library are published.

\n\n\n\n

Styles are used to define colors, typographical rules, and effects like drop-shadows present in the WordPress codebase. They enable you to apply things like text or background colors that will match other UI parts.

\n\n\n\n

Using Styles from the library, you ensure that your creations match existing UI elements, making it easier to implement.

\n\n\n\n
\"\"
\n\n\n\n
\n\n\n\n

To learn more about styles in Figma, I recommend the official documentation.

\n\n\n\n

Views and Stickers

\n\n\n\n

“Stickers” are simply arrangements of Components and Styles that have been combined to represent common UI elements. They are not good candidates for full componentization due to their frequent customization needs. Examples of Stickers include the Inspector sidebar and the block inserter:

\n\n\n\n
\"\"
\n\n\n\n

Their utility is simple: find the sticker you need, peel (copy) it from the WordPress Design Library, and stick (paste) it into your local file before customizing as needed.

\n\n\n\n

Stickers are not Figma features like Components and Styles, but any stickers you copy to a working file will stay up to date by virtue of their underlying assets.

\n\n\n\n

Views are arrangements of components, styles, and stickers.

\n\n\n\n

Designing a Block Using the WordPress Design Library

\n\n\n\n

Okay, now that we have a handle on the basics of Figma libraries and their features and the utilities of the WordPress Design Library like Stickers and Views, let’s work through a practical example – designing the UI for a brand new block.

\n\n\n\n

Getting Started

\n\n\n\n

All you need to get started is a Figma account added to the WordPress.org Figma organization.

\n\n\n\n

Once you’ve signed up at Figma, simply join the #Design channel on the community Slack and request an invite. Include your Figma username, and a friendly community member will help get you set up in no time.

\n\n\n\n

Now the fun begins!

\n\n\n\n

To create a fresh new design file in Figma, visit the Gutenberg project and click the “+ New” button.

\n\n\n\n
\"\"
\n\n\n\n

Now let’s include the WordPress Design Library in our working file so that we have access to all the goodies we’ll need:

\n\n\n\n
  1. Open the “Assets” panel and click the little book icon to view the available Team Libraries.
  2. In the modal, toggle the WordPress Design Library on. You can leave the others off for now.
\n\n\n\n
\"\"
\n\n\n\n

After closing the modal, you’ll notice a number of components become visible in the assets panel. To insert them, they can be dragged on to the canvas:

\n\n\n\n
\"\"
\n\n\n\n

It’s kind of like inserting a block \"🙂\"

\n\n\n\n

Creating a Pizza Block \"🍕\"

\n\n\n\n

I love to eat pizza, so for fun, I’m going to design a new block that simply allows the user to display a delicious pizza in their posts and pages. I want the block to include options for a total number of slices and different toppings.

\n\n\n\n

Work Out the Flow

\n\n\n\n

I always like to concentrate on individual flows when designing blocks. That is to say, the linear steps a user will take when working with that block. In this case, I want to create visualizations of the following steps/views in our Figma file:

\n\n\n\n
  1. Inserting the block from the Block Inserter
  2. The Pizza Block placeholder state including options in the block, its Toolbar, and the Inspector
  3. The configured Pizza Block settings
  4. The end result – a delicious pizza sitting comfortably on the canvas
\n\n\n\n

Sketch the New States

\n\n\n\n

Thanks to the WordPress Design Library, I’ll be using as many existing UI components as possible, but I still need a rough idea of how they will be composed in the new interfaces that my Pizza block will require. I normally find it helpful to sketch these out on paper.

\n\n\n\n

Here’s the placeholder state which users will see when they first insert the block. This should be all I need:

\n\n\n\n
\"\"
\n\n\n\n

Prepare the Views and Stickers

\n\n\n\n

Helpfully, there are Views in the WordPress Design Library I can use for each of the steps in the flow outlined above.

\n\n\n\n

I open the library, navigate to the Views page, find the views I need, copy them, and paste into my working file.

\n\n\n\n
\"\"
\n\n\n\n

It is very important to copy (not cut) Views from the library so that they remain intact and other people can still access them. If you cut them, they’ll be gone forever, so please don’t do that \"🙂\"

\n\n\n\n

I’m also going to need a block placeholder sticker, so I navigate to the Stickers page, copy the one that most closely resembles my sketch from before, and paste it into my working file.

\n\n\n\n
\"\"
\n\n\n\n

As with views, please only copy stickers; do not cut them.

\n\n\n\n

Gather the Components

\n\n\n\n

Referring back to the placeholder state I sketched out on paper (it can be helpful to import this into your Figma file), I can see that I’m going to need some form elements to realize the design.

\n\n\n\n
\"\"
\n\n\n\n

I navigate to the Assets panel, locate the components I need, and drag them into my file:

\n\n\n\n
\"\"
\n\n\n\n

Helpful tip: Once a component has been inserted, you can transform it into another component via its settings panel. Sometimes it is easier to copy/paste a component you already inserted and transform it this way, rather than opening the assets panel over and over.

\n\n\n\n

Arrange the Views, Stickers, and Components to Create a Coherent Design

\n\n\n\n

Now that we’ve gathered all the individual pieces we need, it’s simply a case of arranging them so that they resemble each of the steps of the flow we outlined before. This is done with simple drag and drop.

\n\n\n\n

If you’re familiar with software like Photoshop, Sketch, and others, this should feel very familiar.

\n\n\n\n
\"\"
\n\n\n\n

Once everything is in place, our flow is complete:

\n\n\n\n
\"\"
\n\n\n\n

I still find it incredible that we’re able to do this in just a few short moments.

\n\n\n\n

Hook up the Prototype

\n\n\n\n

With each step of our flow created, the last piece of the puzzle is to connect them and form a clickable prototype.

\n\n\n\n

I switch to the Prototype panel and create click behaviors by selecting a layer, then dragging the white dot to the corresponding frame.

\n\n\n\n
\"\"
\n\n\n\n

There are a variety of behaviors that the Figma prototyping tools support, such as a hover, drag, and click. It is even possible to create smart animations. Perhaps that’s something we can explore in another tutorial, but for now, I will refer you to the Figma documentation for more advanced prototyping.

\n\n\n\n

Now that I’ve connected all the appropriate elements, I am able to take my prototype for a test drive by clicking the Play \"▶\" icon:

\n\n\n\n
\"\"
\n\n\n\n

You can try it too; just click here.

\n\n\n\n

That’s All, Folks!

\n\n\n\n

I tried to keep this tutorial fairly simple and concise; even though we only really got to grips with the basics here, you can see the power of Figma and the WordPress Design Library when it comes to trying out new designs.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10173\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"Curious About Full Site Editing?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/curious-about-full-site-editing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:26:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Features\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:7:\"General\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10190\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:296:\"The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more. For […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:2792:\"\n

The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more.

\n\n\n\n

For Site Owners and Operators

\n\n\n\n

If you own and operate a WordPress site, updating to version 5.8 should be a seamless experience, just like any other update. All the conversation around full site editing is very exciting, but shouldn’t be alarming—everything in the next release that relates to full site editing is opt-in. To experiment freely with it, you need a theme that is built for it. Check the links at the end to see a few examples!

\n\n\n\n

For Agencies and Theme/Plugin Developers

\n\n\n\n

If you extend the functionality of the WordPress CMS for clients, updating to version 5.8 should also be seamless. As always, it’s smart to spot-check custom implementations in a staging environment or fully test when the release candidate is made available. Want to test your products and get everything client-ready? Check out any of the testing options below.

\n\n\n\n

For Contributors and Volunteers

\n\n\n\n

If you contribute time and expertise to the WordPress project, you can join us in the interesting work leading up to the WordPress 5.8 release and update your site with the deep satisfaction of a job well done. There is a lot that goes into every release—from design and development to documentation and translation; if you’ve got some time to spare, and want to help support the project that supports the tool that supports your site (whew!), check out the links below.

\n\n\n\n

Resources

\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10190\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:58:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:44:\"WP Briefing: Your Opinion is Our Opportunity\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/your-opinion-is-our-opportunity/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 15:24:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10171\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:148:\"In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/04/WP-Briefing-007.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:13068:\"\n

In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. 

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

0:10

\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

0:39

\n\n\n\n

Prior to Gutenberg, our current multi-year project that is changing the way we see WordPress, another multi-year project changed the way we saw WordPress. Starting in 2008, substantial changes to the WordPress interface came in a series of major releases, starting with WordPress 2.5. That was before my time in the project; I’ve only ever worked with the current dashboard in WordPress. But, from what I’ve read, the user testing that would have gone into it was a huge undertaking and very well coordinated. Now, WordPress has not taken on that type of robust testing project since, but starting around 2014 or 2015, a community testing practice was started. I’ve shared these calls for testing frequently, both on Twitter and in this podcast. But you may not really know why I find the testing program so valuable. So today, I’m going to explore with you the concept of co-developers in open source.

\n\n\n\n

1:52

\n\n\n\n

Open source software, like WordPress, is built by the people who show up. There are a few obvious groups when you think of software, the developers, designers, technical writers, folks who monitor the forums, and really, all the teams you find in our WordPress project. Co-developers or co-creators, if you’ll join me in making our tent a little bigger, refers to the users of an open source product who actively engage and contribute to the work by using the software and sharing any bugs that they find.

\n\n\n\n

2:25

\n\n\n\n

I mentioned this group in the episode about how WordPress improves. Specifically in that episode, I underlined that if you consider users to be part of the collaborative process, as long as people use your product, those people will have opinions about your product’s needs. And today, I’m extending that thought a bit further to say that, as long as there are opinions, there are opportunities.

\n\n\n\n

2:51

\n\n\n\n

When you know what isn’t working, you can focus your attention on a solution, you can focus on making sure that you can make it work. The existence of co-creators is one of the great things about open source. No designer or developer or product owner has to know every sort of user to be able to get feedback from them. If they show up, test the software and get their thoughts written down, then you can start to see patterns and common pain points. It is also, unfortunately, one of the great difficulties of being an open source project. After all, if users don’t show up, or don’t test, or don’t write down their feedback, it’s impossible to know what worked for them and what didn’t. And on top of that, with such a large percentage of the web being supported by WordPress in this case, not every problem is part of a pattern. And not all patterns are part of the current priorities.

\n\n\n\n

3:54

\n\n\n\n

Looking beyond that double-edged sword. Let’s say that this idea of a co-creator makes sense to you. And more than that, you feel like it describes you. What does it mean for you to show up in WordPress? There are lots of good ways to offer this sort of feedback and contribute to those patterns that can help us see through the fog. So I have for you a mini list and, of course, a bunch of links in the show notes for you. 

\n\n\n\n

So some good ways. First, you can participate in any of the dedicated calls for testing. They are short and frequently have a guide. I participate in them and generally find them fun. I say generally because sometimes I also find them frustrating. That’s really okay too; the frustrations helped me to identify that I found a problem. And if I can find a problem, then I have saved someone else from finding that problem in the future. The second thing you can do is file a bug report with information about what happened when you ran into a problem and how someone like me could make your bug happen on their site. Bug

\n\n\n\n

5:00

\n\n\n\n

Reporting is one of the things I’ve grown to really love in my time and open source; I did not love it. At first, I was really scared to do it. I mostly used to send videos of the bugs that I found to other people and ask them to file the bug reports for me. But then, of course, I never knew whether they got fixed or not. So I was scared to do it at first. But once I figured out what makes a “good report,” I felt like I was helping circle hidden treasure on a map or something. I realized also not everyone’s excited about finding hidden treasure on a map. But I play video games and finding hidden treasure on maps is, like, a thing.

\n\n\n\n

5:43

\n\n\n\n

A third really great way to contribute like this is that you can join any community meeting to learn more about what’s happening now and in the future, or just to see what makes WordPress work. As a heads up, these meetings go really fast. And they’re all in text. And there’s sometimes, but not all the time, a little bit of jargon that you have to head to your favorite search engine to find. But I sit in on about half of them myself and get a lot of really good information about things that I’ve been wondering about, things that looked broken, but actually are functioning exactly the way that they should. And I just didn’t want them to function that way. And more often than not, I found out that something that I thought was broken, was already identified and being fixed. Those are three great ways to show up and help give feedback that helps make WordPress better and more functional for more people. 

\n\n\n\n

There are also a few other ways that we see people trying to share that feedback that don’t work quite as well. And I’m going to touch on a few of them just because it’s important to know, as you’re trying to figure out how to get started with this. The first one is just tweeting your frustrations, and I get it like that’s literally what Twitter is for.

\n\n\n\n

7:03

\n\n\n\n

But also it’s hard to create a block from “I am frustrated, behold my hateful rhetoric.” Not that any of you, my dear listeners, ever tweet hateful rhetoric. Still, that is really hard for anyone to figure out what was actually wrong in that moment. Another thing that is not the most functional way to give feedback is review brigading. The Internet rewards this kind of behavior, but I have found at least for WordPress, those false positives and false negatives can be really confusing for our new users. And the third way, that’s not our best way, and probably is the least best way, is just by giving up and not telling anyone what broke for you.

\n\n\n\n

7:45

\n\n\n\n

I know that I already said it’s not possible to fix everyone’s problems. But while it’s not possible to fix everyone’s problems the moment they get shared, it’s also truly impossible to fix any problems that no one knows exist. And so giving up and not sharing an issue so that we can identify it as part of a pattern of problems is probably the least effective way to help us help you get your problem solved.

\n\n\n\n

8:13

\n\n\n\n

This brings me back to the question of the value of WordPress users as co creators in the development process. As WordPress grows, both in usage as a CMS and in participation as a community, it’s important for us to shed the idea that software creation is only about what literally can be done to code or what literally can be done to core or what literally can be done to the CMS. It’s also important for us to constantly remind ourselves that the best outcomes are the result of collaboration with the people who use WordPress the most. I know that not every type of user we have is showing up to give us feedback about where WordPress doesn’t work for them. And I would love to see more feedback that helps us to figure out where our patterns are.

\n\n\n\n

9:03

\n\n\n\n

So the bottom line is this without user feedback that has some clarity of what was expected versus what happened, the work to make a good choice involves a whole lot of guessing. So since open source software is built by the people who show up, I hope this gives you an idea of how you can show up and help improve the tool that powers your sites.

\n\n\n\n

9:32

\n\n\n\n

That brings us to today’s community highlight every episode or so I share either a great story of WordPress success or a great story of a WordPress contributor who helped some folks along the way. Today’s community highlight comes from @trishacodes who shared one of her early to WordPress mentors. She says “@RianRietveld was such an encouragement and helped me find the courage to speak up.” I have had myself many conversations with Rian, and that rings true for me as well. 

\n\n\n\n

10:00

\n\n\n\n

That brings us to the moment you’ve all been waiting for, the small list of big things. It’s actually kind of a medium list. Today, I’ve got four whole things to share with you all. The first thing on my list is that WordCamp Europe is coming, that will be June 7th through the 10th. It’s a multi-day online event. I will share in the show notes a link to the main website; there you can get an idea of what will happen, the schedule, and get your hands on some tickets so that you can get it in your calendar and prepare yourselves. 

\n\n\n\n

The second thing I want to share is for all of our polyglots out there. The French team is planning a translation day coming up on April 30. I will share a link to that as well so that you can get an idea of what that takes if you’re feeling like you want to do some translation work. The third thing I want to share is that the Indian community in Pune actually started a new meetup series. It is a translation work along self-study – also for all of our polyglots out there. I would love to see as many people as are interested in both learning about how to do translations and certainly translating WordPress get registered for that. A final thing I want to share with you all is that if you are curious about what full site editing features will be included in the 5.8 release, that’s the WordPress release that’s coming out in the middle of July, you can check out my recap and recording of the demo that was held with Matt, Matias, and the rest of the team. There’s are also a number of other posts of next step ideas that I will share in the show notes as well.

\n\n\n\n

11:51

\n\n\n\n

That, my friends, is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10171\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Become an Early Adopter With the Gutenberg Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wordpress.org/news/2021/04/become-an-early-adopter-with-the-gutenberg-plugin/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 21:03:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:13:\"Uncategorized\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10164\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:372:\"Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce) In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4695:\"\n

Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce)

\n\n\n\n
\"\"
\n\n\n\n

In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project itself, you may also have heard some additional nuances—Gutenberg plugin, Gutenberg, or Block Editor. 

\n\n\n\n

It can get a little confusing, so let’s take a look at four terms that will help you find your way: 

\n\n\n\n
  • WordPress – WordPress refers to the open source software but also to the community that surrounds it. 
  • Gutenberg – Gutenberg is the code name for a multi-year project to update editing areas for the WordPress software.
  • Editor – The editor refers to a section of the software that allows you to update content on your site’s posts and pages. 
  • Gutenberg Plugin – The Gutenberg plugin is where early work to update the editor is shared.
\n\n\n\n

The Gutenberg Plugin

\n\n\n\n

Now that we’ve cleared up the definitions, let’s talk about the plugin. When might you use it? What would you use it for? You can think of it as an early access program or a “WordPress lab.” The plugin is updated every two weeks, which means that bugs that have been reported are often fixed and that what you see changes rapidly. 

\n\n\n\n

The Gutenberg plugin also contains features that aren’t yet ready for their WordPress debut but are ready for curious users to test and provide feedback. This is a common practice that allows stable features to make it to your site in WordPress releases while allowing experimental features to be tested and refined. To get a sense of whether using the Gutenberg Plugin might be something you want to explore to get access to earlier features, check out the “What’s New” release posts and the Core Editor Improvement post series

\n\n\n\n

Do I Need the Plugin to Use Gutenberg?

\n\n\n\n

It depends on your comfort level! Generally speaking, it is not recommended to use the plugin on a site that has launched and is actively in use unless you’re very comfortable with the code side of WordPress. Fortunately, each WordPress release comes ready to go with multiple versions of the Gutenberg plugin

\n\n\n\n

But if you are a keen beta tester who loves reporting feedback, or you feel comfortable navigating how to opt-in/out of the experimental aspects of the plugin, here are a few reasons you might want to dig into what the Gutenberg Plugin has to offer:

\n\n\n\n
  • Test new features and give helpful feedback. For example, you can use the plugin to help test Full Site Editing
  • Get early access to the latest & greatest while navigating when to opt-in or out of experimental features. 
  • Prepare for the future whether you’re a theme author, plugin developer, agency owner, etc. 
\n\n\n\n

Do you use the Gutenberg plugin and share feedback on GitHub? Thank you! This kind of feedback is what helps ensure stability in what’s shipped in WordPress releases. 

\n\n\n\n
\n\n\n\n

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10164\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Security\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:365:\"WordPress 5.7.1 is now available! This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated. WordPress 5.7.1 is a short-cycle security and maintenance release. The next […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8461:\"\n

WordPress 5.7.1 is now available!

\n\n\n\n

This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

\n\n\n\n

WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

\n\n\n\n

You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

\n\n\n\n

If you have sites that support automatic background updates, they’ve already started the update process.

\n\n\n\n

Security Updates

\n\n\n\n

Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

\n\n\n\n
  • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
  • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
\n\n\n\n

Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

\n\n\n\n

Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

\n\n\n\n

For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

\n\n\n\n

In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

\n\n\n\n

99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:16:\"ContributorStory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"WordPress journey\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:117:\"In this People of WordPress contributor story, we chat with Tyler Lau from Kansas, US, on his journey with WordPress.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10363:\"\n

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n

Embrace Who You Are and Your Journey

\n\n\n\n

In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

\n\n\n\n

Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

\n\n\n\n
\"Tyler
\n\n\n\n

An Entrepreneurial Mindset

\n\n\n\n

Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

\n\n\n\n

While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

\n\n\n\n

He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

\n\n\n\n

Using your skills to uncover your journey

\n\n\n\n
\"Tyler
\n\n\n\n

Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

\n\n\n\n

These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

\n\n\n\n

In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

\n\n\n\n

Relationship-building as a career

\n\n\n\n

Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

\n\n\n\n

When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

\n\n\n\n

Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

\n\n\n\n

The true meaning of freedom

\n\n\n\n

In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

\n\n\n\n

Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

\n\n\n\n

He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

\n\n\n\n

There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

\n\n\n\n

Going forward positively 

\n\n\n\n
\"Tyler
\n\n\n\n

The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

\n\n\n\n

He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

\n\n\n\n

I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

\n\n\n\n

Now, he’s able to put those skills to good use in the WordPress community and beyond. 

\n\n\n\n

He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

\n\n\n\n

Contributors

\n\n\n\n

Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

\n\n\n\n

Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

\n\n\n\n
\"HeroPress
\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

\n\n\n\n

Meet more WordPress community members in our People of WordPress series.

\n\n\n\n

#ContributorStory #HeroPress

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:246:\"In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/04/WP-Briefing-006.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9292:\"\n

In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

\n\n\n\n

Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

\n\n\n\n

Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

\n\n\n\n

Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

\n\n\n\n

Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

\n\n\n\n

There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

\n\n\n\n

That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

\n\n\n\n

WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

\n\n\n\n

Later, the community picked me up when I became seriously ill. 

\n\n\n\n

So I can say from the bottom of my heart, that working with WordPress has saved my life.

\n\n\n\n

And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

\n\n\n\n

The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

\n\n\n\n

The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

\n\n\n\n

Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"The Month in WordPress: March 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/04/the-month-in-wordpress-march-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 03 Apr 2021 16:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Month in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10084\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:319:\"This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution. These words from Josepha Haden Chomphosy on […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9821:\"\n

This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

\n\n\n\n

These words from Josepha Haden Chomphosy on the How WordPress Improves episode of the WP Briefing Podcast point to the factors that differentiate building software in an open-source environment. Our updates this month are closely tied to the philosophy behind those core principles of open source software. 

\n\n\n\n
\n\n\n\n

WordPress 5.7 released

\n\n\n\n

WordPress version 5.7 “Esperanza,” came out on March 9. The release offers fresher admin colors, several improvements to the block editor, single-click HTTP to HTTPS migration, and a new Robots API. Read more about it in the release post, the field guide, and the talking points post for meetup groups. The Core Team has also started work on WordPress 5.8 pre-planning.

\n\n\n\n

Want to contribute to WordPress 5.8? Join the WordPress #core channel in the Make WordPress Slack and follow the Core Team blog. The Core Team hosts weekly chats on Wednesdays at 5 AM and 8 PM UTC. 

\n\n\n\n

Gutenberg Version 10.1 and 10.2 are out

\n\n\n\n

Contributor teams released Gutenberg Version 10.1 on March 3 and Version 10.2 on March 17.

\n\n\n\n

Version 10.1 showcases significant improvements to reusable blocks, a clearer image toolbar, and spatial options for the social media block. Version 10.2 offers block pattern options to display contents from the query block and removes writing prompts from empty paragraphs in the editor. It also adds width adjustment for spacer blocks in horizontal parent blocks and the ability to transform media and text blocks into columns.

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core Team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Make WordPress Slack. The “What’s next in Gutenberg” post offers more details on the latest updates. Don’t miss the monthly Gutenberg tutorial on How to make block patterns!

\n\n\n\n

Full Site Editing updates

\n\n\n\n

March saw a plethora of updates to the Full Site Editing project!

\n\n\n\n\n\n\n\n

Proposal launched for a WordPress contributor handbook

\n\n\n\n

A proposal has been kicked off on building a project-wide WordPress contributor handbook. The handbook will have content around the WordPress project’s underlying philosophies and commitments, along with shared expectations on working together and building products. It will also contain modern open source best practices for WordPress. 

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10084\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:68:\"\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"So you want to make block patterns?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/03/so-you-want-to-make-block-patterns/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 17:01:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Features\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:9:\"tutorials\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9995\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"Learn how to make block patterns!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:2:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:59:\"https://wordpress.org/news/files/2021/03/reusable-block.mp4\";s:6:\"length\";s:6:\"273436\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:58:\"https://wordpress.org/news/files/2021/03/waves-pattern.mp4\";s:6:\"length\";s:6:\"493389\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Beatriz Fialho\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:22433:\"\n
\"\"
\n\n\n\n

If you’ve ever built something for the WordPress block editor — a theme or a plugin — you may have also heard about block patterns.

\n\n\n\n

Looking at the patterns that come bundled with WordPress, I thought it would be nice to dedicate to them a short post. They’re pretty nice, useful shortcuts when you know them, but there’s a good chance you may not know what they are or why you might want to use them.

\n\n\n\n

What’s a block pattern?

\n\n\n\n

Patterns are collections of pre-arranged blocks that can be combined and arranged in many ways making it easier to create beautiful content. They act as a head-start, leaving you to plug and play with your content as you see fit and be as simple as single blocks or as complex as a full-page layout.

\n\n\n\n
\"\"
\n\n\n\n

They live in a tab in the block library. You can click or drag and you’re able to preview them with your site’s styles.

\n\n\n\n
\"\"
\n\n\n\n

Basically, a block pattern is just a bunch of blocks put together in advance:

\n\n\n\n
	<!-- wp:group -->\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator -->\n<!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} -->\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div>\n<!-- /wp:image -->\n<!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} -->\n<blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote>\n<!-- /wp:quote -->\n<!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator --></div></div>\n<!-- /wp:group -->
\n\n\n\n

That’s also how you create them: just use the block editor to configure a smattering of blocks to your liking, and the hard part’s over.

\n\n\n\n

How do I get them in the block library?

\n\n\n\n

There’s more documentation in the handbook, but what it boils down to is this:

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

\"👆\" That’s a snippet of PHP, which means you can drop it in a WordPress plugin, or perhaps more simply, paste it into the functions.php file from your theme. Done:

\n\n\n\n
\"\"
\n\n\n\n

For patterns that include images, it’s worth thinking about where those are stored. The TT1 Blocks theme (which is a fancy name for “TwentyTwentyOne Blocks”) stores images in the theme library.

\n\n\n\n

Now what?

\n\n\n\n

The thing about a block pattern is, as soon as you insert it from the block library, it stops being a cohesive unit — now it’s just a smattering of blocks, detached from the pattern you created and meant to be customized to your liking. It’s a shortcut, not a template. That also means you don’t have to worry about switching themes or deactivating pattern plugins: the blocks you already inserted won’t go anywhere.

\n\n\n\n

That being said, if you like this one pattern so much you want to use it again and again, with no customization at all, you can make it into a reusable block:

\n\n\n\n
\n\n\n\n

Reusable blocks are created, as the name implies, to be reused. The feature is a great way to store small bits of commonly used snippets that you can edit in one place to update in all. “Follow me on Twitter,” “Article series, or “Subscribe to my podcast” are great examples of that.

\n\n\n\n

What makes a good block pattern?

\n\n\n\n

Patterns, as they ship today, are limited by the features available. If the block editor doesn’t allow you to customize letter-spacing, your block pattern can’t either. While the Global Styles project will expand what’s to blocks, in the meantime, we have to work with the available tools.

\n\n\n\n

Even then, with the most basic ingredients — color, photography, typography — it is possible to do a lot:

\n\n\n\n
\"\"
Three columns with images and text
\n\n\n\n
\"\"
Media and text with image on the right
\n\n\n\n

I designed these patterns to potentially land in WordPress core, which all have a few properties in common:

\n\n\n\n

They share a theme.

\n\n\n\n

You can think of a pattern as a section of a website: it is meant to be part of a whole, and so it works best when it can exist in the context of other patterns that share the same theme. There are a few sharing a Nature theme in the patterns above, a few sharing an Art theme, and others sharing an Architecture theme. When seen together, it becomes easier to see how you might be able to piece together multiple pages of your site, one page at a time.

\n\n\n\n\n\n\n\n

They share a minimalist color palette.

\n\n\n\n

By being parts of a whole, patterns will inevitably land in a context that uses different colors. With a reduced color palette, there’s both a better chance of fitting in and less to customize to make it just right.

\n\n\n\n\n\n\n\n

The best patterns do things you might have not done otherwise.

\n\n\n\n

Whether that’s images offset to create a unique silhouette, or just using less visible features (like fixed positioning in the Cover block), it’s a way to surface creativity.

\n\n\n\n

Tip: You can use any block in your patterns, including blocks that came from a plugin. And if that block is in the block directory, it will prompt you to install it with one click if it’s missing from your self-hosted WordPress:

\n\n\n\n
\n\n\n\n

Here’s a plugin for you

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

In case you want to make patterns, this example plugin features two of the patterns you saw above. Drop it in your plugins folder and they should show up in your block library.

\n\n\n\n
\"\"
Installed pattern under “Text” Category
\n\n\n\n

Feel free to tweak it, customize it, and make it yours. It’s GPL, after all!

\n\n\n\n
\n\n\n\n

Thank you @joen for the help writing this post.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9995\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"WP Briefing: Talking Full Site Editing with Matías Ventura\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2021/03/talking-full-site-editing-with-matias-ventura/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 15:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10013\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:296:\"In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.\" Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/03/WP-Briefing-005.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:31294:\"\n

In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.” Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

Josepha [0:41]: This month, we have a bonus briefing, so I’ve asked my dear friend and colleague Matías Ventura to join me. Matías was recently called “the spark behind the vision of Gutenberg.” With full site editing coming our way in 202, I asked if he would join me for a quick Q&A. Welcome, Matías. 

\n\n\n\n

Matías [0:56]: Hello, hello! Thanks for inviting me. It’s a pleasure to be here.

\n\n\n\n

Josepha [1:00]: Well, I’m delighted to have you. And I think that we have a lot of excellent questions. All right, so Matías, we actually ended up with questions in about three different groupings. And so I’m going to start with the “what is it about full site editing,” sorts of questions that people had. We’re gonna work our way into “what are we doing with it?” and then “how are we planning on getting this out the door?” Then, a couple of big picture questions that people asked. We’re just gonna leap right in this full site editing part of the Gutenberg plugin, or is it a standalone plugin?

\n\n\n\n

Matías [1:39]: Okay, we’ll start with the basics. Full site editing is part of the Gutenberg plugin right now. I think it’s important to mention that full site editing is like an umbrella for several projects that we’re working on. They are all aiming to bring blocks into more parts of your site so that editing becomes easier and more expressive, and so on. So full site editing right now encompasses adding a ton of new blocks. I think we have around 20 new blocks coming in, including navigation query, site, title, logo, etc. There’s also the interface to interact with templates outside of the content; that’s another big part of the full site editing project. We also have a lot of new design tools included, many of these have been released in previous major releases, but they still comprise a strong part of what full site editing is. We also have something called Global Styles, which aims to allow people to configure the visual aspects of blogs across the entire site, not just on any individual blog. And of course, then there’s a whole layer of how we utilize these tools. It can get complex because there are many layers and projects that need to come together. So yeah, all of these are accessible through the Gutenberg plugin right now.

\n\n\n\n

Josepha [3:07]: Yeah. So it’s not a standalone plugin. If you wanted to check out full site editing the site editor experience as it is now, you would just have to make sure you had the Gutenberg plugin on your site. Right?

\n\n\n\n

Matías: Yes, correct.

\n\n\n\n

Josepha:  So a couple of the questions related to this are how exactly do I enable it on my site? And what is the easiest and safest way to try this on my site? And I think the answer is, is right in there. It’s in the Gutenberg plugin. And so if you have that plugin, you don’t need the testing plugin or anything else to make that work, right?

\n\n\n\n

Matías [3:51]:  No, you like, you might need to install a theme like Twenty Twenty One blocks that unlock some of these new interfaces that we just talked about. Like other of these pieces are available for anything. But some of these, like the interface to edit templates, right now only talk with things that know how to express their desire. 

\n\n\n\n

Josepha [4:14]: And I think we have less than 10 themes right now that do that, but I’ll leave some links to at least 2021 blocks in the show notes. And then, if there are another one or two themes that I can find, I can add those in there as well. 

\n\n\n\n

So you have to have the Gutenberg plugin; you have to have a theme that works with that site editor kind of experience. And then you’re safe to try everything out. It shows up in your left toolbar just like any other thing, like if you were working with plugins, or if you were adding a post or anything else, right?

\n\n\n\n

Matías [4:51]: Yes, correct. And so, some of these details are being worked on right now. Like how and where you access things, and so on. These things are subject to change, but right now, you have this site editor beta in the sidebar when both you have the plugin running and a theme that’s capable.

\n\n\n\n

Josepha [5:10]: Yeah. Excellent note. If you are running this on a production website, I would recommend you not do that unless you are very, very good with WordPress. It’s a really safe and easy thing to test and try out. But because it is still in beta, I recommend always putting it on a test site. I have a couple of different test sites that I run on myself. Another question that I had was, “will full site editing slow down my site?” And I think we have some refreshed performance tests coming out about that. And maybe they’ll be out by the time we publish this podcast.

\n\n\n\n

Matías [5:49]: Yeah, I mean, like the performance has been one of the major focuses for the whole project. In many cases, it should speed up things because we’re like, I think one of the big pieces that these projects bring into the picture, especially for themes, is that it allows only the necessary assets to be loaded on the front end. For example, if for a given page, there are, I don’t know, 10-15 blocks being used, you would only get the CSS and scrapes and so on related to those blocks. This can cut down on a lot a ton of CSS that themes used to end queue on a side, particularly if you were trying to customize many widgets and so on, like a lot of themes have the full styles or multiple widgets, even third party plugins, and so on. So one of the advantages of having this blog system is that we can know at the time of rendering what blogs are being used and only load those assets. 

\n\n\n\n

Josepha [6:50]: Excellent. Another big question that we have is, “does full site editing work with the classic editor? And does it work with other builders?” I think that’s a really big answer if you’re going to get super deep into it. But I think that the short answer is yes, it does. Is that fair?

\n\n\n\n

Matías [7:08]: Yeah, I don’t think it touches a bit on that full site editing is not like a single thing. There are multiple projects around it. So again, like the template editor that only deals with blogs, it doesn’t have a lot to do with a classic editor. But the classic editor use for both doesn’t change anything at all; like the same way that when the block editor was introduced, it didn’t change how you could still write posts in the classic editor. You will still be able to do that.

\n\n\n\n

Josepha [7:41]: And if you are brand new to WordPress person, or, I mean, I guess at this point, you don’t have to be super brand new. If you’re fairly new to WordPress person and have no idea what we’re talking about when we say the classic editor, you don’t really have to worry about it either. You don’t have to go and find out what that is; the block editor that you have right now works perfectly for what you’re trying to do. So if you don’t know what I mean when I say classic editor, don’t worry about chasing it down either. 

\n\n\n\n

I think that this last question we accidentally answered earlier, but I’m going to go ahead and ask it anyway since I received it. “I keep hearing that you can use the site editor with the 2021 theme. But I don’t seem to be able to. What am I missing?” I think the answer is that there’s the Twenty Twenty One theme shipped with the WordPress release 5.6. And then there is the Twenty Twenty One blocks theme; those are two different themes. The link to the Twenty Twenty One block theme is going to be in our show notes this time around. And so, if you have been trying to use the full site editor with Twenty Twenty One and not succeeding, try the link to the one below. And I bet that that will work for you.

\n\n\n\n

Matías [8:50]: Yes, that’s correct. 

\n\n\n\n

Josepha [8:51]: All right, excellent. Well, that brings us kind of into our second set of questions, which is about how we are doing it. The first one that folks have is “will full site editing be on by default in the next release. In this context, the next release is WordPress 5.8. But I think it’s a safe question to ask if full site editing will be on by default in the release that it’s planned for.

\n\n\n\n

Matías [9:15]: Yeah, and for this, I need to go back to the same principle of many projects because there are many pieces of full site editing, and we have been merging them in major releases, particularly like the blocks and the design tools. There are more coming in that we want to make accessible as soon as possible. The full experience that requires a theme to opt-in to templates using blogs won’t be by default; it requires a specific theme running. A lot of these details we’re still like determining exactly what projects are ready to be merged and so on. But yeah, if you have a theme right now that works the way you want, it doesn’t change anything there. If anything, it adds some more capabilities and more customization tools, and so on. And the theme can also regulate how much they want to incorporate.

\n\n\n\n

Josepha [10:13]: Matías, you’ve mentioned a couple of times in this podcast so far like this is a really complex and really complicated part of this work. And just for anyone out there who’s either encountering Gutenberg or full site editing or this podcast for the first time, I think a tiny bit of context that’s worth having here is that Matías and I have been working on this together in various capacities for like, five years. And Matías has probably been working on this for practically a decade. So, when we say that this is a really complicated problem, and when we say that this is a complex set of issues that we’re working with like, it is all that we have been thinking about for I want to say at least the last three or four years, but certainly it’s all that we have been trying to untangle for quite a bit of time before that as well. So we don’t take it lightly when we’re like, “this is complicated;” we mean it. It’s really complicated. And we’re trying our hardest over here as WordPress. 

\n\n\n\n

The next big question, since we’re all stuck in the “it’s very complicated,” part of things is the question, “will this update break my current site?” Like, if I have a site that is updated and ready, and it’s exactly as I wanted it to be, and it took me two years to get there will full site editing, whichever release it’s in. Currently, 5.8 is what we’re planning for. Will that break anything on my site as I know it right now?

\n\n\n\n

Matías [11:44]: No, not at all. One of the major things that the WordPress team, the WordPress community, always cares so much about, never to break things. Many of these things are stepping stones that you can adopt, as we’ve talked about full site editing. But for example, we also have a few concurrent projects around the widget screen and the navigation screen that are meant to bring blocks into existing interfaces. So again, the theme doesn’t need to change, and a lot of care is being put into making this more like you’re unlocking new features, and nothing really breaks or falls apart.

\n\n\n\n

Josepha [12:23]: This update, like all the other updates, should have minimal, minimal impact on what you have to actively fix on your site. Every once in a while, a bug is gonna get by. We can’t say that we’re 100% perfect with not breaking things. But also, we always and I and I know that we’re planning on this for our remaining releases for the rest of the year. At the very least, I can’t imagine we’d ever change it. But after every major release, we always make a plan to have a minor release within the next one or two weeks. Because we know that a broken thing on a site is really incredibly impactful, even if you’re only 1% of the sites that had that happen to it. And so I think that’s true in this case, too. And getting that feedback back from all of the people who are actually using WordPress is the thing that makes us be able to kind of move quickly when we do see those problems. 

\n\n\n\n

One of the questions that we have been getting is, “can I see a live preview without saving the changes that I made?” When I got this question, I didn’t actually understand it. And so I went and looked at a site without the Gutenberg plugin on it, and then a site with the Gutenberg plugin on it. And of course, on sites without Gutenberg, without the block editor, without full site editing, when you are looking to preview, you have the option to open up your preview in a new window. And you don’t have that with Gutenberg because it’s supposed to be a true WYSIWYG editor. A true what you see is what you get, editor. I think that the answer to this is, yes, you can see a live preview without actually saving the changes on the front end of your site. But you don’t actually have to reload anything. You don’t have to open it up in a new window. You don’t have to, like, actively click “please show me a preview” because what you see in your editing screen should be what you see at the end of your app as an end-user.

\n\n\n\n

Matías [14:28]: Yeah, that’s the sort of the main gist to it. Yes, the site editor is built so that it always reflects the front end as truly as possible, so that’s one layer. Also, the preview tools should allow you to see in different devices like mobile breakpoints, and I don’t know if they will have breakpoints and stuff like that. There are a lot of things in the current interface that is just not enabled. There are some challenges in the sidebar. Because the site editor is not just focused on a single post, it’s focused on the entire site. So, there can be many, many changes that need to be shadowed for the site. 

\n\n\n\n

If you’re changing the site title, some of the global styles, aspects, and so on need to be orchestrated. So, to see in the previewing new window, there are some challenges there to integrate. Again, the interface is not final yet; a lot of these things are still being tweaked and improved. There are many things from the regular post editor that are not enabled yet. But they will be enabled. So yeah, it’s a, I guess, it’s not a simple thing to answer. Because, again, the idea of previewing the site that’s core to the whole project is that you’re always interacting in the same way that when you’re in the customizer, you’re seeing the preview all the time. That’s the main scope of this project,

\n\n\n\n

Josepha [15:54]: Excellent. Changes like that changes to your workflow can be really hard to get your mind around, especially if part of that existing workflow was there to create some confidence in what you’re seeing with your users. And so I understand. Now that I’ve researched that question a bit, I see where that’s coming from. Based on existing workflows and existing patterns that we have for ourselves in WordPress, will we need to have a theme to use the full site editor?

\n\n\n\n

Matías [16:33]: I think we’ve already covered some of these. And again, they are tools that can work on any existing theme. There is other stuff that needs space-specific themes to opt-in into these tools, like blog templates and so on.

\n\n\n\n

Josepha [16:50]: Yes, I think the question that we have next, because I see that the literal next question I have is actually something we have covered; just because we’re being pretty conversational about it, not because anyone already asked the question. So I’m actually going to skip to the last question of this section that I received. I got this next one via Twitter. The question is, “how do you view the role of themes once full site editing is fully rolled out and all the page elements (content, headers, widgets, footers, etc.) and all the views are managed via blocks and block patterns? Will things become typographic and block styles?”

\n\n\n\n

Matías [17:28]: I think this is a great question because it goes to the heart of, why are we doing all this. One of the main reasons is to empower users more. WordPress has been democratizing publishing for a while; this is another step into allowing themes to get more customization tools and more control over their site if they want to. I think the recent call for testing has focused on the 404 page, for example. That’s something that forever has been locked away from users. And it’s also something that, as a theme developer, and I used to develop themes a long time ago, that was one of the things where you decide what sort of approach you take for the 404 page. Maybe sometimes you want to have something more whimsical. Sometimes you need something more serious. And committing to one when you can have such a diverse and broad user base can be challenging. With these, it becomes as easy as offering a few different patterns for that template. Then the user will always be able to change the copy and modify something. So again, it opens up a lot of these things that used to be locked down. However, from a theme perspective, I think this doesn’t reduce the theme at all. If anything, it allows the theme to focus less on coding and functions and more on design expression and aesthetics. I don’t think that would ever be exhausted. That will always remain as diverse as humans are interacting with WordPress. And so it’s not that I don’t see it’s just as like, typographic and block styles. How do you express a template, how do you express the structure, what choices you quote, what choices you make as a theme builder? And of course, there are many degrees of control there. Because a site maintainer may not want the 404 template to be editable, that sort of control will always be present.

\n\n\n\n

Josepha [19:38]: Yeah. And really fast. I have to add a caveat to a thing that you said in there. For anyone who’s listening keenly, you may have heard Matías say that the users can update any of the content there – any of the copy. In this context, we’re talking about users as in the people who are maintaining the site, not people who are visiting your site. Visitors to your site will not be able to change any copy on your page unless you’ve done something very interesting with your WordPress site, which is also fine if that’s what you prefer to do. By default, your visitors can’t change everything on your website, which is good news, frankly.

\n\n\n\n

So I’ve got one logistics question, which I’m happy to take. And then one is kind of a big picture question that I also got from Twitter. “What about the classic editor block; what is going to happen to that? And when will we know?” So ages and ages ago, before COVID? I think so. Probably maybe a couple of years ago, Matt said that the classic editor plugin would be supported through the end of 2021. And that is still the case; there will be active support on that through the end of 2021. After that, it will not be actively supported anymore. It won’t be removed from any place that you can get access to right now. In a “this is the end of its lifecycle” sort of way, we just won’t have anyone who is currently committed to maintaining that plugin anymore. So that’s what’s happening at the end of the year. And yeah, at the end of 2021. The big question that we have is, “why is full site editing being so rushed?” I think this is a bit of a loaded question.

\n\n\n\n

Matías [21:32]: Yeah, I think I think it’s still a fair question, though. I think we’re dealing with two things here. And one is ensuring that we release things in the best state possible. And also, some of the urgency is to offer tools that we know that people lack right now and that could really benefit from. Making that determination is very tricky. The full site editing project has been in the works for the last couple of years. If we count the initial phase of Gutenberg, that’s four to five years. We’ve been doing many calls for testing, which I think have been super useful to catch issues and reflect as a community on where things are going; how do we integrate with these? How do we use it? What are the shortcomings? What do we need to do? Based on all of these, we’ll continue to make decisions on when things become ready. We’re not committed to releasing something that’s not in a good state. And I think we will always be very careful about that. There are these two competing senses of the urgency – of getting some of these tools out, and because it also benefits from the feedback loops. I always say that, in many ways, the initial phase of Gutenberg, to me, is not finished. We took the initial two years to do the 5.0 release, the initial block editor, and so on. But, it’s still being improved at a very fast pace, among all the recent major releases improvements to the editor were included; that will continue to be the case. In many ways, phase one is not finished. And the moment we choose to release some of these tools or editing tools, it won’t be finished either. They will need to continue to grow, mature, and incorporate a lot of the feedback. Even the things that the ecosystem is building around. I’ve seen a few themes already that are incorporating a blank canvas template so that you can use them in some pages and take over and do everything with blocks. So even the community and ecosystem as a whole is also sort of paving the way for what needs to come.

\n\n\n\n

Josepha [24:06]: I think from my perspective, and of course, I’m on the people side of things, the communication side of things, the logistics side of things; I have a frequently a very different view from what a lot of other folks are seeing. And so from my side of things, I have to say, I’m communicating about this change in a really broad way, which has not been happening since 2019 when we started the work. We’ve been communicating broadly with the WordPress community, but not with everybody who uses WordPress. So, I think that for a lot of people, this looks like a project that we started really actively working on in the last six months or so. And now we’re just racing toward a finish line. I think that there’s, there’s not been a lot of awareness of everything that’s gone into it. And so, on the one hand, it feels a little less rushed to me knowing the full length of the history on this. But also, as you said, I really think that this gets a bunch of tools to people who otherwise have not been able to accomplish these things in WordPress or otherwise. I am so anxious to get something to people who really can benefit from this change the most. And it’s the nature of the open source, right that like, one, as long as you have users, you’re going to have stuff you have to fix in your software. So we’re never really, really going to be done with this; there’s not going to be like a done point of WordPress. And the second thing is, I think it’s generally true that you don’t really start getting full user feedback until after you have launched your major release. I think that we see that a lot in open source software; you can bring in as many people as you think you can in your user tests heading up to it. And in your accessibility tests. And, in general, quality assurance tests. You can bring in a lot of people and still not have gotten the full understanding of the various niche use cases that your users will bring to you. Because at this point, we’re like 40% of the web. And that means that we’re serving this majority collection of increasingly minority voices and niche voices in the space. And so, a little bit I feel a sense of urgency; I feel a bit of anxiousness about trying to get this out there for one, to get the tools in the hands of the people who can benefit the most from them, but also so that we can start really getting the full stress test of this software out and get that feedback in so that we can really build something responsive to what our users need our long tail, “anyone who ever uses WordPress ever,” definition of users. And so, that’s why I feel a sense of urgency around it. Even though you know, as I said, you and I have been working on this for like five years, and you’ve been working on it for a decade or something. I actually don’t know how long it’s been worked on.

\n\n\n\n

Matías [27:35]: Now that makes me feel a bit old.

\n\n\n\n

Josepha [27:40]: Nobody makes Matías feel old. He is a lovely, wonderful colleague. Sorry, Matías, If I made you feel old.

\n\n\n\n

Matías [27:46]: No, that’s totally fine. I also want to add that full site editing is not like a single toggle that’s going to drop into a major release. So I think that’s important to consider, I think this entire year is going to see a lot of these tools being, and sometimes the sort of the end-user is not the, again, the site maintainer. Still, you can also be the theme developer; I think there are many tools that would be empowering for theme developers to use. Again, we mentioned there are like five to ten themes, block themes right now. That needs to grow a lot, and that only grows through these sorts of feedback loops. And the theme community pushing things forward and seeing where things can lead to. I’m very excited about the pattern directory integration because I think that can also combine with blog themes in very powerful ways. Imagine if, I don’t know many of these patterns that are very common on the web and very needed, that if we can refine them together with a second community and make them available across themes, you can combine a header from one theme with a content of another; all these sorts of mixtures could happen. All of this needs exploration, the creativity of the entire community, and so on. In that sense, getting all these tools, even if it doesn’t immediately change anything for like the site itself, starts to unlock a lot of things. 

\n\n\n\n

Josepha [29:27]: I’m going to take a bit of your answer from there and tie it all the way back to your first answer that we had when you joined me today. And say, I think you’re absolutely right. We have a set of users in our theme authors and our plugin developers as well that we desperately need to get looking at this set of tools. I hope that what we are shipping in the first iteration of this serves as an opportunity for all of those theme authors and agency owners, plugin authors, WordPress site configurers freelancers. Like, I really hope that this puts it into a really accessible, easy-to-access space for them so that they can do those experiments based on what they know their users need the most. They are the group that has the closest access to site maintainers. And what they need compared to, for instance, me or a potential you like we have a lot of information, you and I, we do a lot of tests, we have a strong sense of what is needed at the moment, but we don’t have as a close connection that our theme and agency and plugin folks all have. And so that’s another part of why I’m so excited to get this out in the current iteration of it.

\n\n\n\n

Josepha [31:04]: That was a lot of questions in a little bit of time. This is going to be officially my longest WordPress briefing. Matías, I am so glad that you were able to join me today. And I think that everyone’s going to be really, really excited to hear your answers to these questions.

\n\n\n\n

Matías [31:23]: Thank you for having me.

\n\n\n\n

Josepha [31:25]: All right, my friends. That brings us into our small list of big things. I’m going to skip our community highlight today just because we had a slightly longer word press briefing in our bonus iteration today. But the small list of big things. The first thing is WordCamp Central America is coming up on April 15; there is a registration link in the show notes that you can access your tickets with. I recommend that you go; we’ve got a lot of excellent speakers coming up there and a lot of good content and good training and learning for y’all. The second thing is that Matt Mullenweg and I have listening hours coming up with the community in the first week of April. I’ll add the link to register for those in the show notes as well; it’s just a few minutes for you all to stop by, check-in, see what’s going on, and share some celebrations or concerns with us. And I hope that I see you there. 

\n\n\n\n

So that my friends is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10013\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Fri, 30 Apr 2021 22:29:10 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:25:\"strict-transport-security\";s:11:\"max-age=360\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Wed, 28 Apr 2021 17:52:55 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 1\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'), +(5504, '_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619864950', 'no'), +(5505, '_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619821750', 'no'), +(5506, '_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1619864950', 'no'); INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5448, '_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:49:\"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"News – – WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-US\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=5.8-alpha-50777\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:10:{i:0;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Security\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:365:\"WordPress 5.7.1 is now available! This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated. WordPress 5.7.1 is a short-cycle security and maintenance release. The next […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8461:\"\n

WordPress 5.7.1 is now available!

\n\n\n\n

This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

\n\n\n\n

WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

\n\n\n\n

You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

\n\n\n\n

If you have sites that support automatic background updates, they’ve already started the update process.

\n\n\n\n

Security Updates

\n\n\n\n

Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

\n\n\n\n
  • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
  • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
\n\n\n\n

Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

\n\n\n\n

Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

\n\n\n\n

For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

\n\n\n\n

In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

\n\n\n\n

99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:16:\"ContributorStory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"WordPress journey\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:117:\"In this People of WordPress contributor story, we chat with Tyler Lau from Kansas, US, on his journey with WordPress.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10363:\"\n

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n

Embrace Who You Are and Your Journey

\n\n\n\n

In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

\n\n\n\n

Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

\n\n\n\n
\"Tyler
\n\n\n\n

An Entrepreneurial Mindset

\n\n\n\n

Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

\n\n\n\n

While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

\n\n\n\n

He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

\n\n\n\n

Using your skills to uncover your journey

\n\n\n\n
\"Tyler
\n\n\n\n

Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

\n\n\n\n

These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

\n\n\n\n

In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

\n\n\n\n

Relationship-building as a career

\n\n\n\n

Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

\n\n\n\n

When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

\n\n\n\n

Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

\n\n\n\n

The true meaning of freedom

\n\n\n\n

In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

\n\n\n\n

Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

\n\n\n\n

He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

\n\n\n\n

There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

\n\n\n\n

Going forward positively 

\n\n\n\n
\"Tyler
\n\n\n\n

The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

\n\n\n\n

He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

\n\n\n\n

I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

\n\n\n\n

Now, he’s able to put those skills to good use in the WordPress community and beyond. 

\n\n\n\n

He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

\n\n\n\n

Contributors

\n\n\n\n

Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

\n\n\n\n

Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

\n\n\n\n
\"HeroPress
\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

\n\n\n\n

Meet more WordPress community members in our People of WordPress series.

\n\n\n\n

#ContributorStory #HeroPress

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:246:\"In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/04/WP-Briefing-006.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9292:\"\n

In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

\n\n\n\n

Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

\n\n\n\n

Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

\n\n\n\n

Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

\n\n\n\n

Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

\n\n\n\n

There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

\n\n\n\n

That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

\n\n\n\n

WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

\n\n\n\n

Later, the community picked me up when I became seriously ill. 

\n\n\n\n

So I can say from the bottom of my heart, that working with WordPress has saved my life.

\n\n\n\n

And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

\n\n\n\n

The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

\n\n\n\n

The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

\n\n\n\n

Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"The Month in WordPress: March 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/04/the-month-in-wordpress-march-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 03 Apr 2021 16:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Month in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10084\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:319:\"This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution. These words from Josepha Haden Chomphosy on […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9821:\"\n

This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

\n\n\n\n

These words from Josepha Haden Chomphosy on the How WordPress Improves episode of the WP Briefing Podcast point to the factors that differentiate building software in an open-source environment. Our updates this month are closely tied to the philosophy behind those core principles of open source software. 

\n\n\n\n
\n\n\n\n

WordPress 5.7 released

\n\n\n\n

WordPress version 5.7 “Esperanza,” came out on March 9. The release offers fresher admin colors, several improvements to the block editor, single-click HTTP to HTTPS migration, and a new Robots API. Read more about it in the release post, the field guide, and the talking points post for meetup groups. The Core Team has also started work on WordPress 5.8 pre-planning.

\n\n\n\n

Want to contribute to WordPress 5.8? Join the WordPress #core channel in the Make WordPress Slack and follow the Core Team blog. The Core Team hosts weekly chats on Wednesdays at 5 AM and 8 PM UTC. 

\n\n\n\n

Gutenberg Version 10.1 and 10.2 are out

\n\n\n\n

Contributor teams released Gutenberg Version 10.1 on March 3 and Version 10.2 on March 17.

\n\n\n\n

Version 10.1 showcases significant improvements to reusable blocks, a clearer image toolbar, and spatial options for the social media block. Version 10.2 offers block pattern options to display contents from the query block and removes writing prompts from empty paragraphs in the editor. It also adds width adjustment for spacer blocks in horizontal parent blocks and the ability to transform media and text blocks into columns.

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core Team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Make WordPress Slack. The “What’s next in Gutenberg” post offers more details on the latest updates. Don’t miss the monthly Gutenberg tutorial on How to make block patterns!

\n\n\n\n

Full Site Editing updates

\n\n\n\n

March saw a plethora of updates to the Full Site Editing project!

\n\n\n\n\n\n\n\n

Proposal launched for a WordPress contributor handbook

\n\n\n\n

A proposal has been kicked off on building a project-wide WordPress contributor handbook. The handbook will have content around the WordPress project’s underlying philosophies and commitments, along with shared expectations on working together and building products. It will also contain modern open source best practices for WordPress. 

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10084\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:68:\"\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"So you want to make block patterns?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/03/so-you-want-to-make-block-patterns/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 17:01:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Features\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:9:\"tutorials\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9995\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"Learn how to make block patterns!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:2:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:59:\"https://wordpress.org/news/files/2021/03/reusable-block.mp4\";s:6:\"length\";s:6:\"273436\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:58:\"https://wordpress.org/news/files/2021/03/waves-pattern.mp4\";s:6:\"length\";s:6:\"493389\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Beatriz Fialho\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:22433:\"\n
\"\"
\n\n\n\n

If you’ve ever built something for the WordPress block editor — a theme or a plugin — you may have also heard about block patterns.

\n\n\n\n

Looking at the patterns that come bundled with WordPress, I thought it would be nice to dedicate to them a short post. They’re pretty nice, useful shortcuts when you know them, but there’s a good chance you may not know what they are or why you might want to use them.

\n\n\n\n

What’s a block pattern?

\n\n\n\n

Patterns are collections of pre-arranged blocks that can be combined and arranged in many ways making it easier to create beautiful content. They act as a head-start, leaving you to plug and play with your content as you see fit and be as simple as single blocks or as complex as a full-page layout.

\n\n\n\n
\"\"
\n\n\n\n

They live in a tab in the block library. You can click or drag and you’re able to preview them with your site’s styles.

\n\n\n\n
\"\"
\n\n\n\n

Basically, a block pattern is just a bunch of blocks put together in advance:

\n\n\n\n
	<!-- wp:group -->\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator -->\n<!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} -->\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div>\n<!-- /wp:image -->\n<!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} -->\n<blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote>\n<!-- /wp:quote -->\n<!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator --></div></div>\n<!-- /wp:group -->
\n\n\n\n

That’s also how you create them: just use the block editor to configure a smattering of blocks to your liking, and the hard part’s over.

\n\n\n\n

How do I get them in the block library?

\n\n\n\n

There’s more documentation in the handbook, but what it boils down to is this:

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

\"👆\" That’s a snippet of PHP, which means you can drop it in a WordPress plugin, or perhaps more simply, paste it into the functions.php file from your theme. Done:

\n\n\n\n
\"\"
\n\n\n\n

For patterns that include images, it’s worth thinking about where those are stored. The TT1 Blocks theme (which is a fancy name for “TwentyTwentyOne Blocks”) stores images in the theme library.

\n\n\n\n

Now what?

\n\n\n\n

The thing about a block pattern is, as soon as you insert it from the block library, it stops being a cohesive unit — now it’s just a smattering of blocks, detached from the pattern you created and meant to be customized to your liking. It’s a shortcut, not a template. That also means you don’t have to worry about switching themes or deactivating pattern plugins: the blocks you already inserted won’t go anywhere.

\n\n\n\n

That being said, if you like this one pattern so much you want to use it again and again, with no customization at all, you can make it into a reusable block:

\n\n\n\n
\n\n\n\n

Reusable blocks are created, as the name implies, to be reused. The feature is a great way to store small bits of commonly used snippets that you can edit in one place to update in all. “Follow me on Twitter,” “Article series, or “Subscribe to my podcast” are great examples of that.

\n\n\n\n

What makes a good block pattern?

\n\n\n\n

Patterns, as they ship today, are limited by the features available. If the block editor doesn’t allow you to customize letter-spacing, your block pattern can’t either. While the Global Styles project will expand what’s to blocks, in the meantime, we have to work with the available tools.

\n\n\n\n

Even then, with the most basic ingredients — color, photography, typography — it is possible to do a lot:

\n\n\n\n
\"\"
Three columns with images and text
\n\n\n\n
\"\"
Media and text with image on the right
\n\n\n\n

I designed these patterns to potentially land in WordPress core, which all have a few properties in common:

\n\n\n\n

They share a theme.

\n\n\n\n

You can think of a pattern as a section of a website: it is meant to be part of a whole, and so it works best when it can exist in the context of other patterns that share the same theme. There are a few sharing a Nature theme in the patterns above, a few sharing an Art theme, and others sharing an Architecture theme. When seen together, it becomes easier to see how you might be able to piece together multiple pages of your site, one page at a time.

\n\n\n\n\n\n\n\n

They share a minimalist color palette.

\n\n\n\n

By being parts of a whole, patterns will inevitably land in a context that uses different colors. With a reduced color palette, there’s both a better chance of fitting in and less to customize to make it just right.

\n\n\n\n\n\n\n\n

The best patterns do things you might have not done otherwise.

\n\n\n\n

Whether that’s images offset to create a unique silhouette, or just using less visible features (like fixed positioning in the Cover block), it’s a way to surface creativity.

\n\n\n\n

Tip: You can use any block in your patterns, including blocks that came from a plugin. And if that block is in the block directory, it will prompt you to install it with one click if it’s missing from your self-hosted WordPress:

\n\n\n\n
\n\n\n\n

Here’s a plugin for you

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

In case you want to make patterns, this example plugin features two of the patterns you saw above. Drop it in your plugins folder and they should show up in your block library.

\n\n\n\n
\"\"
Installed pattern under “Text” Category
\n\n\n\n

Feel free to tweak it, customize it, and make it yours. It’s GPL, after all!

\n\n\n\n
\n\n\n\n

Thank you @joen for the help writing this post.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9995\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"WP Briefing: Talking Full Site Editing with Matías Ventura\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2021/03/talking-full-site-editing-with-matias-ventura/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 15:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10013\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:296:\"In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.\" Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/03/WP-Briefing-005.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:31294:\"\n

In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.” Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

Josepha [0:41]: This month, we have a bonus briefing, so I’ve asked my dear friend and colleague Matías Ventura to join me. Matías was recently called “the spark behind the vision of Gutenberg.” With full site editing coming our way in 202, I asked if he would join me for a quick Q&A. Welcome, Matías. 

\n\n\n\n

Matías [0:56]: Hello, hello! Thanks for inviting me. It’s a pleasure to be here.

\n\n\n\n

Josepha [1:00]: Well, I’m delighted to have you. And I think that we have a lot of excellent questions. All right, so Matías, we actually ended up with questions in about three different groupings. And so I’m going to start with the “what is it about full site editing,” sorts of questions that people had. We’re gonna work our way into “what are we doing with it?” and then “how are we planning on getting this out the door?” Then, a couple of big picture questions that people asked. We’re just gonna leap right in this full site editing part of the Gutenberg plugin, or is it a standalone plugin?

\n\n\n\n

Matías [1:39]: Okay, we’ll start with the basics. Full site editing is part of the Gutenberg plugin right now. I think it’s important to mention that full site editing is like an umbrella for several projects that we’re working on. They are all aiming to bring blocks into more parts of your site so that editing becomes easier and more expressive, and so on. So full site editing right now encompasses adding a ton of new blocks. I think we have around 20 new blocks coming in, including navigation query, site, title, logo, etc. There’s also the interface to interact with templates outside of the content; that’s another big part of the full site editing project. We also have a lot of new design tools included, many of these have been released in previous major releases, but they still comprise a strong part of what full site editing is. We also have something called Global Styles, which aims to allow people to configure the visual aspects of blogs across the entire site, not just on any individual blog. And of course, then there’s a whole layer of how we utilize these tools. It can get complex because there are many layers and projects that need to come together. So yeah, all of these are accessible through the Gutenberg plugin right now.

\n\n\n\n

Josepha [3:07]: Yeah. So it’s not a standalone plugin. If you wanted to check out full site editing the site editor experience as it is now, you would just have to make sure you had the Gutenberg plugin on your site. Right?

\n\n\n\n

Matías: Yes, correct.

\n\n\n\n

Josepha:  So a couple of the questions related to this are how exactly do I enable it on my site? And what is the easiest and safest way to try this on my site? And I think the answer is, is right in there. It’s in the Gutenberg plugin. And so if you have that plugin, you don’t need the testing plugin or anything else to make that work, right?

\n\n\n\n

Matías [3:51]:  No, you like, you might need to install a theme like Twenty Twenty One blocks that unlock some of these new interfaces that we just talked about. Like other of these pieces are available for anything. But some of these, like the interface to edit templates, right now only talk with things that know how to express their desire. 

\n\n\n\n

Josepha [4:14]: And I think we have less than 10 themes right now that do that, but I’ll leave some links to at least 2021 blocks in the show notes. And then, if there are another one or two themes that I can find, I can add those in there as well. 

\n\n\n\n

So you have to have the Gutenberg plugin; you have to have a theme that works with that site editor kind of experience. And then you’re safe to try everything out. It shows up in your left toolbar just like any other thing, like if you were working with plugins, or if you were adding a post or anything else, right?

\n\n\n\n

Matías [4:51]: Yes, correct. And so, some of these details are being worked on right now. Like how and where you access things, and so on. These things are subject to change, but right now, you have this site editor beta in the sidebar when both you have the plugin running and a theme that’s capable.

\n\n\n\n

Josepha [5:10]: Yeah. Excellent note. If you are running this on a production website, I would recommend you not do that unless you are very, very good with WordPress. It’s a really safe and easy thing to test and try out. But because it is still in beta, I recommend always putting it on a test site. I have a couple of different test sites that I run on myself. Another question that I had was, “will full site editing slow down my site?” And I think we have some refreshed performance tests coming out about that. And maybe they’ll be out by the time we publish this podcast.

\n\n\n\n

Matías [5:49]: Yeah, I mean, like the performance has been one of the major focuses for the whole project. In many cases, it should speed up things because we’re like, I think one of the big pieces that these projects bring into the picture, especially for themes, is that it allows only the necessary assets to be loaded on the front end. For example, if for a given page, there are, I don’t know, 10-15 blocks being used, you would only get the CSS and scrapes and so on related to those blocks. This can cut down on a lot a ton of CSS that themes used to end queue on a side, particularly if you were trying to customize many widgets and so on, like a lot of themes have the full styles or multiple widgets, even third party plugins, and so on. So one of the advantages of having this blog system is that we can know at the time of rendering what blogs are being used and only load those assets. 

\n\n\n\n

Josepha [6:50]: Excellent. Another big question that we have is, “does full site editing work with the classic editor? And does it work with other builders?” I think that’s a really big answer if you’re going to get super deep into it. But I think that the short answer is yes, it does. Is that fair?

\n\n\n\n

Matías [7:08]: Yeah, I don’t think it touches a bit on that full site editing is not like a single thing. There are multiple projects around it. So again, like the template editor that only deals with blogs, it doesn’t have a lot to do with a classic editor. But the classic editor use for both doesn’t change anything at all; like the same way that when the block editor was introduced, it didn’t change how you could still write posts in the classic editor. You will still be able to do that.

\n\n\n\n

Josepha [7:41]: And if you are brand new to WordPress person, or, I mean, I guess at this point, you don’t have to be super brand new. If you’re fairly new to WordPress person and have no idea what we’re talking about when we say the classic editor, you don’t really have to worry about it either. You don’t have to go and find out what that is; the block editor that you have right now works perfectly for what you’re trying to do. So if you don’t know what I mean when I say classic editor, don’t worry about chasing it down either. 

\n\n\n\n

I think that this last question we accidentally answered earlier, but I’m going to go ahead and ask it anyway since I received it. “I keep hearing that you can use the site editor with the 2021 theme. But I don’t seem to be able to. What am I missing?” I think the answer is that there’s the Twenty Twenty One theme shipped with the WordPress release 5.6. And then there is the Twenty Twenty One blocks theme; those are two different themes. The link to the Twenty Twenty One block theme is going to be in our show notes this time around. And so, if you have been trying to use the full site editor with Twenty Twenty One and not succeeding, try the link to the one below. And I bet that that will work for you.

\n\n\n\n

Matías [8:50]: Yes, that’s correct. 

\n\n\n\n

Josepha [8:51]: All right, excellent. Well, that brings us kind of into our second set of questions, which is about how we are doing it. The first one that folks have is “will full site editing be on by default in the next release. In this context, the next release is WordPress 5.8. But I think it’s a safe question to ask if full site editing will be on by default in the release that it’s planned for.

\n\n\n\n

Matías [9:15]: Yeah, and for this, I need to go back to the same principle of many projects because there are many pieces of full site editing, and we have been merging them in major releases, particularly like the blocks and the design tools. There are more coming in that we want to make accessible as soon as possible. The full experience that requires a theme to opt-in to templates using blogs won’t be by default; it requires a specific theme running. A lot of these details we’re still like determining exactly what projects are ready to be merged and so on. But yeah, if you have a theme right now that works the way you want, it doesn’t change anything there. If anything, it adds some more capabilities and more customization tools, and so on. And the theme can also regulate how much they want to incorporate.

\n\n\n\n

Josepha [10:13]: Matías, you’ve mentioned a couple of times in this podcast so far like this is a really complex and really complicated part of this work. And just for anyone out there who’s either encountering Gutenberg or full site editing or this podcast for the first time, I think a tiny bit of context that’s worth having here is that Matías and I have been working on this together in various capacities for like, five years. And Matías has probably been working on this for practically a decade. So, when we say that this is a really complicated problem, and when we say that this is a complex set of issues that we’re working with like, it is all that we have been thinking about for I want to say at least the last three or four years, but certainly it’s all that we have been trying to untangle for quite a bit of time before that as well. So we don’t take it lightly when we’re like, “this is complicated;” we mean it. It’s really complicated. And we’re trying our hardest over here as WordPress. 

\n\n\n\n

The next big question, since we’re all stuck in the “it’s very complicated,” part of things is the question, “will this update break my current site?” Like, if I have a site that is updated and ready, and it’s exactly as I wanted it to be, and it took me two years to get there will full site editing, whichever release it’s in. Currently, 5.8 is what we’re planning for. Will that break anything on my site as I know it right now?

\n\n\n\n

Matías [11:44]: No, not at all. One of the major things that the WordPress team, the WordPress community, always cares so much about, never to break things. Many of these things are stepping stones that you can adopt, as we’ve talked about full site editing. But for example, we also have a few concurrent projects around the widget screen and the navigation screen that are meant to bring blocks into existing interfaces. So again, the theme doesn’t need to change, and a lot of care is being put into making this more like you’re unlocking new features, and nothing really breaks or falls apart.

\n\n\n\n

Josepha [12:23]: This update, like all the other updates, should have minimal, minimal impact on what you have to actively fix on your site. Every once in a while, a bug is gonna get by. We can’t say that we’re 100% perfect with not breaking things. But also, we always and I and I know that we’re planning on this for our remaining releases for the rest of the year. At the very least, I can’t imagine we’d ever change it. But after every major release, we always make a plan to have a minor release within the next one or two weeks. Because we know that a broken thing on a site is really incredibly impactful, even if you’re only 1% of the sites that had that happen to it. And so I think that’s true in this case, too. And getting that feedback back from all of the people who are actually using WordPress is the thing that makes us be able to kind of move quickly when we do see those problems. 

\n\n\n\n

One of the questions that we have been getting is, “can I see a live preview without saving the changes that I made?” When I got this question, I didn’t actually understand it. And so I went and looked at a site without the Gutenberg plugin on it, and then a site with the Gutenberg plugin on it. And of course, on sites without Gutenberg, without the block editor, without full site editing, when you are looking to preview, you have the option to open up your preview in a new window. And you don’t have that with Gutenberg because it’s supposed to be a true WYSIWYG editor. A true what you see is what you get, editor. I think that the answer to this is, yes, you can see a live preview without actually saving the changes on the front end of your site. But you don’t actually have to reload anything. You don’t have to open it up in a new window. You don’t have to, like, actively click “please show me a preview” because what you see in your editing screen should be what you see at the end of your app as an end-user.

\n\n\n\n

Matías [14:28]: Yeah, that’s the sort of the main gist to it. Yes, the site editor is built so that it always reflects the front end as truly as possible, so that’s one layer. Also, the preview tools should allow you to see in different devices like mobile breakpoints, and I don’t know if they will have breakpoints and stuff like that. There are a lot of things in the current interface that is just not enabled. There are some challenges in the sidebar. Because the site editor is not just focused on a single post, it’s focused on the entire site. So, there can be many, many changes that need to be shadowed for the site. 

\n\n\n\n

If you’re changing the site title, some of the global styles, aspects, and so on need to be orchestrated. So, to see in the previewing new window, there are some challenges there to integrate. Again, the interface is not final yet; a lot of these things are still being tweaked and improved. There are many things from the regular post editor that are not enabled yet. But they will be enabled. So yeah, it’s a, I guess, it’s not a simple thing to answer. Because, again, the idea of previewing the site that’s core to the whole project is that you’re always interacting in the same way that when you’re in the customizer, you’re seeing the preview all the time. That’s the main scope of this project,

\n\n\n\n

Josepha [15:54]: Excellent. Changes like that changes to your workflow can be really hard to get your mind around, especially if part of that existing workflow was there to create some confidence in what you’re seeing with your users. And so I understand. Now that I’ve researched that question a bit, I see where that’s coming from. Based on existing workflows and existing patterns that we have for ourselves in WordPress, will we need to have a theme to use the full site editor?

\n\n\n\n

Matías [16:33]: I think we’ve already covered some of these. And again, they are tools that can work on any existing theme. There is other stuff that needs space-specific themes to opt-in into these tools, like blog templates and so on.

\n\n\n\n

Josepha [16:50]: Yes, I think the question that we have next, because I see that the literal next question I have is actually something we have covered; just because we’re being pretty conversational about it, not because anyone already asked the question. So I’m actually going to skip to the last question of this section that I received. I got this next one via Twitter. The question is, “how do you view the role of themes once full site editing is fully rolled out and all the page elements (content, headers, widgets, footers, etc.) and all the views are managed via blocks and block patterns? Will things become typographic and block styles?”

\n\n\n\n

Matías [17:28]: I think this is a great question because it goes to the heart of, why are we doing all this. One of the main reasons is to empower users more. WordPress has been democratizing publishing for a while; this is another step into allowing themes to get more customization tools and more control over their site if they want to. I think the recent call for testing has focused on the 404 page, for example. That’s something that forever has been locked away from users. And it’s also something that, as a theme developer, and I used to develop themes a long time ago, that was one of the things where you decide what sort of approach you take for the 404 page. Maybe sometimes you want to have something more whimsical. Sometimes you need something more serious. And committing to one when you can have such a diverse and broad user base can be challenging. With these, it becomes as easy as offering a few different patterns for that template. Then the user will always be able to change the copy and modify something. So again, it opens up a lot of these things that used to be locked down. However, from a theme perspective, I think this doesn’t reduce the theme at all. If anything, it allows the theme to focus less on coding and functions and more on design expression and aesthetics. I don’t think that would ever be exhausted. That will always remain as diverse as humans are interacting with WordPress. And so it’s not that I don’t see it’s just as like, typographic and block styles. How do you express a template, how do you express the structure, what choices you quote, what choices you make as a theme builder? And of course, there are many degrees of control there. Because a site maintainer may not want the 404 template to be editable, that sort of control will always be present.

\n\n\n\n

Josepha [19:38]: Yeah. And really fast. I have to add a caveat to a thing that you said in there. For anyone who’s listening keenly, you may have heard Matías say that the users can update any of the content there – any of the copy. In this context, we’re talking about users as in the people who are maintaining the site, not people who are visiting your site. Visitors to your site will not be able to change any copy on your page unless you’ve done something very interesting with your WordPress site, which is also fine if that’s what you prefer to do. By default, your visitors can’t change everything on your website, which is good news, frankly.

\n\n\n\n

So I’ve got one logistics question, which I’m happy to take. And then one is kind of a big picture question that I also got from Twitter. “What about the classic editor block; what is going to happen to that? And when will we know?” So ages and ages ago, before COVID? I think so. Probably maybe a couple of years ago, Matt said that the classic editor plugin would be supported through the end of 2021. And that is still the case; there will be active support on that through the end of 2021. After that, it will not be actively supported anymore. It won’t be removed from any place that you can get access to right now. In a “this is the end of its lifecycle” sort of way, we just won’t have anyone who is currently committed to maintaining that plugin anymore. So that’s what’s happening at the end of the year. And yeah, at the end of 2021. The big question that we have is, “why is full site editing being so rushed?” I think this is a bit of a loaded question.

\n\n\n\n

Matías [21:32]: Yeah, I think I think it’s still a fair question, though. I think we’re dealing with two things here. And one is ensuring that we release things in the best state possible. And also, some of the urgency is to offer tools that we know that people lack right now and that could really benefit from. Making that determination is very tricky. The full site editing project has been in the works for the last couple of years. If we count the initial phase of Gutenberg, that’s four to five years. We’ve been doing many calls for testing, which I think have been super useful to catch issues and reflect as a community on where things are going; how do we integrate with these? How do we use it? What are the shortcomings? What do we need to do? Based on all of these, we’ll continue to make decisions on when things become ready. We’re not committed to releasing something that’s not in a good state. And I think we will always be very careful about that. There are these two competing senses of the urgency – of getting some of these tools out, and because it also benefits from the feedback loops. I always say that, in many ways, the initial phase of Gutenberg, to me, is not finished. We took the initial two years to do the 5.0 release, the initial block editor, and so on. But, it’s still being improved at a very fast pace, among all the recent major releases improvements to the editor were included; that will continue to be the case. In many ways, phase one is not finished. And the moment we choose to release some of these tools or editing tools, it won’t be finished either. They will need to continue to grow, mature, and incorporate a lot of the feedback. Even the things that the ecosystem is building around. I’ve seen a few themes already that are incorporating a blank canvas template so that you can use them in some pages and take over and do everything with blocks. So even the community and ecosystem as a whole is also sort of paving the way for what needs to come.

\n\n\n\n

Josepha [24:06]: I think from my perspective, and of course, I’m on the people side of things, the communication side of things, the logistics side of things; I have a frequently a very different view from what a lot of other folks are seeing. And so from my side of things, I have to say, I’m communicating about this change in a really broad way, which has not been happening since 2019 when we started the work. We’ve been communicating broadly with the WordPress community, but not with everybody who uses WordPress. So, I think that for a lot of people, this looks like a project that we started really actively working on in the last six months or so. And now we’re just racing toward a finish line. I think that there’s, there’s not been a lot of awareness of everything that’s gone into it. And so, on the one hand, it feels a little less rushed to me knowing the full length of the history on this. But also, as you said, I really think that this gets a bunch of tools to people who otherwise have not been able to accomplish these things in WordPress or otherwise. I am so anxious to get something to people who really can benefit from this change the most. And it’s the nature of the open source, right that like, one, as long as you have users, you’re going to have stuff you have to fix in your software. So we’re never really, really going to be done with this; there’s not going to be like a done point of WordPress. And the second thing is, I think it’s generally true that you don’t really start getting full user feedback until after you have launched your major release. I think that we see that a lot in open source software; you can bring in as many people as you think you can in your user tests heading up to it. And in your accessibility tests. And, in general, quality assurance tests. You can bring in a lot of people and still not have gotten the full understanding of the various niche use cases that your users will bring to you. Because at this point, we’re like 40% of the web. And that means that we’re serving this majority collection of increasingly minority voices and niche voices in the space. And so, a little bit I feel a sense of urgency; I feel a bit of anxiousness about trying to get this out there for one, to get the tools in the hands of the people who can benefit the most from them, but also so that we can start really getting the full stress test of this software out and get that feedback in so that we can really build something responsive to what our users need our long tail, “anyone who ever uses WordPress ever,” definition of users. And so, that’s why I feel a sense of urgency around it. Even though you know, as I said, you and I have been working on this for like five years, and you’ve been working on it for a decade or something. I actually don’t know how long it’s been worked on.

\n\n\n\n

Matías [27:35]: Now that makes me feel a bit old.

\n\n\n\n

Josepha [27:40]: Nobody makes Matías feel old. He is a lovely, wonderful colleague. Sorry, Matías, If I made you feel old.

\n\n\n\n

Matías [27:46]: No, that’s totally fine. I also want to add that full site editing is not like a single toggle that’s going to drop into a major release. So I think that’s important to consider, I think this entire year is going to see a lot of these tools being, and sometimes the sort of the end-user is not the, again, the site maintainer. Still, you can also be the theme developer; I think there are many tools that would be empowering for theme developers to use. Again, we mentioned there are like five to ten themes, block themes right now. That needs to grow a lot, and that only grows through these sorts of feedback loops. And the theme community pushing things forward and seeing where things can lead to. I’m very excited about the pattern directory integration because I think that can also combine with blog themes in very powerful ways. Imagine if, I don’t know many of these patterns that are very common on the web and very needed, that if we can refine them together with a second community and make them available across themes, you can combine a header from one theme with a content of another; all these sorts of mixtures could happen. All of this needs exploration, the creativity of the entire community, and so on. In that sense, getting all these tools, even if it doesn’t immediately change anything for like the site itself, starts to unlock a lot of things. 

\n\n\n\n

Josepha [29:27]: I’m going to take a bit of your answer from there and tie it all the way back to your first answer that we had when you joined me today. And say, I think you’re absolutely right. We have a set of users in our theme authors and our plugin developers as well that we desperately need to get looking at this set of tools. I hope that what we are shipping in the first iteration of this serves as an opportunity for all of those theme authors and agency owners, plugin authors, WordPress site configurers freelancers. Like, I really hope that this puts it into a really accessible, easy-to-access space for them so that they can do those experiments based on what they know their users need the most. They are the group that has the closest access to site maintainers. And what they need compared to, for instance, me or a potential you like we have a lot of information, you and I, we do a lot of tests, we have a strong sense of what is needed at the moment, but we don’t have as a close connection that our theme and agency and plugin folks all have. And so that’s another part of why I’m so excited to get this out in the current iteration of it.

\n\n\n\n

Josepha [31:04]: That was a lot of questions in a little bit of time. This is going to be officially my longest WordPress briefing. Matías, I am so glad that you were able to join me today. And I think that everyone’s going to be really, really excited to hear your answers to these questions.

\n\n\n\n

Matías [31:23]: Thank you for having me.

\n\n\n\n

Josepha [31:25]: All right, my friends. That brings us into our small list of big things. I’m going to skip our community highlight today just because we had a slightly longer word press briefing in our bonus iteration today. But the small list of big things. The first thing is WordCamp Central America is coming up on April 15; there is a registration link in the show notes that you can access your tickets with. I recommend that you go; we’ve got a lot of excellent speakers coming up there and a lot of good content and good training and learning for y’all. The second thing is that Matt Mullenweg and I have listening hours coming up with the community in the first week of April. I’ll add the link to register for those in the show notes as well; it’s just a few minutes for you all to stop by, check-in, see what’s going on, and share some celebrations or concerns with us. And I hope that I see you there. 

\n\n\n\n

So that my friends is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10013\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:58:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WP Briefing: How WordPress Improves\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:58:\"https://wordpress.org/news/2021/03/how-wordpress-improves/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 15 Mar 2021 15:08:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/?post_type=podcast&p=9980\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:178:\"In this episode, Josepha Haden Chomphosy explores the WordPress release process. Tune in to learn about what goes into a release and catch this week’s small list of big things.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/03/WP-Briefing-004.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10226:\"\n

In this episode, Josepha Haden Chomphosy explores the WordPress release process. Tune in and learn the phases of a release and catch this week’s small list of big things.

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

All right, so last week, we wrapped up and shipped the WordPress 5.7 release. The release team this time around was smaller than we’ve had in the last couple of years. By the numbers, it looks really good: 66 enhancements or feature requests went in, 127 bugs were fixed, and seven versions of a Gutenberg plugin were merged and backported. If you use WordPress, you are probably aware that we have new releases throughout the year, but you probably don’t know much about the release process. There’s not really a reason to know unless you’re actively contributing to a release. For those interested in knowing more about how we improve WordPress, this week’s exploration is for you.

\n\n\n\n

We’re gonna take a look at what goes into WordPress releases and just kind of zoom our way in from the highest level. At the highest level, there are three major WordPress releases a year, plus the minor releases, plus Gutenberg releases. So if you’re following current WordPress work and future WordPress work, that’s going to get you to probably around 30 releases a year. If we zoom in one level to the release itself, a single release of WordPress takes four to five months from start to the day that we ship, and an additional four to six weeks on support and translations, and minor releases after that. If you’re looking from my vantage point, you’ll see that WordPress releases have essentially five parts, some of which happen kind of simultaneously. 

\n\n\n\n

The first part is planning and includes the project lead, lead developers, design; groups like that. The second phase is the creation phase when we’re actually building the things that have to go into the CMS that involves the design, core, editor, mobile, and other teams. Then there’s this phase that I like to refer to as the distribution phase. This is mostly done by the teams that make sure that WordPress is widely distributable; the polyglots team work on translations, accessibility does some work, docs make sure that everything is documented, and training, of course, gets things ready for when we have to be able to tell people how to use the release. 

\n\n\n\n

Then there is the fourth phase; I really don’t think they go sequentially or in a waterfall format. The fourth-ish phase that I include, and that I tend to see, is this extending and iteration phase. It’s the phase where we see our theme authors and our plugin authors, folks who are doing support, show up and help us to make sure that WordPress is available not only widely but broadly to ensure that their audiences as theme authors and plugin authors are covered in the features that they need based on what they are using WordPress for. The fifth phase is the part of our communication that involves the community team, especially marketing, WordPressTV, and learn.wordpress.org. Basically, anyone who’s showing up to make sure that we all share what happened in the release, the features that are coming, and how that affects the users is involved in that particular phase. So five big phases of what happens over those four to five months, and then for the month or month and a half afterward. 

\n\n\n\n

If we zoom in a bit more on the creation phase, each release has people who lead the work and coordinate contributor efforts during the course of the release. For any given release, hundreds of people contribute and receive credit for moving the WordPress project forward. Okay, hold on a second. Let’s pump the brakes and zoom in a bit on that. Hundreds of people work on every major release for a project that powers over 40% of the web that feels like a small number. But for the people who process the contributions in preparation for release, it’s actually pretty substantial. For every release, there is a small team of leaders who asked the hard questions. Is this a usable feature? Does this make WordPress better overall? And, of course, is this ready to ship?  Some of those leaders, a smaller subset of even the leaders that we have already, are committers who actually prep and merge patches to the CMS; they don’t do all the work to create a design or write all the code. This tiny group of people processes hundreds and hundreds of bug fixes, improvements, and enhancements that have been submitted over the course of months and sometimes years. As a side note, that whole process is a little smaller, a little faster in the Gutenberg featured plugin, but the basic parts are still there. Alright, so we’ve zoomed from the big picture way into some of the finer details, and it really looks like any other project cycle. So now, I’m going to layer in the filter of open source to that process.

\n\n\n\n

There are a couple of things that make building software in an open source environment so different. The first is that the code is readily available. If you have a basic understanding of the languages, you can see the code, learn from it, and make suggestions about improving it. Second, you consider the user a co-developer in the process, which means that as long as people use your product, they will have opinions on what you shipped. This way of iterating improves WordPress and ties back to one of my favorite open source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

\n\n\n\n

This brings us to our community highlight, the segment where I share a note about contributors who have helped others along the way or a WordPress success story. This week’s highlight is from Nok in our Bangkok community. When asked to help her find her way into the WordPress community, she said, “@shinichiN who started the WordPress community in Bangkok and encouraged me to contribute, and also @mayukojpn has introduced me to the WP community team to join as a deputy. “ Thank you for sharing those two inspiring people with us. And if you, listener, have any stories that you would like to share of your own WordPress success or people that you have been so grateful to help you find your way in the project, you can feel free to email those to me at wpbriefing@wordpress.org.

\n\n\n\n

That brings us to our final segment of the WP Briefing, the small list of big things. I only have three things to share with you this week. The first one is that about a week ago, we had our first release of 2021. It was the WordPress 5.7 release, titled Esperanza. If you have not yet seen it, go ahead and update your website or check with your host and make sure that they have updated you if you’re on a managed host. And then take a listen to the artists that it’s named after. 

\n\n\n\n

The second thing that I want you to keep an eye out for is wordpress.org/news. We are starting a new series of content that gets at the heart of some of Gutenberg’s basic parts; there’s a lot of change coming up in the next few releases of WordPress. And the most important thing to me is that you understand what we’re trying to change and where those changes are primarily taking place. There will be a couple of tutorials that go up there over the course of the of the next few weeks. The third item on the small list of big things is to remind you of our call for testing. As I mentioned earlier in the podcast, the users of any open source software are the code developers; the software built is supposed to make your life and work easier. When you test things and find interactions that can use a little bit of refinement or features that are not working exactly as expected, it’s incredibly helpful for us to have that information to always make sure that we’re solving problems instead of accidentally creating them. If you want to participate in the Current call for testing, you can head over to make.wordpress.org/test. Or, if you’ve been doing your own testing, you can also submit any bugs you have found in the GitHub repo, which I will share in the show notes below. So that, my friends, is your small list of big things. Thank you for tuning in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9980\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:58:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"WordPress 5.7 “Esperanza”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:45:\"https://wordpress.org/news/2021/03/esperanza/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 09 Mar 2021 20:52:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9888\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:355:\"Meet “Esperanza”, the first WordPress release of 2021. “Esperanza” is named in honor of Esperanza Spalding, a modern musical prodigy. Her path as a musician is varied and inspiring—learn more about her and give her music a listen! With this new version, WordPress brings you fresh colors. The editor helps you work in a few places […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://s.w.org/images/core/5.7/about-57-drag-drop-image.mp4\";s:6:\"length\";s:6:\"183815\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Matt Mullenweg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:42711:\"\n
\"\"
\n

WordPress 5.7 “Esperanza”

\n\n\n\n

Bringing you fresh colors in the admin, simpler interactions in the editor, and controls right where you need them, WordPress 5.7 lets you focus on the content you create.

\n\n\n\n
\n\n\n\n

\n
\n\n\n\n
\n\n\n\n

Meet “Esperanza”, the first WordPress release of 2021. “Esperanza” is named in honor of Esperanza Spalding, a modern musical prodigy. Her path as a musician is varied and inspiring—learn more about her and give her music a listen!

\n\n\n\n

With this new version, WordPress brings you fresh colors. The editor helps you work in a few places you couldn’t before without getting into code or hiring a pro. The controls you use most are right where you need them. Layout changes that should be simple, are even simpler to make.

\n\n\n\n

Now the new editor is easier to use

\n\n\n\n

Font-size adjustment in more places: now, font-size controls are right where you need them in the List and Code blocks. No more trekking to another screen to make that single change!

\n\n\n\n

Reusable blocks: several enhancements make reusable blocks more stable and easier to use. And now they save automatically with the post when you click the Update button.

\n\n\n\n

Inserter drag-and-drop: drag blocks and block patterns from the inserter right into your post.

\n\n\n\n
\n\n\n\n

You can do more without writing custom code

\n\n\n\n

Full-height alignment: have you ever wanted to make a block, like the Cover block, fill the whole window? Now you can.

\n\n\n\n

Buttons block: now you can choose a vertical or a horizontal layout. And you can set the width of a button to a preset percentage.

\n\n\n\n

Social Icons block: now you can change the size of the icons.

\n\n\n\n
\"\"
\n\n\n\n

A simpler default color palette

\n\n\n\n

This new streamlined color palette collapses all the colors that used to be in the WordPress source code down to seven core colors and a range of 56 shades that meet the WCAG 2.0 AA recommended contrast ratio against white or black.

\n\n\n\n

Find the new palette in the default WordPress Dashboard color scheme, and use it when you’re building themes, plugins, or any other components. For all the details, check out the Color Palette dev note.

\n\n\n\n

From HTTP to HTTPS in a single click

\n\n\n\n

Starting now, switching a site from HTTP to HTTPS is a one-click move. WordPress will automatically update database URLs when you make the switch. No more hunting and guessing!

\n\n\n\n

New Robots API

\n\n\n\n

The new Robots API lets you include the filter directives in the robots meta tag, and the API includes the max-image-preview: large directive by default. That means search engines can show bigger image previews, which can boost your traffic (unless the site is marked not-public).

\n\n\n\n

Lazy-load your iFrames

\n\n\n\n

Now it’s simple to let iframes lazy-load. By default, WordPress will add a loading=\"lazy\" attribute to iframe tags when both width and height are specified.

\n\n\n\n

Ongoing cleanup after update to jQuery 3.5.1

\n\n\n\n

For years jQuery helped make things move on the screen in ways the basic tools couldn’t—but that keeps changing, and so does jQuery.

\n\n\n\n

In 5.7, jQuery gets more focused and less intrusive, with fewer messages in the console.

\n\n\n\n

Check the Field Guide for more!

\n\n\n\n

Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of. WordPress 5.7 Field Guide.

\n\n\n\n

The Squad

\n\n\n\n

The WordPress 5.7 release comes to you from a small and experienced release squad:  

\n\n\n\n\n\n\n\n

This release is the reflection of the hard work of 481 generous volunteer contributors. Collaboration occurred on nearly 250 tickets on Trac and over 950 pull requests on GitHub.

\n\n\n\n7studio, 99w, aaribaud, Aaron Brazell, Aaron D. Campbell, Aaron Jorbin, aaronrobertshaw, abagtcs, acerempel, activecoder, ad7six, Adam Bosco, Adam Silverstein, adamboro, Addison Stavlo, aduth, Ahmad Awais, Ahmed Saeed, Albert Juhé Lluveras, albertomake, Alex Lende, Alex Woollam, alex27, Alexander Lueken, alexstine, allancole, Allen Snook, almendron, Amanda Riu, ambienthack, Amol Vhankalas, Andrea Fercia, Andrei Draganescu, Andrew Nacin, Andrew Nevins, Andrew Ozz, Andrew Serong, André Maneiro, Andy Fragen, Andy Peatling, Ankit Panchal, annalamprou, Anne McCarthy, anotherdave, Anthony Burchell, Anton Lukin, Anton Timmermans, Anyssa Ferreira, archon810, Ari Stathopoulos, Arslan Ahmed, Artur Piszek, Aurélien Denis, Ayesh Karunaratne, bartosz777, basscan, bduclos, becdetat, Bego Mario Garde, Ben Dwyer, Benachi, Bernhard Reiter, Bernhard Reiter, bhanusinghkre, Birgir Erlendsson (birgire), Birgit Pauli-Haack, bobbingwide, bonniebeeman, Boone Gorges, Boy Witthaya, Brandon Kraft, Brecht, Brent Swisher, brijeshb42, burnuser, Caleb Burks, Cameron Voell, Carike, carloscastilloadhoc, carlosgprim, Carolina Nymark, celendesign, Cenay Nailor, ceyhun0, chexwarrior, Chip Snyder, Chloé Bringmann, Chouby, Chris Van Patten, Christian Sabo, Christina Workman, Christopher Finke, clayray, Clayton Collie, Code Amp, Collins Agbonghama, Copons, Corey, cristinasoponar, Damian Nowak, Dan Farrow, Daniel Richards, Daniele Scasciafratte, Danny van Kooten, Daria, Darren Ethier (nerrad), Dave Whitley, David Anderson, David Baumwald, David Biňovec, David Calhoun, David Herrera, David Page, dbtedg, dd32, Debabrata Karfa, dekervit, Denis Yanchevskiy, denishua, Diane Co, Dilip Bheda, dkoo, Dominik Schilling, donmhico, dragongate, dratwas, Drew Jaynes, Dávid Szabó, e_baker, eatsleepcode, Ebonie Butler, Edi Amin, Ella van Durpe, Ella van Durpe, Elliott Richmond, Enej Bajgorić, Enrico Carraro, epicfaace, epiqueras, Eric Andrew Lewis, Eric Binnion, Eric Mann, Erik, Erin \'Folletto\' Casali, Estela Rueda, etoledom, eventualo, Fabian Kägy, Fabian Pimminger, Felipe Elia, Felix Arntz, Florian TIAR, Florian Ziegler, floriswt, Francesca Marano, Frank Klein, fullofcaffeine, gab81, Gal Baras, Gan Eng Chin, Garrett Hyder, Gary Pendergast, GeekPress, geekzebre, Geoff Guillain, Geoffrey, George Mamadashvili, George Stephanis, geriux, gKibria, glendaviesnz, gmariani405, Gord, greatsaltlake, Greg Ziółkowski, grzim, gumacahin, gunnard, Gustavo Bordoni, Hans-Christiaan Braun, Hardeep Asrani, Hareesh, hauvong, Haz, Helen Hou-Sandi, helmutwalker, Hemant Tejwani, Herre Groen, hirasso, hmabpera, Howdy_McGee, hsingyuc7, Ian Dunn, ianmjones, ibiza69, Igor Radovanov, ingereck, iprg, Ipstenu (Mika Epstein), Isabel Brison, Ismail El Korchi, iviweb, J.D. Grimes, jadeddragoon, Jake Spurlock, jakeparis, jakub.tyrcha, James Golovich, James Huff, James Koster, James Nylen, James Rosado, Jan Thiel, Jason Adams, Jason LeMahieu (MadtownLems), Jason Ryan, Jayman Pandya, Jean-Baptiste Audras, Jeff Chandler, Jeff Farthing, Jeff Paul, Jennifer M. Dodd, Jenny Dupuy, Jeremy Felt, Jeremy Yip, Jeroen Rotty, Jessica Duarte, Jessica Lyschik, joanrho, Joe Dolson, Joe McGill, joelclimbsthings, Joen Asmussen, Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, John Watkins, Jon Surrell, Jonathan Champ, Jonathan Desrosiers, Jonathan Stegall, Jonny Harris, Jono Alderson, Joost de Valk, jordesign, Jorge Costa, José Miguel, Jose Luis, Josee Wouters, Joseph Karr O'Connor, Josepha Haden, joshuatf, JoshuaWold, JOTAKI, Taisuke, Joy, JS Morisset, jsnajdr, Juliette Reinders Folmer, Julio Potier, Justin Ahinon, Justin Sainton, Justin Sternberg, k3nsai, kafleg, Kai Hao, Kailey (trepmal), Kalpesh Akabari, kara.mcnair, Karolina Vyskocilova, Kelly Choyce-Dwan, Kerry Liu, kimdcottrell, Kiril Zhelyazkov, Kirsty Burgoine, Kite, Kjell Reigstad, Knut Sparhell, Konrad Chmielewski, Konstantin Obenland, Konstantinos Xenos, Kurt Payne, Kyle B. Johnson, Lara Schenck, laurelfulford, Laxman Prajapati, leogermani, Levdbas, litemotiv, Lovro Hrust, lucasbustamante, Luigi Cavalieri, Lukas Pawlik, Luke Carbis, Luke Cavanagh, Luke Walczak, Magali, magnuswebdesign, Mahafuz, Mahdi Akrami, malinajirka, mallorydxw, mallorydxw-old, Manzoor Wani, Manzur Ahammed, marcelo2605, Marcio Zebedeu, Marcus, Marcus Kazmierczak, Marie Comet, Marijn Koopman, Marin Atanasov, Marius Jensen, Mark D Wolinski, Mark Howells-Mead, Mark Robson, Mark Uraine, Marko Andrijasevic, Markus, Mary Baum, Mathieu Berard Smartfire, Mathieu Viet, Matias Ventura, Matt Chowning, Matt Mullenweg, Matt Wiebe, Maxime Pertici, Mayank Majeji, mdrockwell, Meg Phillips, Megan, Meher Bala, Mehrshad Darzi, Mehul Kaklotar, Mel Choyce-Dwan, mendezcode, mgol, Michael Arestad, Michael Babker, Miguel Fonseca, Miina Sikk, Mike Schroder, Mikhail Kobzarev, Milan Dinić, Milana Cap, mirka, mmuyskens, Mohamed El Amine DADDOU, Monika, Monika Rao, morenaf, mrjoeldean, Mukesh Panchal, munyagu, mzorz, Naveen, net, nicegamer7, nicky, Nico, Nico Martin, Nicola Laserra, Nicolas Juen, NicolasKulka, Nik Tsekouras, Noah Allen, nwjames, oakesjosh, Olga Gleckler, Otshelnik-Fm, ovidiul, oxyc, Paal Joachim Romdahl, palmiak, Pascal Birchler, patopaiar, Paul Bearne, Paul Biron, Paul Bunkham, Paul Schreiber, Paul Von Schrottky, pawki07, pbking, Pedro Mendonça, Pete Nelson, Peter Smits, Peter Wilson, Pinkal Devani, Piotrek Boniu, Prem Tiwari, presstoke, prettyboymp, Prince, pwallner, pypwalters, Q, r-a-y, Rachel Baker, Rafael Galani, rafhun, Rami Yushuvaev, Ramon Ahnert, ratneshk, Ravi Vaghela, ravipatel, retrofox, Reza Ardestani, Riad Benguella, Rian Rietveld, Richard Tape, Rinat Khaziev, Robert Anderson, Rodrigo Primo, Roger Theriault, roger995, Rolf Siebers, Romain, Ronnie Burt, Ross Wintle, Ryan Boren, Sébastien SERRE, Sören Wrede, Saša, Sanket Chodavadiya, Sarah Ricker, sarayourfriend, Scott Taylor, Sebastian Pisula, SeBsZ, Sergey Biryukov, Sergey Yakimov, sergiomdgomes, Shahin Sid, shaunandrews, Shital Marakana, SirStuey, Slava Abakumov, snapfractalpop, souri_wpaustria, stefanjoebstl, Stefano Minoia, Stefanos Togoulidis, Stephen Bernhardt, Stephen Edgar, Steven Word, Subrata Sarkar, Sumit Singh, Sunny, Sybre Waaijer, Synchro, t-p, Takashi Kitajima, Tammie Lister, Tanvirul Haque, Tapan, TeamDNK, Terri Ann, Thierry Muller, thorlentz, tigertech, Tim Hengeveld, Tim Nolte, Timi Wahalahti, Timothy Jacobs, tinodidriksen, Tkama, tmatsuur, Tobias Zimpel, TobiasBg, tobifjellner (Tor-Bjorn Fjellner), Toni Viemerö, Tony A, Tonya Mork, tonysandwich, Torsten Landsiedel, Toru Miki, transl8or, Tyler Tork, Ulrich, Umang Vaghela, vandestouwe, vcanales, Vipul Chandel, Vlad T, webcommsat AbhaNonStopNewsUK, WebMan Design | Oliver Juhas, Wendy Chen, wesselvandenberg, Weston Ruter, Willis Allstead, worldedu, WP OnlineSupport, Xristopher Anderton, Yann Kozon, Yoav Farhi, yscik, Yui, yuliyan, Zebulan Stanphill, and zieladam.\n\n\n\n

\n\n\n\n
\n
\n\n\n\n

Code is poetry.

\n
\n\n\n\n

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9888\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:66:\"\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"People of WordPress: Olga Gleckler\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/03/people-of-wordpress-olga-gleckler/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 08 Mar 2021 22:30:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:9:\"Community\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:10:\"Interviews\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:19:\"People of WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9875\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:159:\"The latest edition of our People in WordPress series features developer Olga Gleckler, who grew her interest in computers into a career as a tech entrepreneur.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:19992:\"\n

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n

From a natural interest in computers and fixing things as a young woman, Olga Gleckler from St Petersburg, Russia, found WordPress took her on a journey to becoming a successful female tech entrepreneur. On International Women’s Day, we share her story.  

\n\n\n\n
\"Olga
\n\n\n\n

Finding your path can take longer than you expect

\n\n\n\n

From the age of 15, Olga found herself under pressure to find a free place for her professional studies. She said: “I didn’t know how high or low my chances were even if I had very good marks. I could have been just the biggest fish in a small pond. But anyway, I made up my mind to go to technical school.”

\n\n\n\n

On leaving school in St Petersburg with her certificate, Olga felt her knowledge of opportunities was very narrow. She had pictured being an ecologist or guide translator based on the subjects she had been taught at school. There was also an advertising boom in Russia and she began to explore this as a career avenue. She had developed her computer skills and found opportunities to practise by helping her teachers with administrative work.

\n\n\n\n

Though she did not have access to any formal career advice, her journey led her into programming. She said: “The range of technical schools was not wide. I spent four years studying transistor markings, soldering and drawing PCB layouts. Programming courses using Pascal didn’t do anything useful with it.”

\n\n\n\n

A lack of suitable access to English-language courses made things harder for Olga. She was determined that she would master the language later in her life. In the meantime, she left technical school with an honors degree and improved typing skills.

\n\n\n\n

“I faced it was a wild, unfriendly market. I didn’t know how to recognize a genuine job offer or how to avoid the bad ones. It was difficult and I don’t know how long I would’ve looked for work without help.”

\n\n\n\n

Think differently to find where you belong

\n\n\n\n

Olga’s father worked in an IT company and was able to give her some advice and help with potential introductions. When she was still studying, he suggested her strong technical skills might be useful as a substitute typist. When she finished her studies, he helped her apply for a job updating a legal system on clients’ computers.

Six months later, she got a full-time job in the same service department. She liked her position and her clients. However, she was given friendly advice that without a university degree she would not be able to have any further promotions.

\n\n\n\n

At this time, Olga was trying to study PHP from a book. She found it very exciting at first, but a lot of their functions did not give her explanations on how to build something useful. She found when she tried to build practical items from book reading, it did not always make sense and the solutions would often fail. 

\n\n\n\n

She said: “It was hard to admit a failure even to myself and it was nagging me for a long time. I had to choose something I could handle, that I was interested in and could afford. It turned out to be advertising.”

\n\n\n\n

She spent most of the family’s holidays on learning sessions during the next six years. Olga recalled: “It was tricky for my husband to make me leave a computer, once I was glued to it, so he bought me my first laptop. English was still hard for me, I got high marks through just memorizing all the words in a textbook and how they should sound.”

\n\n\n\n

Doubting your professional skills can happen when you are at home isolated looking after children. Keeping up your interests is important.

\n\n\n\n

Olga’s life took a change after having a new baby and she spent three years doubting her professional skills and her chances of getting a good job. She tried to get back into other interests through studying, baking and drawing, but found ‘the pram was pulling me back’. She found she became very isolated and felt less able to contribute as the family was relying on her husband’s income as she tried to focus on looking forward.

\n\n\n\n

She said: “I was convinced (and saw) that not too many companies wanted a woman in the office, who with a small baby might need lots of leave.”

\n\n\n\n

She finished her education when she returned to work after three years caring for her son. She secured a promotion but with changes in the company’s staffing, things were tense. She found the difficulties there had become more heightened and felt that young female colleagues were treated as ‘pieces of furniture’ by one manager. She did not want to stay in this environment and in a few months time decided to leave.

\n\n\n\n

Your next chapter may be nearby

\n\n\n\n

Determined to not repeat this type of experience, Olga looked at the brighter side. She said: “I wanted to be a marketer. Knowing how tricky it is to sell intangibles, I wanted a solid product to work with.” 

\n\n\n\n

It turned out to be more difficult to find a job outside traditional IT as a young mother. Some human resource officers advised her to remain within the technology arena.

\n\n\n\n

Olga remained hopeful and continued to study hard. She had many learning experiences along the way, which she hopes others can learn from too. One was setting a low bar to employers. She said: “Companies I worked in wanted to get all publicity and sales increases achieved through deductions from my salary.” This happened once and the next time she was in this situation she asked specifically about the budget before signing up. “I was assured this would not be the case, but again I found the budget for publicity came out of my wages. It was a tough period of disappointments. So when I was offered a part-time administrative job with basic sick leave, I took it gladly as a reprieve.”

\n\n\n\n

The job was far from home and involved a lot of travelling. Olga spent two to three hours a day on buses with Harry Potter audio books for company. “In these traffic jams, I started to feel English at last and loved it. It gave me a freedom no money can buy. Life was getting better.”

\n\n\n\n

Though the job did not pay highly, it gave her something valuable – a working website. After her boss and the developer parted company, she was asked to maintain the site. Through some studying and reverse engineering, she discovered how it worked and it gave her an insight into how to write simple websites from scratch.

\n\n\n\n

Olga’s first encounter with JavaScript wasn’t easy: “My first JavaScript calculator almost made me crazy, but I pursued it.”

\n\n\n\n

Quickly she started to get small tasks from friends and relatives, usually to solve some urgent problems and started to meet popular content management systems. One of the first she met with was WordPress. There was an issue in a website theme used by a website which had been changed and not maintained. It took a whole weekend to solve, but she was determined to work it out. Back then, WordPress was ‘just a system’. She didn’t know then how much it was to become part of her life.

\n\n\n\n

Olga spent the next two years in this role. As time went on, she started to feel worried and less satisfied with the work. The last straw for her was a negative statement from her boss, who was not a programmer and who hadn’t seen any of the work done on the website. She felt the approach was unfair as she had done extensive work on the site. She recalls: “I became angry, but it was exactly what I needed to move jobs.”

\n\n\n\n

When Olga was job hunting, she didn’t feel she had the courage to apply for a developer’s role, despite the learning and work she had already done. So instead she started working on projects where she felt she was more like a ‘seller of box-ready websites’. It was another tough half a year for her with a lot of work, low payment and plans not turning out as she had hoped. On top of long hours, she ended up with pneumonia. She said: “I see now that I was doing a disservice to customers, websites are not a microwave meal – quick, cheap and dummy. There was no life in the sites without a lot of work which no one was willing to buy. Most of the sites I sold back then died after the first year and they never were truly alive and useful.”

\n\n\n\n

You need to be brave and have courage

\n\n\n\n
\"Olga
\n\n\n\n

Olga really wanted a developer job but seeking jobs of this type was very frustrating. From the job adverts she found, it felt like most IT companies were asking for geniuses who already knew a lot of technologies and frameworks. She found this very demotivating.

\n\n\n\n

She then found a job offer on a website outside the most popular job portals and it seemed like a perfect fit. They wanted someone with experience to write from scratch, understand someone else’s code and maintain it, with an ability to translate technical documentation and articles, and make simple designs for printing products. After completing a trial task, she was taken on, and enjoyed a better salary, in a calm environment with good colleagues and without the requirement for a lot of extra hours. 

\n\n\n\n

The advert turned out to be a direct ad from one of the sales departments in a technology company. By succeeding in the task set, Olga had bypassed the Human Resources team which she felt would not normally have considered her. 

\n\n\n\n

Her boss agreed to her working remotely most of the time. It solved any potential leave problems which Olga had thought may be an obstacle. 

\n\n\n\n

For Olga it had been 14 years since the original decision to become a programmer and it was only the beginning. 

\n\n\n\n

After a few years at what she describes as an ‘amazing experience’ in this workplace, Olga felt able to move on to her next challenge as a developer.

\n\n\n\n

Decision-making can benefit from wider knowledge

\n\n\n\n

After working with different systems Olga became sure that WordPress is the best CMS for developers and clients. But she was disappointed to find that the ease of use meant that good code was not always a priority for some of the sites she looked at. 

\n\n\n\n

“The biggest flaw of WordPress – it’s so easy to make things work that some may feel they don’t need to bother to do things right, but this becomes a problem later.”

\n\n\n\n

In custom themes for a site, she also saw sites being made and clients left without any further support, or items hard coded when clients actually needed more control to change regularly.

\n\n\n\n

Olga used to rely on examples she could easily find, documentation and search engines to improve her understanding in using WordPress. She discovered that just by searching for a specific feature or a solution, you can miss the whole picture. 

\n\n\n\n

She turned to online courses to get more comprehensive knowledge and then started to attend WordPress events, firstly online and then by foot, trains and planes! She discovered a worldwide community that was very much alive. She didn’t know when she started studying online materials and attending discussions that she would end up contributing herself to the Learn WordPress platform a few years later.

\n\n\n\n

WordCamps and contributor days became a big part of her life. From her early days attending events and starting out contributing to WordPress, she is an active member of the WordPress.org Global Marketing and Polyglots Teams, and supported the recent WordPress release. She is just beginning her first WordCamp organiser experience, joining WordCamp Europe 2021 on the Contribute Team.

\n\n\n\n
\"Olga
\n\n\n\n

Olga said: “Through the wider WordPress community, I knew not only where to look but also whom to ask. Most importantly, I found allies who don’t think I’m going crazy by speaking with delight about work, and with whom I share a passion and fondness for WordPress. This is what matters.

\n\n\n\n

“Now, after more than seven years of full time development, I am still enjoying endless learning, frequent discoveries, mistakes and an impassioned wish to do better.”

\n\n\n\n

This and a desire to help others use WordPress.org is part of Olga’s continued contribution to its Support and Marketing Teams, and led her to be involved in the Release Marketing questions and answers in 2020.

\n\n\n\n

There is no chequered flag on the way

\n\n\n\n
\"Olga
\n\n\n\n

The road to freedom and becoming her own boss has not been easy for Olga. It is the path that got her where she is today, and she continues to find joy in it. She retains the lessons she’s learned and is always hungry to learn more.

\n\n\n\n

 “I travelled through a very uneven path, with a lot of obstacles and noise, but for me it’s like a kaleidoscope where a little turn presents a new picture, a new “ah-ha” moment, new excitement after seemingly pointless efforts.” 

\n\n\n\n

She added: “When in doubt I remind myself about David Ogilvy (generally considered the Founding Father of the modern advertising industry) who tried a lot of things before he struck gold with advertising, and maybe that’s why he did.”

\n\n\n\n

Finally, she learned not only to keep a good spirit and try different things, but also to dare as you move forward.

\n\n\n\n

Contributors

\n\n\n\n

Thanks to Abha Thakor (@webcommsat), Nalini Thakor (@nalininonstopnewsuk), Larissa Murillo (@lmurillom), Meher Bala (@meher), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe). Thank you to Olga Gleckler (@oglekler) for sharing her #ContributorStory.

\n\n\n\n
\"HeroPress
\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

\n\n\n\n

Meet more WordPress community members in our People of WordPress series.

\n\n\n\n

#ContributorStory #HeroPress

\n\n\n\n

\n\n\n\n

Photo credits: 2nd and 4th Pablo Gigena, Berlin, 2019

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9875\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"The Month in WordPress: February 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"https://wordpress.org/news/2021/03/the-month-in-wordpress-february-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 03 Mar 2021 16:00:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Month in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9842\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:293:\"You don’t have to be rich to have an online presence. You don’t have to find loopholes in proprietary platforms and hope that they never change their terms of service. You own all of the content that you create on a WordPress site and have the liberty to move it to a new host if […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:15761:\"\n

You don’t have to be rich to have an online presence. You don’t have to find loopholes in proprietary platforms and hope that they never change their terms of service. You own all of the content that you create on a WordPress site and have the liberty to move it to a new host if you need to, or switch your theme if it fits your mood.

\n\n\n\n

That was Josepha Haden Chomphosy on WordPress is Free(dom) episode of the WP Briefing Podcast, speaking about the four freedoms of open-source software. Those four freedoms are core to how WordPress is developed. A lot of the updates we bring you this month will resonate with those freedoms.

\n\n\n\n
\n\n\n\n

WordPress now powers 40% of the web

\n\n\n\n

W3Techs reported that WordPress now powers 40% of the top 10 million websites in the world! Every two minutes, a new website using WordPress says, “Hello world”! For the top 1000 sites, the market share is even higher at 51.8%. Over the past 10 years, the growth rate has increased, which is reflected by the fact that 66.2% of all new websites use WordPress!

\n\n\n\n

WordPress release updates

\n\n\n\n

February was an eventful month for WordPress releases!

\n\n\n\n\n\n\n\n

Want to contribute to upcoming WordPress releases? Join the WordPress #core channel in the Make WordPress Slack and follow the Core team blog. The Core team hosts weekly chats on Wednesdays at 5 AM and 8 PM. UTC. You can also contribute to WordPress 5.7 by translating it into your local language. Learn more on the translation status post.

\n\n\n\n

Gutenberg celebrates its 100th release with version 10

\n\n\n\n

The 100th release of the Gutenberg plugin — Version 10,  launched on February 17th, more than four years after the project was first announced at WordCamp US 2016. Matias Ventura’s post offers a bird’s eye view of the project over the last four years. Version 10 adds the basic pages block and makes the parent block selector visible in the block toolbar. Version 9.9 of Gutenberg — coincidentally, the 99th release of the plugin, which is also the latest Gutenberg release that will be featured in WordPress 5.7, also came out in February. Key highlights of the release include custom icons and background colors in social icons, a redesigned options modal for blocks (which is now called block preferences), and text labels in the block toolbar. 

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Making WordPress Slack group.

\n\n\n\n

Full Site Editing updates

\n\n\n\n

Full Site Editing (FSE) is an exciting new WordPress feature that allows you to use blocks outside the post or page content. The main focus of the Core team for 2021 is to merge FSE into WordPress core. Here’s the latest on the Full Site Editing project: 

\n\n\n\n\n\n\n\n

Decision-making checklist for in-person meetups

\n\n\n\n

The Community Team has published handbook pages and a decision-making checklist for organizers to restart in-person meetups at areas where it is safe to do so (e.g., countries such as New Zealand, Australia, and Taiwan, where there are lower COVID-19 risks). However, WordPress meetups and WordCamps in most parts of the world will remain online due to COVID-19.

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\n\n\n\n

The Month in WordPress post series is a collective effort, and it would not be possible without contributions from different members of the WordPress Community. Starting this month, we would like to credit and thank all individuals that support this effort with their contributions. I would like to thank the following folks for their contributions to February’s Month in WordPress: @adityakane @chaion07 @courtneypk @kristastevens and @psykro.

\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9842\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 21 Apr 2021 19:26:31 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:25:\"strict-transport-security\";s:11:\"max-age=360\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Thu, 15 Apr 2021 03:05:07 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 1\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'), -(5449, '_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619076391', 'no'), -(5450, '_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619033191', 'no'), -(5451, '_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1619076392', 'no'); +(5507, '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"WordPress Planet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"WordPress Planet - http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:50:{i:0;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Alpha Particle and Flowspoke Acquire Kanban for WordPress for $15K\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115839\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/alpha-particle-and-flowspoke-acquire-kanban-for-wordpress-for-15k?utm_source=rss&utm_medium=rss&utm_campaign=alpha-particle-and-flowspoke-acquire-kanban-for-wordpress-for-15k\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5586:\"

Digital consultancies Alpha Particle and Flowspoke have acquired the Kanban for WordPress plugin, a tool that puts Kanban boards into the admin to measure progress on a goal. The plugin is used for agile project management, sales tracking, editorial scheduling, and other planning purposes.

\n\n\n\n
\n\n\n\n

WordPress developer Corey Maass created Kanban for WordPress in 2015 but struggled to market it enough to grow beyond 2,000 users. In 2020, he saw Alpha Particle CTO Keanan Koppenhaver post on Twitter that he was looking to acquire a plugin business and jumped at the chance to sell Kanban for WordPress. Koppenhaver wanted a plugin that already had $1k-$12K annual revenue and wasn’t tied in with Beaver Builder, Elementor, Divi, or any other page builders. Integration with WooCommerce or other third-party software was a plus.

\n\n\n\n
\n

– A business selling a WordPress plugin or a collection of plugins

– Between $1k and $12k annual revenue, ideally recurring

– Ideally runs as its own entity, or has its own account with any payment processors

(2/4)

— Keanan Koppenhaver (@KKoppenhaver) October 19, 2020
\n
\n\n\n\n

“I’d burned out on the project so I’d thought about selling for a while but didn’t do anything about it,” Maass said. “When Keanan posted he was looking, I inquired because I’d met him and knew he was solid. After a chat I knew he was the right buyer because his approach to WordPress was similar to mine – not too detached, not too dogmatic.”

\n\n\n\n

Maass had monetized Kanban for WordPress for the past five years through a $149/year pro version (the most popular price point) and a $499.00 lifetime support license. He said revenue had peaked around $20K/ARR but had dropped to about $10K/ARR due to his minimal involvement. During his peak revenue months there were some weeks he would work 40 hours and some that he would work no hours at all.

\n\n\n\n

“I applied the ’12-18 months of revenue as a selling price’ rule, and sold it for $15k,” Maass said.

\n\n\n\n

He also commented on the difficulty of finding a non-technical partner in the WordPress world. Maass searched for someone to market the plugin while he concentrated on the product but never found a match:

\n\n\n\n

I interviewed non-WordPress people. No luck. I’ve found a few people in the WordPress eco-system, but most already have one more products they’re growing. It’s one of the quirks of the WordPress world – there are more devs than non-devs. Most everywhere else in the tech-business world, it’s the other way around. And of course most of the success stories of WordPress are tech founders that pivoted to marketing/biz dev, which a lot of devs can’t do, myself included.

\n\n\n\n

The teams at Alpha Particle and Flowspoke saw potential to grow the Kanban for WordPress plugin business with their combined design, marketing, and development skills.

\n\n\n\n

“As WordPress continues to become an even more full-featured platform, we think there’s a demand for great applications to be built inside WordPress,” Alpha Particle CTO Keanan Koppenhaver said. “And Kanban is a perfect example of that. It’s already proven useful for a lot of people and we want to take even more of the features from other project management tools and integrate them tightly with tools WordPress folks are already using, like the Block Editor and WooCommerce, to help add to that unified WordPress experience.”

\n\n\n\n

Although Alpha Particle and Flowspoke already have in-house products they are working on, they wanted to acquire a business where they could immediately start experimenting.

\n\n\n\n

“With a plugin that already has some traction, it just makes it a lot easier to try new things and get quicker feedback on new features and new ideas,” Koppenhaver said. “Since there’s already an engaged user base, we saw the opportunity to take the things we tell our clients to do with their projects and apply them to a product of our own. I think that long-term this wouldn’t be the only one we acquire, but we’ll be on the look out for the next right opportunity. We’re excited about the long-term roadmap we’ve laid out for Kanban, too, and ready to put in the time to focus and make that vision a reality.”

\n\n\n\n

Alpha Particle and Flowspoke plan to release the long-awaited version 3 of Kanban for WordPress in the near future. It has been completely redesigned and rewritten from the ground up. They will also be building in tighter integration with WordPress where users will be able to link posts to cards and automatically have cards moved to the “Published” column after publishing. Kanban for WordPress already has integrations for Gravity Forms and Ninja Forms but the team has more third-party integrations on the roadmap and is also taking suggestions.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 30 Apr 2021 17:14:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"BuddyPress: BuddyPress 8.0.0-beta1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318272\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://buddypress.org/2021/04/buddypress-8-0-0-beta1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4338:\"

BuddyPress 8.0.0-beta1 is now available for testing! \"🥁\"

\n\n\n\n

Please note the plugin is still in development, so we recommend running this beta release on a testing site.

\n\n\n\n

You can test BuddyPress 8.0.0-beta1 in 4 ways :

\n\n\n\n\n\n\n\n

The current target for final release is June 2, 2021. That’s just five weeks away, so your help is vital to making sure that the final release is as good as it can be.

\n\n\n\n

Please note BuddyPress 8.0.0 will require at least WordPress 4.9.

\n\n\n\n

We repeat it each time we announce a beta release : testing for bugs is VERRRY important. Please make sure to test this pre-release using a testing configuration which is very close to the one you are using in production. If you find something unusual (aside from the great new features below), please report it on BuddyPress Trac or post a reply to this support topic.

\n\n\n\n

Here are the three hottest 8.0.0 features to pay close attention to while testing (Check out this report on Trac for the full list).

\n\n\n\n
\n\n\n\n

\"👫\" BP Members Invitations

\n\n\n\n

Whether you allow open registration or not you can use this opt-in feature to let your community grow itself. Once enabled from the BuddyPress Options Administration screen, your members will be able to invite their network of friends, co-workers, students, developers, well possibly anyone, to join your site \"📈\".

\n\n\n\n
\n\n\n\n

\"✍\" Selectable xProfile sign-up fields

\n\n\n\n

Until now, only the Primary group of xProfile fields was displayed on the registration form of your community. 8.0.0 gives you the freedom to choose any field from any field group to add to your site’s registration form \"💫\".

\n\n\n\n
\n\n\n\n

Include WordPress user fields in your BuddyPress member profiles

\n\n\n\n

8.0.0 introduces 2 new xProfile Field types. The WP Textbox can be used to include the user’s first name, last name, Website link or any potential WP contact methods. With the WP Biography field you can display the Biographical Info in the group of xProfile fields of your choice \"🙌\" .

\n\n\n\n
\n\n\n\n

And so much more such as the new Welcome BP Email, the terms of use acceptance profile field, improvements to the BP Nouveau template pack & to the BP REST API…

\n\n\n\n

We’ll tell you more about all these soon into our developer notes.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 23:30:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"WPTavern: Gutenberg 10.5 Embeds PDFs, Adds Verse Block Color Options, and Introduces New Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115767\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:235:\"https://wptavern.com/gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6495:\"

I reach over to grab my phone to check the time. I am debating whether I should stay awake and watch one more episode of The Walking Dead — it would be my fourth, maybe fifth, binge of the series.

\n\n\n\n

11:12 pm.

\n\n\n\n

I noticed that Slack was blowing up my phone. I had it on silent, so I had to catch up. One message stood out above all the rest:

\n\n\n\n

No matching template found.

\n\n\n\n

That was the front page of the Tavern last night as it updated to Gutenberg 10.5. I knew it was related to the Full Site Editing (FSE) changes in the latest release. I had seen that error enough in local testing and needed no more information to know what to do — deactivate the plugin. Then, I could get back to my internal debate of staying up for an hour past my bedtime for TV.

\n\n\n\n

Sometimes, such is life on the bleeding edge, or at least life when running the fortnightly releases of the Gutenberg plugin with automatic updates enabled. It presents a challenge or two or a hundred. I had let my guard down after a smooth 10.4 release, and I knew better. After several prior releases of fixing issues on the backend, the development team gave me a break. It was almost as if they were saving up for something big.

\n\n\n\n

Gutenberg now explicitly declares that anyone running the plugin is on a block-based theme, despite whether their theme actually supports block templates. It should generally fall back gracefully if there none. This seems to be centered on a change that allows classic users to create custom block templates. However, with the plugin activating a “theme-supported” feature automatically, it triggers a chain of events that overrides the template system. Any theme with a custom template hierarchy could break. I created a code snippet on Gist if anyone else runs into the issue and needs to deactivate “block templates” support.

\n\n\n\n

I like that we run the plugin. Daily usage means that we can effectively write about it — a practice-what-you-preach sort of thing.

\n\n\n\n

Sometimes, Gutenberg, you break my heart. You will find few enthusiastic cheerleaders more loyal than me. I believe in the project, but some days, you try your best to make it rough.

\n\n\n\n

But, all is well. There are some exciting things about this release.

\n\n\n\n

Template-editing mode is now enabled for classic themes. Despite this breaking the Tavern theme, it is a feature that I look forward to as a necessary transitional feature toward FSE. Another quick highlight is the work the team has done in making the Columns block more accessible. Each column now has a numbered label that is read aloud via screen-readers.

\n\n\n\n

Embedded PDFs

\n\n\n\nInline-embedded PDF.\n\n\n\n

A decade ago, I had one theme user in particular who needed to embed PDFs. As a young developer, it was just the sort of challenge I needed to build for an audience of one out of 100,000+. So, within the day, I wrapped up a solution similar to what the Gutenberg team did in version 10.5. It is nice to see WordPress finally catching up.

\n\n\n\n

Only the block system makes such embedding much nicer. Drag a PDF into the content canvas and let it work its magic.

\n\n\n\n

There is one caveat: many mobile phones and tablets will not show an embedded PDF. The File block does make a note of this. It also allows users to disable the inline embed and control the height.

\n\n\n\n

This feature offers the best of both worlds. Visitors can read the PDF directly on the page, and they can also click the download button to snag a copy of the file.

\n\n\n\n

Color Options for the Verse Block

\n\n\n\nVerse block with custom colors.\n\n\n\n
Poets can rejoice at last\nThe time of the Verse being a second-class block lies in the past\nUsers can add subtle colors or those that clash\nA tweak here or there can give their words the flash\nthey need\nto breathe\nto exceed, all expectations\nText, background, and links are fair game\nUnreadable if they were all the same\nA splash of color is what it takes to tame\nthe words…
\n\n\n\n

I will stop there and let the pros handle actual poetry.

\n\n\n\n

Gutenberg 10.2 added the standard block color options to the Verse block. Perhaps all blocks will get the same treatment down the road. I am still waiting on colors for the Quote block too.

\n\n\n\n

New Block Patterns

\n\n\n\n

The latest plugin update removes all 10 of the default WordPress block patterns and replaces them with 15 fresh designs. The new set is an attempt to better showcase the editor’s capabilities.

\n\n\n\nTesting new block patterns.\n\n\n\n

For end-users who might be worried about losing their old patterns, this will not affect your content. Because patterns are merely predefined sets of blocks, it is the blocks rather than the patterns that actually get inserted into the content canvas and saved.

\n\n\n\n

The removal of old patterns with replacements of new ones was always a part of the plan. Web design changes over time, and the patterns system allows core developers to keep pace. Perhaps the old patterns will live in the upcoming block directory for those users who still want them.

\n\n\n\n

Gutenberg 10.5 also introduces a few opinionated Query block patterns: Post Grid, Large Title, and Offset Posts. The ultimate goal is to provide an array of options for users as a starting point.

\n\n\n\n“Large title” Query block pattern.\n\n\n\n

There is still an open call for the designers to pitch in, contributing custom Query patterns to the project. It is an opportunity to give back that requires almost no JavaScript or PHP programming knowledge.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 16:41:02 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"WordCamp Central: Making a great online conference experience at WordCamp Prague\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:39:\"https://central.wordcamp.org/?p=3138356\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:108:\"https://central.wordcamp.org/news/2021/04/29/making-a-great-online-conference-experience-at-wordcamp-prague/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14783:\"

My name is Jan, I am a Toolset developer at OnTheGoSystems. For the past several years, I have been actively involved in the Czech WordPress community. On Saturday 27th of February 2021, we held an online conference WordCamp Prague 2021.

\n

Switching an interactive, in-person event to the online format while keeping most of its magic has been difficult but certainly not impossible.

\n

As this year’s lead organizer, I want to share pieces of this sometimes arduous but extremely rewarding journey, together with some crucial ingredients that made it a success beyond our wildest expectations.

\n

\n

Let’s just face the truth: If I knew what I was actually getting into, I wouldn’t have said yes. But I am deeply grateful that I didn’t know. Even after being on the team two years prior to this one, the experience of being a lead organizer is pretty much non-transferable.

\n

Even so, I — a backend software developer with questionable social and team management skills — was very reluctant about taking such a huge responsibility.

\n

One of the things that convinced me — besides the fact that, apart from the then lead organizer, nobody else from our team was willing to take the role — was that this time, we were going to do an online conference.

\n

This unique situation meant two things that removed most of my anxiety. First, nobody knew what to expect from an online WordCamp Prague: It was a completely new thing, an experiment, even. Let’s do our best and see what happens.

\n

Second, the budget was no longer nightmare-inducing, compared to previous years (especially the fact that we were never sustainable without sponsors, and every time, we worried if we would manage to secure enough funding).

\n

With the pandemic foreseeably about to wreak havoc on our small country, with all the uncertainty, and with me in strict isolation until a vaccine is available, a fully online event was the only realistic way we could actually make it happen.

\n

And so we did.

\n

Specifically, by “we”, I mean the fourteen of us: My fellow WordCamp organizers, most of whom have been on the team for years (many of them previous lead organizers), some new faces, and a small recording studio owner who demonstrated superhuman patience during the whole process. Even with this amount of people, it took considerable effort, and without the dedication, good teamwork, and communication, this wouldn’t have worked at all.

\n

\n

Part of the WordCamp Prague 2021 organizer team at the closing speech

\n

The Recipe

\n

My goal since the very beginning was to make it very interactive and to emulate the experience of a physical conference — where, as everyone who ever attended one will testify, the true magic of WordCamps happens — as closely as possible.

\n

A great source of inspiration was WordCamp Europe 2020, which had to be hastily switched to an online version just a couple of months before (and I deeply empathize with its organizers, it must have been an extremely hard blow for them, much harder than for us who have “just” booked a hotel in Porto or already bought non-refundable airline tickets). I got some ideas from there that we copied and also some things I knew I wanted to avoid.

\n

So, here’s our “online WordCamp recipe”, if you will:

\n

A local target audience

\n

From the get-go, we decided to explicitly focus on the Czech and Slovak audience, and we didn’t accept any English talks whatsoever (some of the speakers who applied will be talking at our monthly meetups, though).

\n

The reasoning behind this was what I call online conference fatigue. Attending an English-speaking WordPress event is very easy these days, with WordCamps or meetups happening every couple of days or weeks. There’s nothing wrong with that, of course.

\n

But, considering that many of our fellow citizens aren’t fluent English speakers — the language barrier is still rather high, unfortunately — and that we were told there are no other WordCamps planned in the Czech Republic or Slovakia for the upcoming year, we found ourselves in a unique position to kind of fill this niche (side note: Czechs and Slovaks understand each other very well) and to effectively add some value to the WordPress ecosystem in our region.

\n

In the end, I believe this was one of the main reasons for such a high attendance (over 650 registered attendees, 595 of which showed up).

\n

A proper online conference platform

\n

WCEU — and other WordCamps as well — went with a combination of YouTube Live or Crowdcast for presentation tracks and Zoom for networking or virtual sponsor booths. While that is affordable, relatively easy, and accessible (and once again: I cannot blame WCEU for this choice due to the time pressure), I was not entirely satisfied. The result felt a bit confusing, constantly switching between browser tabs or different applications.

\n

We put a lot of effort into finding a good platform, and we eventually settled on Hopin. It wasn’t without its quirks and little obstacles, it definitely wasn’t for free. But it worked great for the attendees. It allowed us to have a main “stage”, networking rooms, sponsor booths, even the schedule all in one place. It was immersive.

\n

\n

Front page of the event on Hopin

\n

One track only

\n

I have to admit that the two-track experience of WCEU (which also meant two networking rooms on Zoom) was pretty overwhelming. I can be an information sponge and I had a hard time deciding what I want to see or where I want to be the most.

\n

Also, we didn’t have enough resources to effectively run multiple tracks for WordCamp Prague. To cover one track for a whole day, you need at least two hosts and then two other teammates who will stay in the networking room (we called ours “foyer”). We were very lucky to find our two hosts and we decided to go for quality instead of quantity.

\n

From the feedback we received, this was a good choice. Even with keeping presentations to only one track, many people still struggled with wanting to be both in the main track and in the foyer at the same time.

\n

Pre-recorded talks, live Q&A

\n

One of those things that I truly liked about WCEU — and that we’ve easily agreed upon — was that our speakers’ talks would be pre-recorded and then they would join together with a host for a live Q&A session.

\n

With fourteen speakers, the risk that something somewhere would go wrong was considerable. This way, the worst that could happen would be losing the Q&A.

\n

The approach had some unexpected secondary benefits too: Our hosts could see the talk in advance and prepare for the Q&A much better. We knew when it would end, so we could plan our timetable accordingly. The speakers knew they really had to submit their completed talk a couple of days before the event. And so on.

\n

Networking with the speaker afterward

\n

If I had to pick one key aspect that made the most difference, this would be it. Also inspired by WCEU, after every talk (ca. 20min + 5min for Q&A), the speaker was invited to join the foyer (networking room) where the attendees could catch up with them either by asking further questions in the chat or by connecting with their audio and video and talking to them directly.

\n

This ended up being very popular, there were always a couple of dozen people in the foyer. Sometimes, the conversation had to continue in a newly created room after the following speaker had finished their talk and joined in as well.

\n

We had two of our team members always present, ready with some of their own questions for the speaker, to help start the conversation if needed.

\n

Virtual sponsor booths with schedule

\n

The highest two tiers of our sponsor program included a virtual sponsor booth. We suggested the sponsors pick one hour on the schedule and hold their presentation then, instead of having to attend for the whole day.

\n

It was also practical for the attendees, I believe, to know what’s the best time to visit and ask questions.

\n

When not active, the virtual booth was in a “presentation” mode with a sponsor’s slideshow on repeat.

\n

Happiness bar and afterparty

\n

No WordCamp is a proper WordCamp without these two things.

\n

We implemented the happiness bar as another virtual room (same as the foyer) and two to three volunteers were always present to answer any attendees’ questions about their WordPress sites.

\n

As for the afterparty, we created four different “tables” – virtual rooms. One of them also for English speakers, since some of our sponsors’ representatives wanted to attend as well.

\n

To my surprise, two of those tables stayed active for a pretty long time, and when we concluded the afterparty around 10 PM, there were still about twenty, thirty people around. Perhaps we’ve become more used to online socializing because of the pandemic endless lockdowns, but some of the feedback we received went along the lines of “it felt almost like a physical WordCamp.”

\n

Interviews with speakers

\n

In years past, before the conference itself, we usually did write interviews with speakers and then shared the articles on our social media to bring attention to the event. It was usually quite difficult to produce these interview articles: The speakers rarely found enough time for this and we often got late submissions or content that was not wordy enough. Then, the text had to be polished and reviewed before publishing.

\n

This year, instead, someone had the brilliant idea to just do live interviews via Zoom. The advantages were numerous: It was fast to make, we immediately had the final product (videorecording) with minimal post-processing, and it was also fast to view and more attractive on social media than a long text.

\n

A strong, positive organizer team

\n

I can’t stress enough how well my team managed to self-organize and how dedicated the vast majority of us were to deliver a great result. Even under time pressure, we’ve always done our best to keep the spirit up.

\n

After all, we should all remember, it’s a WordCamp, a volunteer-organized event that should be interesting and fun, not a question of life and death. Everything doesn’t always have to be perfect. It’s important to keep that in mind.

\n

\n

WordCamp Prague 2021 organizers

\n

Looking back

\n

In retrospect, the whole experience was intense, difficult at times, but ultimately rewarding beyond expectation.

\n

I find myself struggling to compare it with previous years. The physical event is really something else, and my perspective was dramatically shifted in my new role.

\n

But I will say this: We keep building on the work of previous years. Be it our visual presence, the experience of individual team members with their agenda, or the way we organize and carefully handpick and balance the content of the whole event. It seems that we manage to move the event forward every year, and that’s ultimately what matters.

\n

The most challenging part was time management — no surprise there. Because of the pandemic, everyone was kind of busy with their lives and we started seriously organizing only towards the end of September. In combination with the already somewhat problematic timing, we set ourselves up for quite a wild ride.

\n

If you want to do the event before the main conference season, that also means that you have less than two months from confirming speakers to make everything happen. Practically nothing gets done during December, and the speakers will not plan that far ahead as to apply in November already.

\n

This timing is kind of set in stone for us and we will have to handle everything that we can beforehand so that the run to the finish line is without unnecessary obstacles.

\n

Also, with my limited experience, I would say that organizing a team of — albeit very motivated — volunteers who have different daily jobs is quite different from any sort of project management at work. The primary occupation or other things often have taken precedence over WordCamp and can easily mess up the team’s schedule in a bad way. That’s why we always have to strive for asynchronous communication.

\n

Looking forward

\n

And what’s next? I might apply to lead the next year as well, especially if my teammates decide to continue as well. The idea of starting with a physical event organization around May feels downright ridiculous at this point because of the situation in our country. And since I already have experience with leading an online event, I might as well exploit it.

\n

For the next year, I want to again iterate on our know-how, keep what has worked, and replace the things that didn’t — simply, to move the whole project a couple of steps forward.

\n

Most importantly, my great desire is to make the preparations run smoothly, do things in advance, reduce the amount of stress for the whole team.

\n

Apart from that, we’ll be also focusing on monthly WP Pivo meetups and other activities of the community, but that is a topic for another time.

\n

If you have any comments or questions, I invite you to reach out to me.

\n

\"\"

\n

WordCamp Prague mascot, The Wapuu King

\n

This post was originally published on onthegosystems.com.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 08:53:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:3:\"Jan\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"WPTavern: Pattern Directory Targeted to Launch with WordPress 5.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115742\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:175:\"https://wptavern.com/pattern-directory-targeted-to-launch-with-wordpress-5-8?utm_source=rss&utm_medium=rss&utm_campaign=pattern-directory-targeted-to-launch-with-wordpress-5-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2218:\"

Last month WordPress contributors published the initial designs for the upcoming pattern directory, which will host community-submitted patterns that can be installed with one click from the block inserter in the editor. A live prototype of the work in progress is available at wordpress.org/patterns.

\n\n\n\n
\n\n\n\n

The previously planned masonry style, which accommodates variable thumbnail heights, has not been implemented yet. Clicking on the individual pattern reveals a live preview with a handy resizing bar for trying it out on different screen sizes. The copying and favoriting features are not yet fully working. I was able to copy and paste patterns into the editor, but the previews aren’t yet very accurate.

\n\n\n\n

The project is clipping along and contributors are aiming to have the new directory ready to launch in tandem with the upcoming WordPress 5.8 release. Features planned for the first version include browsing and searching patterns, live preview of patterns, and the ability to copy the block code. Users signed into WordPress.org will be able to create and submit patterns to the directory using a set of curated images and media. They will go through a basic moderation process and patterns will be available for download directly through the block editor.

\n\n\n\n

Once the directory is launched, contributors plan to add support for internationalization, forking and iterating on patterns, expand the available media for use in pattern creation, and add a pattern browsing UI to the editor.

\n\n\n\n

WordPress 5.8 is expected to land in July 2021 with the new Query, Site Logo, and Navigation blocks, template-editing mode, and the block-based widgets screen and customizer integration. The availability of pre-made patterns will be a beneficial accompaniment to the first round of full-site editing features added to core in the next release, enhancing the basic page building experience.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 04:25:54 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Gravity Forms 2.5 Launches With an Overhauled UI and Focus on Accessibility\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115645\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/gravity-forms-2-5-launches-with-an-overhauled-ui-and-focus-on-accessibility?utm_source=rss&utm_medium=rss&utm_campaign=gravity-forms-2-5-launches-with-an-overhauled-ui-and-focus-on-accessibility\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7327:\"

The Gravity Forms team formally announced version 2.5 of its form plugin yesterday. The product, owned by Rocketgenius, promises an overhauled experience that is more in line with the core block editor. The team also wanted to put accessibility at the forefront of this release.

\n\n\n\n

The design is fresh, ditching pieces of the older WordPress UI in favor of cleaner lines and branding. The update should make current users feel like they are getting an overhauled product that still offers all the tools they are accustomed to. It should also feel more attractive to new customers.

\n\n\n\n

“Our big push with 2.5 is to update our editor so it looks more like Gutenberg, added more enhancements to using it in the block editor as well as doing our level best to make Gravity Forms the easiest form plugin in the ecosystem to make accessible,” said James Giroux, Community Experience Manager at Rocketgenius.

\n\n\n\n
Comparison between new and old Gravity Forms editor screens.\n\n\n\n

While much of the new UI looks and feels like the block editor, there are differences in the user experience. Instead of a block inserter, form fields can be clicked or dragged and dropped from the right sidebar. Users more accustomed to slash commands will not be able to work directly from the content canvas. Even with the differences, building forms felt natural.

\n\n\n\n

“The native WP editor experience is changing a lot, and things are continuing to evolve there,” said Giroux. “One of the things we’ve worked really hard on with this latest release is to be as consistent as we can with our UI without being completely identical to the editor. This gives us the freedom to adapt to our users’ needs without being constrained by the timelines and development priorities of the WP editor. Our previous form editor was designed to fit in with the look and feel of the editor of the day, and I expect we’ll continue to be influenced and shaped by what the community designs and creates for Core.”

\n\n\n\n

Gravity Forms always carved its own path, leaping when others were still learning to crawl. Building entirely with native WordPress methods could hinder their goals, and the block system is still rapidly changing.

\n\n\n\n

“We’re very excited about the new UI patterns that the block editor has introduced,” said Giroux. “It gives us a blueprint to create with consistency that we believe will lead to better user outcomes. The legacy WordPress Dashboard was not opinionated by design. The Block Editor and now Full Site Editing workflows, however, are giving us a lot more that we can apply. This will make Gravity Forms more familiar to WordPress users, and that’s probably the biggest way the new editing experience has shaped our approach.”

\n\n\n\nForms management screen.\n\n\n\n

“The Block Editor is a great tool for users,” said Giroux. “If we can find ways to give more functionality on a per post or per-page basis that will maintain the stability and performance that our users have come to expect, I don’t see why we wouldn’t move in that direction. For now, there is a lot of opportunity for us to explore the existing options available within the editor that keep development complexity to a minimum, and we’re keen to do that and provide more value to Gravity Forms users via the block editor.”

\n\n\n\n

On accessibility, the primary lesson the team learned is that there is no magic switch to make a site WCAG compliant. It takes a holistic approach. WordPress, themes, and plugins must each do their parts to make this path easier for users.

\n\n\n\n

“What we have done is invest in learning as much as we can about accessibility, the challenges of accessible forms, and worked with Rian Rietveld and the team at Level Level to make creating accessible forms easier and faster,” he said.

\n\n\n\n

Gravity Forms 2.5 introduces new tools to enable accessible forms and outputs warnings when a user is configuring a form in a way that would pose an issue. The team also has extensive documentation on accessibility and a blog post covering it in the context of version 2.5.

\n\n\n\n

“We’ve committed ourselves to making accessibility and accessibility testing a part of our development process,” said Giroux.

\n\n\n\n

Outside of mentioning that the current release is the foundation going forward and excitement over new ideas, he remained tight-lipped about specific features in the pipeline for version 2.6 and beyond.

\n\n\n\n

Competition and the Forms Market

\n\n\n\nExtensions from the Certified Add-On program.\n\n\n\n

For years, few developers or companies could afford the time and monetary investment of creating visual builders, for forms or otherwise. It is no small feat to accomplish what Gravity Forms and others have done in the past. However, the block system is a set of APIs that could take some legwork out of the equation. Eager developers might see this as an opportunity to carve out their own slice of the market.

\n\n\n\n

Even while Gravity Forms is taking cues from core WordPress, the block editor could level the playing field, introducing new competition.

\n\n\n\n

“I’m very excited by what we’re seeing plugin developers do with the functionality in the WordPress editor,” said Giroux. “Giving users common patterns that work the same regardless of the developer, I believe, will only help further adoption of WordPress and the plugins that capitalize on the power of the editor. Gravity Forms is more than just a form builder, it’s a platform for building some pretty exciting workflows which can be challenging to adapt to the pace of change in the editor. As the development cycle matures and becomes more predictable, I’m eager to see how more complex plugin ecosystems like ours adapt to it.”

\n\n\n\n

The Gravity Forms team looks at forms as “just the tip of the iceberg,” seeing value in helping web professionals solve problems with different types of business data.

\n\n\n\n

Even in an increasingly crowded space, they have tripled their team size in the past two years, launched a Certified Developer program, and upgraded their support and user feedback system.

\n\n\n\n

“We are committed to being the most reliable, secure, and accessible form solution, and I think that’s what keeps us relevant,” said Giroux. “The WordPress ecosystem is maturing, and while it is harder to stand out today than perhaps a few years ago, there is still a lot of opportunity for great ideas and great innovation, just like we’re seeing with the WordPress editor.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 21:44:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"WordPress.org blog: Getting Started with the Figma WordPress Design Library\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10173\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"https://wordpress.org/news/2021/04/getting-started-with-the-figma-wordpress-design-library/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:18151:\"

Created by James Koster, (@jameskoster)

\n\n\n\n

As the name suggests, the WordPress Design Library is a library of WordPress design assets, enabling anyone to quickly create design prototypes for WordPress UI in Figma.

\n\n\n\n

These tools are useful for designers when creating new UI and for anyone looking to contribute ideas, enhancements, or even solutions to bug reports. Sometimes pictures really do speak a thousand words.

\n\n\n\n

In this post, we’ll talk about some key features of Figma before diving into a practical example that demonstrates some of the WordPress Design Library utilities.

\n\n\n\n

What Is Figma?

\n\n\n\n
\"\"
\n\n\n\n

Figma is a collaborative design tool that members of the WordPress project’s design team have been using for several years to work on and share design concepts. It offers a variety of handy features such as: in-browser access, rich prototyping tools, component libraries, code inspectors, live embeds, inline commenting, plugins, and much much more.

\n\n\n\n

Perhaps best of all, it is totally free to sign up and start playing around. If you join the WordPress.org Figma organization (instructions below), you’ll gain access to the WordPress Design Library enabling you to design WordPress UI in no time.

\n\n\n\n

What Is the WordPress Design Library?

\n\n\n\n

In Figma, you can share components and styles by publishing them, transforming your file into a library so that you can use instances of those components in other files.

Figma.com
\n\n\n\n

It may be easiest to think of the WordPress Design Library as a visual representation of all the javascript components that compose UI in the WordPress codebase. As an end user of the library, you can use those components in a self-contained environment to create new interface designs. It’s kind of like a big LEGO box containing all the UI pieces (buttons, form inputs, etc.) that you can use to create and try out new designs.

\n\n\n\n
\"\"\"\"
\n\n\n\n

Creating designs with these assets enables rapid ideation on new interfaces by removing mundane processes that one would ordinarily have to work through. Nobody wants to repeatedly double-check that the button they made perfectly matches the buttons rendered by the code! And on the flip-side of that coin, anyone sharing a design with others will generally endeavor to make specific elements (like buttons) match what exists in the code as closely as possible. The WordPress Design Library solves both these headaches and more.

\n\n\n\n

An additional benefit to these assets visually matching what exists in the codebase is that any designs you create with them will inherently make use of the latest WordPress design language and consequently feel like WordPress with almost no effort required. Passing such designs on to developers makes them easier to interpret and implement too.

\n\n\n\n

Figma Fundamentals

\n\n\n\n

Before getting into the practical section of this post, let’s quickly cover some of the fundamental features of Figma libraries. This will help prepare us for working with the WordPress Design Library.

\n\n\n\n

Components

\n\n\n\n

As we touched on above, the library consists of “components” that serve as visual counterparts to their code-based equivalents. That is to say, there is a Button component in Figma, and a matching Button component in the WordPress codebase.

\n\n\n\n

But what is a Figma component?

\n\n\n\n

Components are elements you can reuse across your designs. They help to create and manage consistent designs across projects.

help.figma.com
\n\n\n\n

Let’s quickly explore some of the properties of Figma components to understand the ways they help when working on our next design.

\n\n\n\n

Variants

\n\n\n\n

Some Figma components offer variants. One example is Button(s) which all have the following states:

\n\n\n\n
  • Resting
  • Hover
  • Focus
  • Disabled
\n\n\n\n

These can be manipulated via the variants interface in Figma:

\n\n\n\n\"\"\n\n\n\n

Other examples of components with variants are form inputs and menu items. Variants are a new feature in Figma, so we’ll be adding more over time.

\n\n\n\n

Overrides

\n\n\n\n

Although any components you insert are intrinsically linked to the master component in the library, it is possible to override some properties.

\n\n\n\n

While working with an instance of the Button component, you can change things like the label, or even the background color, while maintaining the link to the master component in the library. If you’re familiar with git workflows, this is kind of like creating a local branch. Any changes you make can easily be reset in a couple of clicks.

\n\n\n\n\"\"\n\n\n\n

Overrides made to your local instance will persist even when the master component is updated. So if your design calls for a button with a green background, you can apply that override safely with the knowledge that even if the master component is updated, your button can inherit those updates and remain green.

\n\n\n\n
\n\n\n\n

We’ve only really scratched the surface of components here. So I would recommend the official Figma documentation for more advanced information.

\n\n\n\n

Figma Styles

\n\n\n\n

In addition to components, styles are also published as part of the WordPress Design Library. They have similar properties to components in that a master style exists in the library and can be utilized in your local Figma file. Just like Components, Styles will receive updates when changes to the library are published.

\n\n\n\n

Styles are used to define colors, typographical rules, and effects like drop-shadows present in the WordPress codebase. They enable you to apply things like text or background colors that will match other UI parts.

\n\n\n\n

Using Styles from the library, you ensure that your creations match existing UI elements, making it easier to implement.

\n\n\n\n\"\"\n\n\n\n
\n\n\n\n

To learn more about styles in Figma, I recommend the official documentation.

\n\n\n\n

Views and Stickers

\n\n\n\n

“Stickers” are simply arrangements of Components and Styles that have been combined to represent common UI elements. They are not good candidates for full componentization due to their frequent customization needs. Examples of Stickers include the Inspector sidebar and the block inserter:

\n\n\n\n\"\"\n\n\n\n

Their utility is simple: find the sticker you need, peel (copy) it from the WordPress Design Library, and stick (paste) it into your local file before customizing as needed.

\n\n\n\n

Stickers are not Figma features like Components and Styles, but any stickers you copy to a working file will stay up to date by virtue of their underlying assets.

\n\n\n\n

Views are arrangements of components, styles, and stickers.

\n\n\n\n

Designing a Block Using the WordPress Design Library

\n\n\n\n

Okay, now that we have a handle on the basics of Figma libraries and their features and the utilities of the WordPress Design Library like Stickers and Views, let’s work through a practical example – designing the UI for a brand new block.

\n\n\n\n

Getting Started

\n\n\n\n

All you need to get started is a Figma account added to the WordPress.org Figma organization.

\n\n\n\n

Once you’ve signed up at Figma, simply join the #Design channel on the community Slack and request an invite. Include your Figma username, and a friendly community member will help get you set up in no time.

\n\n\n\n

Now the fun begins!

\n\n\n\n

To create a fresh new design file in Figma, visit the Gutenberg project and click the “+ New” button.

\n\n\n\n\"\"\n\n\n\n

Now let’s include the WordPress Design Library in our working file so that we have access to all the goodies we’ll need:

\n\n\n\n
  1. Open the “Assets” panel and click the little book icon to view the available Team Libraries.
  2. In the modal, toggle the WordPress Design Library on. You can leave the others off for now.
\n\n\n\n\"\"\n\n\n\n

After closing the modal, you’ll notice a number of components become visible in the assets panel. To insert them, they can be dragged on to the canvas:

\n\n\n\n\"\"\n\n\n\n

It’s kind of like inserting a block \"🙂\"

\n\n\n\n

Creating a Pizza Block \"🍕\"

\n\n\n\n

I love to eat pizza, so for fun, I’m going to design a new block that simply allows the user to display a delicious pizza in their posts and pages. I want the block to include options for a total number of slices and different toppings.

\n\n\n\n

Work Out the Flow

\n\n\n\n

I always like to concentrate on individual flows when designing blocks. That is to say, the linear steps a user will take when working with that block. In this case, I want to create visualizations of the following steps/views in our Figma file:

\n\n\n\n
  1. Inserting the block from the Block Inserter
  2. The Pizza Block placeholder state including options in the block, its Toolbar, and the Inspector
  3. The configured Pizza Block settings
  4. The end result – a delicious pizza sitting comfortably on the canvas
\n\n\n\n

Sketch the New States

\n\n\n\n

Thanks to the WordPress Design Library, I’ll be using as many existing UI components as possible, but I still need a rough idea of how they will be composed in the new interfaces that my Pizza block will require. I normally find it helpful to sketch these out on paper.

\n\n\n\n

Here’s the placeholder state which users will see when they first insert the block. This should be all I need:

\n\n\n\n\"\"\n\n\n\n

Prepare the Views and Stickers

\n\n\n\n

Helpfully, there are Views in the WordPress Design Library I can use for each of the steps in the flow outlined above.

\n\n\n\n

I open the library, navigate to the Views page, find the views I need, copy them, and paste into my working file.

\n\n\n\n\"\"\n\n\n\n

It is very important to copy (not cut) Views from the library so that they remain intact and other people can still access them. If you cut them, they’ll be gone forever, so please don’t do that \"🙂\"

\n\n\n\n

I’m also going to need a block placeholder sticker, so I navigate to the Stickers page, copy the one that most closely resembles my sketch from before, and paste it into my working file.

\n\n\n\n\"\"\n\n\n\n

As with views, please only copy stickers; do not cut them.

\n\n\n\n

Gather the Components

\n\n\n\n

Referring back to the placeholder state I sketched out on paper (it can be helpful to import this into your Figma file), I can see that I’m going to need some form elements to realize the design.

\n\n\n\n\"\"\n\n\n\n

I navigate to the Assets panel, locate the components I need, and drag them into my file:

\n\n\n\n\"\"\n\n\n\n

Helpful tip: Once a component has been inserted, you can transform it into another component via its settings panel. Sometimes it is easier to copy/paste a component you already inserted and transform it this way, rather than opening the assets panel over and over.

\n\n\n\n

Arrange the Views, Stickers, and Components to Create a Coherent Design

\n\n\n\n

Now that we’ve gathered all the individual pieces we need, it’s simply a case of arranging them so that they resemble each of the steps of the flow we outlined before. This is done with simple drag and drop.

\n\n\n\n

If you’re familiar with software like Photoshop, Sketch, and others, this should feel very familiar.

\n\n\n\n\"\"\n\n\n\n

Once everything is in place, our flow is complete:

\n\n\n\n\"\"\n\n\n\n

I still find it incredible that we’re able to do this in just a few short moments.

\n\n\n\n

Hook up the Prototype

\n\n\n\n

With each step of our flow created, the last piece of the puzzle is to connect them and form a clickable prototype.

\n\n\n\n

I switch to the Prototype panel and create click behaviors by selecting a layer, then dragging the white dot to the corresponding frame.

\n\n\n\n\"\"\n\n\n\n

There are a variety of behaviors that the Figma prototyping tools support, such as a hover, drag, and click. It is even possible to create smart animations. Perhaps that’s something we can explore in another tutorial, but for now, I will refer you to the Figma documentation for more advanced prototyping.

\n\n\n\n

Now that I’ve connected all the appropriate elements, I am able to take my prototype for a test drive by clicking the Play \"▶\" icon:

\n\n\n\n\"\"\n\n\n\n

You can try it too; just click here.

\n\n\n\n

That’s All, Folks!

\n\n\n\n

I tried to keep this tutorial fairly simple and concise; even though we only really got to grips with the basics here, you can see the power of Figma and the WordPress Design Library when it comes to trying out new designs.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: Creative Commons Search to Relaunch on WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115690\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/creative-commons-search-to-relaunch-on-wordpress-org?utm_source=rss&utm_medium=rss&utm_campaign=creative-commons-search-to-relaunch-on-wordpress-org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3493:\"

The Creative Commons search engine will soon be part of WordPress.org, as Automattic will begin sponsoring several members of the CC Search team to maintain it. The engine currently offers over 500 million images, audio, and videos, under Creative Commons licenses or the public domain, aggregating more than 45 different sources.

\n\n\n\n

Matt Mullenweg announced the acquisition on his personal blog, saying that CC Search would be “joining the WordPress project.” It is a major benefit to the community, providing a valuable resource for finding GPL-compatible images for use in WordPress-derivative products like themes and plugins. Mullenweg hinted at a long-term plan where deeply integrating CC search into WordPress.org is just the first step:

\n\n\n\n

I am eager to give a new home to their open search product on WordPress.org in continued commitment to open source freedoms, and providing this community resource for decades to come. This is an important first step to provide a long-term, sustainable challenger to proprietary libraries like Unsplash.

\n\n\n\n

The reference to Unsplash follows the company’s controversial licensing changes, where it abandoned CC0 licensing in 2017 after making a name for itself by offering images originally shared to the public domain. That body of work was hidden away by Unsplash’s refusal to use its API to differentiate these CC0 images going forward. In July 2020, the controversy was renewed after Unsplash launched its official WordPress plugin. Some users are apprehensive about the company’s willingness to change its license and terms in the future, especially after Unsplash was acquired by Getty Images.

\n\n\n\n

Creative Commons search remains one of the few places to find CC0-licensed images that are compatible with the GPL. It will be interesting to see how this news of CC Search finding a new home on WordPress.org will affect Automattic’s relationship with Pexels, another image library with even more restrictive licensing than Unsplash. Access to Pexels was added to WordPress.com in 2018 and is also integrated with Jetpack.

\n\n\n\n

“When I started CC Search, I always hoped it would become part of the infrastructure of the Internet,” former Creative Commons CEO Ryan Merkley  said. “Matt Mullenweg and I first talked about CC Search in 2018, and he immediately saw the potential. I’m so happy to see this happen. It’s great for WordPress, and great for the Commons.”

\n\n\n\n

Mullenweg’s announcement said he anticipates CC search will be live and and running on WordPress.org in a few weeks. The new Automattic employees who were hired from Creative Commons will have their contributions sponsored by the company as part of the company’s Five for the Future commitment.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 04:42:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"WPTavern: Churel Is a Colorful and Minimalist Block-Ready WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115663\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/churel-is-a-colorful-and-minimalist-block-ready-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=churel-is-a-colorful-and-minimalist-block-ready-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5311:\"\n\n\n\n

WordPress theme development company Themix released its third free theme to the official directory this week. Churel is described as a theme for organizations and businesses that also works for traditional blogging.

\n\n\n\n

The development team has a keen eye for modern color schemes and font families. The theme has a refreshing design that is rare for the free theme directory, at least at first glance. It is the sort of project with just the right amount of eye candy to pull users in.

\n\n\n\n

If that was everything necessary for great design, the theme would land in my top 10 picks from WordPress.org without a second thought. However, after digging deeper, it was clear the design had some issues. They are fixable. It would not take much nudging of a few CSS rules to make this a much better theme, so let’s just dive right into the problems before getting into the good stuff.

\n\n\n\n

The theme’s most clear-cut flaw is with its typography. Sizing and words-per-line work well enough. The default Open Sans font is rarely a poor choice for readability. However, the line height is far too large for a good flow, and the white space between paragraphs makes it tough to tell where one ends and the other begins. It is almost as if the team got halfway through with fine-tuning the typography and decided to simply stop. It is a glaring issue that makes the theme practically unusable for long-form content, but it could be addressed with two minor style changes.

\n\n\n\n
\n\n\n\n

For a theme “designed to take full advantage of the flexibility of the block editor,” it is missing one crucial component: editor styles. It is marked with the official “Block Editor Styles” tag in the directory and passed through the review process with no mention of it.

\n\n\n\n

This seems like an oversight. Maybe something was lost in the build process or accidentally deleted before submission.

\n\n\n\n
\n\n\n\n

Churel relies on the Kirki Customizer Framework, a requirement for accessing any theme options. Most controls the theme uses are built directly into WordPress. It does not make much sense to tie them to the activation of a third-party plugin, particularly for its simple color options.

\n\n\n\n

Despite its faults, I fell in love with its homepage design immediately. The modern card design coupled with a minimalist page layout and bright colors makes me want to explore. And, you just got to love the ghost in the demo logo, right?

\n\n\n\nChurel theme homepage.\n\n\n\n

I also welcome any theme that actually creates a unique design for sticky posts on the homepage. Far too many theme authors either ignore it in whole or relegate it to a last-minute addition. The design team did not go overboard, but they made sure that readers know, “Hey, this is important,” while keeping it simple.

\n\n\n\n

Other elements are attractive about the theme, such as its subscription/newsletter area in the page footer. The attention to detail when styling the core widgets means everything looks good in the theme’s sidebars. And a handful of animations sprinkled throughout the design, such as floating circles and an underline effect on post title links, add an extra dimension without feeling clunky.

\n\n\n\n

Churel is almost a top-tier block-ready WordPress theme. With a handful of trivial CSS changes and — I will sound like a broken record to regular readers — some block patterns, it could be.

\n\n\n\n

The theme’s “Authors” page template is an example of a missed opportunity for a block pattern. The page template itself might be perfect for some but not others. It automatically lists administrators and authors along with their profiles. By overlooking other roles that can publish posts, the system is rigid. “Authors” or, more commonly, “team” pages are an ideal fit for the block system. Site administrators could quickly create and customize such a page if they merely had a pattern for doing so.

\n\n\n\nChurel theme “Authors” page template.\n\n\n\n

A pattern built from the Columns block with nested Image, Heading, Separator, and Social Icons blocks would make this easy. Throw in an “alternating colors” block style (or just let users control the colors) for the Columns, and users can build what they want more easily than theme authors doing guesswork about what user profiles should appear.

\n\n\n\n

The block editor exists to solve these problems, and theme authors are leaving half their tools in the bag. Block patterns will be a cornerstone of theme design in the coming years.

\n\n\n\n

I may be overusing the term as of late, but this yet another theme that has potential. It is not the best that it can be yet, but it is a decent 1.x launch.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 21:09:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"Matt: CC Search to join WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=54079\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://ma.tt/2021/04/cc-search-to-join-wordpress-org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1426:\"\n\n\n\n

The WordPress community has long advocated for a repository with GPL-compatible images, and it’s time to listen to that need. CC Search, a CC0 (Creative Commons Zero) image search engine, is joining the WordPress project with over 500 million openly licensed and public domain images discoverable from over 50 sources, audio and video soon to come.

\n\n\n\n

I am a long-time supporter of Creative Commons and their influential work on open content licenses, and when we heard they were considering shutting down their CC Search engine we immediately started exploring ways we could keep it going. I am eager to give a new home to their open search product on WordPress.org in continued commitment to open source freedoms, and providing this community resource for decades to come. This is an important first step to provide a long-term, sustainable challenger to proprietary libraries like Unsplash.

\n\n\n\n

Automattic has hired key members of the CC Search team and will sponsor their contributions as part of our Five for the Future commitment. I look forward to seeing the project grow and welcome them to the WordPress community! Will share in a few weeks when everything is live and running on the site.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:36:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WordPress.org blog: Curious About Full Site Editing?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10190\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/curious-about-full-site-editing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2790:\"

The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more.

\n\n\n\n

For Site Owners and Operators

\n\n\n\n

If you own and operate a WordPress site, updating to version 5.8 should be a seamless experience, just like any other update. All the conversation around full site editing is very exciting, but shouldn’t be alarming—everything in the next release that relates to full site editing is opt-in. To experiment freely with it, you need a theme that is built for it. Check the links at the end to see a few examples!

\n\n\n\n

For Agencies and Theme/Plugin Developers

\n\n\n\n

If you extend the functionality of the WordPress CMS for clients, updating to version 5.8 should also be seamless. As always, it’s smart to spot-check custom implementations in a staging environment or fully test when the release candidate is made available. Want to test your products and get everything client-ready? Check out any of the testing options below.

\n\n\n\n

For Contributors and Volunteers

\n\n\n\n

If you contribute time and expertise to the WordPress project, you can join us in the interesting work leading up to the WordPress 5.8 release and update your site with the deep satisfaction of a job well done. There is a lot that goes into every release—from design and development to documentation and translation; if you’ve got some time to spare, and want to help support the project that supports the tool that supports your site (whew!), check out the links below.

\n\n\n\n

Resources

\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:26:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Will We See In-Person WordCamps in 2021? An Open Discussion on a Path Forward\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115641\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:217:\"https://wptavern.com/will-we-see-in-person-wordcamps-in-2021-an-open-discussion-on-a-path-forward?utm_source=rss&utm_medium=rss&utm_campaign=will-we-see-in-person-wordcamps-in-2021-an-open-discussion-on-a-path-forward\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3613:\"

Now that COVID-19 vaccinations are becoming more widespread, many hope that in-person WordCamps can once again be a reality. There is no official path forward just yet, and decisions will likely be locally based in the coming months. Angela Jin, a community organizer for Automattic, announced an open discussion around the topic.

\n\n\n\n

Currently, all WordCamps are online-only events. There is no official decision on when in-person events will begin anew.

\n\n\n\n

This is a follow-up to an earlier discussion that began in December 2020. It served as an initial opinion-gathering mission. For communities that have more effectively contained the COVID-19 spread, the Community Team posted guidelines and a checklist for local Meetups in February.

\n\n\n\n

Most of the ideas from the December 2020 dialogue are at the forefront of the current open discussion. Mandatory masks, restricting the length of events, limiting attendance, and capping attendance according to the venue’s capacity top the list.

\n\n\n\n

One of the tougher-to-achieve goals might be setting up safety guidelines around food or drink, which are often steeped in the local culture. It will also be a primary safety concern.

\n\n\n\n

Mandatory registration is on the table. This would allow organizers to contact attendees in case of exposure.

\n\n\n\n

Other suggestions center on maintaining local events, which is what WordCamp is all about. While some of the conferences are held in major cities and draw international crowds and speakers, this could be an opportunity to make sure that events focus directly on their communities. It would also be necessary for containing any spread of the virus or variants to outside populations.

\n\n\n\n

There is one suggestion to recommend that only vaccinated conference-goers attend. This would likely fall under an honor system. Making this mandatory could create potential hurdles based on local jurisdictions. For example, there is a House Bill in Alabama, my home state, that would not allow entertainment events to “discriminate” based on vaccination status if passed. I have yet to verify if WordCamps fall under the definition of “entertainment events” like a concert or sports match.

\n\n\n\n

There are still many unknowns at this point, and every potential in-person WordCamp would have to follow local laws. However, we are nearing a time where such events may once again be a reality.

\n\n\n\n

“I’m going to get a little more personal here: returning to in-person WordCamps is going to be an emotional experience that is going to affect everyone differently,” Jin said in a final note, sharing thoughts that echo throughout the WordPress ecosystem.

\n\n\n\n

“The WordPress community has a big range of introverts to extroverts, and we’ve gone through major changes to how we interact with each other. For all that I want to hug everyone, it also is strange and a bit frightening to think about all that human contact after a year-and-then-some of this pandemic. Supporting organizers in bringing back WordCamps in a way that acknowledges and accommodates all our excitement and fears, as well as our love of WordPress, is a worthy goal.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 20:35:59 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: FLoC Blocking Discussion Continues on WordPress Trac\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115523\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/floc-blocking-discussion-continues-on-wordpress-trac?utm_source=rss&utm_medium=rss&utm_campaign=floc-blocking-discussion-continues-on-wordpress-trac\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4580:\"

Last week WordPress contributors began a heated discussion regarding blocking FLoC (Federated Learning of Cohorts). Google’s experimental alternative to third-party cookies has become a highly contentious topic that made its way into last week’s Core developers meeting.

\n\n\n\n

Representatives from the Chrome team also attended the meeting to clear up any confusion and answer questions about how FLoC currently works. They related that during the FLoC Origin Trial (the process by which Chrome introduces new proposed API’s for feedback from developers), a page will only be included in the browser’s FLoC computation for one of two reasons:

\n\n\n\n\n\n\n\n

“In the final end state, we expect the way FLoC will work is that the only pages that will be relevant to calculating your cohort are the pages that call the FLoC API,” Chrome representative Michael Kleber said. “So pages will ‘opt in’ by using some new JS function call.”

\n\n\n\n

Since FLoC is still in the the beginning stages, the Chrome team cannot confirm the final behavior for what pages will be included in FLoC calculations. At this point, it seems like it will primarily affect publishers and ad-supported websites in the future.

\n\n\n\n

Although the authors and proponents of the proposal prescribed immediate action, WordPress’ leadership has determined that an implementation discussion is premature at this time.

\n\n\n\n

“I am now amending my posted request for a reworking of the proposal – I do not want to see another proposal for action in WordPress right now,” WordPress lead developer Helen Hou-Sandí said during the meeting. “What we need is a Trac ticket where we track the status of the FLoC trial/implementation and discuss periodically to see if action is needed. I have an opinion, but it’s not really relevant at this time, and I think more of us should be comfortable with that idea.”

\n\n\n\n

The Chrome team did not expect that many people would be considering FLoC at this point, as Origin Trials generally only attract a handful of people who are curious about the technical details. FLoC gained more widespread attention after the critical article from EFF. The original proposal on make.wordpress.org also attracted media attention due to its confusing approach, premature assumptions, and lack of critical peer review.

\n\n\n\n

Peter Wilson commented on behalf of WordPress’ security team after meeting to discuss the issue, stating that it is unequivocally not a security concern:

\n\n\n\n

Treating this as WordPress currently treats any other security issue would require releasing 21 versions of WordPress. As identified in other comments on this thread, it would also break the implicit contract of security releases by including an enhancement in the release.

As a result of these consideration, the security team have concluded that treating this as a security issue is inappropriate.

Whether this is suitable to be included in WordPress and subsequently released as part of the next 5.7.x maintenance release are discussions for the Core team. The security team do not have a consensus view on these questions.

\n\n\n\n

Hou-Sandí opened a ticket where discussion continues on the implications of FLoC. As more information becomes available from Chrome’s Origin Trial, WordPress contributors will be better prepared to discuss how it may affect publishers and whether a core block, privacy setting, or other action is necessary.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 16:44:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"WordPress.org blog: WP Briefing: Your Opinion is Our Opportunity\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10171\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/your-opinion-is-our-opportunity/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:13066:\"

In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. 

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

0:10

\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

0:39

\n\n\n\n

Prior to Gutenberg, our current multi-year project that is changing the way we see WordPress, another multi-year project changed the way we saw WordPress. Starting in 2008, substantial changes to the WordPress interface came in a series of major releases, starting with WordPress 2.5. That was before my time in the project; I’ve only ever worked with the current dashboard in WordPress. But, from what I’ve read, the user testing that would have gone into it was a huge undertaking and very well coordinated. Now, WordPress has not taken on that type of robust testing project since, but starting around 2014 or 2015, a community testing practice was started. I’ve shared these calls for testing frequently, both on Twitter and in this podcast. But you may not really know why I find the testing program so valuable. So today, I’m going to explore with you the concept of co-developers in open source.

\n\n\n\n

1:52

\n\n\n\n

Open source software, like WordPress, is built by the people who show up. There are a few obvious groups when you think of software, the developers, designers, technical writers, folks who monitor the forums, and really, all the teams you find in our WordPress project. Co-developers or co-creators, if you’ll join me in making our tent a little bigger, refers to the users of an open source product who actively engage and contribute to the work by using the software and sharing any bugs that they find.

\n\n\n\n

2:25

\n\n\n\n

I mentioned this group in the episode about how WordPress improves. Specifically in that episode, I underlined that if you consider users to be part of the collaborative process, as long as people use your product, those people will have opinions about your product’s needs. And today, I’m extending that thought a bit further to say that, as long as there are opinions, there are opportunities.

\n\n\n\n

2:51

\n\n\n\n

When you know what isn’t working, you can focus your attention on a solution, you can focus on making sure that you can make it work. The existence of co-creators is one of the great things about open source. No designer or developer or product owner has to know every sort of user to be able to get feedback from them. If they show up, test the software and get their thoughts written down, then you can start to see patterns and common pain points. It is also, unfortunately, one of the great difficulties of being an open source project. After all, if users don’t show up, or don’t test, or don’t write down their feedback, it’s impossible to know what worked for them and what didn’t. And on top of that, with such a large percentage of the web being supported by WordPress in this case, not every problem is part of a pattern. And not all patterns are part of the current priorities.

\n\n\n\n

3:54

\n\n\n\n

Looking beyond that double-edged sword. Let’s say that this idea of a co-creator makes sense to you. And more than that, you feel like it describes you. What does it mean for you to show up in WordPress? There are lots of good ways to offer this sort of feedback and contribute to those patterns that can help us see through the fog. So I have for you a mini list and, of course, a bunch of links in the show notes for you. 

\n\n\n\n

So some good ways. First, you can participate in any of the dedicated calls for testing. They are short and frequently have a guide. I participate in them and generally find them fun. I say generally because sometimes I also find them frustrating. That’s really okay too; the frustrations helped me to identify that I found a problem. And if I can find a problem, then I have saved someone else from finding that problem in the future. The second thing you can do is file a bug report with information about what happened when you ran into a problem and how someone like me could make your bug happen on their site. Bug

\n\n\n\n

5:00

\n\n\n\n

Reporting is one of the things I’ve grown to really love in my time and open source; I did not love it. At first, I was really scared to do it. I mostly used to send videos of the bugs that I found to other people and ask them to file the bug reports for me. But then, of course, I never knew whether they got fixed or not. So I was scared to do it at first. But once I figured out what makes a “good report,” I felt like I was helping circle hidden treasure on a map or something. I realized also not everyone’s excited about finding hidden treasure on a map. But I play video games and finding hidden treasure on maps is, like, a thing.

\n\n\n\n

5:43

\n\n\n\n

A third really great way to contribute like this is that you can join any community meeting to learn more about what’s happening now and in the future, or just to see what makes WordPress work. As a heads up, these meetings go really fast. And they’re all in text. And there’s sometimes, but not all the time, a little bit of jargon that you have to head to your favorite search engine to find. But I sit in on about half of them myself and get a lot of really good information about things that I’ve been wondering about, things that looked broken, but actually are functioning exactly the way that they should. And I just didn’t want them to function that way. And more often than not, I found out that something that I thought was broken, was already identified and being fixed. Those are three great ways to show up and help give feedback that helps make WordPress better and more functional for more people. 

\n\n\n\n

There are also a few other ways that we see people trying to share that feedback that don’t work quite as well. And I’m going to touch on a few of them just because it’s important to know, as you’re trying to figure out how to get started with this. The first one is just tweeting your frustrations, and I get it like that’s literally what Twitter is for.

\n\n\n\n

7:03

\n\n\n\n

But also it’s hard to create a block from “I am frustrated, behold my hateful rhetoric.” Not that any of you, my dear listeners, ever tweet hateful rhetoric. Still, that is really hard for anyone to figure out what was actually wrong in that moment. Another thing that is not the most functional way to give feedback is review brigading. The Internet rewards this kind of behavior, but I have found at least for WordPress, those false positives and false negatives can be really confusing for our new users. And the third way, that’s not our best way, and probably is the least best way, is just by giving up and not telling anyone what broke for you.

\n\n\n\n

7:45

\n\n\n\n

I know that I already said it’s not possible to fix everyone’s problems. But while it’s not possible to fix everyone’s problems the moment they get shared, it’s also truly impossible to fix any problems that no one knows exist. And so giving up and not sharing an issue so that we can identify it as part of a pattern of problems is probably the least effective way to help us help you get your problem solved.

\n\n\n\n

8:13

\n\n\n\n

This brings me back to the question of the value of WordPress users as co creators in the development process. As WordPress grows, both in usage as a CMS and in participation as a community, it’s important for us to shed the idea that software creation is only about what literally can be done to code or what literally can be done to core or what literally can be done to the CMS. It’s also important for us to constantly remind ourselves that the best outcomes are the result of collaboration with the people who use WordPress the most. I know that not every type of user we have is showing up to give us feedback about where WordPress doesn’t work for them. And I would love to see more feedback that helps us to figure out where our patterns are.

\n\n\n\n

9:03

\n\n\n\n

So the bottom line is this without user feedback that has some clarity of what was expected versus what happened, the work to make a good choice involves a whole lot of guessing. So since open source software is built by the people who show up, I hope this gives you an idea of how you can show up and help improve the tool that powers your sites.

\n\n\n\n

9:32

\n\n\n\n

That brings us to today’s community highlight every episode or so I share either a great story of WordPress success or a great story of a WordPress contributor who helped some folks along the way. Today’s community highlight comes from @trishacodes who shared one of her early to WordPress mentors. She says “@RianRietveld was such an encouragement and helped me find the courage to speak up.” I have had myself many conversations with Rian, and that rings true for me as well. 

\n\n\n\n

10:00

\n\n\n\n

That brings us to the moment you’ve all been waiting for, the small list of big things. It’s actually kind of a medium list. Today, I’ve got four whole things to share with you all. The first thing on my list is that WordCamp Europe is coming, that will be June 7th through the 10th. It’s a multi-day online event. I will share in the show notes a link to the main website; there you can get an idea of what will happen, the schedule, and get your hands on some tickets so that you can get it in your calendar and prepare yourselves. 

\n\n\n\n

The second thing I want to share is for all of our polyglots out there. The French team is planning a translation day coming up on April 30. I will share a link to that as well so that you can get an idea of what that takes if you’re feeling like you want to do some translation work. The third thing I want to share is that the Indian community in Pune actually started a new meetup series. It is a translation work along self-study – also for all of our polyglots out there. I would love to see as many people as are interested in both learning about how to do translations and certainly translating WordPress get registered for that. A final thing I want to share with you all is that if you are curious about what full site editing features will be included in the 5.8 release, that’s the WordPress release that’s coming out in the middle of July, you can check out my recap and recording of the demo that was held with Matt, Matias, and the rest of the team. There’s are also a number of other posts of next step ideas that I will share in the show notes as well.

\n\n\n\n

11:51

\n\n\n\n

That, my friends, is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 15:24:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:106:\"WPTavern: Companies Running Competitive Ads Against WordPress May Soon be Banned from Sponsoring WordCamps\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115353\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:257:\"https://wptavern.com/companies-running-competitive-ads-against-wordpress-may-soon-be-banned-from-sponsoring-wordcamps?utm_source=rss&utm_medium=rss&utm_campaign=companies-running-competitive-ads-against-wordpress-may-soon-be-banned-from-sponsoring-wordcamps\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4644:\"

The WordPress Community Team is discussing banning companies from sponsoring WordCamps if they advertise competitively against WordPress. A WordCamp organizing team recently brought the concern to community deputies regarding a potential sponsor that is advertising its product in such a way that it puts WordPress in “an unflattering light.”

\n\n\n\n

This particular instance is prompting community leadership to clarify expectations for how sponsors advertise WordPress derivative products – products built on top of WordPress, such as themes, plugins, or distributions.

\n\n\n\n

Cami Kaos published a list of the existing expectations for sponsors and those who want to participate in the community’s events program. These include items such as no discrimination, no incitement of violence, respecting the WordPress trademark and licensing, and others from the WordCamp Organizer Handbook. Kaos posed the following two questions to the community:

\n\n\n\n

Should the WordCamp and meetup programs accept sponsors, speakers and organizers who engage in competitive marketing against WordPress?

How should competitive advertising be defined in the WordPress space?

\n\n\n\n

The discussion post did not specify the potential sponsor in question but recent campaigns from Elementor meet the criteria of advertising against WordPress with a negative slant. The ads insinuate that WordPress isn’t user -friendly or intuitive and that without this particular product WordPress is frustrating. The company has also run ads that co-opt the term “full-site editing” on Google searches, with Elementor representatives claiming that it is a generic industry term.

\n\n\n\n
\n\n\n\n

Elementor has sponsored events in the past. If the community guidelines are changed to explicitly prohibit advertising that puts WordPress in a negative light, then the company may be required to pull all of its ads that violate the new requirements in order to become a sponsor.

\n\n\n\n

Bluehost is another company that might come under the microscope for its recent trademark misuse. Although the company had a meeting to resolve matters with WordPress’ executive director Josepha Haden, Bluehost still has multiple ads running with the same issue.

\n\n\n\n

Feedback so far has been minimal. One participant in the discussion mistakenly thought the proposal was referring to competition in general. Andrea Middleton clarified in the comments.

\n\n\n\n

“The question is whether WordPress events should co-promote or endorse people and companies that are competing against WordPress itself,” Middleton said.

\n\n\n\n

“For example, if someone is running ads saying ‘WordPress is terrible, use our product instead,’ or even ‘WordPress is terrible, but our plugin makes it good’ do we want to include them as a sponsor for WordPress events?”

\n\n\n\n

Defining competitive advertising to exclude all forms criticism may be too strong of a line but there should be guidelines that cover more egregious cases where a company is disparaging WordPress for the purpose of exploiting its community.

\n\n\n\n

“Criticism can be healthy and good marketing when done in good faith and with a tool that truly addresses a user need,” Mark Root-Wiley said. “What makes criticism objectionable is when it strays past details of software and into harmful criticism of people and communities, and it seems like the existing standards cover that.”

\n\n\n\n

The discussion will be open until April 29, 2021, when comments will be closed and the discussion will move to final review.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 23 Apr 2021 22:01:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: Plausible Analytics Adds Statistics Dashboard to the WordPress Admin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115526\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:201:\"https://wptavern.com/plausible-analytics-adds-statistics-dashboard-to-the-wordpress-admin?utm_source=rss&utm_medium=rss&utm_campaign=plausible-analytics-adds-statistics-dashboard-to-the-wordpress-admin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5460:\"

Earlier this week, Plausible Analytics released version 1.2 of its WordPress plugin. The update includes a missing feature that should make it more appealing to end-users. The plugin now supports an “embedded mode” that displays a site’s stats directly in the WordPress admin interface.

\n\n\n\n

Without counting the self-hosted users of its open-source project, Plausible Analytics recently surpassed 14,000 users on its hosted service. That is a step forward in its two-year path toward making a dent in the analytics market.

\n\n\n\n

“We’ve taken 1.4 billion pageviews directly from Google Analytics to date,” said Plausible’s co-founder Marko Saric”. We’re about to reach 3,000 paying subscribers by the end of the week.”

\n\n\n\n

It is an exciting moment for the small, EU-based team. However, the work does not stop there. The plugin has gained 500 active installs after its recent launch. It is a small number, but Saric seems happy that the plugin is simply showing up in the directory when people search for “web analytics” at this point, hoping that it will bring more WordPress users around to a privacy-first solution.

\n\n\n\n

It is a slow burn and organic growth. However, WordPress users are stepping up and filing tickets through the plugin’s GitHub repository now. Activity and feedback are the lifeblood of young products, giving developers goals to reach toward.

\n\n\n\n

The latest version of the Plausible Analytics plugin gives users access to their stats dashboard from the WordPress admin. Hooking it up is as simple as generating a shared link via the service’s website.

\n\n\n\nGenerating a shared link from the Plausible Analytics site.\n\n\n\n

Earlier versions of the plugin did not include this functionality because the team was still building their public API, a necessary feature for sharing the data outside of their system.

\n\n\n\n

The new stats API is not just for the plugin. Developers can build on top of the system, retrieve stats, and present them however they want. Dailytics, a third-party service, already integrates with it and sends out daily analytics emails. The team has detailed documentation on using it.

\n\n\n\nRealtime stats embedded into the WordPress admin.\n\n\n\n

The latest version of the self-hosted Plausible script is available too. It features all of the same capabilities. However, the WordPress plugin does not yet support embedded mode for analytics just yet.

\n\n\n\n

“The development of the WordPress plugin started before this self-hosted release was completed, so WP dashboard for self-hosters is not part of the 1.2 plugin release, unfortunately,” said Saric. “I’ve now spoken with Mehul Gohil, who is the WordPress developer that has helped us with the plugin, and we will try to do a mini-release of the plugin in the upcoming days to allow the self-hosters to get their stats within the WordPress interface too.”

\n\n\n\n

Version 1.3 and Beyond

\n\n\n\n

Saric said his team already has a roadmap for the next version of the plugin. Several new features should land in version 1.3, such as excluding authors and editors being counted in the stats. This option exists for administrators at the moment.

\n\n\n\n

“The second one is a widget that gives a quick overview of the most import metrics such as unique visitors and pageviews, so you don’t need to go into the analytics section if you don’t want to,” he said.

\n\n\n\n

The team is also looking at out-of-the-box integration with some popular third-party plugins to support event tracking. At the moment, this is primarily a developer-friendly feature because it requires a bit of JavaScript to track signups and conversions. Making it work by default is the goal.

\n\n\n\n

“We’ve already done some work to make it easier, such as the recent introduction of the ability to group pages,” said Saric. “For instance, you can now group WooCommerce checkout pages for your eCommerce, so now we just need to enable that out of the box in the plugin.”

\n\n\n\n

They are shooting for a self-hosted or proxied version of their script from the plugin in the long term. This would allow users to run the script from their domain directly as a first-party connection, providing more accurate data. This is a manual process right now, but the team wants the process to be easy for those users going down the self-hosted path.

\n\n\n\n

“Obviously, in addition to the WordPress-specific improvements, we’re constantly working on improving Plausible Analytics itself,” said Saric. “WordPress users automatically get all of those into their dashboard as we improve and update the main site. No need to wait for WordPress plugin updates for those to make it into the WordPress dashboard. One metric we’re hoping to release over the upcoming weeks is the inclusion of states and city data in addition to the countries that we have now. Many of our users have asked for this, so we’re prioritizing it in our development.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 23 Apr 2021 15:49:57 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: With Some Hits and Misses, the Guten Blog WordPress Theme Has Potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115543\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/with-some-hits-and-misses-the-guten-blog-wordpress-theme-has-potential?utm_source=rss&utm_medium=rss&utm_campaign=with-some-hits-and-misses-the-guten-blog-wordpress-theme-has-potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5677:\"

Any time I see a new block-ready WordPress theme, I am like a toddler in a toyshop. I cannot wait to bring it home, rip off the packaging, and play with it. Sometimes it is the type of fun that will create lasting, years-long memories. Other times, the toy is not all it is cracked up to be. It does not deliver on the promises on its packaging. It is too hard to play with or just not what you expected. You discard it and move on to one of your other trusted toys, ones with guaranteed fun built-in.

\n\n\n\n

The latter feeling is where I am at with Guten Blog by Avid Themes. I want to love it. It has many elements that could make for a great theme. At first glance, I even believed it could be one of only a handful of quality, block-supported themes in the directory.

\n\n\n\nGuten Blog default demo homepage.\n\n\n\n

However, I was that kid all over again, let down by the shiny veneer of colorful packaging. The upside is that there is potential. It has all the elements needed to be among the great blogging themes. With more work, it could go from mediocre to top-10 material.

\n\n\n\n

The most disappointing thing about the theme is the following homepage section:

\n\n\n\nCommon three-box design pattern.\n\n\n\n

It is a typical design on the web today — a section containing some intro text with three boxes. I do not dislike the design. The problem is how it is handled by the theme. It relies exclusively on the Gutentor plugin to build this, and there are zero reasons to do so. The block editor is capable of handling this on its own.

\n\n\n\n

This would have been an easy win for the theme to package this section design as a custom block pattern.

\n\n\n\n

For some blocks, I get it; WordPress’s built-in blocks do not cut it yet. For example, the various post-related blocks do not exist yet. Of course, the Query block is slated to land in WordPress 5.8. That would be an opportune moment to make the switch.

\n\n\n\n

However, the above section is representative of all the imported demo content. Everything from columns to quotes to paragraphs — yes, paragraphs — is built with Gutentor’s blocks.

\n\n\n\n

One of my primary fears with theme developers is that they will continue to over-rely on plugins for basic features that exist in WordPress. This teaches end-users to also rely on these plugins, and it is a shame. This creates less flexibility for users, tying basic content to a third-party tool.

\n\n\n\n

There are some stunning pre-made demos that users can import. In total, the theme offers 18 options. Seven of those are available for free. The other demos are part of the “pro” package, ranging from $49.99 to $79.99 depending on the number of sites the customer wants support and updates.

\n\n\n\nPre-made, importable demos.\n\n\n\n

In particular, I am a fan of its third free option for lifestyle-type blogs:

\n\n\n\nLifestyle-type free, importable demo.\n\n\n\n

The importable demos are the bright spot of the theme, most of which showcase various homepage options. The development team simply bypassed the tools available in core WordPress. There are no block styles or patterns, and the demos offer a plethora of opportunities to flesh out custom designs for users to insert with one click.

\n\n\n\n

The theme technically works without extra plugins. It is billed as a blogging theme, so the hope is that it holds up in that regard. With a content size between 730 – 800 pixels and text of 16 pixels, it does not. The text is practically unreadable when it comes to long-form content. It may as well be a jumbled mass of words where you continually lose your place from line to line.

\n\n\n\n

This is not Justin-is-having-a-bad-day-so-let’s-dump-on-a-theme. I genuinely love the potential Guten Blog has. I want it to be better. The overall design is something I could imagine myself using on various websites I am involved with. Its font choices, minimalist layout, and generous use of whitespace are right up my alley.

\n\n\n\n

However, it has some issues. For example, it updates a database option for a third-party plugin on every page load (I am not sure how that made it through the review process). It also missed a lot of opportunities to showcase the core block editor.

\n\n\n\n

Other issues are with the theme’s primary admin notice. The small text that reads “Clicking on get started will activate Advanced Import” felt shady. Literally, the text was intentionally styled with a 10-pixel font size, which was incredibly difficult to read, so tough that I did not catch it until I unwittingly began installing a third-party plugin. It also installed Gutenblog Demo Import and the Gutentor plugin without authorization at that moment.

\n\n\n\n

These are fixable issues. I hope the theme development team can take my complaints and build something that eventually exceeds my expectations. The potential is there.

\n\n\n\n

Update (April 26): I did not notice during the initial review, but I have since confirmed that this theme changed my site title to “WP GutenBlog” at some point in the process, likely during the demo import.

\n\n\n\n
\n\n\n\n

Disclosure: This theme makes use of a library I built for breadcrumbs. It is using a version that is at least three years out of date.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Apr 2021 23:12:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"WPTavern: Google Delays Page Experience Ranking Signal Rollout until June 2021, Adds New Report to Search Console\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115367\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:269:\"https://wptavern.com/google-delays-page-experience-ranking-signal-rollout-until-june-2021-adds-new-report-to-search-console?utm_source=rss&utm_medium=rss&utm_campaign=google-delays-page-experience-ranking-signal-rollout-until-june-2021-adds-new-report-to-search-console\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2764:\"

Google announced this week that it will be delaying the rollout of the new page experience ranking signal to mid-June 2021. Page experience will be included along with existing search signals like mobile-friendliness, safe-browsing, HTTPS-security, and intrusive interstitial guidelines. The rollout, previously planned to begin in May, will be gradual and page experience will not be in full force as a ranking signal until August.

\n\n\n\n

In the meantime, Google has been elaborating on how page experience is evaluated and has published an FAQ page with common questions they have been answering:

\n\n\n\n
  • If I built AMP pages, do they meet the recommended thresholds?
  • Can a site meet the recommended thresholds without using AMP?
  • Is there a difference between desktop and mobile ranking?
\n\n\n\n

Google also announced a new Page Experience report in the Search Console that displays the percentage of URLs with good page experience and search impressions over time. Currently, page experience only applies to mobile search. Good URLs refers to the percentage of mobile URLs with both Good status in Core Web Vitals and no mobile usability issues according to the Mobile Usability report.

\n\n\n\n\n\n\n\n

Google News will also be getting some important AMP-related updates during the rollout, with the removal of the AMP badge icon and the inclusion of non-AMP content in the mobile apps:

\n\n\n\n

As part of the page experience update, we’re expanding the usage of non-AMP content to power the core experience on news.google.com and in the Google News mobile apps.

Additionally, we will no longer show the AMP badge icon to indicate AMP content. You can expect this change to come to our products as the page experience update begins to roll out in mid-June.

\n\n\n\n

Non-AMP pages will also be eligible to appear in the Top Stories carousel as another planned part of this update.

\n\n\n\n

Google Search has been updated to include support for signed exchanges (SXG) on all pages, previously only available on AMP-generated pages. This allows for pre-fetching resources, such as HTML, JavaScript, CSS, images, or font, in order to render pages faster. Web.dev has a guide and tools for monitoring and debugging SXG.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Apr 2021 14:26:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"WPTavern: Themes Set Up for a Paradigm Shift, WordPress 5.8 Will Unleash Tools To Make It Happen\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115466\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:235:\"https://wptavern.com/themes-set-up-for-a-paradigm-shift-wordpress-5-8-will-unleash-tools-to-make-it-happen?utm_source=rss&utm_medium=rss&utm_campaign=themes-set-up-for-a-paradigm-shift-wordpress-5-8-will-unleash-tools-to-make-it-happen\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9813:\"

For much of WordPress’s history, the foundational elements of building a theme have been slow to change. Every so often, developers would get a new feature, such as child themes, featured images, nav menus, and template parts. Each of these was epic in its own way. However, theme authors had ample time to adapt to these single feature introductions.

\n\n\n\n

When the block editor landed, it did so with a bang. Love it or hate it, it shifted how we think about design for the web. It was not one of those one-off enhancements, regardless of how many times we were told it would “just work” with any theme. It sometimes does not technically break things. Support and integration are necessary for an ideal user experience, and theme authors have been slow to catch up.

\n\n\n\n

With WordPress 5.8, theme authors are gearing up for another paradigm-shifting set of changes. Josepha Haden Chomphosy, WordPress Executive Director, announced last week that several Full Site Editing (FSE) sub-components will begin shipping with the next release.

\n\n\n\n

In the latest episode of the WP Tavern Jukebox podcast, Nathan Wrigley hosted guest Anne McCarthy. He asked her to calm people’s fears over upcoming changes. “So, as an example, let’s imagine that we’re a theme developer. We may be getting concerned that themes are going to become a thing of the past, that the livelihood that we’ve created for ourselves is going to disappear before our eyes.”

\n\n\n\n

It is a common question. Since the inception of Gutenberg, particularly its features that fall under FSE, themers have wondered if there would be a place at the table for them. If WordPress is moving toward a grander page-building experience, where do themes fit in? If users can change the layout or manipulate all of the styles, what is the theme’s job?

\n\n\n\n

These questions are finally getting some answers. We can see the real-world changes introduced in recent months. They paint a much clearer picture, defining the role of themes in WordPress’s future.

\n\n\n\n

“And for theme authors, themes are going to be so important in a full site editing world,” said McCarthy. “And one of the things I am so excited about is that there’s going to be a ton of what they’re calling…the idea of these hybrid universal themes that can work with, for example, template editing.”

\n\n\n\n

She is referring to a recent discussion that makes some distinctions between universal and hybrid themes. Essentially, universal themes would work in both a classic or block editor context, depending on what the user chose. A hybrid might support parts of the block experience but have a path to becoming a universal theme that fully caters to any user down the road.

\n\n\n\n

While this does not wholly address theme authors’ concerns, these are the building blocks that Gutenberg contributors are thinking about. First and foremost, they want a solid user experience. However, the discussions show that they also recognize that theme developers need to opt into new things at their own pace, supporting features as they understand them and learn how to implement them. This provides a path forward for traditional themes to transition into the new era and be built from scratch with new tools.

\n\n\n\n

Themes may well be more vital to WordPress’s future than they were in the past.

\n\n\n\n

New Tools Coming in WordPress 5.8

\n\n\n\n\n\n\n\n

The site editor and global styles features are not planned to ship with WordPress 5.8. However, the upcoming release is set to introduce some powerful tools for theme authors. This will be a pivotal moment for theme development companies that want to make their mark in the space. The right team with a forward-looking mindset stands to disrupt the market and make millions. And, there is room for the authors who just want to build cool stuff.

\n\n\n\n

It all starts with the new template-related blocks that should be enabled in the next major update. In particular, the Query block provides an alternative to what was formerly only possible via code and carefully constructed theme options. Coupling it with existing features opens us to a world of possibilities.

\n\n\n\n

For example, I chose a theme from the most popular list on WordPress.org that looked to have one of the most complex query and loop setups of the bunch. The following is the homepage of EnterNews:

\n\n\n\nEnterNews WordPress theme homepage.\n\n\n\n

Anyone familiar with theme development can tell you that it would take at least eight different queries to create that homepage design without looking at the code. The only way to build that and allow users to customize which posts appear is through a series of theme options (probably category-based dropdown select boxes).

\n\n\n\n

If the Query block ships with WordPress 5.8 as expected and is also enabled for any theme, this layout is suddenly possible directly from the block editor — no site editor necessary. Via block patterns, users can insert these “sections” of different Query blocks in their page and reorder them. However, it requires buy-in from the theme author.

\n\n\n\n

As I said earlier, theme authors have been slow to adopt block-related features as a whole. Undoubtedly, the system for the EnterNews homepage is already getting the job done. And, if it works for the theme’s current user base, there may seem to be little incentive to change.

\n\n\n\n

However, there are real benefits from a development angle to transitioning to a new system. The most obvious is that it requires little code compared to the PHP needed for building customizer options. Block patterns are little more than HTML with bits and pieces of JSON configuration in the mix. Developers can literally build them from the editor and copy/paste the code part.

\n\n\n\n

By writing less code, it lowers the potential for security issues and other bugs. Theme authors can also be less rigid in their design, allowing users to move pieces of the layout around.

\n\n\n\n

The Query block is not the only one slated for inclusion in 5.8 outside of a block-based theme context. The Navigation, Site Title, Site Logo, and more are ready to ship. Most such blocks are vital components for building an entire page. Theme authors could start handing over the tools for building complex landing pages on launch day this July.

\n\n\n\n

Stepping Stones

\n\n\n\n\n\n\n\n

Not every theme author needs to step up and attempt to revolutionize the theme space — though I am looking forward to those who do. Others might want to take a more measured approach. FSE is a set of many sub-components, some of which are shipping with WordPress 5.8. Many of these do not require developers to opt into them. They will “just work.” Sort of. Mostly.

\n\n\n\n

Users will be able to switch to a template-editing mode directly from the block editor. From there, they can create entire page templates of their choosing. Theme authors can either stand in their way by not styling for blocks or make the experience more enjoyable.

\n\n\n\n

The widgets screen and customizer will allow end-users of traditional themes to insert blocks in any of their sidebars. Some theme authors will need to account for this in their designs. The HTML output might throw off some layouts. For those who are not ready, they should disable block-based widget support.

\n\n\n\n

The most crucial tool, however, is entirely optional for theme authors. That is the introduction of theme.json support. The theme.json file is the cornerstone of future theme development. It acts as a config file for block settings and styles, allowing theme authors to set up the defaults for anything.

\n\n\n\n

In a nutshell, theme developers can set up any of the block options from this file, and those options are automatically handled in the editor and on the front end.

\n\n\n\n

Themes can also define defaults for block options that do not yet exist in the interface. The system will automatically output these as styles, even if users cannot change them in 5.8.

\n\n\n\n

Again, this means less code work for themers in the long run. While there will likely always be a place for custom CSS, some themes could essentially be built from theme.json configurations. That is not possible today. However, theme authors can start taking advantage of this tool.

\n\n\n\n
\n\n\n\n

Themes are not going the way of the dinosaur. All of that overly complex PHP code work necessary in the past might just be. The shift is putting themes back into their proper place: design. Previously available tools such as patterns and styles coupled with the new pieces like theme.json and template-related blocks will be the backbone of the new system. It is all starting to come together.

\n\n\n\n

The transition will take some time, and each themer will need to decide for him or herself how much they want to take on. But, the time is near. I might even crank up the old code editor and start putting together a project myself. There has never been a better time to be excited about theme development than now.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 23:32:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WordPress.org blog: Become an Early Adopter With the Gutenberg Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10164\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wordpress.org/news/2021/04/become-an-early-adopter-with-the-gutenberg-plugin/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4168:\"

Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce)

\n\n\n\n
\"\"
\n\n\n\n

In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project itself, you may also have heard some additional nuances—Gutenberg plugin, Gutenberg, or Block Editor. 

\n\n\n\n

It can get a little confusing, so let’s take a look at four terms that will help you find your way: 

\n\n\n\n
  • WordPress – WordPress refers to the open source software but also to the community that surrounds it. 
  • Gutenberg – Gutenberg is the code name for a multi-year project to update editing areas for the WordPress software.
  • Editor – The editor refers to a section of the software that allows you to update content on your site’s posts and pages. 
  • Gutenberg Plugin – The Gutenberg plugin is where early work to update the editor is shared.
\n\n\n\n

The Gutenberg Plugin

\n\n\n\n

Now that we’ve cleared up the definitions, let’s talk about the plugin. When might you use it? What would you use it for? You can think of it as an early access program or a “WordPress lab.” The plugin is updated every two weeks, which means that bugs that have been reported are often fixed and that what you see changes rapidly. 

\n\n\n\n

The Gutenberg plugin also contains features that aren’t yet ready for their WordPress debut but are ready for curious users to test and provide feedback. This is a common practice that allows stable features to make it to your site in WordPress releases while allowing experimental features to be tested and refined. To get a sense of whether using the Gutenberg Plugin might be something you want to explore to get access to earlier features, check out the “What’s New” release posts and the Core Editor Improvement post series

\n\n\n\n

Do I Need the Plugin to Use Gutenberg?

\n\n\n\n

It depends on your comfort level! Generally speaking, it is not recommended to use the plugin on a site that has launched and is actively in use unless you’re very comfortable with the code side of WordPress. Fortunately, each WordPress release comes ready to go with multiple versions of the Gutenberg plugin

\n\n\n\n

But if you are a keen beta tester who loves reporting feedback, or you feel comfortable navigating how to opt-in/out of the experimental aspects of the plugin, here are a few reasons you might want to dig into what the Gutenberg Plugin has to offer:

\n\n\n\n
  • Test new features and give helpful feedback. For example, you can use the plugin to help test Full Site Editing
  • Get early access to the latest & greatest while navigating when to opt-in or out of experimental features. 
  • Prepare for the future whether you’re a theme author, plugin developer, agency owner, etc. 
\n\n\n\n

Do you use the Gutenberg plugin and share feedback on GitHub? Thank you! This kind of feedback is what helps ensure stability in what’s shipped in WordPress releases. 

\n\n\n\n
\n\n\n\n

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 21:03:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: #2 – Anne McCarthy on How Full Site Editing Will Impact WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=115391\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/podcast/2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress?utm_source=rss&utm_medium=rss&utm_campaign=2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:68360:\"

About this episode.

\n\n\n\n

So the podcast today features Anne McCarthy. Anne is Developer Relations Wrangler for Automattic. Her work is focussed on the WordPress.org space, and she is leading the Full Site Editing Outreach Program.

\n\n\n\n

Full Site Editing is an endeavour to make it easier to manage how your WordPress website works. It’s hoped that tasks which once required a fairly technical understanding of the WordPress code, will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed. These will become part of the Block Editor interface. Complexity replaced by simplicity; or at least that’s the goal.

\n\n\n\n

This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team trying to work out how this might look, how it should work and when it will be ready.

\n\n\n\n

We start off with an introduction from Anne and how she became involved with WordPress and the Full Site Editing initiative in particular.

\n\n\n\n

Then the discussion moves to an explanation of what Full Site Editing hopes to achieve. Which areas of a website are intended to be made available with Full Site Editing?

\n\n\n\n

We then get into the specific details of what constraints the project faces; and there are many points to consider. Backwards compatibility, accessibility and how commercial and free plugins feed into the project roadmap.

\n\n\n\n

Towards the end of the podcast we get into the process of how Full Site Editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’ future through endeavours like Anne’s Outreach Program.

\n\n\n\n

It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon.

\n\n\n\n

If any of the points raised here resonate with you, be sure to leave a comment below.

\n\n\n\n

Useful links.

\n\n\n\n

Full Site Editing is moving fast. Since the recording of this episode, there’s been some movement. To get the latest information and learn more, see the following links:

\n\n\n\n

Full Site Editing Outreach Program

\n\n\n\n

Full Site Editing for WordPress Overview

\n\n\n\n

Full Site Editing Go/No Go | April 14, 2021

\n\n\n\n

Full Site Editing Go/No Go: Next steps

\n\n\nTranscript
Nathan Wrigley [00:00:00]

Welcome to the second edition of the Jukebox podcast from WP Tavern. My name is Nathan Wrigley. Our aim here is to create a podcast and transcript for people who are interested in WordPress and the WordPress community. We’re going to create one episode each month, for the time being, but that might change in the future.

\n

We’d love to hear your feedback about the podcast. Perhaps there’s a subject that you’d like us to feature, a person who you think would make a great guest or anything else that comes to mind. We’re very open to suggestions so long as it’s to do with WordPress and the wider WordPress community. You can do that by going to WP Tavern dot com forward slash contact forward slash jukebox. And there you’ll find a contact form for you to complete. Once again, WP Tavern dot com forward slash contact forward slash jukebox, and thanks in advance if you reach out.

\n

Okay, so the podcast today features Anne McCarthy. Anne is a developer relations wrangler for Automattic. She focuses on the wordpress.org space and is leading the full site editing outreach program. Full site editing is an endeavor to make it easier to manage how your WordPress website works. It’s hoped that tasks, which once required a fairly technical understanding of the WordPress code will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed.

\n

These will become part of the block editor interface. Complexity replaced by simplicity, or at least that’s the goal. This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team, trying to work out how this might look, how it should work and when it will be ready.

\n

We start off with an introduction from Anne and how she became involved with WordPress and the full site editing initiative in particular. Then the discussion moves to an explanation of what full site editing hopes to achieve, which areas of a website are intended to be made available with full site editing.

\n

We then get into the specific details of what constraints the project faces, and there are many points to consider. Backwards compatibility, accessibility, and how commercial and free plugins feed into the project roadmap. Towards the end of the podcast, we get into the process of how full site editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’s future through endeavors like Anne’s outreach program.

\n

It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon. If any of the points raised here resonate with you, be sure to head over and find the post at wptavern dot com forward slash podcast, and leave a comment there. And so without further delay, I bring you Anne McCarthy.

\n

I am here with Anne McCarthy, Anne welcome to the podcast.

\n
Anne McCarthy [00:03:55]

Thank you so much for having me.

\n
Nathan Wrigley [00:03:57]

You’re very, very welcome. Now it’s a regular question, I often ask them at the beginning of such podcasts, but I think it’s important that we lay the foundations of who you are and how you’ve come to be on the podcast.

\n

Would you mind giving us a little bit of backstory about how it is that you came to be on this podcast today? What’s your relationship with WordPress and perhaps tell us what the role is that you have currently?

\n
Anne McCarthy [00:04:20]

Great question. It’s hard to succinctly sum up who I am, but I’ll give it a try. I first got started with WordPress in 2011 as a freshmen in college, and I was using blogger for many years before that to get out all my feelings on the internet as a millennial does.

\n

And eventually, it turned into three years working at the university and their ITS department, which led me eventually to finding out about Automattic. In 2014, I joined them as a happiness engineer and very recently, almost exactly a year ago, switched into a developer relations wrangler role focused on the wordpress dot org community. And currently part of why I’m here today is cause I’m spearheading the full site outreach program. So I’m here to talk about that and talk about full site editing and all the fun stuff that’s happening. Cause I know it’s a lot to keep up with.

\n
Nathan Wrigley [00:05:08]

Yeah, there is a lot to keep up with, but it is a really interesting episode.

\n

There’s an awful lot to say when we’re recording this, in the month of April 2021, this episode will probably air shortly after we record it, and there’s an awful lot that has been going on, but there’s an awful lot to happen during the course of the rest of this year. And we know that there’s a lot of change coming.

\n

First of all, just rewinding the clock. Would you just like to try and sum up what the ultimate ambition of the full site editing project is? I know that there may be things about that roadmap which change things you wish had been included that probably won’t get included, but just sum it up. What is the full intention of the project?

\n
Anne McCarthy [00:05:48]

That’s a great question. I would simply say it’s to empower users more and bring WordPress to the future. There’s a reason these projects are taking so long. It really is about planting seeds for decades to come. And it’s something that Matt, the co-founder I really admire in him as he thinks about those decades.

\n

And so this is a part of that push into using blocks as a paradigm into empowering users, more and bringing WordPress to the future.

\n
Nathan Wrigley [00:06:10]

Okay. So it’s all about creating websites with blocks. What kind of areas is it getting into? What is it going to empower us to do? What things in the future will we be able to do inside the block editor?

\n
Anne McCarthy [00:06:24]

Yeah, so everything you can edit any part of a global style on your site. So if you want to have every font color, be one thing, you can quickly change it. Even by block, you’ll be able to change things by block, which is really exciting to have a global point of view of your site, and to be able to actually customize it to your liking unlocks things.

\n

There was recently a test that we did around, the 404 page. Normally that’s something that a theme author decides. And you’re locked into it, and if you want to change it, you have to go digging through the code. With full site editing, you can actually go straight ahead and customize it to your liking, make it real fun, make it really clever and make it really serious.

\n

Like you can do whatever you want with that. So a lot of template editing that normally you wouldn’t have access to. So even editing, like if you land on your blog page, you can actually adjust how that looks, what shows up, what doesn’t, in a really powerful way. I try and talk about the tangible aspects of it, but there’s also a lot underneath the hood.

\n

So there’s a lot of design tools for theme authors as well. That there’ll be able to hook into that ideally will make it much easier to create themes and to focus more on the aesthetics and the experience rather than on coding up the basics. So there’s a lot that I think across the board, whether you’re a user or a theme developer or a plugin author, there’s a lot to be excited about in the future.

\n
Nathan Wrigley [00:07:34]

One of the things that keeps coming on my radar is the comparison between what we’ll call page builders, these plugins, or perhaps it’s a theme we’ve seen lots of commercial and free products available in the WordPress community, which enables you to achieve many of the goals that the full site editing hopes to achieve. So templates for this templates for that. Headers, footers, you can have global color palettes and all of the things, and it can be done within their interface. I guess the thing about those products is they are created by a team of developers and they are released presumably when they’re mature and they’re ready to go and the company believe that it’s now suitable and people will purchase it or use it and deploy it. Now you’ve got a very different set of constraints that you have to work within. And I think highlighting what those constraints are, would be really useful to give people some context as to why it isn’t where some of these other solutions might be, because you’ve got many, many things to be thinking about in the background. So if we just get into that, maybe one thing at a time, do you want to just rattle off a list of things that you’ve got to be concerned about that perhaps we didn’t know you needed to be concerned about.

\n
Anne McCarthy [00:08:48]

Yeah. I’ll start with the most obvious ones, which is we’re building things so that other people can build upon it, including page builders. So I think that’s something that often gets overlooked. Like some of our audience members are these page builders. So it’s an interesting dynamic there because it really is about that foundational level. Anyway, 40%, the internet, just the diversity of ways that people use WordPress, whether it’s multi-site or what have you, there’s a lot to consider.

\n

Then you add in internationalization, which is part of like future phase four. Accessibility is a huge issue. Something that really needs to be thought about including backwards compatibility, and that’s another. A lot of page builders could easily say, hey, update to this version after this, x Y and Z will no longer be supported. Doing that with 40% of the internet is huge.

\n

Just recently actually, I did some outreach because in 5.2, which is many releases ago, some smaller APIs were deprecated. We’re finally removing them from the Gutenberg plugin. And there were still three plugin authors who were using these APIs, and I reached out to them, let them know and made sure they were aware that this was coming, but that’s something that a page builder is not building the same APIs that are going to be used across the internet in the same way.

\n

So there’s a lot of just scale that I think has to be thought of, which is partly why things get pulled from releases until they’re ready. But it’s also why sometimes we have to include things in releases in order to get feedback in order to, hear from people what needs to be improved and what we haven’t thought of, because inherently you can’t talk to 40% of the internet at once.

\n

You just can’t. So part of that is that dance of, hey, this is coming up, hey, this is what’s new. And seeing how 40% response. What did we miss and how can we do better next time? And the way I think of it as it’s this nice chance with every single release of thanks for making me better. Thanks for making the web better.

\n

And when the feedback comes in, that’s what it is. Whereas I think page builders and site builders have a unique position where they might have a very large user base, but it’s not going to be 40% of the internet. You know, there’s just a huge difference there.

\n
Nathan Wrigley [00:10:42]

So some of the constraints that you mentioned there were the audience size, 40% of the internet, you’ve got to be mindful of the fact that they are going to expect things to break as little as possible.

\n

You’ve got accessibility and so on. And there were probably two or three other things that you mentioned there as well. In real terms, how does this constrain the development? How do these factors slow you down? Do they have a material impact in the amount of time it takes you to do things because you have to ask for more consultation or you have to receive feedback from various people before you can get the green light to push that and move onto the next thing.

\n
Anne McCarthy [00:11:18]

What you described is very, very accurate. I’ll give a specific example. So the widgets editor, which is bringing blocks to the widgets editor. Originally, it was slated for 5.5. I’m pretty sure. And it’s gotten pulled from 5.5 from 5.6. Wasn’t even considered for 5.7 and is now hopefully going to be slated for 5.8.

\n

And a big part of this was originally, it was just going to be a separate editor, separate from the customizer and with feedback, it became very clear, customizer is a key interaction that we need to prioritize. How do we bring blocks to the customizer, which is a whole unique experience to think about.

\n

And this is where the 40% of the internet comes into play, right? Because we understand that you’re releasing new things, that’ll cascade to new people. But what about the person who’s had a site for five years? What benefits can we bring to them? Not just brand new users who are going to be using WordPress for the first time, because the majority of the users are people who have been using WordPress and who have trusted the community and the people building WordPress, with their site, with their, who knows what is their story, their business.

\n

So there’s a level of thought that has to go into play with that, and I think part of it is why Gutenberg, the plugin does bi-weekly releases. And I think there’s about 300,000 active installs, which is a much smaller compared to the 40% of the internet. And it allows us to test things out, have experiments, go do outreach, like the outreach program I’m running, get the feedback that we need, reach out to specific plugin authors. And in the case of the widgets editor, it became clear with each release, it just wasn’t ready. It wasn’t in the place that it needed to be. It wasn’t as stable as it needed to be. It wasn’t refined, it wasn’t intuitive enough.

\n

And in many ways, one of the things that slowed us down was wanting to have it in the customizer, which I think is a huge win. It’s a main interaction that people are used to. It’s something that people trust. So how can we go where people trust and extend that and provide an experience that they can also in the future trust and have actually unlock more things because when you’re able to use blocks in the customizer, you’re now able to add way more stuff than you would be able to and do way more things than you’d be able to when it was just the customizer, which is pretty exciting. So it’s both like trying to get user trust, but then also providing value at the same time and going to areas that people feel familiar with and slowly incrementally having stepping stones towards this eventual idea of full site editing, where everything is through a block paradigm, and you’re able to extend your site, however you want.

\n
Nathan Wrigley [00:13:35]

Do you ever get feedback from people who use these tools? That sort of question I’m trying to frame is something along the lines of. How do you cope with people who wish that it were already something that their current tool can do? Take the example of a commercial page builder. There’s several, you could pick the names of, and they’ve got this tool and they’re quite happy with it. And it does all of the things that they would wish to achieve. And then they come over and they look at the project that you’re involved with, the full site editing, and they see a real difference. They see that this tool over here, which I’m familiar with that works. I’m very happy with it and it works and it does all these things that you are, you’re still trying to put together. How do you bridge the gap between what their expectations are and what you’re trying to build? Do you have conversations with people? In fact, you even download some of these commercial products and check them out and see what it is that people get excited about, about them.

\n
Anne McCarthy [00:14:33]

I definitely check them out. I actually love, love, love hearing about new plugins because I do, I actually test full siting every single day. I have been, it’s been a challenge of mine like last couple of weeks, but I do also love when people flag things and say, hey, this new page builder or this new plugin provides a really interesting experience.

\n

One of the recent ones, I actually went back and checked out was the Iceberg plugin that simplifies the Gutenberg editor. And I recently checked that out again cause I was actually talking to someone in a completely different, it was a developer relations, a Slack community, and I have an alert word set up, anytime someone says, WordPress, I love doing that’s my favorite little hack, life hack for everyone just joined a bunch of communities and then set up alert words. Yeah. He was just like, oh, man, this editor sucks. I don’t know what to do with it. I immediately reached out to him and said, hey, no pressure. If you’re game to talk about this, I’d love to hear your concerns are what features are missing or what has you blocked? And I ended up sharing the Iceberg plugin with him and then went back through and tried it out again. And I bring this up because I think something to be said is that, the hope is that WordPress can provide common tools so that people, for example, aren’t locked into one single page builder.

\n

Like you can move around, and I get the rush to say man, I want to use the core system, but right now I’m relying on this page builder, and we’re frustrated with that too. There is a sense of urgency and Matias and Josepha touched on that in a WP Briefing podcast very recently that there’s this urgency of getting features out to people now, because we know that it will benefit them.

\n

And I think that as a really exciting position to be in. I know where we’re coming… It’s going to come, I promise, hang in in there. Which I think is a neat space rather than this impatience or hesitancy, which I also think happens, but I do seek out feedback like that, and I do enjoy talking to people whenever they explicitly have a bad experience. And one of the best questions that I ask is, what features about this page builder do you really like, what would you want to see in the core experience. And then from there, I can be honest with them and say, oh yeah, we’re working on that. That’s going to be like, here are a couple of Github issues that you might be interested in that this is the design. This is whatever it is. But then on the flip side, There is also going to be a role that plugins have to play into the future. Same with the Gutenberg editor right now, and the core editor right now with Iceberg, for example, like where it simplifies the editor.

\n

I imagine in the future with full site editing, there will be both plugins that really open up the options in the settings, and I also can imagine there’ll be plugins that really simplify things and make it really easy for certain users to use it and people can pick and choose and customize as they’d like, same to what we see with plugins now, anyway. And the biggest thing I often say to people whenever they talk about page builders, I’m like, that’s fine, if you’re not ready to switch, that’s totally fine. But at the end of the day, when you’re starting with new client or you’re starting a new site, or you’re redoing your site at some point, you’re going to have to learn something new, and it’s better to learn the sure thing. Doesn’t mean you only have to learn this your thing. I can imagine a world where people have these like hybrid experiences for some time, but the hope is that we can provide common tools so that people are not locked into one single page builder. Ideally the page builder is actually build alongside full site editing and the editor tools that we have. And then from there, people can customize to their liking either having more options show up or having less, and I do love hearing, what do you want? What’s missing? Cause it helps sharpen our thinking, and oftentimes I hear about things that I would never think of. That’s the beauty of having 40% of the internet is it’s like, whoa, I never thought about that. You’re right. That is a really interesting use case.

\n

Like someone recently a good example with the custom 404 test, as part of the outreach program, we had people build fun, custom 404 pages and someone reached out and said, well right now, it’d be really awesome to have different templates depending upon how the person landed on the 404, having some level of customization of what you present.

\n

So maybe you have four different 404 templates and it cycles through them. They were like, is this possible? I would want to put a feature request in. And it was pretty easy for me to say, you know what? That probably will be done by a plugin. So, that’s a great idea. That’s a really interesting use case, and I do think that’s something that’s desired, but this is also where plugins will still play a role. And being able to tell people that, so that expectations are in line as much as possible, I think is really important. There are going to be aspects that will not be covered by the site editor and that’s good.

\n
Nathan Wrigley [00:18:39]

Commercial page builders if you like, the process which I often see is they’ll release a statement out into their email list or what have you, and they’ll describe the features that they have been working on that have now been released and so on. And so in many cases you don’t really know what is happening unless you probably take great interest in their team and what have you. So I’m curious to know what is the actual process that is going on in the background that iterates your project, the full site editing project. How did the little leaps forward get made? Who is involved? How can people get involved? How can they find out what it is that you’re working on currently? And ways in which they can help you. And there’s a lot in that question, so probably the first thing I’ll just rewind a little bit and say, could we just concentrate on how the full site editing, the team that’s behind that, how does it actually work? What is it that you do? How do you communicate with each other? How do you ensure that things are being built that people want to have in.

\n
Anne McCarthy [00:19:38]

Yeah, that’s a great question. To start, I would say Matias is kind of, I think Josepha described him as the spark behind Gutenberg, and I really love that title, so I’m going to use it, reuse it. He is the project architect. So imagining multiple steps ahead, thinking about where we need to go, thinking about truly the infrastructure of what’s being built, APIs, is design tools, all that sort of stuff. And really thinking about based on many, many, many years of experience in the WordPress community, what do we know for sure that people need? And then from there, a lot of it is just this back and forth with the community, releasing stuff, doing calls for testing. The outreach program is a big part of that. So getting feedback from the outreach program, but one of the things that I recently came up that I am working on doing a better job of communicating is the outreach program is bringing in feedback, but that feedback and the high level, top feedback items are likely going to be different than what are the top issues to solve for full site editing if that makes sense. So there’s the feedback there’s actually using the tool, and then there are, these are the things that have to be solved and sometimes there’s overlap where sometimes some of the feedback becomes a top issue. But not all the time. And that’s partly because the MVPs is a work in progress.

\n

And as those things get clear, for example, I think after April is gonna be a jam packed month, but once there’s that decision point that go no go date, there will be a time where the full site editing outreach program can start switching into a more narrowed experience of testing. And I’m really excited for that, where it’s okay, here’s the MVP. Here’s what we’re thinking for 5.8 which are two separate goals, by the way, there’s like building MVP, and then there’s, what’s going to go in 5.8 and I think that’s important to keep in mind as well. And yeah, one of the biggest ways that we get feedback and figure out what needs to be done next, especially now that we’re in a more refinement period is through the outreach program is through people filing feature requests and just doing as much testing as possible. Ideally this is also where a theme authors start exploring what it’s like to build block-based themes and give feedback on that experience. So, yeah, there’s a lot of ways that the feature development goes on. I will say a lot of the work happens in Github and then every, probably I think, a two month cadence, there’s some high-level posts about full site editing, whether it’s about a specific release or just like a check-in post, or if it’s about FSE and themes. There have been various posts over the last six months and I expect to see a lot more in the coming months leading up to 5.8 so that people are aware and they don’t have to pay attention to the day to day with Github. Another really good post to keep an eye out on is the what’s next post. And that’s posted each month and kind of defines, this is what the team is working on next.

\n

And a lot of that does come down to, what issues of have come up in testing, what issues does Matias think are high priority to solve? What else is remaining in the MVP that’s been discovered previously? And one thing that I think is really easy to miss with full site editing, and it almost feels weird to just say. This monolithic full site editing when actually it’s this really diverse set of projects, and each is further along than others.

\n

So there’s this very interesting battle that goes on in my mind, whenever I talk about full site editing, cause what I really want to do is talk about a specific piece of full site editing, but that also can get too granular in a way that can be really confusing. But it’s something I like to mention where if you try out the experience and one part seems really good and one part you’re like what’s happening here, that’s on purpose. Because at the end of the day, I don’t expect the entire experience to go into 5.8. I expect certain things to fit in and for there to be a drip campaign, probably through even the 6.0 release, who knows, but definitely through the 5.9.

\n
Nathan Wrigley [00:23:02]

Let’s say somebody is listening to this and they’ve got no experience contributing to any software project, and they’re interested, they like the idea of full site editing and they’ve got a few things they’d like to get off their chest and they want to be of some help. What are the most effective things that can help to push the project forward right now? That could be an answer as to which website to go to, and get involved in, or it could be, well, actually, no, we need help about this specific thing right now over the next month or two, you can take that in any way you like.

\n
Anne McCarthy [00:23:35]

I mean the simplest answer that I would love to see is people joining the Core Editor meeting. If you can. If you can’t reading the notes and starting there, which you can see them posted on make.wordpress.org backslash core, there’s actually a tag for the Core Editor meeting. But I would start there, and I say that partially because we’re in a pandemic. Most places in the world, you can’t meet up in person. So getting connected with the people behind this work before you step into Github, before you step into anything else, I think is really important. There are humans doing this work. There are humans who are listening, who are caring, who are staying up late, thinking about problems. So join the meetings if you can, if you can’t asynchronous contributions are very welcome. So if you can comment on the post with a question and have it answered, but I want to start there with the human element, especially right now. So my answer, you’re listening to this many years in the future, hopefully we’re beyond this, but for now I really want to connect people with other people. And then from there, start as simple as just testing, get a test site up, try things out. There’s another make site, which is where we communicate in the project, make.wordpress.org backslash test. That’s where I post a lot of the stuff around this outreach program. So if you just want dip your toes in, that’s a great place to start. It walks you through, there’s instructions on how to set up everything, what to use what to pay attention to, how to actually go through the call for testing. It’s very purposely constrained right now, so that it makes it easy for people to jump in. But if you’re more advanced, I would just say, start scrolling th through Github. Look at different labels. There’s a really good label that I check regularly, the overview label. So if you want to get a sense of the top issues, or I guess the summarized issues, the overview label is my jam. I love going through that and seeing what’s new and also just seeing the status of things. It’s a really great way to dig into the project, but not too deeply. And if you’re someone who’s been around WordPress for awhile I would say starting to, try to create a block plugin or build a block based theme.

\n

We’re going to need to see the community in the future, really adopt these things and starting early while things are almost refined, I think is super helpful because it helps us define them in a place that there’s early enough for things to shift. Getting that feedback is pretty key so that we are creating tools that you can actually use, because the whole point is this is all being built, so other people can use it. Other people can’t use it, and we don’t know that. That’s a problem and it’s hugely helpful and valuable to do that.

\n
Nathan Wrigley [00:25:48]

You highlight the fact that you obviously need help with the things that you just described. All those technical areas. If I was to be listening to this and I am a more casual user of WordPress, I use it to create blog posts and I’m good at writing, but I’m not really into the code, and that side of things is of no interest to me, are there avenues that would still be open to me to assist with this?

\n
Anne McCarthy [00:26:09]

Yeah, I would actually say the testing should be pretty basic enough that you can dig into it. I’m saying this as the person who writes the test, I purposely try to make them very contained, so anyone can jump in and if they want to spend five minutes, ten minutes, that’s great. You don’t need to spend hours on this. Some people do, some people really like to go deep with it, but the whole point is that it’s something that anyone can jump into.

\n

And even if a call for testing is passed, it’s still great to go back through previous calls for testing and I actually have videos as part of the calls for testing so that you can see me walk through it. So if you get stuck, if you’re reading my instructions and you’re like, what is this person saying?

\n

You can watch the video and watch me go through it. And even just watching that and giving feedback and saying, hey, this is really weird, or, I really like when my page builder does this , do you all have plans for that? And another thing that’s actually coming up that I plan to do that anyone can participate in is another big call for questions. So there was a lull in testing. I was waiting for a new Gutenberg release and a couple of months ago, I did just, anyone could ask anything about full siding and I would find the answer for it. And we ended up getting, I think it was 46, 47 questions, which was fantastic. And I grouped them into different chunks, answered them, all, publish them, pass them on to the documentation team, the marketing team, but that allowed people where if they don’t have time to test, but they’re nervous about it, or they’re curious about it or they’re excited for it, or they’re impatient, whatever their emotional state is. Ask any question and I’ll answer it. And I plan to do those, another round of that definitely in the future. Probably at the end of April, and if that’s of interest paying attention to the, make.wordpress.org backslash test as the best place to pay attention or in Slack there’s in wordpress.org Slack, there’s a FSE hyphen outreach hyphen experiment that you can join, and you can just sit back and listen to me update you as I go, but that’s also a great way is asking questions, sharing concerns. That is actually hugely helpful. It sets the foundation for documentation. It helps the people building it know what the points of confusion are likely to be. So yeah, if you just want to ask a question by all means that’s a very easy pathway to jump into.

\n
Nathan Wrigley [00:28:10]

Thank you. I’ll be sure to take those links off you before we finally hang up the call today and we’ll make sure they make it into the show notes. Do you feel that you have. Enough people giving you feedback to justify the decisions that you made. I mean obviously in any software development, the answer I guess, is going to be, well, it would be great to have more. Do you feel that there is enough people assisting you at the moment so that you can be confident in the direction that you’re going? We’re doing this, we’ve got some feedback, but curious whether or not, if we have more feedback, we’d go in a different direction or not.

\n
Anne McCarthy [00:28:44]

That’s a great question. I am always someone who wants more people involved. I don’t think I’ll ever be happy with the numbers. Right now we have between 10 to 15 people with each test. And one of the things I actually recently consulted some of our design team with an Automattic, and I asked, I said, with usability testing what kind of numbers do you look for when you all did this with 5.0 what did you look for how many people? And a lot of times I got feedback saying, Oh my gosh. Anne, five to 10 people, it was great. You can calm down. It’s fine. I’m like, no, no, no. I need like 50, you know, it is this weird sense of no, no, I want more and more and more. And I can tell you, I don’t think we can ever get too much feedback, especially if it’s relevant and its… I mean, obviously there’s like irrelevant feedback where it’s make WordPress like Facebook. I mean, whatever, it could be something outrageous. That’s not terribly helpful, you know? But imagine if we just got completely inundated with feedback in the outreach program, that would be amazing. My goal, my personal goal that I’ve been trying to say outwardly in hopes it encourages people is I would love to have 20 to 25, really dedicated, diverse testers, each release and not each release each call for testing. That’s my ideal. And the reason I mentioned engaged testers is because I want people who are along for the journey a little bit,ideally. Obviously I think it’s great if people jump in and out, I think there’s something to be said for really new perspectives and I love when people comment saying, hey, this is my first time using full site editing and here are my thoughts. That’s excellent. But the idea of quality over quantity, I think is really key, for this phase of testing. I think when things actually get merged into core and certain aspects get merged into core, that’s when things can open up and be a bit more, having 2000 people give feedback, but yeah, I don’t think there’s ever enough testing and honestly, I do worry about that.

\n

And it’s something, one of the things I’ve been very intentional about is reaching out to the accessibility team to try and get people to help give feedback so that we’re thinking about accessibility needs and reaching out to folks in the polyglot space so that we have translations of these posts so that people can participate. I only speak English and I had been in countries where all of a sudden, you see something in English and it’s like this it’s like such a relief to have a menu in English. Like, Oh yes, this is so nice. And I want that outreach to happen because I think sometimes the software development I’ve seen this like arrogance of, oh well, we’ll just be doing the work and if they’re curious, they can come to us. And I actually think this is one of those situations where we need to go to them. And that’s what the outreach program is all about is meeting people where they are doing the outreach. Bringing people along with us and learning from them as we go. Part education, part feedback loop, and part, hey, here’s a really easy way to get involved and walk you through what’s coming.

\n

I would love to see more engagement from folks who are non-English speaking. We’ve had Italian, Spanish and Japanese translations very consistently. I’m so grateful for the people who’ve done that. I think it’s just, oh, I’m so bad at languages that it just amazes me. I also think everything looks better in a different language. So it’s neat to see my own words translated, which is a kind of a wild experience that I never thought would happen, but I’d love to see more engagement. In those polyglot and local spaces, because the last thing you want is for all of a sudden it to land and only a specific audience benefits or sees this or understands it or knows what’s coming, right. There’s a big responsibility for 40% of the internet. And I’ll never forget the day that Matt at a State of the Word said that non-English downloads passed English downloads. And so when you think about that 40% I think a lot of us English speaking, Western world think of a certain type of person, but really it’s much more expansive than that.

\n

So I’ve been really hammering the polyglot space as much as I can, as much as volunteer time people can give to translate those posts and to try and get feedback. But it’s something that I’d love to see more of.

\n
Nathan Wrigley [00:32:22]

I’m curious actually, if you’ve got a really nice concrete example of an instance where somebody’s feedback turned into something actual. It was realized off the back of a piece of feedback, which you passed on to the team, and somebody reached out said, I would like this. And you were able to provide this, Hearing those stories. Ah, it is possible.

\n
Anne McCarthy [00:32:44]

Yeah, I can think of a really specific example that I was actually thinking about this morning when I was making coffee. A blind developer, I got connected with her through actually posting in a different Slack community. So, you would not believe how many Slack communities I’m a part of and how much I try to drop links and engage people in different spaces. And I got connected because someone said, hey, I have a friend she’s blind, she’s a WordPress developer, and she cannot use full site editing. And I was like, whoa, tell me everything.

\n

How can I get in touch, and got in touch, her name’s Taylor. And she very kindly jumped on for about 30 minutes. We recorded the session so that I could pass along the feedback. She just walked me through the experience of both using of using two different screenreader tools. And. It was fascinating. It was awesome.

\n

We found so many bugs. It was one of those things where I think the biggest, the most jarring one that I keep thinking about that I actually want to see if we can get some development in on ASAP, is that the save button, and the saving process for full site editing right now is pretty non-intuitive, it’s a little bit clunky and it’s something that’s come up with sighted folks as well. What is the saving process, how does it work? But for people who rely on screen readers, it’s really impossible to save. Like you basically have to search for the phrase save in order to find the save button because there isn’t an aria label. And so that’s a big one that came up and on top of that in just the session, I worked with her another piece of feedback that came up with the columns block.

\n

So if you have columns and you’re imagining, let’s say two columns and you are using a screen reader, it doesn’t tell you which column is which. So all of you here just announces column, column it doesn’t say like column one or column two or right column or left column. There’s no identifier for how to navigate.

\n

And so that’s actually, there’s a PR right now that’s underway. I actually just filed it for the accessibility team last week to see if someone could review and someone already stepped in to offer some thoughts to fix that, to actually announce, I think they’re going with like column one and column two and column three rather than right and left due to internationalization. And that’s going to be a huge improvement because right now Taylor was just like, columns block is so confusing. This is almost useless. Another one is the spacer block. I’d love to hear. If you use a screen reader, I’d love to hear your experiences with the spacer block, because that’s a really confusing block for people I’m relying on screen readers.

\n

And I opened up an issue for that, and we’ve had some discussion back and forth about improvements that need to be made there as well. So those are some of the, and I can tell you, there’s probably about. I think six issues I opened just from that 30 minute conversation. Some are like a work in progress, but this was very recent and something I keep thinking about, especially as we start to refine things and decision points come up because we don’t want to release something that has such blatant problems with it.

\n
Nathan Wrigley [00:35:24]

It marks a very big change for WordPress this last couple of years have been really extraordinarily different, the experience that we’re all going through, but in particular, around full site editing How do you calm people’s fears that things in the future are going to be going in the direction that they wish it to go in. So, as an example, let’s imagine that we’re a theme developer. We may be getting concerned that themes are going to become a thing of the past that the livelihood that we’ve created for ourselves is going to disappear before our eyes. People concerned that the way that they’re working with at the moment, the way that they’ve taught their clients to work, this is how WordPress works, and this is how you can manage your website for yourself, and so on. What do you say to people? What is the golden light on the hill? The thing that you draw attention to, to say, look, all of this will be worth it. How do you keep people focused on the positives and not worrying about all the different things that are going on left right and center?

\n
Anne McCarthy [00:36:20]

Yeah. The biggest thing I say is there’s a reason that the last milestone is gradual adoption. And one of the things that I also love to talk about is the fact that full site editing is a bunch of sub projects actually gives us the flexibility to ship reliable items rather than shipping it all at once.

\n

Yes, they’re interdependent. Yes. And some cases they rely on each other and there needs to be probably a certain order or approach to releasing things. But by having so many different tools that provide value. It actually gives us the ability to step back and say, okay, what’s ready. And that should be a big relief to people.

\n

It’s not like there’s going to be this on-off switch full savings here is taking over your site. Good luck. That’s not going to happen. Gradual adoption is the game plan. It is the final step. And I imagine right now, a gradual adoption as a milestone is not fleshed out. But I imagine, especially you have to 5.8, that will become a much more fleshed out milestone in the same way you see other milestones, I think, Josepha has talked a lot about this, and I really love the way she basically says we want to fulfill the WordPress promise. We want to keep that trust and we want to release things in the best state possible while at the same time, recognizing that there’s this urgency to offer tools that people are just lacking right now, at some point, we need to get those out in front of people and to provide value and making that determination is super tricky. But the good news is like I was saying earlier, we have that flexibility built into the fact that these are all sub projects and that many of them can be shipped independently.

\n

And for theme authors, Themes are going to be so important in a full siding world. And one of the things I am so excited about is that there’s going to be a ton of what they’re calling. I .. the idea of these hybrid universal themes that can work with for example, template editing.

\n

So going and being able to edit like your single page template, your homepage template, or your 404 template. You could have a theme, that’s a classic theme or traditional theme, whatever you want to call it. And you could use template editing. You could update your theme to hook into the tools have been made to allow for template editing.

\n

Same thing goes for global styles. You could just use one part of the full site editing machine, so to speak and all the projects and slowly integrate, more and more, as you want to, like theme authors will have a lot of control of what they opt into and what they opt out of. And for us building it, it’s on us to make it so desirable to opt in.

\n

Right, and that’s where the gradual adoption, so many pathways are going to be created. And I’m actually really excited to see people move from this framework of anxiety to looking out across the space and going, hmm, what can I use? What is it that I hear from people all the time that I can integrate into this and moving into an exciting creative space rather than thinking, hh, I got to get caught up, I’m behind. This is so bad. Like that kind of feeling, which I hear from a lot of people was like, I don’t have time to get up to speed. And the ideal is that we’re actually providing tools that save you time and add value. And that makes me really excited. I fully understand the fear. I fully understand the fear.

\n

I don’t say that lightly. As someone who is thinking about like how it’s going to land in 40% of the internet and who every single day is talking to people who are giving feedback about, what’s not quite there, I don’t spend a lot of time talking to people who are just like, oh, I’m so excited about this.

\n

People don’t go out of their way to tell you that you often hear from the people who are upset or something’s missing or promises broken or whatever it is. And it’s something I think about a lot. And I understand why there is panic there, especially with livelihood in the situation that we’re in.

\n

And I have a lot of empathy for that. And I think in the future, and one of the things that I think you’ll hear from leadership and you’ve, everyone’s priority heard this from leadership. It’s just that we are purposely moving slowly and things get pooled for a reason. And it is to fulfill that promise and to think about backwards compatibility, but at the same time, balancing that with wanting to provide value for users and empowering users, especially in a day and age, when a lot of tech companies are actually taking away a lot of the power, whether it’s in the form of privacy or what have you.

\n

I think open source and the way WordPress is working is actually trying to resist that and really focus on giving everything we can to the user, to build the site that they want and to have the experience that they want. And also to free them up, to focus on what the site actually gives them, whether it’s a business or platform.

\n

I think that’s the part that makes me… that hopefully makes other people excited. And that makes me really excited.

\n
Nathan Wrigley [00:40:26]

Speaking to that. You’ve done an incredible job answering all of my questions and you’ve obviously got to wear the Automattic hat during a discussion like this. I’m curious if we cast away the Automattic hat just for a moment and we ask you personally, what in the next six months to a year, what’s the one single thing, the thing that you are most excited about, the thing that you most want to see happen, the thing that gets you personally switched on about the project.

\n
Anne McCarthy [00:40:54]

It’s a great question. I would have to say block patterns, because we’re talking about all these tools and features and things coming along, but ultimately as a user, it’s like, what can I do, and what can I do quickly? And block patterns will really be the glue that ties together all these projects. You can insert a block pattern, manipulate it as you want to. And when you’re manipulating it, you probably won’t be thinking about the fact that you might be using global styles or that the block pattern is relying on block styles or whatever it is.

\n

But the power of that. And the promise of that, I think is just such a high impact, such a high impact feature that will really be like a cherry on top. And we’ll bring together a lot of the things that we’re talking about in a way that will be really tangible. And especially in this world of, you know, we’re not able to gather in person we’re not able to have those moments.

\n

I think having something that is easy to understand almost the point of being, so intuitive that it’s like, why didn’t we do this years ago? That’s what I want the feeling to be. And that’s when I had someone in design, tell me this one time. And it always stuck with me as like the best ideas are the ones where you’re like, well, no, duh, like, yeah, of course.

\n

And that’s what block patterns I think you’re going to feel like, and I think it’s really gonna fulfill a lot of these things and bring a lot of these things that we’re talking about together in a way that will be really fun to play with. And also people will be able to submit to the block pattern directory, ideally in the future, similar to the block plugin directory.

\n

So personally, I’m most excited to see the marriage between block patterns and full site editing along with these hybrid themes.

\n
Nathan Wrigley [00:42:24]

I know there will be no metric to judge this, but it would be fascinating in a couple of years time. Were we able to measure it, to see just how much of humanity’s time has been saved by something like block patterns, the fact that you don’t have to do things over and over again. Yeah. I completely understand why you’ve selected that one. We have gone through so many questions. If somebody at the end of this, has been listening to this and thinks I would like to help, but I want to contact Anne directly before I go to these Slack channels and Github repos and so on. How might somebody get in touch with you should they wish to?

\n
Anne McCarthy [00:43:01]

I would say go to my website. I am a weird millennial without social media. I jump on and off of Instagram. That’s my one holdout. I love photography too much, but yeah, my website is nomad.blog and I have a contact page and I truly welcome to hear from anyone seriously. All I ask, and this is on my website as well. I like to do pen pal. Kind of writing back and forth. I think we don’t rely, I think email, I’ve read too many books about this, but I think email has ruined our ability to relax and unwind, and I refuse to opt into this always responding world. So as long as you’re patient with me, and if I get a bunch of emails, as long as you’re patient with me responding, I promise I will respond genuinely with a lot of thought. I do not like to do short, low quality responses. So if you’re willing to engage there, that would be awesome to hear from you. I’m also an annezazu in WordPress dot org Slack, if you end up joining there as well.

\n
Nathan Wrigley [00:43:53]

Well, thank you very much. I appreciate all of the hard work that you and everybody connected in the project is doing. It’s making great inroads into our editing experience in WordPress. Greatly appreciated. Thanks for coming on the podcast.

\n
Anne McCarthy [00:44:06]

Of course. Thank you so much for having me.

\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"HeroPress: You Don’t Have To Want What Everyone Else Wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3539\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:166:\"https://heropress.com/essays/you-dont-have-to-want-what-everyone-else-wants/#utm_source=rss&utm_medium=rss&utm_campaign=you-dont-have-to-want-what-everyone-else-wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6216:\"\"Pull

I launched a WordPress-based business sometime around 2013. Starting a business is a goal for a lot of people, but it was never something I intentionally set out to do. I was in university at the time and blogging about books — just doing something I loved. But then I had an idea for a WordPress plugin that would make book bloggers’ lives easier. Although I did decide to sell it instead of releasing it for free, making a lot of money was never my goal. I thought maybe I’d make $500 overall if I was lucky. But three months in I’d already made nearly $1500 and those numbers would only continue to climb.

\n

By the time I graduated university, this little business of mine was already fully paying my bills. I went straight from graduation to running a full time business. Over the next few years, I sold pre-made plugins, built custom plugins, launched custom websites for authors and bloggers, dipped into the managed WordPress hosting space, and created WordPress e-courses. Objectively, business was great.

\n

But by 2016, I was waking up every morning and thinking, “What the hell am I doing?”

\n

The more my business grew, the more I was afraid it was about to crash and burn.

\n

The more I diversified, the less confident I felt about what I was doing.

\n

Above everything, I was tired.

\n

Turns out, I’m not a businesswoman

\n

I was tired of selling, of marketing, of advertising, of promoting. I was tired of asking myself “will this sell?” before I started a new project. I missed creating just for the sheer fun and joy of it, which was how my very first plugin even came to be. I just wanted to build cool things and quietly release them into the wild. I love to create but I don’t love to sell.

\n

Perhaps I could have hired people to help me with the aspects of my business I didn’t enjoy, but although business was going well for a one person show, I didn’t feel like it was going well enough to hire more people and confidently feel like I could pay their salary every month. And the thought of having that responsibility just brought me even more anxiety.

\n

I felt stuck and, honestly, ashamed of how I felt about my business. Was I being ungrateful?

\n

I had this incredible thing going for me — I was paying all my bills, working flexible hours (and from home!), and calling all the shots. This is what other people aspire to have, and I had it! I was embarrassed to admit that maybe I didn’t like it anymore. I didn’t want to be in charge. I didn’t want to have the entire success or failure of a business resting on my shoulders.

\n

I remember looking through job listings trying to imagine myself doing something else — anything else. But another problem I had was that running my own business straight out of school had spoiled me. I didn’t want to be in charge, but I also still wanted to work from home. I still wanted flexible hours. I didn’t want to sacrifice my 3pm gym session. I still wanted a certain degree of freedom in what I did each day. I wanted all the benefits of running my own business, without any of the downsides I had come to dread.

\n

A well timed opportunity

\n

In late 2016, sheer luck and good timing brought me to Sandhills Development. I was offered a job at a company that could amazingly check every box on my dream list. I could work from home, set my own hours, have a weird schedule, still make the gym at 3pm, and most importantly: my job would just be one thing. I could focus on building really cool stuff, and nothing else. I wouldn’t have to think about marketing or sales or profit.

\n

It’s been over four years since then and I’m now the lead developer for Easy Digital Downloads — the plugin I originally used to sell my first product. So I think things are going pretty well! My old business does still exist, but in a very low key way. I still work on and maintain the products out of love and passion for them, but with zero pressure to actually make sales or be successful.

\n

The biggest difference is the boundaries I’ve been able to create in my life.

\n

When running my own business, I didn’t work all day long, but I did tend to think about work all the time. Growth was always on my mind because making that happen was purely up to me. I was putting so much pressure on myself to do well, that I couldn’t stop thinking about it. But now, work goes away as soon as I decide I’m done for the day. I don’t think about it after hours. There’s comfort in the fact that although I care about the company, it’s not my company, and the success — or failure — of the company isn’t purely up to me; if something does go wrong when I’m gone, there’s someone else capable of handling it.

\n

What works for someone else may not work for you

\n

Some people would consider it a downgrade to go from business owner to employee, but it was absolutely the right move for me. Running your own business is often glamorized, but not everyone is cut out to wear all the hats that a one-person business requires, and not everyone has the drive to grow a business into something larger. And that’s okay. At the time, it was immensely hard for me to admit that out loud because I thought it would make me a failure.

\n

There is no “one size fits all” dream job and I learned that being the owner of a company is not mine. If what you’re doing now isn’t working then there’s absolutely no shame in bowing out, even if you’re currently living someone else’s dream.

\n

The post You Don’t Have To Want What Everyone Else Wants appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 08:27:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ashley Gibson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: WordPress Contributors Propose Blocking FLoC in Core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115316\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/wordpress-contributors-propose-blocking-floc-in-core?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-contributors-propose-blocking-floc-in-core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7493:\"

WordPress contributors are proposing the project take an active position on Google’s Federated Learning of Cohorts (FLoC). This particular mechanism is Google’s alternative to third-party cookies that doesn’t require collecting users’ browsing history. The GitHub repository for FLoC explains how Google will group people together and label them using machine learning:

\n\n\n\n

We plan to explore ways in which a browser can group together people with similar browsing habits, so that ad tech companies can observe the habits of large groups instead of the activity of individuals. Ad targeting could then be partly based on what group the person falls into.

Browsers would need a way to form clusters that are both useful and private: Useful by collecting people with similar enough interests and producing labels suitable for machine learning, and private by forming large clusters that don’t reveal information that’s too personal, when the clusters are created, or when they are used.

\n\n\n\n

WordPress contributors are proposing blocking FLoC in core, citing the Electronic Frontier Foundation’s article titled “Google’s FLoC Is a Terrible Idea.”

\n\n\n\n

“WordPress powers approximately 41% of the web – and this community can help combat racism, sexism, anti-LGBTQ+ discrimination and discrimination against those with mental illness with a few lines of code,” the proposal states.

\n\n\n\n

One of the more controversial aspects of the original proposal was that it was spectacularly miscategorized as a security concern, clouding the issue at hand. It identified FLoC as a security issue for the sake of getting it into core on a more aggressive timeline, which was outlined as follows:

\n\n\n\n
  1. Include the patch the next minor release, rather than waiting for the next major release;
  2. Back-port the patch to previous versions of WordPress.
\n\n\n\n

The proposal was later revised to clarify that treating FLoC like a security concern referenced only the timeline of accelerated development and back-porting.

\n\n\n\n

Although blocking FLoC seemed to have wide support in the comments on the post, the premature suggestion of treating it as a security concern weakened the proposal.

\n\n\n\n

WordPress core committer Ryan McCue said that while he is in agreement with the overall sentiment, rolling it out like a security updatet would abuse users’ trust in automatic updates:

\n\n\n\n

The implicit contract with users for security autoupdates is that they are used in order to protect the user from their site (data or codebase) being compromised imminently. This isn’t the case with FLoC, and may in some cases damage the site’s behaviour.

More concretely: as someone who operates a hosting service where we keep users up-to-date with security patches, this changes our approach substantially. Right now, we can confidently roll out security updates trusting the update has minimal effect outside of purely security changes, but breaching that barrier means that now scrutiny needs to be applied to every security update in order to avoid rolling out potentially breaking changes to our clients.

That erosion of trust would ultimately hurt WP’s users.

\n\n\n\n

The proposal has started an active discussion with more than 100 commenters, including participation from the Chrome DevRel team who added more context on the current status of the experiment.

\n\n\n\n

“It’s also worth noting that because this is an origin trial it means that nothing is set in stone — this is an experiment to gather feedback,” Chrome Developer lead Rowan Merewood said. “The API may change, the opt-out mechanism may change, the eligibility criteria may change. Any code changes relating to an origin trial should also be treated as temporary and experimental.”

\n\n\n\n

Those who were critical of the proposal consider FLoC a personal privacy issue that is not WordPress’ problem to solve. Others believe a proposal to block FLoC is reactionary at this point, since Google has not yet finalized its FLoC experiment.

\n\n\n\n

“Thinking about users… i.e. the readers of a blog, they deserve choice,” Andy Beard commented.

\n\n\n\n

“They can choose which browser they use.
“They can choose settings in the browser.
“They can choose some overall options on a Google privacy site.
“They can install a multitude of plugins.

\n\n\n\n

“Alternatively, if WordPress blocks FLoC by default, that actually removes a choice – the choice of a user to see more relevant advertising.”

\n\n\n\n

Several participants in the discussion were opposed to FLoC but also not supportive of a WordPress core effort to block it.

\n\n\n\n

“While I’m not pro-FLoC (and won’t have my browsers using it) I certainly wouldn’t expect a website to make the choice to opt-out for me, and I can’t see why the majority of WordPress users and people visiting WordPress sites would expect that either,” WordPress lead developer Dion Hulse commented.

\n\n\n\n

“Perhaps more importantly, would WordPress also continue to opt out all future browser protocols too? Once you delve into blocking one, you’ve either got to block them all, or you’re playing favorites.”

\n\n\n\n

Mika Epstein, who also expressed her opinion as anti-FLoC, said she is not in support of backporting a block due to the practicality of such an effort.

\n\n\n\n

“If the decision is made to include this, I would support it as a filterable privacy enhancement only, not security,” Epstein said.

\n\n\n\n

“That said, I do not support backporting with the precedent that we did not backport the GDPR exporting stuff. Having it exist as a plugin (there are three already) is sufficient for those who are on older versions. The undue strain of increased backporting needs to be minimized, not maximized in my opinion.”

\n\n\n\n

Others commented on the harm to independent publishers whose main source of revenue is often advertising.

\n\n\n\n

WordPress lead developer Helen Hou-Sandi requested the proposal be re-written to clarify the differences between disabling FLoC on a site level vs the browser level as a consumer. She also discouraged referring to the matter as a security issue and recommended the proposal’s proponents justify the work required to backport the block. Hou-Sandi recommended opening a trac ticket as a more appropriate avenue of discussion regarding core implementation and inclusion, as contributors have not yet reached a consensus.

\n\n\n\n

The topic will be up for discussion at the next core developers’ chat on Wednesday, April 21, 2021. Representatives from the Chrome team will also be attending to answer any questions about FLoC.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 05:17:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:114:\"WPTavern: Patchstack Whitepaper: 582 WordPress Security Issues Found in 2020, Over 96% From Third-Party Extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115396\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"https://wptavern.com/patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions?utm_source=rss&utm_medium=rss&utm_campaign=patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4647:\"

Patchstack, which recently rebranded from WebARX, released its 2020 security whitepaper. The report identified a total of 582 security vulnerabilities. However, only 22 of the issues came from WordPress itself. Third-party plugins and themes accounted for the remaining 96.22%.

\n\n\n\n

“These are all security issues disclosed by the Patchstack internal research team, Patchstack Red Team community, by third-party security vendors, and by other independent security researchers,” said Oliver Sild, Patchstack founder and CEO. “So it includes all public information about vulnerabilities.”

\n\n\n\n

Patchstack is a security company that focuses on third-party extensions to WordPress. Its vulnerability database is public and available for anyone to view.

\n\n\n\n

In the second quarter of 2020, Patchstack surveyed nearly 400 web developers, freelancers, and agencies about web security. “Over 70% responded that they were increasingly worried about the security of their website, and the top reason was ‘vulnerabilities in third-party plugins,\'” according to the whitepaper. “About 45% of respondents saw an increase in attacks on websites they were managing, and 25% had to deal with a hacked website in the month prior to participating in the survey.”

\n\n\n\n

Ranking at the top, 211 of the vulnerabilities found were Cross-Site Scripting (XSS) issues, 36.2% of the total.

\n\n\n\n

“XSS in WordPress plugins almost always happens because user input data is directly printed onto the screen without any sanitization,” said Sild. “esc_html would be used to convert certain characters to their HTML entities, so it will be literally printed onto the screen. Then you also have esc_attr for user input variables, which need to be used in HTML attributes. There are many good resources published by OWASP (The Open Web Application Security Project), such as the ‘Secure Coding Practices.\'”

\n\n\n\n

Injection vulnerabilities ranked second with 70 unique cases. It was followed by 38 Cross-Site Request Forgery (CSRF) issues and 29 instances of sensitive data exposure.

\n\n\n\n

“The vulnerabilities found in plugins and themes tend to be more severe than those found in WordPress core,” wrote Sild in the whitepaper. “What makes matters worse is that many popular plugins have millions of active installations, and the numbers aren’t pretty when we look at how many websites are affected by the vulnerable plugins.”

\n\n\n\n

The total number of active and vulnerable theme and plugin installations throughout the year was 70 million. According to WordCamp Central, WordPress is installed on 75 million websites. Many sites likely had more than one vulnerable plugin during 2020 rather than 70 million individual sites being at risk.

\n\n\n\n

Patchstack surveyed 50,000 websites and found that they averaged 23 active plugins at a time. About four on each site were outdated with an upgrade available, which often increases the risk of a security issue.

\n\n\n\n

WordPress plugins accounted for 478 vulnerabilities in the report. However, there were only 82 unique theme issues. While themes are typically far more limited in scope, they can do anything a plugin can do with a few exceptions.

\n\n\n\n

It is not surprising to see that number lower for themes. However, one has to wonder if the ongoing plan to loosen the WordPress.org theme directory review guidelines will factor into that in the coming year or two. Currently, reviewers for the official directory perform extensive code checks that may be more likely to catch issues before themes arrive in users’ hands. If the trade-off is better automation, it could also mean stricter coding standards and fewer security issues that human reviewers might miss.

\n\n\n\n

“Vulnerabilities from third-party code remain as one of the biggest threats to websites build on WordPress,” concluded Sild in the report. “We already see a growth in unique vulnerabilities reported in the WordPress plugins and themes comparing 2020 with the beginning of 2021.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 20 Apr 2021 20:47:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Recreating the Classic Wedding WordPress Theme Homepage With the Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115369\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:219:\"https://wptavern.com/recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6345:\"

I simply do not understand it. For at least the better part of a decade, theme authors have asked for the tools to create more complex layouts with WordPress. They have asked for the ability to allow end-users to more easily recreate their demos. They have wanted methods to bypass the “restrictive” theme review guidelines.

\n\n\n\n

Over the past couple of years, WordPress has consistently delivered features that theme authors have asked for. Yet, themes that use them are few and far between.

\n\n\n\n

During my weekly perusal of the latest themes to land in the directory, a new wedding theme caught my attention last week. Of course, I downloaded, installed, and activated it only to find that I had no idea how to recreate the homepage design. There were no instructions. The theme options in the customizer seemed to make little sense. Nearly all of the decorative images were non-existent in the theme folder.

\n\n\n\n

Did I need to upgrade to the pro version to get what was in the screenshot? There seems to be a plan for such a version, but it is not available yet.

\n\n\n\nClassic Wedding theme screenshot.\n\n\n\n

I am no rookie, but I was stuck. I liked the simplicity of the design. However, I could not imagine setting up a wedding site with this theme. From a user’s standpoint, it should not take more than a few mouse clicks. After that point, it should only be a matter of customizing the content.

\n\n\n\n

I recognize that there is still a sort of love/hate divide for the block editor in the inner WordPress community. However, theme authors are not doing any favors for the overall WordPress user base by not taking advantage of the tools available.

\n\n\n\n

So, I recreated the Classic Wedding theme homepage from scratch. Using the block editor. With a theme that supports it.

\n\n\n\n

Creating a Wedding Homepage

\n\n\n\n

My goal was simple. There was no demo to work from, and all I had to go on was an 800-pixel wide screenshot from the theme page on the author’s site. Like I recreated the Music Artist homepage several weeks ago, I wanted to do the same for Classic Wedding. With a couple of exceptions, which could have been handled by the theme, I was successful.

\n\n\n\n

Because Classic Wedding does not support the block editor itself, I could not recreate its homepage via the block editor while using the theme. It was not happening — I tried. I knew that the Eksell WordPress theme had a “canvas” template that allowed users to edit the entire page, so it was an easy choice.

\n\n\n\n

I also loaded the Kaushan Script and Lora fonts to more closely match the original theme. This was unnecessary for the experiment, but I wanted my recreation to at least look somewhat similar.

\n\n\n\n

I immediately knew that I would have one hurdle to overcome. The theme used an image that overlapped both the section above and below it. This requires margin controls, particularly the ability to add negative margins. Unfortunately, this is a missing component of the block editor today. It does not mean that theme authors cannot do it with custom block styles or patterns. It simply means that end-users are unable to control it from the interface.

\n\n\n\n

Because I did not want to spend my time writing the code for this, I leaned on my usual safety net, the Editor Plus plugin. While it can be a little clunky sometimes and feel like overkill, it does include those missing features like margin options.

\n\n\n\nAdding negative margin to an image.\n\n\n\n

I used px units there because it was easy. In a real-world project, % or rem would have been better. But I was just doing a quick proof-of-concept.

\n\n\n\n

Everything else in the content area was straightforward. I needed a Cover block with an Image, Heading, Paragraph, and Button tucked inside. I needed a Group block as a container for Image, Heading, and Paragraphs in the bottom section.

\n\n\n\n

Because the theme did not package its decorative images — again, how would users recreate the homepage without them? — I opted for a simple striped SVG background instead of the flowers in the original. Since I already had Editor Plus installed, I added an SVG from Hero Icons as the main background.

\n\n\n\nWedding page content recreation.\n\n\n\n

My original idea was to recreate the “content” part of the homepage only. However, it was a bit boring on its own. Therefore, I transformed everything into a Columns block and added the sidebar. I recreated the primary elements using the Image, Heading, Paragraph, and Navigation blocks. Then, I added a Social Icons block for fun.

\n\n\n\nFull wedding homepage design.\n\n\n\n

I did hit one snag with the Navigation block. WordPress does not currently offer a method of centering each link in the list when using the vertical block variation. I had to write a couple of lines of CSS to make this happen. This seems like an oversight and one area where the block editor failed to meet my expectations. Of course, this could be handled on the theme side of things.

\n\n\n\n

Overall, this was a relatively simple project. However, this experiment added some complexities that were not present when I recreated the Music Artist homepage. Margin controls and vertical Navigation block alignments are must-haves. Using a third-party plugin and writing custom CSS is not ideal, and these were requirements to make this happen straight from the editor.

\n\n\n\n

All of this is possible from the theme end. Each piece of this design could have been packaged as a block pattern. The overlapping image effect would have made for a neat block style. I just wish that theme authors would start utilizing the features that are being hand-fed to them.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 21:42:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Automattic Launches Jetpack Boost: A New Performance Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114913\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/automattic-launches-jetpack-boost-a-new-performance-plugin?utm_source=rss&utm_medium=rss&utm_campaign=automattic-launches-jetpack-boost-a-new-performance-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4877:\"

The Jetpack team has been quietly testing a new plugin called Jetpack Boost, which addresses website owners’ performance and SEO concerns. Version 1.0 was released today, one month after the final pre-release came out in March.

\n\n\n\n

Boost is a separate plugin under the Jetpack brand and it does not require Jetpack core to work. The first iteration bundles three performance modules:

\n\n\n\n
  1. Local Critical CSS generates optimized styles for the homepage, posts, and pages to display content faster, especially for visitors on mobile devices.
  2. Defer Non-Essential Javascript moves some tasks to after the page loads, so visible items load faster.
  3. Lazy Image Loading loads images as the visitor scrolls them into view.
\n\n\n\n
\n\n\n\n

Once the plugin is installed, users can toggle the modules on or off. Optimizing the site’s CSS can be a lengthy process but it shows a progress bar and alerts you if are trying to navigate away from the page before it’s finished. Jetpack Boost displays an initial score when it’s first installed and will update after optimizations are put in place.

\n\n\n\n

Here’s an example score from a relatively unoptimized simple blog with 20 active plugins:

\n\n\n\n
\n\n\n\n

After installing Jetpack Boost, there was a significant improvement on scores in the dashboard. It’s not a magic wand but it’s a fairly user-friendly way to tackle some basic performance issues that may translate into a better visitor experience.

\n\n\n\n
\n\n\n\n

Checking the before and after scores on web.dev demonstrates a noticeable improvement on the Core Web Vitals assessment. For some websites this could mean the difference between passing or not (meaning 75% of pages on the domain pass).

\n\n\n\n
Before installing Jetpack Boost
\n\n\n\nAfter installing Jetpack Boost\n\n\n\n

Automattic engineer Nauris Pūķis, who worked on the project, said one reason the plugin was created was to help users “get their Web Vitals up and make the web a better place.”

\n\n\n\n

Google Search will be adding Page Experience to ranking signals in May 2021, and WordPress sites need all the help they can get. Page Experience is measured by a website’s Core Web Vitals metrics, but these scores are not easy to improve without some technical knowledge and troubleshooting.

\n\n\n\n

Despite Jetpack already including so many different, varied features, Automattic opted to put the Boost modules in a separate plugin.

\n\n\n\n

“We want Jetpack Boost to have a life of its own – focused on performance and make it available to everyone, including people who don’t want to use the main Jetpack plugin,” Pūķis said.

\n\n\n\n

The plugin was built with the same modular structure as Jetpack core, so users can easily deactivate modules they don’t want to use. This is helpful for ensuring compatibility with other performance or caching plugins that website owners may already be using.

“You’ve probably noticed that both Jetpack and Boost have lazy loading images – it’s the exact same module,” Pūķis said. “If the user happens to have both Jetpack and Jetpack Boost active – it’ll just use the most recent version of Lazy Loading Images.”

\n\n\n\n

The features in version 1.0 are just the beginning of Automattic’s plans for Jetpack Boost. The project appears to be on track to become a full-blown performance plugin that may even migrate some of Jetpack core’s performance-related functionality.

\n\n\n\n

“Version 1.0.0 is being released the “one-point-oh” way,” Pūķis said. “We’re releasing as early as we can call it stable – but there’s so much that we want to do. Starting with simple modules that package up other typical optimization techniques (like concatenation, minification, maybe even photon?) – all the way to more advanced ideas like performance tracking, intelligent performance suggestions, etc.”

\n\n\n\n

Pūķis said none of these ideas are set in stone and the team is open to exploring and building modules that will have the highest performance impact after getting more feedback.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 17:37:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"Gutenberg Times: Page Template Editor for WordPress 5.8, Videos and Plugins – Weekend Edition #166\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17602\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:105:\"https://gutenbergtimes.com/page-template-editor-for-wordpress-5-8-videos-and-plugins-weekend-edition-166/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14988:\"

Howdy,

\n\n\n\n

Yes, it’s been a while that you received a fully curated Weekend edition. After the move it took a while to get my office operational again. We still have too many boxes to unpack, though.

\n\n\n\n\n\n

Nevertheless, let’s catch up on Gutenberg news together!

\n\n\n\n

All the best,
Birgit 💕

\n\n\n\n

Gutenberg 10.4 Released (and 10.4.1)

\n\n\n\n

The Gutenberg Changelog episode 42 is now available. Grzegorz (“Greg”) Ziolkowski and I discuss Full-site Editing Scope for WordPress 5.8, Gutenberg’s 10.4, Gallery Block Refactor and Block-Based Theme updates.

\n\n\n\n
\n\n\n\n

Sarah Gooding of the WP Tavern wrote about the Gutenberg 10.4 release: Gutenberg 10.4 Introduces Block Widgets in the Customizer

\n\n\n\n
\n\n\n\n

Full-Site Editing and WordPress 5.8

\n\n\n\n

If you now find yourself in the position to learn more about the extent of Full-Site Editing experience, I have a real treat for you: A 30-min video Full-Site Editing Overview by, Anne McCarthy, Developer Relations for the Gutenberg project.

\n\n\n\n
\n\n\n\n

On April 14, 2021, the Gutenberg and 5.8 release leads held a meeting, with Matias Venture giving a tour of the current state of the Phase 2 of Gutenberg development. The outcome of the meeting was a decision on Go/NoGo for component that make it into core for WordPress 5.8.

\n\n\n\n

Josepha Haden Chomphosy provide in her follow-up post a list of the detailed scope, the video of the meeting and a transcript of the recording.

\n\n\n\n

The block editor scope

\n\n\n\n
  • Improvements from Gutenberg 9.9 to 10.7 plugin version.
  • Introduce 25 new blocks (Query, Site Logo, Navigation,Posts, Comments, Archives etc. ), the most valuable among them will be the Query Block.
  • theme.json Mechanism for Theme builders (see developer documentation)
  • Template Editor for Pages/Blank Template. (see demo by Marcus Kazmierczak)
  • Widgets Screen & Block widgets in Customizer.
  • Design tools: Duotone, Layout controls, padding, etc.
\n\n\n\n

There is the caution stated in the post: “Not all the above are currently ready, but there’s some level of confidence that they can be by the time of 5.8.”

\n\n\n\n
\n\n\n\n

For the Template Editor for Pages/Blank Template you can see it in action in a demo by Marcus Kazmierczak, he gave at the Mega Meetup last week.

\n\n\n\n
\n\n\n\n

Bud Kraus of JoyofWP showed us in his video, how the Widget screen will look like in the future. It does not show the Widget handling in the Customizer yet, but that is to come to WordPress 5.8. You could see a short piece of it in Matias Ventura’s demo video from the release leads meeting. It is now already available in the latest Gutenberg plugin release.

\n\n\n\n
\n\n\n\n\n

 “Keeping up with Gutenberg – Index 2021” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

\n\n\n\n\n

Justin Tadlock summarized last week’s announcements in Full Site Editing Is Partly a ‘Go’ for WordPress 5.8

\n\n\n\n

Testing Full-Site Editing

\n\n\n\n

As the latest Full-Site Editing Call of Testing, Anne McCarthy has a Query Quest for you. Again with a great set of test instruction, you are guided towards usage and various features of the Query Block and its accompanying new post blocks for title, content, comments, feature image and pagination.

\n\n\n\n
\n\n\n\n

Justin Tadlock discussed this task a bit further in his article: FSE Outreach Round #5: Venturing out a Query Quest. “Testing never has to be boring. I encourage participants to grab inspiration from their lives as they venture out on their Query Quest.” he wrote.

\n\n\n\n
\n\n\n\n

Apropos Testing: Sarah Gooding wrote about our Gutenberg Nightly plugin to get the latest development of the block-editor in an easy to handle plugin. Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin.

\n\n\n\n
\n\n\n\n\n

Need a plugin .zip from Gutenberg’s main (trunk) branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

\n\n\n\n

\"GitHub

\n\n\n\n

\n\n\n\n\n

Anne McCarthy curated all the feedback from the fourth testing call: FSE Program Custom 404 Page Testing Summary

\n\n\n\n

Block-Based Themes

\n\n\n\n

Helen Hou-Sandi streamed on Twitch her exploration session to create a block-based theme for the Full-Site Editing.

\n\n\n\n
\n\n\n\n

Kjell Reigstad opened an issue for Query Block Pattern inspirations. There are great examples posted that could be converted to pattern, that could be bundled with WordPress 5.8

\n\n\n\n
\n\n\n\n

Marcus Kazmierczak also used Twitch to stream his Lunch & Learn series on Block-based themes.

\n\n\n\n
\n\n\n\n

Keep abreast on specific Theme related development and discussions with the weekly round-up from the Themes Team. Kjell Reigstad posted this week’s edition. Gutenberg + Themes: Week of Apr 12, 2021

\n\n\n\n
\n\n\n\n

A couple of PRs that should help with transitioning existing themes to be block-based:

\n\n\n\n\n\n\n\n
\n\n\n\n

In their latest episode of WPCafe co-hosts Mark Wilkinson and Keith Devon talked about Building Twenty-Twenty-One with Caroline Nymark and Mel Choyce-Dwan.

\n\n\n\n

Plugins for the Block Editor

\n\n\n\n

Gutentor published a collection of 70+ Blocks and layouts for Gutenberg Editor.

\n\n\n\n
\n\n\n\n

If you are working on your set of Blocks for the editor, Justin Tadlock has some thoughts to consider: Yet Another WordPress Block Library Plugin. He is making a well though through case to suggest more unique blocks to fill the gap to the core blocks. It seems to me that, two years of seeing block collections being acquired by big companies like Atom Blocks, Co Blocks and latest Kadence Blocks, might tempt a small developer team to come up with another set of blocks matching a specific theme and hope for an acquisition by another big company in the space. There might be space for a few more, indeed.

\n\n\n\n

Tadlock’s longs for something new, a unique extension of core or a missing tool:

\n\n\n\n\n\n\n\n
\n\n\n\n

Conditional Blocks by Morgan Hvidt allows you to create block that are displayed when certain conditions apply. We saw other plugins that offer that, like Block Visibility by Nick Diego. This one is a bit different. It allows you to change content depending on HTTP referrer, so if someone comes from Twitter, they could see a different message than someone coming from a Google Search or a link in a newsletter or an affiliate link. The plugin is also available as a pro version with premium features at conditionalblocks.com

\n\n\n\n\n

Episode #42 is now available, with new co-host Grzegorz Ziolkowski

\n\n\n\n

Subscribe to the Gutenberg Changelog podcast
🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

\n\n\n\n\n\n\n\n\n

People and Community

\n\n\n\n

It’s been already a year that Anne McCarthy joined the Gutenberg team as a developer relations wrangler. It has been a great pleasure meeting Anne and collaborating with her has been quite inspiring, and I learned a lot from her wisdom and her wealth of ideas. She has also become a good friend. She is som much better and being a remote friend that I ever will be. On her personal block Anne published One year in DevRel

\n\n\n\n

Anne’s pioneer work with WordPress open-source project has been so successful that Automattic wants to sponsor another person for developer relations.

\n\n\n\n

Developing with ReactJS and Gutenberg Blocks.

\n\n\n\n

Rob Stinson wrote a tutorial on how to building custom Collections in Genesis Blocks. Now Collections in this context are Layout templates, that extend existing Genesis blocks.

\n\n\n\n
\n\n\n\n

Mark Howells-Mead uses ReactJS to build interactive single page applications with WordPress and wrote a tutorial. It’s not at all about Blocks and Gutenberg, but it’s related to the skill set of learning ReactJS and hopefully inspired developer to gradually make the transition.

\n\n\n\n\n\n

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 18 Apr 2021 23:33:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Gutenberg 10.4 Introduces Block Widgets in the Customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115274\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/gutenberg-10-4-introduces-block-widgets-in-the-customizer?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-4-introduces-block-widgets-in-the-customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3021:\"

The latest release of the Gutenberg plugin (10.4) brings block widgets into the Customizer. When customizing widget-enabled areas, a new block inserter icon is now available for dropping blocks into sidebars. This is the first iteration of block management in the Customizer, tackling the technical integration for editing blocks while also taking advantage of the live preview in the Customizer.

\n\n\n\n
\n\n
\n\n\n\n

Version 10.4 includes several design updates to the Site Editor List View, bringing more consistency to the icon sizing and spacing, as well as new colors for hover, focus, and select states. The publishing UI has been updated to display the site icon and name, adding a more personal touch to this flow while also making it more clear for full-screen or mobile users.

\n\n\n\nGutenberg 10.4 release post\n\n\n\n

More progress on site editing experiments includes the following notable updates:

\n\n\n\n\n\n\n\n

The block editor still fails to deliver a consistent preview of core blocks on the frontend in many cases. Version 10.4 brings greater parity between the editor/frontend with more consistent markup for archives, latest comments, quote, and separator blocks, with improved default padding to match the browser’s default. The GitHub issue for this improvement contains a to-do list for additional blocks that need more polishing on previews, including search, paragraph, columns, embed, post title, and more.

\n\n\n\n

For a full list of all the enhancements and bug fixes, check out the 10.4 release post.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 17 Apr 2021 13:59:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Gutenberg Times: Video: Full-Site Editing Overview with Anne McCarthy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17545\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://gutenbergtimes.com/video-full-site-editing-overview-with-anne-mccarthy/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52174:\"

As part of the Meta Meetup on April 15th 2021, Anne McCarthy gave a presentation on what Full-Site Editing entails, the updated scope of WordPress 5.8, what the FSE outreach program is and what issues surfaced during the four calls for testing from the group.

\n\n\n\n

It’s a fantastic and fast-paced presentation and covers a lot of ground. It’s ideal for WordPress users that just now want to catch up on all the buzz around Full–Site Editing and learn what will come to WordPress in the 5.8 release in July 2021.

\n\n\n\n

Big Thank You to Anne for allowing us to publish the video here with the transcript.

\n\n\n\n

For those interested how the template editor works, jump right in to Marcus Kasmierczak’s live demo portion of the WordPress Mega Meetup recording

\n\n\n\n
\n
\n
\n\n\n\n

Shared Resources

\n\n\n\n\n\n\n\n

See transcript below

\n\n\n\n
\n\n \n \n
\n \n
\n\n \n
Full-Site-Editing – the Ultimate Resource List
Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. — Marie Curie 
\n
\n\n \n
\n\n \n
Full-site Editing MVP: Can I Build a Landing Page?
Josepha Haden Chomphosy was the featured guest on the inaugural episode of the WPTavern Jukebox podcast, hosted by Nathan Wrigley. Chomphosy explained her unofficial benchmark for the Go/NoGo decision on Full-site Editing for the WordPress core merge. 
\n
\n\n \n \n
\n\n
\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Featured image: 404 template by Channing Ritter on critterverse.blog

\n\n\n\n

Howdy. To start, thanks so much for having me. This is a presentation about full site editing. I’m very excited to talk with you. This is a feature I’ve been thinking a lot about over the last year and I’m excited to share with you all. I’m also really keen to learn from each of you what you’re worried about, what you’re excited about, how you think full-site editing can improve your workflows, and more. So this is prerecorded because I wanted to make sure with so much information going around, wanted to make sure I had all the details lined up and so I could pause and rework certain sections. But please know that I welcome questions. So while you can’t interrupt me during the presentation, there will be a whole section at the end. Pull out your pen and paper, write them down, and know that they’re very, very welcomed. But for now, let’s dig in.

\n\n\n\n

So briefly about me, I’m actually originally from Winter Park, Florida. So I haven’t been home in about a year and a half, and thank you for letting me virtually return home by participating in this meetup. In 2011, I first found WordPress as a student at UNC Chapel Hill. I worked on their multi-site, had a great time. 2013, I went to my first ever WordCamp. 2014, joined Automatic as a happiness engineer focused on VaultPress and had a great time focusing on security of websites. It gave me a really interesting look into concerns people have about websites that most people don’t think about. Then 2020, I switched into the developer relations position at Automatic and have been there ever since.

\n\n\n\n

So let’s get meta and talk about the talk. (laughing). So to start, I’m going to zoom out really big and then slowly put pieces together until we kind of get a nice map of what full-site editing is with all the details. So this will look kind of like first answering some big, high-level questions, digging into then how the work is actually being done, so going from high level, “What is this? Why does it help me?” to “How is this work actually being approached? What are the pieces of the work that I need to know, the role of the outreach program?” Then I want to address some key topics and questions that I often get asked when I’ve presented at other places and talked on other podcasts about full-site editing or just one-on-one with people. I love to talk about full-site editing. So hopefully some of the key topics and questions can help get people thinking about other things they want to ask about.

\n\n\n\n

So let’s dig into the first big picture question. Why is this being done at all? Simply put, it’s to empower users. Rather than having a specific part of the site locked away in a theme or requiring a plugin, full-site editing will basically open it up to customize any part of your site the way you want to, or, on the flip side, you can let it be, or if you’re an agency, you could lock certain sites down or certain parts of a site down, depending upon how you want users to have access. So it’s a pretty powerful, big mission to actually deliver on full site editing.

\n\n\n\n

So I answered why is this being done. Now let’s dig into how does this fit into the WordPress roadmap? So full-site editing is a major part of phase two of the current roadmap. It’s not the only part, though. There’s actually other interrelated projects, including things like block patterns, the block directory, block-based themes. So it’s just one piece of this larger roadmap, but it’s one of the major grounding points of phase two of the roadmap.

\n\n\n\n

So what is full-site editing at a high level? Essentially, it’s a collection of features, and it’s important that you get the collection part. But it’s a collection of features that bring the familiar experience of blocks to all parts of your site, rather than just posts and pages. But Anne, what does a collection of features mean? Basically, I’ve noticed people tend to refer to full-site editing as one big thing. It’s like an on-off switch. It’s this monolith, and it’s actually not. It’s not this binary thing. It’s way better to talk about how there’s different pieces that fit together and interrelate, because it actually gives flexibility for release squads to release what’s ready, rather than all of it at once. So while it might be easier to talk about how it’s this one big thing, I encourage you all to kind of think about the different pieces, if you can, and I’ll touch on this more in a bit.

\n\n\n\n

Okay. So what does full-site editing actually allow me to do, right? So cool, Anne, a collection of features, but show me the money. (laughing). So this is an example of a 404 page. So a 404 page, typically you’re not actually able to edit, but with full-site editing, you could actually create this 404 page. This was actually done by one of the automatic designers, Channing. Shout-out to Channing. She did this as part of one of the tests for full-site editing, the outreach program. So it’s a pretty beautiful thing. While we all might not have the design chops that Channing does, it is pretty neat to see kind of a very tangible, hands-on example of what full-site editing unlocks you to be able to do.

\n\n\n\n

To get more specific, basically, if you’re a user, imagine editing the template that a specific post has for a specific category. For theme authors, you’ll be able to tap into design tools that allow you to focus more on actually creating a really compelling experience and less on getting the code in place and hacking things up. You can also out in and out of whatever you’re ready for, which is really exciting. But ideally, for theme authors, it’s going to be a huge change. It’ll allow creating themes to be much, much easier. If you’re an agency, you’ll have greater control over what you can offer clients, including setting custom brand colors with presets to locking down various aspects for consistency, such as typography or wanting only certain default colors to be used.

\n\n\n\n

Milestones of Full-Site Editing Experience

\n\n\n\n

So how is this work being done? So rather than trying to go through everything in one go, this project has actually been broken down into seven different milestones. Some of these milestones are completely separate, their own thing. Some are very interrelated. Some mix and match in different ways. But we’re going to go through each of them so you can get a sense of how this is being done. I’m going to try to stay at a high level before going into a very brief demo midway through the presentation. But hopefully this’ll give you a sense of what this looks like.

\n\n\n\n

Infrastructure       

\n\n\n\n

So milestone one, this was actually such a big milestone that it was broken into two parts. Essentially, this is all about laying the foundation, everything from multi-entity saving, which is actually being displayed here in the GIF that you see, where you can actually update multiple things at once, including a template part. You update your header, you update a post, and you update your footer. It’ll show all the changes happening and allow you to check and uncheck different boxes to save. Basically, just think about this as building the foundation of the experience, the technical foundation, unlocking things like being able to edit a template directly to working on specific blocks for full-site editing, like the site title. So we have a site title block, and it updates everywhere you have it listed.

\n\n\n\n

Browsing Templates and Template Parts

\n\n\n\n

Milestone two, browsing. Again, there’s another little visual so you can see what this actually looks like. This is basically giving you a map and a GPS to know your location, how to get where you need to go for your site. So because there are these new parts of editing your site that are unlocked with full-site editing, like template editing and template parts, like a header or footer, there needs to be a way to navigate between them. So this milestone is dedicated to that. How can we make it as easy as possible for you to you get where you need to go?

\n\n\n\n

Styling – Global Styles + theme.json

\n\n\n\n

Milestone three, styling. So this actually covers a couple different layers. I’m going to break it down in this slide and then the next one to help give you a sense visually of what this looks like. But this includes everything from the technical requirements to make various levels work and the UI for users. So you can actually see a depiction of the future design for the UI that users will interact with in the imagery here. So there’s generally three layers, including selling for local blocks, theme defaults, and then global modifications or what we often call global styles. You can think of global styles as basically having the option to edit all aspects of your site. So if you want to set a typography that goes across your entire site, if you want to have certain colors for all H1 headers, you can set that up with global styles.

\n\n\n\n

Currently, much of the work has been focused on the technical underpinnings, especially around aspects like theme.json, which is a very key component for block themes and a really big tool for block theme authors. But for 5.8, the focus is generally going to be on merging the non-user interface parts of global styles. So don’t expect to interact with this system unless you’re a theme author. If you are a theme authro, get really excited. Here’s a little visual, just you can get a sense of it. So these are the different layers that have to interact in the styling system and hierarchy that needs to be thought of when working on this milestone.

\n\n\n\n

20+ Theme Blocks

\n\n\n\n

Milestone four, theme blocks. So because full-site editing opens up so many more aspects of the site to edit, new blocks had to be created, basically. So if you’re creating a new template for a specific category and you’re putting in post content and you want to add the post author block, which you can see here, you can quickly add it in, customize it to your liking, add in post comment, add in post data, remove the post date. You can edit each parts of these things, which pretty excited about this, is there’s actually 20-plus blocks that fall into this category. If all goes as planned, some of those will be released for 5.8 and available potentially for all sites. So even if you’re not using a block theme, you could have access to these theme blocks, which is pretty powerful and pretty cool.

\n\n\n\n

Query Block – The Loop or Post List

\n\n\n\n

Query block. So the query block has its own milestone, because it’s a pretty powerful block. It’s also meant to be a theme author tool, so in the long run, if you’re a user, imagine that you interact with what we call block variations, which basically are just different variations of a block, as the name implies. But imagine you want to add in your latest post. You’ll add the latest post block, but underneath it, what will be powering that experience of adding your latest post will be the query block. Essentially, as the name implies, it allows you to query posts and pages and display them in different arrangements on the page. I’m very excited, actually. In Gutenberg 10.5, which will be released in just about two weeks, there’s going to be some new patterns. You can see right here, large, medium, small are the current selection of patterns that you have for the query block. But pretty soon, there’s going to be a grid pattern and a couple other cool ones, which is pretty exciting. Generally speaking, though, if you’re an end user, don’t expect to interact with this. If you’re a theme author, get excited.

\n\n\n\n

Navigation Block

\n\n\n\n

Navigation block. Again, this is just a single block, but don’t be fooled. It’s definitely a mighty one. So this last one is dedicated to all things navigation block, both in terms of structure and design. You can see in this little GIF I have going on, I’m just kind of making little design changes and moving things around so you can get a sense of what it’s like to interact with this block. This milestone actually includes everything from how do you build a really simple menu with a few items to thinking about how to create a really large mega menu and add in new blocks, like the search block that you can see here. We’re even adding sub-menus, different designs, different layouts, and more.

\n\n\n\n

Gradual Adoption – Widgets, Customizer, Hybrid Themes 

\n\n\n\n

So the last piece of the milestones is the gradual adoption. I hope this GIF makes you laugh, but also seriously, this is the intent, is we slowly want people to be able to adapt in the way that they can. Once more of these pieces are completed, there’s basically a ton of room to start exploring how adoption might look like for those who can’t or don’t want to restructure a full theme. So this might be an intermix of block-based things and regular PHP templates, or it might be covered by projects like the block-based widget editor and the navigation screen. Both of those projects I’ll cover later, but for now, just keep in mind that this is intentionally a milestone. We want to allow for gradual adoption and want people to have lots of pathways in to taking advantage of full site editing.

\n\n\n\n

What’s coming to WordPress 5.8

\n\n\n\n

So what’s coming to WordPress 5.8? So just last week, a post went out from Josepha, who is the executive director of the WordPress project. I want to read a quote from it just to kind of set the tone and give you a sense. So full-site editing is a collection of projects, and together, they represent a big change, arguably too much for a single release. The most important context to share is that it isn’t shipping as the full default experience for users. One of the clearest pieces of feedback from the phase one merge process was that there wasn’t enough time for extenders, agencies, theme authors, plugin developers, site builders, et cetera to prepare for the upcoming changes. With that in mind, this merge process won’t be an on-off switch, and you can see I’ve bolded various specific parts that I hope you take home with you.

\n\n\n\n

All right. So let’s talk WordPress 5.8 plans. This is up-to-date information as of today. A post was released from Josepha on [inaudible 00:12:21], if you’d like to check it out. From the call that the project leadership had, this is what they came up with for the 5.8 plans. This includes improvements from Gutenberg 9.9 and beyond. So we always package different versions of Gutenberg into major releases. This release is no different. There’ll be an introduction of new blocks, including query, site logo, navigation, et cetera. These are each very powerful blocks, very exciting to see. theme.json mechanism, this is part of what allows block themes to use different global styling, which will be very cool for block authors to get their hands on.

\n\n\n\n

The template editor for pages and a blank template, I’ll actually be showing a demo of this in a moment. So hang tight there, but it’ll all make sense in a bit. The widget screen and block widgets in the customizer, this is basically work being done to bring blocks to the widgets experience. I will talk more about that later, about how it’s a stepping stone towards full-site editing. Then finally, design tools, so even more design tools that people can hook into, including duotone, which adds a really cool color filter, layout controls, padding, and more.

\n\n\n\n

Short Demo: Template Editing, Navigation Block and Multi-Entity Saving

\n\n\n\n

So at this point, let’s pause for a minute and actually show off one of the features that is aimed to be included in 5.8. 

\n\n\n\n

I’m going to show you template editing, the navigation block, and just some of the cool flows with multi-entity saving is one of the things that we talked about that will make it into this release. So I’m in the post editor. I have a new post. I love to blog and write and present. I hit Update. Super happy, whatever. Open up the post settings, and there’s this new section that allows you to both create a brand new template. This will ideally be used both in themes that are block-based themes, so they’re ready for full-site editing, and potentially for classic themes. There’s actually work underway so that this will be available in anything being used in WordPress right now.

\n\n\n\n

So right now, if I hit Edit, this will take me into the template that this post is using. So let’s do that now. So as you can see, this drops me into what looks like the entire site. So you can see I have my header up here, I have the footer down here, and I can make changes directly to them. So, for example, if I jump in here, this is the navigation block, and I haven’t yet set it up. So I can say add all pages, and I can start empty. In this case, I’ll say, “You know what? Let’s start empty.” Let’s say I want to add a custom link. One of the cool things you can actually do, you can quickly select from here, or let’s say I want to add a new post. Let me first select post link.

\n\n\n\n

So adventures around the world. Let’s pretend I’m just inspired where I’m writing this. I can actually create a draft post, which is pretty cool, and it’ll show up here. It will not show up on the front end, since it’s a draft, but it actually creates a page draft for this with this title automatically. So let’s say I’m scrolling through here. I’m going, “Oh, this looks pretty good. Actually, I kind of want to see what it looks like if I add an image to the post here.” Pull up an image block. Oh, my media library. Hammocks. Can’t get enough hammocks. Going to throw that in there. Great. So at this point, I’ve made changes to the actual header. I’ve made changes to the post. I’m just going to apply and see what happens.

\n\n\n\n

So this is the multi-entity saving that I mentioned earlier. Now, as you can see, it has a section for posts, so it’s saying, “Hey, you edited this post,” and it has a section saying, “Hey, you edited the header.” So at this point, I’m going to hit Save, because I want both those changes to propagate. Now I’m back into my post, into the writing flow, and I can easily switch back and forth. I can also select a new one. But yeah, hopefully this gives you a good sense of one of the key parts that’s being worked on for inclusion in 5.8. There will be a demo later, but this is just a taste.

\n\n\n\n

Timeline of 5.8 Release

\n\n\n\n

To help set the stage for what you can prepare for, here are some upcoming dates to keep in mind. If you’re like me, time is moving really strangely, so I like to have dates to kind of anchor me. Feel free to take a screenshot of this or write it down if you’d like. So April 13th and April 27th, these are the go and no-go decision dates. So right now, project leadership actually has gathered. So you might notice if you are good with dates and good with time right now, April 13th has come and gone. So this date has passed, and project leadership has met actually to go through different FSE-related features and projects to figure out what might be ready for 5.8. I would expect to see more high-level posts throughout the month, especially after the second date, the April 27th date. That’s when final decisions will be made around 5.8.

\n\n\n\n

Then if all goes well, the beta period for WordPress 5.8 will start on June 8th. So people can actually start getting their hands on the tools that are going to be in place in the actual release and testing it and finding bugs and improving things from there. July 20th is the actual date of WordPress 5.8 and when it’s released. This is being considered as an open beta, where theme authors, plugin authors, agencies, and more can dig into the tools that are being offered and that I went over previously. Then in December 2021, that’s around the time when WordPress 5.9 will be released, and this is when I expect to move from tools for extenders into tools actually for users and more user-facing interactions with full-site editing and having things unlocked in the interface that previously in 5.8, most users won’t notice and won’t interact with. In 5.9, I expect that to be more visible.

\n\n\n\n

So some key takeaways. I know this is a lot of information. So only what’s ready from the various milestones will be shipped. This is not an on-off switch, and it won’t take over your site. The focus right now is on giving tools to extenders first, before user-facing changes. That’s a big lesson that was learned from the 5.0 merge, where Gutenberg and the core editor was brought into the WordPress experience. This is something that, thankfully, we’re in a position where because of these interrelated projects, we’re able to move in a more flexible and adaptable way to release what’s ready and not anything else.

\n\n\n\n

What is the FSE Outreach Experiment Program?

\n\n\n\n

All right. At this point, let’s jump into the full-site editing outreach program. As a reminder, this is the program that I actually run, so consider this free rein to ask me whatever question you’d like, because I think probably too much about this program. But it’s something I’m really excited to talk to you about, and I think it’s a really neat vehicle for both feedback and education about full site editing.

\n\n\n\n

So let’s go over some big picture questions, kind of like we did earlier on, and just get the details of the way. So let’s start. What is it? So essentially, it’s just a program focused on full-site editing. It’s in the form of a Slack channel right now. I’ll go over how to join it in a bit. But it has curated calls for testing, summary posts of the feedback that we get, and various educational opportunities that you can hop in on, mainly in the form of live streams. I’m running some hallway hangouts, which are basically just Zoom calls. People can come in, and we can talk about full site editing.

\n\n\n\n

What’s the goal

\n\n\n\n

What’s the goal? So the goal is pretty simple, help improve full-site editing experience by gathering feedback from WordPress site builders. While the group originally started solely to be about feedback, there’s actually this really neat educational component that has come up as the feature has developed and as more people have gotten curious about it. So people can join just to build their own awareness about what’s happening with full-site editing and kind of just look at a glance or just help amplify the posts that are coming through.

\n\n\n\n

Why was it started?

\n\n\n\n

Why was it started? So I’m going to quote Josepha from the kickoff post. During the WordPress 5.0 retrospective, which is when Gutenberg was merged and the core editor was merged, one of the things that came up routinely was the need for better engagement with users. It was generally agreed from all levels and area of contribution that users would be most impacted by Gutenberg, but the users were also the group we had the least channels of communication to. To help get user feedback to WordPress developers a little bit more seamlessly, I’m going to try and experiment outreach program. So basically, this is a lesson that was learned from the 5.0 release. In order to prevent another situation where people are caught by surprise, this program is in place to help people get excited and on ramped and on boarded onto full-site editing, as well as getting feedback so that we know if a major workflow change is coming into play, we can actually get user feedback to make it a little bit easier.

\n\n\n\n

How to Join FSE Outreach Experiment

\n\n\n\n

All right. At this point, I bet you’re just so stoked. You’re ready to dive in. Awesome. (laughing). All you’ve got to do is join FSE Outreach Experiment in Make WordPress Slack, and then you’re all set. You’ll just get a bunch of annoying pings for me with prompts for how to test, interesting posts related to full site editing, and more. I promise it’s also not as scary as this dive, which looks absolutely terrifying, but also beautiful.

\n\n\n\n

High-Level Feedback from Calls for Testing

\n\n\n\n

So because at this point, we’re on our fifth call for testing, I want to go over some high-level pieces of feedback that we’ve actually gotten about the experience so far. Basically, across all the calls for testing, these are repeated themes that have come up. But keep in mind that because there are certain aspects that we actually haven’t tested, so global styles, for example, the UI isn’t available really for users, and it’s not refined for users, so it’s not something that we’ve had as a focus part of testing, even though there is a UI that is available. So certain things are left out purely because they aren’t necessarily ready for testing, but these are the top pieces of feedback. So bear with me.

\n\n\n\n

Preview Content

\n\n\n\n

Previewing content. Publish a post. You want to go preview it, or you’re editing a post. You want to go preview the content. The same thing is true with full site editing. This is a big thing that kept coming up. My question is, is this a necessary workflow, or is it a symptom of other problems? Because in general, the site editor should be as WYSIWYG, as what you see is what you get, as possible.

\n\n\n\n

So if you’re making a change, it should look exactly the same as the front end of your site, and because it doesn’t right now, it’s causing this tension. There actually is a preview site option under discussion, as well as a browse mode option, which basically, if you’re actually editing your site, it would turn off everything that wouldn’t actually show up on the front end. So if you only have one page of posts, but you have pagination set up so if you had multiple pages, that would actually go away. So as you can imagine, this is currently up for discussion, but there actually are a couple different pathways to try and address this problem. But it’s a very important one to address.

\n\n\n\n

Saving Process

\n\n\n\n

Saving process. I like to say it’s technically reliable, but not yet delightful. So basically, it’s left a lot to be desired right now, and it’s resulted in a fair bit of confusion. There’s a lot of feature requests and enhancements and bugs that have come up related to saving. This is likely because the multi-entity saving aspect that I demoed earlier is very new for WordPress users. It’s not something we’re used to having as part of our workflow. So it’s something that inherently needs some work on. So whether it was people requesting more granular saving options to show specifically what was being changed to issues with saving for screen readers to confusion around even just what the general parts mean, like what you’re actually selecting or unselecting, This was definitely a big, big area of feedback.

\n\n\n\n

Distinction between editing area.

\n\n\n\n

Distinction between editing area. So basically, because you can edit all parts of your site, it’s hard to know, “Am I editing the header for all of my site, or am I editing just a specific piece of content on a post?” This kind of distinction, jumping between different levels of, “Oh, you’re changing this. This will change everything” to “You’re just changing this one thing in this one spot” is pretty tricky. Right now, there’s not a lot of friction, and there’s not a lot clarity in the actual experience to show when you’re actually jumping between those different levels. So this was a big piece that’s come up, and it’s something that is an active area of iteration and exploration to kind of get the right amount of friction in place.

\n\n\n\n

Rethinking Width and Alignment.

\n\n\n\n

So rethinking width and alignment. Previously, alignment in full-site editing worked to optimize how traditional things worked, where basically, traditional things provided their own alignment styles. This worked okay for the project up until this point. But recently, work has been shipped to reimagine how this dynamic should work to allow for actually more control over alignments when using the site editor. This should actually help make sure that whether you want something that’s full width or you want to change the actual width of your content that’s showing up that it’ll actually be what you see is what you get. Right now, this is another piece of feedback at a high level that’s impacted what you see is what you get experience.

\n\n\n\n

General usability improvements.

\n\n\n\n

Generally usability improvements. I admit this is totally a catchall, and it covers a ton of stuff, but it’s actually a very important one to think of, because it’ll actually move the site editing experience from being just functional to actually delightful, which is really exciting. There’s a ton of issues that are included in this, including some enhancement requests, bug reports, all that good stuff. One of my favorites to talk about is creating a background image on a template part. So imagine you have a header. You’re working on it. You’re super excited, and you’re almost done. Then you’re like, “Oh, do you what would be really cool is if I had mountains in the background. Maybe I’ll add a cover block in the background and add an image and set the opacity pretty low, but have mountains going in the background of the site.” That’s really hard to do.(laughing). You basically would have to delete everything and add the block in and then add everything back. So those are the kinds of experiences that we’re trying to improve right now.

\n\n\n\n

Improving Placeholders.

\n\n\n\n

Improving placeholders. So placeholders, especially for some of the newer blocks, are a powerful way to both guide people and a current point of confusion. So you probably saw this with the navigation block earlier, where it had those little grayed boxes. It’s like, “How do we explain to people, ‘Hey, this is something you have to set up and engage with, but here’s generally what it will look like and what it will do’?” 

\n\n\n\n

The feedback for this mainly came into play with the query block, social icon block, featured image block, and the navigation block. Each currently actually also get users started in different ways. So not only are there different placeholders for different experiences, the actual experience of interacting with the placeholders are all pretty inconsistent right now. So I think in the long run, it seems that users will benefit a bunch from a standardized, consistent way to interact with placeholder content so that it becomes a really familiar interaction when you’re working with a more powerful block. This especially is true for the query block and navigation block.

\n\n\n\n

Okay, now that we’ve covered the milestones, the outreach program, high-level pieces of feedback, I’m going to quickly run through some key topics that I imagine you’re going to have questions about. Just because I cover them here does not mean I don’t want to answer questions, so please don’t see this as a sign that you can’t also still ask questions about these topics. This is just what I’ve been hearing from folks.

\n\n\n\n

Will full site editing take over my site?

\n\n\n\n

Hopefully by this point, you all can say no in a resounding way. But no, this is not something that’s going to all of a sudden, on-off switch, you upgrade to 5.8, it takes everything over. Not at all. You very much have to opt into it through using a theme blocking that supports, actually, these features. In time, more pathways are going to be built as well so that when you’re actually using full-site editing, you’ll likely be using pieces in all of it. So you could just be using the query block, or you could just be using global styles without it taking over your entire site.

\n\n\n\n

What about the block-based navigation and widget screens?

\n\n\n\n

What’s the deal there? So in case you missed it, there’s actually two additional projects that are dedicated to bringing blocks to more areas of the site outside of full site, I think. This include the navigation screens. You can build out menus and the widget screens. You can build out your widget sections, and this is pretty powerful and high-impact work. They are both separate projects that are tangential to full-site editing, but you can think of them as stepping stones, basically. So you could have a theme that is a classic theme, but it uses a block-based widget screen so that people can have the power blocks with their widgets. Essentially, the whole point, like I said, it’s a stepping stone to get people used to using blocks more places.                                                       

\n\n\n\n

Site builders

\n\n\n\n

I could write a thesis about this, because there’s so much to talk about here. I imagine I’m going to get questions about this, but essentially, full-site editing is being built partially so people don’t get stuck or locked into one site builder or another. It’s also being built in a way that site builders can actually hook into what’s being created if they choose to. I’ve heard from a lot of folks, though, that they expect full-site editing to actually fully replicate their favorite site builder’s functionality, and I’m here to say that while the goals between full-site editing and site builders are pretty similar in terms of empowering users and giving better tools to customize a site, the difference is that we’re building for 40% of the Internet, and we’re building even for site builders, where site builders have a much more targeted approach.

\n\n\n\n

In the future, I do think there will always be room for specific takes of how to have an ideal site editing experience, whether that’s geared to a specific group, like a marketing style approach, or if you want to have things locked down or if you want to have things opened up. But generally speaking, full-site editing is meant to actually expand the way WordPress as a whole uses blocks, so don’t expect it to fully replicate any sort of site builder, your favorite site builder, essentially.

\n\n\n\n

How is this going to impact themes?

\n\n\n\n

How is this going to impact themes? So in the long run, this should actually make theme development much easier. I think Marcus’s demonstration later will show that, and much simpler, especially with the design tools that will be essentially ready at your fingertips to tap into. Ideally, because of what’s being released, it should allow theme authors to focus less on coding and functions and more on design aesthetics, integrating block patterns, and all that good stuff. But because one of the key things I wanted to really drive home in this section, though, is that because full-site editing requires a block-based theme or a theme with certain functionality enabled, this makes theming extremely important to get right. So I’ve heard people say like, “Oh, themes are a thing of the past.” It’s very much not true. I’d actually argue the opposite, that theme is almost key to this experience, to having it be delightful and having it makes sense.

\n\n\n\n

What pathways are going to be created?

\n\n\n\n

I know I’ve talked a lot about pathways this entire time, but it is the entire focus of the final month milestone for full-site editing. So expect a lot of pathways. For now, this includes everything from having a classic theme that can take advantage of global styles to template editing or a block-based widget screen. This also includes things like allowing certain full-site editing, really, blocks to be available for users, regardless of if they’re using a classic theme or a block theme or enabling the ability to edit block templates directly, kind of like I showed in the demo earlier. So there’s going to be a ton of options here, and I’m actually really excited to see what happens once 5.8 kind of sparks the creativity of the community, because I imagine both that people will create their own pathways and start experimenting, and we’ll also get a very clear sense of, “Hey, I actually really need X, Y, and Z pathway.” We’ll get a sense of demand from the community of core, which is super exciting to have.

\n\n\n\n

What’s the best way to prepare? 

\n\n\n\n

So this depends on who you are. (laughing). So depending on whoever you are, at a high level, this is what I recommend. Join the FSE Outreach Program. I know this is the thing that I run. I’m very biased. But seriously, join it. I think it’s really, really helpful to get a sense both of feedback, what’s being currently iterated on, and just general education opportunities. If you’re a theme author, I really recommend checking out the theme experiments repo and joining the block-based theme meetings to learn about the latest and greatest, because lots of good information is shared there. In general, too, it’s often also helpful to join the weekly core editor meetings, because there’s regular updates about the projects and PRs people working on. Finally, pay attention to upcoming content on Learn WordPress, because I think there’s going to be a ton of stuff coming up about full-site editing, depending upon what’s scoped for 5.8 and 5.9, including building a block-based theme, for example. That will really help, I think, everyone level up.

\n\n\n\n

Stay connected with Anne McCarthy

\n\n\n\n

All right. So we’re at the very end. At this point, if you want to stay connected with me or you have follow-up questions after this talk, I very much welcome them. You can find me on WordPress or on Slack @annezazu, or you can reach me at my site, nomad.blog. I will also try and drop my automatic email address separately. I just won’t on a live presentation, in case you want to follow up directly via email. I’m not on Twitter. I’m not on Facebook. I’m on and off of Instagram. So please don’t try to contact me those ways.

\n\n\n\n

Finally, I just want to say thanks so much for your time. Let’s hear your questions at this point. I’m really excited to hear what you all are thinking and curious about. I do want to say I don’t know everything, but I can find anything, and I’ve talked with David about how he can follow up after this presentation to get you all information and answers that you all want to questions that I might not be able to answer. So at this point, I’m going to pass it off to live and current Anne and give a high-five from past Anne.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 18:21:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Enō: ‘Probably This Is the Best Blogging Theme Ever’\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115149\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:163:\"https://wptavern.com/eno-probably-this-is-the-best-blogging-theme-ever?utm_source=rss&utm_medium=rss&utm_campaign=eno-probably-this-is-the-best-blogging-theme-ever\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4460:\"\n\n\n\n

Sometimes a theme’s description is so moving that one must install, activate, and test the project. I often rail against the obviously keyword-stuffed text in the free WordPress theme directory. But, I am pleasantly surprised from time to time.

\n\n\n\n

Enō is an elegant, modern and functional WordPress theme. Probably this is the best blogging theme ever. Just see the demo at…It supports Gutenberg block editor and has a lot of Customizer options…

\n\n\n\n

Thus began my journey into Enō, an upcoming theme by Ivan Fonin. I could have been partially a language-barrier thing. Or, the author could have just been having a bit of fun. Nevertheless, it was the sort of description that stood out enough to pull into my test environment. Any blogging theme claiming the title of “the best” was at least worth a look.

\n\n\n\n

What I found was a well-designed theme that focused on some of those timeless elements, such as generous use of whitespace and sound typography. I would not go so far as crowning it the best ever created, but it will undoubtedly be the perfect fit for many bloggers in the future.

\n\n\n\n

Currently, the theme is awaiting a review before it lands in the official WordPress theme directory. However, those who want to try it out early can snag a copy of the ZIP file from its Trac ticket.

\n\n\n\n

Enō tackles the intricacies of block editor design like a pro. In areas where so many “block-ready” themes fail to live up to expectations, it is a textbook example of working alongside the block system.

\n\n\n\n

Where it falls short is that it does not go beyond nailing down the basics of block design. The theme bundles no patterns, which would allow users to quickly drop in more advanced layouts. It also does not include block styles or even a custom color palette. There are no unique elements in the design where the author stamps his own signature in bold. It is almost formulaic, but that is not necessarily a bad thing. Formula can feel good. It can be comforting when you need something that simply gets out of the way and allows your content to shine.

\n\n\n\n

While Fonin bills the project as a blogging theme, it stands out as a solid option for photographers. The open-canvas layout leaves ample room for large images and galleries, and the theme’s demo is filled with examples.

\n\n\n\nGallery examples from the Enō theme.\n\n\n\n

What would make this theme even better would be a few image and gallery styles, allowing end-users to spruce up their blocks a little more.

\n\n\n\n

As much as I like the theme, it does tick one of the boxes from my most-irritating-things-that-themes-do checklist. It outputs the featured image on single post views above the post content. This creates the dreaded double-image issue when a user also uses the same image in the post itself. The easy fix for this is to provide a theme option for not showing the featured image on single posts.

\n\n\n\nNo customizer option to disable post featured image on single views.\n\n\n\n

It is a surprise that the theme does not have this option because it allows users to enable or disable nearly everything possible outside of the post content. It has three different areas where metadata can be shown: before the post title, after the title, and after the content. Users can pick and choose what appears where via a series of checkboxes. The approach is convoluted at best and is a good representation of why we need the site editor. This is not so much the fault of the theme as it is a limitation of the customizer. Instead of ticking and unticking boxes, users could simply move blocks around to their desired location.

\n\n\n\n

The comments are broken in the theme at the moment. Each comment’s text is outputting a simple comma instead of the content. I am sure this will come up in the theme review and be addressed before it goes live.

\n\n\n\n

For users looking for a minimalist, block-ready theme, this will be a solid option once it makes it through the review process. I look forward to the day when themes like Enō are the baseline when designing for the block system.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 17:20:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WPTavern: Full Site Editing Is Partly a ‘Go’ for WordPress 5.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115193\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/full-site-editing-is-partly-a-go-for-wordpress-5-8?utm_source=rss&utm_medium=rss&utm_campaign=full-site-editing-is-partly-a-go-for-wordpress-5-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6930:\"

Today, Josepha Haden Chomphosy announced the results of yesterday’s “go/no-go” demo and decision on whether Full Site Editing (FSE) would land in WordPress 5.8. The site editor and global styles are not landing in the next release. However, several other features should launch and allow users to build their sites with blocks in new ways.

\n\n\n\n

The following people attended the demo:

\n\n\n\n
  • Matías Ventura – Demo Host and Gutenberg Project Lead
  • Matt Mullenweg – WordPress Project Lead
  • Helen Hou-Sandí – Lead Developer
  • Josepha Haden Chomphosy – Executive Director
  • Héctor Prieto – Technical Project Manager
  • Chloé Bringmann – Assisting with administrative and operational logistics
\n\n\n\n

Ventura walked the group through the various FSE features that could be ready for WordPress 5.8, taking questions and discussing along the way. There was also a discussion afterward that focused on ideas beyond the next release.

\n\n\n\n

The following FSE-related features are expected to ship:

\n\n\n\n
  • Improvements from Gutenberg 9.9+.
  • New theme-related blocks like Query, Site Logo, Navigation, and more.
  • theme.json integration, which allows themes to define block defaults and settings.
  • Template-editing mode for the block editor.
  • Block-based widgets screen and customizer integration.
  • New block design tools, such as duotone (SVG filters for images), layout controls, padding, and more.
\n\n\n\n

“Not all of the above are currently ready but there’s some level of confidence that they can be by the time of 5.8,” noted Haden Chomphosy in the post.

\n\n\n\n

This list feels like a solid compromise between launching some of the more polished FSE features and trying to force in those that are probably out of reach for a July 2021 release. The features also provide current users access to new block tools without activating a block-based theme.

\n\n\n\n

The group focused on the Query block for much of the early discussion. The Gutenberg development team will likely change the block’s user-facing name to something less confusing. It also needs a bit more polishing to make things more user-friendly. I am interested in seeing how theme authors use this in conjunction with patterns once this launches.

\n\n\n\n

One other feature that users should look forward to is the pattern directory. While it is not ready for integration into the WordPress admin UI, it does not need to be. Users will be able to copy patterns from the directory and paste them directly into their editor. In time, it should become a part of the built-in experience.

\n\n\n\n

The group seems to have made a good call on which features to include. It is easy to want to push forward and get everything into the hands of users. It can be tougher to pull back and compromise.

\n\n\n\n

Full video of the demo:

\n\n\n\n
\n\n
\n\n\n\n

I had two takeaways that stood out to me more than anything in the meeting.

\n\n\n\n

Takeaway #1: Page Template Editor

\n\n\n\n

In WordPress 5.8, users should gain access to the template editor. On the page-editing screen, it allows users to switch out of content-editing mode. From there, they can work on the overall template. Essentially, for this release, it would serve as a landing page builder.

\n\n\n\n

This is a sort of middle ground between just the block editor and the eventual site editor. I like this route because it does not overwhelm end-users with a complete site-editing experience at once. It is a helping hand, a transition from the current phase to the next, allowing users to familiarize themselves with more advanced tools.

\n\n\n\n

The template editor will work for all users too. They will not be required to run a block-based theme to access it. Because each template would be a one-off use case, WordPress can serve this up without theme authors opting into it.

\n\n\n\n

Many block-ready themes have already been including an “open canvas” type of template. This would remove the need for those unless also including it for third-party builders. It would also solve the portability issue when users switch from a theme that bundles the template and one that does not.

\n\n\n\n

Takeaway #2: Many Block-Based Themes

\n\n\n\n

At the end of the discussion, the group was more or less spitballing some ideas beyond version 5.8. In particular, Hou-Sandí shared a vision of what theme development for the official directory could look like in the era of FSE.

\n\n\n\n

“Because the full site editing, like from a user-facing point of view, is not about page building all the time,” she said. “It’s about tweaking what’s there. Yeah. So I feel like the correct thing for core to do in terms of bundled themes is actually a bunch of small bundled themes.”

\n\n\n\n

I have previously written about how work on Twenty Twenty-Two should already be underway instead of waiting until the last moment to piece a new default theme together for the end-of-the-year launch. The yearly default theme system has served the community well for over a decade now. I am already warming to the idea of turning it on its head and forging a new path.

\n\n\n\n

With FSE, developers do not necessarily have to follow all of the rules of traditional themes. Themes like Kjell Reigstad’s Carrd-like, two-column landing page theme would be well-suited to such an experiment. Smaller, more experimental projects like this could replace the old Twenty* theme system with something new or even complement it.

\n\n\n\n

Hou-Sandí also threw out a few ideas around building block-based themes via a library of CC0 images, the patterns directory, and copying/pasting things from WordPress.org. She likened it to the CSS Zen Garden era. It could even open the possibility of bypassing the theme review process since everything would be pre-vetted.

\n\n\n\n

But, these are thoughts for tomorrow. For now, we are at least getting some initial FSE components.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 21:54:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: Zerodium Temporarily Triples Payout to $300K for WordPress Exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115080\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits?utm_source=rss&utm_medium=rss&utm_campaign=zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4216:\"

Zerodium, one of the most well-known security vulnerability brokers, announced that it is tripling payouts for remote code execution exploits on default WordPress installations. Payouts are typically $100K but have been temporarily increased to $300K.

\n\n\n\n

The company focuses on acquiring original and previously unreported zero-day research. It pays researchers for high-risk vulnerabilities and fully functional exploits, with the highest rewards at $2.5M for ‘full chain, zero-click, with persistence’ Android exploits. This price tag was increased from $200K in September 2019, suggesting Android exploits have become more difficult to find or that demand for them has increased significantly.

\n\n\n\n
\n

We\'re temporarily increasing our payouts for WordPress RCEs to $300,000 per exploit (usually $100K).

The exploit must work with latest WordPress, default install, no third-party plugins, no auth, no user interaction!

If you have this gem, contact us: https://t.co/PBuS1nnpED

— Zerodium (@Zerodium) April 9, 2021
\n
\n\n\n\n

Exploit resellers operate within a sort of grey area of security research. As a standard practice, security researchers are encouraged to report vulnerabilities to the original developer of the software, not an intermediary that may pass it along to a party that may not use the information for good. The appeal of these companies is that they pay more than most organizations, hence the tagline: “We pay BIG bounties, not bug bounties.”

\n\n\n\n

WordPress has an account with Hackerone to pay security researchers for vulnerabilities but payouts are much smaller in comparison to what exploit brokers pay. This makes it a tough choice for security researchers who do this for a living. Professional zero-day hunters are looking for the highest payouts for the vulnerabilities they find, which can sometimes take months or longer.

\n\n\n\n
\n\n\n\n

Zerodium does not reveal who its clients are or what their purpose is for buying the the vulnerabilities. The best case scenario would be a government entity wanting to secure its own systems. Even then one cannot guarantee that they use the exploit ethically or that they don’t inadvertently leak the exploits where they could be used maliciously by others.

\n\n\n\n

Zerodium did not elaborate on why it has increased payouts for WordPress exploits to $300K. WPScan speculates that the company may suddenly have a greater demand for WordPress RCE exploits, combined with WordPress becoming more secure:

\n\n\n\n

This could indicate that WordPress is becoming more secure and that it is getting harder to find the critical security issues that buyers want. On the other hand, we must also assume that these types of exploits already exist and are already being actively sold on Zerodium and other similar platforms.

We could also conclude that if a government is going to pay more than $300,000 on a WordPress RCE exploit, that they intend to use it. World governments may even barter over the exploits so that the seller, in this case, Zerodium, gets the best price.

\n\n\n\n

WPScan also emphasized that with WordPress having such a large presence on the web, an exploit against core with those particular characteristics “would be devastating to the web as a whole if it landed in the wrong hands.”

\n\n\n\n

“Zerodium increasing their prices may indicate that it is becoming harder to find these critical issues in WordPress Core,” WPScan founder and CEO Ryan Dewhurst said. “That, at least, should be good news for WordPress and the web as a whole.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 18:11:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WordPress.org blog: WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8387:\"

WordPress 5.7.1 is now available!

\n\n\n\n

This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

\n\n\n\n

WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

\n\n\n\n

You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

\n\n\n\n

If you have sites that support automatic background updates, they’ve already started the update process.

\n\n\n\n

Security Updates

\n\n\n\n

Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

\n\n\n\n
  • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
  • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
\n\n\n\n

Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

\n\n\n\n

Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

\n\n\n\n

For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

\n\n\n\n

In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

\n\n\n\n

99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: FSE Outreach Round #5: Venturing out a Query Quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115153\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:161:\"https://wptavern.com/fse-outreach-round-5-venturing-out-a-query-quest?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-round-5-venturing-out-a-query-quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5293:\"

The Full Site Editing (FSE) outreach program is chugging along. Since December, it has called for and completed four rounds of testing. The latest round asks volunteers to provide feedback on the Query block, arguably one of the most crucial pieces of the FSE-puzzle.

\n\n\n\n

Automattic Developer Relations Wrangler Anne McCarthy has been overseeing the program since its inception. Each round of testing asks participants to follow along with a set of instructions while testing a specific feature related to FSE. They can then provide feedback on what does or does not work. Thus far, the program has tested and identified issues for template-editing mode, building a custom homepage, creating a 404 page, and wrangling a restaurant-themed header.

\n\n\n\n

Volunteers for the program should install the latest version of the Gutenberg plugin and the TT1 Blocks theme. Participation is open to all, and further details are available through the announcement post.

\n\n\n\n

The latest test is all about the Query block — McCarthy is dubbing it a “Query Quest.”

\n\n\n\n

“Not many blocks get an entire milestone dedicated to them but the Query Block did!” she wrote. “As the name implies, this is a pretty powerful block allowing you to display posts/pages on your site and customize them as you see fit. For example, you could easily use this block to show off all of your favorite recipes by setting it up to show a specific category of posts.”

\n\n\n\n

Generally, theme authors will primarily work with this block. However, for those end-users who will inevitably want to customize post output on their sites, they may need to at least have some basic familiarity with it or its block variations.

\n\n\n\n

Building With the Query Block

\n\n\n\n

Following the instructions for the testing round netted fairly consistent results between the editor and front end. Each step walks participants through the process of assembling a two-column page with posts from separate categories. Within just a few minutes, I built a few demo posts with custom categories named “Veggie Garden” and “Fruit Trees” (side note: these are pics of my plants). I sped through the process with no issues.

\n\n\n\nUsing Columns to output two category-based Query blocks.\n\n\n\n

However, I am a bit of a pro at this point with the Query block. It is one feature I have been eyeing at least every week for months.

\n\n\n\n

The two primary issues I ran into were with the “read more” link and spacing. For the more-link, it simply did not appear on the front end. When viewing the source code, the wrapper HTML was there, but the actual text was nowhere to be found.

\n\n\n\n

As for spacing, this is more of a theme problem. I have harped on this issue in past testing rounds, and it is the same ol’ tune. TT1 Blocks failed to produce consistent spacing between the front and back end. One example is when using the Post Featured Image block followed by the Post Excerpt block. In the editor, there is little whitespace between the two. On the front end, there is ample room.

\n\n\n\n

Some might say it is the most vital part of page building — nailing down the layout. I have voiced my concerns ad nauseam on spacing, so I have nothing new to report on the subject.

\n\n\n\n

I decided to take a few extra steps and move beyond the basic testing instructions. Because it is springtime, I have been enjoying the outdoors a bit more as of late. I wanted to spruce up my Query block design. I wrapped the initial design in a Cover block with a garden-related background image, dropped in some header and intro text, and created boxes for my posts with the Group block. With a splash of color, some font-size changes, and a Spacer block here and there, I built something with a tiny bit more personality.

\n\n\n\nCustom layout with the Query, Cover, and Columns blocks.\n\n\n\n

Testing never has to be boring. I encourage participants to grab inspiration from their own lives as they venture out on their Query Quest.

\n\n\n\n

While I have my complaints about the site editor and realize we are miles away from the long-term vision, it is also amazing what is now possible. Even six months ago, building something as simple as this was not happening. More and more each day, I believe a public beta of the site editor and other FSE components in WordPress 5.8 is not such a bad idea.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 22:38:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"BuddyPress: BuddyPress 7.3.0 Maintenance & Security Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318066\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://buddypress.org/2021/04/buddypress-7-3-0-maintenance-security-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1768:\"

BuddyPress 7.3.0 is now available. This is a security and maintenance release. All BuddyPress installations are strongly encouraged to upgrade as soon as possible.

\n\n\n\n

The 7.3.0 release addresses four security issues:

\n\n\n\n
  • A vulnerability was fixed that could allow a member to create a group on behalf of another member via a REST API endpoint.
  • A vulnerability was fixed that could allow members to favorite any private/hidden activities they shouldn’t access to via a REST API endpoint.
  • A vulnerability was fixed that could allow the creator of a group to still be able to update or delete it after being demoted as a regular member of it via a REST API endpoint.
  • A vulnerability was fixed that could allow group’s banned members to remove themselves from the group and still be able to join it or request a membership to it via a REST API endpoint.
\n\n\n\n

These vulnerabilities were reported privately to the BuddyPress team by Kien Hoang, in accordance with WordPress’s security policies. Our thanks to the reporter for practicing coordinated disclosure.

\n\n\n\n

Version 7.3.0 also fixes a bug about our WP CLI Scaffold command.

\n\n\n\n

For complete details, visit the 7.3.0 changelog.

\n\n\n\n

Update to BuddyPress 7.3.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 05:09:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WPTavern: WordCamp Europe 2021 Opens Call for Speakers and Workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/wordcamp-europe-2021-opens-call-for-speakers-and-workshops?utm_source=rss&utm_medium=rss&utm_campaign=wordcamp-europe-2021-opens-call-for-speakers-and-workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1836:\"

WordCamp Europe 2021 will be taking place online, June 7-10. This will be the second year in a row that the event has not been held in person due to the pandemic, but organizers are incorporating feedback from the first edition to improve upon it.

\n\n\n\n

Speaker applications are now open and first-time speakers are encouraged to apply. Organizers posted a list of example topics for inspiration, including advanced development, frameworks, security, storytelling, website performance optimization, and more.

\n\n\n\n

WCEU 2021 will be running two tracks, with two different presentation formats: long talks (20-minute talk with a 10-minute Q&A) and lightning talks (10-minute talk with a 5-minute Q&A). Prospective speakers are allowed to submit up to three different presentation topics on their applications. The call for speakers is open until April 24, 2021, and selected speakers will be contacted the first week of May ahead of mid-May public announcements.

\n\n\n\n

WCEU organizers also plan to continue the successful tradition of hosting workshops after 77% of attendees who completed a feedback survey requested their return. Workshop sessions will be 45 minutes long and hosts will have workshop assistants available to them. Organizers are aiming to schedule a diverse lineup of workshops with topics like “Starting with WordPress,” accessibility, development, security, and SEO, to name a few.

\n\n\n\n

The call for workshops is on the same timeline as speaker selection, with a closing date of April 24, 2021.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:40:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:172:\"HeroPress: A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3529\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:152:\"https://heropress.com/essays/a-journey-toward-freedom-with-wordpress/#utm_source=rss&utm_medium=rss&utm_campaign=a-journey-toward-freedom-with-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:46477:\"\"Pull

यो लेख नेपाली भाषामा पनि उपलब्ध छ।

\n

Hello world!

\n

“Always be thankful for what you have, many people have nothing!” – Buddha

\n

Yes, I’m immensely grateful to be writing this essay! I’m fortunate to have had the education that gave me the capacity to aspire, get into a WordPress job, meet people from around the world, connect with Topher of HeroPress, and tell my story!

\n

How I Landed Into a WordPress Job

\n

My WordPress journey began by chance! Honestly, I didn’t know WordPress until I landed on a WordPress job.

\n

Back then, I was doing my Master’s degree in Sociology and had just left my work as a school teacher. I was looking for a job that would allow me to focus on my study and pay me a decent salary.

\n

I had a long career of over 5 years in teaching which was a full-time job. In addition to 9 AM to 5 PM work, we had to work extra hours at home – designing lesson plans, evaluating assignment works, exams, etc. – so I was finding it hard to manage time for my own study. I just needed a job that wouldn’t require me to work after office hours.

\n

After applying to several different positions, I finally got a content writing job. Fortunately, the company turned out to be a successful WordPress development company based in Nepal (Access Keys).

\n

Well, it’s how my WordPress story began! But it’s not the full story.

\n

For Hope! My Family’s Struggle for Education

\n

I come from a remote village in the hills of Nepal, not connected by any means of transportation until recently. We had to walk a minimum of an hour to go to the nearest school, from where I completed my secondary education.

\n

But that time wasn’t just about walking hours to reach school. It was also about poverty, hardships, and the burning desire to overcome them someday!

\n

Schools were first opened in the late 1970s in our village but my parents couldn’t even complete the lower secondary level. Pervasive poverty and lack of awareness both were responsible for it.

\n

Time passed but our family’s financial condition was still the same. But my parents had understood that the only way out of it was education. Hence, they decided to send us to school, no matter what. Our father sometimes as a seasonal migrant worker to India, sometimes as a porter, brought us (me and my siblings) school supplies. Our mother worked day and night, managed home, family, and our farm.

\n

After completing secondary level education, I moved to a nearby city in the guardianship of my aunt. With minimal financial support from my parents, my aunt helped me complete higher secondary school.

\n

However, she had her own hardships. She was a single mother without any academic degree so had to work minimum-wage jobs which hardly met her and her family’s needs.

\n

Therefore, I couldn’t simply add to her burden. And on the other side, my parents had to support my younger siblings too. So, the only choice I had, if I wanted to study further, was to support myself, for which I started teaching in a school.

\n

Breakthrough through English Language Skills

\n

I got my life’s first job but it wasn’t easy. I joined a private English-medium school as a teacher. But my schooling as well as the undergraduate program had been in our national language, Nepali, and not in English. We had “English” as a subject in school but the teacher taught us English in the Nepali language. We never spoke in English. Yet, my English writing was fine as I was a good student.

\n

When I joined an English medium school as a teacher, I had no choice but to improve my English. I practiced speaking English with primary-level students. Within a year, my spoken English improved considerably.

\n

Along with my teaching job, I continued my college. It was a super-busy schedule but was the only option I had! With my earnings, I paid my college fees, covered some of my living expenses, and also supported my family. Well, this is how I completed my Bachelor’s degree and started my Master’s degree too.

\n

Later on, the same teaching job that I started to sustain myself enabled me to apply for an English content writing job! As of now, I’m quite confident about my English language skills but still feel hesitant when I have to talk with native speakers.

\n

My WordPress Journey – Toward Freedom

\n

As I stated earlier, I landed on my first WordPress job when I was looking for the type of job that would allow me free time for my study. Yes, and that’s from where my journey toward freedom began!

\n

During my interview, I explained to the CEO of Access Keys (Arjun Singh Thakuri) about the flexibility that I need in my new job so that I could also focus well on my studies. I was hired and could join from 11 AM instead of the usual 9:30 AM after attending my classes in the morning. It was a moment of gratitude and great relief for me!

\n

I learnt WordPress at Access Keys. First, by reading Wikipedia and other blogs on the web. Second, from Arjun sir as well as from the senior developers and the designers at the company. I used to have a lot of questions, and my team at Access Keys helped me get answers to those questions. Third, by doing. I set up a WordPress.com blog, a testing site on localhost, and tried different options.

\n

My curiosity was definitely the driving force, but above all, ‘the way WordPress is built’ is what made it possible for someone like me (with no technical background) to understand a powerful website creation software, WordPress.

\n

As for content writing skills, I started with list articles (theme collections). Arjun sir mentored me for my first few articles. Later, Access Keys hired an experienced SEO professional Amin Ghale who taught me more about SEO and content writing. He is a mentor cum brother to me.

\n

When in Access Keys, I joined WordCamp for the first time – WordCamp Nepal 2015. The event was grand! I met people involved in WordPress from other companies in Nepal and abroad, heard their stories, and learnt about new innovations in WordPress!

\n

I was truly enthralled by the event and had truly wished to give a presentation in a WordCamp someday. And I did, the very next year! I shared what I had learnt so far on the title ‘SEO Copywriting for WordPress’ at WordCamp Kathmandu 2016.

\n

Later, I also joined a panel ‘Girls in WordPress – Story, Experience, Opportunity, and Career’ in WordCamp Biratnagar 2018 along with a dear friend Ganga Kafle and my WordPress sister Prithu Singh Thakuri. Now, looking forward to joining some international WordCamps!

\n\n\"Speaking\n\"Sunita\n\"\"\n\"A\n\n

About my WordPress career, I’m still in WordPress content writing.

\n

After Access Keys, I went to ThemeGrill, another successful WordPress business in Nepal, with even more flexibility and freedom in the working hours.  Sanjip Shah and Rabin Shrestha (Founders of ThemeGrill) encouraged me to learn and explore this field even more. After some time, ThemeGrill hired a few new writers and I started mentoring them.

\n

Next, I joined Awesome Motive, the company behind the popular WPBeginner blog. In the beginning, I wrote for IsItWP and MonsterInsights blog but later also got the opportunity to write for WPBeginner. When at Awesome Motive, I got an even better opportunity to learn WordPress and marketing skills.

\n

My supervisors Shahzad Saeed from India, Noumaan Yaqoob from Pakistan, Lauren Tharp, and Keri Lynn Engel from the United States helped me be better at my work. Above all, I was super lucky to have Syed Balkhi himself tutoring me every week on various aspects of content writing and marketing. I still remember how he explained the “success gap” over multiple calls, over weeks. He’s really a wonderful mentor!

\n

As of now, I work with beginners who’re just starting their careers in WordPress content writing. I’m trying to help small WordPress businesses and blogs with the marketing skills I’ve acquired so far. For example, SiteSaga.com, ZakraTheme.com are some of the sites I’m currently working on. Yet, I feel there’s a lot more for me to learn!

\n

Now, I want to make my final and important point – freedom!

\n

First, my WordPress job allowed me the freedom to work on my time (so I could manage time for my study too). But more importantly, I meant the ‘economic freedom’.

\n

For an individual, economic independence is a major freedom factor! Income isn’t everything, but definitely a basic aspect of human development!

\n

My salary at my first WordPress job wasn’t high, but increments since then are cool! Plus, we can always do some extra work. For instance, after my talk at WordCamp, I got a lot of freelance work opportunities, which I did during my free time and earned some extra bucks. Then, I was able to support my family even better.

\n

Finally, it’s the ‘feeling of freedom’ that, I have now, enabled me to share this story. I always had an ‘inferiority complex’ due to which I could never tell anyone about my family or our socio-economic background. Even if someone asked, I’d simply avoid the question or lie to them.

\n

I’ve now overcome the situation as well as the fear of being judged. And, I believe it’s the ‘freedom’ in its truest sense.

\n

That’s my story of freedom! Story of our freedom!

\n

Now is Great! I Have Greater Aspiration for the Future!

\n

Yes, now is great! I have a good career as a WordPress content writer, editor, and mentor. I also joined the MPhil degree and will soon complete it.

\n

For the future, have greater aspirations!

\n
    \n
  1. I hope to continue doing what I do – teaching beginners copywriting skills and help them achieve their part of freedom. WordPress is a gift for people like me!
  2. \n
  3. I want to earn a Doctorate degree; not yet content being a student! I haven’t planned it yet but I really wish to do it in this life!
  4. \n
  5. I want to give back to my community. Our village hasn’t changed much – still struggling with poverty. Even today, most students from my village fail to complete their university degree in lack of a support system. I firmly believe education is vital to change; for individuals as well as society as a whole. So, I really wish to work on it but I’m not yet sure how! I hope time will answer!
  6. \n
\n

Thanks for reading my story! Thanks, dear friend Topher for this opportunity! It’s a privilege to be sharing my story on HeroPress (feeling like a hero!). :D

\n

Thank you to every single individual who supported my journey to this date! And, thanks to the universe for everything I have!

\n
\n

वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा

\n

नमस्कार संसार!

\n

तपाईंसँग जे छ त्यसैमा सदैव कृतग्य रहनु, किनकी धेरै मानिसहरू संग केहि पनि हुन्न। – बुद्ध

\n

हो, म यो लेख लेख्दै गर्दा एकदमै खुसी र आभारि छु। म आफुलाई एकदमै भाग्यमानी ठान्दछु कि मैले जस्तोसुकै परिस्थितिमा पनि शिक्षा आर्जन गर्न पाए जसले मलाई सपना देख्न प्रेरित गर्यो, वर्डप्रेसमा काम गर्न सक्षम बनायो, संसारभरिका मानिससंग भेटघाट गर्ने अवसर दिलायो, हिरोप्रेसका टोफर संग भेत्न र मेरो कथा सबैसंग बाड्ने अवसर दिलायो।

\n

मेरो वर्डप्रेस यात्राको शुरुवात

\n

मेरो वर्डप्रेस यात्रा संयोगवश सुरु भएको हो। साच्चिकै भन्नुपर्दा मैले काम गर्न सुरु गर्नु भन्दा अगाडी मलाई वर्डप्रेसको बारेमा केही पनि थाहा थिएन।

\n

त्यो समयमा म समाजशास्त्र बिषयमा मास्टर डिग्री गरिरहेकी थिएँ। समयको अभावले गर्दा भर्खरै विद्यालय शिक्षण पेशाको काम पनि छोडेको थिएं। त्यसैले म यस्तो कामको खोजीमा थिए जुन बाट राम्रो तलब र मेरो पढाईको लागि केहि समय पनि बच्न सक्थ्यो।

\n

मैले शिक्षण पेशामा लगभग ५ बर्ष सम्म काम गरें। ती दिनहरुमा म विहान ९ बजेदेखि दिउँसो ५ बजे सम्म स्कुल पढाउथे । अनि फेरि राति अर्को दिनको कक्षाका लागि तयारी र गृहकार्य जाँच गर्दा गर्दै ठिक्क हुन्थ्यो। जसले गर्दा मलाई आफ्नो पढाई सम्हाल्न गाह्रो भइरहेको थियो। त्यसैले मलाई खासगरि अफिस समयपश्चात अरु थप काम गर्नु नपर्ने खालको काम चाहिएको थियो।

\n

धेरै खालको जागिरहरूमा आवेदन दिएपश्चात बल्ल कन्टेन्ट राइटिङ्ग (इन्टरनेटको लागि लेख लेखन) को जागिर पाए। भाग्यवश मैले काम पाएको कम्पनी वर्डप्रेस विकासको क्षेत्रमा नेपालको एक सफल कम्पनी रहेछ (एक्सेस किइज)।

\n

हो यसरी नै मेरो वर्डप्रेसको यात्रा सुरु भयो, तर यो नै सम्पुर्ण कथा भने हैन।

\n

शिक्षाको लागि मेरो परिवारको संघर्ष र आशा

\n

नेपाल को पहाडी भेगमा अवस्थित एउटा गाउँमा मेरो जन्म भएको हो जहाँ आवतजावत गर्नलाई अझैसम्मपनि भरपर्दो सडक अनि गाडीहरूको ब्यबस्था भएको छैन। हाम्रो घरबाट नजिकैको विद्यालय नै १ घण्टा को बाटो हिडेर पुग्नुपर्थ्यो र त्यहि विद्यालय बाट मैले कक्षा १० सम्म को अध्ययन पुरा गरें।

\n

तर हाम्रो गाउँको त्यो समय घन्टौ हिड्नुपर्ने दुखका बारेमा मात्र थिएन। सर्वत्र ब्याप्त गरिवी, खानलाउनको लागि कठिन संघर्ष, र यि तमाम दुखबाट कुनै दिन मुक्त हुने प्रबल आकङ्क्षाको पनि समय थियो।

\n

हाम्रो गाउँमा विद्यालय सन १९७० को दशक अन्त्य तिर खुले तर मेरो आमाबाबुले भने गरिवी र अशिक्षाको कारण निम्न माध्यमिक तहको शिक्षा सम्म पनि पुरा गर्न सक्नुभएन। समय बित्यो, हामि बिद्यालय जान थाल्यौ तर पनि हाम्रो परिवारको आर्थिक अवस्थामा भने कुनै सुधार आएको थिएन। तरपनि मेरा बुबाआमाले भने शिक्षाको महत्व बुझिसक्नु भएको थियो। त्यसैले उहाहरुले जस्तो सुकै अप्ठ्यारो परिस्थिति भए पनि हामी लाई विद्यालय पठाउने निधो गर्नुभयो।

\n

आपा (राई बान्तावा भाषामा बुबा) कहिले भारततिर मौसमी कामदार को रूपमा त कहिले भरियाको रूपमा काम गर्न जानुहुन्थ्यो। अनि फर्केर आउँदा म र मेरो बहिनीहरू लाई किताब कापी र स्कुलको कपडा हरू ल्याइदिनु हुन्थ्यो। हाम्रो आमा भने रातदिन आफैं खटेर घरपरिवार, खेतिपाती र गाइबस्तु सम्हाल्नु हुन्थो।

\n

गाउँकै बिध्यालय बाट माध्यमिक तह उत्तीर्ण गरीसके पछि म नजिकै को सहरमा फुपुसंग बस्दै पढ्न थालें। मेरो फुपुले मलाई उच्च शिक्षा हासिल गर्नमा धेरै मद्दत गर्नुभएको छ।

\n

तर त्यो बेला उहाँको लागि पनि कठिन समय थियो। कुनै पनि शैक्षिक डिग्रि नभएको एक एकल महिलाका लागि सहरमा आफु अनि आफ्नो सन्तानलाइ पाल्नु, हुर्काउनु, पढाउनु सानो दुख थिएन। उहाँले दिनभर ज्याला मजदुरि गरेर कमाएको पैसाले बिहानबेलुका को छाक टार्न मै ठिक्क हुन्थ्यो।

\n

त्यसैले म आफैंपनि उहाँमाथि अझ भार थपिन चाहन्नथे। फेरि अर्को तर्फ मेरो बाबाआमा ले पनि त अरु साना बहिनीहरू लाई हेर्नुपर्थ्यो। अब भने मसंग आफ्नो उच्च शिक्षालाइ निरन्तरता दिनको लागि एउटै मात्र बिकल्प थियो – आफैले कमाएर पढ्ने। यसैकारण मैले एउटा विद्यालयमा पढाउन शुरु गरें।

\n

अङ्ग्रेजी भाषाको ज्ञानमार्फत उडान आरम्भ

\n

मैले मेरो जीवनको पहिलो जागिर त पाए तर त्यो सोचेजस्तो सजिलो थिएन। मैले शिक्षक को रूपमा एक निजी विद्यालयमा प्रबेश गरे। तर म आफैले भने सरकारी विद्यालयमा पढेको थिए जहाँ नेपाली भाषामा पढाई हुन्थ्यो। हाम्रो कक्षामा अङ्ग्रेजी एउटा मात्र अनिवार्य विषय थियो तर त्यो पनि शिक्षकहरु ले नेपाली भाषामा नै पढाउनु हुन्थ्यो। हामीले कहिल्यै पनि अङ्ग्रेजी भाषा बोलेनौं। यधपी म राम्रो बिध्यार्थीहरु मध्यको एक थिए, जसकारण मेरो अङ्ग्रेजी लेखन भने सामान्यतया राम्रो नै थियो।

\n

मैले अङ्ग्रेजी शिक्षकको रूपमा पढाउन थालिसके पछि भने मसंग अङ्ग्रेजी सुधार्नु भन्दा अरू कुनै उपाए थिएन। त्यसैले मैले प्राथमिक तहका बिध्यार्थीहरूसँग अङ्ग्रेजीमा बोल्न सुरु गरें। फलस्वरूप एकवर्ष भित्र मेरो अङ्ग्रेजी बोलाईमा धेरै सुधार आयो।

\n

शिक्षण पेशासंगै मैले मेरो पढाईलाई पनि अगाडि बढाउदै लगें। त्यो बेला मेरो दैनिकि धेरै नै व्यस्त थियो, तर फेरि अर्को विकल्प पनि त थिएन। मेरो तलबले आफ्नो पढाई खर्च जुटाउँदै अलिअलि परिवार लाई पनि सहयोग गर्न थाले। हो यसरी नै मैले ब्याचलर डिग्री पुरा गरें र मास्टर डिग्री पनि शुरु गरें।

\n

मैले आफ्नो आवश्यकता पुर्ति गर्नको लागि सुरु गरेको शिक्षण पेशाले नै मलाई अङ्ग्रेजी कन्टेन्ट राइटिङ्गको जागिरमा आवेदन दिने साहस दियो। अहिलेको कु्रा गर्ने हो भने, म मेरो अङ्ग्रेजी भाषाको बोलाई र लेखाईसंग केही हदसम्म विश्वस्त छु तर अझै पनि अङ्ग्रेजी नै मातृभाषा भएका बिदेशिहरुका अगाडि बोल्न भने केहि हिच्किचाउछु।

\n

मेरो वर्डप्रेस यात्राः स्वतन्त्रता तिर

\n

मैले अगाडि नै भनेको जस्तै मेरो पढाईलाई हानी नगर्ने खालको काम खोज्दै गर्दा संयोगवश वर्डप्रेसमा प्रवेश गरेको थिएँ। र यहि बाट नै मेरो स्वतन्त्रता तिर को यात्रा सुरु भएको हो।

\n

मैले कामको लागि अन्तर्वार्ता दिँदै गर्दा नै एक्सेस किइज कम्पनीको प्रमुख (अर्जुन सिंह ठकुरी) संग आफ्नो पढाईको लागि चाहिने समयको बारेमा पनि कुरा गरेको थिएँ। उहाँले सजिलैसंग सहमति जनाउनु भयो। फलस्वरूप मैले आफ्नो बिहान को कलेज सकेर ११ बजेदेखि कार्यालय जाने भए जबकि अफिस समय भने ९ः३० बजे नै शुरु हुन्थ्यो। त्यो पल मेरो लागि कृतज्ञता र ठूलो राहतको क्षण थियो।

\n

एक्सेस किइज कम्पनीमा काम गर्दा नै मैले वर्डप्रेस सिके। पहिलो, विकिपीडिया र अन्य ब्लग हरूलाई धेरै पढे। दोस्रो, नजानेको सानासाना कुराहरू अर्जुन सर र अरू अनुभबी कर्मचारी (डेभलपर, डिजाइनर) हरु संग सोध्थे। र उहाँ हरूले पनि धेरै सहयोग गर्नुहुन्थ्यो। तेस्रो, मैले आफैले वर्डप्रेस डटकम ब्लग स्थापना गरें, परिक्षणका लागि वेबसाइट बनाए र त्यहाँ हरेक कुरा जान्ने र बुझ्ने कोशिस गरे।

\n

अवश्य पनि मेरो जिज्ञासु भावना नै मलाई अगाडि बढाउने शक्ती थियो। यधपी म जस्तो प्राविधिक पृष्ठभूमि नभएको ब्यक्तिलाई वेबसाइट बनाउन सक्ने शक्तिशाली सफ्टवेयर, वर्डप्रेस को बारेमा बुझाउनमा भने वर्डप्रेस आफै सरल हुनु र इन्टरनेटमा प्रशस्ट सामग्रि पाइनुको ठूलो भुमिका छ।

\n

मैले कन्टेन्ट राइटिङ्ग गर्ने क्रमको शुरुवात भने वर्डप्रेस थिमको सुचि बनाउने लेखहरुबाट गरें। सुरूको लेखहरूमा अर्जुन सर नै मेरो सल्लाहकारको रूपमा रहनु भयो। पछि एक्सेस किइज कम्पनीले अनुभबी एसईओ विज्ञ अमिन घले लाइ नियुक्ति गर्यो र उहाँले नै मलाई धेरै कुराहरु सिकाउनुभयो। उहा मेरो गुरुका साथै दाई पनि हुनुहुन्छ।

\n

म एक्सेस किइज कम्पनीमा काम गरिरहेकै बखत पहिलो पटक “वर्डक्याम्प नेपाल २०१५“ मा सहभागी भए। यो कार्यक्रम भव्य थियो। मैले त्यहाँ वर्डप्रेसमा काम गर्ने नेपालका तथा अन्य देशबाट आएका ब्यक्तिहरुसंग भेटें, उनीहरूको कथा सुने र वर्डप्रेसको बारेमा अझ नयाँनयाँ कुराहरु थाहा पाए।

\n

म त्यो कार्यक्रमबाट धेरै नै प्रभावित भए र त्यतिबेलानै कुनै दिन वर्डक्याम्पमा वक्तव्य दिने अठोट गरे। नभन्दै मैले अर्को सालको “वर्डक्याम्प काठमान्डु २०१६“ मा वक्ता को रूपमा सहभागी भए र “वर्डप्रेसको लागि एसइओ कपिराईटिङ“ शिर्षक मा वक्तव्य दिए।

\n

पछि फेरि बिराटनगर मा आयोजना भएको “वर्डक्याम्प बिराटनगर २०१८“ मा पनि सहभागी भए। यसमा म, साथी गंगा काफ्ले र प्यारी बहिनी प्रिठु शिंह थकुरीले “वर्डप्रेसमा केटीहरुः अनुभव, कथा, अवसर, र चुनौती“ शिर्षक मा छलफल गरेका थियौ। अब भने, मलाई अरु अन्तर्राष्ट्रिय वर्डक्याम्प हरूमा सहभागी हुन मन छ।

\n\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\n

म अझै पनि वर्डप्रेस कन्टेन्ट राइटिङ्ग नै गर्छु।

\n

मैले एक्सेस किइजमा काम गरिसके पछि नेपालको अर्को सफल कम्पनी थिमग्रिलमा प्रवेश गरे। त्यहाँ अझै धेरै काममा सौलियत र समयमा लचकता थियो। थिमग्रिल कम्पनी का संस्थापक-सन्चालक द्वय सन्जिप शाहरबिन श्रेष्ठ सरले झन धेरै कुरा सिक्ने हौसला दिनुभयो। केही समय पछाडि कम्पनी ले नयाँनयाँ लेखकहरु ल्यायो र मैले उनीहरूलाई सिकाउन थाले।

\n

पछि मैले अमेरिकामा अवस्थित अवसम मोटिभ कम्पनीमा पनि काम गरें। सुरु सुरुमा “इजइटडब्लुपि“ र “मन्स्टरइनसाइट्स“ ब्लगमा लेखे र पछि “डब्लुपिबिगिनर“ मा पनि लेख्ने मौका पाएं। म यसै कम्पनीमा काम गरिरहेकै बेला वर्डप्रेस र मार्केटिङ सम्बन्धि अझ धेरै कुरा जान्ने मौका पाए।

\n

मेरो काममा सुधार आउनुमा मुख्यतया मेरो निरिक्षक साहजाद सइद (भारतबाट), नवमान याकुब (पाकिस्तानबाट), लउरेन थार्पकेरि लिन एन्जेल (अमेरिकाबाट) को धेरै ठूलो भुमिका छ। यतिमात्र हैन कम्पनीको प्रमुख शाइद बाल्खि संग काम गर्न पाउनु पनि मेरो लागि भाग्यको कुरा थियो। उहाँले मलाई प्रत्येक हप्ता कन्टेन्ट राइटिङ्ग को बारेमा बिस्तृत रुपमा सिकाउनु हुन्थ्यो। मलाई अझै याद छ उहाँले थुप्रै पटकको संवादमा “सफलताको अन्तर” को बारेमा सिकाउनु भएको थियो। उहाँ साच्चिकै राम्रो प्रशिक्षक सल्लाहकार हुनुहुन्छ।

\n

अब अहिलेको कुरा! हाल म वर्डप्रेस लेख लेखन क्षेत्रमा भर्खर आउदै गरेका ब्यक्तिहरु संग काम गर्छु। मैले अहिलेसम्म बटुलेको अनुभवहरु को माध्यमबाट साना वर्डप्रेस विजिनेश र ब्लग लाई सहयोग गर्न खोजिरहेको छु। जस्तो कि म अहिले “साइटसागा डटकम“ र “जाक्राथिम डटकम“ मा कार्यरत छु। यधपि मेरो आफ्नै सिक्ने क्रम भने सदैब जारि नै छ।

\n

अब भने म आफुलाइ लागेको सबभन्दा महत्वपुर्ण कुरा भन्न चाहान्छ। यो क्षेत्रमा मैले पाएको सबभन्दा महत्वपूर्ण कुरा भनेको “स्वतन्त्रता“ हो।

\n

सर्वप्रथम त मेरो वर्डप्रेसको कामले मलाई समयको स्वतन्त्रता दिलायो। मेरो मतलब यो काम म आफुले भ्याएको समयमा गर्न सक्थे जसले गर्दा मेरो आफ्नै पढाईको लागि समय छुटाउन पाए। अनि दोस्रो कुरा भनेको “आर्थिक स्वतन्त्रता“।

\n

आर्थिक आत्मनिर्भरता प्रत्येक व्यक्तिकालागि स्वतन्त्रता प्राप्तिको एक प्रमुख आधार हो। आम्दानी नै सबै कुरा हो भन्ने त होइन तर यो मानव विकासको एक आधारभुत पक्ष भने अवश्य पनि हो।

\n

वर्डप्रेसमा मेरो शुरुको तलब ठिकै मात्र थियो तर यसको वृद्धि क्रमशः राम्रो हुदै गयो। उदाहरणका लागि, मैले वर्डक्याम्पमा वक्तव्य दिइसकेपछि भने मलाई अरू पनि धेरै फ्रिल्यान्सिङ्ग काम गर्ने अवसरहरू पाए जुन काम मैले खालि समयमा गर्थे र केही थप पैसा पनि कमाए। त्यसपछि मैले मेरो परिवारलाई पनि राम्ररि सहयोग गर्न थाले।

\n

अबभने, म स्वतन्त्रता बारे अन्तिम कुरा भन्न चाहान्छु। मलाइ लाग्छ यो स्वतन्त्रताको अनुभुति नै त हो जसले मलाइ यो लेख लेख्न सक्षम बनायो। किनभने मलाइ जहिल्यै पनि लघुताबासले थिचिरहन्थ्यो र आफ्नो परिवार अनि आफ्नो सामाजिक-आर्थिक अवस्थाबारे कसैलाइ पनि भन्न सक्दिनथे या चाहान्नथे। यदि कसैले सोधिहाले पनि, म त्यो प्रश्नलाइ बेवास्ता गर्थे वा ढाटेर जवाफ दिन्थे।

\n

अहिलेको सन्दर्भको कुरा गर्दा, मैले त्यो परिस्थिति र अरुले के सोच्छन भन्ने डर दुबैमाथि जित हासिल गरेझै लाग्छ। र मलाइ यो नै साचो अर्थमा ‘स्वतन्त्रता’ हो जस्तो लाग्छ।

\n

यही हो मेरो स्वतन्त्रता को कथा! हाम्रो स्वतन्त्रता को कथा!

\n

आज राम्रो छ र मसँग अझै ठुला आकांक्षाहरु छन् भविष्यको लागि!

\n

हो, मेरो वर्तमान राम्रो छ! वर्डप्रेस कन्टेन्ट राइटर, एडिटर, र सल्लाहाकार रूपमा मेरो करियर राम्रो छ। म एमफिल डिग्री पनि गर्दैछु र छिट्टै पुरा पनि गर्नेछु।

\n

तर अझपनि भविष्यको लागि मेरा धेरै ठुला आकांक्षाहरु छन्!

\n
    \n
  1. म जे गरिरहेको छु त्यसैलाई निरन्तरता दिन चाहन्छु – नयाँ लेखकहरुलाई कपिराइटिङ्गको सिप सिकाउदै स्वतन्त्रता को अनुभुति दिलाउन। म जस्तो मान्छेहरू को लागि वर्डप्रेस एक अमुल्य उपहार हो।
  2. \n
  3. म कुनैदिन विद्यावारिधि गर्न चाहन्छु। यसको लागि यतिबेला भने कुनै योजना बनाएको छैन तर जसरी पनि यसै जुनिमा पुरा गर्ने इच्छा छ।
  4. \n
  5. म मेरो समुदायलाई सहयोग गर्न चाहन्छु। हाम्रो गाउँमा अझै पनि धेरै परिवर्तन आएको छैन – गरिबीको अवस्था यथावत् नै छ। राम्रो सहयोग प्रणालीको अभावमा अहिले पनि मेरो गाउँका धेरै जसो विद्यार्थीहरु स्नातक तह सम्मको अध्ययन पुरा गर्न सम्म असमर्थ छन्। मलाइ चै ब्यक्ति र समाज सबैको परिवर्तन को लागि शिक्षा एक्दमै महत्वपुर्ण हुन्छ भन्ने कुरामा दृढ विश्वास छ। त्यसैले म यो क्षेत्रमा काम गर्न चाहन्छु, तर कसरी गर्ने भन्ने कुरा भने थाहा छैन! मलाई आशा छ, समयले मेरो प्रश्नको जवाफ अवश्य दिनेछ!
  6. \n
\n

मेरो कथा पढ्नुभएको यहाँहरु सबैलाई धन्यवाद! मुख्यतः मलाई यो अवसर दिने साथी टोफर लाई धेरै धेरै धन्यवाद! हिरोप्रेसमा मेरो कथा सुनाउन पाउँदा म धेरै नै खुसि छु (आफुलाइ हिरो जस्तै महसुस गरिरहेकोछु)।

\n

मलाई यो स्थान सम्म पुग्न मद्दत गर्ने सम्पूर्ण व्याक्तीहरूलाई धेरै धेरै धन्यवाद! मैले पाएका सम्पूर्ण चिजहरुको लागि ब्रह्माण्ड लाई धन्यवाद!

\n

The post A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:24:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:10:\"Sunita Rai\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WPTavern: Yet Another WordPress Block Library Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115095\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:149:\"https://wptavern.com/yet-another-wordpress-block-library-plugin?utm_source=rss&utm_medium=rss&utm_campaign=yet-another-wordpress-block-library-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4107:\"

You are the team manager at a WordPress development company. You just spent the last couple of months directing the group of highly skilled developers that you oversee to create the latest and greatest block library for WordPress. Your developers just spent those two months recreating what has already been done at least a couple of dozen times.

\n\n\n\n

You go through your product launch list:

\n\n\n\n

Testimonial block? Check.

\n\n\n\n

Accordion block? Check.

\n\n\n\n

Countdown block? Check.

\n\n\n\n

Meme-creation block? Coming in version 2.0.

\n\n\n\n

Everything seems to be in order. Your company has a new and shiny wheel, a bullet point on its product list, and a promise to end-users that you are keeping up with the times, launching a set of blocks that they can pick up literally anywhere else. But, yours is better because you built it in-house.

\n\n\n\n

Color me unimpressed.

\n\n\n\n

Maybe you are just trying to make a dent in the market, grabbing your share of the pie that companies have been snacking on for the last couple of years. Every time I see another forms plugin, I wonder how they will remain competitive, but there have been success stories. However, the ones who tell those stories always had a fresh take on an old concept.

\n\n\n\n

I worry about the upcoming years when the block market is simply a race to the bottom. Everyone has built their plugin with 100+ blocks, 500+ patterns, and more customization options than you can count. It is the story of the early ThemeForest days where premium themes amassed a gluttonous amount of theme options. The top sellers were continually one-upping each other with another notch on their feature lists.

\n\n\n\n

As a user, developer, and journalist who writes about these products, I am often lost. I look at a new plugin and ask myself if I had already checked it out and dismissed it last week. I am always searching for something innovative, but the lines between one project to the next are blurry. I am swirling in a sea of icon, shape divider, post list, and container blocks — just looking for a life preserver to pull myself out.

\n\n\n\n

Don’t get me wrong. I am a wheel recreator myself. I have built products that others had already created. In some cases, I launched something better. In others, I failed miserably. I may be a little biased, but I always felt like I was bringing something new to the table. And that is where I take issue.

\n\n\n\n

I want to see you create a block that no one has ever done before, such as drawing digital sheet music or a side-scrolling T-Rex game.

\n\n\n\n

I want to see you extend the editor with new tools like inserting Emoji or Font Awesome icons into Rich Text.

\n\n\n\n

I want to see you overhaul the editor and create a Markdown-friendly experience.

\n\n\n\n

Instead of an “advanced” list block of your own design, create a plugin that extends the core List block with custom options. Skip that custom gallery. Bring something new to the existing Gallery block. Got a custom music player? Use it to overhaul the Audio block instead of wrapping it up separately.

\n\n\n\n

The community has all the tabs, buttons, and progress bars it can handle. Of course, if you are raising the bar on all of these same ol’ blocks, keep pushing forward. Let’s see what you can do. Otherwise, keep thinking outside of the box.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 20:34:08 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9022:\"

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n

Embrace Who You Are and Your Journey

\n\n\n\n

In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

\n\n\n\n

Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

\n\n\n\n\"Tyler\n\n\n\n

An Entrepreneurial Mindset

\n\n\n\n

Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

\n\n\n\n

While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

\n\n\n\n

He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

\n\n\n\n

Using your skills to uncover your journey

\n\n\n\n\"Tyler\n\n\n\n

Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

\n\n\n\n

These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

\n\n\n\n

In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

\n\n\n\n

Relationship-building as a career

\n\n\n\n

Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

\n\n\n\n

When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

\n\n\n\n

Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

\n\n\n\n

The true meaning of freedom

\n\n\n\n

In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

\n\n\n\n

Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

\n\n\n\n

He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

\n\n\n\n

There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

\n\n\n\n

Going forward positively 

\n\n\n\n\"Tyler\n\n\n\n

The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

\n\n\n\n

He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

\n\n\n\n

I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

\n\n\n\n

Now, he’s able to put those skills to good use in the WordPress community and beyond. 

\n\n\n\n

He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

\n\n\n\n

Contributors

\n\n\n\n

Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

\n\n\n\n

Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

\n\n\n\n\"HeroPress\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

\n\n\n\n

Meet more WordPress community members in our People of WordPress series.

\n\n\n\n

#ContributorStory #HeroPress

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"WPTavern: Free Software Foundation Unrelenting on Stallman Reinstatement: “We Missed His Wisdom”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115008\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:231:\"https://wptavern.com/free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom?utm_source=rss&utm_medium=rss&utm_campaign=free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8324:\"

The Free Software Foundation has published a public explanation of why they decided to reinstate Richard Stallman to the board of directors last month:

\n\n\n\n

“The voting members of the Free Software Foundation, which include the board of directors, voted to appoint Richard Stallman to a board seat after several months of thorough discussion and thoughtful deliberation.

We decided to bring RMS back because we missed his wisdom. His historical, legal and technical acumen on free software is unrivaled. He has a deep sensitivity to the ways that technologies can contribute to both the enhancement and the diminution of basic human rights. His global network of connections is invaluable. He remains the most articulate philosopher and an unquestionably dedicated advocate of freedom in computing.”

\n\n\n\n

The board took responsibility for bungling the news of his election to a board seat, stating that the planned flow of information was not executed in a timely manner. When Stallman announced his return to the board at last month’s LibrePlanet event, the free software community was not able to discern whether he did so with the board’s permission. It took the FSF by surprise, polarized the community, and provoked organizations and corporations to publish statements condemning his reinstatement.

\n\n\n\n

The board admits that “FSF staff should have been informed and consulted first,” but follows it up by effectively downplaying his influence, stating that Stallman is “an unpaid volunteer and subject to the organization’s policies.”

\n\n\n\n

The statement reads like a perplexing love letter for someone who struggles with social cues. It obscures most of the real issues outlined in an open letter signed by many prominent members of the free software community. The FSF board referenced a statement from Stallman, published one minute prior, and claims that he has acknowledged his mistakes:

\n\n\n\n

“He has sincere regrets, especially at how anger toward him personally has negatively impacted the reputation and mission of FSF. While his personal style remains troubling for some, a majority of the board feel his behavior has moderated and believe that his thinking strengthens the work of the FSF in pursuit of its mission.”

\n\n\n\n

The FSF board has officially confirmed that the majority of its leadership advocated for Stallman’s return and see it as important in its aim “to attract a new generation of activists for software freedom and to grow the movement.”

\n\n\n\n

Stallman’s statement identifies his past behaviors as something outside his control, saying it was “not a choice” and “unavoidable:”

\n\n\n\n

Later in life, I discovered that some people had negative reactions to my behavior, which I did not even know about. Tending to be direct and honest with my thoughts, I sometimes made others uncomfortable or even offended them — especially women. This was not a choice: I didn’t understand the problem enough to know which choices there were.

Sometimes I lost my temper because I didn’t have the social skills to avoid it. Some people could cope with this; others were hurt. I apologize to each of them. Please direct your criticism at me, not at the Free Software Foundation.

\n\n\n\n

He also attempted to explain his position regarding the 2019 controversy that prompted his resignation from the FSF board and MIT’s Computer Science and Artificial Intelligence Lab.

\n\n\n\n

“It was right for me to talk about the injustice to Minsky, but it was tone-deaf that I didn’t acknowledge as context the injustice that Epstein did to women or the pain that caused.

I’ve learned something from this about how to be kind to people who have been hurt. In the future, that will help me be kind to people in other situations, which is what I hope to do.”

\n\n\n\n

This strategically intertwined pair of statements from Stallman and the FSF did little to change the community’s perception of his reinstatement to the board. They seemed to have the opposite effect of inflaming those who opposed it in the first place.

\n\n\n\n

“I’m really grateful that the FSF board took the time to clarify this,” Tock founder Brian Fitzpatrick said. “This makes it crystal clear that they would rather have RMS around than become an inclusive and welcoming environment to more than half the people who write software. Toxic to the core.”

\n\n\n\n
\n

Congratulations on getting RMS offering a non-apology for being tone deaf. You\'ve just inherited that skill.
It\'s time for that \"new generation of activists for software freedom\" to help another foundation grow.

— St⭕nehead (@stonehead) April 12, 2021
\n
\n\n\n\n

The statements were met with considerable backlash, as they did little to assuage community concerns regarding Stallman’s patterns of misconduct. More recently that includes his controversial remarks on rape, assault, and child sex trafficking, along with two decades of behaviors and statements that many have found to be disturbing and offensive. Whether these behaviors are motivated by malice or simply a lack of understanding the proper context, the damage to the FSF continues.

\n\n\n\n

Red Hat principle engineer Elana Hashman, former director of the Open Source Initiative, published a thread with suggestions for 501(c)(3) public charities the community can donate to as an alternative to the FSF, including The Software Freedom Conservancy, EFF, OSI, and Software in the Public Interest.

\n\n\n\n

Last week we reported that the WordPress project does not support Stallman’s return to the FSF board of directors. Curiously, WordPress’ executive director Josepha Haden-Chomphosy published the statement to her personal blog instead of on the project’s website, but she confirmed it is WordPress’ official stance on Stallman’s reinstatement. Since that time, the WordPress Foundation has quietly removed the Free Software Foundation from its list of inspirations.

\n\n\n\n

Many corporations and individuals have distanced themselves and pulled funding from the FSF, but it has not had much impact on the leadership of the organization. The FSF board seems confident in their decision to keep Stallman in place, despite openly admitting that “his personal style remains troubling.” When the organization’s actions so sublimely repudiate its stated goals (to attract a new generation of activists for software freedom), it’s easy to see why former supporters can no longer buy into the FSF’s promises to improve transparency and accountability.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 03:53:44 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Display Digital Sheet Music With the WordPress Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/display-digital-sheet-music-with-the-wordpress-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=display-digital-sheet-music-with-the-wordpress-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4520:\"OSMD plugin output on the front end.\n\n\n\n

PhonicScore, a company out of Vienna, recently released its OpenSheetMusicDisplay (OSMD) plugin. It is a WordPress block built for rendering digital sheet music in the browser.

\n\n\n\n

The OSMD plugin is built on top of the team’s JavaScript library of the same name, a project officially released in 2016. It is a bridge between VexFlow and MusicXML. VexFlow is a JavaScript API for rendering music notation, and MusicXML is a standard open format for exchanging digital sheet music.

\n\n\n\n

“As WordPress is one of the most popular CMS’ we decided to make an out-of-the-box solution that users could easily plug in their WP websites,” wrote Marin Jurcic in the announcement post. “This wasn’t an easy build, lucky for us OSMD provided all the tools for the job. To make this happen we relied heavily on the latest OSMD release and bundled it with the plugin. To add the ‘out-of-the-box features’ and get it working we used WordPress’s framework/library — Javascript and PHP.”

\n\n\n\n

This is the type of plugin that allows the beauty of the block editor to shine. A few years ago, such a feat would only have been possible via the shortcode system. Users would have had to manually type in all of the shortcode’s arguments — assuming they could remember them all — and preview the post to see what it would look like. Today, they can interact with and make changes directly to their sheet music’s display from the editor.

\n\n\n\n

OSMD was never a WordPress-first project. It was a standalone library that the company decided to make available to WordPress. With the power of the block system, they were able to do that. One can only hope that we see investments in our community from similar projects now that the block editor has become more stable.

\n\n\n\n

We are barely digging beneath the surface of what will be possible in time. Blocks like OSMD build upon the optimism I had when the system was first unveiled.

\n\n\n\n

To use the plugin, users must simply insert the OpenSheetMusicDisplay block into their content canvas. It is located under the Embed category. From that point, they must select or upload an XML file via the block options sidebar (.xml, .musicxml, and .mxl files are supported). Dragging and dropping a file does not work in this version — maybe a feature request for 2.0?

\n\n\n\nOSMD block in the editor.\n\n\n\n

The “Basic Options” tab has several width and aspect ratio settings. For the most part, it is probably best to leave these at the defaults. However, this will depend on your theme and how much room it provides.

\n\n\n\n

The block does not currently support the standard wide-alignment system. Instead, it has a width option, allowing users to determine the front-end output. Because this is a non-standard option, it may not play well with all themes. Depending on how the user’s active theme handles content width, they can get wildly different results.

\n\n\n\n

The “Drawing Options” tab is where users have more control over customizing the output. These settings allow users to determine what is “drawn” in the digital sheet music. One option is whether to draw the composer’s name. Another is to output time signatures. With 10 settings in total, there is a lot to tinker with.

\n\n\n\n

The biggest issue I ran into with the plugin was with the editor freezing from time to time. It appeared that the block was trying to reload, even when I was working outside of it. This happened despite having unticked the “Automatically Rerender on Change” checkbox.

\n\n\n\n

Overall, this plugin should serve users who want to display sheet music well. It is simple to use and offers numerous customization options. The team has a demo of the OSMD library in action on their site.

\n\n\n\n

For those who are not inclined to share digital sheet music, well, we can all appreciate the genius of J.S. Bach’s Air:

\n\n\n\n
\n\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 21:16:12 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"WordPress Foundation: Announcement: Upcoming live discussion on do_action charity hackathons\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=184010\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:107:\"https://wordpressfoundation.org/2021/announcement-upcoming-live-discussion-on-do_action-charity-hackathons/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4578:\"

This live discussion has concluded. You can find a video recording of the live discussion on this post or watch it directly on YouTube and on WordPress.tv. Captions and a full transcript of the video will be made available shortly.

\n\n\n\n

Over the past few months, many community organizers have expressed interest in organizing do_action charity hackathons and asked many questions about the event to Community deputies. In order to address these questions – some members of the WordPress Community are organizing a live Tuesday Training discussion on How to organize do_action charity hackathons!

\n\n\n\n

Hari Shanker, Hugh Lashbrooke, Naoko Takano, and Yogesh Londhe – who are all experienced do_action hackathon organizers, will participate in this Live discussion on do_action charity hackathons. The event, which will be streamed LIVE on the WordCamp Central YouTube channel on Tuesday, April 13, 2021, 02:00 UTC, is open to all! Community members can also participate in the discussion by asking questions in the live chat, which will be answered by the panelists live, during the session!

\n\n\n\n

What are do_action charity hackathons?

\n\n\n\n

do_action hackathons are community-organized events that are focused on using WordPress to give deserving charitable organizations their own online presence. Each do_action event includes participants from the local WordPress community coming together to plan and build brand new websites for a number of local organizations in one day. Due to the COVID-19 pandemic, do_action hackathons have moved online.

\n\n\n\n

In this session, we talk about do_action events, and their importance in this post-pandemic world, and on how to effectively organize an online do_action hackathon.

\n\n\n\n

Watch the discussion!

\n\n\n\n

The live discussion has concluded, but you can catch a recording of the session below.

\n\n\n\n
\n
\n
\n\n\n\n

Date and time: Tuesday April 13, 2021, 02:00 UTC (Click to view in your local time)
You can sign up for notifications on the YouTube live link below!

\n\n\n\n

In case the timing is off, and if you will not be able to join the live event, fret not! The event recording will be available on YouTube, and will soon be uploaded to WordPress.tv as well!
As mentioned above, while the live discussion has concluded, don’t forget to check out the recording of the live discussion above. We are working on adding captions for the video and will share a transcript of the same, shortly.

\n\n\n\n

We hope that this session was useful. We strongly encourage you to organize a do_action charity hackathon to support your local non-profits by giving them a WordPress-powered online presence. Thank you for all that you do to support the global WordPress Community!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 15:10:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9290:\"

In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

\n\n\n\n

Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

\n\n\n\n

Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

\n\n\n\n

Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

\n\n\n\n

Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

\n\n\n\n

There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

\n\n\n\n

That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

\n\n\n\n

WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

\n\n\n\n

Later, the community picked me up when I became seriously ill. 

\n\n\n\n

So I can say from the bottom of my heart, that working with WordPress has saved my life.

\n\n\n\n

And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

\n\n\n\n

The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

\n\n\n\n

The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

\n\n\n\n

Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114098\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin?utm_source=rss&utm_medium=rss&utm_campaign=set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4142:\"

WordPress contributors are working towards landing full site editing (FSE) sometime this year, an ambitious plan that will require all hands on deck for testing. A meeting of a small group of core leads on April 14 will start the process of deciding whether FSE will land in version 5.8. In the meantime, the FSE outreach program has extended the deadline for the fourth round of testing until April 12.

\n\n\n\n

One of the quickest ways to get started doing alpha/beta testing is to install the Gutenberg Nightly plugin, which pulls in the latest build from the Gutenberg project. Ordinarily, to get the latest build one would have to install NodeJS and npm and use the command line to get set up. This process can be prohibitive, along with the dizzying pace of Gutenberg development, for less technical users who want to start testing.

\n\n\n\n

The Gutenberg Nightly plugin, combined with the GitHub Updater plugin completely automates the process of grabbing the latest zip from Gutenberg trunk, and users will be notified when a new nightly is available for updating.

\n\n\n\n

How to Set Up a Gutenberg Nightly Test Environment

\n\n\n\n

The first step is to download and install the Gutenberg Nightly plugin by uploading the zip file. If you already have the stable version of the Gutenberg plugin, you will be prompted to replace the current version with the one you are uploading. If you want to get updates when a new nightly is available, download and install the GitHub Updater plugin the same way.

\n\n\n\n
Gutenberg Nightly update available
\n\n\n\n

Testing the full-site editing project will require you to install a theme like TT1 Blocks, which has support for the experimental feature. Once you do, you will see the “Site Editor (beta)” menu item in the dashboard.

\n\n\n\n
\n\n\n\n

I set up a Gutenberg testing environment in 2 minutes using these plugins. Please note that it’s not recommended to use Gutenberg Nightly in production.

\n\n\n\n

Birgit Pauli-Haack, publisher of the Gutenberg Times, created the plugin in October 2020, to help testers keep up with the rapid pace of Gutenberg development.

\n\n\n\n

“On October 19, 2020, there were 250 new commits made since the last release (9.1.1) and before the release of 9.2,” Pauli-Haack said. “Any issue you might file, might get a response like ‘Could you please try it in master, I think it was already fixed.\'” This slows down the testing process and can be discouraging to testers.

\n\n\n\n

Pauli-Haack creates the build every day as a volunteer service to facilitate Gutenberg testing.

\n\n\n\n

“At the beginning it took a bit longer but now I wrote a small Node CLI script that does the distribution to GitHub and uploads it to the GT site as well, so the button Download gives you the newest version,” she said. “In October, I was a total rookie with an idea.”

\n\n\n\n

Pauli-Haack credits Andy Fragen, author of the GitHub Updater plugin, and Riad Benguella, a technical lead on the Gutenberg project, who helped her past some skill gaps in getting the process more automated.

\n\n\n\n

“Andy Fragen helped me think through it for making it the easiest for the ‘normal’ users to get a Test version without to know much about git, node and stuff,” she said.

\n\n\n\n

Gutenberg Nightly has facilitated more than 62,000 downloads to date. The repository for the plugin has discussions enabled so users can stay updated with major changes, make feature requests, and participate in Q&A.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Apr 2021 16:12:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"Gutenberg Times: Full-Site Editing Scope in WordPress 5.8. Weekend (Tiny) Edition #165\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17473\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://gutenbergtimes.com/full-site-editing-scope-in-wordpress-5-8-weekend-edition-165/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8253:\"

Howdy!

\n\n\n\n

In the last two weeks there was so much was happening around Gutenberg. To keep you somewhat in the loop, I interrupt my unpacking of way-too-many boxes and share a few links with you.

\n\n\n\n

Next week again in full force. Stay tuned.

\n\n\n\n

Have a great weekend!

\n\n\n\n

Yours, 💕
Birgit

\n\n\n\n\n\n
\n\n\n\n

Grzegorz (Greg) Ziółkowski and I published our first episode together, Episode #41. It is a great episode, and we had a lot of fun. I am delighted having Grzegorz on the show. It’s now available with show notes and transcript.

\n\n\n\n

Josepha Haden Chomphosy posted Full Site Editing Scope for WP5.8 (u)

\n\n\n\n
  • Lesson from Phase 1 roll-out, extenders like plugins developers, site builders and theme authors didn’t have enough time to test their products with the new editor in core. 
  • Full-Site Editing user experience with Global Styles, Template editing and saving, will not be changing default user experience. It’s opt-in only. There is some confusion on saving template and switch from overall template to content and back. Polishing those will be out of scope for 5.8. 
  • Also, on the scope list for WordPress 5.8 are: Widget Editor, Navigation Screen and block, refactored Gallery Block and the List View. These  components are some of the most complex, and the user experience of them will be key. “They are all high priority to complete (hopefully for WP5.8), but will be punted if they aren’t ready in time for Beta.” 
\n\n\n\n

Matias Ventura will demo the current state of these features to the release lead team trio of  Matt Mullenweg, Josepha Haden Chomphosy and Helen Hou-Sandi.

\n\n\n\n

Justin Tadlock has the skinny: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming

\n\n\n\n

Hector Prieto published the April Focus areas for the Gutenberg team. 

\n\n\n\n

As expected, it covers Widget, Navigation Screen, and Full-Site Editing with more details. Please see the “Area to be aware of” section of the post, for Block and plugin Developers, Designers and Theme builders. We talked about most of them in one or the other episode, but you find them all in one place in Hector’s post. 

\n\n\n\n

Kjell Reigstad published the notes from the Block Theme Meeting They team discussed among other things:

\n\n\n\n
  • TT1 Blocks update 
  • Block-based theme updates in Gutenberg 10.3 with alignment styles automatically for front and back end and the capability to use theme.json styles for every block.
  • New tools for transitioning to Block-based Themes.
\n\n\n\n

The deadline for the Full Site Editing Testing Call #4 has been extended until April 12th, 2021.

\n\n\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

\n\n\n\n

\"GitHub

\n\n\n\n\n

Don’t Miss this!
Mega-Meetup April 15th, 2021 6:30 -8:30 pm EDT / 23:30 UTC with Anne McCarthy, David Bisset and the organizers of six Florida Meetup groups. All About Full Site Editing (Coming in WordPress). Register via Meetup.com

\n\n\n\n

For a more in-depth look on current Gutenberg development, the Index page with all the teams’ updates in the Core handbook has the latest.

\n\n\n\n\n

 “Keeping up with Gutenberg – Index” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

\n\n\n\n\n\n

Featured Image: Photo by Fran Jacquier on Unsplash

\n\n\n\n\n\n
\n\n\n\n

Don’t want to miss the next Weekend Edition?

\n\n\n\n

We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

Thanks for subscribing.
\n\n\n\n
\n\n\n\n\n\n

Episode #41 is now available, with new co-host Grzegorz Ziolkowski

\n\n\n\n

Subscribe to the Gutenberg Changelog podcast
🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

\n\n\n\nReview by Peter Ingersoll on Stitcher\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 10 Apr 2021 15:24:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114870\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming?utm_source=rss&utm_medium=rss&utm_campaign=will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6679:\"

Yesterday, Josepha Haden Chomphosy announced the roadmap for deciding whether Full Site Editing (FSE) will land in WordPress 5.8. After the launch of Gutenberg 10.4 on April 14, a small group of core leads will participate in a go/no-go demo.

\n\n\n\n

The following people will be on the call:

\n\n\n\n
  • Matias Ventura – Gutenberg Project Lead who will host the demo.
  • Matt Mullenweg – WordPress Project Lead.
  • Helen Hou-Sandì – Lead Developer.
  • Josepha Haden Chomphosy – Executive Director.
\n\n\n\n

The meeting’s agenda is simple. Ventura will host the demo, and the group will discuss and cover implementation questions.

\n\n\n\n

If there are no blockers, they will share a plan for merging FSE into WordPress. The more likely outcome is that they will find at least a few items that must be addressed. In that case, they will share these publicly with a plan to tackle them before a second go/no-go date of April 27.

\n\n\n\n

The first beta release of WordPress 5.8 is set for June 8, with a general public release for July 20. The team needs to decide on inclusion early in the release cycle to give theme and plugin developers time to prepare.

\n\n\n\n

While many are on their toes awaiting a final decision, everyone needs to have a little patience at the moment. Everything needs to be carefully weighed by the project leaders. There is a good chance we will not know the outcome until that second, April 27 deadline.

\n\n\n\n

Most of the FSE transition would be a beta run for a subset users. Including these features in core does not mean that WordPress immediately flips the switch and enables everything for 40% of the web. For the overall FSE experience, users must make an explicit choice to install and activate a block-based theme.

\n\n\n\n

With that in mind, the onboarding experience should be a welcoming one that invites users into site editing while letting them know the potential issues. If it is a built-in beta, they really need to understand that improvements are forthcoming.

\n\n\n\n

An in-core beta run like this is also welcome, given the project’s launch of the block editor a couple of years ago. Regardless of whether people loved or hated the block editor, the rollout was not smooth for everyone. WordPress dropped end-users into an overhauled system, which was a shocking change for many. The project has a chance to do better this time around by incrementally introducing features to users and allowing others to immerse themselves in the new experience of their own choice.

\n\n\n\n

“The most important context to share is that it isn’t shipping as the full, default experience for users,” wrote Chomphosy in the post, noting that the team is growing beyond past mistakes. “One of the clearest pieces of feedback from the Phase One merge process was that there wasn’t enough time for our extenders (agencies, theme authors, plugin developers, site builders, etc.) to prepare for the upcoming changes.”

\n\n\n\n

The decision-makers may also decide to ship some pieces but not others. FSE is a project made up of several components.

\n\n\n\n

“The whole full site editing project is sort of an umbrella term for a collection of tools and projects, so it would be possible for some pieces to ship while others don’t,” said Haden Chomphosy. “There are probably some exceptions to that, as you mentioned, but many of these can ship as they are ready.”

\n\n\n\n

The exceptions she was referring to are components that make more sense together. For example, block-based themes via a theme.json config file and most of the site-editing blocks are not as useful when separate.

\n\n\n\n

Of course, there are cases where something like the Query block could be used outside of the site editor. Users might create custom queries within a page without the benefit of the site editor, for example.

\n\n\n\n

My primary concern is not with features related to the site editor but with block-based widgets. It is a transitional tool for users on traditional themes. Along with the new nav menus screen, it is not a part of the block-based themes experience. The goal is to allow users to start using blocks in more places. However, this will result in a broken UX in many cases.

\n\n\n\n

The widgets experience is still partially broken, treating each block as a separate widget. Users must learn to put a Heading (widget title) and another block (widget content) into a Group (widget wrapper) for the correct widget-related classes on the front end of the site. For some themes, whether users do this will be a non-issue. For others, it will look ugly at best and break the layout at worst. Putting this responsibility on the shoulders of end-users was deemed an acceptable solution.

\n\n\n\n

I wanted to focus on this issue because it is one of those things that may simply be flipped on for all users. I am still afraid that transitioning from a functioning system to a potentially broken one will make for a bumpy ride.

\n\n\n\n

The WordPress 5.6 release team decided not to ship block-based widgets. Hou-Sandì, as the core tech lead for 5.6, provided a historical account of the decision and why it was not ready for inclusion:

\n\n\n\n

My question for features that affect the front-end is “can I try out this new thing without the penalty of messing up my site?” — that is, user trust. At this current moment, given that widget areas are not displayed anything like what you see on your site without themes really putting effort into it and that you have to save your changes live without revisions to get an actual contextual view, widget area blocks do not allow you to try this new feature without penalizing you for experimenting.

\n\n\n\n

While widgets have arguably improved, I still see the answer as being the same as last October. I have not seen enough buy-in from the theme development community to support the block editor itself, much less new block-related features. However, at some point, the project simply needs to move forward. Themers will just need to keep up.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 15:48:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: iThemes Acquires Kadence WP, Plans to Sunset Legacy Themes in 2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114848\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022?utm_source=rss&utm_medium=rss&utm_campaign=ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3957:\"

iThemes has acquired Kadence WP, the Missoula-based makers of the Kadence Blocks plugin and its accompanying Kadence theme. Originally founded in 2008 as a themes company, iThemes became more of a plugin-oriented business over the years before it was acquired by Liquid Web in 2018. The company is returning to its roots with this acquisition and plans to make Kadence WP the official theme platform of choice for iThemes.

\n\n\n\n

“It’s no secret that the ‘themes’ part of iThemes has been lacking for many years now,” iThemes general manager Matt Danner said. “While we got our start in WordPress themes in 2008, over the past 10 years, we pivoted to the more obvious needs of our customers (mainly WordPress security, backups, memberships and maintenance) as the theme marketplace got more competitive. 

\n\n\n\n

Joining forces with Kadence WP means that iThemes can once again have an innovative and modern WordPress theme platform.”

\n\n\n\n

iThemes announced it will be sunsetting its iThemes Builder theme framework and all of its legacy themes in 2022, in favor of supporting the Kadence theme which already has more than 50,000 active installations. Danner said the older themes “are no longer truly compatible with the future direction of WordPress.”

\n\n\n\n

Kadence Blocks are even more popular than the accompanying theme, since they can be used in combination with any WordPress theme. The plugin has gained more than 100,000 users after its initial launch in August 2018. Kadence Blocks pioneered some of the first full-featured layout blocks in the early days of Gutenberg prior to its inclusion in core.

\n\n\n\n

“This last year has marked some ridiculous growth for Kadence WP,” co-founder Ben Ritner said. “Only one year ago my sister Hannah (many users will know Hannah from our support channels) and I were the entirety of the Kadence WP team. It is hard to gauge user numbers with accuracy because of how many free products we have, but the amount of people using Kadence WP products has roughly quadrupled in the last 10 months! Our new Kadence Theme, which landed on the repo in November (only 160 days ago), now has more than 50,000 active users.”

\n\n\n\n

Kadence WP will continue running under its same branding and as a separate company under the iThemes brand. Pricing will remain the same for existing Kadence WP customers. iThemes plans to raise its prices for its Agency Bundle on May 1, 2021, but renewal pricing will remain the same as long as the customers’ subscriptions auto-renew.

\n\n\n\n

Kadence Blocks is adding dynamic content for its pro version in the next month. The team is also launching a new plugin called Kadence Cloud, which will allow users to create a pre-built cloud of content that they can pull down into any website. Both Kadence Blocks and the theme will also be rolling in many of the top-voted feature requests from its community. A major new product release is planned for Q4 2021.

\n\n\n\n

iThemes will be hosting a townhall meeting Friday, April 9 at 11:00 am CST to address any questions or concerns that users and customers may have. They are also running an online training workshop titled “Learn How to Use Kadence WP” on May 5, 2021, at 1:00 p.m. CST.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 05:23:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"WPTavern: Yes, Comments Are Still Relevant, But We Need a Better System\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114628\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/yes-comments-are-still-relevant-but-we-need-a-better-system?utm_source=rss&utm_medium=rss&utm_campaign=yes-comments-are-still-relevant-but-we-need-a-better-system\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6116:\"

More and more, open comments are becoming a thing of the past. Large news organizations have kicked them to the curb. Frustrated bloggers who no longer desire all of the hassles with moderation shut down their forms. The conversations have moved to corporate-controlled social media.

\n\n\n\n

It is hard to pinpoint the exact moment much of the web devolved into chaos. It was probably more of a gradual thing. The tools that we built fostered the darkest side of humanity. Far too often, people let out their worst unfiltered thoughts without regard to decency and kindness. If we dig deep enough, social media is likely the culprit that spawned this growing experience. However, it is also entrenched in the blogging world.

\n\n\n\n

Now, with the ubiquity of mobile phones, everyone has a voice. And, far too often, the vocal minority drives the masses from discussion to ad hominem. Or, maybe the majority was always looking for a justification.

\n\n\n\n

There is a bright side. Commenting on and discussing ideas in an open forum can change hearts and minds. It can lead to discoveries and create life-long friendships — I still routinely chat with people I met through blogs and their comments from nearly two decades ago.

\n\n\n\n

Ryan McCue, a core contributor to WordPress, said that comments should be a plugin.

\n\n\n\n

There are few things I could think that would hurt the blogging community more. Comments are the lifeblood of many WordPress-built sites. Without them as part of the core experience, how many new users will venture out to find a commenting plugin? Such a change would sign the death warrant for commenting on a large part of the web, moving more discussion away from blogs into the waiting arms of social networks.

\n\n\n\n

McCue’s response was to a tweet by Brian Krogsgard, the Post Status creator and editor. “WordPress should have one singular button that says: Turn off all comments and comment displays. This is so hilariously complicated, it’s absurd.”

\n\n\n\n

He is not wrong.

\n\n\n\n

The WordPress comment settings screen is so complex that I rarely change anything other than a setting or two, even when I want comments enabled for a site. There are around two dozen individual options on that screen, and none of them just allow users to turn it all off.

\n\n\n\n

Eric Karkovack explores this same topic in his piece for Speckyboy titled Is the WordPress Comment System Still Relevant? He concluded:

\n\n\n\n

So, where does this leave the default comment system? It still offers the basics and can be extended. Yet it seems a bit antiquated when compared to what other services are offering. To remain a compelling option, improvements are in order.

There’s certainly no harm in keeping it around. But, short of a renewed effort to improve the out-of-the-box functionality, perhaps it shouldn’t be as front-and-center within WordPress as it is now.

\n\n\n\n

WordPress has failed to iterate on its commenting feature in recent years.

\n\n\n\n

“Like most things, [Full Site Editing] will change things there,” wrote WordPress Themes Team rep Ari Stathopoulos in the Post Status Slack. “Want comments? Add the comment-form block in your template. Don’t want them? Don’t add it.”

\n\n\n\n

While that is partly true, it only handles things on the front end of the site. All the commenting-related features would still be there in the admin. However, it is a step in the right direction.

\n\n\n\n

The ability to easily opt in or out of a commenting system is merely one change that needs to happen. Something as basic as an in-context comment list view is a must for easier moderation. The Tavern still uses Stephen Cronin’s Show Comment Parent plugin for this. Even a basic JavaScript-based front-end submission form would go a long way toward modernizing the commenting system. Does anyone enjoy a full page reload when leaving a comment?

\n\n\n\n

However, there is more that we could be doing. For a platform that prides itself on democratizing publishing and owning your content, a ticket for supporting webmentions has had virtually no movement in five years.

\n\n\n\n

A Webmention is a standardized protocol for mentions and conversations across the web. It is a part of a goal for a decentralized social “network” of sorts where everyone owns and controls their content. While the Webmention plugin by Matthias Pfefferle takes care of this feature, universal adoption would be a far more realistic goal as part of WordPress.

\n\n\n\n

We should also have some serious conversations about what tools publishers need to build thriving communities via their comments. For example, is comment moderation easy enough? If not, what can we do to improve it?

\n\n\n\n

WordPress is more than simply a blogging platform. Users can build any kind of site they want today, with or without the comments. However, commenting is part of the software’s history and identity. It is a gateway to discussion — often as important or even more so than a site’s content.

\n\n\n\n

Comments will always be relevant. Whether it is a response to a blog post, tweet, Slack thread, or some new thing we have yet to think of, the web is all about connecting and communicating with others. We should constantly reevaluate whether WordPress is leading the pack, creating the tools to enable more discussion.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 23:11:34 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:11:\"\n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"HeroPress: Hallway Chats Joins The HeroPress Family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://heropress.com/?p=3524\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:147:\"https://heropress.com/hallway-chats-joins-the-heropress-family/#utm_source=rss&utm_medium=rss&utm_campaign=hallway-chats-joins-the-heropress-family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2413:\"\"Original\n

As any parent or pet owner knows, quiet doesn’t always equal inactivity. And the same is true here at HeroPress.

\n\n\n\n

Investing in a sustainable framework

\n\n\n\n

While we haven’t said much over the last few months, we’ve been working with the initial feedback we received to expand HeroPress in the most manageable and sustainable way. Because really, if it’s not manageable and sustainable, what’s even the point?

\n\n\n\n

This quest prompted a lot of additional research and active listening, all of which lead the fine folks behind the Hallway Chats podcast to start a conversation with us.

\n\n\n\n

Hallway Chats found us

\n\n\n\n

We were considering a podcast, but had moved it down the build list. Tara Claeys and Liam Dempsey, while loving the work they’ve done with Hallway Chats, found life was moving then in different directions, as it does for us all. And as Hallway Chats approached its 150th episode, the decision was made to pass the torch, or microphone as it were.

\n\n\n\n

We’re thrilled to be able to build on their legacy and continue to grow Hallway Chats through out the community, and we’re grateful to Tara and Liam that they’ve entrusted it into our care.

\n\n\n\n

Embrace opportunities that are the right fit

\n\n\n\n

A few shifts and changes are inevitable, but the spirit of Hallway Chats will always stand. After all, why change something that so ideally meshes with our own goals?

\n\n\n\n

Listen to the 150th Episode of Hallway Chats where Tara, Liam, Topher, and I talk even more about the direction we’re all heading.

\n

The post Hallway Chats Joins The HeroPress Family appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 14:55:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Calling All Themers: Design the Next Round of Query Block Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114777\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/calling-all-themers-design-the-next-round-of-query-block-patterns?utm_source=rss&utm_medium=rss&utm_campaign=calling-all-themers-design-the-next-round-of-query-block-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4621:\"

The Gutenberg plugin repository currently has an open ticket calling for community-contributed Query block patterns. These would launch alongside Full Site Editing’s inclusion in WordPress, which could be as soon as version 5.8 — no hard decision has been made on that yet. Some may not end up bundled directly in WordPress but could be included in the upcoming pattern directory.

\n\n\n\n

Gutenberg 10.2 introduced a new feature called “scoped patterns.” This system allows developers to build block patterns within a specific context instead of always being available from the inserter. Specifically, the Gutenberg development team created a handful of patterns for the Query block. When inserting the block, users can choose between each of these patterns as a starting point for outputting their posts.

\n\n\n\nPattern selections for the Query block in its initial state.\n\n\n\n

The patterns are far too generic and do not come close to replicating the array of design options in the real world. While the end goal is to not cover every scenario imaginable, WordPress should ultimately give users a little more flexibility as a jumping-off point.

\n\n\n\n

“Those were always meant to be temporary to start with,” wrote Kjell Reigstad, a core WordPress contributor and Design Director at Automattic, in the GitHub ticket. “Let’s take another look at these, both to replace the current ones for now, but also so that we eventually have a nice set of WordPress community-designed query block patterns to add to the Pattern Directory at launch.”

\n\n\n\n

Theme authors will be able to release their own scoped patterns for the Query block too. However, with block-based themes being few and far between at this phase of the project, WordPress needs to set the stage.

\n\n\n\n

This is one of the reasons I was so vocal pre-WordPress 5.5 about the early pattern designs, and it is why I was happy to see them overhauled before the launch. Many users need that bit of inspiration, that push to try out alternate layouts instead of building them on their own. They need options beyond the typical stacked blog posts layouts.

\n\n\n\n

A few well-designed Query patterns do that.

\n\n\n\n

I decided to try my hand at building what I think would be a fun Query pattern to use:

\n\n\n\nQuery block pattern with full-width background image.\n\n\n\n

I built this using core blocks instead of the Query block with the Eksell theme installed. Side note: let me just reiterate my earlier review of Eksell. It is such a well-rounded design that anyone can create all sorts of custom patterns. It makes for an easy-to-use testbed for exploring design concepts.

\n\n\n\n

The idea was based on a pattern that Mel Choyce-Dwan shared in the ticket:

\n\n\n\n Query block pattern with background image and centered text. \n\n\n\n

I do not think it is currently possible to build this Query pattern idea with the site editor. Unless I am mistaken, there is no way to use the post featured image as a background or within the Cover block, a common layout design.

\n\n\n\n

Eventually, the site editor should get to the point where theme authors can move at least a hair beyond the basics. It will take some time for the tooling to catch up, but we are approaching the point where designers can build more complex things. That is another reason theme authors should be involved with this discussion. It needs input and ideas from themers who are out there dealing with users in real-world settings. The Gutenberg team cannot know everything it needs to build without this vital community source.

\n\n\n\n

Choyce-Dwan shared several other patterns in the ticket that are worth exploring. Along with Reigstad, Beatriz Fialho and Paal Joachim Romdahl have contributed pattern ideas.

\n\n\n\n

If you fancy yourself a theme designer, now is as good a time as any to contribute.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 07 Apr 2021 22:45:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Fri, 30 Apr 2021 22:29:10 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:13:\"last-modified\";s:29:\"Fri, 30 Apr 2021 22:15:08 GMT\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 1\";s:16:\"content-encoding\";s:4:\"gzip\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'); INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5452, '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"WordPress Planet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"WordPress Planet - http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:50:{i:0;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: #2 – Anne McCarthy on How Full Site Editing Will Impact WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=115391\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/podcast/2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress?utm_source=rss&utm_medium=rss&utm_campaign=2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:68360:\"

About this episode.

\n\n\n\n

So the podcast today features Anne McCarthy. Anne is Developer Relations Wrangler for Automattic. Her work is focussed on the WordPress.org space, and she is leading the Full Site Editing Outreach Program.

\n\n\n\n

Full Site Editing is an endeavour to make it easier to manage how your WordPress website works. It’s hoped that tasks which once required a fairly technical understanding of the WordPress code, will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed. These will become part of the Block Editor interface. Complexity replaced by simplicity; or at least that’s the goal.

\n\n\n\n

This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team trying to work out how this might look, how it should work and when it will be ready.

\n\n\n\n

We start off with an introduction from Anne and how she became involved with WordPress and the Full Site Editing initiative in particular.

\n\n\n\n

Then the discussion moves to an explanation of what Full Site Editing hopes to achieve. Which areas of a website are intended to be made available with Full Site Editing?

\n\n\n\n

We then get into the specific details of what constraints the project faces; and there are many points to consider. Backwards compatibility, accessibility and how commercial and free plugins feed into the project roadmap.

\n\n\n\n

Towards the end of the podcast we get into the process of how Full Site Editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’ future through endeavours like Anne’s Outreach Program.

\n\n\n\n

It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon.

\n\n\n\n

If any of the points raised here resonate with you, be sure to leave a comment below.

\n\n\n\n

Useful links.

\n\n\n\n

Full Site Editing is moving fast. Since the recording of this episode, there’s been some movement. To get the latest information and learn more, see the following links:

\n\n\n\n

Full Site Editing Outreach Program

\n\n\n\n

Full Site Editing for WordPress Overview

\n\n\n\n

Full Site Editing Go/No Go | April 14, 2021

\n\n\n\n

Full Site Editing Go/No Go: Next steps

\n\n\nTranscript
Nathan Wrigley [00:00:00]

Welcome to the second edition of the Jukebox podcast from WP Tavern. My name is Nathan Wrigley. Our aim here is to create a podcast and transcript for people who are interested in WordPress and the WordPress community. We’re going to create one episode each month, for the time being, but that might change in the future.

\n

We’d love to hear your feedback about the podcast. Perhaps there’s a subject that you’d like us to feature, a person who you think would make a great guest or anything else that comes to mind. We’re very open to suggestions so long as it’s to do with WordPress and the wider WordPress community. You can do that by going to WP Tavern dot com forward slash contact forward slash jukebox. And there you’ll find a contact form for you to complete. Once again, WP Tavern dot com forward slash contact forward slash jukebox, and thanks in advance if you reach out.

\n

Okay, so the podcast today features Anne McCarthy. Anne is a developer relations wrangler for Automattic. She focuses on the wordpress.org space and is leading the full site editing outreach program. Full site editing is an endeavor to make it easier to manage how your WordPress website works. It’s hoped that tasks, which once required a fairly technical understanding of the WordPress code will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed.

\n

These will become part of the block editor interface. Complexity replaced by simplicity, or at least that’s the goal. This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team, trying to work out how this might look, how it should work and when it will be ready.

\n

We start off with an introduction from Anne and how she became involved with WordPress and the full site editing initiative in particular. Then the discussion moves to an explanation of what full site editing hopes to achieve, which areas of a website are intended to be made available with full site editing.

\n

We then get into the specific details of what constraints the project faces, and there are many points to consider. Backwards compatibility, accessibility, and how commercial and free plugins feed into the project roadmap. Towards the end of the podcast, we get into the process of how full site editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’s future through endeavors like Anne’s outreach program.

\n

It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon. If any of the points raised here resonate with you, be sure to head over and find the post at wptavern dot com forward slash podcast, and leave a comment there. And so without further delay, I bring you Anne McCarthy.

\n

I am here with Anne McCarthy, Anne welcome to the podcast.

\n
Anne McCarthy [00:03:55]

Thank you so much for having me.

\n
Nathan Wrigley [00:03:57]

You’re very, very welcome. Now it’s a regular question, I often ask them at the beginning of such podcasts, but I think it’s important that we lay the foundations of who you are and how you’ve come to be on the podcast.

\n

Would you mind giving us a little bit of backstory about how it is that you came to be on this podcast today? What’s your relationship with WordPress and perhaps tell us what the role is that you have currently?

\n
Anne McCarthy [00:04:20]

Great question. It’s hard to succinctly sum up who I am, but I’ll give it a try. I first got started with WordPress in 2011 as a freshmen in college, and I was using blogger for many years before that to get out all my feelings on the internet as a millennial does.

\n

And eventually, it turned into three years working at the university and their ITS department, which led me eventually to finding out about Automattic. In 2014, I joined them as a happiness engineer and very recently, almost exactly a year ago, switched into a developer relations wrangler role focused on the wordpress dot org community. And currently part of why I’m here today is cause I’m spearheading the full site outreach program. So I’m here to talk about that and talk about full site editing and all the fun stuff that’s happening. Cause I know it’s a lot to keep up with.

\n
Nathan Wrigley [00:05:08]

Yeah, there is a lot to keep up with, but it is a really interesting episode.

\n

There’s an awful lot to say when we’re recording this, in the month of April 2021, this episode will probably air shortly after we record it, and there’s an awful lot that has been going on, but there’s an awful lot to happen during the course of the rest of this year. And we know that there’s a lot of change coming.

\n

First of all, just rewinding the clock. Would you just like to try and sum up what the ultimate ambition of the full site editing project is? I know that there may be things about that roadmap which change things you wish had been included that probably won’t get included, but just sum it up. What is the full intention of the project?

\n
Anne McCarthy [00:05:48]

That’s a great question. I would simply say it’s to empower users more and bring WordPress to the future. There’s a reason these projects are taking so long. It really is about planting seeds for decades to come. And it’s something that Matt, the co-founder I really admire in him as he thinks about those decades.

\n

And so this is a part of that push into using blocks as a paradigm into empowering users, more and bringing WordPress to the future.

\n
Nathan Wrigley [00:06:10]

Okay. So it’s all about creating websites with blocks. What kind of areas is it getting into? What is it going to empower us to do? What things in the future will we be able to do inside the block editor?

\n
Anne McCarthy [00:06:24]

Yeah, so everything you can edit any part of a global style on your site. So if you want to have every font color, be one thing, you can quickly change it. Even by block, you’ll be able to change things by block, which is really exciting to have a global point of view of your site, and to be able to actually customize it to your liking unlocks things.

\n

There was recently a test that we did around, the 404 page. Normally that’s something that a theme author decides. And you’re locked into it, and if you want to change it, you have to go digging through the code. With full site editing, you can actually go straight ahead and customize it to your liking, make it real fun, make it really clever and make it really serious.

\n

Like you can do whatever you want with that. So a lot of template editing that normally you wouldn’t have access to. So even editing, like if you land on your blog page, you can actually adjust how that looks, what shows up, what doesn’t, in a really powerful way. I try and talk about the tangible aspects of it, but there’s also a lot underneath the hood.

\n

So there’s a lot of design tools for theme authors as well. That there’ll be able to hook into that ideally will make it much easier to create themes and to focus more on the aesthetics and the experience rather than on coding up the basics. So there’s a lot that I think across the board, whether you’re a user or a theme developer or a plugin author, there’s a lot to be excited about in the future.

\n
Nathan Wrigley [00:07:34]

One of the things that keeps coming on my radar is the comparison between what we’ll call page builders, these plugins, or perhaps it’s a theme we’ve seen lots of commercial and free products available in the WordPress community, which enables you to achieve many of the goals that the full site editing hopes to achieve. So templates for this templates for that. Headers, footers, you can have global color palettes and all of the things, and it can be done within their interface. I guess the thing about those products is they are created by a team of developers and they are released presumably when they’re mature and they’re ready to go and the company believe that it’s now suitable and people will purchase it or use it and deploy it. Now you’ve got a very different set of constraints that you have to work within. And I think highlighting what those constraints are, would be really useful to give people some context as to why it isn’t where some of these other solutions might be, because you’ve got many, many things to be thinking about in the background. So if we just get into that, maybe one thing at a time, do you want to just rattle off a list of things that you’ve got to be concerned about that perhaps we didn’t know you needed to be concerned about.

\n
Anne McCarthy [00:08:48]

Yeah. I’ll start with the most obvious ones, which is we’re building things so that other people can build upon it, including page builders. So I think that’s something that often gets overlooked. Like some of our audience members are these page builders. So it’s an interesting dynamic there because it really is about that foundational level. Anyway, 40%, the internet, just the diversity of ways that people use WordPress, whether it’s multi-site or what have you, there’s a lot to consider.

\n

Then you add in internationalization, which is part of like future phase four. Accessibility is a huge issue. Something that really needs to be thought about including backwards compatibility, and that’s another. A lot of page builders could easily say, hey, update to this version after this, x Y and Z will no longer be supported. Doing that with 40% of the internet is huge.

\n

Just recently actually, I did some outreach because in 5.2, which is many releases ago, some smaller APIs were deprecated. We’re finally removing them from the Gutenberg plugin. And there were still three plugin authors who were using these APIs, and I reached out to them, let them know and made sure they were aware that this was coming, but that’s something that a page builder is not building the same APIs that are going to be used across the internet in the same way.

\n

So there’s a lot of just scale that I think has to be thought of, which is partly why things get pulled from releases until they’re ready. But it’s also why sometimes we have to include things in releases in order to get feedback in order to, hear from people what needs to be improved and what we haven’t thought of, because inherently you can’t talk to 40% of the internet at once.

\n

You just can’t. So part of that is that dance of, hey, this is coming up, hey, this is what’s new. And seeing how 40% response. What did we miss and how can we do better next time? And the way I think of it as it’s this nice chance with every single release of thanks for making me better. Thanks for making the web better.

\n

And when the feedback comes in, that’s what it is. Whereas I think page builders and site builders have a unique position where they might have a very large user base, but it’s not going to be 40% of the internet. You know, there’s just a huge difference there.

\n
Nathan Wrigley [00:10:42]

So some of the constraints that you mentioned there were the audience size, 40% of the internet, you’ve got to be mindful of the fact that they are going to expect things to break as little as possible.

\n

You’ve got accessibility and so on. And there were probably two or three other things that you mentioned there as well. In real terms, how does this constrain the development? How do these factors slow you down? Do they have a material impact in the amount of time it takes you to do things because you have to ask for more consultation or you have to receive feedback from various people before you can get the green light to push that and move onto the next thing.

\n
Anne McCarthy [00:11:18]

What you described is very, very accurate. I’ll give a specific example. So the widgets editor, which is bringing blocks to the widgets editor. Originally, it was slated for 5.5. I’m pretty sure. And it’s gotten pulled from 5.5 from 5.6. Wasn’t even considered for 5.7 and is now hopefully going to be slated for 5.8.

\n

And a big part of this was originally, it was just going to be a separate editor, separate from the customizer and with feedback, it became very clear, customizer is a key interaction that we need to prioritize. How do we bring blocks to the customizer, which is a whole unique experience to think about.

\n

And this is where the 40% of the internet comes into play, right? Because we understand that you’re releasing new things, that’ll cascade to new people. But what about the person who’s had a site for five years? What benefits can we bring to them? Not just brand new users who are going to be using WordPress for the first time, because the majority of the users are people who have been using WordPress and who have trusted the community and the people building WordPress, with their site, with their, who knows what is their story, their business.

\n

So there’s a level of thought that has to go into play with that, and I think part of it is why Gutenberg, the plugin does bi-weekly releases. And I think there’s about 300,000 active installs, which is a much smaller compared to the 40% of the internet. And it allows us to test things out, have experiments, go do outreach, like the outreach program I’m running, get the feedback that we need, reach out to specific plugin authors. And in the case of the widgets editor, it became clear with each release, it just wasn’t ready. It wasn’t in the place that it needed to be. It wasn’t as stable as it needed to be. It wasn’t refined, it wasn’t intuitive enough.

\n

And in many ways, one of the things that slowed us down was wanting to have it in the customizer, which I think is a huge win. It’s a main interaction that people are used to. It’s something that people trust. So how can we go where people trust and extend that and provide an experience that they can also in the future trust and have actually unlock more things because when you’re able to use blocks in the customizer, you’re now able to add way more stuff than you would be able to and do way more things than you’d be able to when it was just the customizer, which is pretty exciting. So it’s both like trying to get user trust, but then also providing value at the same time and going to areas that people feel familiar with and slowly incrementally having stepping stones towards this eventual idea of full site editing, where everything is through a block paradigm, and you’re able to extend your site, however you want.

\n
Nathan Wrigley [00:13:35]

Do you ever get feedback from people who use these tools? That sort of question I’m trying to frame is something along the lines of. How do you cope with people who wish that it were already something that their current tool can do? Take the example of a commercial page builder. There’s several, you could pick the names of, and they’ve got this tool and they’re quite happy with it. And it does all of the things that they would wish to achieve. And then they come over and they look at the project that you’re involved with, the full site editing, and they see a real difference. They see that this tool over here, which I’m familiar with that works. I’m very happy with it and it works and it does all these things that you are, you’re still trying to put together. How do you bridge the gap between what their expectations are and what you’re trying to build? Do you have conversations with people? In fact, you even download some of these commercial products and check them out and see what it is that people get excited about, about them.

\n
Anne McCarthy [00:14:33]

I definitely check them out. I actually love, love, love hearing about new plugins because I do, I actually test full siting every single day. I have been, it’s been a challenge of mine like last couple of weeks, but I do also love when people flag things and say, hey, this new page builder or this new plugin provides a really interesting experience.

\n

One of the recent ones, I actually went back and checked out was the Iceberg plugin that simplifies the Gutenberg editor. And I recently checked that out again cause I was actually talking to someone in a completely different, it was a developer relations, a Slack community, and I have an alert word set up, anytime someone says, WordPress, I love doing that’s my favorite little hack, life hack for everyone just joined a bunch of communities and then set up alert words. Yeah. He was just like, oh, man, this editor sucks. I don’t know what to do with it. I immediately reached out to him and said, hey, no pressure. If you’re game to talk about this, I’d love to hear your concerns are what features are missing or what has you blocked? And I ended up sharing the Iceberg plugin with him and then went back through and tried it out again. And I bring this up because I think something to be said is that, the hope is that WordPress can provide common tools so that people, for example, aren’t locked into one single page builder.

\n

Like you can move around, and I get the rush to say man, I want to use the core system, but right now I’m relying on this page builder, and we’re frustrated with that too. There is a sense of urgency and Matias and Josepha touched on that in a WP Briefing podcast very recently that there’s this urgency of getting features out to people now, because we know that it will benefit them.

\n

And I think that as a really exciting position to be in. I know where we’re coming… It’s going to come, I promise, hang in in there. Which I think is a neat space rather than this impatience or hesitancy, which I also think happens, but I do seek out feedback like that, and I do enjoy talking to people whenever they explicitly have a bad experience. And one of the best questions that I ask is, what features about this page builder do you really like, what would you want to see in the core experience. And then from there, I can be honest with them and say, oh yeah, we’re working on that. That’s going to be like, here are a couple of Github issues that you might be interested in that this is the design. This is whatever it is. But then on the flip side, There is also going to be a role that plugins have to play into the future. Same with the Gutenberg editor right now, and the core editor right now with Iceberg, for example, like where it simplifies the editor.

\n

I imagine in the future with full site editing, there will be both plugins that really open up the options in the settings, and I also can imagine there’ll be plugins that really simplify things and make it really easy for certain users to use it and people can pick and choose and customize as they’d like, same to what we see with plugins now, anyway. And the biggest thing I often say to people whenever they talk about page builders, I’m like, that’s fine, if you’re not ready to switch, that’s totally fine. But at the end of the day, when you’re starting with new client or you’re starting a new site, or you’re redoing your site at some point, you’re going to have to learn something new, and it’s better to learn the sure thing. Doesn’t mean you only have to learn this your thing. I can imagine a world where people have these like hybrid experiences for some time, but the hope is that we can provide common tools so that people are not locked into one single page builder. Ideally the page builder is actually build alongside full site editing and the editor tools that we have. And then from there, people can customize to their liking either having more options show up or having less, and I do love hearing, what do you want? What’s missing? Cause it helps sharpen our thinking, and oftentimes I hear about things that I would never think of. That’s the beauty of having 40% of the internet is it’s like, whoa, I never thought about that. You’re right. That is a really interesting use case.

\n

Like someone recently a good example with the custom 404 test, as part of the outreach program, we had people build fun, custom 404 pages and someone reached out and said, well right now, it’d be really awesome to have different templates depending upon how the person landed on the 404, having some level of customization of what you present.

\n

So maybe you have four different 404 templates and it cycles through them. They were like, is this possible? I would want to put a feature request in. And it was pretty easy for me to say, you know what? That probably will be done by a plugin. So, that’s a great idea. That’s a really interesting use case, and I do think that’s something that’s desired, but this is also where plugins will still play a role. And being able to tell people that, so that expectations are in line as much as possible, I think is really important. There are going to be aspects that will not be covered by the site editor and that’s good.

\n
Nathan Wrigley [00:18:39]

Commercial page builders if you like, the process which I often see is they’ll release a statement out into their email list or what have you, and they’ll describe the features that they have been working on that have now been released and so on. And so in many cases you don’t really know what is happening unless you probably take great interest in their team and what have you. So I’m curious to know what is the actual process that is going on in the background that iterates your project, the full site editing project. How did the little leaps forward get made? Who is involved? How can people get involved? How can they find out what it is that you’re working on currently? And ways in which they can help you. And there’s a lot in that question, so probably the first thing I’ll just rewind a little bit and say, could we just concentrate on how the full site editing, the team that’s behind that, how does it actually work? What is it that you do? How do you communicate with each other? How do you ensure that things are being built that people want to have in.

\n
Anne McCarthy [00:19:38]

Yeah, that’s a great question. To start, I would say Matias is kind of, I think Josepha described him as the spark behind Gutenberg, and I really love that title, so I’m going to use it, reuse it. He is the project architect. So imagining multiple steps ahead, thinking about where we need to go, thinking about truly the infrastructure of what’s being built, APIs, is design tools, all that sort of stuff. And really thinking about based on many, many, many years of experience in the WordPress community, what do we know for sure that people need? And then from there, a lot of it is just this back and forth with the community, releasing stuff, doing calls for testing. The outreach program is a big part of that. So getting feedback from the outreach program, but one of the things that I recently came up that I am working on doing a better job of communicating is the outreach program is bringing in feedback, but that feedback and the high level, top feedback items are likely going to be different than what are the top issues to solve for full site editing if that makes sense. So there’s the feedback there’s actually using the tool, and then there are, these are the things that have to be solved and sometimes there’s overlap where sometimes some of the feedback becomes a top issue. But not all the time. And that’s partly because the MVPs is a work in progress.

\n

And as those things get clear, for example, I think after April is gonna be a jam packed month, but once there’s that decision point that go no go date, there will be a time where the full site editing outreach program can start switching into a more narrowed experience of testing. And I’m really excited for that, where it’s okay, here’s the MVP. Here’s what we’re thinking for 5.8 which are two separate goals, by the way, there’s like building MVP, and then there’s, what’s going to go in 5.8 and I think that’s important to keep in mind as well. And yeah, one of the biggest ways that we get feedback and figure out what needs to be done next, especially now that we’re in a more refinement period is through the outreach program is through people filing feature requests and just doing as much testing as possible. Ideally this is also where a theme authors start exploring what it’s like to build block-based themes and give feedback on that experience. So, yeah, there’s a lot of ways that the feature development goes on. I will say a lot of the work happens in Github and then every, probably I think, a two month cadence, there’s some high-level posts about full site editing, whether it’s about a specific release or just like a check-in post, or if it’s about FSE and themes. There have been various posts over the last six months and I expect to see a lot more in the coming months leading up to 5.8 so that people are aware and they don’t have to pay attention to the day to day with Github. Another really good post to keep an eye out on is the what’s next post. And that’s posted each month and kind of defines, this is what the team is working on next.

\n

And a lot of that does come down to, what issues of have come up in testing, what issues does Matias think are high priority to solve? What else is remaining in the MVP that’s been discovered previously? And one thing that I think is really easy to miss with full site editing, and it almost feels weird to just say. This monolithic full site editing when actually it’s this really diverse set of projects, and each is further along than others.

\n

So there’s this very interesting battle that goes on in my mind, whenever I talk about full site editing, cause what I really want to do is talk about a specific piece of full site editing, but that also can get too granular in a way that can be really confusing. But it’s something I like to mention where if you try out the experience and one part seems really good and one part you’re like what’s happening here, that’s on purpose. Because at the end of the day, I don’t expect the entire experience to go into 5.8. I expect certain things to fit in and for there to be a drip campaign, probably through even the 6.0 release, who knows, but definitely through the 5.9.

\n
Nathan Wrigley [00:23:02]

Let’s say somebody is listening to this and they’ve got no experience contributing to any software project, and they’re interested, they like the idea of full site editing and they’ve got a few things they’d like to get off their chest and they want to be of some help. What are the most effective things that can help to push the project forward right now? That could be an answer as to which website to go to, and get involved in, or it could be, well, actually, no, we need help about this specific thing right now over the next month or two, you can take that in any way you like.

\n
Anne McCarthy [00:23:35]

I mean the simplest answer that I would love to see is people joining the Core Editor meeting. If you can. If you can’t reading the notes and starting there, which you can see them posted on make.wordpress.org backslash core, there’s actually a tag for the Core Editor meeting. But I would start there, and I say that partially because we’re in a pandemic. Most places in the world, you can’t meet up in person. So getting connected with the people behind this work before you step into Github, before you step into anything else, I think is really important. There are humans doing this work. There are humans who are listening, who are caring, who are staying up late, thinking about problems. So join the meetings if you can, if you can’t asynchronous contributions are very welcome. So if you can comment on the post with a question and have it answered, but I want to start there with the human element, especially right now. So my answer, you’re listening to this many years in the future, hopefully we’re beyond this, but for now I really want to connect people with other people. And then from there, start as simple as just testing, get a test site up, try things out. There’s another make site, which is where we communicate in the project, make.wordpress.org backslash test. That’s where I post a lot of the stuff around this outreach program. So if you just want dip your toes in, that’s a great place to start. It walks you through, there’s instructions on how to set up everything, what to use what to pay attention to, how to actually go through the call for testing. It’s very purposely constrained right now, so that it makes it easy for people to jump in. But if you’re more advanced, I would just say, start scrolling th through Github. Look at different labels. There’s a really good label that I check regularly, the overview label. So if you want to get a sense of the top issues, or I guess the summarized issues, the overview label is my jam. I love going through that and seeing what’s new and also just seeing the status of things. It’s a really great way to dig into the project, but not too deeply. And if you’re someone who’s been around WordPress for awhile I would say starting to, try to create a block plugin or build a block based theme.

\n

We’re going to need to see the community in the future, really adopt these things and starting early while things are almost refined, I think is super helpful because it helps us define them in a place that there’s early enough for things to shift. Getting that feedback is pretty key so that we are creating tools that you can actually use, because the whole point is this is all being built, so other people can use it. Other people can’t use it, and we don’t know that. That’s a problem and it’s hugely helpful and valuable to do that.

\n
Nathan Wrigley [00:25:48]

You highlight the fact that you obviously need help with the things that you just described. All those technical areas. If I was to be listening to this and I am a more casual user of WordPress, I use it to create blog posts and I’m good at writing, but I’m not really into the code, and that side of things is of no interest to me, are there avenues that would still be open to me to assist with this?

\n
Anne McCarthy [00:26:09]

Yeah, I would actually say the testing should be pretty basic enough that you can dig into it. I’m saying this as the person who writes the test, I purposely try to make them very contained, so anyone can jump in and if they want to spend five minutes, ten minutes, that’s great. You don’t need to spend hours on this. Some people do, some people really like to go deep with it, but the whole point is that it’s something that anyone can jump into.

\n

And even if a call for testing is passed, it’s still great to go back through previous calls for testing and I actually have videos as part of the calls for testing so that you can see me walk through it. So if you get stuck, if you’re reading my instructions and you’re like, what is this person saying?

\n

You can watch the video and watch me go through it. And even just watching that and giving feedback and saying, hey, this is really weird, or, I really like when my page builder does this , do you all have plans for that? And another thing that’s actually coming up that I plan to do that anyone can participate in is another big call for questions. So there was a lull in testing. I was waiting for a new Gutenberg release and a couple of months ago, I did just, anyone could ask anything about full siding and I would find the answer for it. And we ended up getting, I think it was 46, 47 questions, which was fantastic. And I grouped them into different chunks, answered them, all, publish them, pass them on to the documentation team, the marketing team, but that allowed people where if they don’t have time to test, but they’re nervous about it, or they’re curious about it or they’re excited for it, or they’re impatient, whatever their emotional state is. Ask any question and I’ll answer it. And I plan to do those, another round of that definitely in the future. Probably at the end of April, and if that’s of interest paying attention to the, make.wordpress.org backslash test as the best place to pay attention or in Slack there’s in wordpress.org Slack, there’s a FSE hyphen outreach hyphen experiment that you can join, and you can just sit back and listen to me update you as I go, but that’s also a great way is asking questions, sharing concerns. That is actually hugely helpful. It sets the foundation for documentation. It helps the people building it know what the points of confusion are likely to be. So yeah, if you just want to ask a question by all means that’s a very easy pathway to jump into.

\n
Nathan Wrigley [00:28:10]

Thank you. I’ll be sure to take those links off you before we finally hang up the call today and we’ll make sure they make it into the show notes. Do you feel that you have. Enough people giving you feedback to justify the decisions that you made. I mean obviously in any software development, the answer I guess, is going to be, well, it would be great to have more. Do you feel that there is enough people assisting you at the moment so that you can be confident in the direction that you’re going? We’re doing this, we’ve got some feedback, but curious whether or not, if we have more feedback, we’d go in a different direction or not.

\n
Anne McCarthy [00:28:44]

That’s a great question. I am always someone who wants more people involved. I don’t think I’ll ever be happy with the numbers. Right now we have between 10 to 15 people with each test. And one of the things I actually recently consulted some of our design team with an Automattic, and I asked, I said, with usability testing what kind of numbers do you look for when you all did this with 5.0 what did you look for how many people? And a lot of times I got feedback saying, Oh my gosh. Anne, five to 10 people, it was great. You can calm down. It’s fine. I’m like, no, no, no. I need like 50, you know, it is this weird sense of no, no, I want more and more and more. And I can tell you, I don’t think we can ever get too much feedback, especially if it’s relevant and its… I mean, obviously there’s like irrelevant feedback where it’s make WordPress like Facebook. I mean, whatever, it could be something outrageous. That’s not terribly helpful, you know? But imagine if we just got completely inundated with feedback in the outreach program, that would be amazing. My goal, my personal goal that I’ve been trying to say outwardly in hopes it encourages people is I would love to have 20 to 25, really dedicated, diverse testers, each release and not each release each call for testing. That’s my ideal. And the reason I mentioned engaged testers is because I want people who are along for the journey a little bit,ideally. Obviously I think it’s great if people jump in and out, I think there’s something to be said for really new perspectives and I love when people comment saying, hey, this is my first time using full site editing and here are my thoughts. That’s excellent. But the idea of quality over quantity, I think is really key, for this phase of testing. I think when things actually get merged into core and certain aspects get merged into core, that’s when things can open up and be a bit more, having 2000 people give feedback, but yeah, I don’t think there’s ever enough testing and honestly, I do worry about that.

\n

And it’s something, one of the things I’ve been very intentional about is reaching out to the accessibility team to try and get people to help give feedback so that we’re thinking about accessibility needs and reaching out to folks in the polyglot space so that we have translations of these posts so that people can participate. I only speak English and I had been in countries where all of a sudden, you see something in English and it’s like this it’s like such a relief to have a menu in English. Like, Oh yes, this is so nice. And I want that outreach to happen because I think sometimes the software development I’ve seen this like arrogance of, oh well, we’ll just be doing the work and if they’re curious, they can come to us. And I actually think this is one of those situations where we need to go to them. And that’s what the outreach program is all about is meeting people where they are doing the outreach. Bringing people along with us and learning from them as we go. Part education, part feedback loop, and part, hey, here’s a really easy way to get involved and walk you through what’s coming.

\n

I would love to see more engagement from folks who are non-English speaking. We’ve had Italian, Spanish and Japanese translations very consistently. I’m so grateful for the people who’ve done that. I think it’s just, oh, I’m so bad at languages that it just amazes me. I also think everything looks better in a different language. So it’s neat to see my own words translated, which is a kind of a wild experience that I never thought would happen, but I’d love to see more engagement. In those polyglot and local spaces, because the last thing you want is for all of a sudden it to land and only a specific audience benefits or sees this or understands it or knows what’s coming, right. There’s a big responsibility for 40% of the internet. And I’ll never forget the day that Matt at a State of the Word said that non-English downloads passed English downloads. And so when you think about that 40% I think a lot of us English speaking, Western world think of a certain type of person, but really it’s much more expansive than that.

\n

So I’ve been really hammering the polyglot space as much as I can, as much as volunteer time people can give to translate those posts and to try and get feedback. But it’s something that I’d love to see more of.

\n
Nathan Wrigley [00:32:22]

I’m curious actually, if you’ve got a really nice concrete example of an instance where somebody’s feedback turned into something actual. It was realized off the back of a piece of feedback, which you passed on to the team, and somebody reached out said, I would like this. And you were able to provide this, Hearing those stories. Ah, it is possible.

\n
Anne McCarthy [00:32:44]

Yeah, I can think of a really specific example that I was actually thinking about this morning when I was making coffee. A blind developer, I got connected with her through actually posting in a different Slack community. So, you would not believe how many Slack communities I’m a part of and how much I try to drop links and engage people in different spaces. And I got connected because someone said, hey, I have a friend she’s blind, she’s a WordPress developer, and she cannot use full site editing. And I was like, whoa, tell me everything.

\n

How can I get in touch, and got in touch, her name’s Taylor. And she very kindly jumped on for about 30 minutes. We recorded the session so that I could pass along the feedback. She just walked me through the experience of both using of using two different screenreader tools. And. It was fascinating. It was awesome.

\n

We found so many bugs. It was one of those things where I think the biggest, the most jarring one that I keep thinking about that I actually want to see if we can get some development in on ASAP, is that the save button, and the saving process for full site editing right now is pretty non-intuitive, it’s a little bit clunky and it’s something that’s come up with sighted folks as well. What is the saving process, how does it work? But for people who rely on screen readers, it’s really impossible to save. Like you basically have to search for the phrase save in order to find the save button because there isn’t an aria label. And so that’s a big one that came up and on top of that in just the session, I worked with her another piece of feedback that came up with the columns block.

\n

So if you have columns and you’re imagining, let’s say two columns and you are using a screen reader, it doesn’t tell you which column is which. So all of you here just announces column, column it doesn’t say like column one or column two or right column or left column. There’s no identifier for how to navigate.

\n

And so that’s actually, there’s a PR right now that’s underway. I actually just filed it for the accessibility team last week to see if someone could review and someone already stepped in to offer some thoughts to fix that, to actually announce, I think they’re going with like column one and column two and column three rather than right and left due to internationalization. And that’s going to be a huge improvement because right now Taylor was just like, columns block is so confusing. This is almost useless. Another one is the spacer block. I’d love to hear. If you use a screen reader, I’d love to hear your experiences with the spacer block, because that’s a really confusing block for people I’m relying on screen readers.

\n

And I opened up an issue for that, and we’ve had some discussion back and forth about improvements that need to be made there as well. So those are some of the, and I can tell you, there’s probably about. I think six issues I opened just from that 30 minute conversation. Some are like a work in progress, but this was very recent and something I keep thinking about, especially as we start to refine things and decision points come up because we don’t want to release something that has such blatant problems with it.

\n
Nathan Wrigley [00:35:24]

It marks a very big change for WordPress this last couple of years have been really extraordinarily different, the experience that we’re all going through, but in particular, around full site editing How do you calm people’s fears that things in the future are going to be going in the direction that they wish it to go in. So, as an example, let’s imagine that we’re a theme developer. We may be getting concerned that themes are going to become a thing of the past that the livelihood that we’ve created for ourselves is going to disappear before our eyes. People concerned that the way that they’re working with at the moment, the way that they’ve taught their clients to work, this is how WordPress works, and this is how you can manage your website for yourself, and so on. What do you say to people? What is the golden light on the hill? The thing that you draw attention to, to say, look, all of this will be worth it. How do you keep people focused on the positives and not worrying about all the different things that are going on left right and center?

\n
Anne McCarthy [00:36:20]

Yeah. The biggest thing I say is there’s a reason that the last milestone is gradual adoption. And one of the things that I also love to talk about is the fact that full site editing is a bunch of sub projects actually gives us the flexibility to ship reliable items rather than shipping it all at once.

\n

Yes, they’re interdependent. Yes. And some cases they rely on each other and there needs to be probably a certain order or approach to releasing things. But by having so many different tools that provide value. It actually gives us the ability to step back and say, okay, what’s ready. And that should be a big relief to people.

\n

It’s not like there’s going to be this on-off switch full savings here is taking over your site. Good luck. That’s not going to happen. Gradual adoption is the game plan. It is the final step. And I imagine right now, a gradual adoption as a milestone is not fleshed out. But I imagine, especially you have to 5.8, that will become a much more fleshed out milestone in the same way you see other milestones, I think, Josepha has talked a lot about this, and I really love the way she basically says we want to fulfill the WordPress promise. We want to keep that trust and we want to release things in the best state possible while at the same time, recognizing that there’s this urgency to offer tools that people are just lacking right now, at some point, we need to get those out in front of people and to provide value and making that determination is super tricky. But the good news is like I was saying earlier, we have that flexibility built into the fact that these are all sub projects and that many of them can be shipped independently.

\n

And for theme authors, Themes are going to be so important in a full siding world. And one of the things I am so excited about is that there’s going to be a ton of what they’re calling. I .. the idea of these hybrid universal themes that can work with for example, template editing.

\n

So going and being able to edit like your single page template, your homepage template, or your 404 template. You could have a theme, that’s a classic theme or traditional theme, whatever you want to call it. And you could use template editing. You could update your theme to hook into the tools have been made to allow for template editing.

\n

Same thing goes for global styles. You could just use one part of the full site editing machine, so to speak and all the projects and slowly integrate, more and more, as you want to, like theme authors will have a lot of control of what they opt into and what they opt out of. And for us building it, it’s on us to make it so desirable to opt in.

\n

Right, and that’s where the gradual adoption, so many pathways are going to be created. And I’m actually really excited to see people move from this framework of anxiety to looking out across the space and going, hmm, what can I use? What is it that I hear from people all the time that I can integrate into this and moving into an exciting creative space rather than thinking, hh, I got to get caught up, I’m behind. This is so bad. Like that kind of feeling, which I hear from a lot of people was like, I don’t have time to get up to speed. And the ideal is that we’re actually providing tools that save you time and add value. And that makes me really excited. I fully understand the fear. I fully understand the fear.

\n

I don’t say that lightly. As someone who is thinking about like how it’s going to land in 40% of the internet and who every single day is talking to people who are giving feedback about, what’s not quite there, I don’t spend a lot of time talking to people who are just like, oh, I’m so excited about this.

\n

People don’t go out of their way to tell you that you often hear from the people who are upset or something’s missing or promises broken or whatever it is. And it’s something I think about a lot. And I understand why there is panic there, especially with livelihood in the situation that we’re in.

\n

And I have a lot of empathy for that. And I think in the future, and one of the things that I think you’ll hear from leadership and you’ve, everyone’s priority heard this from leadership. It’s just that we are purposely moving slowly and things get pooled for a reason. And it is to fulfill that promise and to think about backwards compatibility, but at the same time, balancing that with wanting to provide value for users and empowering users, especially in a day and age, when a lot of tech companies are actually taking away a lot of the power, whether it’s in the form of privacy or what have you.

\n

I think open source and the way WordPress is working is actually trying to resist that and really focus on giving everything we can to the user, to build the site that they want and to have the experience that they want. And also to free them up, to focus on what the site actually gives them, whether it’s a business or platform.

\n

I think that’s the part that makes me… that hopefully makes other people excited. And that makes me really excited.

\n
Nathan Wrigley [00:40:26]

Speaking to that. You’ve done an incredible job answering all of my questions and you’ve obviously got to wear the Automattic hat during a discussion like this. I’m curious if we cast away the Automattic hat just for a moment and we ask you personally, what in the next six months to a year, what’s the one single thing, the thing that you are most excited about, the thing that you most want to see happen, the thing that gets you personally switched on about the project.

\n
Anne McCarthy [00:40:54]

It’s a great question. I would have to say block patterns, because we’re talking about all these tools and features and things coming along, but ultimately as a user, it’s like, what can I do, and what can I do quickly? And block patterns will really be the glue that ties together all these projects. You can insert a block pattern, manipulate it as you want to. And when you’re manipulating it, you probably won’t be thinking about the fact that you might be using global styles or that the block pattern is relying on block styles or whatever it is.

\n

But the power of that. And the promise of that, I think is just such a high impact, such a high impact feature that will really be like a cherry on top. And we’ll bring together a lot of the things that we’re talking about in a way that will be really tangible. And especially in this world of, you know, we’re not able to gather in person we’re not able to have those moments.

\n

I think having something that is easy to understand almost the point of being, so intuitive that it’s like, why didn’t we do this years ago? That’s what I want the feeling to be. And that’s when I had someone in design, tell me this one time. And it always stuck with me as like the best ideas are the ones where you’re like, well, no, duh, like, yeah, of course.

\n

And that’s what block patterns I think you’re going to feel like, and I think it’s really gonna fulfill a lot of these things and bring a lot of these things that we’re talking about together in a way that will be really fun to play with. And also people will be able to submit to the block pattern directory, ideally in the future, similar to the block plugin directory.

\n

So personally, I’m most excited to see the marriage between block patterns and full site editing along with these hybrid themes.

\n
Nathan Wrigley [00:42:24]

I know there will be no metric to judge this, but it would be fascinating in a couple of years time. Were we able to measure it, to see just how much of humanity’s time has been saved by something like block patterns, the fact that you don’t have to do things over and over again. Yeah. I completely understand why you’ve selected that one. We have gone through so many questions. If somebody at the end of this, has been listening to this and thinks I would like to help, but I want to contact Anne directly before I go to these Slack channels and Github repos and so on. How might somebody get in touch with you should they wish to?

\n
Anne McCarthy [00:43:01]

I would say go to my website. I am a weird millennial without social media. I jump on and off of Instagram. That’s my one holdout. I love photography too much, but yeah, my website is nomad.blog and I have a contact page and I truly welcome to hear from anyone seriously. All I ask, and this is on my website as well. I like to do pen pal. Kind of writing back and forth. I think we don’t rely, I think email, I’ve read too many books about this, but I think email has ruined our ability to relax and unwind, and I refuse to opt into this always responding world. So as long as you’re patient with me, and if I get a bunch of emails, as long as you’re patient with me responding, I promise I will respond genuinely with a lot of thought. I do not like to do short, low quality responses. So if you’re willing to engage there, that would be awesome to hear from you. I’m also an annezazu in WordPress dot org Slack, if you end up joining there as well.

\n
Nathan Wrigley [00:43:53]

Well, thank you very much. I appreciate all of the hard work that you and everybody connected in the project is doing. It’s making great inroads into our editing experience in WordPress. Greatly appreciated. Thanks for coming on the podcast.

\n
Anne McCarthy [00:44:06]

Of course. Thank you so much for having me.

\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"HeroPress: You Don’t Have To Want What Everyone Else Wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3539\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:166:\"https://heropress.com/essays/you-dont-have-to-want-what-everyone-else-wants/#utm_source=rss&utm_medium=rss&utm_campaign=you-dont-have-to-want-what-everyone-else-wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6216:\"\"Pull

I launched a WordPress-based business sometime around 2013. Starting a business is a goal for a lot of people, but it was never something I intentionally set out to do. I was in university at the time and blogging about books — just doing something I loved. But then I had an idea for a WordPress plugin that would make book bloggers’ lives easier. Although I did decide to sell it instead of releasing it for free, making a lot of money was never my goal. I thought maybe I’d make $500 overall if I was lucky. But three months in I’d already made nearly $1500 and those numbers would only continue to climb.

\n

By the time I graduated university, this little business of mine was already fully paying my bills. I went straight from graduation to running a full time business. Over the next few years, I sold pre-made plugins, built custom plugins, launched custom websites for authors and bloggers, dipped into the managed WordPress hosting space, and created WordPress e-courses. Objectively, business was great.

\n

But by 2016, I was waking up every morning and thinking, “What the hell am I doing?”

\n

The more my business grew, the more I was afraid it was about to crash and burn.

\n

The more I diversified, the less confident I felt about what I was doing.

\n

Above everything, I was tired.

\n

Turns out, I’m not a businesswoman

\n

I was tired of selling, of marketing, of advertising, of promoting. I was tired of asking myself “will this sell?” before I started a new project. I missed creating just for the sheer fun and joy of it, which was how my very first plugin even came to be. I just wanted to build cool things and quietly release them into the wild. I love to create but I don’t love to sell.

\n

Perhaps I could have hired people to help me with the aspects of my business I didn’t enjoy, but although business was going well for a one person show, I didn’t feel like it was going well enough to hire more people and confidently feel like I could pay their salary every month. And the thought of having that responsibility just brought me even more anxiety.

\n

I felt stuck and, honestly, ashamed of how I felt about my business. Was I being ungrateful?

\n

I had this incredible thing going for me — I was paying all my bills, working flexible hours (and from home!), and calling all the shots. This is what other people aspire to have, and I had it! I was embarrassed to admit that maybe I didn’t like it anymore. I didn’t want to be in charge. I didn’t want to have the entire success or failure of a business resting on my shoulders.

\n

I remember looking through job listings trying to imagine myself doing something else — anything else. But another problem I had was that running my own business straight out of school had spoiled me. I didn’t want to be in charge, but I also still wanted to work from home. I still wanted flexible hours. I didn’t want to sacrifice my 3pm gym session. I still wanted a certain degree of freedom in what I did each day. I wanted all the benefits of running my own business, without any of the downsides I had come to dread.

\n

A well timed opportunity

\n

In late 2016, sheer luck and good timing brought me to Sandhills Development. I was offered a job at a company that could amazingly check every box on my dream list. I could work from home, set my own hours, have a weird schedule, still make the gym at 3pm, and most importantly: my job would just be one thing. I could focus on building really cool stuff, and nothing else. I wouldn’t have to think about marketing or sales or profit.

\n

It’s been over four years since then and I’m now the lead developer for Easy Digital Downloads — the plugin I originally used to sell my first product. So I think things are going pretty well! My old business does still exist, but in a very low key way. I still work on and maintain the products out of love and passion for them, but with zero pressure to actually make sales or be successful.

\n

The biggest difference is the boundaries I’ve been able to create in my life.

\n

When running my own business, I didn’t work all day long, but I did tend to think about work all the time. Growth was always on my mind because making that happen was purely up to me. I was putting so much pressure on myself to do well, that I couldn’t stop thinking about it. But now, work goes away as soon as I decide I’m done for the day. I don’t think about it after hours. There’s comfort in the fact that although I care about the company, it’s not my company, and the success — or failure — of the company isn’t purely up to me; if something does go wrong when I’m gone, there’s someone else capable of handling it.

\n

What works for someone else may not work for you

\n

Some people would consider it a downgrade to go from business owner to employee, but it was absolutely the right move for me. Running your own business is often glamorized, but not everyone is cut out to wear all the hats that a one-person business requires, and not everyone has the drive to grow a business into something larger. And that’s okay. At the time, it was immensely hard for me to admit that out loud because I thought it would make me a failure.

\n

There is no “one size fits all” dream job and I learned that being the owner of a company is not mine. If what you’re doing now isn’t working then there’s absolutely no shame in bowing out, even if you’re currently living someone else’s dream.

\n

The post You Don’t Have To Want What Everyone Else Wants appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 08:27:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ashley Gibson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: WordPress Contributors Propose Blocking FLoC in Core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115316\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/wordpress-contributors-propose-blocking-floc-in-core?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-contributors-propose-blocking-floc-in-core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7493:\"

WordPress contributors are proposing the project take an active position on Google’s Federated Learning of Cohorts (FLoC). This particular mechanism is Google’s alternative to third-party cookies that doesn’t require collecting users’ browsing history. The GitHub repository for FLoC explains how Google will group people together and label them using machine learning:

\n\n\n\n

We plan to explore ways in which a browser can group together people with similar browsing habits, so that ad tech companies can observe the habits of large groups instead of the activity of individuals. Ad targeting could then be partly based on what group the person falls into.

Browsers would need a way to form clusters that are both useful and private: Useful by collecting people with similar enough interests and producing labels suitable for machine learning, and private by forming large clusters that don’t reveal information that’s too personal, when the clusters are created, or when they are used.

\n\n\n\n

WordPress contributors are proposing blocking FLoC in core, citing the Electronic Frontier Foundation’s article titled “Google’s FLoC Is a Terrible Idea.”

\n\n\n\n

“WordPress powers approximately 41% of the web – and this community can help combat racism, sexism, anti-LGBTQ+ discrimination and discrimination against those with mental illness with a few lines of code,” the proposal states.

\n\n\n\n

One of the more controversial aspects of the original proposal was that it was spectacularly miscategorized as a security concern, clouding the issue at hand. It identified FLoC as a security issue for the sake of getting it into core on a more aggressive timeline, which was outlined as follows:

\n\n\n\n
  1. Include the patch the next minor release, rather than waiting for the next major release;
  2. Back-port the patch to previous versions of WordPress.
\n\n\n\n

The proposal was later revised to clarify that treating FLoC like a security concern referenced only the timeline of accelerated development and back-porting.

\n\n\n\n

Although blocking FLoC seemed to have wide support in the comments on the post, the premature suggestion of treating it as a security concern weakened the proposal.

\n\n\n\n

WordPress core committer Ryan McCue said that while he is in agreement with the overall sentiment, rolling it out like a security updatet would abuse users’ trust in automatic updates:

\n\n\n\n

The implicit contract with users for security autoupdates is that they are used in order to protect the user from their site (data or codebase) being compromised imminently. This isn’t the case with FLoC, and may in some cases damage the site’s behaviour.

More concretely: as someone who operates a hosting service where we keep users up-to-date with security patches, this changes our approach substantially. Right now, we can confidently roll out security updates trusting the update has minimal effect outside of purely security changes, but breaching that barrier means that now scrutiny needs to be applied to every security update in order to avoid rolling out potentially breaking changes to our clients.

That erosion of trust would ultimately hurt WP’s users.

\n\n\n\n

The proposal has started an active discussion with more than 100 commenters, including participation from the Chrome DevRel team who added more context on the current status of the experiment.

\n\n\n\n

“It’s also worth noting that because this is an origin trial it means that nothing is set in stone — this is an experiment to gather feedback,” Chrome Developer lead Rowan Merewood said. “The API may change, the opt-out mechanism may change, the eligibility criteria may change. Any code changes relating to an origin trial should also be treated as temporary and experimental.”

\n\n\n\n

Those who were critical of the proposal consider FLoC a personal privacy issue that is not WordPress’ problem to solve. Others believe a proposal to block FLoC is reactionary at this point, since Google has not yet finalized its FLoC experiment.

\n\n\n\n

“Thinking about users… i.e. the readers of a blog, they deserve choice,” Andy Beard commented.

\n\n\n\n

“They can choose which browser they use.
“They can choose settings in the browser.
“They can choose some overall options on a Google privacy site.
“They can install a multitude of plugins.

\n\n\n\n

“Alternatively, if WordPress blocks FLoC by default, that actually removes a choice – the choice of a user to see more relevant advertising.”

\n\n\n\n

Several participants in the discussion were opposed to FLoC but also not supportive of a WordPress core effort to block it.

\n\n\n\n

“While I’m not pro-FLoC (and won’t have my browsers using it) I certainly wouldn’t expect a website to make the choice to opt-out for me, and I can’t see why the majority of WordPress users and people visiting WordPress sites would expect that either,” WordPress lead developer Dion Hulse commented.

\n\n\n\n

“Perhaps more importantly, would WordPress also continue to opt out all future browser protocols too? Once you delve into blocking one, you’ve either got to block them all, or you’re playing favorites.”

\n\n\n\n

Mika Epstein, who also expressed her opinion as anti-FLoC, said she is not in support of backporting a block due to the practicality of such an effort.

\n\n\n\n

“If the decision is made to include this, I would support it as a filterable privacy enhancement only, not security,” Epstein said.

\n\n\n\n

“That said, I do not support backporting with the precedent that we did not backport the GDPR exporting stuff. Having it exist as a plugin (there are three already) is sufficient for those who are on older versions. The undue strain of increased backporting needs to be minimized, not maximized in my opinion.”

\n\n\n\n

Others commented on the harm to independent publishers whose main source of revenue is often advertising.

\n\n\n\n

WordPress lead developer Helen Hou-Sandi requested the proposal be re-written to clarify the differences between disabling FLoC on a site level vs the browser level as a consumer. She also discouraged referring to the matter as a security issue and recommended the proposal’s proponents justify the work required to backport the block. Hou-Sandi recommended opening a trac ticket as a more appropriate avenue of discussion regarding core implementation and inclusion, as contributors have not yet reached a consensus.

\n\n\n\n

The topic will be up for discussion at the next core developers’ chat on Wednesday, April 21, 2021. Representatives from the Chrome team will also be attending to answer any questions about FLoC.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 05:17:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:114:\"WPTavern: Patchstack Whitepaper: 582 WordPress Security Issues Found in 2020, Over 96% From Third-Party Extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115396\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"https://wptavern.com/patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions?utm_source=rss&utm_medium=rss&utm_campaign=patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4647:\"

Patchstack, which recently rebranded from WebARX, released its 2020 security whitepaper. The report identified a total of 582 security vulnerabilities. However, only 22 of the issues came from WordPress itself. Third-party plugins and themes accounted for the remaining 96.22%.

\n\n\n\n

“These are all security issues disclosed by the Patchstack internal research team, Patchstack Red Team community, by third-party security vendors, and by other independent security researchers,” said Oliver Sild, Patchstack founder and CEO. “So it includes all public information about vulnerabilities.”

\n\n\n\n

Patchstack is a security company that focuses on third-party extensions to WordPress. Its vulnerability database is public and available for anyone to view.

\n\n\n\n

In the second quarter of 2020, Patchstack surveyed nearly 400 web developers, freelancers, and agencies about web security. “Over 70% responded that they were increasingly worried about the security of their website, and the top reason was ‘vulnerabilities in third-party plugins,\'” according to the whitepaper. “About 45% of respondents saw an increase in attacks on websites they were managing, and 25% had to deal with a hacked website in the month prior to participating in the survey.”

\n\n\n\n

Ranking at the top, 211 of the vulnerabilities found were Cross-Site Scripting (XSS) issues, 36.2% of the total.

\n\n\n\n

“XSS in WordPress plugins almost always happens because user input data is directly printed onto the screen without any sanitization,” said Sild. “esc_html would be used to convert certain characters to their HTML entities, so it will be literally printed onto the screen. Then you also have esc_attr for user input variables, which need to be used in HTML attributes. There are many good resources published by OWASP (The Open Web Application Security Project), such as the ‘Secure Coding Practices.\'”

\n\n\n\n

Injection vulnerabilities ranked second with 70 unique cases. It was followed by 38 Cross-Site Request Forgery (CSRF) issues and 29 instances of sensitive data exposure.

\n\n\n\n

“The vulnerabilities found in plugins and themes tend to be more severe than those found in WordPress core,” wrote Sild in the whitepaper. “What makes matters worse is that many popular plugins have millions of active installations, and the numbers aren’t pretty when we look at how many websites are affected by the vulnerable plugins.”

\n\n\n\n

The total number of active and vulnerable theme and plugin installations throughout the year was 70 million. According to WordCamp Central, WordPress is installed on 75 million websites. Many sites likely had more than one vulnerable plugin during 2020 rather than 70 million individual sites being at risk.

\n\n\n\n

Patchstack surveyed 50,000 websites and found that they averaged 23 active plugins at a time. About four on each site were outdated with an upgrade available, which often increases the risk of a security issue.

\n\n\n\n

WordPress plugins accounted for 478 vulnerabilities in the report. However, there were only 82 unique theme issues. While themes are typically far more limited in scope, they can do anything a plugin can do with a few exceptions.

\n\n\n\n

It is not surprising to see that number lower for themes. However, one has to wonder if the ongoing plan to loosen the WordPress.org theme directory review guidelines will factor into that in the coming year or two. Currently, reviewers for the official directory perform extensive code checks that may be more likely to catch issues before themes arrive in users’ hands. If the trade-off is better automation, it could also mean stricter coding standards and fewer security issues that human reviewers might miss.

\n\n\n\n

“Vulnerabilities from third-party code remain as one of the biggest threats to websites build on WordPress,” concluded Sild in the report. “We already see a growth in unique vulnerabilities reported in the WordPress plugins and themes comparing 2020 with the beginning of 2021.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 20 Apr 2021 20:47:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Recreating the Classic Wedding WordPress Theme Homepage With the Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115369\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:219:\"https://wptavern.com/recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6345:\"

I simply do not understand it. For at least the better part of a decade, theme authors have asked for the tools to create more complex layouts with WordPress. They have asked for the ability to allow end-users to more easily recreate their demos. They have wanted methods to bypass the “restrictive” theme review guidelines.

\n\n\n\n

Over the past couple of years, WordPress has consistently delivered features that theme authors have asked for. Yet, themes that use them are few and far between.

\n\n\n\n

During my weekly perusal of the latest themes to land in the directory, a new wedding theme caught my attention last week. Of course, I downloaded, installed, and activated it only to find that I had no idea how to recreate the homepage design. There were no instructions. The theme options in the customizer seemed to make little sense. Nearly all of the decorative images were non-existent in the theme folder.

\n\n\n\n

Did I need to upgrade to the pro version to get what was in the screenshot? There seems to be a plan for such a version, but it is not available yet.

\n\n\n\nClassic Wedding theme screenshot.\n\n\n\n

I am no rookie, but I was stuck. I liked the simplicity of the design. However, I could not imagine setting up a wedding site with this theme. From a user’s standpoint, it should not take more than a few mouse clicks. After that point, it should only be a matter of customizing the content.

\n\n\n\n

I recognize that there is still a sort of love/hate divide for the block editor in the inner WordPress community. However, theme authors are not doing any favors for the overall WordPress user base by not taking advantage of the tools available.

\n\n\n\n

So, I recreated the Classic Wedding theme homepage from scratch. Using the block editor. With a theme that supports it.

\n\n\n\n

Creating a Wedding Homepage

\n\n\n\n

My goal was simple. There was no demo to work from, and all I had to go on was an 800-pixel wide screenshot from the theme page on the author’s site. Like I recreated the Music Artist homepage several weeks ago, I wanted to do the same for Classic Wedding. With a couple of exceptions, which could have been handled by the theme, I was successful.

\n\n\n\n

Because Classic Wedding does not support the block editor itself, I could not recreate its homepage via the block editor while using the theme. It was not happening — I tried. I knew that the Eksell WordPress theme had a “canvas” template that allowed users to edit the entire page, so it was an easy choice.

\n\n\n\n

I also loaded the Kaushan Script and Lora fonts to more closely match the original theme. This was unnecessary for the experiment, but I wanted my recreation to at least look somewhat similar.

\n\n\n\n

I immediately knew that I would have one hurdle to overcome. The theme used an image that overlapped both the section above and below it. This requires margin controls, particularly the ability to add negative margins. Unfortunately, this is a missing component of the block editor today. It does not mean that theme authors cannot do it with custom block styles or patterns. It simply means that end-users are unable to control it from the interface.

\n\n\n\n

Because I did not want to spend my time writing the code for this, I leaned on my usual safety net, the Editor Plus plugin. While it can be a little clunky sometimes and feel like overkill, it does include those missing features like margin options.

\n\n\n\nAdding negative margin to an image.\n\n\n\n

I used px units there because it was easy. In a real-world project, % or rem would have been better. But I was just doing a quick proof-of-concept.

\n\n\n\n

Everything else in the content area was straightforward. I needed a Cover block with an Image, Heading, Paragraph, and Button tucked inside. I needed a Group block as a container for Image, Heading, and Paragraphs in the bottom section.

\n\n\n\n

Because the theme did not package its decorative images — again, how would users recreate the homepage without them? — I opted for a simple striped SVG background instead of the flowers in the original. Since I already had Editor Plus installed, I added an SVG from Hero Icons as the main background.

\n\n\n\nWedding page content recreation.\n\n\n\n

My original idea was to recreate the “content” part of the homepage only. However, it was a bit boring on its own. Therefore, I transformed everything into a Columns block and added the sidebar. I recreated the primary elements using the Image, Heading, Paragraph, and Navigation blocks. Then, I added a Social Icons block for fun.

\n\n\n\nFull wedding homepage design.\n\n\n\n

I did hit one snag with the Navigation block. WordPress does not currently offer a method of centering each link in the list when using the vertical block variation. I had to write a couple of lines of CSS to make this happen. This seems like an oversight and one area where the block editor failed to meet my expectations. Of course, this could be handled on the theme side of things.

\n\n\n\n

Overall, this was a relatively simple project. However, this experiment added some complexities that were not present when I recreated the Music Artist homepage. Margin controls and vertical Navigation block alignments are must-haves. Using a third-party plugin and writing custom CSS is not ideal, and these were requirements to make this happen straight from the editor.

\n\n\n\n

All of this is possible from the theme end. Each piece of this design could have been packaged as a block pattern. The overlapping image effect would have made for a neat block style. I just wish that theme authors would start utilizing the features that are being hand-fed to them.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 21:42:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Automattic Launches Jetpack Boost: A New Performance Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114913\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/automattic-launches-jetpack-boost-a-new-performance-plugin?utm_source=rss&utm_medium=rss&utm_campaign=automattic-launches-jetpack-boost-a-new-performance-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4877:\"

The Jetpack team has been quietly testing a new plugin called Jetpack Boost, which addresses website owners’ performance and SEO concerns. Version 1.0 was released today, one month after the final pre-release came out in March.

\n\n\n\n

Boost is a separate plugin under the Jetpack brand and it does not require Jetpack core to work. The first iteration bundles three performance modules:

\n\n\n\n
  1. Local Critical CSS generates optimized styles for the homepage, posts, and pages to display content faster, especially for visitors on mobile devices.
  2. Defer Non-Essential Javascript moves some tasks to after the page loads, so visible items load faster.
  3. Lazy Image Loading loads images as the visitor scrolls them into view.
\n\n\n\n
\n\n\n\n

Once the plugin is installed, users can toggle the modules on or off. Optimizing the site’s CSS can be a lengthy process but it shows a progress bar and alerts you if are trying to navigate away from the page before it’s finished. Jetpack Boost displays an initial score when it’s first installed and will update after optimizations are put in place.

\n\n\n\n

Here’s an example score from a relatively unoptimized simple blog with 20 active plugins:

\n\n\n\n
\n\n\n\n

After installing Jetpack Boost, there was a significant improvement on scores in the dashboard. It’s not a magic wand but it’s a fairly user-friendly way to tackle some basic performance issues that may translate into a better visitor experience.

\n\n\n\n
\n\n\n\n

Checking the before and after scores on web.dev demonstrates a noticeable improvement on the Core Web Vitals assessment. For some websites this could mean the difference between passing or not (meaning 75% of pages on the domain pass).

\n\n\n\n
Before installing Jetpack Boost
\n\n\n\nAfter installing Jetpack Boost\n\n\n\n

Automattic engineer Nauris Pūķis, who worked on the project, said one reason the plugin was created was to help users “get their Web Vitals up and make the web a better place.”

\n\n\n\n

Google Search will be adding Page Experience to ranking signals in May 2021, and WordPress sites need all the help they can get. Page Experience is measured by a website’s Core Web Vitals metrics, but these scores are not easy to improve without some technical knowledge and troubleshooting.

\n\n\n\n

Despite Jetpack already including so many different, varied features, Automattic opted to put the Boost modules in a separate plugin.

\n\n\n\n

“We want Jetpack Boost to have a life of its own – focused on performance and make it available to everyone, including people who don’t want to use the main Jetpack plugin,” Pūķis said.

\n\n\n\n

The plugin was built with the same modular structure as Jetpack core, so users can easily deactivate modules they don’t want to use. This is helpful for ensuring compatibility with other performance or caching plugins that website owners may already be using.

“You’ve probably noticed that both Jetpack and Boost have lazy loading images – it’s the exact same module,” Pūķis said. “If the user happens to have both Jetpack and Jetpack Boost active – it’ll just use the most recent version of Lazy Loading Images.”

\n\n\n\n

The features in version 1.0 are just the beginning of Automattic’s plans for Jetpack Boost. The project appears to be on track to become a full-blown performance plugin that may even migrate some of Jetpack core’s performance-related functionality.

\n\n\n\n

“Version 1.0.0 is being released the “one-point-oh” way,” Pūķis said. “We’re releasing as early as we can call it stable – but there’s so much that we want to do. Starting with simple modules that package up other typical optimization techniques (like concatenation, minification, maybe even photon?) – all the way to more advanced ideas like performance tracking, intelligent performance suggestions, etc.”

\n\n\n\n

Pūķis said none of these ideas are set in stone and the team is open to exploring and building modules that will have the highest performance impact after getting more feedback.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 17:37:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"Gutenberg Times: Page Template Editor for WordPress 5.8, Videos and Plugins – Weekend Edition #166\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17602\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:105:\"https://gutenbergtimes.com/page-template-editor-for-wordpress-5-8-videos-and-plugins-weekend-edition-166/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14988:\"

Howdy,

\n\n\n\n

Yes, it’s been a while that you received a fully curated Weekend edition. After the move it took a while to get my office operational again. We still have too many boxes to unpack, though.

\n\n\n\n\n\n

Nevertheless, let’s catch up on Gutenberg news together!

\n\n\n\n

All the best,
Birgit 💕

\n\n\n\n

Gutenberg 10.4 Released (and 10.4.1)

\n\n\n\n

The Gutenberg Changelog episode 42 is now available. Grzegorz (“Greg”) Ziolkowski and I discuss Full-site Editing Scope for WordPress 5.8, Gutenberg’s 10.4, Gallery Block Refactor and Block-Based Theme updates.

\n\n\n\n
\n\n\n\n

Sarah Gooding of the WP Tavern wrote about the Gutenberg 10.4 release: Gutenberg 10.4 Introduces Block Widgets in the Customizer

\n\n\n\n
\n\n\n\n

Full-Site Editing and WordPress 5.8

\n\n\n\n

If you now find yourself in the position to learn more about the extent of Full-Site Editing experience, I have a real treat for you: A 30-min video Full-Site Editing Overview by, Anne McCarthy, Developer Relations for the Gutenberg project.

\n\n\n\n
\n\n\n\n

On April 14, 2021, the Gutenberg and 5.8 release leads held a meeting, with Matias Venture giving a tour of the current state of the Phase 2 of Gutenberg development. The outcome of the meeting was a decision on Go/NoGo for component that make it into core for WordPress 5.8.

\n\n\n\n

Josepha Haden Chomphosy provide in her follow-up post a list of the detailed scope, the video of the meeting and a transcript of the recording.

\n\n\n\n

The block editor scope

\n\n\n\n
  • Improvements from Gutenberg 9.9 to 10.7 plugin version.
  • Introduce 25 new blocks (Query, Site Logo, Navigation,Posts, Comments, Archives etc. ), the most valuable among them will be the Query Block.
  • theme.json Mechanism for Theme builders (see developer documentation)
  • Template Editor for Pages/Blank Template. (see demo by Marcus Kazmierczak)
  • Widgets Screen & Block widgets in Customizer.
  • Design tools: Duotone, Layout controls, padding, etc.
\n\n\n\n

There is the caution stated in the post: “Not all the above are currently ready, but there’s some level of confidence that they can be by the time of 5.8.”

\n\n\n\n
\n\n\n\n

For the Template Editor for Pages/Blank Template you can see it in action in a demo by Marcus Kazmierczak, he gave at the Mega Meetup last week.

\n\n\n\n
\n\n\n\n

Bud Kraus of JoyofWP showed us in his video, how the Widget screen will look like in the future. It does not show the Widget handling in the Customizer yet, but that is to come to WordPress 5.8. You could see a short piece of it in Matias Ventura’s demo video from the release leads meeting. It is now already available in the latest Gutenberg plugin release.

\n\n\n\n
\n\n\n\n\n

 “Keeping up with Gutenberg – Index 2021” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

\n\n\n\n\n

Justin Tadlock summarized last week’s announcements in Full Site Editing Is Partly a ‘Go’ for WordPress 5.8

\n\n\n\n

Testing Full-Site Editing

\n\n\n\n

As the latest Full-Site Editing Call of Testing, Anne McCarthy has a Query Quest for you. Again with a great set of test instruction, you are guided towards usage and various features of the Query Block and its accompanying new post blocks for title, content, comments, feature image and pagination.

\n\n\n\n
\n\n\n\n

Justin Tadlock discussed this task a bit further in his article: FSE Outreach Round #5: Venturing out a Query Quest. “Testing never has to be boring. I encourage participants to grab inspiration from their lives as they venture out on their Query Quest.” he wrote.

\n\n\n\n
\n\n\n\n

Apropos Testing: Sarah Gooding wrote about our Gutenberg Nightly plugin to get the latest development of the block-editor in an easy to handle plugin. Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin.

\n\n\n\n
\n\n\n\n\n

Need a plugin .zip from Gutenberg’s main (trunk) branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

\n\n\n\n

\"GitHub

\n\n\n\n

\n\n\n\n\n

Anne McCarthy curated all the feedback from the fourth testing call: FSE Program Custom 404 Page Testing Summary

\n\n\n\n

Block-Based Themes

\n\n\n\n

Helen Hou-Sandi streamed on Twitch her exploration session to create a block-based theme for the Full-Site Editing.

\n\n\n\n
\n\n\n\n

Kjell Reigstad opened an issue for Query Block Pattern inspirations. There are great examples posted that could be converted to pattern, that could be bundled with WordPress 5.8

\n\n\n\n
\n\n\n\n

Marcus Kazmierczak also used Twitch to stream his Lunch & Learn series on Block-based themes.

\n\n\n\n
\n\n\n\n

Keep abreast on specific Theme related development and discussions with the weekly round-up from the Themes Team. Kjell Reigstad posted this week’s edition. Gutenberg + Themes: Week of Apr 12, 2021

\n\n\n\n
\n\n\n\n

A couple of PRs that should help with transitioning existing themes to be block-based:

\n\n\n\n\n\n\n\n
\n\n\n\n

In their latest episode of WPCafe co-hosts Mark Wilkinson and Keith Devon talked about Building Twenty-Twenty-One with Caroline Nymark and Mel Choyce-Dwan.

\n\n\n\n

Plugins for the Block Editor

\n\n\n\n

Gutentor published a collection of 70+ Blocks and layouts for Gutenberg Editor.

\n\n\n\n
\n\n\n\n

If you are working on your set of Blocks for the editor, Justin Tadlock has some thoughts to consider: Yet Another WordPress Block Library Plugin. He is making a well though through case to suggest more unique blocks to fill the gap to the core blocks. It seems to me that, two years of seeing block collections being acquired by big companies like Atom Blocks, Co Blocks and latest Kadence Blocks, might tempt a small developer team to come up with another set of blocks matching a specific theme and hope for an acquisition by another big company in the space. There might be space for a few more, indeed.

\n\n\n\n

Tadlock’s longs for something new, a unique extension of core or a missing tool:

\n\n\n\n\n\n\n\n
\n\n\n\n

Conditional Blocks by Morgan Hvidt allows you to create block that are displayed when certain conditions apply. We saw other plugins that offer that, like Block Visibility by Nick Diego. This one is a bit different. It allows you to change content depending on HTTP referrer, so if someone comes from Twitter, they could see a different message than someone coming from a Google Search or a link in a newsletter or an affiliate link. The plugin is also available as a pro version with premium features at conditionalblocks.com

\n\n\n\n\n

Episode #42 is now available, with new co-host Grzegorz Ziolkowski

\n\n\n\n

Subscribe to the Gutenberg Changelog podcast
🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

\n\n\n\n\n\n\n\n\n

People and Community

\n\n\n\n

It’s been already a year that Anne McCarthy joined the Gutenberg team as a developer relations wrangler. It has been a great pleasure meeting Anne and collaborating with her has been quite inspiring, and I learned a lot from her wisdom and her wealth of ideas. She has also become a good friend. She is som much better and being a remote friend that I ever will be. On her personal block Anne published One year in DevRel

\n\n\n\n

Anne’s pioneer work with WordPress open-source project has been so successful that Automattic wants to sponsor another person for developer relations.

\n\n\n\n

Developing with ReactJS and Gutenberg Blocks.

\n\n\n\n

Rob Stinson wrote a tutorial on how to building custom Collections in Genesis Blocks. Now Collections in this context are Layout templates, that extend existing Genesis blocks.

\n\n\n\n
\n\n\n\n

Mark Howells-Mead uses ReactJS to build interactive single page applications with WordPress and wrote a tutorial. It’s not at all about Blocks and Gutenberg, but it’s related to the skill set of learning ReactJS and hopefully inspired developer to gradually make the transition.

\n\n\n\n\n\n

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 18 Apr 2021 23:33:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Gutenberg 10.4 Introduces Block Widgets in the Customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115274\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/gutenberg-10-4-introduces-block-widgets-in-the-customizer?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-4-introduces-block-widgets-in-the-customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3021:\"

The latest release of the Gutenberg plugin (10.4) brings block widgets into the Customizer. When customizing widget-enabled areas, a new block inserter icon is now available for dropping blocks into sidebars. This is the first iteration of block management in the Customizer, tackling the technical integration for editing blocks while also taking advantage of the live preview in the Customizer.

\n\n\n\n
\n\n
\n\n\n\n

Version 10.4 includes several design updates to the Site Editor List View, bringing more consistency to the icon sizing and spacing, as well as new colors for hover, focus, and select states. The publishing UI has been updated to display the site icon and name, adding a more personal touch to this flow while also making it more clear for full-screen or mobile users.

\n\n\n\nGutenberg 10.4 release post\n\n\n\n

More progress on site editing experiments includes the following notable updates:

\n\n\n\n\n\n\n\n

The block editor still fails to deliver a consistent preview of core blocks on the frontend in many cases. Version 10.4 brings greater parity between the editor/frontend with more consistent markup for archives, latest comments, quote, and separator blocks, with improved default padding to match the browser’s default. The GitHub issue for this improvement contains a to-do list for additional blocks that need more polishing on previews, including search, paragraph, columns, embed, post title, and more.

\n\n\n\n

For a full list of all the enhancements and bug fixes, check out the 10.4 release post.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 17 Apr 2021 13:59:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Gutenberg Times: Video: Full-Site Editing Overview with Anne McCarthy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17545\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://gutenbergtimes.com/video-full-site-editing-overview-with-anne-mccarthy/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52174:\"

As part of the Meta Meetup on April 15th 2021, Anne McCarthy gave a presentation on what Full-Site Editing entails, the updated scope of WordPress 5.8, what the FSE outreach program is and what issues surfaced during the four calls for testing from the group.

\n\n\n\n

It’s a fantastic and fast-paced presentation and covers a lot of ground. It’s ideal for WordPress users that just now want to catch up on all the buzz around Full–Site Editing and learn what will come to WordPress in the 5.8 release in July 2021.

\n\n\n\n

Big Thank You to Anne for allowing us to publish the video here with the transcript.

\n\n\n\n

For those interested how the template editor works, jump right in to Marcus Kasmierczak’s live demo portion of the WordPress Mega Meetup recording

\n\n\n\n
\n
\n
\n\n\n\n

Shared Resources

\n\n\n\n\n\n\n\n

See transcript below

\n\n\n\n
\n\n \n \n
\n \n
\n\n \n
Full-Site-Editing – the Ultimate Resource List
Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. — Marie Curie 
\n
\n\n \n
\n\n \n
Full-site Editing MVP: Can I Build a Landing Page?
Josepha Haden Chomphosy was the featured guest on the inaugural episode of the WPTavern Jukebox podcast, hosted by Nathan Wrigley. Chomphosy explained her unofficial benchmark for the Go/NoGo decision on Full-site Editing for the WordPress core merge. 
\n
\n\n \n \n
\n\n
\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Featured image: 404 template by Channing Ritter on critterverse.blog

\n\n\n\n

Howdy. To start, thanks so much for having me. This is a presentation about full site editing. I’m very excited to talk with you. This is a feature I’ve been thinking a lot about over the last year and I’m excited to share with you all. I’m also really keen to learn from each of you what you’re worried about, what you’re excited about, how you think full-site editing can improve your workflows, and more. So this is prerecorded because I wanted to make sure with so much information going around, wanted to make sure I had all the details lined up and so I could pause and rework certain sections. But please know that I welcome questions. So while you can’t interrupt me during the presentation, there will be a whole section at the end. Pull out your pen and paper, write them down, and know that they’re very, very welcomed. But for now, let’s dig in.

\n\n\n\n

So briefly about me, I’m actually originally from Winter Park, Florida. So I haven’t been home in about a year and a half, and thank you for letting me virtually return home by participating in this meetup. In 2011, I first found WordPress as a student at UNC Chapel Hill. I worked on their multi-site, had a great time. 2013, I went to my first ever WordCamp. 2014, joined Automatic as a happiness engineer focused on VaultPress and had a great time focusing on security of websites. It gave me a really interesting look into concerns people have about websites that most people don’t think about. Then 2020, I switched into the developer relations position at Automatic and have been there ever since.

\n\n\n\n

So let’s get meta and talk about the talk. (laughing). So to start, I’m going to zoom out really big and then slowly put pieces together until we kind of get a nice map of what full-site editing is with all the details. So this will look kind of like first answering some big, high-level questions, digging into then how the work is actually being done, so going from high level, “What is this? Why does it help me?” to “How is this work actually being approached? What are the pieces of the work that I need to know, the role of the outreach program?” Then I want to address some key topics and questions that I often get asked when I’ve presented at other places and talked on other podcasts about full-site editing or just one-on-one with people. I love to talk about full-site editing. So hopefully some of the key topics and questions can help get people thinking about other things they want to ask about.

\n\n\n\n

So let’s dig into the first big picture question. Why is this being done at all? Simply put, it’s to empower users. Rather than having a specific part of the site locked away in a theme or requiring a plugin, full-site editing will basically open it up to customize any part of your site the way you want to, or, on the flip side, you can let it be, or if you’re an agency, you could lock certain sites down or certain parts of a site down, depending upon how you want users to have access. So it’s a pretty powerful, big mission to actually deliver on full site editing.

\n\n\n\n

So I answered why is this being done. Now let’s dig into how does this fit into the WordPress roadmap? So full-site editing is a major part of phase two of the current roadmap. It’s not the only part, though. There’s actually other interrelated projects, including things like block patterns, the block directory, block-based themes. So it’s just one piece of this larger roadmap, but it’s one of the major grounding points of phase two of the roadmap.

\n\n\n\n

So what is full-site editing at a high level? Essentially, it’s a collection of features, and it’s important that you get the collection part. But it’s a collection of features that bring the familiar experience of blocks to all parts of your site, rather than just posts and pages. But Anne, what does a collection of features mean? Basically, I’ve noticed people tend to refer to full-site editing as one big thing. It’s like an on-off switch. It’s this monolith, and it’s actually not. It’s not this binary thing. It’s way better to talk about how there’s different pieces that fit together and interrelate, because it actually gives flexibility for release squads to release what’s ready, rather than all of it at once. So while it might be easier to talk about how it’s this one big thing, I encourage you all to kind of think about the different pieces, if you can, and I’ll touch on this more in a bit.

\n\n\n\n

Okay. So what does full-site editing actually allow me to do, right? So cool, Anne, a collection of features, but show me the money. (laughing). So this is an example of a 404 page. So a 404 page, typically you’re not actually able to edit, but with full-site editing, you could actually create this 404 page. This was actually done by one of the automatic designers, Channing. Shout-out to Channing. She did this as part of one of the tests for full-site editing, the outreach program. So it’s a pretty beautiful thing. While we all might not have the design chops that Channing does, it is pretty neat to see kind of a very tangible, hands-on example of what full-site editing unlocks you to be able to do.

\n\n\n\n

To get more specific, basically, if you’re a user, imagine editing the template that a specific post has for a specific category. For theme authors, you’ll be able to tap into design tools that allow you to focus more on actually creating a really compelling experience and less on getting the code in place and hacking things up. You can also out in and out of whatever you’re ready for, which is really exciting. But ideally, for theme authors, it’s going to be a huge change. It’ll allow creating themes to be much, much easier. If you’re an agency, you’ll have greater control over what you can offer clients, including setting custom brand colors with presets to locking down various aspects for consistency, such as typography or wanting only certain default colors to be used.

\n\n\n\n

Milestones of Full-Site Editing Experience

\n\n\n\n

So how is this work being done? So rather than trying to go through everything in one go, this project has actually been broken down into seven different milestones. Some of these milestones are completely separate, their own thing. Some are very interrelated. Some mix and match in different ways. But we’re going to go through each of them so you can get a sense of how this is being done. I’m going to try to stay at a high level before going into a very brief demo midway through the presentation. But hopefully this’ll give you a sense of what this looks like.

\n\n\n\n

Infrastructure       

\n\n\n\n

So milestone one, this was actually such a big milestone that it was broken into two parts. Essentially, this is all about laying the foundation, everything from multi-entity saving, which is actually being displayed here in the GIF that you see, where you can actually update multiple things at once, including a template part. You update your header, you update a post, and you update your footer. It’ll show all the changes happening and allow you to check and uncheck different boxes to save. Basically, just think about this as building the foundation of the experience, the technical foundation, unlocking things like being able to edit a template directly to working on specific blocks for full-site editing, like the site title. So we have a site title block, and it updates everywhere you have it listed.

\n\n\n\n

Browsing Templates and Template Parts

\n\n\n\n

Milestone two, browsing. Again, there’s another little visual so you can see what this actually looks like. This is basically giving you a map and a GPS to know your location, how to get where you need to go for your site. So because there are these new parts of editing your site that are unlocked with full-site editing, like template editing and template parts, like a header or footer, there needs to be a way to navigate between them. So this milestone is dedicated to that. How can we make it as easy as possible for you to you get where you need to go?

\n\n\n\n

Styling – Global Styles + theme.json

\n\n\n\n

Milestone three, styling. So this actually covers a couple different layers. I’m going to break it down in this slide and then the next one to help give you a sense visually of what this looks like. But this includes everything from the technical requirements to make various levels work and the UI for users. So you can actually see a depiction of the future design for the UI that users will interact with in the imagery here. So there’s generally three layers, including selling for local blocks, theme defaults, and then global modifications or what we often call global styles. You can think of global styles as basically having the option to edit all aspects of your site. So if you want to set a typography that goes across your entire site, if you want to have certain colors for all H1 headers, you can set that up with global styles.

\n\n\n\n

Currently, much of the work has been focused on the technical underpinnings, especially around aspects like theme.json, which is a very key component for block themes and a really big tool for block theme authors. But for 5.8, the focus is generally going to be on merging the non-user interface parts of global styles. So don’t expect to interact with this system unless you’re a theme author. If you are a theme authro, get really excited. Here’s a little visual, just you can get a sense of it. So these are the different layers that have to interact in the styling system and hierarchy that needs to be thought of when working on this milestone.

\n\n\n\n

20+ Theme Blocks

\n\n\n\n

Milestone four, theme blocks. So because full-site editing opens up so many more aspects of the site to edit, new blocks had to be created, basically. So if you’re creating a new template for a specific category and you’re putting in post content and you want to add the post author block, which you can see here, you can quickly add it in, customize it to your liking, add in post comment, add in post data, remove the post date. You can edit each parts of these things, which pretty excited about this, is there’s actually 20-plus blocks that fall into this category. If all goes as planned, some of those will be released for 5.8 and available potentially for all sites. So even if you’re not using a block theme, you could have access to these theme blocks, which is pretty powerful and pretty cool.

\n\n\n\n

Query Block – The Loop or Post List

\n\n\n\n

Query block. So the query block has its own milestone, because it’s a pretty powerful block. It’s also meant to be a theme author tool, so in the long run, if you’re a user, imagine that you interact with what we call block variations, which basically are just different variations of a block, as the name implies. But imagine you want to add in your latest post. You’ll add the latest post block, but underneath it, what will be powering that experience of adding your latest post will be the query block. Essentially, as the name implies, it allows you to query posts and pages and display them in different arrangements on the page. I’m very excited, actually. In Gutenberg 10.5, which will be released in just about two weeks, there’s going to be some new patterns. You can see right here, large, medium, small are the current selection of patterns that you have for the query block. But pretty soon, there’s going to be a grid pattern and a couple other cool ones, which is pretty exciting. Generally speaking, though, if you’re an end user, don’t expect to interact with this. If you’re a theme author, get excited.

\n\n\n\n

Navigation Block

\n\n\n\n

Navigation block. Again, this is just a single block, but don’t be fooled. It’s definitely a mighty one. So this last one is dedicated to all things navigation block, both in terms of structure and design. You can see in this little GIF I have going on, I’m just kind of making little design changes and moving things around so you can get a sense of what it’s like to interact with this block. This milestone actually includes everything from how do you build a really simple menu with a few items to thinking about how to create a really large mega menu and add in new blocks, like the search block that you can see here. We’re even adding sub-menus, different designs, different layouts, and more.

\n\n\n\n

Gradual Adoption – Widgets, Customizer, Hybrid Themes 

\n\n\n\n

So the last piece of the milestones is the gradual adoption. I hope this GIF makes you laugh, but also seriously, this is the intent, is we slowly want people to be able to adapt in the way that they can. Once more of these pieces are completed, there’s basically a ton of room to start exploring how adoption might look like for those who can’t or don’t want to restructure a full theme. So this might be an intermix of block-based things and regular PHP templates, or it might be covered by projects like the block-based widget editor and the navigation screen. Both of those projects I’ll cover later, but for now, just keep in mind that this is intentionally a milestone. We want to allow for gradual adoption and want people to have lots of pathways in to taking advantage of full site editing.

\n\n\n\n

What’s coming to WordPress 5.8

\n\n\n\n

So what’s coming to WordPress 5.8? So just last week, a post went out from Josepha, who is the executive director of the WordPress project. I want to read a quote from it just to kind of set the tone and give you a sense. So full-site editing is a collection of projects, and together, they represent a big change, arguably too much for a single release. The most important context to share is that it isn’t shipping as the full default experience for users. One of the clearest pieces of feedback from the phase one merge process was that there wasn’t enough time for extenders, agencies, theme authors, plugin developers, site builders, et cetera to prepare for the upcoming changes. With that in mind, this merge process won’t be an on-off switch, and you can see I’ve bolded various specific parts that I hope you take home with you.

\n\n\n\n

All right. So let’s talk WordPress 5.8 plans. This is up-to-date information as of today. A post was released from Josepha on [inaudible 00:12:21], if you’d like to check it out. From the call that the project leadership had, this is what they came up with for the 5.8 plans. This includes improvements from Gutenberg 9.9 and beyond. So we always package different versions of Gutenberg into major releases. This release is no different. There’ll be an introduction of new blocks, including query, site logo, navigation, et cetera. These are each very powerful blocks, very exciting to see. theme.json mechanism, this is part of what allows block themes to use different global styling, which will be very cool for block authors to get their hands on.

\n\n\n\n

The template editor for pages and a blank template, I’ll actually be showing a demo of this in a moment. So hang tight there, but it’ll all make sense in a bit. The widget screen and block widgets in the customizer, this is basically work being done to bring blocks to the widgets experience. I will talk more about that later, about how it’s a stepping stone towards full-site editing. Then finally, design tools, so even more design tools that people can hook into, including duotone, which adds a really cool color filter, layout controls, padding, and more.

\n\n\n\n

Short Demo: Template Editing, Navigation Block and Multi-Entity Saving

\n\n\n\n

So at this point, let’s pause for a minute and actually show off one of the features that is aimed to be included in 5.8. 

\n\n\n\n

I’m going to show you template editing, the navigation block, and just some of the cool flows with multi-entity saving is one of the things that we talked about that will make it into this release. So I’m in the post editor. I have a new post. I love to blog and write and present. I hit Update. Super happy, whatever. Open up the post settings, and there’s this new section that allows you to both create a brand new template. This will ideally be used both in themes that are block-based themes, so they’re ready for full-site editing, and potentially for classic themes. There’s actually work underway so that this will be available in anything being used in WordPress right now.

\n\n\n\n

So right now, if I hit Edit, this will take me into the template that this post is using. So let’s do that now. So as you can see, this drops me into what looks like the entire site. So you can see I have my header up here, I have the footer down here, and I can make changes directly to them. So, for example, if I jump in here, this is the navigation block, and I haven’t yet set it up. So I can say add all pages, and I can start empty. In this case, I’ll say, “You know what? Let’s start empty.” Let’s say I want to add a custom link. One of the cool things you can actually do, you can quickly select from here, or let’s say I want to add a new post. Let me first select post link.

\n\n\n\n

So adventures around the world. Let’s pretend I’m just inspired where I’m writing this. I can actually create a draft post, which is pretty cool, and it’ll show up here. It will not show up on the front end, since it’s a draft, but it actually creates a page draft for this with this title automatically. So let’s say I’m scrolling through here. I’m going, “Oh, this looks pretty good. Actually, I kind of want to see what it looks like if I add an image to the post here.” Pull up an image block. Oh, my media library. Hammocks. Can’t get enough hammocks. Going to throw that in there. Great. So at this point, I’ve made changes to the actual header. I’ve made changes to the post. I’m just going to apply and see what happens.

\n\n\n\n

So this is the multi-entity saving that I mentioned earlier. Now, as you can see, it has a section for posts, so it’s saying, “Hey, you edited this post,” and it has a section saying, “Hey, you edited the header.” So at this point, I’m going to hit Save, because I want both those changes to propagate. Now I’m back into my post, into the writing flow, and I can easily switch back and forth. I can also select a new one. But yeah, hopefully this gives you a good sense of one of the key parts that’s being worked on for inclusion in 5.8. There will be a demo later, but this is just a taste.

\n\n\n\n

Timeline of 5.8 Release

\n\n\n\n

To help set the stage for what you can prepare for, here are some upcoming dates to keep in mind. If you’re like me, time is moving really strangely, so I like to have dates to kind of anchor me. Feel free to take a screenshot of this or write it down if you’d like. So April 13th and April 27th, these are the go and no-go decision dates. So right now, project leadership actually has gathered. So you might notice if you are good with dates and good with time right now, April 13th has come and gone. So this date has passed, and project leadership has met actually to go through different FSE-related features and projects to figure out what might be ready for 5.8. I would expect to see more high-level posts throughout the month, especially after the second date, the April 27th date. That’s when final decisions will be made around 5.8.

\n\n\n\n

Then if all goes well, the beta period for WordPress 5.8 will start on June 8th. So people can actually start getting their hands on the tools that are going to be in place in the actual release and testing it and finding bugs and improving things from there. July 20th is the actual date of WordPress 5.8 and when it’s released. This is being considered as an open beta, where theme authors, plugin authors, agencies, and more can dig into the tools that are being offered and that I went over previously. Then in December 2021, that’s around the time when WordPress 5.9 will be released, and this is when I expect to move from tools for extenders into tools actually for users and more user-facing interactions with full-site editing and having things unlocked in the interface that previously in 5.8, most users won’t notice and won’t interact with. In 5.9, I expect that to be more visible.

\n\n\n\n

So some key takeaways. I know this is a lot of information. So only what’s ready from the various milestones will be shipped. This is not an on-off switch, and it won’t take over your site. The focus right now is on giving tools to extenders first, before user-facing changes. That’s a big lesson that was learned from the 5.0 merge, where Gutenberg and the core editor was brought into the WordPress experience. This is something that, thankfully, we’re in a position where because of these interrelated projects, we’re able to move in a more flexible and adaptable way to release what’s ready and not anything else.

\n\n\n\n

What is the FSE Outreach Experiment Program?

\n\n\n\n

All right. At this point, let’s jump into the full-site editing outreach program. As a reminder, this is the program that I actually run, so consider this free rein to ask me whatever question you’d like, because I think probably too much about this program. But it’s something I’m really excited to talk to you about, and I think it’s a really neat vehicle for both feedback and education about full site editing.

\n\n\n\n

So let’s go over some big picture questions, kind of like we did earlier on, and just get the details of the way. So let’s start. What is it? So essentially, it’s just a program focused on full-site editing. It’s in the form of a Slack channel right now. I’ll go over how to join it in a bit. But it has curated calls for testing, summary posts of the feedback that we get, and various educational opportunities that you can hop in on, mainly in the form of live streams. I’m running some hallway hangouts, which are basically just Zoom calls. People can come in, and we can talk about full site editing.

\n\n\n\n

What’s the goal

\n\n\n\n

What’s the goal? So the goal is pretty simple, help improve full-site editing experience by gathering feedback from WordPress site builders. While the group originally started solely to be about feedback, there’s actually this really neat educational component that has come up as the feature has developed and as more people have gotten curious about it. So people can join just to build their own awareness about what’s happening with full-site editing and kind of just look at a glance or just help amplify the posts that are coming through.

\n\n\n\n

Why was it started?

\n\n\n\n

Why was it started? So I’m going to quote Josepha from the kickoff post. During the WordPress 5.0 retrospective, which is when Gutenberg was merged and the core editor was merged, one of the things that came up routinely was the need for better engagement with users. It was generally agreed from all levels and area of contribution that users would be most impacted by Gutenberg, but the users were also the group we had the least channels of communication to. To help get user feedback to WordPress developers a little bit more seamlessly, I’m going to try and experiment outreach program. So basically, this is a lesson that was learned from the 5.0 release. In order to prevent another situation where people are caught by surprise, this program is in place to help people get excited and on ramped and on boarded onto full-site editing, as well as getting feedback so that we know if a major workflow change is coming into play, we can actually get user feedback to make it a little bit easier.

\n\n\n\n

How to Join FSE Outreach Experiment

\n\n\n\n

All right. At this point, I bet you’re just so stoked. You’re ready to dive in. Awesome. (laughing). All you’ve got to do is join FSE Outreach Experiment in Make WordPress Slack, and then you’re all set. You’ll just get a bunch of annoying pings for me with prompts for how to test, interesting posts related to full site editing, and more. I promise it’s also not as scary as this dive, which looks absolutely terrifying, but also beautiful.

\n\n\n\n

High-Level Feedback from Calls for Testing

\n\n\n\n

So because at this point, we’re on our fifth call for testing, I want to go over some high-level pieces of feedback that we’ve actually gotten about the experience so far. Basically, across all the calls for testing, these are repeated themes that have come up. But keep in mind that because there are certain aspects that we actually haven’t tested, so global styles, for example, the UI isn’t available really for users, and it’s not refined for users, so it’s not something that we’ve had as a focus part of testing, even though there is a UI that is available. So certain things are left out purely because they aren’t necessarily ready for testing, but these are the top pieces of feedback. So bear with me.

\n\n\n\n

Preview Content

\n\n\n\n

Previewing content. Publish a post. You want to go preview it, or you’re editing a post. You want to go preview the content. The same thing is true with full site editing. This is a big thing that kept coming up. My question is, is this a necessary workflow, or is it a symptom of other problems? Because in general, the site editor should be as WYSIWYG, as what you see is what you get, as possible.

\n\n\n\n

So if you’re making a change, it should look exactly the same as the front end of your site, and because it doesn’t right now, it’s causing this tension. There actually is a preview site option under discussion, as well as a browse mode option, which basically, if you’re actually editing your site, it would turn off everything that wouldn’t actually show up on the front end. So if you only have one page of posts, but you have pagination set up so if you had multiple pages, that would actually go away. So as you can imagine, this is currently up for discussion, but there actually are a couple different pathways to try and address this problem. But it’s a very important one to address.

\n\n\n\n

Saving Process

\n\n\n\n

Saving process. I like to say it’s technically reliable, but not yet delightful. So basically, it’s left a lot to be desired right now, and it’s resulted in a fair bit of confusion. There’s a lot of feature requests and enhancements and bugs that have come up related to saving. This is likely because the multi-entity saving aspect that I demoed earlier is very new for WordPress users. It’s not something we’re used to having as part of our workflow. So it’s something that inherently needs some work on. So whether it was people requesting more granular saving options to show specifically what was being changed to issues with saving for screen readers to confusion around even just what the general parts mean, like what you’re actually selecting or unselecting, This was definitely a big, big area of feedback.

\n\n\n\n

Distinction between editing area.

\n\n\n\n

Distinction between editing area. So basically, because you can edit all parts of your site, it’s hard to know, “Am I editing the header for all of my site, or am I editing just a specific piece of content on a post?” This kind of distinction, jumping between different levels of, “Oh, you’re changing this. This will change everything” to “You’re just changing this one thing in this one spot” is pretty tricky. Right now, there’s not a lot of friction, and there’s not a lot clarity in the actual experience to show when you’re actually jumping between those different levels. So this was a big piece that’s come up, and it’s something that is an active area of iteration and exploration to kind of get the right amount of friction in place.

\n\n\n\n

Rethinking Width and Alignment.

\n\n\n\n

So rethinking width and alignment. Previously, alignment in full-site editing worked to optimize how traditional things worked, where basically, traditional things provided their own alignment styles. This worked okay for the project up until this point. But recently, work has been shipped to reimagine how this dynamic should work to allow for actually more control over alignments when using the site editor. This should actually help make sure that whether you want something that’s full width or you want to change the actual width of your content that’s showing up that it’ll actually be what you see is what you get. Right now, this is another piece of feedback at a high level that’s impacted what you see is what you get experience.

\n\n\n\n

General usability improvements.

\n\n\n\n

Generally usability improvements. I admit this is totally a catchall, and it covers a ton of stuff, but it’s actually a very important one to think of, because it’ll actually move the site editing experience from being just functional to actually delightful, which is really exciting. There’s a ton of issues that are included in this, including some enhancement requests, bug reports, all that good stuff. One of my favorites to talk about is creating a background image on a template part. So imagine you have a header. You’re working on it. You’re super excited, and you’re almost done. Then you’re like, “Oh, do you what would be really cool is if I had mountains in the background. Maybe I’ll add a cover block in the background and add an image and set the opacity pretty low, but have mountains going in the background of the site.” That’s really hard to do.(laughing). You basically would have to delete everything and add the block in and then add everything back. So those are the kinds of experiences that we’re trying to improve right now.

\n\n\n\n

Improving Placeholders.

\n\n\n\n

Improving placeholders. So placeholders, especially for some of the newer blocks, are a powerful way to both guide people and a current point of confusion. So you probably saw this with the navigation block earlier, where it had those little grayed boxes. It’s like, “How do we explain to people, ‘Hey, this is something you have to set up and engage with, but here’s generally what it will look like and what it will do’?” 

\n\n\n\n

The feedback for this mainly came into play with the query block, social icon block, featured image block, and the navigation block. Each currently actually also get users started in different ways. So not only are there different placeholders for different experiences, the actual experience of interacting with the placeholders are all pretty inconsistent right now. So I think in the long run, it seems that users will benefit a bunch from a standardized, consistent way to interact with placeholder content so that it becomes a really familiar interaction when you’re working with a more powerful block. This especially is true for the query block and navigation block.

\n\n\n\n

Okay, now that we’ve covered the milestones, the outreach program, high-level pieces of feedback, I’m going to quickly run through some key topics that I imagine you’re going to have questions about. Just because I cover them here does not mean I don’t want to answer questions, so please don’t see this as a sign that you can’t also still ask questions about these topics. This is just what I’ve been hearing from folks.

\n\n\n\n

Will full site editing take over my site?

\n\n\n\n

Hopefully by this point, you all can say no in a resounding way. But no, this is not something that’s going to all of a sudden, on-off switch, you upgrade to 5.8, it takes everything over. Not at all. You very much have to opt into it through using a theme blocking that supports, actually, these features. In time, more pathways are going to be built as well so that when you’re actually using full-site editing, you’ll likely be using pieces in all of it. So you could just be using the query block, or you could just be using global styles without it taking over your entire site.

\n\n\n\n

What about the block-based navigation and widget screens?

\n\n\n\n

What’s the deal there? So in case you missed it, there’s actually two additional projects that are dedicated to bringing blocks to more areas of the site outside of full site, I think. This include the navigation screens. You can build out menus and the widget screens. You can build out your widget sections, and this is pretty powerful and high-impact work. They are both separate projects that are tangential to full-site editing, but you can think of them as stepping stones, basically. So you could have a theme that is a classic theme, but it uses a block-based widget screen so that people can have the power blocks with their widgets. Essentially, the whole point, like I said, it’s a stepping stone to get people used to using blocks more places.                                                       

\n\n\n\n

Site builders

\n\n\n\n

I could write a thesis about this, because there’s so much to talk about here. I imagine I’m going to get questions about this, but essentially, full-site editing is being built partially so people don’t get stuck or locked into one site builder or another. It’s also being built in a way that site builders can actually hook into what’s being created if they choose to. I’ve heard from a lot of folks, though, that they expect full-site editing to actually fully replicate their favorite site builder’s functionality, and I’m here to say that while the goals between full-site editing and site builders are pretty similar in terms of empowering users and giving better tools to customize a site, the difference is that we’re building for 40% of the Internet, and we’re building even for site builders, where site builders have a much more targeted approach.

\n\n\n\n

In the future, I do think there will always be room for specific takes of how to have an ideal site editing experience, whether that’s geared to a specific group, like a marketing style approach, or if you want to have things locked down or if you want to have things opened up. But generally speaking, full-site editing is meant to actually expand the way WordPress as a whole uses blocks, so don’t expect it to fully replicate any sort of site builder, your favorite site builder, essentially.

\n\n\n\n

How is this going to impact themes?

\n\n\n\n

How is this going to impact themes? So in the long run, this should actually make theme development much easier. I think Marcus’s demonstration later will show that, and much simpler, especially with the design tools that will be essentially ready at your fingertips to tap into. Ideally, because of what’s being released, it should allow theme authors to focus less on coding and functions and more on design aesthetics, integrating block patterns, and all that good stuff. But because one of the key things I wanted to really drive home in this section, though, is that because full-site editing requires a block-based theme or a theme with certain functionality enabled, this makes theming extremely important to get right. So I’ve heard people say like, “Oh, themes are a thing of the past.” It’s very much not true. I’d actually argue the opposite, that theme is almost key to this experience, to having it be delightful and having it makes sense.

\n\n\n\n

What pathways are going to be created?

\n\n\n\n

I know I’ve talked a lot about pathways this entire time, but it is the entire focus of the final month milestone for full-site editing. So expect a lot of pathways. For now, this includes everything from having a classic theme that can take advantage of global styles to template editing or a block-based widget screen. This also includes things like allowing certain full-site editing, really, blocks to be available for users, regardless of if they’re using a classic theme or a block theme or enabling the ability to edit block templates directly, kind of like I showed in the demo earlier. So there’s going to be a ton of options here, and I’m actually really excited to see what happens once 5.8 kind of sparks the creativity of the community, because I imagine both that people will create their own pathways and start experimenting, and we’ll also get a very clear sense of, “Hey, I actually really need X, Y, and Z pathway.” We’ll get a sense of demand from the community of core, which is super exciting to have.

\n\n\n\n

What’s the best way to prepare? 

\n\n\n\n

So this depends on who you are. (laughing). So depending on whoever you are, at a high level, this is what I recommend. Join the FSE Outreach Program. I know this is the thing that I run. I’m very biased. But seriously, join it. I think it’s really, really helpful to get a sense both of feedback, what’s being currently iterated on, and just general education opportunities. If you’re a theme author, I really recommend checking out the theme experiments repo and joining the block-based theme meetings to learn about the latest and greatest, because lots of good information is shared there. In general, too, it’s often also helpful to join the weekly core editor meetings, because there’s regular updates about the projects and PRs people working on. Finally, pay attention to upcoming content on Learn WordPress, because I think there’s going to be a ton of stuff coming up about full-site editing, depending upon what’s scoped for 5.8 and 5.9, including building a block-based theme, for example. That will really help, I think, everyone level up.

\n\n\n\n

Stay connected with Anne McCarthy

\n\n\n\n

All right. So we’re at the very end. At this point, if you want to stay connected with me or you have follow-up questions after this talk, I very much welcome them. You can find me on WordPress or on Slack @annezazu, or you can reach me at my site, nomad.blog. I will also try and drop my automatic email address separately. I just won’t on a live presentation, in case you want to follow up directly via email. I’m not on Twitter. I’m not on Facebook. I’m on and off of Instagram. So please don’t try to contact me those ways.

\n\n\n\n

Finally, I just want to say thanks so much for your time. Let’s hear your questions at this point. I’m really excited to hear what you all are thinking and curious about. I do want to say I don’t know everything, but I can find anything, and I’ve talked with David about how he can follow up after this presentation to get you all information and answers that you all want to questions that I might not be able to answer. So at this point, I’m going to pass it off to live and current Anne and give a high-five from past Anne.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 18:21:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Enō: ‘Probably This Is the Best Blogging Theme Ever’\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115149\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:163:\"https://wptavern.com/eno-probably-this-is-the-best-blogging-theme-ever?utm_source=rss&utm_medium=rss&utm_campaign=eno-probably-this-is-the-best-blogging-theme-ever\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4460:\"\n\n\n\n

Sometimes a theme’s description is so moving that one must install, activate, and test the project. I often rail against the obviously keyword-stuffed text in the free WordPress theme directory. But, I am pleasantly surprised from time to time.

\n\n\n\n

Enō is an elegant, modern and functional WordPress theme. Probably this is the best blogging theme ever. Just see the demo at…It supports Gutenberg block editor and has a lot of Customizer options…

\n\n\n\n

Thus began my journey into Enō, an upcoming theme by Ivan Fonin. I could have been partially a language-barrier thing. Or, the author could have just been having a bit of fun. Nevertheless, it was the sort of description that stood out enough to pull into my test environment. Any blogging theme claiming the title of “the best” was at least worth a look.

\n\n\n\n

What I found was a well-designed theme that focused on some of those timeless elements, such as generous use of whitespace and sound typography. I would not go so far as crowning it the best ever created, but it will undoubtedly be the perfect fit for many bloggers in the future.

\n\n\n\n

Currently, the theme is awaiting a review before it lands in the official WordPress theme directory. However, those who want to try it out early can snag a copy of the ZIP file from its Trac ticket.

\n\n\n\n

Enō tackles the intricacies of block editor design like a pro. In areas where so many “block-ready” themes fail to live up to expectations, it is a textbook example of working alongside the block system.

\n\n\n\n

Where it falls short is that it does not go beyond nailing down the basics of block design. The theme bundles no patterns, which would allow users to quickly drop in more advanced layouts. It also does not include block styles or even a custom color palette. There are no unique elements in the design where the author stamps his own signature in bold. It is almost formulaic, but that is not necessarily a bad thing. Formula can feel good. It can be comforting when you need something that simply gets out of the way and allows your content to shine.

\n\n\n\n

While Fonin bills the project as a blogging theme, it stands out as a solid option for photographers. The open-canvas layout leaves ample room for large images and galleries, and the theme’s demo is filled with examples.

\n\n\n\nGallery examples from the Enō theme.\n\n\n\n

What would make this theme even better would be a few image and gallery styles, allowing end-users to spruce up their blocks a little more.

\n\n\n\n

As much as I like the theme, it does tick one of the boxes from my most-irritating-things-that-themes-do checklist. It outputs the featured image on single post views above the post content. This creates the dreaded double-image issue when a user also uses the same image in the post itself. The easy fix for this is to provide a theme option for not showing the featured image on single posts.

\n\n\n\nNo customizer option to disable post featured image on single views.\n\n\n\n

It is a surprise that the theme does not have this option because it allows users to enable or disable nearly everything possible outside of the post content. It has three different areas where metadata can be shown: before the post title, after the title, and after the content. Users can pick and choose what appears where via a series of checkboxes. The approach is convoluted at best and is a good representation of why we need the site editor. This is not so much the fault of the theme as it is a limitation of the customizer. Instead of ticking and unticking boxes, users could simply move blocks around to their desired location.

\n\n\n\n

The comments are broken in the theme at the moment. Each comment’s text is outputting a simple comma instead of the content. I am sure this will come up in the theme review and be addressed before it goes live.

\n\n\n\n

For users looking for a minimalist, block-ready theme, this will be a solid option once it makes it through the review process. I look forward to the day when themes like Enō are the baseline when designing for the block system.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 17:20:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WPTavern: Full Site Editing Is Partly a ‘Go’ for WordPress 5.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115193\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/full-site-editing-is-partly-a-go-for-wordpress-5-8?utm_source=rss&utm_medium=rss&utm_campaign=full-site-editing-is-partly-a-go-for-wordpress-5-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6930:\"

Today, Josepha Haden Chomphosy announced the results of yesterday’s “go/no-go” demo and decision on whether Full Site Editing (FSE) would land in WordPress 5.8. The site editor and global styles are not landing in the next release. However, several other features should launch and allow users to build their sites with blocks in new ways.

\n\n\n\n

The following people attended the demo:

\n\n\n\n
  • Matías Ventura – Demo Host and Gutenberg Project Lead
  • Matt Mullenweg – WordPress Project Lead
  • Helen Hou-Sandí – Lead Developer
  • Josepha Haden Chomphosy – Executive Director
  • Héctor Prieto – Technical Project Manager
  • Chloé Bringmann – Assisting with administrative and operational logistics
\n\n\n\n

Ventura walked the group through the various FSE features that could be ready for WordPress 5.8, taking questions and discussing along the way. There was also a discussion afterward that focused on ideas beyond the next release.

\n\n\n\n

The following FSE-related features are expected to ship:

\n\n\n\n
  • Improvements from Gutenberg 9.9+.
  • New theme-related blocks like Query, Site Logo, Navigation, and more.
  • theme.json integration, which allows themes to define block defaults and settings.
  • Template-editing mode for the block editor.
  • Block-based widgets screen and customizer integration.
  • New block design tools, such as duotone (SVG filters for images), layout controls, padding, and more.
\n\n\n\n

“Not all of the above are currently ready but there’s some level of confidence that they can be by the time of 5.8,” noted Haden Chomphosy in the post.

\n\n\n\n

This list feels like a solid compromise between launching some of the more polished FSE features and trying to force in those that are probably out of reach for a July 2021 release. The features also provide current users access to new block tools without activating a block-based theme.

\n\n\n\n

The group focused on the Query block for much of the early discussion. The Gutenberg development team will likely change the block’s user-facing name to something less confusing. It also needs a bit more polishing to make things more user-friendly. I am interested in seeing how theme authors use this in conjunction with patterns once this launches.

\n\n\n\n

One other feature that users should look forward to is the pattern directory. While it is not ready for integration into the WordPress admin UI, it does not need to be. Users will be able to copy patterns from the directory and paste them directly into their editor. In time, it should become a part of the built-in experience.

\n\n\n\n

The group seems to have made a good call on which features to include. It is easy to want to push forward and get everything into the hands of users. It can be tougher to pull back and compromise.

\n\n\n\n

Full video of the demo:

\n\n\n\n
\n\n
\n\n\n\n

I had two takeaways that stood out to me more than anything in the meeting.

\n\n\n\n

Takeaway #1: Page Template Editor

\n\n\n\n

In WordPress 5.8, users should gain access to the template editor. On the page-editing screen, it allows users to switch out of content-editing mode. From there, they can work on the overall template. Essentially, for this release, it would serve as a landing page builder.

\n\n\n\n

This is a sort of middle ground between just the block editor and the eventual site editor. I like this route because it does not overwhelm end-users with a complete site-editing experience at once. It is a helping hand, a transition from the current phase to the next, allowing users to familiarize themselves with more advanced tools.

\n\n\n\n

The template editor will work for all users too. They will not be required to run a block-based theme to access it. Because each template would be a one-off use case, WordPress can serve this up without theme authors opting into it.

\n\n\n\n

Many block-ready themes have already been including an “open canvas” type of template. This would remove the need for those unless also including it for third-party builders. It would also solve the portability issue when users switch from a theme that bundles the template and one that does not.

\n\n\n\n

Takeaway #2: Many Block-Based Themes

\n\n\n\n

At the end of the discussion, the group was more or less spitballing some ideas beyond version 5.8. In particular, Hou-Sandí shared a vision of what theme development for the official directory could look like in the era of FSE.

\n\n\n\n

“Because the full site editing, like from a user-facing point of view, is not about page building all the time,” she said. “It’s about tweaking what’s there. Yeah. So I feel like the correct thing for core to do in terms of bundled themes is actually a bunch of small bundled themes.”

\n\n\n\n

I have previously written about how work on Twenty Twenty-Two should already be underway instead of waiting until the last moment to piece a new default theme together for the end-of-the-year launch. The yearly default theme system has served the community well for over a decade now. I am already warming to the idea of turning it on its head and forging a new path.

\n\n\n\n

With FSE, developers do not necessarily have to follow all of the rules of traditional themes. Themes like Kjell Reigstad’s Carrd-like, two-column landing page theme would be well-suited to such an experiment. Smaller, more experimental projects like this could replace the old Twenty* theme system with something new or even complement it.

\n\n\n\n

Hou-Sandí also threw out a few ideas around building block-based themes via a library of CC0 images, the patterns directory, and copying/pasting things from WordPress.org. She likened it to the CSS Zen Garden era. It could even open the possibility of bypassing the theme review process since everything would be pre-vetted.

\n\n\n\n

But, these are thoughts for tomorrow. For now, we are at least getting some initial FSE components.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 21:54:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: Zerodium Temporarily Triples Payout to $300K for WordPress Exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115080\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits?utm_source=rss&utm_medium=rss&utm_campaign=zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4216:\"

Zerodium, one of the most well-known security vulnerability brokers, announced that it is tripling payouts for remote code execution exploits on default WordPress installations. Payouts are typically $100K but have been temporarily increased to $300K.

\n\n\n\n

The company focuses on acquiring original and previously unreported zero-day research. It pays researchers for high-risk vulnerabilities and fully functional exploits, with the highest rewards at $2.5M for ‘full chain, zero-click, with persistence’ Android exploits. This price tag was increased from $200K in September 2019, suggesting Android exploits have become more difficult to find or that demand for them has increased significantly.

\n\n\n\n
\n

We\'re temporarily increasing our payouts for WordPress RCEs to $300,000 per exploit (usually $100K).

The exploit must work with latest WordPress, default install, no third-party plugins, no auth, no user interaction!

If you have this gem, contact us: https://t.co/PBuS1nnpED

— Zerodium (@Zerodium) April 9, 2021
\n
\n\n\n\n

Exploit resellers operate within a sort of grey area of security research. As a standard practice, security researchers are encouraged to report vulnerabilities to the original developer of the software, not an intermediary that may pass it along to a party that may not use the information for good. The appeal of these companies is that they pay more than most organizations, hence the tagline: “We pay BIG bounties, not bug bounties.”

\n\n\n\n

WordPress has an account with Hackerone to pay security researchers for vulnerabilities but payouts are much smaller in comparison to what exploit brokers pay. This makes it a tough choice for security researchers who do this for a living. Professional zero-day hunters are looking for the highest payouts for the vulnerabilities they find, which can sometimes take months or longer.

\n\n\n\n
\n\n\n\n

Zerodium does not reveal who its clients are or what their purpose is for buying the the vulnerabilities. The best case scenario would be a government entity wanting to secure its own systems. Even then one cannot guarantee that they use the exploit ethically or that they don’t inadvertently leak the exploits where they could be used maliciously by others.

\n\n\n\n

Zerodium did not elaborate on why it has increased payouts for WordPress exploits to $300K. WPScan speculates that the company may suddenly have a greater demand for WordPress RCE exploits, combined with WordPress becoming more secure:

\n\n\n\n

This could indicate that WordPress is becoming more secure and that it is getting harder to find the critical security issues that buyers want. On the other hand, we must also assume that these types of exploits already exist and are already being actively sold on Zerodium and other similar platforms.

We could also conclude that if a government is going to pay more than $300,000 on a WordPress RCE exploit, that they intend to use it. World governments may even barter over the exploits so that the seller, in this case, Zerodium, gets the best price.

\n\n\n\n

WPScan also emphasized that with WordPress having such a large presence on the web, an exploit against core with those particular characteristics “would be devastating to the web as a whole if it landed in the wrong hands.”

\n\n\n\n

“Zerodium increasing their prices may indicate that it is becoming harder to find these critical issues in WordPress Core,” WPScan founder and CEO Ryan Dewhurst said. “That, at least, should be good news for WordPress and the web as a whole.”

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 18:11:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WordPress.org blog: WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8387:\"

WordPress 5.7.1 is now available!

\n\n\n\n

This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

\n\n\n\n

WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

\n\n\n\n

You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

\n\n\n\n

If you have sites that support automatic background updates, they’ve already started the update process.

\n\n\n\n

Security Updates

\n\n\n\n

Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

\n\n\n\n
  • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
  • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
\n\n\n\n

Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

\n\n\n\n

Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

\n\n\n\n

For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

\n\n\n\n

Thanks and props!

\n\n\n\n

The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

\n\n\n\n

In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

\n\n\n\n

99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: FSE Outreach Round #5: Venturing out a Query Quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115153\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:161:\"https://wptavern.com/fse-outreach-round-5-venturing-out-a-query-quest?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-round-5-venturing-out-a-query-quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5293:\"

The Full Site Editing (FSE) outreach program is chugging along. Since December, it has called for and completed four rounds of testing. The latest round asks volunteers to provide feedback on the Query block, arguably one of the most crucial pieces of the FSE-puzzle.

\n\n\n\n

Automattic Developer Relations Wrangler Anne McCarthy has been overseeing the program since its inception. Each round of testing asks participants to follow along with a set of instructions while testing a specific feature related to FSE. They can then provide feedback on what does or does not work. Thus far, the program has tested and identified issues for template-editing mode, building a custom homepage, creating a 404 page, and wrangling a restaurant-themed header.

\n\n\n\n

Volunteers for the program should install the latest version of the Gutenberg plugin and the TT1 Blocks theme. Participation is open to all, and further details are available through the announcement post.

\n\n\n\n

The latest test is all about the Query block — McCarthy is dubbing it a “Query Quest.”

\n\n\n\n

“Not many blocks get an entire milestone dedicated to them but the Query Block did!” she wrote. “As the name implies, this is a pretty powerful block allowing you to display posts/pages on your site and customize them as you see fit. For example, you could easily use this block to show off all of your favorite recipes by setting it up to show a specific category of posts.”

\n\n\n\n

Generally, theme authors will primarily work with this block. However, for those end-users who will inevitably want to customize post output on their sites, they may need to at least have some basic familiarity with it or its block variations.

\n\n\n\n

Building With the Query Block

\n\n\n\n

Following the instructions for the testing round netted fairly consistent results between the editor and front end. Each step walks participants through the process of assembling a two-column page with posts from separate categories. Within just a few minutes, I built a few demo posts with custom categories named “Veggie Garden” and “Fruit Trees” (side note: these are pics of my plants). I sped through the process with no issues.

\n\n\n\nUsing Columns to output two category-based Query blocks.\n\n\n\n

However, I am a bit of a pro at this point with the Query block. It is one feature I have been eyeing at least every week for months.

\n\n\n\n

The two primary issues I ran into were with the “read more” link and spacing. For the more-link, it simply did not appear on the front end. When viewing the source code, the wrapper HTML was there, but the actual text was nowhere to be found.

\n\n\n\n

As for spacing, this is more of a theme problem. I have harped on this issue in past testing rounds, and it is the same ol’ tune. TT1 Blocks failed to produce consistent spacing between the front and back end. One example is when using the Post Featured Image block followed by the Post Excerpt block. In the editor, there is little whitespace between the two. On the front end, there is ample room.

\n\n\n\n

Some might say it is the most vital part of page building — nailing down the layout. I have voiced my concerns ad nauseam on spacing, so I have nothing new to report on the subject.

\n\n\n\n

I decided to take a few extra steps and move beyond the basic testing instructions. Because it is springtime, I have been enjoying the outdoors a bit more as of late. I wanted to spruce up my Query block design. I wrapped the initial design in a Cover block with a garden-related background image, dropped in some header and intro text, and created boxes for my posts with the Group block. With a splash of color, some font-size changes, and a Spacer block here and there, I built something with a tiny bit more personality.

\n\n\n\nCustom layout with the Query, Cover, and Columns blocks.\n\n\n\n

Testing never has to be boring. I encourage participants to grab inspiration from their own lives as they venture out on their Query Quest.

\n\n\n\n

While I have my complaints about the site editor and realize we are miles away from the long-term vision, it is also amazing what is now possible. Even six months ago, building something as simple as this was not happening. More and more each day, I believe a public beta of the site editor and other FSE components in WordPress 5.8 is not such a bad idea.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 22:38:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"BuddyPress: BuddyPress 7.3.0 Maintenance & Security Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318066\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://buddypress.org/2021/04/buddypress-7-3-0-maintenance-security-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1768:\"

BuddyPress 7.3.0 is now available. This is a security and maintenance release. All BuddyPress installations are strongly encouraged to upgrade as soon as possible.

\n\n\n\n

The 7.3.0 release addresses four security issues:

\n\n\n\n
  • A vulnerability was fixed that could allow a member to create a group on behalf of another member via a REST API endpoint.
  • A vulnerability was fixed that could allow members to favorite any private/hidden activities they shouldn’t access to via a REST API endpoint.
  • A vulnerability was fixed that could allow the creator of a group to still be able to update or delete it after being demoted as a regular member of it via a REST API endpoint.
  • A vulnerability was fixed that could allow group’s banned members to remove themselves from the group and still be able to join it or request a membership to it via a REST API endpoint.
\n\n\n\n

These vulnerabilities were reported privately to the BuddyPress team by Kien Hoang, in accordance with WordPress’s security policies. Our thanks to the reporter for practicing coordinated disclosure.

\n\n\n\n

Version 7.3.0 also fixes a bug about our WP CLI Scaffold command.

\n\n\n\n

For complete details, visit the 7.3.0 changelog.

\n\n\n\n

Update to BuddyPress 7.3.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 05:09:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WPTavern: WordCamp Europe 2021 Opens Call for Speakers and Workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/wordcamp-europe-2021-opens-call-for-speakers-and-workshops?utm_source=rss&utm_medium=rss&utm_campaign=wordcamp-europe-2021-opens-call-for-speakers-and-workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1836:\"

WordCamp Europe 2021 will be taking place online, June 7-10. This will be the second year in a row that the event has not been held in person due to the pandemic, but organizers are incorporating feedback from the first edition to improve upon it.

\n\n\n\n

Speaker applications are now open and first-time speakers are encouraged to apply. Organizers posted a list of example topics for inspiration, including advanced development, frameworks, security, storytelling, website performance optimization, and more.

\n\n\n\n

WCEU 2021 will be running two tracks, with two different presentation formats: long talks (20-minute talk with a 10-minute Q&A) and lightning talks (10-minute talk with a 5-minute Q&A). Prospective speakers are allowed to submit up to three different presentation topics on their applications. The call for speakers is open until April 24, 2021, and selected speakers will be contacted the first week of May ahead of mid-May public announcements.

\n\n\n\n

WCEU organizers also plan to continue the successful tradition of hosting workshops after 77% of attendees who completed a feedback survey requested their return. Workshop sessions will be 45 minutes long and hosts will have workshop assistants available to them. Organizers are aiming to schedule a diverse lineup of workshops with topics like “Starting with WordPress,” accessibility, development, security, and SEO, to name a few.

\n\n\n\n

The call for workshops is on the same timeline as speaker selection, with a closing date of April 24, 2021.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:40:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:172:\"HeroPress: A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3529\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:152:\"https://heropress.com/essays/a-journey-toward-freedom-with-wordpress/#utm_source=rss&utm_medium=rss&utm_campaign=a-journey-toward-freedom-with-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:46477:\"\"Pull

यो लेख नेपाली भाषामा पनि उपलब्ध छ।

\n

Hello world!

\n

“Always be thankful for what you have, many people have nothing!” – Buddha

\n

Yes, I’m immensely grateful to be writing this essay! I’m fortunate to have had the education that gave me the capacity to aspire, get into a WordPress job, meet people from around the world, connect with Topher of HeroPress, and tell my story!

\n

How I Landed Into a WordPress Job

\n

My WordPress journey began by chance! Honestly, I didn’t know WordPress until I landed on a WordPress job.

\n

Back then, I was doing my Master’s degree in Sociology and had just left my work as a school teacher. I was looking for a job that would allow me to focus on my study and pay me a decent salary.

\n

I had a long career of over 5 years in teaching which was a full-time job. In addition to 9 AM to 5 PM work, we had to work extra hours at home – designing lesson plans, evaluating assignment works, exams, etc. – so I was finding it hard to manage time for my own study. I just needed a job that wouldn’t require me to work after office hours.

\n

After applying to several different positions, I finally got a content writing job. Fortunately, the company turned out to be a successful WordPress development company based in Nepal (Access Keys).

\n

Well, it’s how my WordPress story began! But it’s not the full story.

\n

For Hope! My Family’s Struggle for Education

\n

I come from a remote village in the hills of Nepal, not connected by any means of transportation until recently. We had to walk a minimum of an hour to go to the nearest school, from where I completed my secondary education.

\n

But that time wasn’t just about walking hours to reach school. It was also about poverty, hardships, and the burning desire to overcome them someday!

\n

Schools were first opened in the late 1970s in our village but my parents couldn’t even complete the lower secondary level. Pervasive poverty and lack of awareness both were responsible for it.

\n

Time passed but our family’s financial condition was still the same. But my parents had understood that the only way out of it was education. Hence, they decided to send us to school, no matter what. Our father sometimes as a seasonal migrant worker to India, sometimes as a porter, brought us (me and my siblings) school supplies. Our mother worked day and night, managed home, family, and our farm.

\n

After completing secondary level education, I moved to a nearby city in the guardianship of my aunt. With minimal financial support from my parents, my aunt helped me complete higher secondary school.

\n

However, she had her own hardships. She was a single mother without any academic degree so had to work minimum-wage jobs which hardly met her and her family’s needs.

\n

Therefore, I couldn’t simply add to her burden. And on the other side, my parents had to support my younger siblings too. So, the only choice I had, if I wanted to study further, was to support myself, for which I started teaching in a school.

\n

Breakthrough through English Language Skills

\n

I got my life’s first job but it wasn’t easy. I joined a private English-medium school as a teacher. But my schooling as well as the undergraduate program had been in our national language, Nepali, and not in English. We had “English” as a subject in school but the teacher taught us English in the Nepali language. We never spoke in English. Yet, my English writing was fine as I was a good student.

\n

When I joined an English medium school as a teacher, I had no choice but to improve my English. I practiced speaking English with primary-level students. Within a year, my spoken English improved considerably.

\n

Along with my teaching job, I continued my college. It was a super-busy schedule but was the only option I had! With my earnings, I paid my college fees, covered some of my living expenses, and also supported my family. Well, this is how I completed my Bachelor’s degree and started my Master’s degree too.

\n

Later on, the same teaching job that I started to sustain myself enabled me to apply for an English content writing job! As of now, I’m quite confident about my English language skills but still feel hesitant when I have to talk with native speakers.

\n

My WordPress Journey – Toward Freedom

\n

As I stated earlier, I landed on my first WordPress job when I was looking for the type of job that would allow me free time for my study. Yes, and that’s from where my journey toward freedom began!

\n

During my interview, I explained to the CEO of Access Keys (Arjun Singh Thakuri) about the flexibility that I need in my new job so that I could also focus well on my studies. I was hired and could join from 11 AM instead of the usual 9:30 AM after attending my classes in the morning. It was a moment of gratitude and great relief for me!

\n

I learnt WordPress at Access Keys. First, by reading Wikipedia and other blogs on the web. Second, from Arjun sir as well as from the senior developers and the designers at the company. I used to have a lot of questions, and my team at Access Keys helped me get answers to those questions. Third, by doing. I set up a WordPress.com blog, a testing site on localhost, and tried different options.

\n

My curiosity was definitely the driving force, but above all, ‘the way WordPress is built’ is what made it possible for someone like me (with no technical background) to understand a powerful website creation software, WordPress.

\n

As for content writing skills, I started with list articles (theme collections). Arjun sir mentored me for my first few articles. Later, Access Keys hired an experienced SEO professional Amin Ghale who taught me more about SEO and content writing. He is a mentor cum brother to me.

\n

When in Access Keys, I joined WordCamp for the first time – WordCamp Nepal 2015. The event was grand! I met people involved in WordPress from other companies in Nepal and abroad, heard their stories, and learnt about new innovations in WordPress!

\n

I was truly enthralled by the event and had truly wished to give a presentation in a WordCamp someday. And I did, the very next year! I shared what I had learnt so far on the title ‘SEO Copywriting for WordPress’ at WordCamp Kathmandu 2016.

\n

Later, I also joined a panel ‘Girls in WordPress – Story, Experience, Opportunity, and Career’ in WordCamp Biratnagar 2018 along with a dear friend Ganga Kafle and my WordPress sister Prithu Singh Thakuri. Now, looking forward to joining some international WordCamps!

\n\n\"Speaking\n\"Sunita\n\"\"\n\"A\n\n

About my WordPress career, I’m still in WordPress content writing.

\n

After Access Keys, I went to ThemeGrill, another successful WordPress business in Nepal, with even more flexibility and freedom in the working hours.  Sanjip Shah and Rabin Shrestha (Founders of ThemeGrill) encouraged me to learn and explore this field even more. After some time, ThemeGrill hired a few new writers and I started mentoring them.

\n

Next, I joined Awesome Motive, the company behind the popular WPBeginner blog. In the beginning, I wrote for IsItWP and MonsterInsights blog but later also got the opportunity to write for WPBeginner. When at Awesome Motive, I got an even better opportunity to learn WordPress and marketing skills.

\n

My supervisors Shahzad Saeed from India, Noumaan Yaqoob from Pakistan, Lauren Tharp, and Keri Lynn Engel from the United States helped me be better at my work. Above all, I was super lucky to have Syed Balkhi himself tutoring me every week on various aspects of content writing and marketing. I still remember how he explained the “success gap” over multiple calls, over weeks. He’s really a wonderful mentor!

\n

As of now, I work with beginners who’re just starting their careers in WordPress content writing. I’m trying to help small WordPress businesses and blogs with the marketing skills I’ve acquired so far. For example, SiteSaga.com, ZakraTheme.com are some of the sites I’m currently working on. Yet, I feel there’s a lot more for me to learn!

\n

Now, I want to make my final and important point – freedom!

\n

First, my WordPress job allowed me the freedom to work on my time (so I could manage time for my study too). But more importantly, I meant the ‘economic freedom’.

\n

For an individual, economic independence is a major freedom factor! Income isn’t everything, but definitely a basic aspect of human development!

\n

My salary at my first WordPress job wasn’t high, but increments since then are cool! Plus, we can always do some extra work. For instance, after my talk at WordCamp, I got a lot of freelance work opportunities, which I did during my free time and earned some extra bucks. Then, I was able to support my family even better.

\n

Finally, it’s the ‘feeling of freedom’ that, I have now, enabled me to share this story. I always had an ‘inferiority complex’ due to which I could never tell anyone about my family or our socio-economic background. Even if someone asked, I’d simply avoid the question or lie to them.

\n

I’ve now overcome the situation as well as the fear of being judged. And, I believe it’s the ‘freedom’ in its truest sense.

\n

That’s my story of freedom! Story of our freedom!

\n

Now is Great! I Have Greater Aspiration for the Future!

\n

Yes, now is great! I have a good career as a WordPress content writer, editor, and mentor. I also joined the MPhil degree and will soon complete it.

\n

For the future, have greater aspirations!

\n
    \n
  1. I hope to continue doing what I do – teaching beginners copywriting skills and help them achieve their part of freedom. WordPress is a gift for people like me!
  2. \n
  3. I want to earn a Doctorate degree; not yet content being a student! I haven’t planned it yet but I really wish to do it in this life!
  4. \n
  5. I want to give back to my community. Our village hasn’t changed much – still struggling with poverty. Even today, most students from my village fail to complete their university degree in lack of a support system. I firmly believe education is vital to change; for individuals as well as society as a whole. So, I really wish to work on it but I’m not yet sure how! I hope time will answer!
  6. \n
\n

Thanks for reading my story! Thanks, dear friend Topher for this opportunity! It’s a privilege to be sharing my story on HeroPress (feeling like a hero!). :D

\n

Thank you to every single individual who supported my journey to this date! And, thanks to the universe for everything I have!

\n
\n

वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा

\n

नमस्कार संसार!

\n

तपाईंसँग जे छ त्यसैमा सदैव कृतग्य रहनु, किनकी धेरै मानिसहरू संग केहि पनि हुन्न। – बुद्ध

\n

हो, म यो लेख लेख्दै गर्दा एकदमै खुसी र आभारि छु। म आफुलाई एकदमै भाग्यमानी ठान्दछु कि मैले जस्तोसुकै परिस्थितिमा पनि शिक्षा आर्जन गर्न पाए जसले मलाई सपना देख्न प्रेरित गर्यो, वर्डप्रेसमा काम गर्न सक्षम बनायो, संसारभरिका मानिससंग भेटघाट गर्ने अवसर दिलायो, हिरोप्रेसका टोफर संग भेत्न र मेरो कथा सबैसंग बाड्ने अवसर दिलायो।

\n

मेरो वर्डप्रेस यात्राको शुरुवात

\n

मेरो वर्डप्रेस यात्रा संयोगवश सुरु भएको हो। साच्चिकै भन्नुपर्दा मैले काम गर्न सुरु गर्नु भन्दा अगाडी मलाई वर्डप्रेसको बारेमा केही पनि थाहा थिएन।

\n

त्यो समयमा म समाजशास्त्र बिषयमा मास्टर डिग्री गरिरहेकी थिएँ। समयको अभावले गर्दा भर्खरै विद्यालय शिक्षण पेशाको काम पनि छोडेको थिएं। त्यसैले म यस्तो कामको खोजीमा थिए जुन बाट राम्रो तलब र मेरो पढाईको लागि केहि समय पनि बच्न सक्थ्यो।

\n

मैले शिक्षण पेशामा लगभग ५ बर्ष सम्म काम गरें। ती दिनहरुमा म विहान ९ बजेदेखि दिउँसो ५ बजे सम्म स्कुल पढाउथे । अनि फेरि राति अर्को दिनको कक्षाका लागि तयारी र गृहकार्य जाँच गर्दा गर्दै ठिक्क हुन्थ्यो। जसले गर्दा मलाई आफ्नो पढाई सम्हाल्न गाह्रो भइरहेको थियो। त्यसैले मलाई खासगरि अफिस समयपश्चात अरु थप काम गर्नु नपर्ने खालको काम चाहिएको थियो।

\n

धेरै खालको जागिरहरूमा आवेदन दिएपश्चात बल्ल कन्टेन्ट राइटिङ्ग (इन्टरनेटको लागि लेख लेखन) को जागिर पाए। भाग्यवश मैले काम पाएको कम्पनी वर्डप्रेस विकासको क्षेत्रमा नेपालको एक सफल कम्पनी रहेछ (एक्सेस किइज)।

\n

हो यसरी नै मेरो वर्डप्रेसको यात्रा सुरु भयो, तर यो नै सम्पुर्ण कथा भने हैन।

\n

शिक्षाको लागि मेरो परिवारको संघर्ष र आशा

\n

नेपाल को पहाडी भेगमा अवस्थित एउटा गाउँमा मेरो जन्म भएको हो जहाँ आवतजावत गर्नलाई अझैसम्मपनि भरपर्दो सडक अनि गाडीहरूको ब्यबस्था भएको छैन। हाम्रो घरबाट नजिकैको विद्यालय नै १ घण्टा को बाटो हिडेर पुग्नुपर्थ्यो र त्यहि विद्यालय बाट मैले कक्षा १० सम्म को अध्ययन पुरा गरें।

\n

तर हाम्रो गाउँको त्यो समय घन्टौ हिड्नुपर्ने दुखका बारेमा मात्र थिएन। सर्वत्र ब्याप्त गरिवी, खानलाउनको लागि कठिन संघर्ष, र यि तमाम दुखबाट कुनै दिन मुक्त हुने प्रबल आकङ्क्षाको पनि समय थियो।

\n

हाम्रो गाउँमा विद्यालय सन १९७० को दशक अन्त्य तिर खुले तर मेरो आमाबाबुले भने गरिवी र अशिक्षाको कारण निम्न माध्यमिक तहको शिक्षा सम्म पनि पुरा गर्न सक्नुभएन। समय बित्यो, हामि बिद्यालय जान थाल्यौ तर पनि हाम्रो परिवारको आर्थिक अवस्थामा भने कुनै सुधार आएको थिएन। तरपनि मेरा बुबाआमाले भने शिक्षाको महत्व बुझिसक्नु भएको थियो। त्यसैले उहाहरुले जस्तो सुकै अप्ठ्यारो परिस्थिति भए पनि हामी लाई विद्यालय पठाउने निधो गर्नुभयो।

\n

आपा (राई बान्तावा भाषामा बुबा) कहिले भारततिर मौसमी कामदार को रूपमा त कहिले भरियाको रूपमा काम गर्न जानुहुन्थ्यो। अनि फर्केर आउँदा म र मेरो बहिनीहरू लाई किताब कापी र स्कुलको कपडा हरू ल्याइदिनु हुन्थ्यो। हाम्रो आमा भने रातदिन आफैं खटेर घरपरिवार, खेतिपाती र गाइबस्तु सम्हाल्नु हुन्थो।

\n

गाउँकै बिध्यालय बाट माध्यमिक तह उत्तीर्ण गरीसके पछि म नजिकै को सहरमा फुपुसंग बस्दै पढ्न थालें। मेरो फुपुले मलाई उच्च शिक्षा हासिल गर्नमा धेरै मद्दत गर्नुभएको छ।

\n

तर त्यो बेला उहाँको लागि पनि कठिन समय थियो। कुनै पनि शैक्षिक डिग्रि नभएको एक एकल महिलाका लागि सहरमा आफु अनि आफ्नो सन्तानलाइ पाल्नु, हुर्काउनु, पढाउनु सानो दुख थिएन। उहाँले दिनभर ज्याला मजदुरि गरेर कमाएको पैसाले बिहानबेलुका को छाक टार्न मै ठिक्क हुन्थ्यो।

\n

त्यसैले म आफैंपनि उहाँमाथि अझ भार थपिन चाहन्नथे। फेरि अर्को तर्फ मेरो बाबाआमा ले पनि त अरु साना बहिनीहरू लाई हेर्नुपर्थ्यो। अब भने मसंग आफ्नो उच्च शिक्षालाइ निरन्तरता दिनको लागि एउटै मात्र बिकल्प थियो – आफैले कमाएर पढ्ने। यसैकारण मैले एउटा विद्यालयमा पढाउन शुरु गरें।

\n

अङ्ग्रेजी भाषाको ज्ञानमार्फत उडान आरम्भ

\n

मैले मेरो जीवनको पहिलो जागिर त पाए तर त्यो सोचेजस्तो सजिलो थिएन। मैले शिक्षक को रूपमा एक निजी विद्यालयमा प्रबेश गरे। तर म आफैले भने सरकारी विद्यालयमा पढेको थिए जहाँ नेपाली भाषामा पढाई हुन्थ्यो। हाम्रो कक्षामा अङ्ग्रेजी एउटा मात्र अनिवार्य विषय थियो तर त्यो पनि शिक्षकहरु ले नेपाली भाषामा नै पढाउनु हुन्थ्यो। हामीले कहिल्यै पनि अङ्ग्रेजी भाषा बोलेनौं। यधपी म राम्रो बिध्यार्थीहरु मध्यको एक थिए, जसकारण मेरो अङ्ग्रेजी लेखन भने सामान्यतया राम्रो नै थियो।

\n

मैले अङ्ग्रेजी शिक्षकको रूपमा पढाउन थालिसके पछि भने मसंग अङ्ग्रेजी सुधार्नु भन्दा अरू कुनै उपाए थिएन। त्यसैले मैले प्राथमिक तहका बिध्यार्थीहरूसँग अङ्ग्रेजीमा बोल्न सुरु गरें। फलस्वरूप एकवर्ष भित्र मेरो अङ्ग्रेजी बोलाईमा धेरै सुधार आयो।

\n

शिक्षण पेशासंगै मैले मेरो पढाईलाई पनि अगाडि बढाउदै लगें। त्यो बेला मेरो दैनिकि धेरै नै व्यस्त थियो, तर फेरि अर्को विकल्प पनि त थिएन। मेरो तलबले आफ्नो पढाई खर्च जुटाउँदै अलिअलि परिवार लाई पनि सहयोग गर्न थाले। हो यसरी नै मैले ब्याचलर डिग्री पुरा गरें र मास्टर डिग्री पनि शुरु गरें।

\n

मैले आफ्नो आवश्यकता पुर्ति गर्नको लागि सुरु गरेको शिक्षण पेशाले नै मलाई अङ्ग्रेजी कन्टेन्ट राइटिङ्गको जागिरमा आवेदन दिने साहस दियो। अहिलेको कु्रा गर्ने हो भने, म मेरो अङ्ग्रेजी भाषाको बोलाई र लेखाईसंग केही हदसम्म विश्वस्त छु तर अझै पनि अङ्ग्रेजी नै मातृभाषा भएका बिदेशिहरुका अगाडि बोल्न भने केहि हिच्किचाउछु।

\n

मेरो वर्डप्रेस यात्राः स्वतन्त्रता तिर

\n

मैले अगाडि नै भनेको जस्तै मेरो पढाईलाई हानी नगर्ने खालको काम खोज्दै गर्दा संयोगवश वर्डप्रेसमा प्रवेश गरेको थिएँ। र यहि बाट नै मेरो स्वतन्त्रता तिर को यात्रा सुरु भएको हो।

\n

मैले कामको लागि अन्तर्वार्ता दिँदै गर्दा नै एक्सेस किइज कम्पनीको प्रमुख (अर्जुन सिंह ठकुरी) संग आफ्नो पढाईको लागि चाहिने समयको बारेमा पनि कुरा गरेको थिएँ। उहाँले सजिलैसंग सहमति जनाउनु भयो। फलस्वरूप मैले आफ्नो बिहान को कलेज सकेर ११ बजेदेखि कार्यालय जाने भए जबकि अफिस समय भने ९ः३० बजे नै शुरु हुन्थ्यो। त्यो पल मेरो लागि कृतज्ञता र ठूलो राहतको क्षण थियो।

\n

एक्सेस किइज कम्पनीमा काम गर्दा नै मैले वर्डप्रेस सिके। पहिलो, विकिपीडिया र अन्य ब्लग हरूलाई धेरै पढे। दोस्रो, नजानेको सानासाना कुराहरू अर्जुन सर र अरू अनुभबी कर्मचारी (डेभलपर, डिजाइनर) हरु संग सोध्थे। र उहाँ हरूले पनि धेरै सहयोग गर्नुहुन्थ्यो। तेस्रो, मैले आफैले वर्डप्रेस डटकम ब्लग स्थापना गरें, परिक्षणका लागि वेबसाइट बनाए र त्यहाँ हरेक कुरा जान्ने र बुझ्ने कोशिस गरे।

\n

अवश्य पनि मेरो जिज्ञासु भावना नै मलाई अगाडि बढाउने शक्ती थियो। यधपी म जस्तो प्राविधिक पृष्ठभूमि नभएको ब्यक्तिलाई वेबसाइट बनाउन सक्ने शक्तिशाली सफ्टवेयर, वर्डप्रेस को बारेमा बुझाउनमा भने वर्डप्रेस आफै सरल हुनु र इन्टरनेटमा प्रशस्ट सामग्रि पाइनुको ठूलो भुमिका छ।

\n

मैले कन्टेन्ट राइटिङ्ग गर्ने क्रमको शुरुवात भने वर्डप्रेस थिमको सुचि बनाउने लेखहरुबाट गरें। सुरूको लेखहरूमा अर्जुन सर नै मेरो सल्लाहकारको रूपमा रहनु भयो। पछि एक्सेस किइज कम्पनीले अनुभबी एसईओ विज्ञ अमिन घले लाइ नियुक्ति गर्यो र उहाँले नै मलाई धेरै कुराहरु सिकाउनुभयो। उहा मेरो गुरुका साथै दाई पनि हुनुहुन्छ।

\n

म एक्सेस किइज कम्पनीमा काम गरिरहेकै बखत पहिलो पटक “वर्डक्याम्प नेपाल २०१५“ मा सहभागी भए। यो कार्यक्रम भव्य थियो। मैले त्यहाँ वर्डप्रेसमा काम गर्ने नेपालका तथा अन्य देशबाट आएका ब्यक्तिहरुसंग भेटें, उनीहरूको कथा सुने र वर्डप्रेसको बारेमा अझ नयाँनयाँ कुराहरु थाहा पाए।

\n

म त्यो कार्यक्रमबाट धेरै नै प्रभावित भए र त्यतिबेलानै कुनै दिन वर्डक्याम्पमा वक्तव्य दिने अठोट गरे। नभन्दै मैले अर्को सालको “वर्डक्याम्प काठमान्डु २०१६“ मा वक्ता को रूपमा सहभागी भए र “वर्डप्रेसको लागि एसइओ कपिराईटिङ“ शिर्षक मा वक्तव्य दिए।

\n

पछि फेरि बिराटनगर मा आयोजना भएको “वर्डक्याम्प बिराटनगर २०१८“ मा पनि सहभागी भए। यसमा म, साथी गंगा काफ्ले र प्यारी बहिनी प्रिठु शिंह थकुरीले “वर्डप्रेसमा केटीहरुः अनुभव, कथा, अवसर, र चुनौती“ शिर्षक मा छलफल गरेका थियौ। अब भने, मलाई अरु अन्तर्राष्ट्रिय वर्डक्याम्प हरूमा सहभागी हुन मन छ।

\n\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\n

म अझै पनि वर्डप्रेस कन्टेन्ट राइटिङ्ग नै गर्छु।

\n

मैले एक्सेस किइजमा काम गरिसके पछि नेपालको अर्को सफल कम्पनी थिमग्रिलमा प्रवेश गरे। त्यहाँ अझै धेरै काममा सौलियत र समयमा लचकता थियो। थिमग्रिल कम्पनी का संस्थापक-सन्चालक द्वय सन्जिप शाहरबिन श्रेष्ठ सरले झन धेरै कुरा सिक्ने हौसला दिनुभयो। केही समय पछाडि कम्पनी ले नयाँनयाँ लेखकहरु ल्यायो र मैले उनीहरूलाई सिकाउन थाले।

\n

पछि मैले अमेरिकामा अवस्थित अवसम मोटिभ कम्पनीमा पनि काम गरें। सुरु सुरुमा “इजइटडब्लुपि“ र “मन्स्टरइनसाइट्स“ ब्लगमा लेखे र पछि “डब्लुपिबिगिनर“ मा पनि लेख्ने मौका पाएं। म यसै कम्पनीमा काम गरिरहेकै बेला वर्डप्रेस र मार्केटिङ सम्बन्धि अझ धेरै कुरा जान्ने मौका पाए।

\n

मेरो काममा सुधार आउनुमा मुख्यतया मेरो निरिक्षक साहजाद सइद (भारतबाट), नवमान याकुब (पाकिस्तानबाट), लउरेन थार्पकेरि लिन एन्जेल (अमेरिकाबाट) को धेरै ठूलो भुमिका छ। यतिमात्र हैन कम्पनीको प्रमुख शाइद बाल्खि संग काम गर्न पाउनु पनि मेरो लागि भाग्यको कुरा थियो। उहाँले मलाई प्रत्येक हप्ता कन्टेन्ट राइटिङ्ग को बारेमा बिस्तृत रुपमा सिकाउनु हुन्थ्यो। मलाई अझै याद छ उहाँले थुप्रै पटकको संवादमा “सफलताको अन्तर” को बारेमा सिकाउनु भएको थियो। उहाँ साच्चिकै राम्रो प्रशिक्षक सल्लाहकार हुनुहुन्छ।

\n

अब अहिलेको कुरा! हाल म वर्डप्रेस लेख लेखन क्षेत्रमा भर्खर आउदै गरेका ब्यक्तिहरु संग काम गर्छु। मैले अहिलेसम्म बटुलेको अनुभवहरु को माध्यमबाट साना वर्डप्रेस विजिनेश र ब्लग लाई सहयोग गर्न खोजिरहेको छु। जस्तो कि म अहिले “साइटसागा डटकम“ र “जाक्राथिम डटकम“ मा कार्यरत छु। यधपि मेरो आफ्नै सिक्ने क्रम भने सदैब जारि नै छ।

\n

अब भने म आफुलाइ लागेको सबभन्दा महत्वपुर्ण कुरा भन्न चाहान्छ। यो क्षेत्रमा मैले पाएको सबभन्दा महत्वपूर्ण कुरा भनेको “स्वतन्त्रता“ हो।

\n

सर्वप्रथम त मेरो वर्डप्रेसको कामले मलाई समयको स्वतन्त्रता दिलायो। मेरो मतलब यो काम म आफुले भ्याएको समयमा गर्न सक्थे जसले गर्दा मेरो आफ्नै पढाईको लागि समय छुटाउन पाए। अनि दोस्रो कुरा भनेको “आर्थिक स्वतन्त्रता“।

\n

आर्थिक आत्मनिर्भरता प्रत्येक व्यक्तिकालागि स्वतन्त्रता प्राप्तिको एक प्रमुख आधार हो। आम्दानी नै सबै कुरा हो भन्ने त होइन तर यो मानव विकासको एक आधारभुत पक्ष भने अवश्य पनि हो।

\n

वर्डप्रेसमा मेरो शुरुको तलब ठिकै मात्र थियो तर यसको वृद्धि क्रमशः राम्रो हुदै गयो। उदाहरणका लागि, मैले वर्डक्याम्पमा वक्तव्य दिइसकेपछि भने मलाई अरू पनि धेरै फ्रिल्यान्सिङ्ग काम गर्ने अवसरहरू पाए जुन काम मैले खालि समयमा गर्थे र केही थप पैसा पनि कमाए। त्यसपछि मैले मेरो परिवारलाई पनि राम्ररि सहयोग गर्न थाले।

\n

अबभने, म स्वतन्त्रता बारे अन्तिम कुरा भन्न चाहान्छु। मलाइ लाग्छ यो स्वतन्त्रताको अनुभुति नै त हो जसले मलाइ यो लेख लेख्न सक्षम बनायो। किनभने मलाइ जहिल्यै पनि लघुताबासले थिचिरहन्थ्यो र आफ्नो परिवार अनि आफ्नो सामाजिक-आर्थिक अवस्थाबारे कसैलाइ पनि भन्न सक्दिनथे या चाहान्नथे। यदि कसैले सोधिहाले पनि, म त्यो प्रश्नलाइ बेवास्ता गर्थे वा ढाटेर जवाफ दिन्थे।

\n

अहिलेको सन्दर्भको कुरा गर्दा, मैले त्यो परिस्थिति र अरुले के सोच्छन भन्ने डर दुबैमाथि जित हासिल गरेझै लाग्छ। र मलाइ यो नै साचो अर्थमा ‘स्वतन्त्रता’ हो जस्तो लाग्छ।

\n

यही हो मेरो स्वतन्त्रता को कथा! हाम्रो स्वतन्त्रता को कथा!

\n

आज राम्रो छ र मसँग अझै ठुला आकांक्षाहरु छन् भविष्यको लागि!

\n

हो, मेरो वर्तमान राम्रो छ! वर्डप्रेस कन्टेन्ट राइटर, एडिटर, र सल्लाहाकार रूपमा मेरो करियर राम्रो छ। म एमफिल डिग्री पनि गर्दैछु र छिट्टै पुरा पनि गर्नेछु।

\n

तर अझपनि भविष्यको लागि मेरा धेरै ठुला आकांक्षाहरु छन्!

\n
    \n
  1. म जे गरिरहेको छु त्यसैलाई निरन्तरता दिन चाहन्छु – नयाँ लेखकहरुलाई कपिराइटिङ्गको सिप सिकाउदै स्वतन्त्रता को अनुभुति दिलाउन। म जस्तो मान्छेहरू को लागि वर्डप्रेस एक अमुल्य उपहार हो।
  2. \n
  3. म कुनैदिन विद्यावारिधि गर्न चाहन्छु। यसको लागि यतिबेला भने कुनै योजना बनाएको छैन तर जसरी पनि यसै जुनिमा पुरा गर्ने इच्छा छ।
  4. \n
  5. म मेरो समुदायलाई सहयोग गर्न चाहन्छु। हाम्रो गाउँमा अझै पनि धेरै परिवर्तन आएको छैन – गरिबीको अवस्था यथावत् नै छ। राम्रो सहयोग प्रणालीको अभावमा अहिले पनि मेरो गाउँका धेरै जसो विद्यार्थीहरु स्नातक तह सम्मको अध्ययन पुरा गर्न सम्म असमर्थ छन्। मलाइ चै ब्यक्ति र समाज सबैको परिवर्तन को लागि शिक्षा एक्दमै महत्वपुर्ण हुन्छ भन्ने कुरामा दृढ विश्वास छ। त्यसैले म यो क्षेत्रमा काम गर्न चाहन्छु, तर कसरी गर्ने भन्ने कुरा भने थाहा छैन! मलाई आशा छ, समयले मेरो प्रश्नको जवाफ अवश्य दिनेछ!
  6. \n
\n

मेरो कथा पढ्नुभएको यहाँहरु सबैलाई धन्यवाद! मुख्यतः मलाई यो अवसर दिने साथी टोफर लाई धेरै धेरै धन्यवाद! हिरोप्रेसमा मेरो कथा सुनाउन पाउँदा म धेरै नै खुसि छु (आफुलाइ हिरो जस्तै महसुस गरिरहेकोछु)।

\n

मलाई यो स्थान सम्म पुग्न मद्दत गर्ने सम्पूर्ण व्याक्तीहरूलाई धेरै धेरै धन्यवाद! मैले पाएका सम्पूर्ण चिजहरुको लागि ब्रह्माण्ड लाई धन्यवाद!

\n

The post A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:24:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:10:\"Sunita Rai\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WPTavern: Yet Another WordPress Block Library Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115095\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:149:\"https://wptavern.com/yet-another-wordpress-block-library-plugin?utm_source=rss&utm_medium=rss&utm_campaign=yet-another-wordpress-block-library-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4107:\"

You are the team manager at a WordPress development company. You just spent the last couple of months directing the group of highly skilled developers that you oversee to create the latest and greatest block library for WordPress. Your developers just spent those two months recreating what has already been done at least a couple of dozen times.

\n\n\n\n

You go through your product launch list:

\n\n\n\n

Testimonial block? Check.

\n\n\n\n

Accordion block? Check.

\n\n\n\n

Countdown block? Check.

\n\n\n\n

Meme-creation block? Coming in version 2.0.

\n\n\n\n

Everything seems to be in order. Your company has a new and shiny wheel, a bullet point on its product list, and a promise to end-users that you are keeping up with the times, launching a set of blocks that they can pick up literally anywhere else. But, yours is better because you built it in-house.

\n\n\n\n

Color me unimpressed.

\n\n\n\n

Maybe you are just trying to make a dent in the market, grabbing your share of the pie that companies have been snacking on for the last couple of years. Every time I see another forms plugin, I wonder how they will remain competitive, but there have been success stories. However, the ones who tell those stories always had a fresh take on an old concept.

\n\n\n\n

I worry about the upcoming years when the block market is simply a race to the bottom. Everyone has built their plugin with 100+ blocks, 500+ patterns, and more customization options than you can count. It is the story of the early ThemeForest days where premium themes amassed a gluttonous amount of theme options. The top sellers were continually one-upping each other with another notch on their feature lists.

\n\n\n\n

As a user, developer, and journalist who writes about these products, I am often lost. I look at a new plugin and ask myself if I had already checked it out and dismissed it last week. I am always searching for something innovative, but the lines between one project to the next are blurry. I am swirling in a sea of icon, shape divider, post list, and container blocks — just looking for a life preserver to pull myself out.

\n\n\n\n

Don’t get me wrong. I am a wheel recreator myself. I have built products that others had already created. In some cases, I launched something better. In others, I failed miserably. I may be a little biased, but I always felt like I was bringing something new to the table. And that is where I take issue.

\n\n\n\n

I want to see you create a block that no one has ever done before, such as drawing digital sheet music or a side-scrolling T-Rex game.

\n\n\n\n

I want to see you extend the editor with new tools like inserting Emoji or Font Awesome icons into Rich Text.

\n\n\n\n

I want to see you overhaul the editor and create a Markdown-friendly experience.

\n\n\n\n

Instead of an “advanced” list block of your own design, create a plugin that extends the core List block with custom options. Skip that custom gallery. Bring something new to the existing Gallery block. Got a custom music player? Use it to overhaul the Audio block instead of wrapping it up separately.

\n\n\n\n

The community has all the tabs, buttons, and progress bars it can handle. Of course, if you are raising the bar on all of these same ol’ blocks, keep pushing forward. Let’s see what you can do. Otherwise, keep thinking outside of the box.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 20:34:08 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9022:\"

WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

\n\n\n\n

Embrace Who You Are and Your Journey

\n\n\n\n

In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

\n\n\n\n

Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

\n\n\n\n\"Tyler\n\n\n\n

An Entrepreneurial Mindset

\n\n\n\n

Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

\n\n\n\n

While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

\n\n\n\n

He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

\n\n\n\n

Using your skills to uncover your journey

\n\n\n\n\"Tyler\n\n\n\n

Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

\n\n\n\n

These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

\n\n\n\n

In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

\n\n\n\n

Relationship-building as a career

\n\n\n\n

Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

\n\n\n\n

When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

\n\n\n\n

Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

\n\n\n\n

The true meaning of freedom

\n\n\n\n

In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

\n\n\n\n

Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

\n\n\n\n

He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

\n\n\n\n

There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

\n\n\n\n

Going forward positively 

\n\n\n\n\"Tyler\n\n\n\n

The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

\n\n\n\n

He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

\n\n\n\n

I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

\n\n\n\n

Now, he’s able to put those skills to good use in the WordPress community and beyond. 

\n\n\n\n

He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

\n\n\n\n

Contributors

\n\n\n\n

Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

\n\n\n\n

Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

\n\n\n\n\"HeroPress\n\n\n\n

This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

\n\n\n\n

Meet more WordPress community members in our People of WordPress series.

\n\n\n\n

#ContributorStory #HeroPress

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"WPTavern: Free Software Foundation Unrelenting on Stallman Reinstatement: “We Missed His Wisdom”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115008\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:231:\"https://wptavern.com/free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom?utm_source=rss&utm_medium=rss&utm_campaign=free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8324:\"

The Free Software Foundation has published a public explanation of why they decided to reinstate Richard Stallman to the board of directors last month:

\n\n\n\n

“The voting members of the Free Software Foundation, which include the board of directors, voted to appoint Richard Stallman to a board seat after several months of thorough discussion and thoughtful deliberation.

We decided to bring RMS back because we missed his wisdom. His historical, legal and technical acumen on free software is unrivaled. He has a deep sensitivity to the ways that technologies can contribute to both the enhancement and the diminution of basic human rights. His global network of connections is invaluable. He remains the most articulate philosopher and an unquestionably dedicated advocate of freedom in computing.”

\n\n\n\n

The board took responsibility for bungling the news of his election to a board seat, stating that the planned flow of information was not executed in a timely manner. When Stallman announced his return to the board at last month’s LibrePlanet event, the free software community was not able to discern whether he did so with the board’s permission. It took the FSF by surprise, polarized the community, and provoked organizations and corporations to publish statements condemning his reinstatement.

\n\n\n\n

The board admits that “FSF staff should have been informed and consulted first,” but follows it up by effectively downplaying his influence, stating that Stallman is “an unpaid volunteer and subject to the organization’s policies.”

\n\n\n\n

The statement reads like a perplexing love letter for someone who struggles with social cues. It obscures most of the real issues outlined in an open letter signed by many prominent members of the free software community. The FSF board referenced a statement from Stallman, published one minute prior, and claims that he has acknowledged his mistakes:

\n\n\n\n

“He has sincere regrets, especially at how anger toward him personally has negatively impacted the reputation and mission of FSF. While his personal style remains troubling for some, a majority of the board feel his behavior has moderated and believe that his thinking strengthens the work of the FSF in pursuit of its mission.”

\n\n\n\n

The FSF board has officially confirmed that the majority of its leadership advocated for Stallman’s return and see it as important in its aim “to attract a new generation of activists for software freedom and to grow the movement.”

\n\n\n\n

Stallman’s statement identifies his past behaviors as something outside his control, saying it was “not a choice” and “unavoidable:”

\n\n\n\n

Later in life, I discovered that some people had negative reactions to my behavior, which I did not even know about. Tending to be direct and honest with my thoughts, I sometimes made others uncomfortable or even offended them — especially women. This was not a choice: I didn’t understand the problem enough to know which choices there were.

Sometimes I lost my temper because I didn’t have the social skills to avoid it. Some people could cope with this; others were hurt. I apologize to each of them. Please direct your criticism at me, not at the Free Software Foundation.

\n\n\n\n

He also attempted to explain his position regarding the 2019 controversy that prompted his resignation from the FSF board and MIT’s Computer Science and Artificial Intelligence Lab.

\n\n\n\n

“It was right for me to talk about the injustice to Minsky, but it was tone-deaf that I didn’t acknowledge as context the injustice that Epstein did to women or the pain that caused.

I’ve learned something from this about how to be kind to people who have been hurt. In the future, that will help me be kind to people in other situations, which is what I hope to do.”

\n\n\n\n

This strategically intertwined pair of statements from Stallman and the FSF did little to change the community’s perception of his reinstatement to the board. They seemed to have the opposite effect of inflaming those who opposed it in the first place.

\n\n\n\n

“I’m really grateful that the FSF board took the time to clarify this,” Tock founder Brian Fitzpatrick said. “This makes it crystal clear that they would rather have RMS around than become an inclusive and welcoming environment to more than half the people who write software. Toxic to the core.”

\n\n\n\n
\n

Congratulations on getting RMS offering a non-apology for being tone deaf. You\'ve just inherited that skill.
It\'s time for that \"new generation of activists for software freedom\" to help another foundation grow.

— St⭕nehead (@stonehead) April 12, 2021
\n
\n\n\n\n

The statements were met with considerable backlash, as they did little to assuage community concerns regarding Stallman’s patterns of misconduct. More recently that includes his controversial remarks on rape, assault, and child sex trafficking, along with two decades of behaviors and statements that many have found to be disturbing and offensive. Whether these behaviors are motivated by malice or simply a lack of understanding the proper context, the damage to the FSF continues.

\n\n\n\n

Red Hat principle engineer Elana Hashman, former director of the Open Source Initiative, published a thread with suggestions for 501(c)(3) public charities the community can donate to as an alternative to the FSF, including The Software Freedom Conservancy, EFF, OSI, and Software in the Public Interest.

\n\n\n\n

Last week we reported that the WordPress project does not support Stallman’s return to the FSF board of directors. Curiously, WordPress’ executive director Josepha Haden-Chomphosy published the statement to her personal blog instead of on the project’s website, but she confirmed it is WordPress’ official stance on Stallman’s reinstatement. Since that time, the WordPress Foundation has quietly removed the Free Software Foundation from its list of inspirations.

\n\n\n\n

Many corporations and individuals have distanced themselves and pulled funding from the FSF, but it has not had much impact on the leadership of the organization. The FSF board seems confident in their decision to keep Stallman in place, despite openly admitting that “his personal style remains troubling.” When the organization’s actions so sublimely repudiate its stated goals (to attract a new generation of activists for software freedom), it’s easy to see why former supporters can no longer buy into the FSF’s promises to improve transparency and accountability.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 03:53:44 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Display Digital Sheet Music With the WordPress Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/display-digital-sheet-music-with-the-wordpress-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=display-digital-sheet-music-with-the-wordpress-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4520:\"OSMD plugin output on the front end.\n\n\n\n

PhonicScore, a company out of Vienna, recently released its OpenSheetMusicDisplay (OSMD) plugin. It is a WordPress block built for rendering digital sheet music in the browser.

\n\n\n\n

The OSMD plugin is built on top of the team’s JavaScript library of the same name, a project officially released in 2016. It is a bridge between VexFlow and MusicXML. VexFlow is a JavaScript API for rendering music notation, and MusicXML is a standard open format for exchanging digital sheet music.

\n\n\n\n

“As WordPress is one of the most popular CMS’ we decided to make an out-of-the-box solution that users could easily plug in their WP websites,” wrote Marin Jurcic in the announcement post. “This wasn’t an easy build, lucky for us OSMD provided all the tools for the job. To make this happen we relied heavily on the latest OSMD release and bundled it with the plugin. To add the ‘out-of-the-box features’ and get it working we used WordPress’s framework/library — Javascript and PHP.”

\n\n\n\n

This is the type of plugin that allows the beauty of the block editor to shine. A few years ago, such a feat would only have been possible via the shortcode system. Users would have had to manually type in all of the shortcode’s arguments — assuming they could remember them all — and preview the post to see what it would look like. Today, they can interact with and make changes directly to their sheet music’s display from the editor.

\n\n\n\n

OSMD was never a WordPress-first project. It was a standalone library that the company decided to make available to WordPress. With the power of the block system, they were able to do that. One can only hope that we see investments in our community from similar projects now that the block editor has become more stable.

\n\n\n\n

We are barely digging beneath the surface of what will be possible in time. Blocks like OSMD build upon the optimism I had when the system was first unveiled.

\n\n\n\n

To use the plugin, users must simply insert the OpenSheetMusicDisplay block into their content canvas. It is located under the Embed category. From that point, they must select or upload an XML file via the block options sidebar (.xml, .musicxml, and .mxl files are supported). Dragging and dropping a file does not work in this version — maybe a feature request for 2.0?

\n\n\n\nOSMD block in the editor.\n\n\n\n

The “Basic Options” tab has several width and aspect ratio settings. For the most part, it is probably best to leave these at the defaults. However, this will depend on your theme and how much room it provides.

\n\n\n\n

The block does not currently support the standard wide-alignment system. Instead, it has a width option, allowing users to determine the front-end output. Because this is a non-standard option, it may not play well with all themes. Depending on how the user’s active theme handles content width, they can get wildly different results.

\n\n\n\n

The “Drawing Options” tab is where users have more control over customizing the output. These settings allow users to determine what is “drawn” in the digital sheet music. One option is whether to draw the composer’s name. Another is to output time signatures. With 10 settings in total, there is a lot to tinker with.

\n\n\n\n

The biggest issue I ran into with the plugin was with the editor freezing from time to time. It appeared that the block was trying to reload, even when I was working outside of it. This happened despite having unticked the “Automatically Rerender on Change” checkbox.

\n\n\n\n

Overall, this plugin should serve users who want to display sheet music well. It is simple to use and offers numerous customization options. The team has a demo of the OSMD library in action on their site.

\n\n\n\n

For those who are not inclined to share digital sheet music, well, we can all appreciate the genius of J.S. Bach’s Air:

\n\n\n\n
\n\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 21:16:12 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"WordPress Foundation: Announcement: Upcoming live discussion on do_action charity hackathons\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=184010\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:107:\"https://wordpressfoundation.org/2021/announcement-upcoming-live-discussion-on-do_action-charity-hackathons/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4578:\"

This live discussion has concluded. You can find a video recording of the live discussion on this post or watch it directly on YouTube and on WordPress.tv. Captions and a full transcript of the video will be made available shortly.

\n\n\n\n

Over the past few months, many community organizers have expressed interest in organizing do_action charity hackathons and asked many questions about the event to Community deputies. In order to address these questions – some members of the WordPress Community are organizing a live Tuesday Training discussion on How to organize do_action charity hackathons!

\n\n\n\n

Hari Shanker, Hugh Lashbrooke, Naoko Takano, and Yogesh Londhe – who are all experienced do_action hackathon organizers, will participate in this Live discussion on do_action charity hackathons. The event, which will be streamed LIVE on the WordCamp Central YouTube channel on Tuesday, April 13, 2021, 02:00 UTC, is open to all! Community members can also participate in the discussion by asking questions in the live chat, which will be answered by the panelists live, during the session!

\n\n\n\n

What are do_action charity hackathons?

\n\n\n\n

do_action hackathons are community-organized events that are focused on using WordPress to give deserving charitable organizations their own online presence. Each do_action event includes participants from the local WordPress community coming together to plan and build brand new websites for a number of local organizations in one day. Due to the COVID-19 pandemic, do_action hackathons have moved online.

\n\n\n\n

In this session, we talk about do_action events, and their importance in this post-pandemic world, and on how to effectively organize an online do_action hackathon.

\n\n\n\n

Watch the discussion!

\n\n\n\n

The live discussion has concluded, but you can catch a recording of the session below.

\n\n\n\n
\n
\n
\n\n\n\n

Date and time: Tuesday April 13, 2021, 02:00 UTC (Click to view in your local time)
You can sign up for notifications on the YouTube live link below!

\n\n\n\n

In case the timing is off, and if you will not be able to join the live event, fret not! The event recording will be available on YouTube, and will soon be uploaded to WordPress.tv as well!
As mentioned above, while the live discussion has concluded, don’t forget to check out the recording of the live discussion above. We are working on adding captions for the video and will share a transcript of the same, shortly.

\n\n\n\n

We hope that this session was useful. We strongly encourage you to organize a do_action charity hackathon to support your local non-profits by giving them a WordPress-powered online presence. Thank you for all that you do to support the global WordPress Community!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 15:10:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9290:\"

In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

\n\n\n\n

Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

\n\n\n\n

Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

\n\n\n\n

Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

\n\n\n\n

Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

\n\n\n\n

There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

\n\n\n\n

That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

\n\n\n\n

WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

\n\n\n\n

Later, the community picked me up when I became seriously ill. 

\n\n\n\n

So I can say from the bottom of my heart, that working with WordPress has saved my life.

\n\n\n\n

And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

\n\n\n\n

The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

\n\n\n\n

The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

\n\n\n\n

Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114098\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin?utm_source=rss&utm_medium=rss&utm_campaign=set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4142:\"

WordPress contributors are working towards landing full site editing (FSE) sometime this year, an ambitious plan that will require all hands on deck for testing. A meeting of a small group of core leads on April 14 will start the process of deciding whether FSE will land in version 5.8. In the meantime, the FSE outreach program has extended the deadline for the fourth round of testing until April 12.

\n\n\n\n

One of the quickest ways to get started doing alpha/beta testing is to install the Gutenberg Nightly plugin, which pulls in the latest build from the Gutenberg project. Ordinarily, to get the latest build one would have to install NodeJS and npm and use the command line to get set up. This process can be prohibitive, along with the dizzying pace of Gutenberg development, for less technical users who want to start testing.

\n\n\n\n

The Gutenberg Nightly plugin, combined with the GitHub Updater plugin completely automates the process of grabbing the latest zip from Gutenberg trunk, and users will be notified when a new nightly is available for updating.

\n\n\n\n

How to Set Up a Gutenberg Nightly Test Environment

\n\n\n\n

The first step is to download and install the Gutenberg Nightly plugin by uploading the zip file. If you already have the stable version of the Gutenberg plugin, you will be prompted to replace the current version with the one you are uploading. If you want to get updates when a new nightly is available, download and install the GitHub Updater plugin the same way.

\n\n\n\n
Gutenberg Nightly update available
\n\n\n\n

Testing the full-site editing project will require you to install a theme like TT1 Blocks, which has support for the experimental feature. Once you do, you will see the “Site Editor (beta)” menu item in the dashboard.

\n\n\n\n
\n\n\n\n

I set up a Gutenberg testing environment in 2 minutes using these plugins. Please note that it’s not recommended to use Gutenberg Nightly in production.

\n\n\n\n

Birgit Pauli-Haack, publisher of the Gutenberg Times, created the plugin in October 2020, to help testers keep up with the rapid pace of Gutenberg development.

\n\n\n\n

“On October 19, 2020, there were 250 new commits made since the last release (9.1.1) and before the release of 9.2,” Pauli-Haack said. “Any issue you might file, might get a response like ‘Could you please try it in master, I think it was already fixed.\'” This slows down the testing process and can be discouraging to testers.

\n\n\n\n

Pauli-Haack creates the build every day as a volunteer service to facilitate Gutenberg testing.

\n\n\n\n

“At the beginning it took a bit longer but now I wrote a small Node CLI script that does the distribution to GitHub and uploads it to the GT site as well, so the button Download gives you the newest version,” she said. “In October, I was a total rookie with an idea.”

\n\n\n\n

Pauli-Haack credits Andy Fragen, author of the GitHub Updater plugin, and Riad Benguella, a technical lead on the Gutenberg project, who helped her past some skill gaps in getting the process more automated.

\n\n\n\n

“Andy Fragen helped me think through it for making it the easiest for the ‘normal’ users to get a Test version without to know much about git, node and stuff,” she said.

\n\n\n\n

Gutenberg Nightly has facilitated more than 62,000 downloads to date. The repository for the plugin has discussions enabled so users can stay updated with major changes, make feature requests, and participate in Q&A.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Apr 2021 16:12:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"Gutenberg Times: Full-Site Editing Scope in WordPress 5.8. Weekend (Tiny) Edition #165\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17473\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://gutenbergtimes.com/full-site-editing-scope-in-wordpress-5-8-weekend-edition-165/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8253:\"

Howdy!

\n\n\n\n

In the last two weeks there was so much was happening around Gutenberg. To keep you somewhat in the loop, I interrupt my unpacking of way-too-many boxes and share a few links with you.

\n\n\n\n

Next week again in full force. Stay tuned.

\n\n\n\n

Have a great weekend!

\n\n\n\n

Yours, 💕
Birgit

\n\n\n\n\n\n
\n\n\n\n

Grzegorz (Greg) Ziółkowski and I published our first episode together, Episode #41. It is a great episode, and we had a lot of fun. I am delighted having Grzegorz on the show. It’s now available with show notes and transcript.

\n\n\n\n

Josepha Haden Chomphosy posted Full Site Editing Scope for WP5.8 (u)

\n\n\n\n
  • Lesson from Phase 1 roll-out, extenders like plugins developers, site builders and theme authors didn’t have enough time to test their products with the new editor in core. 
  • Full-Site Editing user experience with Global Styles, Template editing and saving, will not be changing default user experience. It’s opt-in only. There is some confusion on saving template and switch from overall template to content and back. Polishing those will be out of scope for 5.8. 
  • Also, on the scope list for WordPress 5.8 are: Widget Editor, Navigation Screen and block, refactored Gallery Block and the List View. These  components are some of the most complex, and the user experience of them will be key. “They are all high priority to complete (hopefully for WP5.8), but will be punted if they aren’t ready in time for Beta.” 
\n\n\n\n

Matias Ventura will demo the current state of these features to the release lead team trio of  Matt Mullenweg, Josepha Haden Chomphosy and Helen Hou-Sandi.

\n\n\n\n

Justin Tadlock has the skinny: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming

\n\n\n\n

Hector Prieto published the April Focus areas for the Gutenberg team. 

\n\n\n\n

As expected, it covers Widget, Navigation Screen, and Full-Site Editing with more details. Please see the “Area to be aware of” section of the post, for Block and plugin Developers, Designers and Theme builders. We talked about most of them in one or the other episode, but you find them all in one place in Hector’s post. 

\n\n\n\n

Kjell Reigstad published the notes from the Block Theme Meeting They team discussed among other things:

\n\n\n\n
  • TT1 Blocks update 
  • Block-based theme updates in Gutenberg 10.3 with alignment styles automatically for front and back end and the capability to use theme.json styles for every block.
  • New tools for transitioning to Block-based Themes.
\n\n\n\n

The deadline for the Full Site Editing Testing Call #4 has been extended until April 12th, 2021.

\n\n\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

\n\n\n\n

\"GitHub

\n\n\n\n\n

Don’t Miss this!
Mega-Meetup April 15th, 2021 6:30 -8:30 pm EDT / 23:30 UTC with Anne McCarthy, David Bisset and the organizers of six Florida Meetup groups. All About Full Site Editing (Coming in WordPress). Register via Meetup.com

\n\n\n\n

For a more in-depth look on current Gutenberg development, the Index page with all the teams’ updates in the Core handbook has the latest.

\n\n\n\n\n

 “Keeping up with Gutenberg – Index” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

\n\n\n\n\n\n

Featured Image: Photo by Fran Jacquier on Unsplash

\n\n\n\n\n\n
\n\n\n\n

Don’t want to miss the next Weekend Edition?

\n\n\n\n

We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

Thanks for subscribing.
\n\n\n\n
\n\n\n\n\n\n

Episode #41 is now available, with new co-host Grzegorz Ziolkowski

\n\n\n\n

Subscribe to the Gutenberg Changelog podcast
🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

\n\n\n\nReview by Peter Ingersoll on Stitcher\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 10 Apr 2021 15:24:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114870\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming?utm_source=rss&utm_medium=rss&utm_campaign=will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6679:\"

Yesterday, Josepha Haden Chomphosy announced the roadmap for deciding whether Full Site Editing (FSE) will land in WordPress 5.8. After the launch of Gutenberg 10.4 on April 14, a small group of core leads will participate in a go/no-go demo.

\n\n\n\n

The following people will be on the call:

\n\n\n\n
  • Matias Ventura – Gutenberg Project Lead who will host the demo.
  • Matt Mullenweg – WordPress Project Lead.
  • Helen Hou-Sandì – Lead Developer.
  • Josepha Haden Chomphosy – Executive Director.
\n\n\n\n

The meeting’s agenda is simple. Ventura will host the demo, and the group will discuss and cover implementation questions.

\n\n\n\n

If there are no blockers, they will share a plan for merging FSE into WordPress. The more likely outcome is that they will find at least a few items that must be addressed. In that case, they will share these publicly with a plan to tackle them before a second go/no-go date of April 27.

\n\n\n\n

The first beta release of WordPress 5.8 is set for June 8, with a general public release for July 20. The team needs to decide on inclusion early in the release cycle to give theme and plugin developers time to prepare.

\n\n\n\n

While many are on their toes awaiting a final decision, everyone needs to have a little patience at the moment. Everything needs to be carefully weighed by the project leaders. There is a good chance we will not know the outcome until that second, April 27 deadline.

\n\n\n\n

Most of the FSE transition would be a beta run for a subset users. Including these features in core does not mean that WordPress immediately flips the switch and enables everything for 40% of the web. For the overall FSE experience, users must make an explicit choice to install and activate a block-based theme.

\n\n\n\n

With that in mind, the onboarding experience should be a welcoming one that invites users into site editing while letting them know the potential issues. If it is a built-in beta, they really need to understand that improvements are forthcoming.

\n\n\n\n

An in-core beta run like this is also welcome, given the project’s launch of the block editor a couple of years ago. Regardless of whether people loved or hated the block editor, the rollout was not smooth for everyone. WordPress dropped end-users into an overhauled system, which was a shocking change for many. The project has a chance to do better this time around by incrementally introducing features to users and allowing others to immerse themselves in the new experience of their own choice.

\n\n\n\n

“The most important context to share is that it isn’t shipping as the full, default experience for users,” wrote Chomphosy in the post, noting that the team is growing beyond past mistakes. “One of the clearest pieces of feedback from the Phase One merge process was that there wasn’t enough time for our extenders (agencies, theme authors, plugin developers, site builders, etc.) to prepare for the upcoming changes.”

\n\n\n\n

The decision-makers may also decide to ship some pieces but not others. FSE is a project made up of several components.

\n\n\n\n

“The whole full site editing project is sort of an umbrella term for a collection of tools and projects, so it would be possible for some pieces to ship while others don’t,” said Haden Chomphosy. “There are probably some exceptions to that, as you mentioned, but many of these can ship as they are ready.”

\n\n\n\n

The exceptions she was referring to are components that make more sense together. For example, block-based themes via a theme.json config file and most of the site-editing blocks are not as useful when separate.

\n\n\n\n

Of course, there are cases where something like the Query block could be used outside of the site editor. Users might create custom queries within a page without the benefit of the site editor, for example.

\n\n\n\n

My primary concern is not with features related to the site editor but with block-based widgets. It is a transitional tool for users on traditional themes. Along with the new nav menus screen, it is not a part of the block-based themes experience. The goal is to allow users to start using blocks in more places. However, this will result in a broken UX in many cases.

\n\n\n\n

The widgets experience is still partially broken, treating each block as a separate widget. Users must learn to put a Heading (widget title) and another block (widget content) into a Group (widget wrapper) for the correct widget-related classes on the front end of the site. For some themes, whether users do this will be a non-issue. For others, it will look ugly at best and break the layout at worst. Putting this responsibility on the shoulders of end-users was deemed an acceptable solution.

\n\n\n\n

I wanted to focus on this issue because it is one of those things that may simply be flipped on for all users. I am still afraid that transitioning from a functioning system to a potentially broken one will make for a bumpy ride.

\n\n\n\n

The WordPress 5.6 release team decided not to ship block-based widgets. Hou-Sandì, as the core tech lead for 5.6, provided a historical account of the decision and why it was not ready for inclusion:

\n\n\n\n

My question for features that affect the front-end is “can I try out this new thing without the penalty of messing up my site?” — that is, user trust. At this current moment, given that widget areas are not displayed anything like what you see on your site without themes really putting effort into it and that you have to save your changes live without revisions to get an actual contextual view, widget area blocks do not allow you to try this new feature without penalizing you for experimenting.

\n\n\n\n

While widgets have arguably improved, I still see the answer as being the same as last October. I have not seen enough buy-in from the theme development community to support the block editor itself, much less new block-related features. However, at some point, the project simply needs to move forward. Themers will just need to keep up.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 15:48:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: iThemes Acquires Kadence WP, Plans to Sunset Legacy Themes in 2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114848\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022?utm_source=rss&utm_medium=rss&utm_campaign=ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3957:\"

iThemes has acquired Kadence WP, the Missoula-based makers of the Kadence Blocks plugin and its accompanying Kadence theme. Originally founded in 2008 as a themes company, iThemes became more of a plugin-oriented business over the years before it was acquired by Liquid Web in 2018. The company is returning to its roots with this acquisition and plans to make Kadence WP the official theme platform of choice for iThemes.

\n\n\n\n

“It’s no secret that the ‘themes’ part of iThemes has been lacking for many years now,” iThemes general manager Matt Danner said. “While we got our start in WordPress themes in 2008, over the past 10 years, we pivoted to the more obvious needs of our customers (mainly WordPress security, backups, memberships and maintenance) as the theme marketplace got more competitive. 

\n\n\n\n

Joining forces with Kadence WP means that iThemes can once again have an innovative and modern WordPress theme platform.”

\n\n\n\n

iThemes announced it will be sunsetting its iThemes Builder theme framework and all of its legacy themes in 2022, in favor of supporting the Kadence theme which already has more than 50,000 active installations. Danner said the older themes “are no longer truly compatible with the future direction of WordPress.”

\n\n\n\n

Kadence Blocks are even more popular than the accompanying theme, since they can be used in combination with any WordPress theme. The plugin has gained more than 100,000 users after its initial launch in August 2018. Kadence Blocks pioneered some of the first full-featured layout blocks in the early days of Gutenberg prior to its inclusion in core.

\n\n\n\n

“This last year has marked some ridiculous growth for Kadence WP,” co-founder Ben Ritner said. “Only one year ago my sister Hannah (many users will know Hannah from our support channels) and I were the entirety of the Kadence WP team. It is hard to gauge user numbers with accuracy because of how many free products we have, but the amount of people using Kadence WP products has roughly quadrupled in the last 10 months! Our new Kadence Theme, which landed on the repo in November (only 160 days ago), now has more than 50,000 active users.”

\n\n\n\n

Kadence WP will continue running under its same branding and as a separate company under the iThemes brand. Pricing will remain the same for existing Kadence WP customers. iThemes plans to raise its prices for its Agency Bundle on May 1, 2021, but renewal pricing will remain the same as long as the customers’ subscriptions auto-renew.

\n\n\n\n

Kadence Blocks is adding dynamic content for its pro version in the next month. The team is also launching a new plugin called Kadence Cloud, which will allow users to create a pre-built cloud of content that they can pull down into any website. Both Kadence Blocks and the theme will also be rolling in many of the top-voted feature requests from its community. A major new product release is planned for Q4 2021.

\n\n\n\n

iThemes will be hosting a townhall meeting Friday, April 9 at 11:00 am CST to address any questions or concerns that users and customers may have. They are also running an online training workshop titled “Learn How to Use Kadence WP” on May 5, 2021, at 1:00 p.m. CST.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 05:23:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"WPTavern: Yes, Comments Are Still Relevant, But We Need a Better System\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114628\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/yes-comments-are-still-relevant-but-we-need-a-better-system?utm_source=rss&utm_medium=rss&utm_campaign=yes-comments-are-still-relevant-but-we-need-a-better-system\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6116:\"

More and more, open comments are becoming a thing of the past. Large news organizations have kicked them to the curb. Frustrated bloggers who no longer desire all of the hassles with moderation shut down their forms. The conversations have moved to corporate-controlled social media.

\n\n\n\n

It is hard to pinpoint the exact moment much of the web devolved into chaos. It was probably more of a gradual thing. The tools that we built fostered the darkest side of humanity. Far too often, people let out their worst unfiltered thoughts without regard to decency and kindness. If we dig deep enough, social media is likely the culprit that spawned this growing experience. However, it is also entrenched in the blogging world.

\n\n\n\n

Now, with the ubiquity of mobile phones, everyone has a voice. And, far too often, the vocal minority drives the masses from discussion to ad hominem. Or, maybe the majority was always looking for a justification.

\n\n\n\n

There is a bright side. Commenting on and discussing ideas in an open forum can change hearts and minds. It can lead to discoveries and create life-long friendships — I still routinely chat with people I met through blogs and their comments from nearly two decades ago.

\n\n\n\n

Ryan McCue, a core contributor to WordPress, said that comments should be a plugin.

\n\n\n\n

There are few things I could think that would hurt the blogging community more. Comments are the lifeblood of many WordPress-built sites. Without them as part of the core experience, how many new users will venture out to find a commenting plugin? Such a change would sign the death warrant for commenting on a large part of the web, moving more discussion away from blogs into the waiting arms of social networks.

\n\n\n\n

McCue’s response was to a tweet by Brian Krogsgard, the Post Status creator and editor. “WordPress should have one singular button that says: Turn off all comments and comment displays. This is so hilariously complicated, it’s absurd.”

\n\n\n\n

He is not wrong.

\n\n\n\n

The WordPress comment settings screen is so complex that I rarely change anything other than a setting or two, even when I want comments enabled for a site. There are around two dozen individual options on that screen, and none of them just allow users to turn it all off.

\n\n\n\n

Eric Karkovack explores this same topic in his piece for Speckyboy titled Is the WordPress Comment System Still Relevant? He concluded:

\n\n\n\n

So, where does this leave the default comment system? It still offers the basics and can be extended. Yet it seems a bit antiquated when compared to what other services are offering. To remain a compelling option, improvements are in order.

There’s certainly no harm in keeping it around. But, short of a renewed effort to improve the out-of-the-box functionality, perhaps it shouldn’t be as front-and-center within WordPress as it is now.

\n\n\n\n

WordPress has failed to iterate on its commenting feature in recent years.

\n\n\n\n

“Like most things, [Full Site Editing] will change things there,” wrote WordPress Themes Team rep Ari Stathopoulos in the Post Status Slack. “Want comments? Add the comment-form block in your template. Don’t want them? Don’t add it.”

\n\n\n\n

While that is partly true, it only handles things on the front end of the site. All the commenting-related features would still be there in the admin. However, it is a step in the right direction.

\n\n\n\n

The ability to easily opt in or out of a commenting system is merely one change that needs to happen. Something as basic as an in-context comment list view is a must for easier moderation. The Tavern still uses Stephen Cronin’s Show Comment Parent plugin for this. Even a basic JavaScript-based front-end submission form would go a long way toward modernizing the commenting system. Does anyone enjoy a full page reload when leaving a comment?

\n\n\n\n

However, there is more that we could be doing. For a platform that prides itself on democratizing publishing and owning your content, a ticket for supporting webmentions has had virtually no movement in five years.

\n\n\n\n

A Webmention is a standardized protocol for mentions and conversations across the web. It is a part of a goal for a decentralized social “network” of sorts where everyone owns and controls their content. While the Webmention plugin by Matthias Pfefferle takes care of this feature, universal adoption would be a far more realistic goal as part of WordPress.

\n\n\n\n

We should also have some serious conversations about what tools publishers need to build thriving communities via their comments. For example, is comment moderation easy enough? If not, what can we do to improve it?

\n\n\n\n

WordPress is more than simply a blogging platform. Users can build any kind of site they want today, with or without the comments. However, commenting is part of the software’s history and identity. It is a gateway to discussion — often as important or even more so than a site’s content.

\n\n\n\n

Comments will always be relevant. Whether it is a response to a blog post, tweet, Slack thread, or some new thing we have yet to think of, the web is all about connecting and communicating with others. We should constantly reevaluate whether WordPress is leading the pack, creating the tools to enable more discussion.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 23:11:34 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:11:\"\n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"HeroPress: Hallway Chats Joins The HeroPress Family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://heropress.com/?p=3524\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:147:\"https://heropress.com/hallway-chats-joins-the-heropress-family/#utm_source=rss&utm_medium=rss&utm_campaign=hallway-chats-joins-the-heropress-family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2413:\"\"Original\n

As any parent or pet owner knows, quiet doesn’t always equal inactivity. And the same is true here at HeroPress.

\n\n\n\n

Investing in a sustainable framework

\n\n\n\n

While we haven’t said much over the last few months, we’ve been working with the initial feedback we received to expand HeroPress in the most manageable and sustainable way. Because really, if it’s not manageable and sustainable, what’s even the point?

\n\n\n\n

This quest prompted a lot of additional research and active listening, all of which lead the fine folks behind the Hallway Chats podcast to start a conversation with us.

\n\n\n\n

Hallway Chats found us

\n\n\n\n

We were considering a podcast, but had moved it down the build list. Tara Claeys and Liam Dempsey, while loving the work they’ve done with Hallway Chats, found life was moving then in different directions, as it does for us all. And as Hallway Chats approached its 150th episode, the decision was made to pass the torch, or microphone as it were.

\n\n\n\n

We’re thrilled to be able to build on their legacy and continue to grow Hallway Chats through out the community, and we’re grateful to Tara and Liam that they’ve entrusted it into our care.

\n\n\n\n

Embrace opportunities that are the right fit

\n\n\n\n

A few shifts and changes are inevitable, but the spirit of Hallway Chats will always stand. After all, why change something that so ideally meshes with our own goals?

\n\n\n\n

Listen to the 150th Episode of Hallway Chats where Tara, Liam, Topher, and I talk even more about the direction we’re all heading.

\n

The post Hallway Chats Joins The HeroPress Family appeared first on HeroPress.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 14:55:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Calling All Themers: Design the Next Round of Query Block Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114777\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/calling-all-themers-design-the-next-round-of-query-block-patterns?utm_source=rss&utm_medium=rss&utm_campaign=calling-all-themers-design-the-next-round-of-query-block-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4621:\"

The Gutenberg plugin repository currently has an open ticket calling for community-contributed Query block patterns. These would launch alongside Full Site Editing’s inclusion in WordPress, which could be as soon as version 5.8 — no hard decision has been made on that yet. Some may not end up bundled directly in WordPress but could be included in the upcoming pattern directory.

\n\n\n\n

Gutenberg 10.2 introduced a new feature called “scoped patterns.” This system allows developers to build block patterns within a specific context instead of always being available from the inserter. Specifically, the Gutenberg development team created a handful of patterns for the Query block. When inserting the block, users can choose between each of these patterns as a starting point for outputting their posts.

\n\n\n\nPattern selections for the Query block in its initial state.\n\n\n\n

The patterns are far too generic and do not come close to replicating the array of design options in the real world. While the end goal is to not cover every scenario imaginable, WordPress should ultimately give users a little more flexibility as a jumping-off point.

\n\n\n\n

“Those were always meant to be temporary to start with,” wrote Kjell Reigstad, a core WordPress contributor and Design Director at Automattic, in the GitHub ticket. “Let’s take another look at these, both to replace the current ones for now, but also so that we eventually have a nice set of WordPress community-designed query block patterns to add to the Pattern Directory at launch.”

\n\n\n\n

Theme authors will be able to release their own scoped patterns for the Query block too. However, with block-based themes being few and far between at this phase of the project, WordPress needs to set the stage.

\n\n\n\n

This is one of the reasons I was so vocal pre-WordPress 5.5 about the early pattern designs, and it is why I was happy to see them overhauled before the launch. Many users need that bit of inspiration, that push to try out alternate layouts instead of building them on their own. They need options beyond the typical stacked blog posts layouts.

\n\n\n\n

A few well-designed Query patterns do that.

\n\n\n\n

I decided to try my hand at building what I think would be a fun Query pattern to use:

\n\n\n\nQuery block pattern with full-width background image.\n\n\n\n

I built this using core blocks instead of the Query block with the Eksell theme installed. Side note: let me just reiterate my earlier review of Eksell. It is such a well-rounded design that anyone can create all sorts of custom patterns. It makes for an easy-to-use testbed for exploring design concepts.

\n\n\n\n

The idea was based on a pattern that Mel Choyce-Dwan shared in the ticket:

\n\n\n\n Query block pattern with background image and centered text. \n\n\n\n

I do not think it is currently possible to build this Query pattern idea with the site editor. Unless I am mistaken, there is no way to use the post featured image as a background or within the Cover block, a common layout design.

\n\n\n\n

Eventually, the site editor should get to the point where theme authors can move at least a hair beyond the basics. It will take some time for the tooling to catch up, but we are approaching the point where designers can build more complex things. That is another reason theme authors should be involved with this discussion. It needs input and ideas from themers who are out there dealing with users in real-world settings. The Gutenberg team cannot know everything it needs to build without this vital community source.

\n\n\n\n

Choyce-Dwan shared several other patterns in the ticket that are worth exploring. Along with Reigstad, Beatriz Fialho and Paal Joachim Romdahl have contributed pattern ideas.

\n\n\n\n

If you fancy yourself a theme designer, now is as good a time as any to contribute.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 07 Apr 2021 22:45:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"Matt: Wix and Their Dirty Tricks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=53999\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:39:\"https://ma.tt/2021/04/wix-dirty-tricks/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3651:\"

Wix, the website builder company you may remember from stealing WordPress code and lying about it, has now decided the best way to gain relevance is attacking the open source WordPress community in a bizarre set of ads. They can’t even come up with original concepts for attack ads, and have tried to rip-off of Apple’s Mac vs PC ads, but tastelessly personify the WordPress community as an absent, drunken father in a therapy session. \"🤔\"

\n\n\n\n

I have a lot of empathy for whoever was forced to work on these ads, including the actors, it must have felt bad working on something that’s like Encyclopedia Britannica attacking Wikipedia. WordPress is a global movement of hundreds of thousands of volunteers and community members, coming together to make the web a better place. The code, and everything you put into it, belongs to you, and its open source license ensures that you’re in complete control, now and forever. WordPress is free, and also gives you freedom.

\n\n\n\n

Wix is a for-profit company with a valuation that peaked at around 20 billion dollars, and whose business model is getting customers to pay more and more every year and making it difficult to leave or get a refund. (Don’t take my word for it, look at their investor presentations.) They are so insecure that they are also the only website creator I’m aware of that doesn’t allow you to export your content, so they’re like a roach motel where you can check in but never check out. Once you buy into their proprietary stack you’re locked in, which even their support documentation admits:

\n\n\n\n
\n\n\n\n

So if we’re comparing website builders to abusive relationships, Wix is one that locks you in the basement and doesn’t let you leave. I’m surprised consumer protection agencies haven’t gone after them.

\n\n\n\n

Philosophically, I believe in open source, and if WordPress isn’t a good fit for you there are other great open source communities like Drupal, Joomla, Jekyll, and Typo3. We also have a great relationship with some of our proprietary competitors, and I have huge respect for the teams at Shopify and Squarespace, and even though we compete I’ve always seen them operate with integrity and I’d recommend them without hesitation.

\n\n\n\n

I have to believe that users will care about that in the long run, and maybe that’s why Squarespace just passed up Wix in market share. They natively support exporting into WordPress’ format and don’t have to resort to dirty tricks to be successful. I expect Squarespace’s upcoming IPO will be a great one.

\n\n\n\n

Wix, though, continues to show their true colors. Regardless of their product, I hope people consider the behavior of companies in the world they support with their dollars. Wix really wants you to see their new campaign though, so let’s take the bait and watch the creepy, misleading way they are trying to represent themselves.

\n\n\n\n
\n\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 07 Apr 2021 17:34:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:102:\"WPTavern: Wix’s Negative Advertising Campaign Falls Flat with WordPress Developers and Professionals\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114772\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:243:\"https://wptavern.com/wixs-negative-advertising-campaign-falls-flat-with-wordpress-developers-and-professionals?utm_source=rss&utm_medium=rss&utm_campaign=wixs-negative-advertising-campaign-falls-flat-with-wordpress-developers-and-professionals\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5971:\"

Wix has launched a negative advertising campaign targeting WordPress, following a bizarre marketing stunt where the company shipped out Bose headphones to influential WordPress community members. Recipients were puzzled, because it appeared the company was wasting its marketing budget on people who were not likely to be swayed by the campaign. Wix seems oblivious to the negative responses to its headphones marketing ploy.

\n\n\n\n
\n

Like, these are nice headphones, but I want to know if there is a proprietary CMS that is willing to pay to replace the outdoor condenser thing for my A/C within the next 12 months or not before making my decision.

— Josh Pollock (@Josh412) April 6, 2021
\n
\n\n\n\n

Subsequent advertisements in this new “You Deserve Better” campaign are markedly more negative than the launch video sent to recipients of the headphones, packed with tasteless and tired motifs.

\n\n\n\n
\n\n\n\n

Wix representative Maya Gril said the campaign is part of the company’s “initiative to connect with an audience that doesn’t think or know that Wix applies to their needs.”

\n\n\n\n

When asked what message they are intending to send with the videos, Gril likened using WordPress to being stuck in a bad relationship.

\n\n\n\n

“The campaign shows in a clever way that WordPress users don’t need to be stuck in a bad relationship with their platform and they should consider the alternative which allows them to focus on their actual work,” Gril said. “Each video in the campaign revolves around user pain points, which also highlight Wix’s strengths.”

\n\n\n\n

Morten Rand-Hendriksen, who received a pair of the headphones, characterized the campaign as “nuclear troll-marketing.” Instead of emphasizing any new, innovative features of the Wix platform, the ads come across as short, petulant narratives with no clear objective.

\n\n\n\n

“I guess they’re trying to provoke us into responding?” WordPress co-founder Matt Mullenweg tweeted in response to discussion on the campaign. “I agree it comes off as creepy and misleading to impersonate ‘WordPress’ this way.

\n\n\n\n

“I can’t tell if trying to get a cease and desist letter is part of their strategy to try and drum up press. Unethical, tacky behavior from an unethical, tacky company. Good reminder: I really appreciate the integrity, principles, and ethics of WordPress ecosystem companies.”

\n\n\n\n

Wix’s new video ads seem more geared at professional developers with references that are likely outside of regular users’ experience with the software. The company may have failed to attract professionals in the past, which might explain why it opted to send thousands of dollars worth of headphones to influential WordPress users who fall within that demographic.

\n\n\n\n

In 2019, Wix began shifting its marketing budget away from TV advertisements and added products that targeted agencies, developers, and designers. The company spent $55 million in marketing in the first quarter of 2019, according to reports shared with Digiday. Wix became more active on LinkedIn and Twitter in pursuit of professionals who would bring more customers to its platform.

\n\n\n\n

“We want to make it clear that we have everything a professional needs,” Maya Gril said. “Our product is mature and constantly evolving. We’re broadening our target audience and we want all new, existing and prospective users to know that Wix is the ultimate web creation platform to help them create, manage and grow online.”

\n\n\n\n

Unfortunately, Wix is lacking one very important feature for catering to “professional needs” – data portability. When asked for his thoughts on the campaign, Mullenweg added that Wix is the only CMS in the world that doesn’t allow export – even Facebook does. The Wix support center states: Your Wix site and all of its content is hosted exclusively on Wix’s servers, and cannot be exported elsewhere.

\n\n\n\n

Having content that is locked in and cannot be easily exported to other platforms or hosts does not appeal to professionals. No amount of extravagant spending on marketing stunts will convince developers to bring their customers to a proprietary CMS that also locks in your content.

\n\n\n\n

This is why their marketing doesn’t appeal to the group of people who received the headphones. Many of them build WordPress as long-time contributors or run WordPress product businesses.

\n\n\n\n

Wix fundamentally misunderstands why people use WordPress and what makes them stay. It’s for reasons not found in their overly simplified list of differentiators played out in the new video ads. The desperate marketing tactics, which are geared more towards developers and power users, serve only to reinforce the platform’s underdog status and lack of market awareness.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 07 Apr 2021 07:10:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Twentig Now Upgrades the Twenty Twenty-One Theme Experience\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114785\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/twentig-now-upgrades-the-twenty-twenty-one-theme-experience?utm_source=rss&utm_medium=rss&utm_campaign=twentig-now-upgrades-the-twenty-twenty-one-theme-experience\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6098:\"

Twentig, the brainchild of sibling co-founders Diane and Yann Collet, now supports the Twenty Twenty-One theme. The developers originally built the plugin, which is hosted on WordPress.org, around the idea of “supercharging” Twenty Twenty. After its initial success, they have turned their sights onto the most recent default theme, adding a slew of new features over the past few months.

\n\n\n\n

The plugin still supports Twenty Twenty. It has merely added features for the latest default theme to its repertoire. The duo behind the plugin does not plan to stop there either.

\n\n\n\n

“Yes, we’ll definitively continue this with the future default themes,” said Yann Collet. “It will be exciting to see what we can do with Full Site Editing and the next block-based theme. With FSE coming, the opportunity is immense, making us confident that we can help people building better websites.”

\n\n\n\n

When I last covered it, Twentig had a mere 4,000 active installations. All 34 of its reviews were five stars. Today, the plugin has accumulated over 10,000 installs and 75 five-star reviews. It did garner its first four-star rating, bringing the average down a tad. Nevertheless, its user base clearly loves what the plugin developers are doing.

\n\n\n\n

The team has created 10 website demos and 8 single-page examples for inspiration, each on top of the Twenty Twenty-One theme.

\n\n\n\n
\n\n\n\n

One of the great things about the plugin is that it essentially treats the default themes as a bit of a foundation, a framework. Users do not have to search around for a new theme when they tire of their current look. They can simply mix things up with Twentig.

\n\n\n\n

“The goal is to showcase the power and flexibility of Twentig, the default theme, and the block editor,” said the team. “And ultimately inspire people to be creative with blocks. It’s incredibly fun and fast to build directly inside the block editor with our block patterns instead of using a prototyping tool like Figma.”

\n\n\n\n

Extending the Block Editor

\n\n\n\n

The Twentig plugin’s strength is in how it extends the block editor. Users are first presented with a custom sidebar panel with a plethora of patterns and full-page layouts. The plugin then further provides options for individual blocks.

\n\n\n\n

Unlike many other block-related plugins, Twentig does not register its own blocks. It uses the core WordPress blocks, except for Contact Form 7 integration, by mixing and matching them in various ways. If a user needs a call-to-action section, the plugin offers 11 patterns. If a user wants to spruce up their galleries, they have plenty of choices.

\n\n\n\nInserting a single page layout.\n\n\n\n

The plugin’s page layouts and patterns all work with both the Twenty Twenty and Twenty Twenty-One themes. Since Twentig relies primarily on core blocks, it is just a matter of making sure its custom CSS works.

\n\n\n\n

Some blocks get an extra setting or two through the plugin. However, the bulk of customization options happen through the Twentig “CSS Library.” This is a setting under the Advanced tab for most blocks that users can access by clicking the “+” icon next to the Additional CSS Classes option. It allows users to tick off checkboxes for numerous classes — each has an explanation of what it does. These are merely a set of utilities that change the block’s output in some way.

\n\n\n\nPicking Heading block classes via the Twentig CSS Library.\n\n\n\n

Twentig’s CSS classes system follows the road paved by utility class frameworks like Tailwind. WordPress does a little of this but does not take a holistic approach to it. I have argued that WordPress should build a design framework in the past. A standardized class system would play well with block options, giving the development team a foundation for creating a better user experience across themes.

\n\n\n\n

The drawback is that the two extra stylesheets on top of Twenty Twenty-One’s CSS add a bit of heft to the page. This could give pause to users who want to keep things lightweight. However, it has a smaller footprint than when using it with the older Twenty Twenty.

\n\n\n\n

Customizer Options and More

\n\n\n\nCustomizing Twenty Twenty-One’s design.\n\n\n\n

The plugin packages dozens of settings under the “Twentig Options” customizer panel. It also extends other sections, such as adding more color options. Users who care more about modifying the overall design than blocks will find nearly anything they need to put their own spin on their sites.

\n\n\n\n

Everything from fonts to site layouts to what post metadata to show is covered. Users can also switch between stacked and grid-style blog posts designs while further customizing based on their choices.

\n\n\n\n

The biggest downside to the plugin’s customizer integration is that it does not utilize the live preview functionality with most of its options. Making a change means a frame refresh to see its effects. A little bit of custom JavaScript and a few partials for server-side changes would go a long way toward making the experience better.

\n\n\n\n

Ultimately, future versions of Twentig will rely less on or not at all on the customizer. If Twenty Twenty-Two is a block-based, FSE theme, such customization will happen in the upcoming site editor. The plugin developers will need to change tactics and find ways to extend the experience in new ways.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 06 Apr 2021 22:36:37 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: Wix Takes a Jab at WordPress with Bewildering New Marketing Campaign\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114714\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:201:\"https://wptavern.com/wix-takes-a-jab-at-wordpress-with-bewildering-new-marketing-campaign?utm_source=rss&utm_medium=rss&utm_campaign=wix-takes-a-jab-at-wordpress-with-bewildering-new-marketing-campaign\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5921:\"

Wix is taking direct aim at WordPress in a new cryptic marketing campaign that began over the weekend with shipments of Bose noise-canceling headphones landing in the mailboxes of prominent WordPress users. At the end of December, 2020, Wix sent out the following Twitter DM to a group of people it deemed “influencers from the tech industry,” soliciting their addresses in order to deliver a box:

\n\n\n\n

In the last few months, my team and I have been working on a new innovative concept. We have packed this concept into a free, no strings attached box that we’d love to share with you as one of our selected influencers from the Tech industry.

I know the information I have provided you is basic, but the reason is that I do not want to ruin your experience (and let’s be honest, what’s more fun than being surprised on the holidays?)

\n\n\n\n
\n\n\n\n

Recipients were instructed to scan a QR code to view a one-minute video where a man acts as a personified “WordPress” making bizarre claims:

\n\n\n\n

“Apparently, Wix is coming out with a campaign trashing me. I just want you to know that it’s totally fake news, completely bogus. They’re just spreading lies because they’re jealous of our relationship.”

www.secret-update.com/from-wp
\n\n\n\n

The message of the video is not clear and it ends with a few snide jabs referencing “exhausted memory” and WordPress’ market share.

\n\n\n\n
\n\n\n\n

The most common reaction to the surprise headphones was confusion. Many recipients had no idea what Wix was trying to communicate with the gift.

\n\n\n\n
\n

I don\'t understand their goal. Am I supposed to start using their service because they sent me some headphones I don\'t want?

— Michael Torbert (@michaeltorbert) April 5, 2021
\n
\n\n\n\n

A few people perceived the video to be cheeky and humorous. WordPress contributor Aaron Campbell found it off-putting.

\n\n\n\n

“The video takes some odd snipes at WordPress, but the whole overall feel is a bit shady/dirty. Not a great look for Wix in my opinion,” Campbell said after receiving the headphones in the mail. “I think I’d be fine with it if it weren’t signed as ‘From WP’ and ‘Yours, WP.’ By the time I got to watching the video I already had that bad taste in my mouth.”

\n\n\n\n

Some speculated that it may be the first act in a strange marketing saga of Wix targeting WordPress. Others were inadvertently convinced the headphones were actually from WordPress, since the advertisement uses WordPress’ trademark in the video. This may be a violation of the WordPress Foundation’s trademark policy, but this has not yet been confirmed. Wix was not printed anywhere in the message, except on the shipping label.

\n\n\n\n
\n

Ok thank you to whoever at @WordPress sent me this, I don’t remember giving you my address but these are cool headphones and you definitely got me not-using-Wix if that was your goal ♥️

(i also have not used WP in like 10 years but now it will be in/around my head, dammit) pic.twitter.com/l1xA7FvAiw

— swyx (@swyx) April 3, 2021
\n
\n\n\n\n

This isn’t the first time WordPress and Wix have been at odds. In 2016, Matt Mullenweg called out Wix for copying GPL code from the WordPress mobile app and distributing it in its proprietary app. This rendered the entire app in violation of the GPL. Instead of complying with the GPL, Wix responded by removing the GPL-licensed code and forking the original MIT-licensed library that the WordPress mobile app code was built upon. The fork was relicensed under an absurd modification of the MIT that prohibits the code’s redistribution under any copyleft license.

\n\n\n\n

In October 2020, Wix passed Drupal as 4th most popular CMS, according to W3Techs. Since that time, Squarespace has grown to overtake Wix, pushing the CMS back into 5th place with 2.4% of the market. It’s only natural that Wix would want to target WordPress, the market leader at 40.9%. However, the strategy of misrepresenting WordPress, while sending headphones to influential users and contributors, was perplexing and unsavory. Wix has not yet responded to my request for comment on its new marketing campaign.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 06 Apr 2021 06:09:31 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"WPTavern: The Michelle WordPress Theme Launches With Dozens of Block Patterns and Styles\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114708\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:221:\"https://wptavern.com/the-michelle-wordpress-theme-launches-with-dozens-of-block-patterns-and-styles?utm_source=rss&utm_medium=rss&utm_campaign=the-michelle-wordpress-theme-launches-with-dozens-of-block-patterns-and-styles\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6534:\"

Oliver Juhas recently released his sixth theme to the WordPress community for free. Michelle is a block-ready theme. However, it also supports Beaver Builder, Elementor, and other page-building plugins.

\n\n\n\n

It is a multipurpose theme, which is often an immediate turn-off for me. I prefer to see a purpose-driven design with a unique take on a niche. However, it is hard not to love the personality of Michelle. Juhas did not shy away from putting his brand of styling on the project, which is evident in his past free themes.

\n\n\n\n

Juhas is marketing Michelle as an accessibility-ready theme. However, it has yet to receive an accessibility review for the theme directory, which would allow it to be tagged as such. From a quick scan for common issues, everything seems to be in order. It will likely pass its review like some of his past free themes. And, “inclusive, disabilities friendly, and barrierless” are at the forefront of his branding for WebMan Design.

\n\n\n\n

As has become common for block-ready themes, Michelle packages a “Content Only” template. This is a post/page template that allows end-users to use the block editor as a page builder by not displaying anything other than the post content.

\n\n\n\n

The theme is yet another showcase of what is possible with the block editor. A couple of weeks after Anders Norén’s Eksell landed in the directory, Juhas has presented the community with another quality theme. The two are entirely different in style and approach, but they both make the block system shine in their own ways.

\n\n\n\nPortfolio designed using multiple blocks.\n\n\n\n

Users can read more about the theme and peruse several demos via the theme’s official page.

\n\n\n\n

Block Patterns and Styles

\n\n\n\n

Michelle may be the only free theme in existence with 67 patterns. And, no, you did not misread that. It literally registers 67 block patterns. Yeah, that is a lot.

\n\n\n\n

It has a little bit of everything. From team galleries to logos, from hero headers to contact cards, it is hard not to find something you need. There was no way that I could realistically test all of them. However, for the dozen or so that I did try, they worked well and offered an easy one-click option for end-users.

\n\n\n\nVariable gallery with description pattern.\n\n\n\n

I always knew the day would come when a theme author would push the limits on the number of patterns it should offer. While 67 seems a bit excessive, I know from experience that we will see a day when patterns number in the 100s.

\n\n\n\n

I hate to continue beating a dead horse, but WordPress needs to use an overlay system for block patterns, at least for desktop users. Michelle makes it more apparent than ever that a small slide-out panel will not cut it.

\n\n\n\n

If the theme’s array of patterns is not enough to whet users’ appetites, its two dozen block styles just might.

\n\n\n\nHiding a Heading block for everyone but screen-readers.\n\n\n\n

The options range from light and dark text shadows to variable galleries. It even has an “accessibly hidden” style for Heading blocks, which hides the text from the screen but makes it available to screen readers.

\n\n\n\n

Block-Ready Footer and 404 Page

\n\n\n\n

The theme allows end-users to build their footer and 404 error pages via the block system. Considering that the site editor is not available yet and the block editor is limited to post content, Juhas had to think outside the box a little to make this possible. He made use of the reusable blocks system. This is the sort of ingenuity that happens when theme authors are not burdened by too many rules.

\n\n\n\n

In the customizer, users can select the Theme Options > Content section. From there, they are directed to pick a reusable block for their footer and 404 pages. Or they can simply opt out of it. The customizer section also links to the semi-secret admin page to create reusable blocks.

\n\n\n\nSelect reusable blocks for the 404 and footer content.\n\n\n\n

In the past, I have used a similar technique for 404 views. Instead of going the reusable block route, theme users could select a private page. Either option is acceptable for allowing users to modify content they may not have been able to customize in the past.

\n\n\n\n

Starter Content

\n\n\n\n

Michelle makes extensive use of the WordPress starter content feature. This allows new WordPress users to see what their site could look like with pre-loaded content. The theme creates Home, About, Blog, Services, FAQ, and Contact pages.

\n\n\n\nHomepage starter content.\n\n\n\n

The feature has languished in recent years. Many theme authors had hoped they would eventually be able to use the feature for non-new installs too. However, Helen Hou-Sandí got the ball rolling again in November 2020, breathing new life into an old idea. WordPress.org would begin displaying theme starter content via the theme preview system. Only the Twenty Twenty-One, Twenty Twenty, and Twenty Seventeen themes received this treatment last year. It now seems that it is being rolled out for others.

\n\n\n\n

This is a welcome change in the directory. Users can now get a feel of the Michelle theme without tracking down the author’s demo. It is a better experience than the old-school demo content.

\n\n\n\n

One issue is that the previewer uses the first sentence of the theme description for the demo’s tagline. This can make for a long and unusual bit of text. It can also mess up a theme’s layout as it is doing with Michelle. I hope this will be addressed from WordPress’s end soon.

\n\n\n\n

Other theme authors should note that starter content could factor into whether a user skips over or downloads their theme.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 05 Apr 2021 23:21:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"Matt: Doctorow on IP\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=53979\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"https://ma.tt/2021/04/doctorow-on-ip/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:655:\"

It’s not every day you see noted writer Cory Doctorow refer to a column as “the piece I’m most proud of,” and his essay in Locus Magazine on IP doesn’t disappoint, connecting the free software movement and the evolution of the term “author’s monopolies” to “intellectual property.”

\n\n\n\n

The essay on DRM and Apple, available on his WP-powered blog, or Twitter, is also worth reading.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 04 Apr 2021 02:42:24 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"WordPress.org blog: The Month in WordPress: March 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10084\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/04/the-month-in-wordpress-march-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9799:\"

This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

\n\n\n\n

These words from Josepha Haden Chomphosy on the How WordPress Improves episode of the WP Briefing Podcast point to the factors that differentiate building software in an open-source environment. Our updates this month are closely tied to the philosophy behind those core principles of open source software. 

\n\n\n\n
\n\n\n\n

WordPress 5.7 released

\n\n\n\n

WordPress version 5.7 “Esperanza,” came out on March 9. The release offers fresher admin colors, several improvements to the block editor, single-click HTTP to HTTPS migration, and a new Robots API. Read more about it in the release post, the field guide, and the talking points post for meetup groups. The Core Team has also started work on WordPress 5.8 pre-planning.

\n\n\n\n

Want to contribute to WordPress 5.8? Join the WordPress #core channel in the Make WordPress Slack and follow the Core Team blog. The Core Team hosts weekly chats on Wednesdays at 5 AM and 8 PM UTC. 

\n\n\n\n

Gutenberg Version 10.1 and 10.2 are out

\n\n\n\n

Contributor teams released Gutenberg Version 10.1 on March 3 and Version 10.2 on March 17.

\n\n\n\n

Version 10.1 showcases significant improvements to reusable blocks, a clearer image toolbar, and spatial options for the social media block. Version 10.2 offers block pattern options to display contents from the query block and removes writing prompts from empty paragraphs in the editor. It also adds width adjustment for spacer blocks in horizontal parent blocks and the ability to transform media and text blocks into columns.

\n\n\n\n

Want to get involved in building Gutenberg? Follow the Core Team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Make WordPress Slack. The “What’s next in Gutenberg” post offers more details on the latest updates. Don’t miss the monthly Gutenberg tutorial on How to make block patterns!

\n\n\n\n

Full Site Editing updates

\n\n\n\n

March saw a plethora of updates to the Full Site Editing project!

\n\n\n\n\n\n\n\n

Proposal launched for a WordPress contributor handbook

\n\n\n\n

A proposal has been kicked off on building a project-wide WordPress contributor handbook. The handbook will have content around the WordPress project’s underlying philosophies and commitments, along with shared expectations on working together and building products. It will also contain modern open source best practices for WordPress. 

\n\n\n\n
\n\n\n\n

Further Reading

\n\n\n\n\n\n\n\n

Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 03 Apr 2021 16:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:104:\"WPTavern: FSF Doubles Down on Stallman Reinstatement, WordPress Does Not Support His Return to the Board\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114565\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:251:\"https://wptavern.com/fsf-doubles-down-on-stallman-reinstatement-wordpress-does-not-support-his-return-to-the-board?utm_source=rss&utm_medium=rss&utm_campaign=fsf-doubles-down-on-stallman-reinstatement-wordpress-does-not-support-his-return-to-the-board\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9079:\"

The Free Software Foundation (FSF) is hemorrhaging board members and management following the reinstatement of Richard Stallman. The GPL author and founder of the FSF announced last week that he had rejoined the board and is not planning to resign a second time. An open letter signed by more than 3,000 people called for the removal of Stallman from all leadership positions, including the GNU project, and removal of the entire Board of the FSF. So far it has gained support from Red hat, Mozilla, Outreachy, the Software Conservancy project, and many other high profile organizations.

\n\n\n\n

“We are long past the point where we can pretend that the most important thing about software freedom is the software,” Mozilla Engineering Community Manager Michael Hoye said in signing support for the open letter. “We cannot demand better from the internet if we do not demand better from our leaders, our colleagues and ourselves.”

\n\n\n\n

In addition to the resignation of former FSF board member Kat Walsh, the organization’s executive director, deputy director, and chief technology officer have also resigned. They published a joint statement, reaffirming their commitment to the mission of free software, despite their departure:

\n\n\n\n

As members of FSF management, we have decided to resign, with specific end dates to be determined. We believe in the importance of the FSF’s mission and feel a new team will be better placed to implement recent changes in governance. Free software and copyleft are critical issues of our time, and the FSF is, and should continue to be, the organization leading this movement. FSF staff have our utmost respect, support, and appreciation, and it has been a privilege to work with you all. Our team’s mutual goal is to ensure a smooth transition while supporting the necessary renovation of the foundation’s governance.

\n\n\n\n

An oddly-timed tweet announced a new published statement the FSF board voted on, which “condemns misogyny, racism, and other bigotry as well as defamation, intimidation, and unfair attacks on free thought and speech.” The statement was met with ridicule and outrage on Twitter, as it hints at the defense Stallman used when he resigned as the FSF board director, claiming he had been subject to “a series of misunderstandings and mischaracterizations.”

\n\n\n\n
\n

While our primary mission is freedom for software users, we want to be clear, the FSF board unanimously condemns misogyny, racism,and other bigotry as well as defamation, intimidation, and unfair attacks on free thought and speech.

— Free Software Fndn. (@fsf) March 30, 2021
\n
\n\n\n\n

Recent statements published to the FSF website indicate that its leadership is doubling down on the decision to reinstate Stallman:

\n\n\n\n

Some of our colleagues in the FSF have decided to resign. We are grateful for the good work they have done for so long, and we will miss them. We regret losing them; we regret the situation that has motivated them to leave.

We appreciate their strong commitment to free software and we want to find replacements with a similar competence and commitment. We are open to suggestions and applications for these positions.

Finally, we would like to thank the numerous friends across the free software movement who have recently joined as well as those who have left and provided suggestions for helping us through this difficult time.

\n\n\n\n

The FSF seems to be counting the resignations as an acceptable loss, as funds from donors are evaporating. Several organizations have discontinued financial support for the organization. Most notably, Red Hat, a long-time donor with hundreds of contributors who have submitted millions of lines of code to projects stewarded by the FSF, publicly discontinued support for the organization and any of its events. In addition to $708,016 in membership dues, the FSF received $1,383,003 in contributions, gifts, and grants, which makes up the bulk of its annual revenue, according to a recent report on Charity Navigator.

\n\n\n\n

Stallman is synonymous with the FSF and his reinstatement puts many free software advocates in a difficult position. Some cannot easily write off the entire organization, as it is engaged in important work. The FSF publishes the GPL, LGPL, and FDL licenses. It also holds copyrights to defend free software from those who would seek to make it proprietary and has the power to enforce the GPL. As part of its Free Software Licensing and Compliance Lab, the organization works to ensure that free software distributors respect their obligations to pass on the user freedoms that these licenses are meant to convey.

\n\n\n\n

The Fedora Council cited the FSF’s important function when publishing a statement on why it is pulling funding from the organization:

\n\n\n\n

Along with many in the free and open source software world, the Fedora Council was taken aback that the Free Software Foundation (FSF) has allowed Richard Stallman to rejoin their Board of Directors given his history of abuse and harassment. The Fedora Council does not normally involve itself with the governance of other projects. However, this is an exceptional case due to the FSF’s stewardship of the GPL family of licenses, which are critical for the work we do.

\n\n\n\n

The council will not provide funding or attend any FSF-sponsored events where Stallman is a featured speaker or exhibitor, and stated that this also applies to any organization where he has a leadership role.

\n\n\n\n

WordPress Responds to Stallman’s Reinstatement

\n\n\n\n

Up until today, WordPress had not published an official statement on Stallman’s reinstatement to the FSF board. The WordPress Foundation website lists the Free Software Foundation as one of the project’s inspirations. WordPress co-founder Matt Mullenweg was also among the FSF’s list of patrons in previous years.

\n\n\n\n

After asking WordPress’ executive director Josepha Haden Chomphosy for a comment regarding the matter, she published a statement:

\n\n\n\n

In short, I do not support his return as a board member. 

It makes me proud that the WordPress project embodies the best traditions of open source and retires outdated traditions, or shibboleths, that do not have a place in our mission: to democratize publishing and grow the open web. For years, this community has been committed to championing underrepresented voices and maintaining a safe and welcoming environment for those we rarely see in open source. 

\n\n\n\n

Although the statement is published on her personal blog, Haden Chomphosy confirmed that this is the WordPress project’s official stance on Stallman’s reinstatement. The statement quietly calls out Stallman’s lack of accountability and the fact that he has not publicly acknowledged how harmful his behavior has been to the free software community:

\n\n\n\n

The high standards for welcoming behavior are held across the board. WordPress contributors lead with accountability, acknowledgment of error, and a genuine desire to grow based on feedback. Under the guidance of many thoughtful leaders, WordPress makes space for those who are committed to growth. 

\n\n\n\n

The message is more focused on the positive aspects of the WordPress community and its values but is clear in the first paragraph: WordPress does not support Stallman’s return as an FSF board member.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 02 Apr 2021 18:57:11 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: Disable the WordPress Block Editor’s Fullscreen Mode With a Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114659\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/disable-the-wordpress-block-editors-fullscreen-mode-with-a-plugin?utm_source=rss&utm_medium=rss&utm_campaign=disable-the-wordpress-block-editors-fullscreen-mode-with-a-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3173:\"

On Wednesday, Johan Jonk Stenström released Fullscreen Mode B Gone to the WordPress plugin directory. As the catchy title implies, it gets rid of the block editor’s fullscreen mode.

\n\n\n\n

As anyone who prefers to opt-out of fullscreen mode knows, there are moments when you log into WordPress and hop over to the post editor only to find it is not in the state you last left it. It is a slight annoyance but enough to dampen the user experience.

\n\n\n\n

Nearly two years ago, Andrew Duthie opened a ticket for storing users’ editor preferences to the database instead of their browser’s local storage. This includes basic settings like toggling whether fullscreen mode should be enabled. Local storage is not considered sticky, at least not permanently. It can be cleared in a variety of ways. This means that users must deal with disabling the default fullscreen editor more often than they should. It is also not stored when switching browsers, using private tabs, or when working on multiple sites across the same network.

\n\n\n\n

The ultimate goal should be to persistently save preferences on a per-user basis. There has been little movement on that ticket in the past year. Most comments have come in the form of closed duplicates.

\n\n\n\n

In the meantime, users must look for alternative solutions. That’s where plugins like Fullscreen Mode B Gone offer some assistance.

\n\n\n\n

The plugin is simple. It toggles the block editor’s fullscreen mode off. Regardless of whether users have switched browsers, cleared their local storage, or anything else, they can safely enter the editor without being bombarded by a different editing experience.

\n\n\n\nNew post with fullscreen mode disabled.\n\n\n\n

Both an upside and a downside of the plugin is that it resets fullscreen mode each time the user opens the editor. It does not address the sticky issue. For users like me who prefer to always have fullscreen mode disabled or only turn it on once in a while, this is ideal. However, for users who want WordPress to remember the last state, it is best to skip this plugin. The default experience is better suited to what you need.

\n\n\n\n

One of the things I dislike about how the editor works is that it requires JavaScript for plugins to make changes like this. Even if it is merely a few lines of code, it still calls for one more HTTP response just to alter a default setting. At least with PHP, a simple filter would have sufficed.

\n\n\n\n

This is not Stenström’s first editor-related plugin. He has a plugin titled Fatso, which widens the content canvas for users who prefer more space when writing. Also, continuing with the “B Gone” branding, he released Welcome To the Block Editor B Gone a week ago. Similar to his current plugin, it disables the block editor welcome message permanently.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 02 Apr 2021 16:38:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"WPTavern: Gutenberg 10.3 Supports Default Image Sizes, Continues Normalizing Toolbars, and Categorizes Theme Blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114610\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:271:\"https://wptavern.com/gutenberg-10-3-supports-default-image-sizes-continues-normalizing-toolbars-and-categorizes-theme-blocks?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-3-supports-default-image-sizes-continues-normalizing-toolbars-and-categorizes-theme-blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6241:\"

Version 10.3 of the Gutenberg plugin landed yesterday. Users can now define a default Image block size. The development team also continued work on normalizing block toolbars, created a “theme” block category, and added a padding option to the Verse block.

\n\n\n\n

Contributors fixed over 30 bugs. However, the bulk of work went toward Full Site Editing (FSE) with over 70 commits. It is an impressive effort toward the looming WordPress 5.8 deadline and an upcoming decision on whether FSE will land in the release.

\n\n\n\n

The team included a few additional blocks for FSE. The new Login/out block displays a login or logout link, depending on whether the user is logged out or in, respectively. The block also has an option for displaying a login form. A Query Title block was included with an Archive Title variation, which will automatically output the current title on archive views. The team also added a Term Description block for displaying category, tag, and custom taxonomy term descriptions on archives.

\n\n\n\n

Of course, as has become ritual at this point, I am now writing in an editor that looks different than it did a day ago. In version 10.2, all of our Paragraph blocks were shifted to the left. In 10.3, none of our theme’s width constraints are applying to the content canvas. I still optimistically envision a day in which a Gutenberg update does not affect theme styles.

\n\n\n\n

Default Image Sizes

\n\n\n\n\n\n\n\n

One of the features I have been patiently awaiting has finally arrived — sort of. We all have pet-peeves when it comes to the block editor, and not being able to set the default image size when using the Image block has been high on my list.

\n\n\n\n

A recently-added feature uses the core WordPress image_default_size option to handle this. When set, any new Image blocks added will default to this chosen size. While it is a welcome enhancement, there are two problems with the solution.

\n\n\n\n

The first issue is that this option is not exposed in the WordPress admin interface. That is unless you know how to get to the secret /wp-admin/options.php page. There are no links to it, but users can directly enter the URL, scroll down to find the image_default_size option, and manually type in the size handle (e.g., full, large, etc.) that they want before saving.

\n\n\n\n

The second issue is that it solves the problem on a site-wide level but not on a user level. For publications like WP Tavern with multiple authors, we all have our own preferred workflows. For me, I like to pre-crop all of my images before uploading, which often means that I want to use the full-sized image in the post. However, other writers may want to go a different route. The default image size should be a user preference, falling back to the site setting.

\n\n\n\n

Nevertheless, I am happy to see some progress. I can skip that extra step of setting the image size every time I add an image to a post.

\n\n\n\n

Next, let’s make this happen for image alignment. Or, how about we let users set defaults for many more block options to help them streamline their workflows?

\n\n\n\n

Normalizing Block Toolbar Groupings

\n\n\n\nSemantic groupings for the Paragraph block.\n\n\n\n

Building off work that started in version 10.1, the development team continued normalizing the block toolbar. Over a dozen blocks received the new treatment.

\n\n\n\n

The end goal is to create semantic groupings of the toolbar buttons for all blocks. This will make it easier for end-users to find options and for developers to know where to place buttons in the future. The order in the toolbar, broken down into four groups, is as follows:

\n\n\n\n
  • Meta
  • Block Level
  • Inline Level
  • More Options
\n\n\n\n

The toolbar separates each grouping with a border. With the Paragraph block, for example, the text alignment option is on the block level. However, the bold, italic, and link settings are inline.

\n\n\n\n

Developers creating custom blocks should follow the best practices under the block design documentation.

\n\n\n\n

Theme Block Category

\n\n\n\nTheme category with Template Part, Header, and Footer blocks.\n\n\n\n

When using a block-based theme, which enables FSE mode, Gutenberg 10.3 introduces a new “Theme” category in the inserter. It currently includes the Template Part, Header, and Footer blocks. The goal for the enhancement is to indicate that they are the building blocks of themes.

\n\n\n\n

The enhancement could be better if the category was not so tough to find in the inserter’s long list of blocks. I am still arguing that we bring back the original accordion in the UI. In the site editor, it would be better to shift the Theme category to the top, which is primarily for editing theme-related things.

\n\n\n\n

Padding Option for the Verse Block

\n\n\n\nAdding horizontal padding to the Verse block.\n\n\n\n

Users can now set the padding for the Verse block. The setting feels a bit out of place right now without any other stylistic options. Background and border options will make padding more relevant in the long term.

\n\n\n\n

For now, it is nice to see more blocks getting spacing options. It just happened to land on what, I’d wager, is the least-used block for WordPress users.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 01 Apr 2021 22:21:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:99:\"WPTavern: FSE Outreach Round #4: Building a Restaurant-Themed Header With Gutenberg’s Site Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114578\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:233:\"https://wptavern.com/fse-outreach-round-4-building-a-restaurant-themed-header-with-gutenbergs-site-editor?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-round-4-building-a-restaurant-themed-header-with-gutenbergs-site-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6069:\"

Anne McCarthy announced the fourth round of testing for the Full Site Editing (FSE) Outreach program last week. This testing phase calls for users to build a restaurant-themed header via the Gutenberg plugin’s site editor. Testing is open to anyone, and participants should leave feedback by April 8.

\n\n\n\n

The testing process is broken down into 24 steps with both setup and testing instructions. Those participating will need to activate the latest version of the TT1 Blocks theme and the Gutenberg plugin.

\n\n\n\n

The more people who leave feedback, the better it is for the project. The program provides that direct link between the user and the developer team that has often been missing in the past. If you have an hour or so of spare time, jump right in.

\n\n\n\n

Building a Custom Header

\n\n\n\n

I want to push the site editor beyond its limits, creating move advanced layouts. However, the site builder is so fundamentally limiting — and broken in some cases — that it is easy to become frustrated. And, depending on which version of Gutenberg you are using, such as the latest dev vs. stable version, you can get wildly different results.

\n\n\n\n

This propensity to jump ahead of the lesson is something I have done my entire life. In school, I frustrated more than a few teachers. I would be working on stuff from the end of the chapter when they were still explaining the basics to the rest of the class a half-hour later. I have always wanted to get to the “good stuff.” Of course, I did so by blazing past the boring fundamentals. I also dropped out of software engineering twice in college because building calculators was neither exciting nor challenging.

\n\n\n\n

Like always, I jumped ahead with Round #4 of the FSE Outreach Program. I came to the realization that attempting to do anything remotely advanced with the site editor was simply not going to happen.

\n\n\n\n

I want Full Site Editing to be successful, but we are mere weeks away from the deadline that determines whether it will land in the next version of WordPress. Somehow this experience felt like a step back from where the plugin was a few weeks ago as I built a custom homepage as part of the second round of the FSE Outreach testing program. I do not know whether the problems stemmed directly from Gutenberg, the TT1 Blocks theme, or both. As someone who prides himself on near-infinite patience, Round #4 sought to crack me.

\n\n\n\n

I wanted to recreate several elements from the UK-based Pho Cafe page header. I knew the site editor could not yet manage a one-to-one replication. I still thought I could pull in parts of it but utterly failed.

\n\n\n\nPho Cafe website page header.\n\n\n\n

I appreciate the need for controlled circumstances. Step-by-step testing puts everyone on the same page, makes it easier to gather data, and allows others to reproduce issues. I am just bad at it.

\n\n\n\n

Following the Rules

\n\n\n\n

I restarted from scratch. I followed the rules. And, for the most part, the testing round was successful. I built a restaurant website header from the instructions and put my own spin on it.

\n\n\n\nCustom beachside café header design.\n\n\n\n

Of course, I hit a few snags. That is what the testing program is all about — identifying pain points.

\n\n\n\n

The most problematic issue is that what I saw in the editor was not what I got on the front end. I have played around with it enough to know in my mind what it might look like on the front end to make adjustments without previewing the changes. However, that is not the user experience that WordPress is shooting for.

\n\n\n\nEditor view of the restaurant website header.\n\n\n\n

Admittedly, on the front end, I tidied up the padding for the Group block and bottom margin for the Columns block for the “Order Online” strip across the top of the header. I thought about making the button smaller too. However, I stuck with the TT1 Blocks theme default. Ultimately, padding, margin, and other types of sizing/spacing should be customizable by the end-user.

\n\n\n\n

Wide and full block alignments completely disappeared after activating TT1 Blocks. I am unsure if this was a recent change in the Gutenberg plugin or the theme. Nevertheless, they were gone, which was one reason I had trouble recreating pieces of the original page header I wanted to build.

\n\n\n\n

The TT1 Blocks theme also has a hardcoded font-size for the site title link. This means that users cannot change the size of the Site Title block. I wanted to bump this up a little to make it more prominent.

\n\n\n\n

Like the first design I was shooting for, I wanted my Navigation items to look like individual buttons, each with a bit of whitespace in between. However, the Navigation block does not currently support adding backgrounds to each nav item. Even if it did, it also does not have a horizontal margin setting to add the spacing. And, I outright refuse to use a Spacer block between items.

\n\n\n\n

I did want to spruce my restaurant page header up a bit with a custom background. To do that, I added the primary elements inside a Cover block. Currently, the only way to do that is to copy all of the blocks, delete the old ones, and paste them into a new Cover block. A welcome enhancement to the editor would be an option for “grouping” blocks into a Cover like what is possible with the Group block.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 31 Mar 2021 22:07:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"WPTavern: First Look at Initial Designs for WordPress’ Block Pattern Directory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114531\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:199:\"https://wptavern.com/first-look-at-initial-designs-for-wordpress-block-pattern-directory?utm_source=rss&utm_medium=rss&utm_campaign=first-look-at-initial-designs-for-wordpress-block-pattern-directory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3268:\"

WordPress contributors began discussing the possibility of a block pattern directory in October 2020, an idea that garnered enthusiastic support. The directory would offer a place to browse user-submitted patterns, as well as one-click installation of patterns from the block inserter inside the editor.

\n\n\n\n

Interface designer Shaun Andrews published the initial designs for the pattern directory yesterday. Patterns will be displayed in a masonry-style grid that can be sorted by category, which works well for pattern thumbnails of varying heights. Users can search the directory and sort by featured, newest, and most popular.

\n\n\n\n
\n\"Masonry\n
\n\n\n\n

The idea is that a user will be able to copy a single pattern to their clipboard while visiting the directory and paste it directly into the block editor. Users will also be able to “favorite” patterns from the directory and access them inside the editor.

\n\n\n\n
\n\"Copy\n
\n\n\n\n

One of the most exciting aspects of the plan is that anyone will be able to create and submit a pattern without having a lot of technical knowledge. Andrews shared a quick landing page mockup to explain what patterns are and how to submit one. Prospective pattern authors would be able to create a pattern on WordPress.org using a hosted instance of the block editor with a few tweaks specific to describing and categorizing the pattern.

\n\n\n\n
\n\n\n\n

Users who submit patterns will have a new “My Patterns” screen listing all of their patterns, ones they have favorited, information about how many people have favorited their submitted patterns, and status updates for patterns still in review.

\n\n\n\n
\n\n\n\n

“This is a big opportunity for designers to contribute to the overall WordPress ecosystem without having to know how to code a plugin or a theme,” Andrews said. It opens up a new avenue of design contribution that would not have been possible with the same scale of distribution in the days of the previous editor.

\n\n\n\n

There are still many unanswered questions, such as how “featured” patterns would be chosen, how drafts work, if the patterns can only include core blocks, how users will browse and manage favorite patterns in the editor, who approves the patterns, how pattern authors can edit existing patterns, and more. If you want to help out on the project, check out the Pattern Directory repository on GitHub. The work is broken down into smaller projects in the issues.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 31 Mar 2021 17:12:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WPTavern: GoDaddy Pro Will Kick off 2-Day Expand Event on April 27\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114518\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:177:\"https://wptavern.com/godaddy-pro-will-kick-off-2-day-expand-event-on-april-27?utm_source=rss&utm_medium=rss&utm_campaign=godaddy-pro-will-kick-off-2-day-expand-event-on-april-27\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5095:\"

GoDaddy Pro is launching its first virtual Expand event on April 27. The free-to-attend conference will focus on web professionals and will last until April 28.

\n\n\n\n

In February, GoDaddy re-launched GoDaddy Pro as a formal sub-brand of the company. The “Pro” branding was not a new outing. However, it was a fresh take on an old idea. As part of this launch, they introduced a re-engineered interface named the Hub. The experience was geared toward website designers and developers, providing them with a central location to manage their client projects. More than simply a new set of tools, the company created a dedicated branding experience for GoDaddy Pro.

\n\n\n\n

“We are committed to, passionate about, and truly in awe of web designers and developers,” said Adam Warner, the Global Field Marketing Sr. Manager at GoDaddy. “It has been a pleasure supporting this audience, but it’s now our mission to up the ante and deepen our commitment. Our goal with GoDaddy Pro is to empower web pros with a unified tool that helps them create outsize efficiency for their operation, deliver incredible results for their clients, grow their skills and operation, and connect and inspire by fostering community.”

\n\n\n\n

The Expand 2021 event is a continuation of that goal. The target audience is described as “web designers and developers who identify as eager side hustlers or website freelancers.” The conference’s sessions are meant to provide instructions, resources, and connections to help developers grow their businesses.

\n\n\n\n

The event will begin with an opening keynote from GoDaddy’s Aman Bhutani, the CEO; Tara Wellington, the Senior Director of Product Management; and Warner. It will feature eight sessions, split evenly between each day. The event’s schedule will fit into a small window between 10 am and 12:30 pm Pacific Time on both days.

\n\n\n\n

By some conference standards, even virtual ones, this may seem like a small event. However, the tighter focus could be a welcome one for people suffering from online event fatigue. Each session is scheduled to last around 30 minutes.

\n\n\n\n

The sessions will focus on a wide span of topics like client management, eCommerce, creating a project starter stack, website security, and scaling a freelance business with care plans.

\n\n\n\n

The History Behind GoDaddy Pro Expand

\n\n\n\n

Spearheading the first Expand conference, Warner avoided talking about target audiences, performance indicators, or budgetary concerns in an internal memo sent throughout GoDaddy. The effort is about creating a series of GoDaddy Pro Expand events globally in the coming months and years that help the community.

\n\n\n\n

The idea for a conference had been in the making since 2018. Warner described the purpose of GoDaddy Pro, Expand 2021, and meetups as empowering and inspiring the next generation of web designers and developers to deliver for their clients and create self-sustaining freelance businesses.

\n\n\n\n

Expand 2021 is, in some way, my Opus for giving back to the community that raised me and giving the new generation a head start in following their own passions. It’s the culmination of my years exploring and creating on the internet. My first time on the internet was in 1993. I was in my third year of college, working at Hungry Howie’s Pizza in small-town Michigan. A co-worker had some of us to her house, and her boyfriend logged us on to a Bulletin Board System (BBS). We chatted in a dull, orange text late into the night to people around the world.

I was amazed then, and that sense of wonder and possibility stayed with me as I started to learn HTML and build simple websites a few years later. Then came my discovery of WordPress in early 2005 and the incredible global community of users willing to lift each other up for collective success.

It was at that moment, I knew I had to find a way to make websites and WordPress my career.

\n\n\n\n

Now, 28 years later, Warner is taking the next step in organizing his first event from scratch along with over 40 others. He wanted to build a conference that was devoid of “talking heads touting theoretical advice.” Instead, to offer an experience with actionable knowledge that web professionals can use immediately.

\n\n\n\n

“The real purpose of Expand 2021 is to ‘pay it forward’ by advising and inspiring the next generation of web designers and developers, enabling them to take the next steps in their paths,” said Warner.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 20:16:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: So you want to make block patterns?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9995\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/03/so-you-want-to-make-block-patterns/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:12967:\"\"\"\n\n\n\n

If you’ve ever built something for the WordPress block editor — a theme or a plugin — you may have also heard about block patterns.

\n\n\n\n

Looking at the patterns that come bundled with WordPress, I thought it would be nice to dedicate to them a short post. They’re pretty nice, useful shortcuts when you know them, but there’s a good chance you may not know what they are or why you might want to use them.

\n\n\n\n

What’s a block pattern?

\n\n\n\n

Patterns are collections of pre-arranged blocks that can be combined and arranged in many ways making it easier to create beautiful content. They act as a head-start, leaving you to plug and play with your content as you see fit and be as simple as single blocks or as complex as a full-page layout.

\n\n\n\n
\"\"
\n\n\n\n

They live in a tab in the block library. You can click or drag and you’re able to preview them with your site’s styles.

\n\n\n\n
\"\"
\n\n\n\n

Basically, a block pattern is just a bunch of blocks put together in advance:

\n\n\n\n
	<!-- wp:group -->\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator -->\n<!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} -->\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div>\n<!-- /wp:image -->\n<!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} -->\n<blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote>\n<!-- /wp:quote -->\n<!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator --></div></div>\n<!-- /wp:group -->
\n\n\n\n

That’s also how you create them: just use the block editor to configure a smattering of blocks to your liking, and the hard part’s over.

\n\n\n\n

How do I get them in the block library?

\n\n\n\n

There’s more documentation in the handbook, but what it boils down to is this:

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

\"👆\" That’s a snippet of PHP, which means you can drop it in a WordPress plugin, or perhaps more simply, paste it into the functions.php file from your theme. Done:

\n\n\n\n
\"\"
\n\n\n\n

For patterns that include images, it’s worth thinking about where those are stored. The TT1 Blocks theme (which is a fancy name for “TwentyTwentyOne Blocks”) stores images in the theme library.

\n\n\n\n

Now what?

\n\n\n\n

The thing about a block pattern is, as soon as you insert it from the block library, it stops being a cohesive unit — now it’s just a smattering of blocks, detached from the pattern you created and meant to be customized to your liking. It’s a shortcut, not a template. That also means you don’t have to worry about switching themes or deactivating pattern plugins: the blocks you already inserted won’t go anywhere.

\n\n\n\n

That being said, if you like this one pattern so much you want to use it again and again, with no customization at all, you can make it into a reusable block:

\n\n\n\n\n\n\n\n

Reusable blocks are created, as the name implies, to be reused. The feature is a great way to store small bits of commonly used snippets that you can edit in one place to update in all. “Follow me on Twitter,” “Article series, or “Subscribe to my podcast” are great examples of that.

\n\n\n\n

What makes a good block pattern?

\n\n\n\n

Patterns, as they ship today, are limited by the features available. If the block editor doesn’t allow you to customize letter-spacing, your block pattern can’t either. While the Global Styles project will expand what’s to blocks, in the meantime, we have to work with the available tools.

\n\n\n\n

Even then, with the most basic ingredients — color, photography, typography — it is possible to do a lot:

\n\n\n\n
\"\"Three columns with images and text
\n\n\n\n
\"\"Media and text with image on the right
\n\n\n\n

I designed these patterns to potentially land in WordPress core, which all have a few properties in common:

\n\n\n\n

They share a theme.

\n\n\n\n

You can think of a pattern as a section of a website: it is meant to be part of a whole, and so it works best when it can exist in the context of other patterns that share the same theme. There are a few sharing a Nature theme in the patterns above, a few sharing an Art theme, and others sharing an Architecture theme. When seen together, it becomes easier to see how you might be able to piece together multiple pages of your site, one page at a time.

\n\n\n\n\n\n\n\n

They share a minimalist color palette.

\n\n\n\n

By being parts of a whole, patterns will inevitably land in a context that uses different colors. With a reduced color palette, there’s both a better chance of fitting in and less to customize to make it just right.

\n\n\n\n\n\n\n\n

The best patterns do things you might have not done otherwise.

\n\n\n\n

Whether that’s images offset to create a unique silhouette, or just using less visible features (like fixed positioning in the Cover block), it’s a way to surface creativity.

\n\n\n\n

Tip: You can use any block in your patterns, including blocks that came from a plugin. And if that block is in the block directory, it will prompt you to install it with one click if it’s missing from your self-hosted WordPress:

\n\n\n\n\n\n\n\n

Here’s a plugin for you

\n\n\n\n
<?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
\n\n\n\n

In case you want to make patterns, this example plugin features two of the patterns you saw above. Drop it in your plugins folder and they should show up in your block library.

\n\n\n\n
\"\"Installed pattern under “Text” Category
\n\n\n\n

Feel free to tweak it, customize it, and make it yours. It’s GPL, after all!

\n\n\n\n
\n\n\n\n

Thank you @joen for the help writing this post.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 17:01:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Beatriz Fialho\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:112:\"WPTavern: Open Collective Launches Funds to Help Companies Streamline Donations to Multiple Open Source Projects\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114400\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:269:\"https://wptavern.com/open-collective-launches-funds-to-help-companies-streamline-donations-to-multiple-open-source-projects?utm_source=rss&utm_medium=rss&utm_campaign=open-collective-launches-funds-to-help-companies-streamline-donations-to-multiple-open-source-projects\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4141:\"

Open Collective has launched Funds, a new funding infrastructure for funneling contributions to open source projects. Any open source project can receive contributions from a Fund, even those that are not listed on Open Collective due to having their own foundation or working with another fiscal host. The new feature was added to Open Collective’s existing non-profit funding platform that serves more than 2,500 projects.

\n\n\n\n

Funds were designed to mitigate the friction between corporations and open source projects, cutting out the excessive bureaucracy that can sometimes stifle funding for smaller projects. Companies can use the feature to support multiple projects that are crucial to their business efforts and underlying tech.

\n\n\n\n

“Funds facilitates a relationship between maintainers and organizations on their own terms,” Open Collective co-founder Pia Mancini said. “No contracts, no promises, no agendas. We take on the work of administrating payments to projects and of ensuring companies have what they need in their procurement processes.”

\n\n\n\n

Traditionally, if you wanted to work on an open source project full time, you would most likely need to be sponsored by a company. Although WordPress’ “Five for the Future” campaign isn’t perfect, it has brought some stability, enabling the project to drive important efforts forward even in leaner times of contribution from unpaid volunteers. Some open source projects aren’t able to thrive this way, especially those that are categorized as simple utilities.

\n\n\n\n

Critical dependencies can sometimes be grossly underfunded when supported by only a handful of individuals who may not have steady employment to buoy their maintainership efforts. The Heartbleed Bug that was disclosed in 2014 put a spotlight on the immense economic challenges of funding open source work. In the aftermath of this global fiasco, the tech industry turned its attention towards brainstorming different initiatives that might create a more healthy ecosystem.

\n\n\n\n

Open Collective’s Funds feature aims to make “working for an open source project a legitimate alternative to a career working for a for-profit corporation.” Prior to launching the new feature, the platform quietly tested a number of Funds with Airbnb, Indeed, Salesforce, and other companies with successful outcomes for maintainers.

\n\n\n\n

“Airbnb’s investment in webpack has enabled groundbreaking advancements in web compiler technology, paved the way for the last 2 major versions, and enabled us to devote entire teams to ecosystem management, CLI, docs, and infrastructure,” webpack core team member Sean Larkin said.

\n\n\n\n

Airbnb received so many reports of the positive impact of its Fund that the company decided to expand its open source sustainability commitment by 50% to $150,000.

\n\n\n\n

“Donations from Airbnb have made it possible for ESLint to pay core contributors for work,” ESLint creator Nicholas Zakas said. “As a result, contributors are able to spend more time pushing forward large projects that weren’t possible when we relied solely on volunteering.”

\n\n\n\n

As open source projects are becoming less self-contained and more interdependent, maintaining the health of the overall ecosystem is a priority. When smaller utilities that everyone depends on are underfunded, it can have a ripple effect that slows down progress throughout the vast web of projects that rely on the dependency.

\n\n\n\n

Open Collective’s Funds feature is one solution that helps companies streamline their donations and keep track of their contributions to multiple projects in one place. Companies interested in creating a new Fund can get in touch with the organization via its contact form.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 06:39:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Creating Tiled, Masonry, and Other Image Layouts With Meow Gallery\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114473\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:193:\"https://wptavern.com/creating-tiled-masonry-and-other-image-layouts-with-meow-gallery?utm_source=rss&utm_medium=rss&utm_campaign=creating-tiled-masonry-and-other-image-layouts-with-meow-gallery\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4546:\"

I am uncertain of how I first came across the Meow Gallery WordPress plugin. It was a pinned tab in my browser for a while, but it has recently become one of those projects that I keep coming back to. I delight in the imagery of the Meow Apps brand, created by Japan-based software developer Jordy Meow. It has the sort of fun and artistic visuals that are often missing in the WordPress business ecosystem. This creativity also comes across in the Meow Apps plugins.

\n\n\n\n

The problem with WordPress gallery plugins is that I find a new one I want to use every other week. It is a bit of an obsession. There are so many different options that it is tough to grow comfortable with a solution before finding something new and shiny to tinker with.

\n\n\n\n

Such is the case with Meow Gallery. From the simplicity of its options to the range of layouts that the plugin provides, it has found its way onto my ever-growing list of favorite gallery-related plugins.

\n\n\n\n

I also prefer the decoupled, modular nature of what Meow Apps is doing with its plugins. Meow Gallery keeps a tight focus on the gallery layout itself. Users can select an image lightbox/overlay extension separately. Meow Lightbox is recommended, of course. However, both are developed to work alongside third-party gallery or lightbox plugins. It is the sort of building-block solution that more developers in the community should embrace, ultimately offering end-users more freedom.

\n\n\n\n

Meow Gallery is straightforward to use. It works similarly to the core Gallery block. When first adding images, users can drag-and-drop them directly into it or select from their media library. From that point, the experiences begin to diverge.

\n\n\n\nTiled gallery with 10px gutter.\n\n\n\n

Instead of selecting the number of columns, whether to crop, or the image size, the Meow Gallery block automatically handles this based on the type of layout chosen. Options may change based on the layout too. The following are available:

\n\n\n\n
  • Tiles
  • Masonry
  • Justified
  • Square
  • Cascade
  • Carousel (pro only)
  • Map (pro only)
\n\n\n\n

The block also offers a handful of basic animations, link options, and more. However, the gutter setting provides more control over the output. The gutter is the horizontal and vertical space between images. Users can choose between 0 and 100. Gutter spacing is the one option from the plugin that WordPress should adopt, allowing theme authors to opt-into a default and users to customize.

\n\n\n\nSquare-layout gallery with no gutter.\n\n\n\n

The plugin also has commercial features, but they are value-added upsells instead of necessary functionality. The pro version includes extras like more layouts, new animations, and infinite scrolling for galleries with many images.

\n\n\n\n

The one off-putting issue with Meow Gallery is that it creates a custom block. Having already seen solutions from other plugin authors that extend the default Gallery block, I was hoping this plugin would go in the same direction. Extending the core block makes it easier for end-users to switch gallery plugins at any point. However, users can transform Meow Gallery blocks into Gallery blocks and vice versa.

\n\n\n\n

Keep in mind that the WordPress Gallery block is also undergoing drastic changes. Currently, the plan is to make it more of a container block that houses nested Image blocks. By not extending the core block, plugin users will miss out on some of the advantages this change brings. Of course, the plugin developer could follow suit and add the same features to the project.

\n\n\n\n

Meow Gallery relies on the WordPress gallery shortcode. Therefore, it will continue working regardless of whether users deactivate the plugin in the future. As a fallback, it is not a perfect solution. Users of the block editor would likely rather have it revert to the core Gallery block — the shortcode and block are not remotely the same. However, it is a bit of a compromise between showing a working gallery or nothing at all.

\n\n\n\n

I suspect the reliance on the shortcode is for historical reasons. Meow Gallery existed in the pre-block era. However, the developer has managed to keep up with the times, offering support for both the block and classic editor.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 21:26:37 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"WordPress.org blog: WP Briefing: How WordPress Improves\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/?post_type=podcast&p=9980\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:58:\"https://wordpress.org/news/2021/03/how-wordpress-improves/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:10224:\"

In this episode, Josepha Haden Chomphosy explores the WordPress release process. Tune in and learn the phases of a release and catch this week’s small list of big things.

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

All right, so last week, we wrapped up and shipped the WordPress 5.7 release. The release team this time around was smaller than we’ve had in the last couple of years. By the numbers, it looks really good: 66 enhancements or feature requests went in, 127 bugs were fixed, and seven versions of a Gutenberg plugin were merged and backported. If you use WordPress, you are probably aware that we have new releases throughout the year, but you probably don’t know much about the release process. There’s not really a reason to know unless you’re actively contributing to a release. For those interested in knowing more about how we improve WordPress, this week’s exploration is for you.

\n\n\n\n

We’re gonna take a look at what goes into WordPress releases and just kind of zoom our way in from the highest level. At the highest level, there are three major WordPress releases a year, plus the minor releases, plus Gutenberg releases. So if you’re following current WordPress work and future WordPress work, that’s going to get you to probably around 30 releases a year. If we zoom in one level to the release itself, a single release of WordPress takes four to five months from start to the day that we ship, and an additional four to six weeks on support and translations, and minor releases after that. If you’re looking from my vantage point, you’ll see that WordPress releases have essentially five parts, some of which happen kind of simultaneously. 

\n\n\n\n

The first part is planning and includes the project lead, lead developers, design; groups like that. The second phase is the creation phase when we’re actually building the things that have to go into the CMS that involves the design, core, editor, mobile, and other teams. Then there’s this phase that I like to refer to as the distribution phase. This is mostly done by the teams that make sure that WordPress is widely distributable; the polyglots team work on translations, accessibility does some work, docs make sure that everything is documented, and training, of course, gets things ready for when we have to be able to tell people how to use the release. 

\n\n\n\n

Then there is the fourth phase; I really don’t think they go sequentially or in a waterfall format. The fourth-ish phase that I include, and that I tend to see, is this extending and iteration phase. It’s the phase where we see our theme authors and our plugin authors, folks who are doing support, show up and help us to make sure that WordPress is available not only widely but broadly to ensure that their audiences as theme authors and plugin authors are covered in the features that they need based on what they are using WordPress for. The fifth phase is the part of our communication that involves the community team, especially marketing, WordPressTV, and learn.wordpress.org. Basically, anyone who’s showing up to make sure that we all share what happened in the release, the features that are coming, and how that affects the users is involved in that particular phase. So five big phases of what happens over those four to five months, and then for the month or month and a half afterward. 

\n\n\n\n

If we zoom in a bit more on the creation phase, each release has people who lead the work and coordinate contributor efforts during the course of the release. For any given release, hundreds of people contribute and receive credit for moving the WordPress project forward. Okay, hold on a second. Let’s pump the brakes and zoom in a bit on that. Hundreds of people work on every major release for a project that powers over 40% of the web that feels like a small number. But for the people who process the contributions in preparation for release, it’s actually pretty substantial. For every release, there is a small team of leaders who asked the hard questions. Is this a usable feature? Does this make WordPress better overall? And, of course, is this ready to ship?  Some of those leaders, a smaller subset of even the leaders that we have already, are committers who actually prep and merge patches to the CMS; they don’t do all the work to create a design or write all the code. This tiny group of people processes hundreds and hundreds of bug fixes, improvements, and enhancements that have been submitted over the course of months and sometimes years. As a side note, that whole process is a little smaller, a little faster in the Gutenberg featured plugin, but the basic parts are still there. Alright, so we’ve zoomed from the big picture way into some of the finer details, and it really looks like any other project cycle. So now, I’m going to layer in the filter of open source to that process.

\n\n\n\n

There are a couple of things that make building software in an open source environment so different. The first is that the code is readily available. If you have a basic understanding of the languages, you can see the code, learn from it, and make suggestions about improving it. Second, you consider the user a co-developer in the process, which means that as long as people use your product, they will have opinions on what you shipped. This way of iterating improves WordPress and ties back to one of my favorite open source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

\n\n\n\n

This brings us to our community highlight, the segment where I share a note about contributors who have helped others along the way or a WordPress success story. This week’s highlight is from Nok in our Bangkok community. When asked to help her find her way into the WordPress community, she said, “@shinichiN who started the WordPress community in Bangkok and encouraged me to contribute, and also @mayukojpn has introduced me to the WP community team to join as a deputy. “ Thank you for sharing those two inspiring people with us. And if you, listener, have any stories that you would like to share of your own WordPress success or people that you have been so grateful to help you find your way in the project, you can feel free to email those to me at wpbriefing@wordpress.org.

\n\n\n\n

That brings us to our final segment of the WP Briefing, the small list of big things. I only have three things to share with you this week. The first one is that about a week ago, we had our first release of 2021. It was the WordPress 5.7 release, titled Esperanza. If you have not yet seen it, go ahead and update your website or check with your host and make sure that they have updated you if you’re on a managed host. And then take a listen to the artists that it’s named after. 

\n\n\n\n

The second thing that I want you to keep an eye out for is wordpress.org/news. We are starting a new series of content that gets at the heart of some of Gutenberg’s basic parts; there’s a lot of change coming up in the next few releases of WordPress. And the most important thing to me is that you understand what we’re trying to change and where those changes are primarily taking place. There will be a couple of tutorials that go up there over the course of the of the next few weeks. The third item on the small list of big things is to remind you of our call for testing. As I mentioned earlier in the podcast, the users of any open source software are the code developers; the software built is supposed to make your life and work easier. When you test things and find interactions that can use a little bit of refinement or features that are not working exactly as expected, it’s incredibly helpful for us to have that information to always make sure that we’re solving problems instead of accidentally creating them. If you want to participate in the Current call for testing, you can head over to make.wordpress.org/test. Or, if you’ve been doing your own testing, you can also submit any bugs you have found in the GitHub repo, which I will share in the show notes below. So that, my friends, is your small list of big things. Thank you for tuning in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 15:15:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"WordPress.org blog: WP Briefing: Talking Full Site Editing with Matías Ventura\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10013\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2021/03/talking-full-site-editing-with-matias-ventura/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:31292:\"

In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.” Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”

\n\n\n\n

Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

\n\n\n\n

Credits

\n\n\n\n\n\n\n\n

References

\n\n\n\n\n\n\n\n

Transcript

\n\n\n\n\n\n\n\n

Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

\n\n\n\n

Josepha [0:41]: This month, we have a bonus briefing, so I’ve asked my dear friend and colleague Matías Ventura to join me. Matías was recently called “the spark behind the vision of Gutenberg.” With full site editing coming our way in 202, I asked if he would join me for a quick Q&A. Welcome, Matías. 

\n\n\n\n

Matías [0:56]: Hello, hello! Thanks for inviting me. It’s a pleasure to be here.

\n\n\n\n

Josepha [1:00]: Well, I’m delighted to have you. And I think that we have a lot of excellent questions. All right, so Matías, we actually ended up with questions in about three different groupings. And so I’m going to start with the “what is it about full site editing,” sorts of questions that people had. We’re gonna work our way into “what are we doing with it?” and then “how are we planning on getting this out the door?” Then, a couple of big picture questions that people asked. We’re just gonna leap right in this full site editing part of the Gutenberg plugin, or is it a standalone plugin?

\n\n\n\n

Matías [1:39]: Okay, we’ll start with the basics. Full site editing is part of the Gutenberg plugin right now. I think it’s important to mention that full site editing is like an umbrella for several projects that we’re working on. They are all aiming to bring blocks into more parts of your site so that editing becomes easier and more expressive, and so on. So full site editing right now encompasses adding a ton of new blocks. I think we have around 20 new blocks coming in, including navigation query, site, title, logo, etc. There’s also the interface to interact with templates outside of the content; that’s another big part of the full site editing project. We also have a lot of new design tools included, many of these have been released in previous major releases, but they still comprise a strong part of what full site editing is. We also have something called Global Styles, which aims to allow people to configure the visual aspects of blogs across the entire site, not just on any individual blog. And of course, then there’s a whole layer of how we utilize these tools. It can get complex because there are many layers and projects that need to come together. So yeah, all of these are accessible through the Gutenberg plugin right now.

\n\n\n\n

Josepha [3:07]: Yeah. So it’s not a standalone plugin. If you wanted to check out full site editing the site editor experience as it is now, you would just have to make sure you had the Gutenberg plugin on your site. Right?

\n\n\n\n

Matías: Yes, correct.

\n\n\n\n

Josepha:  So a couple of the questions related to this are how exactly do I enable it on my site? And what is the easiest and safest way to try this on my site? And I think the answer is, is right in there. It’s in the Gutenberg plugin. And so if you have that plugin, you don’t need the testing plugin or anything else to make that work, right?

\n\n\n\n

Matías [3:51]:  No, you like, you might need to install a theme like Twenty Twenty One blocks that unlock some of these new interfaces that we just talked about. Like other of these pieces are available for anything. But some of these, like the interface to edit templates, right now only talk with things that know how to express their desire. 

\n\n\n\n

Josepha [4:14]: And I think we have less than 10 themes right now that do that, but I’ll leave some links to at least 2021 blocks in the show notes. And then, if there are another one or two themes that I can find, I can add those in there as well. 

\n\n\n\n

So you have to have the Gutenberg plugin; you have to have a theme that works with that site editor kind of experience. And then you’re safe to try everything out. It shows up in your left toolbar just like any other thing, like if you were working with plugins, or if you were adding a post or anything else, right?

\n\n\n\n

Matías [4:51]: Yes, correct. And so, some of these details are being worked on right now. Like how and where you access things, and so on. These things are subject to change, but right now, you have this site editor beta in the sidebar when both you have the plugin running and a theme that’s capable.

\n\n\n\n

Josepha [5:10]: Yeah. Excellent note. If you are running this on a production website, I would recommend you not do that unless you are very, very good with WordPress. It’s a really safe and easy thing to test and try out. But because it is still in beta, I recommend always putting it on a test site. I have a couple of different test sites that I run on myself. Another question that I had was, “will full site editing slow down my site?” And I think we have some refreshed performance tests coming out about that. And maybe they’ll be out by the time we publish this podcast.

\n\n\n\n

Matías [5:49]: Yeah, I mean, like the performance has been one of the major focuses for the whole project. In many cases, it should speed up things because we’re like, I think one of the big pieces that these projects bring into the picture, especially for themes, is that it allows only the necessary assets to be loaded on the front end. For example, if for a given page, there are, I don’t know, 10-15 blocks being used, you would only get the CSS and scrapes and so on related to those blocks. This can cut down on a lot a ton of CSS that themes used to end queue on a side, particularly if you were trying to customize many widgets and so on, like a lot of themes have the full styles or multiple widgets, even third party plugins, and so on. So one of the advantages of having this blog system is that we can know at the time of rendering what blogs are being used and only load those assets. 

\n\n\n\n

Josepha [6:50]: Excellent. Another big question that we have is, “does full site editing work with the classic editor? And does it work with other builders?” I think that’s a really big answer if you’re going to get super deep into it. But I think that the short answer is yes, it does. Is that fair?

\n\n\n\n

Matías [7:08]: Yeah, I don’t think it touches a bit on that full site editing is not like a single thing. There are multiple projects around it. So again, like the template editor that only deals with blogs, it doesn’t have a lot to do with a classic editor. But the classic editor use for both doesn’t change anything at all; like the same way that when the block editor was introduced, it didn’t change how you could still write posts in the classic editor. You will still be able to do that.

\n\n\n\n

Josepha [7:41]: And if you are brand new to WordPress person, or, I mean, I guess at this point, you don’t have to be super brand new. If you’re fairly new to WordPress person and have no idea what we’re talking about when we say the classic editor, you don’t really have to worry about it either. You don’t have to go and find out what that is; the block editor that you have right now works perfectly for what you’re trying to do. So if you don’t know what I mean when I say classic editor, don’t worry about chasing it down either. 

\n\n\n\n

I think that this last question we accidentally answered earlier, but I’m going to go ahead and ask it anyway since I received it. “I keep hearing that you can use the site editor with the 2021 theme. But I don’t seem to be able to. What am I missing?” I think the answer is that there’s the Twenty Twenty One theme shipped with the WordPress release 5.6. And then there is the Twenty Twenty One blocks theme; those are two different themes. The link to the Twenty Twenty One block theme is going to be in our show notes this time around. And so, if you have been trying to use the full site editor with Twenty Twenty One and not succeeding, try the link to the one below. And I bet that that will work for you.

\n\n\n\n

Matías [8:50]: Yes, that’s correct. 

\n\n\n\n

Josepha [8:51]: All right, excellent. Well, that brings us kind of into our second set of questions, which is about how we are doing it. The first one that folks have is “will full site editing be on by default in the next release. In this context, the next release is WordPress 5.8. But I think it’s a safe question to ask if full site editing will be on by default in the release that it’s planned for.

\n\n\n\n

Matías [9:15]: Yeah, and for this, I need to go back to the same principle of many projects because there are many pieces of full site editing, and we have been merging them in major releases, particularly like the blocks and the design tools. There are more coming in that we want to make accessible as soon as possible. The full experience that requires a theme to opt-in to templates using blogs won’t be by default; it requires a specific theme running. A lot of these details we’re still like determining exactly what projects are ready to be merged and so on. But yeah, if you have a theme right now that works the way you want, it doesn’t change anything there. If anything, it adds some more capabilities and more customization tools, and so on. And the theme can also regulate how much they want to incorporate.

\n\n\n\n

Josepha [10:13]: Matías, you’ve mentioned a couple of times in this podcast so far like this is a really complex and really complicated part of this work. And just for anyone out there who’s either encountering Gutenberg or full site editing or this podcast for the first time, I think a tiny bit of context that’s worth having here is that Matías and I have been working on this together in various capacities for like, five years. And Matías has probably been working on this for practically a decade. So, when we say that this is a really complicated problem, and when we say that this is a complex set of issues that we’re working with like, it is all that we have been thinking about for I want to say at least the last three or four years, but certainly it’s all that we have been trying to untangle for quite a bit of time before that as well. So we don’t take it lightly when we’re like, “this is complicated;” we mean it. It’s really complicated. And we’re trying our hardest over here as WordPress. 

\n\n\n\n

The next big question, since we’re all stuck in the “it’s very complicated,” part of things is the question, “will this update break my current site?” Like, if I have a site that is updated and ready, and it’s exactly as I wanted it to be, and it took me two years to get there will full site editing, whichever release it’s in. Currently, 5.8 is what we’re planning for. Will that break anything on my site as I know it right now?

\n\n\n\n

Matías [11:44]: No, not at all. One of the major things that the WordPress team, the WordPress community, always cares so much about, never to break things. Many of these things are stepping stones that you can adopt, as we’ve talked about full site editing. But for example, we also have a few concurrent projects around the widget screen and the navigation screen that are meant to bring blocks into existing interfaces. So again, the theme doesn’t need to change, and a lot of care is being put into making this more like you’re unlocking new features, and nothing really breaks or falls apart.

\n\n\n\n

Josepha [12:23]: This update, like all the other updates, should have minimal, minimal impact on what you have to actively fix on your site. Every once in a while, a bug is gonna get by. We can’t say that we’re 100% perfect with not breaking things. But also, we always and I and I know that we’re planning on this for our remaining releases for the rest of the year. At the very least, I can’t imagine we’d ever change it. But after every major release, we always make a plan to have a minor release within the next one or two weeks. Because we know that a broken thing on a site is really incredibly impactful, even if you’re only 1% of the sites that had that happen to it. And so I think that’s true in this case, too. And getting that feedback back from all of the people who are actually using WordPress is the thing that makes us be able to kind of move quickly when we do see those problems. 

\n\n\n\n

One of the questions that we have been getting is, “can I see a live preview without saving the changes that I made?” When I got this question, I didn’t actually understand it. And so I went and looked at a site without the Gutenberg plugin on it, and then a site with the Gutenberg plugin on it. And of course, on sites without Gutenberg, without the block editor, without full site editing, when you are looking to preview, you have the option to open up your preview in a new window. And you don’t have that with Gutenberg because it’s supposed to be a true WYSIWYG editor. A true what you see is what you get, editor. I think that the answer to this is, yes, you can see a live preview without actually saving the changes on the front end of your site. But you don’t actually have to reload anything. You don’t have to open it up in a new window. You don’t have to, like, actively click “please show me a preview” because what you see in your editing screen should be what you see at the end of your app as an end-user.

\n\n\n\n

Matías [14:28]: Yeah, that’s the sort of the main gist to it. Yes, the site editor is built so that it always reflects the front end as truly as possible, so that’s one layer. Also, the preview tools should allow you to see in different devices like mobile breakpoints, and I don’t know if they will have breakpoints and stuff like that. There are a lot of things in the current interface that is just not enabled. There are some challenges in the sidebar. Because the site editor is not just focused on a single post, it’s focused on the entire site. So, there can be many, many changes that need to be shadowed for the site. 

\n\n\n\n

If you’re changing the site title, some of the global styles, aspects, and so on need to be orchestrated. So, to see in the previewing new window, there are some challenges there to integrate. Again, the interface is not final yet; a lot of these things are still being tweaked and improved. There are many things from the regular post editor that are not enabled yet. But they will be enabled. So yeah, it’s a, I guess, it’s not a simple thing to answer. Because, again, the idea of previewing the site that’s core to the whole project is that you’re always interacting in the same way that when you’re in the customizer, you’re seeing the preview all the time. That’s the main scope of this project,

\n\n\n\n

Josepha [15:54]: Excellent. Changes like that changes to your workflow can be really hard to get your mind around, especially if part of that existing workflow was there to create some confidence in what you’re seeing with your users. And so I understand. Now that I’ve researched that question a bit, I see where that’s coming from. Based on existing workflows and existing patterns that we have for ourselves in WordPress, will we need to have a theme to use the full site editor?

\n\n\n\n

Matías [16:33]: I think we’ve already covered some of these. And again, they are tools that can work on any existing theme. There is other stuff that needs space-specific themes to opt-in into these tools, like blog templates and so on.

\n\n\n\n

Josepha [16:50]: Yes, I think the question that we have next, because I see that the literal next question I have is actually something we have covered; just because we’re being pretty conversational about it, not because anyone already asked the question. So I’m actually going to skip to the last question of this section that I received. I got this next one via Twitter. The question is, “how do you view the role of themes once full site editing is fully rolled out and all the page elements (content, headers, widgets, footers, etc.) and all the views are managed via blocks and block patterns? Will things become typographic and block styles?”

\n\n\n\n

Matías [17:28]: I think this is a great question because it goes to the heart of, why are we doing all this. One of the main reasons is to empower users more. WordPress has been democratizing publishing for a while; this is another step into allowing themes to get more customization tools and more control over their site if they want to. I think the recent call for testing has focused on the 404 page, for example. That’s something that forever has been locked away from users. And it’s also something that, as a theme developer, and I used to develop themes a long time ago, that was one of the things where you decide what sort of approach you take for the 404 page. Maybe sometimes you want to have something more whimsical. Sometimes you need something more serious. And committing to one when you can have such a diverse and broad user base can be challenging. With these, it becomes as easy as offering a few different patterns for that template. Then the user will always be able to change the copy and modify something. So again, it opens up a lot of these things that used to be locked down. However, from a theme perspective, I think this doesn’t reduce the theme at all. If anything, it allows the theme to focus less on coding and functions and more on design expression and aesthetics. I don’t think that would ever be exhausted. That will always remain as diverse as humans are interacting with WordPress. And so it’s not that I don’t see it’s just as like, typographic and block styles. How do you express a template, how do you express the structure, what choices you quote, what choices you make as a theme builder? And of course, there are many degrees of control there. Because a site maintainer may not want the 404 template to be editable, that sort of control will always be present.

\n\n\n\n

Josepha [19:38]: Yeah. And really fast. I have to add a caveat to a thing that you said in there. For anyone who’s listening keenly, you may have heard Matías say that the users can update any of the content there – any of the copy. In this context, we’re talking about users as in the people who are maintaining the site, not people who are visiting your site. Visitors to your site will not be able to change any copy on your page unless you’ve done something very interesting with your WordPress site, which is also fine if that’s what you prefer to do. By default, your visitors can’t change everything on your website, which is good news, frankly.

\n\n\n\n

So I’ve got one logistics question, which I’m happy to take. And then one is kind of a big picture question that I also got from Twitter. “What about the classic editor block; what is going to happen to that? And when will we know?” So ages and ages ago, before COVID? I think so. Probably maybe a couple of years ago, Matt said that the classic editor plugin would be supported through the end of 2021. And that is still the case; there will be active support on that through the end of 2021. After that, it will not be actively supported anymore. It won’t be removed from any place that you can get access to right now. In a “this is the end of its lifecycle” sort of way, we just won’t have anyone who is currently committed to maintaining that plugin anymore. So that’s what’s happening at the end of the year. And yeah, at the end of 2021. The big question that we have is, “why is full site editing being so rushed?” I think this is a bit of a loaded question.

\n\n\n\n

Matías [21:32]: Yeah, I think I think it’s still a fair question, though. I think we’re dealing with two things here. And one is ensuring that we release things in the best state possible. And also, some of the urgency is to offer tools that we know that people lack right now and that could really benefit from. Making that determination is very tricky. The full site editing project has been in the works for the last couple of years. If we count the initial phase of Gutenberg, that’s four to five years. We’ve been doing many calls for testing, which I think have been super useful to catch issues and reflect as a community on where things are going; how do we integrate with these? How do we use it? What are the shortcomings? What do we need to do? Based on all of these, we’ll continue to make decisions on when things become ready. We’re not committed to releasing something that’s not in a good state. And I think we will always be very careful about that. There are these two competing senses of the urgency – of getting some of these tools out, and because it also benefits from the feedback loops. I always say that, in many ways, the initial phase of Gutenberg, to me, is not finished. We took the initial two years to do the 5.0 release, the initial block editor, and so on. But, it’s still being improved at a very fast pace, among all the recent major releases improvements to the editor were included; that will continue to be the case. In many ways, phase one is not finished. And the moment we choose to release some of these tools or editing tools, it won’t be finished either. They will need to continue to grow, mature, and incorporate a lot of the feedback. Even the things that the ecosystem is building around. I’ve seen a few themes already that are incorporating a blank canvas template so that you can use them in some pages and take over and do everything with blocks. So even the community and ecosystem as a whole is also sort of paving the way for what needs to come.

\n\n\n\n

Josepha [24:06]: I think from my perspective, and of course, I’m on the people side of things, the communication side of things, the logistics side of things; I have a frequently a very different view from what a lot of other folks are seeing. And so from my side of things, I have to say, I’m communicating about this change in a really broad way, which has not been happening since 2019 when we started the work. We’ve been communicating broadly with the WordPress community, but not with everybody who uses WordPress. So, I think that for a lot of people, this looks like a project that we started really actively working on in the last six months or so. And now we’re just racing toward a finish line. I think that there’s, there’s not been a lot of awareness of everything that’s gone into it. And so, on the one hand, it feels a little less rushed to me knowing the full length of the history on this. But also, as you said, I really think that this gets a bunch of tools to people who otherwise have not been able to accomplish these things in WordPress or otherwise. I am so anxious to get something to people who really can benefit from this change the most. And it’s the nature of the open source, right that like, one, as long as you have users, you’re going to have stuff you have to fix in your software. So we’re never really, really going to be done with this; there’s not going to be like a done point of WordPress. And the second thing is, I think it’s generally true that you don’t really start getting full user feedback until after you have launched your major release. I think that we see that a lot in open source software; you can bring in as many people as you think you can in your user tests heading up to it. And in your accessibility tests. And, in general, quality assurance tests. You can bring in a lot of people and still not have gotten the full understanding of the various niche use cases that your users will bring to you. Because at this point, we’re like 40% of the web. And that means that we’re serving this majority collection of increasingly minority voices and niche voices in the space. And so, a little bit I feel a sense of urgency; I feel a bit of anxiousness about trying to get this out there for one, to get the tools in the hands of the people who can benefit the most from them, but also so that we can start really getting the full stress test of this software out and get that feedback in so that we can really build something responsive to what our users need our long tail, “anyone who ever uses WordPress ever,” definition of users. And so, that’s why I feel a sense of urgency around it. Even though you know, as I said, you and I have been working on this for like five years, and you’ve been working on it for a decade or something. I actually don’t know how long it’s been worked on.

\n\n\n\n

Matías [27:35]: Now that makes me feel a bit old.

\n\n\n\n

Josepha [27:40]: Nobody makes Matías feel old. He is a lovely, wonderful colleague. Sorry, Matías, If I made you feel old.

\n\n\n\n

Matías [27:46]: No, that’s totally fine. I also want to add that full site editing is not like a single toggle that’s going to drop into a major release. So I think that’s important to consider, I think this entire year is going to see a lot of these tools being, and sometimes the sort of the end-user is not the, again, the site maintainer. Still, you can also be the theme developer; I think there are many tools that would be empowering for theme developers to use. Again, we mentioned there are like five to ten themes, block themes right now. That needs to grow a lot, and that only grows through these sorts of feedback loops. And the theme community pushing things forward and seeing where things can lead to. I’m very excited about the pattern directory integration because I think that can also combine with blog themes in very powerful ways. Imagine if, I don’t know many of these patterns that are very common on the web and very needed, that if we can refine them together with a second community and make them available across themes, you can combine a header from one theme with a content of another; all these sorts of mixtures could happen. All of this needs exploration, the creativity of the entire community, and so on. In that sense, getting all these tools, even if it doesn’t immediately change anything for like the site itself, starts to unlock a lot of things. 

\n\n\n\n

Josepha [29:27]: I’m going to take a bit of your answer from there and tie it all the way back to your first answer that we had when you joined me today. And say, I think you’re absolutely right. We have a set of users in our theme authors and our plugin developers as well that we desperately need to get looking at this set of tools. I hope that what we are shipping in the first iteration of this serves as an opportunity for all of those theme authors and agency owners, plugin authors, WordPress site configurers freelancers. Like, I really hope that this puts it into a really accessible, easy-to-access space for them so that they can do those experiments based on what they know their users need the most. They are the group that has the closest access to site maintainers. And what they need compared to, for instance, me or a potential you like we have a lot of information, you and I, we do a lot of tests, we have a strong sense of what is needed at the moment, but we don’t have as a close connection that our theme and agency and plugin folks all have. And so that’s another part of why I’m so excited to get this out in the current iteration of it.

\n\n\n\n

Josepha [31:04]: That was a lot of questions in a little bit of time. This is going to be officially my longest WordPress briefing. Matías, I am so glad that you were able to join me today. And I think that everyone’s going to be really, really excited to hear your answers to these questions.

\n\n\n\n

Matías [31:23]: Thank you for having me.

\n\n\n\n

Josepha [31:25]: All right, my friends. That brings us into our small list of big things. I’m going to skip our community highlight today just because we had a slightly longer word press briefing in our bonus iteration today. But the small list of big things. The first thing is WordCamp Central America is coming up on April 15; there is a registration link in the show notes that you can access your tickets with. I recommend that you go; we’ve got a lot of excellent speakers coming up there and a lot of good content and good training and learning for y’all. The second thing is that Matt Mullenweg and I have listening hours coming up with the community in the first week of April. I’ll add the link to register for those in the show notes as well; it’s just a few minutes for you all to stop by, check-in, see what’s going on, and share some celebrations or concerns with us. And I hope that I see you there. 

\n\n\n\n

So that my friends is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 15:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"Gutenberg Times: New Gallery Block, Convert Blocks, Business News and more Weekend Edition #164\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17347\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://gutenbergtimes.com/gallery-block-convert-blocks-business-weekend-edition-164/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:21372:\"

Howdy,

\n\n\n\n

Despite the new spread of the coronavirus in Europe and the problems around vaccinations, I am quite hopeful to be able to travel again in the second half of the year and visit the homeland after two years. Patience is a virtue.

\n\n\n\n

Today, we have a full roster of content for developers, content creators, theme authors, implementers and contributors. Again I am awed by the astonishing creativity in the WordPress space!

\n\n\n\n

Remember, you don’t need to read it all in one sitting. It’ll keep the whole week!

\n\n\n\n

Yours 💕
Birgit

\n\n\n\n\n\n\n\n\n\n

Full-Site Editing + Themes

\n\n\n\n

WPTavern has a podcast again! The WordPress Juke Box. For the inaugural episode host Nathan Wrigley interviewed. Among other things, Josepha Haden Chomphosy talked about her benchmark for the Go/NoGo decision to merge Full-Site Editing into core for the 5.8 release in July. Find additional thoughts in my post: Full-site Editing MVP: Can I Build a Landing Page?

\n\n\n\n
\n\n\n\n

Anne McCarthy posted the fourth call for testing: Building a restaurant themed header, with instructions to use columns, navigation block and other features for the header template part.

\n\n\n\n
\n\n\n\n

There is a lot of movement on the Gutenberg Repo and the Themes Team keeps a list of relevant issues and discussions for theme developers. Maggie Cabrera published the round-up post Gutenberg + Themes: Week of March 25, 2021. It’s an excellent reading list if you need to dive deeper in the upcoming changes for your theme or your customer. One of the issues caught my eye: the discussion and work around block alignment settings for themes. The current way predates the revamp of the Inner Blocks. There is some work to be done, streamlining the styling for themes. Join the discussion on GitHub.

\n\n\n\n\n

 “Keeping up with Gutenberg – Index” 
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

\n\n\n\n\n\n\n\n\n

If you love to take a sneak peek at the new version of the Gallery block, heed the call for testing by Glen Davies: Gallery Block Update – Call for Testing. The refactored version is now using single image blocks inside the Gallery block. You can us all the great features: individual links per image, block styles, choices for size and editing capabilities. If you also use a plugin with your site, like CoBlocks, you can still apply the great filters and animations to your gallery block. In his post, Davies walks you through the few features and asked to test all the many facets of the new Gallery block.

\n\n\n\n

On the WPTavern, Justin Tadlock explains how this new change can make a lot of difference on how gallery layouts will be built. Among other ideas, he pictures that among images, a Pull Quote block could be added. Refactoring Gutenberg’s Gallery Block To Support Nested Images.

\n\n\n\n

I posted my first impression as a comment and created a bug report on GitHub when my images lost all their styling when I added the gallery block to a group. I suggested making it possible to apply block styles to more than one image at a time, and that the gallery block / image block copies the respective Alt texts from the media library. Both suggestions made it into the project board.

\n\n\n\n

Block editor for content creators

\n\n\n\n

Liam Dempsey asked his Twitter followers for recommendation of Block plugins. He collected all the suggestions in this blog post: Community Recommendations for Gutenberg Blocks in WordPress.

\n\n\n\n
\n\n\n\n

Amie Suzan at at Virfice reviewed the Blocksy Theme and gives 18 Unavoidable Reasons to Build Sites With It. The theme received some attention after Chris Lema revamped his site using the block editor it now runs on the Blocksy theme. Justin Tadlock at the WPTavern also found the Blocksy theme to provide a solid block editor experience

\n\n\n\n

🌐 WPRepo | Website

\n\n\n\n
\n\n\n\n

Anders Norén published a new free theme in the WordPress Repository, named Eskell, inspired by the Swedish graphic designer Olle Eksell. In his introduction to the theme, Andres wrote: “(…) the star of the show in Eksell is the archive page, which features a masonry grid of posts and a category filter that updates the grid with posts from the selected category without a hard reload.” In includes full color settings and dark mode for devices that support it. He continues: “The Blank Canvas Template hides everything on the page except the blocks you add to the Block Editor content. That gives users the freedom to create entirely custom pages, with whatever blocks they want. It feels like a little preview of what we’ll be able to do once Full Site Editing is merged into WordPress Core.”

\n\n\n\n

Justin Tadlock published a review Eksell theme creates art with blocks and a follow-up article on the WPTavern.

\n\n\n\n

🌐 WPRepo | Website | Demo

\n\n\n\n

Should you switch to the block editor?

\n\n\n\n

Benjamin Intal from Stackable posted Why You Should Switch to the Gutenberg WordPress Editor. He wrote: “In this article, we enumerate some reasons why the Gutenberg WordPress editor might be your new primary choice for page building. Read on, and we might just convince you to give Gutenberg another shot.”

\n\n\n\n
\n\n\n\n

WordPressVIP post takes us Behind the scenes of News UK’s rampant speed to value. News UK is the powerhouse behind some of the UK’s most famous news, media, and lifestyle brands. Its reach ranges from the highly respected the London Times to the hugely popular Sun. In the more detailed case study, you’ll learn from the editor’s perspective how the usage of the block editor has streamlined content production, increased productivity and fosters a culture of innovation between teams.

\n\n\n\n
\n\n\n\n

On the WPBuild podcast A-Z of WordPress this week, Nathan Wrigley and David Walmsley tackled the letter G – Gutenberg. If the early controversy in 2018 had you shy away from trying it out, but now you heard so much positive about it, this episode will give you an update on how people are using the block-editor now and what’s in store for 2021.

\n\n\n\n
\n\n\n\n

Let Allie Nimmons of WPBuffs tell you Why and How to use the WordPress block editor. It’s an excellent introduction and tutorial with dozens of links to learn more.

\n\n\n\n
\n\n\n\n

For those of us who are worried about migrating a ton of content from classic editor and short codes to block editor, Darshan Sawardekar, lead web engineer at the web agency 10up, has good news. This week, he announced the release of the Convert to Blocks plugin. Convert to Blocks converts your content to blocks on the fly and those changes will be saved when you update the post. It’s not a Bulk Converter, it only converts content once it is opened in the block editor.

\n\n\n\n

🌐 WPRepo | GitHub

\n\n\n\n

A couple of months ago, the WPTavern published the article How To Bulk Convert Classic WordPress Posts To Blocks?. Justin Tadlock listed two more plugins for the purpose: Bulk Convert to Blocks (still in development) and Bulk Block Converter, last updated a year ago. We used it at a recent project and it worked very well.

\n\n\n\n

Business News around Gutenberg

\n\n\n\n

Extendify

\n\n\n\n

WPTavern has the scoop: Extendify recently aquired plugin EditorPlus and joined forces with Munir Kamal and his team around Gutenberg Hub. Back in November 2020, they also acquired Redux Framework, and hired its creator, Dōvy Paukstys, part-time.

\n\n\n\n

Plugins now owned by Extendify:

\n\n\n\n\n\n\n\n

People behind Extendify

\n\n\n\n

Chris Lukbert and Artur Grabowski, co-founders of Extendify, are former Automattic employees. So is Tammie Lister, Extendify’s Head of Design. Lister has been a major WordPress contributor on the Gutenberg block-editor as co-lead since the beginning in 2017. She participated in one of our first Live Q & As in November 2018 with her Gutenberg co-leads Joen Asmussen and Matias Ventura. You can also read more about Lister on HeroPress: Discovering Your Place.

\n\n\n\n

GoDaddy

\n\n\n\n

GoDaddy is sponsoring George Mamadashvili to contribute on the WordPress Gutenberg project full-time. Mamadashvili was one of the developers behind the cool blocks published under the brand of SortaBrilliant in 2018 and 2019. Recently, he released Toggles, an accordion block for FAQs, and other use cases. You can also use it to hide spoilers in Movie or Book reviews.

\n\n\n\n

Developing for the block editor

\n\n\n\n

Matt Watson published his 5th tutorial Create a Customizer Panel using Gutenberg Components for developers. You should read his previous posts before tackling this one.

\n\n\n\n\n\n\n\n
\n\n\n\n

On WordPressTV you’ll find Chris van Patten‘s The Ultimate Beginner’s Guide to the Gutenberg Data API. The Data API is how you get data in and out of Gutenberg, track changes across blocks, and execute events around the editor.

\n\n\n\n
\n\n\n\n

The WordCamp India presentation by Grzegorz “Greg” Ziółkowski Block Development with scaffolding helps you get started building a single block plugin with the create-block-script.

\n\n\n\n

\n\n\n\n\n

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.
Have you been using it? Hit reply and let me know.

\n\n\n\n

\"GitHub

\n\n\n\n\n

WordPress Events

\n\n\n\n

April 6, 2021 9 am EDT / 14:00 UTC
WPCafe: Building the Twenty Twenty-One with Caroline Nymark and Mel Dwan-Choyce, live on YouTube

\n\n\n\n

April 6, 2021 9 am EDT / 14:00 UTC
WPCafe: Building the Twenty Twenty-One with Caroline Nymark and Mel Dwan-Choyce, live on YouTube

\n\n\n\n

April 15, 2021 6:30 pm EDT / 23:30 UTC
South Florida Mega Meetup “New Site Builder Edition”

\n\n\n\n

April 15 – 17, 2021
WordCamp Centroamérica 2021

\n\n\n\n

April 27 and 28th
Expand 2021 – a virtual event hosted by GoDaddy that brings the web design and developer community together to share ideas and experiences, make connections and support each other.

\n\n\n\n

May 24 – 27. 2021
WordSesh 2021
Speaker submissions are due on Monday! (March 29th)!

\n\n\n\n
\n\n\n\n

On the Calendar for WordPress Online Events you’ll find a list of the upcoming WordPress Meetups, around the world, including WooCommerce, Elementor, Divi Builder and Beaver Builder meetups.

\n\n\n\n\n\n\n
\n\n\n\n

Don’t want to miss the next Weekend Edition?

\n\n\n\n

We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

Thanks for subscribing.
\n\n\n\n
\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 27 Mar 2021 20:30:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"WPTavern: WordPress to Drop Support for IE11 in Upcoming 5.8 or 5.9 Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114416\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/wordpress-to-drop-support-for-ie11-in-upcoming-5-8-or-5-9-release?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-to-drop-support-for-ie11-in-upcoming-5-8-or-5-9-release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3258:\"

In early March, WordPress contributors began discussing the possibility of dropping support for IE11 in the near future after usage fell below ~1%. This week, the discussion’s facilitator, Héctor Prieto, confirmed the majority of participants are in agreement to move forward and set a timeline for discontinuing support. Contributors are now considering either the 5.8. or 5.9 release.

\n\n\n\n

“The argument for dropping in 5.8 is to realize the change and improvement quicker, while others are inclined to wait until 5.9 to provide a longer window between the official announcement and the effective date,” Prieto said. The final call is up the the 5.8 release team, which has not yet been identified.

\n\n\n\n

The release scope and schedule hinges on whether or not the April go/no-go conditions are met for including full-site editing in the merge for 5.8 (July 2021) or 5.9 (December 2021). Teams for 5.8 will be finalized in April/May, and they will decide how to proceed for discontinuing IE11.

\n\n\n\n

Jb Audras suggested that if 5.8 release leads elect to drop support for IE11, he could work with other contributors to update the BrowseHappy notice in one of the upcoming minor versions.

\n\n\n\n

“Even if the BrowseHappy notice can be updated independently from Core releases, I think it’s better to update alongside a release, to give better visibility to this change,” Audras said.

\n\n\n\n

Microsoft 365 apps and services will no longer support IE11 beginning August 17, 2021. Drupal recently went through a similar process of deciding to drop IE11 support with the upcoming Drupal 10 release, anticipated in June 2022. Those who have to use IE11 retain the option to remain on Drupal 9’s LTS release until the end of 2023. Participants in the discussion cited many of the same considerations now facing WordPress contributors.

\n\n\n\n

Matt Mullenweg commented on the preliminary discussion to suggest giving IE11 users a path forward if they land on wp-admin using an unsupported browser:

\n\n\n\n

Supportive of dropping support, and if someone visits on an explicitly dropped browser like IE11 showing them a friendly message saying why wp-admin is not accessible and next steps they can take.

\n\n\n\n

The technical implementation is being discussed in the ticket Riad Benguella created to discourage IE11 usage and WordPress’ projects and teams will begin examining the practical implications of dropping support.

\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 26 Mar 2021 23:32:33 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Wed, 21 Apr 2021 19:26:32 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:13:\"last-modified\";s:29:\"Wed, 21 Apr 2021 19:00:08 GMT\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 2\";s:16:\"content-encoding\";s:4:\"gzip\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'); -INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5453, '_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619076392', 'no'), -(5454, '_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619033192', 'no'), -(5455, '_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b', '1619076392', 'no'), -(5456, '_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b', '', 'no'), -(5462, '_site_transient_update_plugins', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619033845;s:7:\"checked\";a:7:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:5:\"1.8.1\";s:25:\"basic-auth/basic-auth.php\";s:3:\"0.1\";s:23:\"wp-gatsby/wp-gatsby.php\";s:5:\"0.9.1\";s:25:\"wp-graphql/wp-graphql.php\";s:5:\"1.1.2\";s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";s:3:\"1.1\";s:33:\"wp-graphql-acf/wp-graphql-acf.php\";s:5:\"0.3.1\";}s:8:\"response\";a:4:{s:43:\"custom-post-type-ui/custom-post-type-ui.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:33:\"w.org/plugins/custom-post-type-ui\";s:4:\"slug\";s:19:\"custom-post-type-ui\";s:6:\"plugin\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:11:\"new_version\";s:5:\"1.9.1\";s:3:\"url\";s:50:\"https://wordpress.org/plugins/custom-post-type-ui/\";s:7:\"package\";s:68:\"https://downloads.wordpress.org/plugin/custom-post-type-ui.1.9.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-256x256.png?rev=1069557\";s:2:\"1x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-128x128.png?rev=1069557\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:75:\"https://ps.w.org/custom-post-type-ui/assets/banner-1544x500.png?rev=1069557\";s:2:\"1x\";s:74:\"https://ps.w.org/custom-post-type-ui/assets/banner-772x250.png?rev=1069557\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.7.0\";s:12:\"requires_php\";s:3:\"5.6\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:23:\"wp-gatsby/wp-gatsby.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:23:\"w.org/plugins/wp-gatsby\";s:4:\"slug\";s:9:\"wp-gatsby\";s:6:\"plugin\";s:23:\"wp-gatsby/wp-gatsby.php\";s:11:\"new_version\";s:5:\"1.0.8\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/wp-gatsby/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/plugin/wp-gatsby.1.0.8.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-256x256.png?rev=2336725\";s:2:\"1x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-128x128.png?rev=2336725\";}s:7:\"banners\";a:0:{}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.3\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:25:\"wp-graphql/wp-graphql.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:24:\"w.org/plugins/wp-graphql\";s:4:\"slug\";s:10:\"wp-graphql\";s:6:\"plugin\";s:25:\"wp-graphql/wp-graphql.php\";s:11:\"new_version\";s:5:\"1.3.5\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/wp-graphql/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.5.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=2482884\";s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=2482884\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=2482884\";s:2:\"1x\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=2482884\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.1\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:34:\"advanced-custom-fields-pro/acf.php\";O:8:\"stdClass\":8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:0:{}}', 'no'); +(5508, '_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619864950', 'no'), +(5509, '_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619821750', 'no'), +(5510, '_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b', '1619864950', 'no'), +(5511, '_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b', '', 'no'); INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES (1, 2, '_wp_page_template', 'default'), @@ -745,7 +746,7 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (3112, 567, '_menu_item_xfn', ''), (3113, 567, '_menu_item_url', 'https://google.com'), (3147, 1, '_thumbnail_id', '362'), -(3160, 1, '_edit_last', '3'), +(3160, 1, '_edit_last', '4'), (3210, 1, '_yoast_wpseo_content_score', '90'), (3223, 586, '_edit_lock', '1597973681:1'), (3224, 586, '__update', '1'), @@ -758,7 +759,7 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (3375, 586, '_flex', 'field_5e5d71ef712f5'), (3404, 586, '_yoast_wpseo_content_score', '30'), (3879, 1, '_wp_page_template', 'default'), -(4067, 2, '_edit_last', '3'), +(4067, 2, '_edit_last', '4'), (4641, 2, 'image', ''), (4654, 2, '_image', 'field_5e5d71e8712f4'), (4667, 2, 'flex', ''), @@ -2632,29 +2633,13 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (67012, 10927, '_wp_attached_file', '2020/10/karsten-winegeart-5zzY1WvIRRQ-unsplash-scaled.jpg'), (67013, 10927, '__update', '1'), (67033, 10927, '_wp_attachment_metadata', 'a:6:{s:5:\"width\";i:1710;s:6:\"height\";i:2560;s:4:\"file\";s:57:\"2020/10/karsten-winegeart-5zzY1WvIRRQ-unsplash-scaled.jpg\";s:5:\"sizes\";a:14:{s:6:\"medium\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-200x300.jpg\";s:5:\"width\";i:200;s:6:\"height\";i:300;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:5:\"large\";a:4:{s:4:\"file\";s:51:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-684x1024.jpg\";s:5:\"width\";i:684;s:6:\"height\";i:1024;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:9:\"thumbnail\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-150x150.jpg\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:12:\"medium_large\";a:4:{s:4:\"file\";s:51:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-768x1150.jpg\";s:5:\"width\";i:768;s:6:\"height\";i:1150;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:9:\"1536x1536\";a:4:{s:4:\"file\";s:52:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-1026x1536.jpg\";s:5:\"width\";i:1026;s:6:\"height\";i:1536;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:9:\"2048x2048\";a:4:{s:4:\"file\";s:52:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-1368x2048.jpg\";s:5:\"width\";i:1368;s:6:\"height\";i:2048;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:14:\"post-thumbnail\";a:4:{s:4:\"file\";s:52:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-1200x1797.jpg\";s:5:\"width\";i:1200;s:6:\"height\";i:1797;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:23:\"twentytwenty-fullscreen\";a:4:{s:4:\"file\";s:52:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-1980x2964.jpg\";s:5:\"width\";i:1980;s:6:\"height\";i:2964;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:21:\"woocommerce_thumbnail\";a:5:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-450x450.jpg\";s:5:\"width\";i:450;s:6:\"height\";i:450;s:9:\"mime-type\";s:10:\"image/jpeg\";s:9:\"uncropped\";b:0;}s:18:\"woocommerce_single\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-600x898.jpg\";s:5:\"width\";i:600;s:6:\"height\";i:898;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:29:\"woocommerce_gallery_thumbnail\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-100x100.jpg\";s:5:\"width\";i:100;s:6:\"height\";i:100;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:12:\"shop_catalog\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-450x450.jpg\";s:5:\"width\";i:450;s:6:\"height\";i:450;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:11:\"shop_single\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-600x898.jpg\";s:5:\"width\";i:600;s:6:\"height\";i:898;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:14:\"shop_thumbnail\";a:4:{s:4:\"file\";s:50:\"karsten-winegeart-5zzY1WvIRRQ-unsplash-100x100.jpg\";s:5:\"width\";i:100;s:6:\"height\";i:100;s:9:\"mime-type\";s:10:\"image/jpeg\";}}s:10:\"image_meta\";a:12:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}}s:14:\"original_image\";s:42:\"karsten-winegeart-5zzY1WvIRRQ-unsplash.jpg\";}'), -(72375, 11713, 'referenced_node_status', 'update_non_node_root_field'), -(72376, 11713, 'referenced_node_single_name', 'updateNonNodeRootField'), -(72377, 11713, 'referenced_node_plural_name', 'updateNonNodeRootField'), (72470, 7646, '_oembed_e43e02b677436f4329e8d80cde1ae18b', '{{unknown}}'), -(72486, 1, '_edit_lock', '1613777863:1'); - -INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES (72488, 10449, '_edit_lock', '1613694065:1'), (72489, 10927, '_edit_lock', '1618852154:1'), -(72492, 11750, 'referenced_node_status', 'trash'), -(72493, 11750, 'referenced_node_single_name', 'mediaItem'), -(72494, 11750, 'referenced_node_plural_name', 'mediaItems'), -(72495, 11751, 'referenced_node_status', 'none'), -(72496, 11751, 'referenced_node_single_name', 'none'), -(72497, 11751, 'referenced_node_plural_name', 'none'), (72498, 8525, '_edit_lock', '1618943211:1'), -(72499, 10627, '_edit_lock', '1618943220:1'), -(72500, 11753, 'referenced_node_status', 'publish'), -(72501, 11753, 'referenced_node_single_name', 'user'), -(72502, 11753, 'referenced_node_plural_name', 'users'), -(72503, 11754, 'referenced_node_status', 'publish'), -(72504, 11754, 'referenced_node_single_name', 'page'), -(72505, 11754, 'referenced_node_plural_name', 'pages'), +(72499, 10627, '_edit_lock', '1618943220:1'); + +INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES (72506, 16, '_edit_last', '4'), (72507, 16, 'range_field', '0'), (72508, 16, '_range_field', 'field_5f47e967644b1'), @@ -2779,11 +2764,94 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (72627, 11755, 'mp4', ''), (72628, 11755, '_mp4', 'field_5f777f213694c'), (72629, 11755, 'mov', ''), -(72630, 11755, '_mov', 'field_5f777f303694d'); +(72630, 11755, '_mov', 'field_5f777f303694d'), +(72632, 11758, 'referenced_node_status', 'publish'), +(72633, 11758, 'referenced_node_single_name', 'post'), +(72634, 11758, 'referenced_node_plural_name', 'posts'), +(72636, 11760, 'referenced_node_status', 'publish'), +(72637, 11760, 'referenced_node_single_name', 'user'), +(72638, 11760, 'referenced_node_plural_name', 'users'), +(72658, 11765, 'referenced_node_status', 'publish'), +(72659, 11765, 'referenced_node_single_name', 'page'), +(72660, 11765, 'referenced_node_plural_name', 'pages'), +(72661, 2, 'pdf', ''), +(72662, 2, '_pdf', 'field_5f777f123694a'), +(72663, 2, 'doc', ''), +(72664, 2, '_doc', 'field_5f777f1a3694b'), +(72665, 2, 'mp4', ''), +(72666, 2, '_mp4', 'field_5f777f213694c'), +(72667, 2, 'mov', ''), +(72668, 2, '_mov', 'field_5f777f303694d'), +(72669, 11763, 'image', ''), +(72670, 11763, '_image', 'field_5e5d71e8712f4'), +(72671, 11763, 'flex', ''), +(72672, 11763, '_flex', 'field_5e5d71ef712f5'), +(72673, 11763, 'range_field', '0'), +(72674, 11763, '_range_field', 'field_5f47e967644b1'), +(72675, 11763, 'text_field', ''), +(72676, 11763, '_text_field', 'field_5f47e986644b2'), +(72677, 11763, 'text_area_field', ''), +(72678, 11763, '_text_area_field', 'field_5f47e993644b3'), +(72679, 11763, 'button_group_field', 'button1'), +(72680, 11763, '_button_group_field', 'field_5f47e99f644b4'), +(72681, 11763, 'checkbox_field', ''), +(72682, 11763, '_checkbox_field', 'field_5f47e9c5644b5'), +(72683, 11763, 'radio_button_field', 'radiobutton1'), +(72684, 11763, '_radio_button_field', 'field_5f47e9f3644b6'), +(72685, 11763, 'select_field', 'select1'), +(72686, 11763, '_select_field', 'field_5f47ea12644b7'), +(72687, 11763, 'true_false_field', '0'), +(72688, 11763, '_true_false_field', 'field_5f47ea28644b8'), +(72689, 11763, 'file_field', ''), +(72690, 11763, '_file_field', 'field_5f47ea3f644b9'), +(72691, 11763, 'gallery_field', ''), +(72692, 11763, '_gallery_field', 'field_5f47ea4a644ba'), +(72693, 11763, 'image_field', ''), +(72694, 11763, '_image_field', 'field_5f47ea53644bb'), +(72695, 11763, 'oembed_field', ''), +(72696, 11763, '_oembed_field', 'field_5f47ea5b644bc'), +(72697, 11763, 'wysiwyg_editor_field', ''), +(72698, 11763, '_wysiwyg_editor_field', 'field_5f47ea64644bd'), +(72699, 11763, 'color_picker_field', ''), +(72700, 11763, '_color_picker_field', 'field_5f47ea75644be'), +(72701, 11763, 'date_picker_field', ''), +(72702, 11763, '_date_picker_field', 'field_5f47ea7f644bf'), +(72703, 11763, 'date_time_picker_field', ''), +(72704, 11763, '_date_time_picker_field', 'field_5f47ea8b644c0'), +(72705, 11763, 'google_map_field', ''), +(72706, 11763, '_google_map_field', 'field_5f47ea9d644c1'), +(72707, 11763, 'time_picker', ''), +(72708, 11763, '_time_picker', 'field_5f47eaa7644c2'), +(72709, 11763, 'flexible_content_field', ''), +(72710, 11763, '_flexible_content_field', 'field_5f47eadf644c4'), +(72711, 11763, 'repeater_field', ''), +(72712, 11763, '_repeater_field', 'field_5f47eaf8644c6'), +(72713, 11763, 'clone_field', ''), +(72714, 11763, '_clone_field', 'field_5f47eb4b644c8'), +(72715, 11763, 'link_field', ''), +(72716, 11763, '_link_field', 'field_5f47eb54644c9'), +(72717, 11763, 'page_link_field', ''), +(72718, 11763, '_page_link_field', 'field_5f47eb5e644ca'), +(72719, 11763, 'post_object_field', ''), +(72720, 11763, '_post_object_field', 'field_5f47eb69644cb'), +(72721, 11763, 'relationship_field', ''), +(72722, 11763, '_relationship_field', 'field_5f47eb74644cc'), +(72723, 11763, 'taxonomy_field', ''), +(72724, 11763, '_taxonomy_field', 'field_5f47edce644cd'), +(72725, 11763, 'user_field', ''), +(72726, 11763, '_user_field', 'field_5f47eddc644ce'), +(72727, 11763, 'pdf', ''), +(72728, 11763, '_pdf', 'field_5f777f123694a'), +(72729, 11763, 'doc', ''), +(72730, 11763, '_doc', 'field_5f777f1a3694b'), +(72731, 11763, 'mp4', ''), +(72732, 11763, '_mp4', 'field_5f777f213694c'), +(72733, 11763, 'mov', ''), +(72734, 11763, '_mov', 'field_5f777f303694d'); INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES -(1, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'publish', 'open', 'open', '', 'hello-world', '', '', '2021-02-18 00:09:14', '2021-02-18 00:09:14', '', 0, 'http://localhost:8001/?p=1', 0, 'post', '', 1), -(2, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'private', 'closed', 'open', '', 'sample-page', '', '', '2021-02-17 23:56:57', '2021-02-17 23:56:57', '', 0, 'http://localhost:8001/?page_id=2', 0, 'page', '', 0), +(1, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'publish', 'open', 'open', '', 'hello-world', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/?p=1', 0, 'post', '', 1), +(2, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'open', '', 'sample-page', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/?page_id=2', 0, 'page', '', 0), (3, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '

Who we are

Our website address is: http://localhost:8001.

What personal data we collect and why we collect it

Comments

When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.

An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.

Media

If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.

Contact forms

Cookies

If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.

If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.

When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.

If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.

Embedded content from other websites

Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.

These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.

Analytics

Who we share your data with

How long we retain your data

If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.

For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.

What rights you have over your data

If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.

Where we send your data

Visitor comments may be checked through an automated spam detection service.

Your contact information

Additional information

How we protect your data

What data breach procedures we have in place

What third parties we receive data from

What automated decision making and/or profiling we do with user data

Industry regulatory disclosure requirements

', 'Privacy Policy', '', 'private', 'closed', 'open', '', 'privacy-policy', '', '', '2021-02-17 23:56:57', '2021-02-17 23:56:57', '', 0, 'http://localhost:8001/?page_id=3', 0, 'page', '', 0), (16, 4, '2020-02-25 19:27:33', '2020-02-25 19:27:33', '', 'Activity', '', 'publish', 'closed', 'closed', '', 'activity', '', '', '2021-04-21 19:56:02', '2021-04-21 19:56:02', '', 0, 'http://localhost:8001/activity/', 0, 'page', '', 0), (17, 4, '2020-02-25 19:27:33', '2020-02-25 19:27:33', '', 'Members', '', 'private', 'closed', 'closed', '', 'members', '', '', '2021-02-17 23:56:57', '2021-02-17 23:56:57', '', 0, 'http://localhost:8001/members/', 0, 'page', '', 0), @@ -3023,14 +3091,35 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (10927, 4, '2020-10-08 01:54:44', '2020-10-08 01:54:44', '', 'karsten-winegeart-5zzY1WvIRRQ-unsplash', '', 'inherit', 'open', 'closed', '', 'karsten-winegeart-5zzy1wvirrq-unsplash', '', '', '2020-10-08 01:54:44', '2020-10-08 01:54:44', '', 0, 'http://localhost:8001/wp-content/uploads/2020/10/karsten-winegeart-5zzY1WvIRRQ-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), (11599, 4, '2020-10-26 21:17:33', '2020-10-26 21:17:33', '{{unknown}}', '', '', 'publish', 'closed', 'closed', '', '75df6e0b738ab3975d0191bf17c966ed', '', '', '2020-10-26 21:17:33', '2020-10-26 21:17:33', '', 0, 'http://localhost:8001/2020/10/26/75df6e0b738ab3975d0191bf17c966ed/', 0, 'oembed_cache', '', 0), (11641, 4, '2020-10-26 22:55:22', '2020-10-26 22:55:22', '{{unknown}}', '', '', 'publish', 'closed', 'closed', '', '60fde47c2ef1ce51d4a6e6fa61d81652', '', '', '2020-10-26 22:55:22', '2020-10-26 22:55:22', '', 0, 'http://localhost:8001/2020/10/26/60fde47c2ef1ce51d4a6e6fa61d81652/', 0, 'oembed_cache', '', 0), -(11713, 4, '2021-02-12 21:21:13', '2021-02-12 21:21:13', '{\"action_type\":\"NON_NODE_ROOT_FIELDS\",\"title\":\"Update Setting: active_plugins\",\"node_id\":\"update_non_node_root_field\",\"relay_id\":\"update_non_node_root_field\",\"graphql_single_name\":\"update_non_node_root_field\",\"graphql_plural_name\":\"update_non_node_root_field\",\"status\":\"update_non_node_root_field\"}', 'Update Setting: active_plugins', '', 'publish', 'closed', 'closed', '', 'update-setting-wp_user_roles-1613164873', '', '', '2021-04-21 19:24:04', '2021-04-21 19:24:04', '', 0, 'http://localhost:8001/action_monitor/update-setting-wp_user_roles-1613164873/', 0, 'action_monitor', '', 0), -(11748, 4, '2021-04-19 17:09:25', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2021-04-19 17:09:25', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?p=11748', 0, 'post', '', 0), -(11750, 4, '2021-04-20 18:14:12', '2021-04-20 18:14:12', '{\"action_type\":\"DELETE\",\"title\":\"wp-database-tools-main.zip\",\"status\":\"trash\",\"node_id\":11749,\"relay_id\":\"cG9zdDoxMTc0OQ==\",\"graphql_single_name\":\"mediaItem\",\"graphql_plural_name\":\"mediaItems\",\"skip_webhook\":true}', 'wp-database-tools-main.zip', '', 'publish', 'closed', 'closed', '', 'wp-database-tools-main-zip-1618942452', '', '', '2021-04-20 18:14:13', '2021-04-20 18:14:13', '', 0, 'http://localhost:8001/action_monitor/wp-database-tools-main-zip-1618942452/', 0, 'action_monitor', '', 0), -(11751, 0, '2021-04-20 18:17:27', '2021-04-20 18:17:27', '{\"title\":\"Post Type added\",\"node_id\":\"none\",\"relay_id\":\"none\",\"graphql_single_name\":\"none\",\"graphql_plural_name\":\"none\",\"status\":\"none\",\"action_type\":\"DIFF_SCHEMAS\"}', 'Post Type added', '', 'publish', 'closed', 'closed', '', 'post-type-removed-1618942647', '', '', '2021-04-21 19:23:02', '2021-04-21 19:23:02', '', 0, 'http://localhost:8001/action_monitor/post-type-removed-1618942647/', 0, 'action_monitor', '', 0), -(11752, 4, '2021-04-21 19:26:30', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2021-04-21 19:26:30', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?p=11752', 0, 'post', '', 0), -(11753, 4, '2021-04-21 19:56:01', '2021-04-21 19:56:01', '{\"action_type\":\"UPDATE\",\"title\":\"admin\",\"node_id\":4,\"relay_id\":\"dXNlcjo0\",\"graphql_single_name\":\"user\",\"graphql_plural_name\":\"users\",\"status\":\"publish\"}', 'admin', '', 'publish', 'closed', 'closed', '', 'admin-1619034961', '', '', '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 0, 'http://localhost:8001/action_monitor/admin-1619034961/', 0, 'action_monitor', '', 0), -(11754, 4, '2021-04-21 19:56:01', '2021-04-21 19:56:01', '{\"action_type\":\"UPDATE\",\"title\":\"Activity\",\"node_id\":16,\"relay_id\":\"cG9zdDoxNg==\",\"graphql_single_name\":\"page\",\"graphql_plural_name\":\"pages\",\"status\":\"publish\"}', 'Activity', '', 'publish', 'closed', 'closed', '', 'activity-1619034961', '', '', '2021-04-21 19:56:03', '2021-04-21 19:56:03', '', 0, 'http://localhost:8001/action_monitor/activity-1619034961/', 0, 'action_monitor', '', 0), -(11755, 4, '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 'Activity', '', 'inherit', 'closed', 'closed', '', '16-revision-v1', '', '', '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 16, 'http://localhost:8001/2021/04/21/16-revision-v1/', 0, 'revision', '', 0); +(11755, 4, '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 'Activity', '', 'inherit', 'closed', 'closed', '', '16-revision-v1', '', '', '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 16, 'http://localhost:8001/2021/04/21/16-revision-v1/', 0, 'revision', '', 0), +(11756, 4, '2021-04-30 22:29:09', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2021-04-30 22:29:09', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?p=11756', 0, 'post', '', 0), +(11757, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:34:12', '2021-04-30 22:34:12', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11758, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"Hello world! DELTA SYNC\",\"node_id\":1,\"relay_id\":\"cG9zdDox\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Hello world! DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'hello-world-1619822052', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/hello-world-1619822052/', 0, 'action_monitor', '', 0), +(11759, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:34:12', '2021-04-30 22:34:12', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11760, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"admin\",\"node_id\":4,\"relay_id\":\"dXNlcjo0\",\"graphql_single_name\":\"user\",\"graphql_plural_name\":\"users\",\"status\":\"publish\"}', 'admin', '', 'publish', 'closed', 'closed', '', 'admin-1619822052', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/admin-1619822052/', 0, 'action_monitor', '', 0), +(11761, 4, '2021-04-30 22:36:45', '2021-04-30 22:36:45', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:36:45', '2021-04-30 22:36:45', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11762, 4, '2021-04-30 22:36:45', '2021-04-30 22:36:45', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:36:45', '2021-04-30 22:36:45', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11763, 4, '2021-04-30 22:51:22', '2021-04-30 22:51:22', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:51:22', '2021-04-30 22:51:22', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11764, 4, '2021-04-30 22:51:22', '2021-04-30 22:51:22', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:51:22', '2021-04-30 22:51:22', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11765, 4, '2021-04-30 23:05:08', '2021-04-30 23:05:08', '{\"action_type\":\"UPDATE\",\"title\":\"Sample Page DELTA SYNC\",\"node_id\":2,\"relay_id\":\"cG9zdDoy\",\"graphql_single_name\":\"page\",\"graphql_plural_name\":\"pages\",\"status\":\"publish\"}', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'sample-page-1619823908', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/sample-page-1619823908/', 0, 'action_monitor', '', 0), +(11766, 4, '2021-04-30 23:15:42', '2021-04-30 23:15:42', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:15:42', '2021-04-30 23:15:42', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11767, 4, '2021-04-30 23:15:42', '2021-04-30 23:15:42', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:15:42', '2021-04-30 23:15:42', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11768, 4, '2021-04-30 23:19:45', '2021-04-30 23:19:45', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:19:45', '2021-04-30 23:19:45', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11769, 4, '2021-04-30 23:19:45', '2021-04-30 23:19:45', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:19:45', '2021-04-30 23:19:45', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11770, 4, '2021-04-30 23:20:08', '2021-04-30 23:20:08', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:20:08', '2021-04-30 23:20:08', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11771, 4, '2021-04-30 23:20:08', '2021-04-30 23:20:08', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:20:08', '2021-04-30 23:20:08', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11772, 4, '2021-04-30 23:24:37', '2021-04-30 23:24:37', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:24:37', '2021-04-30 23:24:37', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11773, 4, '2021-04-30 23:24:37', '2021-04-30 23:24:37', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:24:37', '2021-04-30 23:24:37', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11774, 4, '2021-04-30 23:24:59', '2021-04-30 23:24:59', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:24:59', '2021-04-30 23:24:59', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11775, 4, '2021-04-30 23:24:59', '2021-04-30 23:24:59', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:24:59', '2021-04-30 23:24:59', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11776, 4, '2021-04-30 23:28:26', '2021-04-30 23:28:26', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:28:26', '2021-04-30 23:28:26', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11777, 4, '2021-04-30 23:28:26', '2021-04-30 23:28:26', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:28:26', '2021-04-30 23:28:26', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11778, 4, '2021-04-30 23:28:48', '2021-04-30 23:28:48', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:28:48', '2021-04-30 23:28:48', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11779, 4, '2021-04-30 23:28:48', '2021-04-30 23:28:48', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:28:48', '2021-04-30 23:28:48', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11780, 4, '2021-04-30 23:30:32', '2021-04-30 23:30:32', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:30:32', '2021-04-30 23:30:32', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11781, 4, '2021-04-30 23:30:32', '2021-04-30 23:30:32', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:30:32', '2021-04-30 23:30:32', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11782, 4, '2021-04-30 23:30:54', '2021-04-30 23:30:54', '\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), +(11783, 4, '2021-04-30 23:30:54', '2021-04-30 23:30:54', '\n

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

\n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0); INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES (1, 19, 0), @@ -3260,31 +3349,21 @@ INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_orde (10715, 21, 0), (10927, 21, 0), (11712, 21, 0), -(11713, 77, 0), -(11713, 78, 0), -(11713, 79, 0), -(11713, 80, 0), -(11713, 81, 0), -(11750, 81, 0), -(11750, 87, 0), -(11750, 90, 0), -(11750, 156, 0), -(11750, 157, 0), -(11751, 81, 0), -(11751, 82, 0), -(11751, 83, 0), -(11751, 84, 0), -(11751, 85, 0), -(11753, 81, 0), -(11753, 92, 0), -(11753, 94, 0), -(11753, 158, 0), -(11753, 159, 0), -(11754, 81, 0), -(11754, 94, 0), -(11754, 112, 0), -(11754, 113, 0), -(11754, 114, 0); +(11758, 81, 0), +(11758, 91, 0), +(11758, 94, 0), +(11758, 96, 0), +(11758, 153, 0), +(11760, 81, 0), +(11760, 92, 0), +(11760, 94, 0), +(11760, 158, 0), +(11760, 159, 0), +(11765, 81, 0), +(11765, 94, 0), +(11765, 113, 0), +(11765, 139, 0), +(11765, 140, 0); INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (1, 1, 'category', '', 0, 0), @@ -3366,7 +3445,7 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (78, 78, 'gatsby_action_ref_node_type', '', 0, 1), (79, 79, 'gatsby_action_ref_node_id', '', 0, 1), (80, 80, 'gatsby_action_type', '', 0, 1), -(81, 81, 'gatsby_action_stream_type', '', 0, 5), +(81, 81, 'gatsby_action_stream_type', '', 0, 3), (82, 82, 'gatsby_action_ref_node_dbid', '', 0, 1), (83, 83, 'gatsby_action_ref_node_type', '', 0, 1), (84, 84, 'gatsby_action_ref_node_id', '', 0, 1), @@ -3376,12 +3455,12 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (88, 88, 'gatsby_action_ref_node_id', '', 0, 1), (89, 89, 'gatsby_action_type', '', 0, 0), (90, 90, 'gatsby_action_type', '', 0, 1), -(91, 91, 'gatsby_action_ref_node_dbid', '', 0, 2), +(91, 91, 'gatsby_action_ref_node_dbid', '', 0, 1), (92, 92, 'gatsby_action_ref_node_type', '', 0, 1), (93, 93, 'gatsby_action_ref_node_id', '', 0, 1), -(94, 94, 'gatsby_action_type', '', 0, 2), +(94, 94, 'gatsby_action_type', '', 0, 3), (95, 95, 'gatsby_action_ref_node_dbid', '', 0, 1), -(96, 96, 'gatsby_action_ref_node_type', '', 0, 10), +(96, 96, 'gatsby_action_ref_node_type', '', 0, 1), (97, 97, 'gatsby_action_ref_node_id', '', 0, 1), (98, 98, 'gatsby_action_ref_node_dbid', '', 0, 1), (99, 99, 'gatsby_action_ref_node_id', '', 0, 1), @@ -3631,7 +3710,7 @@ INSERT INTO `wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (135, 4, 'nickname', 'admin'), -(136, 4, 'first_name', ''), +(136, 4, 'first_name', 'admin DELTA SYNC'), (137, 4, 'last_name', ''), (138, 4, 'description', ''), (139, 4, 'rich_editing', 'true'), @@ -3644,9 +3723,9 @@ INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALU (146, 4, 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}'), (147, 4, 'wp_user_level', '10'), (148, 4, 'dismissed_wp_pointers', ''), -(149, 4, 'session_tokens', 'a:2:{s:64:\"e2c0f2c44d487cd000411d974aa1caf3188533b23ccb9e069cd42794de40fe2b\";a:4:{s:10:\"expiration\";i:1619205990;s:2:\"ip\";s:10:\"172.26.0.1\";s:2:\"ua\";s:120:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36\";s:5:\"login\";i:1619033190;}s:64:\"2d2c49ea7dcb59576ba7e551fb5e6f17cfa6607ffaf9e3601daa3f19b9545d43\";a:4:{s:10:\"expiration\";i:1619206643;s:2:\"ip\";s:10:\"172.26.0.1\";s:2:\"ua\";s:120:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36\";s:5:\"login\";i:1619033843;}}'), -(150, 4, 'wp_dashboard_quick_press_last_post_id', '11752'), -(151, 4, 'community-events-location', 'a:1:{s:2:\"ip\";s:10:\"172.26.0.0\";}'); +(149, 4, 'session_tokens', 'a:1:{s:64:\"995bb9115ce8c72d954f89d058ea34ae462bac483854c600b49ff2fb03b84d2b\";a:4:{s:10:\"expiration\";i:1619994548;s:2:\"ip\";s:10:\"172.30.0.1\";s:2:\"ua\";s:120:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36\";s:5:\"login\";i:1619821748;}}'), +(150, 4, 'wp_dashboard_quick_press_last_post_id', '11756'), +(151, 4, 'community-events-location', 'a:1:{s:2:\"ip\";s:10:\"172.30.0.0\";}'); INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES (4, 'admin', '$P$BNuBcDnhTx/NRkAlAJYuE9mniwabEC0', 'admin', 'admin@example.com', '', '2021-04-21 19:22:59', '', 0, 'admin'); diff --git a/integration-tests/gatsby-source-wordpress/package.json b/integration-tests/gatsby-source-wordpress/package.json index eb8db977c84ea..c14889e9d2d25 100644 --- a/integration-tests/gatsby-source-wordpress/package.json +++ b/integration-tests/gatsby-source-wordpress/package.json @@ -4,8 +4,8 @@ "private": true, "description": "A simple Gatsby WP site for running integrations tests", "scripts": { - "run-jest": "jest --runInBand", - "test": "npm run docker-clean-start && npm run run-jest && cross-env WARM_CACHE=true npm run run-jest", + "run-jest": "jest --runInBand && WARM_CACHE=true jest --runInBand", + "test": "npm run docker-clean-start && npm run run-jest", "docker-start": "docker-compose up --build --force-recreate --always-recreate-deps --remove-orphans -d", "docker-clean-start": "docker-compose stop && docker-compose rm -f && docker volume rm gatsby-source-wordpress_db_data gatsby-source-wordpress_wp_data || true && docker-compose pull && docker-compose build --no-cache --force-rm --pull && docker-compose up -d" }, @@ -27,4 +27,4 @@ "rimraf": "^3.0.2", "urling": "^1.0.7" } -} \ No newline at end of file +} diff --git a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js index cba186b44cd0f..ee3f510f84f6d 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js @@ -9,8 +9,11 @@ const { const { testResolvedData } = require("./test-utils/test-resolved-data") const { queries } = require("./test-utils/queries") +const { incrementalIt } = require(`./test-utils/incremental-it`) + jest.setTimeout(100000) +const isWarmCache = process.env.WARM_CACHE const url = `http://localhost:8000/___graphql` describe(`data resolution`, () => { @@ -26,7 +29,7 @@ describe(`data resolution`, () => { expect(data[`allWpTag`].totalCount).toBe(5) expect(data[`allWpUser`].totalCount).toBe(1) - expect(data[`allWpPage`].totalCount).toBe(2) + expect(data[`allWpPage`].totalCount).toBe(3) expect(data[`allWpPost`].totalCount).toBe(1) expect(data[`allWpComment`].totalCount).toBe(1) expect(data[`allWpTaxonomy`].totalCount).toBe(3) @@ -75,7 +78,7 @@ describe(`data resolution`, () => { }) expect(gatsbyResult.data.allWpTermNode.nodes.length).toBe(14) - expect(gatsbyResult.data.allWpContentNode.nodes.length).toBe(13) + expect(gatsbyResult.data.allWpContentNode.nodes.length).toBe(14) }) it(`resolves interface fields which are a mix of Gatsby nodes and regular object data with no node`, async () => { @@ -157,7 +160,7 @@ describe(`data resolution`, () => { expect(categoryNames.includes(`h4`)).toBeTruthy() }) - it(`resolves menus`, async () => { + incrementalIt(`resolves menus`, async () => { const result = await fetchGraphql({ url, query: queries.menus, @@ -166,7 +169,7 @@ describe(`data resolution`, () => { expect(result).toMatchSnapshot() }) - it(`resolves pages`, async () => { + incrementalIt(`resolves pages`, async () => { const result = await fetchGraphql({ url, query: queries.pages, @@ -174,10 +177,12 @@ describe(`data resolution`, () => { expect(result).toMatchSnapshot() - // expect(result.data.testPage.title).toEqual(`Sample Page`) + expect(result.data.testPage.title).toEqual( + isWarmCache ? `Sample Page DELTA SYNC` : `Sample Page` + ) }) - it(`resolves posts`, async () => { + incrementalIt(`resolves posts`, async () => { const result = await fetchGraphql({ url, query: queries.posts, @@ -185,10 +190,12 @@ describe(`data resolution`, () => { expect(result).toMatchSnapshot() - expect(result.data.testPost.title).toEqual(`Hello world!`) + expect(result.data.testPost.title).toEqual( + isWarmCache ? `Hello world! DELTA SYNC` : `Hello world!` + ) }) - it(`resolves users`, async () => { + incrementalIt(`resolves users`, async () => { const result = await fetchGraphql({ url, query: queries.users, diff --git a/integration-tests/gatsby-source-wordpress/test-fns/filtered-type-defs.js b/integration-tests/gatsby-source-wordpress/test-fns/filtered-type-defs.js index 45d9f844bfad7..ded0b7699e4a2 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/filtered-type-defs.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/filtered-type-defs.js @@ -29,6 +29,7 @@ describe(`filtered type definitions`, () => { `, }) + expect(result.data.wpPage).toBeTruthy() expect(result).toMatchSnapshot() }) }) diff --git a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/increment-remote-data.js b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/increment-remote-data.js index 2f50f5b06d787..e8b51e684c327 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/increment-remote-data.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/increment-remote-data.js @@ -25,8 +25,8 @@ exports.resetSchema = async () => { updateUser( input: { clientMutationId: "user-test" - firstName: "Tyler" - id: "dXNlcjox" + firstName: "admin" + id: "dXNlcjo0" } ) { clientMutationId @@ -61,8 +61,8 @@ exports.mutateSchema = async () => { updateUser( input: { clientMutationId: "user-test" - firstName: "Tyler DELTA SYNC" - id: "dXNlcjox" + firstName: "admin DELTA SYNC" + id: "dXNlcjo0" } ) { clientMutationId diff --git a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/incremental-it.js b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/incremental-it.js index ab3a6a0b7a657..d64c1ad42e1d8 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/incremental-it.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/incremental-it.js @@ -1,13 +1,8 @@ -const getIsIncrement = () => - !!(process.env.WPGQL_INCREMENT && process.env.WPGQL_INCREMENT !== `false`) +const isWarmCache = process.env.WARM_CACHE exports.incrementalIt = (name, test) => { - const isIncrement = getIsIncrement() - // full fetch - ;(!isIncrement ? it : it.skip)(name, test) + ;(!isWarmCache ? it : it.skip)(name, test) // incremental data fetch - ;(isIncrement ? it : it.skip)(`${name} INCREMENTED`, test) + ;(isWarmCache ? it : it.skip)(`${name} INCREMENTED`, test) } - -exports.getIsIncrement = getIsIncrement diff --git a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js index 4ffb8088adb99..002a2cf4e774c 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js @@ -593,9 +593,9 @@ exports.queries = { `, pages: /* GraphQL */ ` { - # testPage: wpPage(id: { eq: "cG9zdDoy" }) { - # title - # } + testPage: wpPage(id: { eq: "cG9zdDoy" }) { + title + } allWpPage(sort: { fields: date }) { nodes { uri From af12b660f1c4c6f8da2abc537bd07973b8bfd21a Mon Sep 17 00:00:00 2001 From: Sidhartha Chatterjee Date: Tue, 4 May 2021 12:55:47 +0530 Subject: [PATCH 10/45] fix(gatsby-telemetry): Read installedGatsbyVersion correctly for workspaces (#31196) * Read Gatsby version correctly * Simplify logic Co-authored-by: Jarmo Isotalo --- packages/gatsby-telemetry/src/telemetry.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/gatsby-telemetry/src/telemetry.ts b/packages/gatsby-telemetry/src/telemetry.ts index df74c6fe2ca4e..aa6996575da74 100644 --- a/packages/gatsby-telemetry/src/telemetry.ts +++ b/packages/gatsby-telemetry/src/telemetry.ts @@ -215,14 +215,10 @@ export class AnalyticsTracker { } getGatsbyVersion(): SemVer { - const packageInfo = require(join( - process.cwd(), - `node_modules`, - `gatsby`, - `package.json` - )) try { - return packageInfo.version + const packageJson = require.resolve(`gatsby/package.json`) + const { version } = JSON.parse(fs.readFileSync(packageJson, `utf-8`)) + return version } catch (e) { // ignore } From 3bcb6e26d5a44ee0687894eb4b02dcfcf013770a Mon Sep 17 00:00:00 2001 From: Felix Albroscheit Date: Tue, 4 May 2021 09:40:37 +0200 Subject: [PATCH 11/45] docs: Updates file name suggestion in babel.md (#31198) --- docs/docs/how-to/custom-configuration/babel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/how-to/custom-configuration/babel.md b/docs/docs/how-to/custom-configuration/babel.md index 93bfd212f0318..6672f2f27deb4 100644 --- a/docs/docs/how-to/custom-configuration/babel.md +++ b/docs/docs/how-to/custom-configuration/babel.md @@ -14,7 +14,7 @@ If you only target newer browsers, see the [Browser Support](/docs/how-to/custom ## How to use a custom `.babelrc` file -Gatsby ships with a default `.babelrc` setup that should work for most sites. If you'd like to add custom Babel presets or plugins, you can create your own `.babelrc` at the root of your site, import [`babel-preset-gatsby`](https://github.com/gatsbyjs/gatsby/tree/master/packages/babel-preset-gatsby), and add additional plugins, presets, and pass options to `babel-preset-gatsby`, e.g. `targets`. +Gatsby ships with a default `.babelrc` setup that should work for most sites. If you'd like to add custom Babel presets or plugins, you can create your own `.babelrc` at the root of your site, import [`babel-preset-gatsby`](https://github.com/gatsbyjs/gatsby/tree/master/packages/babel-preset-gatsby), and add additional plugins, presets, and pass options to `babel-preset-gatsby`, e.g. `targets`. In case of using a [monorepo](https://babeljs.io/docs/en/configuration), you may want to call this file `babel.config.json`. ```shell npm install --save-dev babel-preset-gatsby From b2ae4da089d2783dc83738224f362e6f8fb44d0c Mon Sep 17 00:00:00 2001 From: Lennart Date: Tue, 4 May 2021 11:00:43 +0200 Subject: [PATCH 12/45] fix(gatsby-plugin-mdx): Img w/ lessBabel option in src/pages not working (#31210) --- packages/gatsby-plugin-mdx/loaders/mdx-loader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/gatsby-plugin-mdx/loaders/mdx-loader.js b/packages/gatsby-plugin-mdx/loaders/mdx-loader.js index 54454c0ccc3eb..9d9b9fb85b201 100644 --- a/packages/gatsby-plugin-mdx/loaders/mdx-loader.js +++ b/packages/gatsby-plugin-mdx/loaders/mdx-loader.js @@ -135,6 +135,7 @@ module.exports = async function mdxLoader(content) { content, options, getNodesByType, + getNode: rawGetNode, })) } else { mdxNode = await createMdxNodeExtraBabel({ From bd4004820acea18b332b54be2ca43d569ef48eda Mon Sep 17 00:00:00 2001 From: Michal Piechowiak Date: Tue, 4 May 2021 16:24:46 +0200 Subject: [PATCH 13/45] test: unskip eslint rules for fast refresh tests (#31234) --- .../limited-exports-page-templates.js | 15 +++++------ .../no-anonymous-exports-page-templates.js | 25 ++++++++----------- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js b/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js index 2cc1ad530ee1d..fa86741f6bd91 100644 --- a/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js +++ b/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js @@ -1,17 +1,14 @@ describe(`limited-exports-page-templates`, () => { - // Skipped because HMR not show warnings because of https://github.com/webpack-contrib/webpack-hot-middleware/pull/397 - it.skip(`should log warning to console for invalid export`, () => { - cy.visit(`/eslint-rules/limited-exports-page-templates`, { - onBeforeLoad(win) { - cy.stub(win.console, "log").as(`consoleLog`) - }, - }).waitForRouteChange() + it(`should log warning to console for invalid export`, () => { + cy.visit( + `/eslint-rules/limited-exports-page-templates` + ).waitForRouteChange() - cy.get(`@consoleLog`).should( + cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, /15:1 warning In page templates only a default export of a valid React component and the named export of a page query is allowed./i ) - cy.get(`@consoleLog`).should( + cy.get(`@hmrConsoleLog`).should( `not.be.calledWithMatch`, /17:1 warning In page templates only a default export of a valid React component and the named export of a page query is allowed./i ) diff --git a/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js b/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js index 2b09f3b455d30..2772841ff9a48 100644 --- a/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js +++ b/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js @@ -1,25 +1,20 @@ describe(`no-anonymous-exports-page-templates`, () => { - // Skipped because HMR not show warnings because of https://github.com/webpack-contrib/webpack-hot-middleware/pull/397 - it.skip(`should log warning to console for arrow functions`, () => { - cy.visit(`/eslint-rules/no-anonymous-exports-page-templates`, { - onBeforeLoad(win) { - cy.stub(win.console, "log").as(`consoleLog`) - }, - }).waitForRouteChange() + it(`should log warning to console for arrow functions`, () => { + cy.visit( + `/eslint-rules/no-anonymous-exports-page-templates` + ).waitForRouteChange() - cy.get(`@consoleLog`).should( + cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, /Anonymous arrow functions cause Fast Refresh to not preserve local component state./i ) }) - it.skip(`should log warning to console for function declarations`, () => { - cy.visit(`/eslint-rules/no-anonymous-exports-page-templates-function`, { - onBeforeLoad(win) { - cy.stub(win.console, "log").as(`consoleLog`) - }, - }).waitForRouteChange() + it(`should log warning to console for function declarations`, () => { + cy.visit( + `/eslint-rules/no-anonymous-exports-page-templates-function` + ).waitForRouteChange() - cy.get(`@consoleLog`).should( + cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, /Anonymous function declarations cause Fast Refresh to not preserve local component state./i ) From d1005fae2fe273f26cc650137426369c4c84b067 Mon Sep 17 00:00:00 2001 From: Kyle Mathews Date: Tue, 4 May 2021 09:13:34 -0700 Subject: [PATCH 14/45] perf(gatsby): Create page object & SitePage node in same action creator (#31104) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(gatsby): don't duplicate page data into SitePage nodes * Fix lint * treat pages as actual sitePage nodes * change flag name to reflect change in strategy * fix type * Add missing field + test with LOCKED_IN * Fix bugs... maybe * fix types * fixes hopefully * Move this from reducer to action so node also gets it * Avoid calling onCreatePage if can * set pluginCreator___NODE and pluginCreatorId always, not just when flag is enabled * Early return from node API calls if there's no implementing plugins * Return something * Also always run api when deferNodeMutation is set — apparently it triggers a side effect somewhere... * Only call onCreateNode for SitePage nodes * Only start plugin runner after plugins are created so we have plugins available to reason around * Recreate pages from SitePage cache vs. persisting/restoring in seperately Saves 100mb of heap for 100k page create-pages benchmark * Maybe fix * Ignore * Revert attempt to restore page state from SitePage nodes * Remove flag * Remove unnecessary implementation of onCreatePage Drops 100k create-pages benchmark from ~8s to 4.5s as it means we don't need to invoke `onCreatePage` by default. * Remove unnecessary changes * Fix tests * fix prod-404 and webpack suspending timing (#31236) * fix 404 * drop checking defered node mutations when bailing * suspend after first compilation * actually check for plugins implementing onCreateNode Co-authored-by: Michal Piechowiak --- benchmarks/create-pages/package.json | 6 +- integration-tests/artifacts/.gitignore | 4 +- .../__snapshots__/load-plugins.ts.snap | 15 +- .../internal-data-bridge/gatsby-node.js | 37 +---- .../internal-plugins/prod-404/gatsby-node.js | 25 +++- packages/gatsby/src/redux/__tests__/index.js | 11 +- packages/gatsby/src/redux/__tests__/pages.ts | 137 ++++++++++-------- packages/gatsby/src/redux/actions/public.js | 75 +++++++++- packages/gatsby/src/redux/plugin-runner.ts | 42 ++++-- packages/gatsby/src/redux/reducers/pages.ts | 4 - packages/gatsby/src/redux/types.ts | 1 + packages/gatsby/src/services/initialize.ts | 8 +- .../src/services/start-webpack-server.ts | 5 +- packages/gatsby/src/utils/api-runner-node.js | 44 +++--- 14 files changed, 245 insertions(+), 169 deletions(-) diff --git a/benchmarks/create-pages/package.json b/benchmarks/create-pages/package.json index 64018be2d219f..a44bfd2719fb8 100644 --- a/benchmarks/create-pages/package.json +++ b/benchmarks/create-pages/package.json @@ -9,9 +9,9 @@ "serve": "gatsby serve" }, "dependencies": { - "gatsby": "^2.19.5", - "react": "^16.12.0", - "react-dom": "^16.12.0" + "gatsby": "^3.4.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" }, "devDependencies": { "gatsby-plugin-benchmark-reporting": "*" diff --git a/integration-tests/artifacts/.gitignore b/integration-tests/artifacts/.gitignore index 5bd35fc166392..f9fd0a59de1f5 100644 --- a/integration-tests/artifacts/.gitignore +++ b/integration-tests/artifacts/.gitignore @@ -1 +1,3 @@ -__tests__/__debug__ \ No newline at end of file +__tests__/__debug__ +node_modules +yarn.lock diff --git a/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap b/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap index c420703cc4678..17fdd484f9776 100644 --- a/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap +++ b/packages/gatsby/src/bootstrap/load-plugins/__tests__/__snapshots__/load-plugins.ts.snap @@ -37,7 +37,6 @@ Array [ "nodeAPIs": Array [ "sourceNodes", "createResolvers", - "onCreatePage", ], "pluginOptions": Object { "plugins": Array [], @@ -50,9 +49,7 @@ Array [ "browserAPIs": Array [], "id": "", "name": "prod-404", - "nodeAPIs": Array [ - "onCreatePage", - ], + "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], }, @@ -287,7 +284,6 @@ Array [ "nodeAPIs": Array [ "sourceNodes", "createResolvers", - "onCreatePage", ], "pluginOptions": Object { "plugins": Array [], @@ -300,9 +296,7 @@ Array [ "browserAPIs": Array [], "id": "", "name": "prod-404", - "nodeAPIs": Array [ - "onCreatePage", - ], + "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], }, @@ -567,7 +561,6 @@ Array [ "nodeAPIs": Array [ "sourceNodes", "createResolvers", - "onCreatePage", ], "pluginOptions": Object { "plugins": Array [], @@ -580,9 +573,7 @@ Array [ "browserAPIs": Array [], "id": "", "name": "prod-404", - "nodeAPIs": Array [ - "onCreatePage", - ], + "nodeAPIs": Array [], "pluginOptions": Object { "plugins": Array [], }, diff --git a/packages/gatsby/src/internal-plugins/internal-data-bridge/gatsby-node.js b/packages/gatsby/src/internal-plugins/internal-data-bridge/gatsby-node.js index 80fea110454af..170e9ab976167 100644 --- a/packages/gatsby/src/internal-plugins/internal-data-bridge/gatsby-node.js +++ b/packages/gatsby/src/internal-plugins/internal-data-bridge/gatsby-node.js @@ -50,20 +50,6 @@ exports.sourceNodes = ({ const { createNode, deleteNode } = actions const { program, flattenedPlugins, config } = store.getState() - // Add our default development page since we know it's going to - // exist and we need a node to exist so its query works :-) - const page = { path: `/dev-404-page/` } - createNode({ - ...page, - id: createPageId(page.path), - parent: null, - children: [], - internal: { - type: `SitePage`, - contentDigest: createContentDigest(page), - }, - }) - flattenedPlugins.forEach(plugin => { plugin.pluginFilepath = plugin.resolve createNode({ @@ -226,29 +212,8 @@ exports.createResolvers = ({ createResolvers }) => { }, }, } - createResolvers(resolvers) -} -exports.onCreatePage = ({ createContentDigest, page, actions }) => { - const { createNode } = actions - // eslint-disable-next-line - const { updatedAt, ...pageWithoutUpdated } = page - - // Add page. - createNode({ - ...pageWithoutUpdated, - id: createPageId(page.path), - parent: null, - children: [], - internal: { - type: `SitePage`, - contentDigest: createContentDigest(pageWithoutUpdated), - description: - page.pluginCreatorId === `Plugin default-site-plugin` - ? `Your site's "gatsby-node.js"` - : page.pluginCreatorId, - }, - }) + createResolvers(resolvers) } // Listen for DELETE_PAGE and delete page nodes. diff --git a/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js b/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js index e4c77afc30590..a09d806431359 100644 --- a/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js +++ b/packages/gatsby/src/internal-plugins/prod-404/gatsby-node.js @@ -4,18 +4,27 @@ const { actions } = require(`../../redux/actions`) const PROD_404_PAGE_PATH = `/404.html` let page404 = null -exports.onCreatePage = ({ page, store, actions }) => { +emitter.on(`CREATE_PAGE`, action => { // Copy /404/ to /404.html as many static site hosts expect // site 404 pages to be named this. // https://www.gatsbyjs.org/docs/how-to/adding-common-features/add-404-page/ - if (!page404 && /^\/?404\/?$/.test(page.path)) { - actions.createPage({ - ...page, - path: PROD_404_PAGE_PATH, - }) - page404 = page + if (!page404 && /^\/?404\/?$/.test(action.payload.path)) { + page404 = { + path: action.payload.path, + component: action.payload.component, + context: action.payload.context, + } + store.dispatch( + actions.createPage( + { + ...page404, + path: PROD_404_PAGE_PATH, + }, + action.plugin + ) + ) } -} +}) emitter.on(`DELETE_PAGE`, action => { if (page404 && action.payload.path === page404.path) { diff --git a/packages/gatsby/src/redux/__tests__/index.js b/packages/gatsby/src/redux/__tests__/index.js index 603ad139cd26e..21c6c4ece8aa2 100644 --- a/packages/gatsby/src/redux/__tests__/index.js +++ b/packages/gatsby/src/redux/__tests__/index.js @@ -81,7 +81,7 @@ jest.mock(`glob`, () => { function getFakeNodes() { // Set nodes to something or the cache will fail because it asserts this // Actual nodes content should match TS type; these are verified - const map /* : Map*/ = new Map() + const map /* : Map */ = new Map() map.set(`pageA`, { id: `pageA`, internal: { @@ -108,10 +108,11 @@ describe(`redux db`, () => { Date.now = jest.fn(() => ++DateNowCallCount) store.dispatch( - (Array.isArray(pages) ? pages : [pages]).map(page => - createPage(page, { - name: `default-site-plugin`, - }) + (Array.isArray(pages) ? pages : [pages]).map( + page => + createPage(page, { + name: `default-site-plugin`, + }).filter(a => a.type === `CREATE_PAGE`)[0] ) ) diff --git a/packages/gatsby/src/redux/__tests__/pages.ts b/packages/gatsby/src/redux/__tests__/pages.ts index e78351106a088..dd42d4c73cc76 100644 --- a/packages/gatsby/src/redux/__tests__/pages.ts +++ b/packages/gatsby/src/redux/__tests__/pages.ts @@ -24,13 +24,15 @@ glob.sync = jest.fn() describe(`Add pages`, () => { it(`allows you to add pages`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - }, - { id: `test`, name: `test` } - ) + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] const state = reducer(undefined, action) expect(action).toMatchSnapshot() expect(state).toMatchSnapshot() @@ -83,62 +85,71 @@ describe(`Add pages`, () => { }) it(`adds an initial forward slash if the user doesn't`, () => { - const action = actions.createPage( + const actionsArray = actions.createPage( { path: `hi/`, component: `/whatever/index.js`, }, { id: `test`, name: `test` } ) + const action = actionsArray.filter(a => a.type === `CREATE_PAGE`)[0] const state = reducer(undefined, action) expect(Array.from(state.values())[0].path).toEqual(`/hi/`) }) it(`allows you to add pages with context`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - context: { - id: 123, + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + context: { + id: 123, + }, }, - }, - { id: `test`, name: `test` } - ) + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] const state = reducer(undefined, action) expect(action).toMatchSnapshot() expect(state).toMatchSnapshot() }) it(`allows you to add pages with matchPath`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - matchPath: `/hi-from-somewhere-else/`, - }, - { id: `test`, name: `test` } - ) + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + matchPath: `/hi-from-somewhere-else/`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] const state = reducer(undefined, action) expect(action).toMatchSnapshot() expect(state).toMatchSnapshot() }) it(`allows you to add multiple pages`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - }, - { id: `test`, name: `test` } - ) - const action2 = actions.createPage( - { - path: `/hi/pizza/`, - component: `/whatever/index.js`, - }, - { id: `test`, name: `test` } - ) + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] + const action2 = actions + .createPage( + { + path: `/hi/pizza/`, + component: `/whatever/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] let state = reducer(undefined, action) state = reducer(state, action2) expect(state).toMatchSnapshot() @@ -146,22 +157,26 @@ describe(`Add pages`, () => { }) it(`allows you to update existing pages (based on path)`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - }, - { id: `test`, name: `test` } - ) + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] // Change the component - const action2 = actions.createPage( - { - path: `/hi/`, - component: `/whatever2/index.js`, - }, - { id: `test`, name: `test` } - ) + const action2 = actions + .createPage( + { + path: `/hi/`, + component: `/whatever2/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] let state = reducer(undefined, action) state = reducer(state, action2) @@ -170,13 +185,15 @@ describe(`Add pages`, () => { }) it(`allows you to delete paths`, () => { - const action = actions.createPage( - { - path: `/hi/`, - component: `/whatever/index.js`, - }, - { id: `test`, name: `test` } - ) + const action = actions + .createPage( + { + path: `/hi/`, + component: `/whatever/index.js`, + }, + { id: `test`, name: `test` } + ) + .filter(a => a.type === `CREATE_PAGE`)[0] const action2 = actions.deletePage({ path: `/hi/` }) let state = reducer(undefined, action) diff --git a/packages/gatsby/src/redux/actions/public.js b/packages/gatsby/src/redux/actions/public.js index f30090cf628f1..07b311c953d29 100644 --- a/packages/gatsby/src/redux/actions/public.js +++ b/packages/gatsby/src/redux/actions/public.js @@ -7,7 +7,7 @@ const { platform } = require(`os`) const path = require(`path`) const { trueCasePathSync } = require(`true-case-path`) const url = require(`url`) -const { slash } = require(`gatsby-core-utils`) +const { slash, createContentDigest } = require(`gatsby-core-utils`) const { hasNodeChanged, getNode } = require(`../../redux/nodes`) const sanitizeNode = require(`../../db/sanitize-node`) const { store } = require(`..`) @@ -399,6 +399,10 @@ ${reservedFields.map(f => ` * "${f}"`).join(`\n`)} // Ensure the page has a context object context: page.context || {}, updatedAt: Date.now(), + + // Link page to its plugin. + pluginCreator___NODE: plugin.id ?? ``, + pluginCreatorId: plugin.id ?? ``, } // If the path doesn't have an initial forward slash, add it. @@ -424,13 +428,70 @@ ${reservedFields.map(f => ` * "${f}"`).join(`\n`)} ) } - return { - ...actionOptions, - type: `CREATE_PAGE`, - contextModified, - plugin, - payload: internalPage, + // just so it's easier to c&p from createPage action creator for now - ideally it's DRYed + const { updatedAt, ...node } = internalPage + node.children = [] + node.internal = { + type: `SitePage`, + contentDigest: createContentDigest(node), } + node.id = `SitePage ${internalPage.path}` + const oldNode = getNode(node.id) + + let deleteActions + let updateNodeAction + if (oldNode && !hasNodeChanged(node.id, node.internal.contentDigest)) { + updateNodeAction = { + ...actionOptions, + plugin, + type: `TOUCH_NODE`, + payload: node.id, + } + } else { + // Remove any previously created descendant nodes as they're all due + // to be recreated. + if (oldNode) { + const createDeleteAction = node => { + return { + ...actionOptions, + type: `DELETE_NODE`, + plugin, + payload: node, + } + } + deleteActions = findChildren(oldNode.children) + .map(getNode) + .map(createDeleteAction) + } + + node.internal.counter = getNextNodeCounter() + + updateNodeAction = { + ...actionOptions, + type: `CREATE_NODE`, + plugin, + oldNode, + payload: node, + } + } + + const actions = [ + { + ...actionOptions, + type: `CREATE_PAGE`, + contextModified, + plugin, + payload: internalPage, + }, + ] + + if (deleteActions && deleteActions.length) { + actions.push(...deleteActions) + } + + actions.push(updateNodeAction) + + return actions } const deleteNodeDeprecationWarningDisplayedMessages = new Set() diff --git a/packages/gatsby/src/redux/plugin-runner.ts b/packages/gatsby/src/redux/plugin-runner.ts index c650ac21c43cb..f6068ff145ace 100644 --- a/packages/gatsby/src/redux/plugin-runner.ts +++ b/packages/gatsby/src/redux/plugin-runner.ts @@ -1,7 +1,8 @@ import { Span } from "opentracing" -import { emitter } from "./index" +import { emitter, store } from "./index" import apiRunnerNode from "../utils/api-runner-node" import { ActivityTracker } from "../../" +import { ICreateNodeAction } from "./types" type Plugin = any // TODO @@ -41,12 +42,35 @@ interface ICreatePageAction { } export const startPluginRunner = (): void => { - emitter.on(`CREATE_PAGE`, (action: ICreatePageAction) => { - const page = action.payload - apiRunnerNode( - `onCreatePage`, - { page, traceId: action.traceId, parentSpan: action.parentSpan }, - { pluginSource: action.plugin.name, activity: action.activity } - ) - }) + const plugins = store.getState().flattenedPlugins + const pluginsImplementingOnCreatePage = plugins.filter(plugin => + plugin.nodeAPIs.includes(`onCreatePage`) + ) + const pluginsImplementingOnCreateNode = plugins.filter(plugin => + plugin.nodeAPIs.includes(`onCreateNode`) + ) + if (pluginsImplementingOnCreatePage.length > 0) { + emitter.on(`CREATE_PAGE`, (action: ICreatePageAction) => { + const page = action.payload + apiRunnerNode( + `onCreatePage`, + { page, traceId: action.traceId, parentSpan: action.parentSpan }, + { pluginSource: action.plugin.name, activity: action.activity } + ) + }) + } + + // We make page nodes outside of the normal action for speed so we manually + // call onCreateNode here for SitePage nodes. + if (pluginsImplementingOnCreateNode.length > 0) { + emitter.on(`CREATE_NODE`, (action: ICreateNodeAction) => { + const node = action.payload + if (node.internal.type === `SitePage`) { + apiRunnerNode(`onCreateNode`, { + node, + traceTags: { nodeId: node.id, nodeType: node.internal.type }, + }) + } + }) + } } diff --git a/packages/gatsby/src/redux/reducers/pages.ts b/packages/gatsby/src/redux/reducers/pages.ts index 65a2c79e562b6..9d8688e68ddd7 100644 --- a/packages/gatsby/src/redux/reducers/pages.ts +++ b/packages/gatsby/src/redux/reducers/pages.ts @@ -29,10 +29,6 @@ export const pagesReducer = ( ) } - // Link page to its plugin. - action.payload.pluginCreator___NODE = action.plugin.id ?? `` - action.payload.pluginCreatorId = action.plugin.id ?? `` - // Add page to the state with the path as key state.set(action.payload.path, action.payload) diff --git a/packages/gatsby/src/redux/types.ts b/packages/gatsby/src/redux/types.ts index 924ce703a55d4..c33d6ccac41fa 100644 --- a/packages/gatsby/src/redux/types.ts +++ b/packages/gatsby/src/redux/types.ts @@ -194,6 +194,7 @@ export type GatsbyNodeAPI = | "onPostBoostrap" | "onCreateWebpackConfig" | "onCreatePage" + | "onCreateNode" | "sourceNodes" | "createPagesStatefully" | "createPages" diff --git a/packages/gatsby/src/services/initialize.ts b/packages/gatsby/src/services/initialize.ts index 11cea8175dd94..f237fcd0f4a65 100644 --- a/packages/gatsby/src/services/initialize.ts +++ b/packages/gatsby/src/services/initialize.ts @@ -104,10 +104,6 @@ export async function initialize({ args.setStore(store) } - // Start plugin runner which listens to the store - // and invokes Gatsby API based on actions. - startPluginRunner() - const directory = slash(args.directory) const program = { @@ -262,6 +258,10 @@ export async function initialize({ plugins: pluginsStr, }) + // Start plugin runner which listens to the store + // and invokes Gatsby API based on actions. + startPluginRunner() + // onPreInit activity = reporter.activityTimer(`onPreInit`, { parentSpan, diff --git a/packages/gatsby/src/services/start-webpack-server.ts b/packages/gatsby/src/services/start-webpack-server.ts index e52c4fcbcca80..1d7a728dedd90 100644 --- a/packages/gatsby/src/services/start-webpack-server.ts +++ b/packages/gatsby/src/services/start-webpack-server.ts @@ -42,7 +42,6 @@ export async function startWebpackServer({ cancelDevJSNotice, webpackWatching, } = await startServer(program, app, workerPool) - webpackWatching.suspend() compiler.hooks.invalid.tap(`log compiling`, function () { if (!webpackActivity) { @@ -75,6 +74,10 @@ export async function startWebpackServer({ stats, done ) { + if (isFirstCompile) { + webpackWatching.suspend() + } + if (cancelDevJSNotice) { cancelDevJSNotice() } diff --git a/packages/gatsby/src/utils/api-runner-node.js b/packages/gatsby/src/utils/api-runner-node.js index 0d330328f1355..c1bc36bb2d149 100644 --- a/packages/gatsby/src/utils/api-runner-node.js +++ b/packages/gatsby/src/utils/api-runner-node.js @@ -447,8 +447,30 @@ const apisRunningById = new Map() const apisRunningByTraceId = new Map() let waitingForCasacadeToFinish = [] -module.exports = async (api, args = {}, { pluginSource, activity } = {}) => - new Promise(resolve => { +module.exports = (api, args = {}, { pluginSource, activity } = {}) => { + const plugins = store.getState().flattenedPlugins + + // Get the list of plugins that implement this API. + // Also: Break infinite loops. Sometimes a plugin will implement an API and + // call an action which will trigger the same API being called. + // `onCreatePage` is the only example right now. In these cases, we should + // avoid calling the originating plugin again. + let implementingPlugins = plugins.filter( + plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource + ) + + if (api === `sourceNodes` && args.pluginName) { + implementingPlugins = implementingPlugins.filter( + plugin => plugin.name === args.pluginName + ) + } + + // If there's no implementing plugins, return early. + if (implementingPlugins.length === 0) { + return null + } + + return new Promise(resolve => { const { parentSpan, traceId, traceTags, waitForCascadingActions } = args const apiSpanArgs = parentSpan ? { childOf: parentSpan } : {} const apiSpan = tracer.startSpan(`run-api`, apiSpanArgs) @@ -458,23 +480,6 @@ module.exports = async (api, args = {}, { pluginSource, activity } = {}) => apiSpan.setTag(key, value) }) - const plugins = store.getState().flattenedPlugins - - // Get the list of plugins that implement this API. - // Also: Break infinite loops. Sometimes a plugin will implement an API and - // call an action which will trigger the same API being called. - // `onCreatePage` is the only example right now. In these cases, we should - // avoid calling the originating plugin again. - let implementingPlugins = plugins.filter( - plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource - ) - - if (api === `sourceNodes` && args.pluginName) { - implementingPlugins = implementingPlugins.filter( - plugin => plugin.name === args.pluginName - ) - } - const apiRunInstance = { api, args, @@ -680,3 +685,4 @@ module.exports = async (api, args = {}, { pluginSource, activity } = {}) => return }) }) +} From a58266ed595caa3e5cdd5e0b4a0f8a98774665b6 Mon Sep 17 00:00:00 2001 From: Tyler Barnes Date: Tue, 4 May 2021 15:14:48 -0700 Subject: [PATCH 15/45] chore(gatsby-source-wordpress): restore plugin tests (#31250) --- .../gatsby-source-wordpress/.env.test | 7 +- .../__tests__/__snapshots__/index.js.snap | 8821 ++++++++++++++--- .../docker/seed/backup.sql | 692 +- .../wordpress/install-wp-graphql-plugins.sh | 9 + .../docker/wp-cli/start.sh | 4 +- .../gatsby-source-wordpress/gatsby-config.js | 6 +- .../test-fns/data-resolution.js | 102 +- .../test-fns/test-utils/queries.js | 35 +- 8 files changed, 8237 insertions(+), 1439 deletions(-) diff --git a/integration-tests/gatsby-source-wordpress/.env.test b/integration-tests/gatsby-source-wordpress/.env.test index 53bb9f33014f2..d9fe49e205c53 100644 --- a/integration-tests/gatsby-source-wordpress/.env.test +++ b/integration-tests/gatsby-source-wordpress/.env.test @@ -1,9 +1,12 @@ -WPGRAPHQL_VERSION=v1.1.2 -WPGATSBY_VERSION=v0.9.1 +WPGRAPHQL_VERSION=v1.3.7 +WPGATSBY_VERSION=v1.0.10 WPGRAPHQL_ACF_VERSION=v0.3.1 WPGRAPHQL_CPT_UI_VERSION=v1.1 CPT_UI_VERSION=1.8.1 ACF_VERSION=5.8.7 +YOAST_VERSION=16.2 +WPGRAPHQL_YOAST_VERSION=v4.14.0 +WPGRAPHQL_GUTENBERG_VERSION=v0.3.8 WPGRAPHQL_URL="http://localhost:8001/graphql" HTACCESS_USERNAME="admin" diff --git a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap index 3f74013f6a00c..9b04c88202432 100644 --- a/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap +++ b/integration-tests/gatsby-source-wordpress/__tests__/__snapshots__/index.js.snap @@ -66,14 +66,46 @@ Array [ "id": "cG9zdDo3NzUy", "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/08/1003-1181x1772-1.jpg", }, + Object { + "id": "cG9zdDo3NzYw", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg", + }, + Object { + "id": "cG9zdDo5Ng==", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg", + }, + Object { + "id": "cG9zdDoxMDE=", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg", + }, + Object { + "id": "cG9zdDoxMDI=", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg", + }, + Object { + "id": "cG9zdDoxMDM=", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg", + }, Object { "id": "cG9zdDoxMDQ0NQ==", "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/10/sample.doc", }, + Object { + "id": "cG9zdDoxMDQ=", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf", + }, Object { "id": "cG9zdDoxMDQzOQ==", "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/10/sample.pdf", }, + Object { + "id": "cG9zdDoxMDYyMQ==", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/10/mattmullenweg-interview.mp3", + }, + Object { + "id": "cG9zdDoxMDYyNw==", + "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/10/giphy.mp4", + }, Object { "id": "cG9zdDozNjI=", "mediaItemUrl": "http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg", @@ -341,6 +373,21 @@ Object { "nodes": Array [], }, }, + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "Yoast SEO", + "uri": "/beautiful_slug/", + "wpChildren": Object { + "nodes": Array [], + }, + }, ], }, "testPage": Object { @@ -401,6 +448,21 @@ Object { "nodes": Array [], }, }, + Object { + "acfPageFields": Object { + "fieldGroupName": "acfPageFields", + }, + "author": Object { + "node": Object { + "name": "admin", + }, + }, + "title": "Yoast SEO", + "uri": "/beautiful_slug/", + "wpChildren": Object { + "nodes": Array [], + }, + }, ], }, "testPage": Object { @@ -416,6 +478,62 @@ Object { "data": Object { "allWpPost": Object { "nodes": Array [ + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Common Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Formatting Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Layout Element Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Columns", + }, Object { "author": Object { "node": Object { @@ -450,6 +568,62 @@ Object { "data": Object { "allWpPost": Object { "nodes": Array [ + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Common Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Formatting Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Layout Element Blocks", + }, + Object { + "author": Object { + "node": Object { + "avatar": Object { + "url": "http://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=96&d=mm&r=g", + }, + "comments": Object { + "nodes": Array [], + }, + }, + }, + "featuredImage": null, + "title": "Gutenberg: Columns", + }, Object { "author": Object { "node": Object { @@ -521,6 +695,9 @@ Object { "name": "admin", "pages": Object { "nodes": Array [ + Object { + "title": "Yoast SEO", + }, Object { "title": "ACF Field Test", }, @@ -537,6 +714,18 @@ Object { Object { "title": "Hello world!", }, + Object { + "title": "Gutenberg: Columns", + }, + Object { + "title": "Gutenberg: Layout Element Blocks", + }, + Object { + "title": "Gutenberg: Formatting Blocks", + }, + Object { + "title": "Gutenberg: Common Blocks", + }, ], }, }, @@ -560,6 +749,9 @@ Object { "name": "admin", "pages": Object { "nodes": Array [ + Object { + "title": "Yoast SEO", + }, Object { "title": "ACF Field Test", }, @@ -576,6 +768,18 @@ Object { Object { "title": "Hello world! DELTA SYNC", }, + Object { + "title": "Gutenberg: Columns", + }, + Object { + "title": "Gutenberg: Layout Element Blocks", + }, + Object { + "title": "Gutenberg: Formatting Blocks", + }, + Object { + "title": "Gutenberg: Common Blocks", + }, ], }, }, @@ -622,6 +826,7 @@ Array [ "generalSettings", "readingSettings", "schemaMd5", + "seo", "viewer", "wpGatsby", "writingSettings", @@ -686,6 +891,113 @@ Array [ "fields": null, "name": "WpAvatarFilterInput", }, + Object { + "fields": Array [ + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpBlock", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "guid", + "id", + "lastEditedBy", + "lastUpdateTime", + "link", + "modified", + "modifiedGmt", + "previewedDatabaseId", + "previewedParentDatabaseId", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpBlockEditorPreview", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpBlockEditorPreviewConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpBlockEditorPreviewEdge", + }, + Object { + "fields": null, + "name": "WpBlockEditorPreviewFieldsEnum", + }, + Object { + "fields": null, + "name": "WpBlockEditorPreviewFilterInput", + }, + Object { + "fields": null, + "name": "WpBlockEditorPreviewFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpBlockEditorPreviewGroupConnection", + }, + Object { + "fields": null, + "name": "WpBlockEditorPreviewSortInput", + }, + Object { + "fields": null, + "name": "WpBlockFilterInput", + }, + Object { + "fields": null, + "name": "WpBlockFilterListInput", + }, Object { "fields": Array [ "ancestors", @@ -701,6 +1013,7 @@ Array [ "parentDatabaseId", "parentId", "posts", + "seo", "slug", "taxonomy", "termGroupId", @@ -1241,1336 +1554,2225 @@ Array [ }, Object { "fields": Array [ - "templateName", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpCoverTemplate", + "name": "WpCoreArchivesBlock", }, Object { "fields": Array [ - "templateName", + "align", + "className", + "displayAsDropdown", + "showPostCounts", ], - "name": "WpDefaultTemplate", + "name": "WpCoreArchivesBlockAttributes", }, Object { "fields": Array [ - "defaultCommentStatus", - "defaultPingStatus", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpDiscussionSettings", - }, - Object { - "fields": null, - "name": "WpDiscussionSettingsFilterInput", + "name": "WpCoreAudioBlock", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "anchor", + "autoplay", + "caption", + "className", + "id", + "loop", + "preload", + "src", ], - "name": "WpEdge", + "name": "WpCoreAudioBlockAttributes", }, Object { "fields": null, - "name": "WpFieldsEnum", + "name": "WpCoreAudioBlockAttributesUnion", }, Object { - "fields": null, - "name": "WpFilterInput", + "fields": Array [ + "align", + "anchor", + "autoplay", + "caption", + "className", + "id", + "loop", + "preload", + "src", + ], + "name": "WpCoreAudioBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "templateName", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "reusableBlock", + "saveContent", ], - "name": "WpFullWidthTemplate", + "name": "WpCoreBlock", }, Object { "fields": Array [ - "dateFormat", - "description", - "email", - "language", - "startOfWeek", - "timeFormat", - "timezone", + "ref", + ], + "name": "WpCoreBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreButtonBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", "title", "url", ], - "name": "WpGeneralSettings", + "name": "WpCoreButtonBlockAttributes", }, Object { "fields": null, - "name": "WpGeneralSettingsFilterInput", + "name": "WpCoreButtonBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", ], - "name": "WpGroupConnection", + "name": "WpCoreButtonBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "ancestors", - "wpChildren", - "wpParent", - "parentDatabaseId", - "parentId", + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", ], - "name": "WpHierarchicalContentNode", + "name": "WpCoreButtonBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", ], - "name": "WpHierarchicalContentNodeToContentNodeAncestorsConnection", + "name": "WpCoreButtonBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpHierarchicalContentNodeToContentNodeAncestorsConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "WpCoreButtonBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", ], - "name": "WpHierarchicalContentNodeToContentNodeChildrenConnection", + "name": "WpCoreButtonBlockDeprecatedV5Attributes", }, Object { - "fields": null, - "name": "WpHierarchicalContentNodeToContentNodeChildrenConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "WpCoreButtonBlockDeprecatedV6Attributes", }, Object { "fields": Array [ - "node", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpHierarchicalContentNodeToParentContentNodeConnectionEdge", + "name": "WpCoreButtonsBlock", }, Object { - "fields": null, - "name": "WpHierarchicalContentNodeToParentContentNodeConnectionEdgeFilterInput", + "fields": Array [ + "align", + "anchor", + "className", + ], + "name": "WpCoreButtonsBlockAttributes", }, Object { "fields": Array [ - "parentDatabaseId", - "parentId", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpHierarchicalTermNode", + "name": "WpCoreCalendarBlock", }, Object { "fields": Array [ - "file", - "height", - "meta", - "sizes", - "width", + "align", + "className", + "month", + "year", ], - "name": "WpMediaDetails", + "name": "WpCoreCalendarBlockAttributes", }, Object { - "fields": null, - "name": "WpMediaDetailsFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreCategoriesBlock", }, Object { "fields": Array [ - "altText", - "ancestors", - "author", - "authorDatabaseId", - "authorId", - "caption", - "wpChildren", - "commentCount", - "commentStatus", - "comments", - "contentType", - "databaseId", - "date", - "dateGmt", - "description", - "desiredSlug", - "enclosure", - "fileSize", - "guid", - "id", - "lastEditedBy", - "link", - "mediaDetails", - "mediaItemUrl", - "mediaType", - "mimeType", - "modified", - "modifiedGmt", - "wpParent", - "parentDatabaseId", - "parentId", - "sizes", - "slug", - "sourceUrl", - "srcSet", - "status", - "template", - "title", - "uri", - "nodeType", - "localFile", - "parent", - "children", - "internal", + "align", + "className", + "displayAsDropdown", + "showHierarchy", + "showPostCounts", ], - "name": "WpMediaItem", + "name": "WpCoreCategoriesBlockAttributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpMediaItemConnection", + "name": "WpCoreCodeBlock", }, Object { "fields": Array [ - "next", - "node", - "previous", + "anchor", + "className", + "content", ], - "name": "WpMediaItemEdge", + "name": "WpCoreCodeBlockAttributes", }, Object { - "fields": null, - "name": "WpMediaItemFieldsEnum", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreColumnBlock", }, Object { - "fields": null, - "name": "WpMediaItemFilterInput", + "fields": Array [ + "anchor", + "className", + "templateLock", + "verticalAlignment", + "width", + ], + "name": "WpCoreColumnBlockAttributes", }, Object { "fields": null, - "name": "WpMediaItemFilterListInput", + "name": "WpCoreColumnBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "anchor", + "className", + "templateLock", + "verticalAlignment", + "width", ], - "name": "WpMediaItemGroupConnection", + "name": "WpCoreColumnBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "aperture", - "camera", - "caption", - "copyright", - "createdTimestamp", - "credit", - "focalLength", - "iso", - "keywords", - "orientation", - "shutterSpeed", - "title", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpMediaItemMeta", + "name": "WpCoreColumnsBlock", }, Object { - "fields": null, - "name": "WpMediaItemMetaFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreColumnsBlockAttributes", }, Object { "fields": null, - "name": "WpMediaItemSortInput", + "name": "WpCoreColumnsBlockAttributesUnion", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", ], - "name": "WpMediaItemToCommentConnection", + "name": "WpCoreColumnsBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpMediaItemToCommentConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreColumnsBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "file", - "fileSize", - "height", - "mimeType", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreColumnsBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "sourceUrl", - "width", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpMediaSize", + "name": "WpCoreCoverBlock", }, Object { - "fields": null, - "name": "WpMediaSizeFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "WpCoreCoverBlockAttributes", }, Object { "fields": null, - "name": "WpMediaSizeFilterListInput", + "name": "WpCoreCoverBlockAttributesUnion", }, Object { "fields": Array [ - "count", - "databaseId", + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", "id", - "locations", - "menuItems", - "name", - "slug", - "nodeType", - "parent", - "children", - "internal", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", ], - "name": "WpMenu", + "name": "WpCoreCoverBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", - ], - "name": "WpMenuConnection", + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "WpCoreCoverBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", ], - "name": "WpMenuEdge", - }, - Object { - "fields": null, - "name": "WpMenuFieldsEnum", - }, - Object { - "fields": null, - "name": "WpMenuFilterInput", + "name": "WpCoreCoverBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", ], - "name": "WpMenuGroupConnection", + "name": "WpCoreCoverBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "childItems", - "connectedNode", - "cssClasses", - "databaseId", - "description", + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", "id", - "label", - "linkRelationship", - "locations", - "menu", - "order", - "parentDatabaseId", - "parentId", - "path", - "target", - "title", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", "url", - "nodeType", - "parent", - "children", - "internal", ], - "name": "WpMenuItem", + "name": "WpCoreCoverBlockDeprecatedV5Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpMenuItemConnection", + "name": "WpCoreEmbedBlock", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "allowResponsive", + "caption", + "className", + "previewable", + "providerNameSlug", + "responsive", + "type", + "url", ], - "name": "WpMenuItemEdge", + "name": "WpCoreEmbedBlockAttributes", }, Object { "fields": null, - "name": "WpMenuItemFieldsEnum", + "name": "WpCoreEmbedBlockAttributesUnion", }, Object { - "fields": null, - "name": "WpMenuItemFilterInput", + "fields": Array [ + "align", + "allowResponsive", + "caption", + "className", + "previewable", + "providerNameSlug", + "responsive", + "type", + "url", + ], + "name": "WpCoreEmbedBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpMenuItemFilterListInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreFileBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "className", + "downloadButtonText", + "fileName", + "href", + "id", + "showDownloadButton", + "textLinkHref", + "textLinkTarget", ], - "name": "WpMenuItemGroupConnection", + "name": "WpCoreFileBlockAttributes", }, Object { "fields": Array [ - "databaseId", - "id", - "uri", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpMenuItemLinkable", + "name": "WpCoreFreeformBlock", }, Object { - "fields": null, - "name": "WpMenuItemLinkableFilterInput", + "fields": Array [ + "content", + ], + "name": "WpCoreFreeformBlockAttributes", }, Object { - "fields": null, - "name": "WpMenuItemSortInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreGalleryBlock", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", ], - "name": "WpMenuItemToMenuConnectionEdge", + "name": "WpCoreGalleryBlockAttributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "WpCoreGalleryBlockAttributesImages", }, Object { "fields": null, - "name": "WpMenuItemToMenuConnectionEdgeFilterInput", + "name": "WpCoreGalleryBlockAttributesUnion", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", ], - "name": "WpMenuItemToMenuItemConnection", + "name": "WpCoreGalleryBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpMenuItemToMenuItemConnectionFilterInput", + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "WpCoreGalleryBlockDeprecatedV1AttributesImages", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", ], - "name": "WpMenuItemToMenuItemLinkableConnectionEdge", + "name": "WpCoreGalleryBlockDeprecatedV2Attributes", }, Object { - "fields": null, - "name": "WpMenuItemToMenuItemLinkableConnectionEdgeFilterInput", + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "WpCoreGalleryBlockDeprecatedV2AttributesImages", }, Object { - "fields": null, - "name": "WpMenuLocationEnum", + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "WpCoreGalleryBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpMenuLocationEnumQueryOperatorInput", + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "WpCoreGalleryBlockDeprecatedV3AttributesImages", }, Object { - "fields": null, - "name": "WpMenuSortInput", + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "WpCoreGalleryBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "nodes", + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", ], - "name": "WpMenuToMenuItemConnection", + "name": "WpCoreGalleryBlockDeprecatedV4AttributesImages", }, Object { - "fields": null, - "name": "WpMenuToMenuItemConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "WpCoreGalleryBlockDeprecatedV5Attributes", }, Object { "fields": Array [ + "alt", + "caption", + "fullUrl", "id", + "link", + "url", ], - "name": "WpNode", + "name": "WpCoreGalleryBlockDeprecatedV5AttributesImages", }, Object { "fields": Array [ - "author", - "authorDatabaseId", - "authorId", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpNodeWithAuthor", + "name": "WpCoreGroupBlock", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpNodeWithAuthorToUserConnectionEdge", + "name": "WpCoreGroupBlockAttributes", }, Object { "fields": null, - "name": "WpNodeWithAuthorToUserConnectionEdgeFilterInput", + "name": "WpCoreGroupBlockAttributesUnion", }, Object { "fields": Array [ - "commentCount", - "commentStatus", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpNodeWithComments", + "name": "WpCoreGroupBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "content", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpNodeWithContentEditor", + "name": "WpCoreGroupBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "excerpt", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpNodeWithExcerpt", + "name": "WpCoreGroupBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpNodeWithFeaturedImage", + "name": "WpCoreHeadingBlock", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpNodeWithFeaturedImageToMediaItemConnectionEdge", + "name": "WpCoreHeadingBlockAttributes", }, Object { "fields": null, - "name": "WpNodeWithFeaturedImageToMediaItemConnectionEdgeFilterInput", + "name": "WpCoreHeadingBlockAttributesUnion", }, Object { "fields": Array [ - "menuOrder", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpNodeWithPageAttributes", + "name": "WpCoreHeadingBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "isRevision", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpNodeWithRevisions", + "name": "WpCoreHeadingBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpNodeWithRevisionsToContentNodeConnectionEdge", + "name": "WpCoreHeadingBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "template", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpNodeWithTemplate", + "name": "WpCoreHeadingBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "title", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpNodeWithTitle", + "name": "WpCoreHtmlBlock", }, Object { "fields": Array [ - "pingStatus", - "pinged", - "toPing", + "content", ], - "name": "WpNodeWithTrackbacks", + "name": "WpCoreHtmlBlockAttributes", }, Object { "fields": Array [ - "acfPageFields", - "ancestors", - "author", - "authorDatabaseId", - "authorId", - "wpChildren", - "commentCount", - "commentStatus", - "comments", - "content", - "contentType", - "databaseId", - "date", - "dateGmt", - "desiredSlug", - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", - "guid", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreImageBlock", + }, + Object { + "fields": Array [ + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", "id", - "isFrontPage", - "isPostsPage", - "isRevision", - "lastEditedBy", - "link", - "menuOrder", - "modified", - "modifiedGmt", - "wpParent", - "parentDatabaseId", - "parentId", - "slug", - "status", - "template", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", "title", - "uri", - "nodeType", - "parent", - "children", - "internal", + "url", + "width", ], - "name": "WpPage", + "name": "WpCoreImageBlockAttributes", + }, + Object { + "fields": null, + "name": "WpCoreImageBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", ], - "name": "WpPageConnection", + "name": "WpCoreImageBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", ], - "name": "WpPageEdge", + "name": "WpCoreImageBlockDeprecatedV2Attributes", }, Object { - "fields": null, - "name": "WpPageFieldsEnum", + "fields": Array [ + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", + ], + "name": "WpCoreImageBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpPageFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreLatestCommentsBlock", }, Object { - "fields": null, - "name": "WpPageFilterListInput", + "fields": Array [ + "align", + "className", + "commentsToShow", + "displayAvatar", + "displayDate", + "displayExcerpt", + ], + "name": "WpCoreLatestCommentsBlockAttributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPageGroupConnection", + "name": "WpCoreLatestPostsBlock", + }, + Object { + "fields": Array [ + "addLinkToFeaturedImage", + "align", + "categories", + "className", + "columns", + "displayAuthor", + "displayFeaturedImage", + "displayPostContent", + "displayPostContentRadio", + "displayPostDate", + "excerptLength", + "featuredImageAlign", + "featuredImageSizeHeight", + "featuredImageSizeSlug", + "featuredImageSizeWidth", + "order", + "orderBy", + "postLayout", + "postsToShow", + "selectedAuthor", + ], + "name": "WpCoreLatestPostsBlockAttributes", }, Object { "fields": null, - "name": "WpPageSortInput", + "name": "WpCoreLatestPostsBlockAttributesUnion", }, Object { "fields": Array [ - "nodes", + "addLinkToFeaturedImage", + "align", + "categories", + "className", + "columns", + "displayAuthor", + "displayFeaturedImage", + "displayPostContent", + "displayPostContentRadio", + "displayPostDate", + "excerptLength", + "featuredImageAlign", + "featuredImageSizeHeight", + "featuredImageSizeSlug", + "featuredImageSizeWidth", + "order", + "orderBy", + "postLayout", + "postsToShow", + "selectedAuthor", ], - "name": "WpPageToCommentConnection", + "name": "WpCoreLatestPostsBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpPageToCommentConnectionFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreListBlock", }, Object { "fields": Array [ - "buttonGroupField", - "checkboxField", - "colorPickerField", - "datePickerField", - "dateTimePickerField", - "doc", - "fieldGroupName", - "fileField", - "flexibleContentField", - "galleryField", - "googleMapField", - "groupField", - "imageField", - "linkField", - "mov", - "mp4", - "oembedField", - "pageLinkField", - "pdf", - "postObjectField", - "radioButtonField", - "rangeField", - "relationshipField", - "repeaterField", - "selectField", - "taxonomyField", - "textAreaField", - "textField", - "timePicker", - "trueFalseField", - "userField", - "wysiwygEditorField", + "anchor", + "backgroundColor", + "className", + "gradient", + "ordered", + "reversed", + "start", + "textColor", + "type", + "values", ], - "name": "WpPage_Acfpagefields", + "name": "WpCoreListBlockAttributes", }, Object { - "fields": null, - "name": "WpPage_AcfpagefieldsFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreMediaTextBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreMediaTextBlockAttributes", }, Object { "fields": null, - "name": "WpPage_Acfpagefields_FlexibleContentField", + "name": "WpCoreMediaTextBlockAttributesUnion", }, Object { "fields": Array [ - "fieldGroupName", - "flexImage", - "flexRelationship", - "flexRepeater", - "flexTitle", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreMediaTextBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "WpCoreMediaTextBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", ], - "name": "WpPage_Acfpagefields_FlexibleContentField_FlexLayout1", + "name": "WpCoreMediaTextBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "fieldGroupName", - "flexRepeaterRelationship", - "flexRepeaterTitle", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPage_Acfpagefields_FlexibleContentField_FlexLayout1_flexRepeater", + "name": "WpCoreMissingBlock", }, Object { "fields": Array [ - "fieldGroupName", + "originalContent", + "originalName", + "originalUndelimitedContent", ], - "name": "WpPage_Acfpagefields_GroupField", + "name": "WpCoreMissingBlockAttributes", }, Object { - "fields": null, - "name": "WpPage_Acfpagefields_GroupFieldFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreMoreBlock", }, Object { "fields": Array [ - "fieldGroupName", - "repeaterFlex", + "customText", + "noTeaser", ], - "name": "WpPage_Acfpagefields_repeaterField", + "name": "WpCoreMoreBlockAttributes", }, Object { - "fields": null, - "name": "WpPage_Acfpagefields_repeaterFieldFilterInput", + "fields": Array [ + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreNextpageBlock", }, Object { - "fields": null, - "name": "WpPage_Acfpagefields_repeaterFieldFilterListInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreParagraphBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", + ], + "name": "WpCoreParagraphBlockAttributes", }, Object { "fields": null, - "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex", + "name": "WpCoreParagraphBlockAttributesUnion", }, Object { "fields": Array [ - "fieldGroupName", - "repeaterFlexRelationship", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex_RepeaterFlexRelationshipLayout", + "name": "WpCoreParagraphBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "fieldGroupName", - "repeaterFlexTitle", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex_RepeaterFlexTitleLayout", + "name": "WpCoreParagraphBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "author", - "authorDatabaseId", - "authorId", - "categories", - "commentCount", - "commentStatus", - "comments", + "align", + "anchor", + "backgroundColor", + "className", "content", - "contentType", - "databaseId", - "date", - "dateGmt", - "desiredSlug", - "enclosure", - "excerpt", - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", - "guid", - "id", - "isRevision", - "isSticky", - "lastEditedBy", - "link", - "modified", - "modifiedGmt", - "pingStatus", - "pinged", - "postFormats", - "slug", - "status", - "tags", - "template", - "terms", - "title", - "toPing", - "uri", - "nodeType", - "parent", - "children", - "internal", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpPost", + "name": "WpCoreParagraphBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpPostConnection", + "name": "WpCoreParagraphBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpPostEdge", - }, - Object { - "fields": null, - "name": "WpPostFieldsEnum", - }, - Object { - "fields": null, - "name": "WpPostFilterInput", - }, - Object { - "fields": null, - "name": "WpPostFilterListInput", + "name": "WpCoreParagraphBlockDeprecatedV5Attributes", }, Object { "fields": Array [ - "contentNodes", - "count", - "databaseId", - "description", - "id", - "link", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "posts", - "slug", - "taxonomy", - "termGroupId", - "termTaxonomyId", - "uri", - "nodeType", - "parent", - "children", - "internal", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostFormat", + "name": "WpCorePreformattedBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "anchor", + "className", + "content", ], - "name": "WpPostFormatConnection", + "name": "WpCorePreformattedBlockAttributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostFormatEdge", + "name": "WpCorePullquoteBlock", }, Object { - "fields": null, - "name": "WpPostFormatFieldsEnum", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", + ], + "name": "WpCorePullquoteBlockAttributes", }, Object { "fields": null, - "name": "WpPostFormatFilterInput", + "name": "WpCorePullquoteBlockAttributesUnion", }, Object { - "fields": null, - "name": "WpPostFormatFilterListInput", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", + ], + "name": "WpCorePullquoteBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "WpPostFormatGroupConnection", + "name": "WpCorePullquoteBlockDeprecatedV2Attributes", }, Object { - "fields": null, - "name": "WpPostFormatSortInput", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", + ], + "name": "WpCorePullquoteBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "WpPostFormatToContentNodeConnection", + "name": "WpCorePullquoteBlockDeprecatedV4Attributes", }, Object { - "fields": null, - "name": "WpPostFormatToContentNodeConnectionFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreQuoteBlock", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "citation", + "className", + "value", ], - "name": "WpPostFormatToPostConnection", + "name": "WpCoreQuoteBlockAttributes", }, Object { "fields": null, - "name": "WpPostFormatToPostConnectionFilterInput", + "name": "WpCoreQuoteBlockAttributesUnion", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "citation", + "className", + "value", ], - "name": "WpPostFormatToTaxonomyConnectionEdge", + "name": "WpCoreQuoteBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpPostFormatToTaxonomyConnectionEdgeFilterInput", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "value", + ], + "name": "WpCoreQuoteBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "citation", + "className", + "value", ], - "name": "WpPostGroupConnection", + "name": "WpCoreQuoteBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpPostObjectUnion", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreRssBlock", }, Object { - "fields": null, - "name": "WpPostSortInput", + "fields": Array [ + "align", + "blockLayout", + "className", + "columns", + "displayAuthor", + "displayDate", + "displayExcerpt", + "excerptLength", + "feedURL", + "itemsToShow", + ], + "name": "WpCoreRssBlockAttributes", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostToCategoryConnection", + "name": "WpCoreSearchBlock", }, Object { - "fields": null, - "name": "WpPostToCategoryConnectionFilterInput", + "fields": Array [ + "align", + "buttonPosition", + "buttonText", + "buttonUseIcon", + "className", + "label", + "placeholder", + "showLabel", + "width", + "widthUnit", + ], + "name": "WpCoreSearchBlockAttributes", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostToCommentConnection", + "name": "WpCoreSeparatorBlock", }, Object { - "fields": null, - "name": "WpPostToCommentConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "className", + "color", + "customColor", + ], + "name": "WpCoreSeparatorBlockAttributes", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostToPostFormatConnection", + "name": "WpCoreShortcodeBlock", }, Object { - "fields": null, - "name": "WpPostToPostFormatConnectionFilterInput", + "fields": Array [ + "text", + ], + "name": "WpCoreShortcodeBlockAttributes", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostToTagConnection", + "name": "WpCoreSocialLinkBlock", }, Object { - "fields": null, - "name": "WpPostToTagConnectionFilterInput", + "fields": Array [ + "className", + "label", + "service", + "url", + ], + "name": "WpCoreSocialLinkBlockAttributes", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostToTermNodeConnection", + "name": "WpCoreSocialLinksBlock", }, Object { - "fields": null, - "name": "WpPostToTermNodeConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "className", + "openInNewTab", + ], + "name": "WpCoreSocialLinksBlockAttributes", }, Object { "fields": Array [ - "addNew", - "addNewItem", - "allItems", - "archives", "attributes", - "editItem", - "featuredImage", - "filterItemsList", - "insertIntoItem", - "itemsList", - "itemsListNavigation", - "menuName", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "newItem", - "notFound", - "notFoundInTrash", - "parentItemColon", - "removeFeaturedImage", - "searchItems", - "setFeaturedImage", - "singularName", - "uploadedToThisItem", - "useFeaturedImage", - "viewItem", - "viewItems", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpPostTypeLabelDetails", + "name": "WpCoreSpacerBlock", }, Object { - "fields": null, - "name": "WpPostTypeLabelDetailsFilterInput", + "fields": Array [ + "anchor", + "className", + "height", + ], + "name": "WpCoreSpacerBlockAttributes", }, Object { "fields": Array [ - "postsPerPage", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpReadingSettings", + "name": "WpCoreSubheadBlock", }, Object { - "fields": null, - "name": "WpReadingSettingsFilterInput", + "fields": Array [ + "align", + "className", + "content", + ], + "name": "WpCoreSubheadBlockAttributes", }, Object { "fields": Array [ - "discussionSettingsDefaultCommentStatus", - "discussionSettingsDefaultPingStatus", - "generalSettingsDateFormat", - "generalSettingsDescription", - "generalSettingsEmail", - "generalSettingsLanguage", - "generalSettingsStartOfWeek", - "generalSettingsTimeFormat", - "generalSettingsTimezone", - "generalSettingsTitle", - "generalSettingsUrl", - "readingSettingsPostsPerPage", - "writingSettingsDefaultCategory", - "writingSettingsDefaultPostFormat", - "writingSettingsUseSmilies", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpSettings", + "name": "WpCoreTableBlock", }, Object { - "fields": null, - "name": "WpSettingsFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "body", + "caption", + "className", + "foot", + "hasFixedLayout", + "head", + ], + "name": "WpCoreTableBlockAttributes", }, Object { - "fields": null, - "name": "WpSortInput", + "fields": Array [ + "cells", + ], + "name": "WpCoreTableBlockAttributesBody", }, Object { "fields": Array [ - "contentNodes", - "count", - "databaseId", - "description", - "id", - "link", - "name", - "posts", - "slug", - "taxonomy", - "termGroupId", - "termTaxonomyId", - "uri", - "nodeType", - "parent", - "children", - "internal", + "align", + "content", + "scope", + "tag", ], - "name": "WpTag", + "name": "WpCoreTableBlockAttributesBodyCells", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "cells", ], - "name": "WpTagConnection", + "name": "WpCoreTableBlockAttributesFoot", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "content", + "scope", + "tag", ], - "name": "WpTagEdge", + "name": "WpCoreTableBlockAttributesFootCells", }, Object { - "fields": null, - "name": "WpTagFieldsEnum", + "fields": Array [ + "cells", + ], + "name": "WpCoreTableBlockAttributesHead", }, Object { - "fields": null, - "name": "WpTagFilterInput", + "fields": Array [ + "align", + "content", + "scope", + "tag", + ], + "name": "WpCoreTableBlockAttributesHeadCells", }, Object { "fields": null, - "name": "WpTagFilterListInput", + "name": "WpCoreTableBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "backgroundColor", + "body", + "caption", + "className", + "foot", + "hasFixedLayout", + "head", ], - "name": "WpTagGroupConnection", + "name": "WpCoreTableBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpTagSortInput", + "fields": Array [ + "cells", + ], + "name": "WpCoreTableBlockDeprecatedV1AttributesBody", }, Object { "fields": Array [ - "nodes", + "align", + "content", + "scope", + "tag", ], - "name": "WpTagToContentNodeConnection", + "name": "WpCoreTableBlockDeprecatedV1AttributesBodyCells", }, Object { - "fields": null, - "name": "WpTagToContentNodeConnectionFilterInput", + "fields": Array [ + "cells", + ], + "name": "WpCoreTableBlockDeprecatedV1AttributesFoot", }, Object { "fields": Array [ - "nodes", + "align", + "content", + "scope", + "tag", ], - "name": "WpTagToPostConnection", + "name": "WpCoreTableBlockDeprecatedV1AttributesFootCells", }, Object { - "fields": null, - "name": "WpTagToPostConnectionFilterInput", + "fields": Array [ + "cells", + ], + "name": "WpCoreTableBlockDeprecatedV1AttributesHead", }, Object { "fields": Array [ - "node", + "align", + "content", + "scope", + "tag", ], - "name": "WpTagToTaxonomyConnectionEdge", + "name": "WpCoreTableBlockDeprecatedV1AttributesHeadCells", }, Object { - "fields": null, - "name": "WpTagToTaxonomyConnectionEdgeFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreTagCloudBlock", }, Object { "fields": Array [ - "archivePath", - "connectedContentTypes", - "description", - "graphqlPluralName", - "graphqlSingleName", - "hierarchical", - "id", - "label", + "align", + "className", + "showTagCounts", + "taxonomy", + ], + "name": "WpCoreTagCloudBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "public", - "restBase", - "restControllerClass", - "showCloud", - "showInAdminColumn", - "showInGraphql", - "showInMenu", - "showInNavMenus", - "showInQuickEdit", - "showInRest", - "showUi", - "nodeType", - "parent", - "children", - "internal", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpTaxonomy", + "name": "WpCoreTextColumnsBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "className", + "columns", + "content", + "width", ], - "name": "WpTaxonomyConnection", + "name": "WpCoreTextColumnsBlockAttributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "wpChildren", ], - "name": "WpTaxonomyEdge", + "name": "WpCoreTextColumnsBlockAttributesContent", }, Object { - "fields": null, - "name": "WpTaxonomyFieldsEnum", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreVerseBlock", }, Object { - "fields": null, - "name": "WpTaxonomyFilterInput", + "fields": Array [ + "anchor", + "className", + "content", + "textAlign", + ], + "name": "WpCoreVerseBlockAttributes", }, Object { "fields": null, - "name": "WpTaxonomyFilterListInput", + "name": "WpCoreVerseBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "anchor", + "className", + "content", + "textAlign", ], - "name": "WpTaxonomyGroupConnection", + "name": "WpCoreVerseBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpTaxonomySortInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpCoreVideoBlock", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "autoplay", + "caption", + "className", + "controls", + "id", + "loop", + "muted", + "playsInline", + "poster", + "preload", + "src", + "tracks", ], - "name": "WpTaxonomyToContentTypeConnection", + "name": "WpCoreVideoBlockAttributes", }, Object { - "fields": null, - "name": "WpTaxonomyToContentTypeConnectionFilterInput", + "fields": Array [ + "templateName", + ], + "name": "WpCoverTemplate", }, Object { "fields": Array [ - "count", - "databaseId", - "description", - "id", - "link", - "name", - "slug", - "termGroupId", - "termTaxonomyId", - "uri", - "nodeType", - "parent", - "children", - "internal", + "templateName", ], - "name": "WpTermNode", + "name": "WpDefaultTemplate", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "defaultCommentStatus", + "defaultPingStatus", ], - "name": "WpTermNodeConnection", + "name": "WpDiscussionSettings", + }, + Object { + "fields": null, + "name": "WpDiscussionSettingsFilterInput", }, Object { "fields": Array [ @@ -2578,19 +3780,39 @@ Array [ "node", "previous", ], - "name": "WpTermNodeEdge", + "name": "WpEdge", }, Object { "fields": null, - "name": "WpTermNodeFieldsEnum", + "name": "WpFieldsEnum", }, Object { "fields": null, - "name": "WpTermNodeFilterInput", + "name": "WpFilterInput", + }, + Object { + "fields": Array [ + "templateName", + ], + "name": "WpFullWidthTemplate", + }, + Object { + "fields": Array [ + "dateFormat", + "description", + "email", + "language", + "startOfWeek", + "timeFormat", + "timezone", + "title", + "url", + ], + "name": "WpGeneralSettings", }, Object { "fields": null, - "name": "WpTermNodeFilterListInput", + "name": "WpGeneralSettingsFilterInput", }, Object { "fields": Array [ @@ -2601,130 +3823,118 @@ Array [ "field", "fieldValue", ], - "name": "WpTermNodeGroupConnection", + "name": "WpGroupConnection", }, Object { - "fields": null, - "name": "WpTermNodeSortInput", + "fields": Array [ + "ancestors", + "wpChildren", + "wpParent", + "parentDatabaseId", + "parentId", + ], + "name": "WpHierarchicalContentNode", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpHierarchicalContentNodeToContentNodeAncestorsConnection", }, Object { "fields": null, - "name": "WpTermObjectUnion", + "name": "WpHierarchicalContentNodeToContentNodeAncestorsConnectionFilterInput", }, Object { "fields": Array [ - "author", - "authorDatabaseId", - "authorId", - "content", - "contentType", - "databaseId", - "date", - "dateGmt", - "desiredSlug", - "enclosure", - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", - "guid", - "id", - "lastEditedBy", - "link", - "modified", - "modifiedGmt", - "slug", - "status", - "template", - "title", - "uri", - "nodeType", - "parent", - "children", - "internal", + "nodes", ], - "name": "WpTranslationFilterTest", + "name": "WpHierarchicalContentNodeToContentNodeChildrenConnection", + }, + Object { + "fields": null, + "name": "WpHierarchicalContentNodeToContentNodeChildrenConnectionFilterInput", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", - ], - "name": "WpTranslationFilterTestConnection", - }, - Object { - "fields": Array [ - "next", "node", - "previous", ], - "name": "WpTranslationFilterTestEdge", - }, - Object { - "fields": null, - "name": "WpTranslationFilterTestFieldsEnum", + "name": "WpHierarchicalContentNodeToParentContentNodeConnectionEdge", }, Object { "fields": null, - "name": "WpTranslationFilterTestFilterInput", + "name": "WpHierarchicalContentNodeToParentContentNodeConnectionEdgeFilterInput", }, Object { - "fields": null, - "name": "WpTranslationFilterTestFilterListInput", + "fields": Array [ + "parentDatabaseId", + "parentId", + ], + "name": "WpHierarchicalTermNode", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "file", + "height", + "meta", + "sizes", + "width", ], - "name": "WpTranslationFilterTestGroupConnection", + "name": "WpMediaDetails", }, Object { "fields": null, - "name": "WpTranslationFilterTestSortInput", + "name": "WpMediaDetailsFilterInput", }, Object { "fields": Array [ + "altText", + "ancestors", "author", "authorDatabaseId", "authorId", - "content", + "caption", + "wpChildren", + "commentCount", + "commentStatus", + "comments", "contentType", "databaseId", "date", "dateGmt", + "description", "desiredSlug", "enclosure", - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", + "fileSize", "guid", "id", "lastEditedBy", "link", + "mediaDetails", + "mediaItemUrl", + "mediaType", + "mimeType", "modified", "modifiedGmt", + "wpParent", + "parentDatabaseId", + "parentId", + "seo", + "sizes", "slug", + "sourceUrl", + "srcSet", "status", "template", "title", "uri", "nodeType", + "localFile", "parent", "children", "internal", ], - "name": "WpTypeLimit0Test", + "name": "WpMediaItem", }, Object { "fields": Array [ @@ -2738,7 +3948,7 @@ Array [ "sum", "group", ], - "name": "WpTypeLimit0TestConnection", + "name": "WpMediaItemConnection", }, Object { "fields": Array [ @@ -2746,19 +3956,19 @@ Array [ "node", "previous", ], - "name": "WpTypeLimit0TestEdge", + "name": "WpMediaItemEdge", }, Object { "fields": null, - "name": "WpTypeLimit0TestFieldsEnum", + "name": "WpMediaItemFieldsEnum", }, Object { "fields": null, - "name": "WpTypeLimit0TestFilterInput", + "name": "WpMediaItemFilterInput", }, Object { "fields": null, - "name": "WpTypeLimit0TestFilterListInput", + "name": "WpMediaItemFilterListInput", }, Object { "fields": Array [ @@ -2769,806 +3979,5087 @@ Array [ "field", "fieldValue", ], - "name": "WpTypeLimit0TestGroupConnection", + "name": "WpMediaItemGroupConnection", + }, + Object { + "fields": Array [ + "aperture", + "camera", + "caption", + "copyright", + "createdTimestamp", + "credit", + "focalLength", + "iso", + "keywords", + "orientation", + "shutterSpeed", + "title", + ], + "name": "WpMediaItemMeta", }, Object { "fields": null, - "name": "WpTypeLimit0TestSortInput", + "name": "WpMediaItemMetaFilterInput", + }, + Object { + "fields": null, + "name": "WpMediaItemSortInput", }, Object { "fields": Array [ - "author", - "authorDatabaseId", - "authorId", - "content", - "contentType", + "nodes", + ], + "name": "WpMediaItemToCommentConnection", + }, + Object { + "fields": null, + "name": "WpMediaItemToCommentConnectionFilterInput", + }, + Object { + "fields": Array [ + "file", + "fileSize", + "height", + "mimeType", + "name", + "sourceUrl", + "width", + ], + "name": "WpMediaSize", + }, + Object { + "fields": null, + "name": "WpMediaSizeFilterInput", + }, + Object { + "fields": null, + "name": "WpMediaSizeFilterListInput", + }, + Object { + "fields": Array [ + "count", "databaseId", - "date", - "dateGmt", - "desiredSlug", - "enclosure", - "featuredImage", - "featuredImageDatabaseId", - "featuredImageId", - "guid", "id", - "lastEditedBy", - "link", - "modified", - "modifiedGmt", + "locations", + "menuItems", + "name", "slug", - "status", - "template", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpMenu", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpMenuConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpMenuEdge", + }, + Object { + "fields": null, + "name": "WpMenuFieldsEnum", + }, + Object { + "fields": null, + "name": "WpMenuFilterInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpMenuGroupConnection", + }, + Object { + "fields": Array [ + "childItems", + "connectedNode", + "cssClasses", + "databaseId", + "description", + "id", + "label", + "linkRelationship", + "locations", + "menu", + "order", + "parentDatabaseId", + "parentId", + "path", + "target", "title", - "uri", + "url", "nodeType", "parent", "children", "internal", ], - "name": "WpTypeLimitTest", + "name": "WpMenuItem", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpMenuItemConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpMenuItemEdge", + }, + Object { + "fields": null, + "name": "WpMenuItemFieldsEnum", + }, + Object { + "fields": null, + "name": "WpMenuItemFilterInput", + }, + Object { + "fields": null, + "name": "WpMenuItemFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpMenuItemGroupConnection", + }, + Object { + "fields": Array [ + "databaseId", + "id", + "uri", + ], + "name": "WpMenuItemLinkable", + }, + Object { + "fields": null, + "name": "WpMenuItemLinkableFilterInput", + }, + Object { + "fields": null, + "name": "WpMenuItemSortInput", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpMenuItemToMenuConnectionEdge", + }, + Object { + "fields": null, + "name": "WpMenuItemToMenuConnectionEdgeFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpMenuItemToMenuItemConnection", + }, + Object { + "fields": null, + "name": "WpMenuItemToMenuItemConnectionFilterInput", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpMenuItemToMenuItemLinkableConnectionEdge", + }, + Object { + "fields": null, + "name": "WpMenuItemToMenuItemLinkableConnectionEdgeFilterInput", + }, + Object { + "fields": null, + "name": "WpMenuLocationEnum", + }, + Object { + "fields": null, + "name": "WpMenuLocationEnumQueryOperatorInput", + }, + Object { + "fields": null, + "name": "WpMenuSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpMenuToMenuItemConnection", + }, + Object { + "fields": null, + "name": "WpMenuToMenuItemConnectionFilterInput", + }, + Object { + "fields": Array [ + "id", + ], + "name": "WpNode", + }, + Object { + "fields": null, + "name": "WpNodeFilterInput", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + ], + "name": "WpNodeWithAuthor", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpNodeWithAuthorToUserConnectionEdge", + }, + Object { + "fields": null, + "name": "WpNodeWithAuthorToUserConnectionEdgeFilterInput", + }, + Object { + "fields": Array [ + "commentCount", + "commentStatus", + ], + "name": "WpNodeWithComments", + }, + Object { + "fields": Array [ + "content", + ], + "name": "WpNodeWithContentEditor", + }, + Object { + "fields": Array [ + "excerpt", + ], + "name": "WpNodeWithExcerpt", + }, + Object { + "fields": Array [ + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + ], + "name": "WpNodeWithFeaturedImage", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpNodeWithFeaturedImageToMediaItemConnectionEdge", + }, + Object { + "fields": null, + "name": "WpNodeWithFeaturedImageToMediaItemConnectionEdgeFilterInput", + }, + Object { + "fields": Array [ + "menuOrder", + ], + "name": "WpNodeWithPageAttributes", + }, + Object { + "fields": Array [ + "isRevision", + ], + "name": "WpNodeWithRevisions", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpNodeWithRevisionsToContentNodeConnectionEdge", + }, + Object { + "fields": Array [ + "template", + ], + "name": "WpNodeWithTemplate", + }, + Object { + "fields": Array [ + "title", + ], + "name": "WpNodeWithTitle", + }, + Object { + "fields": Array [ + "pingStatus", + "pinged", + "toPing", + ], + "name": "WpNodeWithTrackbacks", + }, + Object { + "fields": Array [ + "acfPageFields", + "ancestors", + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "wpChildren", + "commentCount", + "commentStatus", + "comments", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + "guid", + "id", + "isFrontPage", + "isPostsPage", + "isPrivacyPage", + "isRevision", + "lastEditedBy", + "link", + "menuOrder", + "modified", + "modifiedGmt", + "wpParent", + "parentDatabaseId", + "parentId", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpPage", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpPageConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpPageEdge", + }, + Object { + "fields": null, + "name": "WpPageFieldsEnum", + }, + Object { + "fields": null, + "name": "WpPageFilterInput", + }, + Object { + "fields": null, + "name": "WpPageFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpPageGroupConnection", + }, + Object { + "fields": null, + "name": "WpPageSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPageToCommentConnection", + }, + Object { + "fields": null, + "name": "WpPageToCommentConnectionFilterInput", + }, + Object { + "fields": Array [ + "buttonGroupField", + "checkboxField", + "colorPickerField", + "datePickerField", + "dateTimePickerField", + "doc", + "fieldGroupName", + "fileField", + "flexibleContentField", + "galleryField", + "googleMapField", + "groupField", + "imageField", + "linkField", + "mov", + "mp4", + "oembedField", + "pageLinkField", + "pdf", + "postObjectField", + "radioButtonField", + "rangeField", + "relationshipField", + "repeaterField", + "selectField", + "taxonomyField", + "textAreaField", + "textField", + "timePicker", + "trueFalseField", + "userField", + "wysiwygEditorField", + ], + "name": "WpPage_Acfpagefields", + }, + Object { + "fields": null, + "name": "WpPage_AcfpagefieldsFilterInput", + }, + Object { + "fields": null, + "name": "WpPage_Acfpagefields_FlexibleContentField", + }, + Object { + "fields": Array [ + "fieldGroupName", + "flexImage", + "flexRelationship", + "flexRepeater", + "flexTitle", + ], + "name": "WpPage_Acfpagefields_FlexibleContentField_FlexLayout1", + }, + Object { + "fields": Array [ + "fieldGroupName", + "flexRepeaterRelationship", + "flexRepeaterTitle", + ], + "name": "WpPage_Acfpagefields_FlexibleContentField_FlexLayout1_flexRepeater", + }, + Object { + "fields": Array [ + "fieldGroupName", + ], + "name": "WpPage_Acfpagefields_GroupField", + }, + Object { + "fields": null, + "name": "WpPage_Acfpagefields_GroupFieldFilterInput", + }, + Object { + "fields": Array [ + "fieldGroupName", + "repeaterFlex", + ], + "name": "WpPage_Acfpagefields_repeaterField", + }, + Object { + "fields": null, + "name": "WpPage_Acfpagefields_repeaterFieldFilterInput", + }, + Object { + "fields": null, + "name": "WpPage_Acfpagefields_repeaterFieldFilterListInput", + }, + Object { + "fields": null, + "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex", + }, + Object { + "fields": Array [ + "fieldGroupName", + "repeaterFlexRelationship", + ], + "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex_RepeaterFlexRelationshipLayout", + }, + Object { + "fields": Array [ + "fieldGroupName", + "repeaterFlexTitle", + ], + "name": "WpPage_Acfpagefields_repeaterField_RepeaterFlex_RepeaterFlexTitleLayout", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "categories", + "commentCount", + "commentStatus", + "comments", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "excerpt", + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + "guid", + "id", + "isRevision", + "isSticky", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "pingStatus", + "pinged", + "postFormats", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "tags", + "template", + "terms", + "title", + "toPing", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpPost", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpPostConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpPostEdge", + }, + Object { + "fields": null, + "name": "WpPostFieldsEnum", + }, + Object { + "fields": null, + "name": "WpPostFilterInput", + }, + Object { + "fields": null, + "name": "WpPostFilterListInput", + }, + Object { + "fields": Array [ + "contentNodes", + "count", + "databaseId", + "description", + "id", + "link", + "name", + "posts", + "seo", + "slug", + "taxonomy", + "termGroupId", + "termTaxonomyId", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpPostFormat", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpPostFormatConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpPostFormatEdge", + }, + Object { + "fields": null, + "name": "WpPostFormatFieldsEnum", + }, + Object { + "fields": null, + "name": "WpPostFormatFilterInput", + }, + Object { + "fields": null, + "name": "WpPostFormatFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpPostFormatGroupConnection", + }, + Object { + "fields": null, + "name": "WpPostFormatSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostFormatToContentNodeConnection", + }, + Object { + "fields": null, + "name": "WpPostFormatToContentNodeConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostFormatToPostConnection", + }, + Object { + "fields": null, + "name": "WpPostFormatToPostConnectionFilterInput", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpPostFormatToTaxonomyConnectionEdge", + }, + Object { + "fields": null, + "name": "WpPostFormatToTaxonomyConnectionEdgeFilterInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpPostGroupConnection", + }, + Object { + "fields": null, + "name": "WpPostObjectUnion", + }, + Object { + "fields": null, + "name": "WpPostSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostToCategoryConnection", + }, + Object { + "fields": null, + "name": "WpPostToCategoryConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostToCommentConnection", + }, + Object { + "fields": null, + "name": "WpPostToCommentConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostToPostFormatConnection", + }, + Object { + "fields": null, + "name": "WpPostToPostFormatConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostToTagConnection", + }, + Object { + "fields": null, + "name": "WpPostToTagConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpPostToTermNodeConnection", + }, + Object { + "fields": null, + "name": "WpPostToTermNodeConnectionFilterInput", + }, + Object { + "fields": Array [ + "addNew", + "addNewItem", + "allItems", + "archives", + "attributes", + "editItem", + "featuredImage", + "filterItemsList", + "insertIntoItem", + "itemsList", + "itemsListNavigation", + "menuName", + "name", + "newItem", + "notFound", + "notFoundInTrash", + "parentItemColon", + "removeFeaturedImage", + "searchItems", + "setFeaturedImage", + "singularName", + "uploadedToThisItem", + "useFeaturedImage", + "viewItem", + "viewItems", + ], + "name": "WpPostTypeLabelDetails", + }, + Object { + "fields": null, + "name": "WpPostTypeLabelDetailsFilterInput", + }, + Object { + "fields": Array [ + "breadcrumbs", + "canonical", + "cornerstone", + "focuskw", + "fullHead", + "metaDesc", + "metaKeywords", + "metaRobotsNofollow", + "metaRobotsNoindex", + "opengraphAuthor", + "opengraphDescription", + "opengraphImage", + "opengraphModifiedTime", + "opengraphPublishedTime", + "opengraphPublisher", + "opengraphSiteName", + "opengraphTitle", + "opengraphType", + "opengraphUrl", + "readingTime", + "schema", + "title", + "twitterDescription", + "twitterImage", + "twitterTitle", + ], + "name": "WpPostTypeSEO", + }, + Object { + "fields": null, + "name": "WpPostTypeSEOFilterInput", + }, + Object { + "fields": Array [ + "postsPerPage", + ], + "name": "WpReadingSettings", + }, + Object { + "fields": null, + "name": "WpReadingSettingsFilterInput", + }, + Object { + "fields": Array [ + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "guid", + "id", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpReusableBlock", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpReusableBlockConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpReusableBlockEdge", + }, + Object { + "fields": null, + "name": "WpReusableBlockFieldsEnum", + }, + Object { + "fields": null, + "name": "WpReusableBlockFilterInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpReusableBlockGroupConnection", + }, + Object { + "fields": null, + "name": "WpReusableBlockSortInput", + }, + Object { + "fields": Array [ + "archivePrefix", + "boldLast", + "enabled", + "homeText", + "notFoundText", + "prefix", + "searchPrefix", + "separator", + "showBlogPage", + ], + "name": "WpSEOBreadcrumbs", + }, + Object { + "fields": null, + "name": "WpSEOBreadcrumbsFilterInput", + }, + Object { + "fields": null, + "name": "WpSEOCardType", + }, + Object { + "fields": null, + "name": "WpSEOCardTypeQueryOperatorInput", + }, + Object { + "fields": Array [ + "breadcrumbs", + "contentTypes", + "openGraph", + "redirects", + "schema", + "social", + "webmaster", + ], + "name": "WpSEOConfig", + }, + Object { + "fields": null, + "name": "WpSEOConfigFilterInput", + }, + Object { + "fields": Array [ + "archive", + "metaDesc", + "metaRobotsNoindex", + "schema", + "schemaType", + "title", + ], + "name": "WpSEOContentType", + }, + Object { + "fields": Array [ + "archiveLink", + "breadcrumbTitle", + "fullHead", + "hasArchive", + "metaDesc", + "metaRobotsNoindex", + "title", + ], + "name": "WpSEOContentTypeArchive", + }, + Object { + "fields": null, + "name": "WpSEOContentTypeArchiveFilterInput", + }, + Object { + "fields": null, + "name": "WpSEOContentTypeFilterInput", + }, + Object { + "fields": Array [ + "actionMonitorAction", + "blockEditorPreview", + "mediaItem", + "page", + "post", + "reusableBlock", + "translationFilterTest", + "typeLimit0Test", + "typeLimitTest", + ], + "name": "WpSEOContentTypes", + }, + Object { + "fields": null, + "name": "WpSEOContentTypesFilterInput", + }, + Object { + "fields": Array [ + "defaultImage", + "frontPage", + ], + "name": "WpSEOOpenGraph", + }, + Object { + "fields": null, + "name": "WpSEOOpenGraphFilterInput", + }, + Object { + "fields": Array [ + "description", + "image", + "title", + ], + "name": "WpSEOOpenGraphFrontPage", + }, + Object { + "fields": null, + "name": "WpSEOOpenGraphFrontPageFilterInput", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "WpSEOPageInfoSchema", + }, + Object { + "fields": null, + "name": "WpSEOPageInfoSchemaFilterInput", + }, + Object { + "fields": Array [ + "text", + "url", + ], + "name": "WpSEOPostTypeBreadcrumbs", + }, + Object { + "fields": null, + "name": "WpSEOPostTypeBreadcrumbsFilterInput", + }, + Object { + "fields": null, + "name": "WpSEOPostTypeBreadcrumbsFilterListInput", + }, + Object { + "fields": Array [ + "articleType", + "pageType", + "raw", + ], + "name": "WpSEOPostTypeSchema", + }, + Object { + "fields": null, + "name": "WpSEOPostTypeSchemaFilterInput", + }, + Object { + "fields": Array [ + "format", + "origin", + "target", + "type", + ], + "name": "WpSEORedirect", + }, + Object { + "fields": null, + "name": "WpSEORedirectFilterInput", + }, + Object { + "fields": null, + "name": "WpSEORedirectFilterListInput", + }, + Object { + "fields": Array [ + "companyLogo", + "companyName", + "companyOrPerson", + "inLanguage", + "logo", + "personLogo", + "personName", + "siteName", + "siteUrl", + "wordpressSiteName", + ], + "name": "WpSEOSchema", + }, + Object { + "fields": null, + "name": "WpSEOSchemaFilterInput", + }, + Object { + "fields": Array [ + "facebook", + "instagram", + "linkedIn", + "mySpace", + "pinterest", + "twitter", + "wikipedia", + "youTube", + ], + "name": "WpSEOSocial", + }, + Object { + "fields": Array [ + "defaultImage", + "url", + ], + "name": "WpSEOSocialFacebook", + }, + Object { + "fields": null, + "name": "WpSEOSocialFacebookFilterInput", + }, + Object { + "fields": null, + "name": "WpSEOSocialFilterInput", + }, + Object { + "fields": Array [ + "url", + ], + "name": "WpSEOSocialInstagram", + }, + Object { + "fields": null, + "name": "WpSEOSocialInstagramFilterInput", + }, + Object { + "fields": Array [ + "url", + ], + "name": "WpSEOSocialLinkedIn", + }, + Object { + "fields": null, + "name": "WpSEOSocialLinkedInFilterInput", + }, + Object { + "fields": Array [ + "url", + ], + "name": "WpSEOSocialMySpace", + }, + Object { + "fields": null, + "name": "WpSEOSocialMySpaceFilterInput", + }, + Object { + "fields": Array [ + "metaTag", + "url", + ], + "name": "WpSEOSocialPinterest", + }, + Object { + "fields": null, + "name": "WpSEOSocialPinterestFilterInput", + }, + Object { + "fields": Array [ + "cardType", + "username", + ], + "name": "WpSEOSocialTwitter", + }, + Object { + "fields": null, + "name": "WpSEOSocialTwitterFilterInput", + }, + Object { + "fields": Array [ + "url", + ], + "name": "WpSEOSocialWikipedia", + }, + Object { + "fields": null, + "name": "WpSEOSocialWikipediaFilterInput", + }, + Object { + "fields": Array [ + "url", + ], + "name": "WpSEOSocialYoutube", + }, + Object { + "fields": null, + "name": "WpSEOSocialYoutubeFilterInput", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "WpSEOTaxonomySchema", + }, + Object { + "fields": null, + "name": "WpSEOTaxonomySchemaFilterInput", + }, + Object { + "fields": Array [ + "fullHead", + "metaDesc", + "metaRobotsNofollow", + "metaRobotsNoindex", + "schema", + "social", + "title", + ], + "name": "WpSEOUser", + }, + Object { + "fields": null, + "name": "WpSEOUserFilterInput", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "WpSEOUserSchema", + }, + Object { + "fields": null, + "name": "WpSEOUserSchemaFilterInput", + }, + Object { + "fields": Array [ + "facebook", + "instagram", + "linkedIn", + "mySpace", + "pinterest", + "soundCloud", + "twitter", + "wikipedia", + "youTube", + ], + "name": "WpSEOUserSocial", + }, + Object { + "fields": null, + "name": "WpSEOUserSocialFilterInput", + }, + Object { + "fields": Array [ + "baiduVerify", + "googleVerify", + "msVerify", + "yandexVerify", + ], + "name": "WpSEOWebmaster", + }, + Object { + "fields": null, + "name": "WpSEOWebmasterFilterInput", + }, + Object { + "fields": Array [ + "discussionSettingsDefaultCommentStatus", + "discussionSettingsDefaultPingStatus", + "generalSettingsDateFormat", + "generalSettingsDescription", + "generalSettingsEmail", + "generalSettingsLanguage", + "generalSettingsStartOfWeek", + "generalSettingsTimeFormat", + "generalSettingsTimezone", + "generalSettingsTitle", + "generalSettingsUrl", + "readingSettingsPostsPerPage", + "writingSettingsDefaultCategory", + "writingSettingsDefaultPostFormat", + "writingSettingsUseSmilies", + ], + "name": "WpSettings", + }, + Object { + "fields": null, + "name": "WpSettingsFilterInput", + }, + Object { + "fields": null, + "name": "WpSortInput", + }, + Object { + "fields": Array [ + "contentNodes", + "count", + "databaseId", + "description", + "id", + "link", + "name", + "posts", + "seo", + "slug", + "taxonomy", + "termGroupId", + "termTaxonomyId", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTag", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTagConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTagEdge", + }, + Object { + "fields": null, + "name": "WpTagFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTagFilterInput", + }, + Object { + "fields": null, + "name": "WpTagFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTagGroupConnection", + }, + Object { + "fields": null, + "name": "WpTagSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpTagToContentNodeConnection", + }, + Object { + "fields": null, + "name": "WpTagToContentNodeConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpTagToPostConnection", + }, + Object { + "fields": null, + "name": "WpTagToPostConnectionFilterInput", + }, + Object { + "fields": Array [ + "node", + ], + "name": "WpTagToTaxonomyConnectionEdge", + }, + Object { + "fields": null, + "name": "WpTagToTaxonomyConnectionEdgeFilterInput", + }, + Object { + "fields": Array [ + "archivePath", + "connectedContentTypes", + "description", + "graphqlPluralName", + "graphqlSingleName", + "hierarchical", + "id", + "label", + "name", + "public", + "restBase", + "restControllerClass", + "showCloud", + "showInAdminColumn", + "showInGraphql", + "showInMenu", + "showInNavMenus", + "showInQuickEdit", + "showInRest", + "showUi", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTaxonomy", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTaxonomyConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTaxonomyEdge", + }, + Object { + "fields": null, + "name": "WpTaxonomyFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTaxonomyFilterInput", + }, + Object { + "fields": null, + "name": "WpTaxonomyFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTaxonomyGroupConnection", + }, + Object { + "fields": Array [ + "breadcrumbs", + "canonical", + "cornerstone", + "focuskw", + "fullHead", + "metaDesc", + "metaKeywords", + "metaRobotsNofollow", + "metaRobotsNoindex", + "opengraphAuthor", + "opengraphDescription", + "opengraphImage", + "opengraphModifiedTime", + "opengraphPublishedTime", + "opengraphPublisher", + "opengraphSiteName", + "opengraphTitle", + "opengraphType", + "opengraphUrl", + "schema", + "title", + "twitterDescription", + "twitterImage", + "twitterTitle", + ], + "name": "WpTaxonomySEO", + }, + Object { + "fields": null, + "name": "WpTaxonomySEOFilterInput", + }, + Object { + "fields": null, + "name": "WpTaxonomySortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpTaxonomyToContentTypeConnection", + }, + Object { + "fields": null, + "name": "WpTaxonomyToContentTypeConnectionFilterInput", + }, + Object { + "fields": Array [ + "count", + "databaseId", + "description", + "id", + "link", + "name", + "slug", + "termGroupId", + "termTaxonomyId", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTermNode", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTermNodeConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTermNodeEdge", + }, + Object { + "fields": null, + "name": "WpTermNodeFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTermNodeFilterInput", + }, + Object { + "fields": null, + "name": "WpTermNodeFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTermNodeGroupConnection", + }, + Object { + "fields": null, + "name": "WpTermNodeSortInput", + }, + Object { + "fields": null, + "name": "WpTermObjectUnion", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + "guid", + "id", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTranslationFilterTest", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTranslationFilterTestConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTranslationFilterTestEdge", + }, + Object { + "fields": null, + "name": "WpTranslationFilterTestFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTranslationFilterTestFilterInput", + }, + Object { + "fields": null, + "name": "WpTranslationFilterTestFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTranslationFilterTestGroupConnection", + }, + Object { + "fields": null, + "name": "WpTranslationFilterTestSortInput", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + "guid", + "id", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTypeLimit0Test", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTypeLimit0TestConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTypeLimit0TestEdge", + }, + Object { + "fields": null, + "name": "WpTypeLimit0TestFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTypeLimit0TestFilterInput", + }, + Object { + "fields": null, + "name": "WpTypeLimit0TestFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTypeLimit0TestGroupConnection", + }, + Object { + "fields": null, + "name": "WpTypeLimit0TestSortInput", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "enclosure", + "featuredImage", + "featuredImageDatabaseId", + "featuredImageId", + "guid", + "id", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "previewBlocks", + "previewBlocksJSON", + "seo", + "slug", + "status", + "template", + "title", + "uri", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpTypeLimitTest", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpTypeLimitTestConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpTypeLimitTestEdge", + }, + Object { + "fields": null, + "name": "WpTypeLimitTestFieldsEnum", + }, + Object { + "fields": null, + "name": "WpTypeLimitTestFilterInput", + }, + Object { + "fields": null, + "name": "WpTypeLimitTestFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpTypeLimitTestGroupConnection", + }, + Object { + "fields": null, + "name": "WpTypeLimitTestSortInput", + }, + Object { + "fields": Array [ + "id", + "uri", + ], + "name": "WpUniformResourceIdentifiable", + }, + Object { + "fields": Array [ + "avatar", + "blockEditorPreviews", + "capabilities", + "comments", + "databaseId", + "description", + "firstName", + "id", + "lastName", + "locale", + "name", + "nicename", + "nickname", + "pages", + "posts", + "roles", + "seo", + "slug", + "translationFilterTests", + "typeLimit0Tests", + "typeLimitTests", + "uri", + "url", + "username", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpUser", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpUserConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpUserEdge", + }, + Object { + "fields": null, + "name": "WpUserFieldsEnum", + }, + Object { + "fields": null, + "name": "WpUserFilterInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpUserGroupConnection", + }, + Object { + "fields": Array [ + "capabilities", + "displayName", + "id", + "name", + "nodeType", + "parent", + "children", + "internal", + ], + "name": "WpUserRole", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "distinct", + "max", + "min", + "sum", + "group", + ], + "name": "WpUserRoleConnection", + }, + Object { + "fields": Array [ + "next", + "node", + "previous", + ], + "name": "WpUserRoleEdge", + }, + Object { + "fields": null, + "name": "WpUserRoleFieldsEnum", + }, + Object { + "fields": null, + "name": "WpUserRoleFilterInput", + }, + Object { + "fields": null, + "name": "WpUserRoleFilterListInput", + }, + Object { + "fields": Array [ + "totalCount", + "edges", + "nodes", + "pageInfo", + "field", + "fieldValue", + ], + "name": "WpUserRoleGroupConnection", + }, + Object { + "fields": null, + "name": "WpUserRoleSortInput", + }, + Object { + "fields": null, + "name": "WpUserSortInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToBlockEditorPreviewConnection", + }, + Object { + "fields": null, + "name": "WpUserToBlockEditorPreviewConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToCommentConnection", + }, + Object { + "fields": null, + "name": "WpUserToCommentConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToPageConnection", + }, + Object { + "fields": null, + "name": "WpUserToPageConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToPostConnection", + }, + Object { + "fields": null, + "name": "WpUserToPostConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToTranslationFilterTestConnection", + }, + Object { + "fields": null, + "name": "WpUserToTranslationFilterTestConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToTypeLimit0TestConnection", + }, + Object { + "fields": null, + "name": "WpUserToTypeLimit0TestConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToTypeLimitTestConnection", + }, + Object { + "fields": null, + "name": "WpUserToTypeLimitTestConnectionFilterInput", + }, + Object { + "fields": Array [ + "nodes", + ], + "name": "WpUserToUserRoleConnection", + }, + Object { + "fields": null, + "name": "WpUserToUserRoleConnectionFilterInput", + }, + Object { + "fields": Array [ + "arePrettyPermalinksEnabled", + "isPreviewFrontendOnline", + ], + "name": "WpWPGatsby", + }, + Object { + "fields": null, + "name": "WpWPGatsbyFilterInput", + }, + Object { + "fields": Array [ + "defaultCategory", + "defaultPostFormat", + "useSmilies", + ], + "name": "WpWritingSettings", + }, + Object { + "fields": null, + "name": "WpWritingSettingsFilterInput", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpYoastFaqBlock", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + ], + "name": "WpYoastFaqBlockAttributes", + }, + Object { + "fields": null, + "name": "WpYoastFaqBlockAttributesUnion", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + ], + "name": "WpYoastFaqBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpYoastHowToBlock", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "WpYoastHowToBlockAttributes", + }, + Object { + "fields": null, + "name": "WpYoastHowToBlockAttributesUnion", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "WpYoastHowToBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "WpYoastHowToBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "WpYoastSeoBreadcrumbsBlock", + }, + Object { + "fields": Array [ + "className", + ], + "name": "WpYoastSeoBreadcrumbsBlockAttributes", + }, +] +`; + +exports[`[gatsby-source-wordpress] Run tests on develop build schema integrity hasn't altered the remote WPGraphQL schema 1`] = ` +Array [ + Object { + "fields": Array [ + "city", + "country", + "countryShort", + "latitude", + "longitude", + "placeId", + "postCode", + "state", + "stateShort", + "streetAddress", + "streetName", + "streetNumber", + "zoom", + ], + "name": "ACF_GoogleMap", + }, + Object { + "fields": Array [ + "target", + "title", + "url", + ], + "name": "ACF_Link", + }, + Object { + "fields": Array [ + "actionType", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "editingLockedBy", + "enclosure", + "enqueuedScripts", + "enqueuedStylesheets", + "guid", + "id", + "isPreview", + "isRestricted", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "preview", + "previewData", + "previewRevisionDatabaseId", + "previewRevisionId", + "referencedNodeGlobalRelayID", + "referencedNodeID", + "referencedNodePluralName", + "referencedNodeSingularName", + "referencedNodeStatus", + "seo", + "slug", + "status", + "template", + "terms", + "title", + "uri", + ], + "name": "ActionMonitorAction", + }, + Object { + "fields": null, + "name": "ActionMonitorActionIdType", + }, + Object { + "fields": Array [ + "node", + ], + "name": "ActionMonitorActionToPreviewConnectionEdge", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "ActionMonitorActionToTermNodeConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "ActionMonitorActionToTermNodeConnectionEdge", + }, + Object { + "fields": null, + "name": "ActionMonitorActionToTermNodeConnectionWhereArgs", + }, + Object { + "fields": Array [ + "default", + "extraAttr", + "forceDefault", + "foundAvatar", + "height", + "isRestricted", + "rating", + "scheme", + "size", + "url", + "width", + ], + "name": "Avatar", + }, + Object { + "fields": null, + "name": "AvatarRatingEnum", + }, + Object { + "fields": Array [ + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "Block", + }, + Object { + "fields": Array [ + "blocks", + "blocksJSON", + "previewBlocks", + "previewBlocksJSON", + ], + "name": "BlockEditorContentNode", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "BlockEditorContentNodeConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "BlockEditorContentNodeConnectionEdge", + }, + Object { + "fields": null, + "name": "BlockEditorContentNodeConnectionWhereArgs", + }, + Object { + "fields": Array [ + "author", + "authorDatabaseId", + "authorId", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "editingLockedBy", + "enclosure", + "enqueuedScripts", + "enqueuedStylesheets", + "guid", + "id", + "isPreview", + "isRestricted", + "lastEditedBy", + "lastUpdateTime", + "link", + "modified", + "modifiedGmt", + "preview", + "previewRevisionDatabaseId", + "previewRevisionId", + "previewed", + "previewedDatabaseId", + "previewedParentDatabaseId", + "seo", + "slug", + "status", + "template", + "title", + "uri", + ], + "name": "BlockEditorPreview", + }, + Object { + "fields": null, + "name": "BlockEditorPreviewIdType", + }, + Object { + "fields": Array [ + "node", + ], + "name": "BlockEditorPreviewToPreviewConnectionEdge", + }, + Object { + "fields": null, + "name": "BlockUnion", + }, + Object { + "fields": null, + "name": "Boolean", + }, + Object { + "fields": Array [ + "ancestors", + "children", + "contentNodes", + "count", + "databaseId", + "description", + "enqueuedScripts", + "enqueuedStylesheets", + "id", + "isRestricted", + "link", + "name", + "parent", + "parentDatabaseId", + "parentId", + "posts", + "seo", + "slug", + "taxonomy", + "termGroupId", + "termTaxonomyId", + "uri", + ], + "name": "Category", + }, + Object { + "fields": null, + "name": "CategoryIdType", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "CategoryToAncestorsCategoryConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "CategoryToAncestorsCategoryConnectionEdge", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "CategoryToCategoryConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "CategoryToCategoryConnectionEdge", + }, + Object { + "fields": null, + "name": "CategoryToCategoryConnectionWhereArgs", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "CategoryToContentNodeConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "CategoryToContentNodeConnectionEdge", + }, + Object { + "fields": null, + "name": "CategoryToContentNodeConnectionWhereArgs", + }, + Object { + "fields": Array [ + "node", + ], + "name": "CategoryToParentCategoryConnectionEdge", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "CategoryToPostConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "CategoryToPostConnectionEdge", + }, + Object { + "fields": null, + "name": "CategoryToPostConnectionWhereArgs", + }, + Object { + "fields": Array [ + "node", + ], + "name": "CategoryToTaxonomyConnectionEdge", + }, + Object { + "fields": Array [ + "agent", + "approved", + "author", + "authorIp", + "commentedOn", + "content", + "databaseId", + "date", + "dateGmt", + "id", + "isRestricted", + "karma", + "parent", + "parentDatabaseId", + "parentId", + "replies", + "type", + ], + "name": "Comment", + }, + Object { + "fields": Array [ + "databaseId", + "email", + "id", + "isRestricted", + "name", + "url", + ], + "name": "CommentAuthor", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "CommentToCommentConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "CommentToCommentConnectionEdge", + }, + Object { + "fields": null, + "name": "CommentToCommentConnectionWhereArgs", + }, + Object { + "fields": Array [ + "node", + ], + "name": "CommentToCommenterConnectionEdge", + }, + Object { + "fields": Array [ + "node", + ], + "name": "CommentToContentNodeConnectionEdge", + }, + Object { + "fields": Array [ + "node", + ], + "name": "CommentToParentCommentConnectionEdge", + }, + Object { + "fields": null, + "name": "CommentToParentCommentConnectionWhereArgs", + }, + Object { + "fields": Array [ + "databaseId", + "email", + "id", + "isRestricted", + "name", + "url", + ], + "name": "Commenter", + }, + Object { + "fields": null, + "name": "CommentsConnectionOrderbyEnum", + }, + Object { + "fields": Array [ + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "editingLockedBy", + "enclosure", + "enqueuedScripts", + "enqueuedStylesheets", + "guid", + "id", + "isPreview", + "isRestricted", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "previewRevisionDatabaseId", + "previewRevisionId", + "slug", + "status", + "template", + "uri", + ], + "name": "ContentNode", + }, + Object { + "fields": null, + "name": "ContentNodeIdTypeEnum", + }, + Object { + "fields": Array [ + "node", + ], + "name": "ContentNodeToContentTypeConnectionEdge", + }, + Object { + "fields": Array [ + "node", + ], + "name": "ContentNodeToEditLastConnectionEdge", + }, + Object { + "fields": Array [ + "lockTimestamp", + "node", + ], + "name": "ContentNodeToEditLockConnectionEdge", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "ContentNodeToEnqueuedScriptConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "ContentNodeToEnqueuedScriptConnectionEdge", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "ContentNodeToEnqueuedStylesheetConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "ContentNodeToEnqueuedStylesheetConnectionEdge", + }, + Object { + "fields": null, + "name": "ContentRevisionUnion", + }, + Object { + "fields": Array [ + "templateName", + ], + "name": "ContentTemplate", + }, + Object { + "fields": Array [ + "archivePath", + "canExport", + "connectedTaxonomies", + "contentNodes", + "deleteWithUser", + "description", + "excludeFromSearch", + "graphqlPluralName", + "graphqlSingleName", + "hasArchive", + "hierarchical", + "id", + "isFrontPage", + "isPostsPage", + "isRestricted", + "label", + "labels", + "menuIcon", + "menuPosition", + "name", + "public", + "publiclyQueryable", + "restBase", + "restControllerClass", + "showInAdminBar", + "showInGraphql", + "showInMenu", + "showInNavMenus", + "showInRest", + "showUi", + "uri", + ], + "name": "ContentType", + }, + Object { + "fields": null, + "name": "ContentTypeEnum", + }, + Object { + "fields": null, + "name": "ContentTypeIdTypeEnum", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "ContentTypeToContentNodeConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "ContentTypeToContentNodeConnectionEdge", + }, + Object { + "fields": null, + "name": "ContentTypeToContentNodeConnectionWhereArgs", + }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "ContentTypeToTaxonomyConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "ContentTypeToTaxonomyConnectionEdge", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreArchivesBlock", + }, + Object { + "fields": Array [ + "align", + "className", + "displayAsDropdown", + "showPostCounts", + ], + "name": "CoreArchivesBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreAudioBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "autoplay", + "caption", + "className", + "id", + "loop", + "preload", + "src", + ], + "name": "CoreAudioBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreAudioBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "anchor", + "autoplay", + "caption", + "className", + "id", + "loop", + "preload", + "src", + ], + "name": "CoreAudioBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "reusableBlock", + "saveContent", + ], + "name": "CoreBlock", + }, + Object { + "fields": Array [ + "ref", + ], + "name": "CoreBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreButtonBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreButtonBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV4Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV5Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "borderRadius", + "className", + "gradient", + "linkTarget", + "placeholder", + "rel", + "text", + "textColor", + "title", + "url", + ], + "name": "CoreButtonBlockDeprecatedV6Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreButtonsBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "className", + ], + "name": "CoreButtonsBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreCalendarBlock", + }, + Object { + "fields": Array [ + "align", + "className", + "month", + "year", + ], + "name": "CoreCalendarBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreCategoriesBlock", + }, + Object { + "fields": Array [ + "align", + "className", + "displayAsDropdown", + "showHierarchy", + "showPostCounts", + ], + "name": "CoreCategoriesBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreCodeBlock", + }, + Object { + "fields": Array [ + "anchor", + "className", + "content", + ], + "name": "CoreCodeBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreColumnBlock", + }, + Object { + "fields": Array [ + "anchor", + "className", + "templateLock", + "verticalAlignment", + "width", + ], + "name": "CoreColumnBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreColumnBlockAttributesUnion", + }, + Object { + "fields": Array [ + "anchor", + "className", + "templateLock", + "verticalAlignment", + "width", + ], + "name": "CoreColumnBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreColumnsBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "CoreColumnsBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreColumnsBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "CoreColumnsBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "CoreColumnsBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "textColor", + "verticalAlignment", + ], + "name": "CoreColumnsBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreCoverBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreCoverBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockDeprecatedV4Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundType", + "className", + "contentPosition", + "customGradient", + "customOverlayColor", + "dimRatio", + "gradient", + "hasParallax", + "id", + "isRepeated", + "minHeight", + "minHeightUnit", + "overlayColor", + "url", + ], + "name": "CoreCoverBlockDeprecatedV5Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreEmbedBlock", + }, + Object { + "fields": Array [ + "align", + "allowResponsive", + "caption", + "className", + "previewable", + "providerNameSlug", + "responsive", + "type", + "url", + ], + "name": "CoreEmbedBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreEmbedBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "allowResponsive", + "caption", + "className", + "previewable", + "providerNameSlug", + "responsive", + "type", + "url", + ], + "name": "CoreEmbedBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreFileBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "className", + "downloadButtonText", + "fileName", + "href", + "id", + "showDownloadButton", + "textLinkHref", + "textLinkTarget", + ], + "name": "CoreFileBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreFreeformBlock", + }, + Object { + "fields": Array [ + "content", + ], + "name": "CoreFreeformBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreGalleryBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockAttributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockAttributesImages", + }, + Object { + "fields": null, + "name": "CoreGalleryBlockAttributesUnion", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockDeprecatedV1AttributesImages", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockDeprecatedV2AttributesImages", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockDeprecatedV3AttributesImages", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockDeprecatedV4Attributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockDeprecatedV4AttributesImages", + }, + Object { + "fields": Array [ + "align", + "anchor", + "caption", + "className", + "columns", + "ids", + "imageCrop", + "images", + "linkTo", + "sizeSlug", + ], + "name": "CoreGalleryBlockDeprecatedV5Attributes", + }, + Object { + "fields": Array [ + "alt", + "caption", + "fullUrl", + "id", + "link", + "url", + ], + "name": "CoreGalleryBlockDeprecatedV5AttributesImages", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreGroupBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpTypeLimitTestConnection", + "name": "CoreGroupBlockAttributes", + }, + Object { + "fields": null, + "name": "CoreGroupBlockAttributesUnion", }, Object { "fields": Array [ - "next", - "node", - "previous", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", ], - "name": "WpTypeLimitTestEdge", + "name": "CoreGroupBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpTypeLimitTestFieldsEnum", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", + ], + "name": "CoreGroupBlockDeprecatedV2Attributes", }, Object { - "fields": null, - "name": "WpTypeLimitTestFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "tagName", + "templateLock", + "textColor", + ], + "name": "CoreGroupBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpTypeLimitTestFilterListInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreHeadingBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpTypeLimitTestGroupConnection", + "name": "CoreHeadingBlockAttributes", }, Object { "fields": null, - "name": "WpTypeLimitTestSortInput", + "name": "CoreHeadingBlockAttributesUnion", }, Object { "fields": Array [ - "id", - "uri", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", ], - "name": "WpUniformResourceIdentifiable", + "name": "CoreHeadingBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "avatar", - "capabilities", - "comments", - "databaseId", - "description", - "firstName", - "id", - "lastName", - "locale", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", + ], + "name": "CoreHeadingBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", + ], + "name": "CoreHeadingBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "fontSize", + "level", + "placeholder", + "textAlign", + "textColor", + ], + "name": "CoreHeadingBlockDeprecatedV4Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "nicename", - "nickname", - "pages", - "posts", - "roles", - "slug", - "translationFilterTests", - "typeLimit0Tests", - "typeLimitTests", - "uri", - "url", - "username", - "nodeType", - "parent", - "children", - "internal", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUser", + "name": "CoreHtmlBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "content", ], - "name": "WpUserConnection", + "name": "CoreHtmlBlockAttributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUserEdge", + "name": "CoreImageBlock", }, Object { - "fields": null, - "name": "WpUserFieldsEnum", + "fields": Array [ + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", + ], + "name": "CoreImageBlockAttributes", }, Object { "fields": null, - "name": "WpUserFilterInput", + "name": "CoreImageBlockAttributesUnion", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", ], - "name": "WpUserGroupConnection", + "name": "CoreImageBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "capabilities", - "displayName", + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", + "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", + ], + "name": "CoreImageBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "alt", + "anchor", + "caption", + "className", + "height", + "href", "id", + "linkClass", + "linkDestination", + "linkTarget", + "rel", + "sizeSlug", + "title", + "url", + "width", + ], + "name": "CoreImageBlockDeprecatedV3Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "nodeType", - "parent", - "children", - "internal", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUserRole", + "name": "CoreLatestCommentsBlock", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "distinct", - "max", - "min", - "sum", - "group", + "align", + "className", + "commentsToShow", + "displayAvatar", + "displayDate", + "displayExcerpt", ], - "name": "WpUserRoleConnection", + "name": "CoreLatestCommentsBlockAttributes", }, Object { "fields": Array [ - "next", - "node", - "previous", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUserRoleEdge", + "name": "CoreLatestPostsBlock", }, Object { - "fields": null, - "name": "WpUserRoleFieldsEnum", + "fields": Array [ + "addLinkToFeaturedImage", + "align", + "categories", + "className", + "columns", + "displayAuthor", + "displayFeaturedImage", + "displayPostContent", + "displayPostContentRadio", + "displayPostDate", + "excerptLength", + "featuredImageAlign", + "featuredImageSizeHeight", + "featuredImageSizeSlug", + "featuredImageSizeWidth", + "order", + "orderBy", + "postLayout", + "postsToShow", + "selectedAuthor", + ], + "name": "CoreLatestPostsBlockAttributes", }, Object { "fields": null, - "name": "WpUserRoleFilterInput", + "name": "CoreLatestPostsBlockAttributesUnion", }, Object { - "fields": null, - "name": "WpUserRoleFilterListInput", + "fields": Array [ + "addLinkToFeaturedImage", + "align", + "categories", + "className", + "columns", + "displayAuthor", + "displayFeaturedImage", + "displayPostContent", + "displayPostContentRadio", + "displayPostDate", + "excerptLength", + "featuredImageAlign", + "featuredImageSizeHeight", + "featuredImageSizeSlug", + "featuredImageSizeWidth", + "order", + "orderBy", + "postLayout", + "postsToShow", + "selectedAuthor", + ], + "name": "CoreLatestPostsBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "totalCount", - "edges", - "nodes", - "pageInfo", - "field", - "fieldValue", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUserRoleGroupConnection", + "name": "CoreListBlock", }, Object { - "fields": null, - "name": "WpUserRoleSortInput", + "fields": Array [ + "anchor", + "backgroundColor", + "className", + "gradient", + "ordered", + "reversed", + "start", + "textColor", + "type", + "values", + ], + "name": "CoreListBlockAttributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreMediaTextBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "CoreMediaTextBlockAttributes", }, Object { "fields": null, - "name": "WpUserSortInput", + "name": "CoreMediaTextBlockAttributesUnion", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "CoreMediaTextBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", + ], + "name": "CoreMediaTextBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "gradient", + "href", + "imageFill", + "isStackedOnMobile", + "linkClass", + "linkDestination", + "linkTarget", + "mediaAlt", + "mediaId", + "mediaLink", + "mediaPosition", + "mediaSizeSlug", + "mediaType", + "mediaUrl", + "mediaWidth", + "rel", + "textColor", + "verticalAlignment", ], - "name": "WpUserToCommentConnection", + "name": "CoreMediaTextBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpUserToCommentConnectionFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreMissingBlock", }, Object { "fields": Array [ - "nodes", + "originalContent", + "originalName", + "originalUndelimitedContent", ], - "name": "WpUserToPageConnection", + "name": "CoreMissingBlockAttributes", }, Object { - "fields": null, - "name": "WpUserToPageConnectionFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreMoreBlock", }, Object { "fields": Array [ - "nodes", + "customText", + "noTeaser", ], - "name": "WpUserToPostConnection", + "name": "CoreMoreBlockAttributes", }, Object { - "fields": null, - "name": "WpUserToPostConnectionFilterInput", + "fields": Array [ + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreNextpageBlock", }, Object { "fields": Array [ - "nodes", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "WpUserToTranslationFilterTestConnection", + "name": "CoreParagraphBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", + ], + "name": "CoreParagraphBlockAttributes", }, Object { "fields": null, - "name": "WpUserToTranslationFilterTestConnectionFilterInput", + "name": "CoreParagraphBlockAttributesUnion", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpUserToTypeLimit0TestConnection", + "name": "CoreParagraphBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "WpUserToTypeLimit0TestConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", + ], + "name": "CoreParagraphBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpUserToTypeLimitTestConnection", + "name": "CoreParagraphBlockDeprecatedV3Attributes", }, Object { - "fields": null, - "name": "WpUserToTypeLimitTestConnectionFilterInput", + "fields": Array [ + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", + ], + "name": "CoreParagraphBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "nodes", + "align", + "anchor", + "backgroundColor", + "className", + "content", + "direction", + "dropCap", + "fontSize", + "placeholder", + "textColor", ], - "name": "WpUserToUserRoleConnection", + "name": "CoreParagraphBlockDeprecatedV5Attributes", }, Object { - "fields": null, - "name": "WpUserToUserRoleConnectionFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CorePreformattedBlock", }, Object { "fields": Array [ - "arePrettyPermalinksEnabled", - "isPreviewFrontendOnline", + "anchor", + "className", + "content", ], - "name": "WpWPGatsby", + "name": "CorePreformattedBlockAttributes", }, Object { - "fields": null, - "name": "WpWPGatsbyFilterInput", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CorePullquoteBlock", }, Object { "fields": Array [ - "defaultCategory", - "defaultPostFormat", - "useSmilies", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "WpWritingSettings", + "name": "CorePullquoteBlockAttributes", }, Object { "fields": null, - "name": "WpWritingSettingsFilterInput", + "name": "CorePullquoteBlockAttributesUnion", }, -] -`; - -exports[`[gatsby-source-wordpress] Run tests on develop build schema integrity hasn't altered the remote WPGraphQL schema 1`] = ` -Array [ Object { "fields": Array [ - "city", - "country", - "countryShort", - "latitude", - "longitude", - "placeId", - "postCode", - "state", - "stateShort", - "streetAddress", - "streetName", - "streetNumber", - "zoom", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "ACF_GoogleMap", + "name": "CorePullquoteBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "target", - "title", - "url", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "ACF_Link", + "name": "CorePullquoteBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "actionType", - "content", - "contentType", - "databaseId", - "date", - "dateGmt", - "desiredSlug", - "editingLockedBy", - "enclosure", - "enqueuedScripts", - "enqueuedStylesheets", - "guid", - "id", - "isPreview", - "isRestricted", - "lastEditedBy", - "link", - "modified", - "modifiedGmt", - "preview", - "previewData", - "previewRevisionDatabaseId", - "previewRevisionId", - "referencedNodeGlobalRelayID", - "referencedNodeID", - "referencedNodePluralName", - "referencedNodeSingularName", - "referencedNodeStatus", - "slug", - "status", - "template", - "title", - "uri", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "ActionMonitorAction", - }, - Object { - "fields": null, - "name": "ActionMonitorActionIdType", + "name": "CorePullquoteBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "citation", + "className", + "customMainColor", + "customTextColor", + "mainColor", + "textColor", + "value", ], - "name": "ActionMonitorActionToPreviewConnectionEdge", + "name": "CorePullquoteBlockDeprecatedV4Attributes", }, Object { "fields": Array [ - "default", - "extraAttr", - "forceDefault", - "foundAvatar", - "height", - "isRestricted", - "rating", - "scheme", - "size", - "url", - "width", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "Avatar", + "name": "CoreQuoteBlock", }, Object { - "fields": null, - "name": "AvatarRatingEnum", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "value", + ], + "name": "CoreQuoteBlockAttributes", }, Object { "fields": null, - "name": "Boolean", + "name": "CoreQuoteBlockAttributesUnion", }, Object { "fields": Array [ - "ancestors", - "children", - "contentNodes", - "count", - "databaseId", - "description", - "enqueuedScripts", - "enqueuedStylesheets", - "id", - "isRestricted", - "link", - "name", - "parent", - "parentDatabaseId", - "parentId", - "posts", - "slug", - "taxonomy", - "termGroupId", - "termTaxonomyId", - "uri", + "align", + "anchor", + "citation", + "className", + "value", ], - "name": "Category", + "name": "CoreQuoteBlockDeprecatedV1Attributes", }, Object { - "fields": null, - "name": "CategoryIdType", + "fields": Array [ + "align", + "anchor", + "citation", + "className", + "value", + ], + "name": "CoreQuoteBlockDeprecatedV2Attributes", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "align", + "anchor", + "citation", + "className", + "value", ], - "name": "CategoryToAncestorsCategoryConnection", + "name": "CoreQuoteBlockDeprecatedV3Attributes", }, Object { "fields": Array [ - "cursor", - "node", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "CategoryToAncestorsCategoryConnectionEdge", + "name": "CoreRssBlock", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "align", + "blockLayout", + "className", + "columns", + "displayAuthor", + "displayDate", + "displayExcerpt", + "excerptLength", + "feedURL", + "itemsToShow", ], - "name": "CategoryToCategoryConnection", + "name": "CoreRssBlockAttributes", }, Object { "fields": Array [ - "cursor", - "node", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "CategoryToCategoryConnectionEdge", + "name": "CoreSearchBlock", }, Object { - "fields": null, - "name": "CategoryToCategoryConnectionWhereArgs", + "fields": Array [ + "align", + "buttonPosition", + "buttonText", + "buttonUseIcon", + "className", + "label", + "placeholder", + "showLabel", + "width", + "widthUnit", + ], + "name": "CoreSearchBlockAttributes", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "CategoryToContentNodeConnection", + "name": "CoreSeparatorBlock", }, Object { "fields": Array [ - "cursor", - "node", + "align", + "anchor", + "className", + "color", + "customColor", ], - "name": "CategoryToContentNodeConnectionEdge", + "name": "CoreSeparatorBlockAttributes", }, Object { - "fields": null, - "name": "CategoryToContentNodeConnectionWhereArgs", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreShortcodeBlock", }, Object { "fields": Array [ - "node", + "text", ], - "name": "CategoryToParentCategoryConnectionEdge", + "name": "CoreShortcodeBlockAttributes", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "CategoryToPostConnection", + "name": "CoreSocialLinkBlock", }, Object { "fields": Array [ - "cursor", - "node", + "className", + "label", + "service", + "url", ], - "name": "CategoryToPostConnectionEdge", + "name": "CoreSocialLinkBlockAttributes", }, Object { - "fields": null, - "name": "CategoryToPostConnectionWhereArgs", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreSocialLinksBlock", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "className", + "openInNewTab", ], - "name": "CategoryToTaxonomyConnectionEdge", + "name": "CoreSocialLinksBlockAttributes", }, Object { "fields": Array [ - "agent", - "approved", - "author", - "authorIp", - "commentedOn", - "content", - "databaseId", - "date", - "dateGmt", - "id", - "isRestricted", - "karma", - "parent", - "parentDatabaseId", - "parentId", - "replies", - "type", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "Comment", + "name": "CoreSpacerBlock", }, Object { "fields": Array [ - "databaseId", - "email", - "id", - "isRestricted", - "name", - "url", + "anchor", + "className", + "height", ], - "name": "CommentAuthor", + "name": "CoreSpacerBlockAttributes", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "CommentToCommentConnection", + "name": "CoreSubheadBlock", }, Object { "fields": Array [ - "cursor", - "node", + "align", + "className", + "content", ], - "name": "CommentToCommentConnectionEdge", + "name": "CoreSubheadBlockAttributes", }, Object { - "fields": null, - "name": "CommentToCommentConnectionWhereArgs", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreTableBlock", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "backgroundColor", + "body", + "caption", + "className", + "foot", + "hasFixedLayout", + "head", ], - "name": "CommentToCommenterConnectionEdge", + "name": "CoreTableBlockAttributes", }, Object { "fields": Array [ - "node", + "cells", ], - "name": "CommentToContentNodeConnectionEdge", + "name": "CoreTableBlockAttributesBody", }, Object { "fields": Array [ - "node", + "align", + "content", + "scope", + "tag", ], - "name": "CommentToParentCommentConnectionEdge", + "name": "CoreTableBlockAttributesBodyCells", }, Object { - "fields": null, - "name": "CommentToParentCommentConnectionWhereArgs", + "fields": Array [ + "cells", + ], + "name": "CoreTableBlockAttributesFoot", }, Object { "fields": Array [ - "databaseId", - "email", - "id", - "isRestricted", - "name", - "url", + "align", + "content", + "scope", + "tag", ], - "name": "Commenter", + "name": "CoreTableBlockAttributesFootCells", }, Object { - "fields": null, - "name": "CommentsConnectionOrderbyEnum", + "fields": Array [ + "cells", + ], + "name": "CoreTableBlockAttributesHead", }, Object { "fields": Array [ - "contentType", - "databaseId", - "date", - "dateGmt", - "desiredSlug", - "editingLockedBy", - "enclosure", - "enqueuedScripts", - "enqueuedStylesheets", - "guid", - "id", - "isPreview", - "isRestricted", - "lastEditedBy", - "link", - "modified", - "modifiedGmt", - "previewRevisionDatabaseId", - "previewRevisionId", - "slug", - "status", - "template", - "uri", + "align", + "content", + "scope", + "tag", ], - "name": "ContentNode", + "name": "CoreTableBlockAttributesHeadCells", }, Object { "fields": null, - "name": "ContentNodeIdTypeEnum", + "name": "CoreTableBlockAttributesUnion", }, Object { "fields": Array [ - "node", + "align", + "anchor", + "backgroundColor", + "body", + "caption", + "className", + "foot", + "hasFixedLayout", + "head", ], - "name": "ContentNodeToContentTypeConnectionEdge", + "name": "CoreTableBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "node", + "cells", ], - "name": "ContentNodeToEditLastConnectionEdge", + "name": "CoreTableBlockDeprecatedV1AttributesBody", }, Object { "fields": Array [ - "lockTimestamp", - "node", + "align", + "content", + "scope", + "tag", ], - "name": "ContentNodeToEditLockConnectionEdge", + "name": "CoreTableBlockDeprecatedV1AttributesBodyCells", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "cells", ], - "name": "ContentNodeToEnqueuedScriptConnection", + "name": "CoreTableBlockDeprecatedV1AttributesFoot", }, Object { "fields": Array [ - "cursor", - "node", + "align", + "content", + "scope", + "tag", ], - "name": "ContentNodeToEnqueuedScriptConnectionEdge", + "name": "CoreTableBlockDeprecatedV1AttributesFootCells", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "cells", ], - "name": "ContentNodeToEnqueuedStylesheetConnection", + "name": "CoreTableBlockDeprecatedV1AttributesHead", }, Object { "fields": Array [ - "cursor", - "node", + "align", + "content", + "scope", + "tag", ], - "name": "ContentNodeToEnqueuedStylesheetConnectionEdge", + "name": "CoreTableBlockDeprecatedV1AttributesHeadCells", }, Object { - "fields": null, - "name": "ContentRevisionUnion", + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "CoreTagCloudBlock", }, Object { "fields": Array [ - "templateName", + "align", + "className", + "showTagCounts", + "taxonomy", ], - "name": "ContentTemplate", + "name": "CoreTagCloudBlockAttributes", }, Object { "fields": Array [ - "archivePath", - "canExport", - "connectedTaxonomies", - "contentNodes", - "deleteWithUser", - "description", - "excludeFromSearch", - "graphqlPluralName", - "graphqlSingleName", - "hasArchive", - "hierarchical", - "id", - "isFrontPage", - "isPostsPage", - "isRestricted", - "label", - "labels", - "menuIcon", - "menuPosition", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", "name", - "public", - "publiclyQueryable", - "restBase", - "restControllerClass", - "showInAdminBar", - "showInGraphql", - "showInMenu", - "showInNavMenus", - "showInRest", - "showUi", - "uri", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "ContentType", + "name": "CoreTextColumnsBlock", }, Object { - "fields": null, - "name": "ContentTypeEnum", + "fields": Array [ + "className", + "columns", + "content", + "width", + ], + "name": "CoreTextColumnsBlockAttributes", }, Object { - "fields": null, - "name": "ContentTypeIdTypeEnum", + "fields": Array [ + "children", + ], + "name": "CoreTextColumnsBlockAttributesContent", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "ContentTypeToContentNodeConnection", + "name": "CoreVerseBlock", }, Object { "fields": Array [ - "cursor", - "node", + "anchor", + "className", + "content", + "textAlign", ], - "name": "ContentTypeToContentNodeConnectionEdge", + "name": "CoreVerseBlockAttributes", }, Object { "fields": null, - "name": "ContentTypeToContentNodeConnectionWhereArgs", + "name": "CoreVerseBlockAttributesUnion", }, Object { "fields": Array [ - "edges", - "nodes", - "pageInfo", + "anchor", + "className", + "content", + "textAlign", ], - "name": "ContentTypeToTaxonomyConnection", + "name": "CoreVerseBlockDeprecatedV1Attributes", }, Object { "fields": Array [ - "cursor", - "node", + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", ], - "name": "ContentTypeToTaxonomyConnectionEdge", + "name": "CoreVideoBlock", + }, + Object { + "fields": Array [ + "align", + "anchor", + "autoplay", + "caption", + "className", + "controls", + "id", + "loop", + "muted", + "playsInline", + "poster", + "preload", + "src", + "tracks", + ], + "name": "CoreVideoBlockAttributes", }, Object { "fields": Array [ @@ -3587,6 +9078,17 @@ Array [ ], "name": "CreateActionMonitorActionPayload", }, + Object { + "fields": null, + "name": "CreateBlockEditorPreviewInput", + }, + Object { + "fields": Array [ + "blockEditorPreview", + "clientMutationId", + ], + "name": "CreateBlockEditorPreviewPayload", + }, Object { "fields": null, "name": "CreateCategoryInput", @@ -3654,6 +9156,17 @@ Array [ ], "name": "CreatePostPayload", }, + Object { + "fields": null, + "name": "CreateReusableBlockInput", + }, + Object { + "fields": Array [ + "reusableBlock", + "clientMutationId", + ], + "name": "CreateReusableBlockPayload", + }, Object { "fields": null, "name": "CreateTagInput", @@ -3741,6 +9254,18 @@ Array [ ], "name": "DeleteActionMonitorActionPayload", }, + Object { + "fields": null, + "name": "DeleteBlockEditorPreviewInput", + }, + Object { + "fields": Array [ + "blockEditorPreview", + "clientMutationId", + "deletedId", + ], + "name": "DeleteBlockEditorPreviewPayload", + }, Object { "fields": null, "name": "DeleteCategoryInput", @@ -3813,6 +9338,18 @@ Array [ ], "name": "DeletePostPayload", }, + Object { + "fields": null, + "name": "DeleteReusableBlockInput", + }, + Object { + "fields": Array [ + "reusableBlock", + "clientMutationId", + "deletedId", + ], + "name": "DeleteReusableBlockPayload", + }, Object { "fields": null, "name": "DeleteTagInput", @@ -4072,6 +9609,7 @@ Array [ "parentId", "previewRevisionDatabaseId", "previewRevisionId", + "seo", "sizes", "slug", "sourceUrl", @@ -4364,6 +9902,8 @@ Array [ "author", "authorDatabaseId", "authorId", + "blocks", + "blocksJSON", "children", "commentCount", "commentStatus", @@ -4386,6 +9926,7 @@ Array [ "isFrontPage", "isPostsPage", "isPreview", + "isPrivacyPage", "isRestricted", "isRevision", "lastEditedBy", @@ -4397,10 +9938,13 @@ Array [ "parentDatabaseId", "parentId", "preview", + "previewBlocks", + "previewBlocksJSON", "previewRevisionDatabaseId", "previewRevisionId", "revisionOf", "revisions", + "seo", "slug", "status", "template", @@ -4566,6 +10110,8 @@ Array [ "author", "authorDatabaseId", "authorId", + "blocks", + "blocksJSON", "categories", "commentCount", "commentStatus", @@ -4598,10 +10144,13 @@ Array [ "pinged", "postFormats", "preview", + "previewBlocks", + "previewBlocksJSON", "previewRevisionDatabaseId", "previewRevisionId", "revisionOf", "revisions", + "seo", "slug", "status", "tags", @@ -4634,6 +10183,7 @@ Array [ "link", "name", "posts", + "seo", "slug", "taxonomy", "termGroupId", @@ -4745,6 +10295,7 @@ Array [ Object { "fields": Array [ "cursor", + "isPrimary", "node", ], "name": "PostToCategoryConnectionEdge", @@ -4783,6 +10334,7 @@ Array [ Object { "fields": Array [ "cursor", + "isPrimary", "node", ], "name": "PostToPostFormatConnectionEdge", @@ -4827,6 +10379,7 @@ Array [ Object { "fields": Array [ "cursor", + "isPrimary", "node", ], "name": "PostToTagConnectionEdge", @@ -4884,6 +10437,36 @@ Array [ ], "name": "PostTypeLabelDetails", }, + Object { + "fields": Array [ + "breadcrumbs", + "canonical", + "cornerstone", + "focuskw", + "fullHead", + "metaDesc", + "metaKeywords", + "metaRobotsNofollow", + "metaRobotsNoindex", + "opengraphAuthor", + "opengraphDescription", + "opengraphImage", + "opengraphModifiedTime", + "opengraphPublishedTime", + "opengraphPublisher", + "opengraphSiteName", + "opengraphTitle", + "opengraphType", + "opengraphUrl", + "readingTime", + "schema", + "title", + "twitterDescription", + "twitterImage", + "twitterTitle", + ], + "name": "PostTypeSEO", + }, Object { "fields": Array [ "postsPerPage", @@ -4930,9 +10513,54 @@ Array [ }, Object { "fields": Array [ - "updateCategory", - "updatePostFormat", - "updateTag", + "blocks", + "blocksJSON", + "content", + "contentType", + "databaseId", + "date", + "dateGmt", + "desiredSlug", + "editingLockedBy", + "enclosure", + "enqueuedScripts", + "enqueuedStylesheets", + "guid", + "id", + "isPreview", + "isRestricted", + "lastEditedBy", + "link", + "modified", + "modifiedGmt", + "preview", + "previewBlocks", + "previewBlocksFrom", + "previewBlocksFromJSON", + "previewBlocksJSON", + "previewRevisionDatabaseId", + "previewRevisionId", + "seo", + "slug", + "status", + "template", + "title", + "uri", + ], + "name": "ReusableBlock", + }, + Object { + "fields": null, + "name": "ReusableBlockIdType", + }, + Object { + "fields": Array [ + "node", + ], + "name": "ReusableBlockToPreviewConnectionEdge", + }, + Object { + "fields": Array [ "createActionMonitorAction", "createCategory", "createComment", @@ -4940,6 +10568,7 @@ Array [ "createPage", "createPost", "createPostFormat", + "createReusableBlock", "createTag", "createTranslationFilterTest", "createTypeLimit0Test", @@ -4952,6 +10581,7 @@ Array [ "deletePage", "deletePost", "deletePostFormat", + "deleteReusableBlock", "deleteTag", "deleteTranslationFilterTest", "deleteTypeLimit0Test", @@ -4963,11 +10593,15 @@ Array [ "restoreComment", "sendPasswordResetEmail", "updateActionMonitorAction", + "updateCategory", "updateComment", "updateMediaItem", "updatePage", "updatePost", + "updatePostFormat", + "updateReusableBlock", "updateSettings", + "updateTag", "updateTranslationFilterTest", "updateTypeLimit0Test", "updateTypeLimitTest", @@ -4981,6 +10615,9 @@ Array [ "actionMonitorAction", "actionMonitorActions", "allSettings", + "blockEditorContentNodes", + "blockEditorPreview", + "blockEditorPreviews", "categories", "category", "comment", @@ -5011,8 +10648,11 @@ Array [ "readingSettings", "registeredScripts", "registeredStylesheets", + "reusableBlock", + "reusableBlocks", "revisions", "schemaMd5", + "seo", "tag", "tags", "taxonomies", @@ -5057,6 +10697,25 @@ Array [ "fields": null, "name": "RootQueryToActionMonitorActionConnectionWhereArgs", }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "RootQueryToBlockEditorPreviewConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "RootQueryToBlockEditorPreviewConnectionEdge", + }, + Object { + "fields": null, + "name": "RootQueryToBlockEditorPreviewConnectionWhereArgs", + }, Object { "fields": Array [ "edges", @@ -5307,6 +10966,25 @@ Array [ "fields": null, "name": "RootQueryToPostFormatConnectionWhereArgs", }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "RootQueryToReusableBlockConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "RootQueryToReusableBlockConnectionEdge", + }, + Object { + "fields": null, + "name": "RootQueryToReusableBlockConnectionWhereArgs", + }, Object { "fields": Array [ "edges", @@ -5466,6 +11144,250 @@ Array [ ], "name": "RootQueryToUserRoleConnectionEdge", }, + Object { + "fields": Array [ + "archivePrefix", + "boldLast", + "enabled", + "homeText", + "notFoundText", + "prefix", + "searchPrefix", + "separator", + "showBlogPage", + ], + "name": "SEOBreadcrumbs", + }, + Object { + "fields": null, + "name": "SEOCardType", + }, + Object { + "fields": Array [ + "breadcrumbs", + "contentTypes", + "openGraph", + "redirects", + "schema", + "social", + "webmaster", + ], + "name": "SEOConfig", + }, + Object { + "fields": Array [ + "archive", + "metaDesc", + "metaRobotsNoindex", + "schema", + "schemaType", + "title", + ], + "name": "SEOContentType", + }, + Object { + "fields": Array [ + "archiveLink", + "breadcrumbTitle", + "fullHead", + "hasArchive", + "metaDesc", + "metaRobotsNoindex", + "title", + ], + "name": "SEOContentTypeArchive", + }, + Object { + "fields": Array [ + "actionMonitorAction", + "blockEditorPreview", + "mediaItem", + "page", + "post", + "reusableBlock", + "translationFilterTest", + "typeLimit0Test", + "typeLimitTest", + ], + "name": "SEOContentTypes", + }, + Object { + "fields": Array [ + "defaultImage", + "frontPage", + ], + "name": "SEOOpenGraph", + }, + Object { + "fields": Array [ + "description", + "image", + "title", + ], + "name": "SEOOpenGraphFrontPage", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "SEOPageInfoSchema", + }, + Object { + "fields": Array [ + "text", + "url", + ], + "name": "SEOPostTypeBreadcrumbs", + }, + Object { + "fields": Array [ + "schema", + ], + "name": "SEOPostTypePageInfo", + }, + Object { + "fields": Array [ + "articleType", + "pageType", + "raw", + ], + "name": "SEOPostTypeSchema", + }, + Object { + "fields": Array [ + "format", + "origin", + "target", + "type", + ], + "name": "SEORedirect", + }, + Object { + "fields": Array [ + "companyLogo", + "companyName", + "companyOrPerson", + "inLanguage", + "logo", + "personLogo", + "personName", + "siteName", + "siteUrl", + "wordpressSiteName", + ], + "name": "SEOSchema", + }, + Object { + "fields": Array [ + "facebook", + "instagram", + "linkedIn", + "mySpace", + "pinterest", + "twitter", + "wikipedia", + "youTube", + ], + "name": "SEOSocial", + }, + Object { + "fields": Array [ + "defaultImage", + "url", + ], + "name": "SEOSocialFacebook", + }, + Object { + "fields": Array [ + "url", + ], + "name": "SEOSocialInstagram", + }, + Object { + "fields": Array [ + "url", + ], + "name": "SEOSocialLinkedIn", + }, + Object { + "fields": Array [ + "url", + ], + "name": "SEOSocialMySpace", + }, + Object { + "fields": Array [ + "metaTag", + "url", + ], + "name": "SEOSocialPinterest", + }, + Object { + "fields": Array [ + "cardType", + "username", + ], + "name": "SEOSocialTwitter", + }, + Object { + "fields": Array [ + "url", + ], + "name": "SEOSocialWikipedia", + }, + Object { + "fields": Array [ + "url", + ], + "name": "SEOSocialYoutube", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "SEOTaxonomySchema", + }, + Object { + "fields": Array [ + "fullHead", + "metaDesc", + "metaRobotsNofollow", + "metaRobotsNoindex", + "schema", + "social", + "title", + ], + "name": "SEOUser", + }, + Object { + "fields": Array [ + "raw", + ], + "name": "SEOUserSchema", + }, + Object { + "fields": Array [ + "facebook", + "instagram", + "linkedIn", + "mySpace", + "pinterest", + "soundCloud", + "twitter", + "wikipedia", + "youTube", + ], + "name": "SEOUserSocial", + }, + Object { + "fields": Array [ + "baiduVerify", + "googleVerify", + "msVerify", + "yandexVerify", + ], + "name": "SEOWebmaster", + }, Object { "fields": null, "name": "SendPasswordResetEmailInput", @@ -5514,6 +11436,7 @@ Array [ "link", "name", "posts", + "seo", "slug", "taxonomy", "termGroupId", @@ -5604,6 +11527,35 @@ Array [ "fields": null, "name": "TaxonomyIdTypeEnum", }, + Object { + "fields": Array [ + "breadcrumbs", + "canonical", + "cornerstone", + "focuskw", + "fullHead", + "metaDesc", + "metaKeywords", + "metaRobotsNofollow", + "metaRobotsNoindex", + "opengraphAuthor", + "opengraphDescription", + "opengraphImage", + "opengraphModifiedTime", + "opengraphPublishedTime", + "opengraphPublisher", + "opengraphSiteName", + "opengraphTitle", + "opengraphType", + "opengraphUrl", + "schema", + "title", + "twitterDescription", + "twitterImage", + "twitterTitle", + ], + "name": "TaxonomySEO", + }, Object { "fields": Array [ "edges", @@ -5704,6 +11656,8 @@ Array [ "author", "authorDatabaseId", "authorId", + "blocks", + "blocksJSON", "content", "contentType", "databaseId", @@ -5726,8 +11680,11 @@ Array [ "modified", "modifiedGmt", "preview", + "previewBlocks", + "previewBlocksJSON", "previewRevisionDatabaseId", "previewRevisionId", + "seo", "slug", "status", "template", @@ -5751,6 +11708,8 @@ Array [ "author", "authorDatabaseId", "authorId", + "blocks", + "blocksJSON", "content", "contentType", "databaseId", @@ -5773,8 +11732,11 @@ Array [ "modified", "modifiedGmt", "preview", + "previewBlocks", + "previewBlocksJSON", "previewRevisionDatabaseId", "previewRevisionId", + "seo", "slug", "status", "template", @@ -5798,6 +11760,8 @@ Array [ "author", "authorDatabaseId", "authorId", + "blocks", + "blocksJSON", "content", "contentType", "databaseId", @@ -5820,8 +11784,11 @@ Array [ "modified", "modifiedGmt", "preview", + "previewBlocks", + "previewBlocksJSON", "previewRevisionDatabaseId", "previewRevisionId", + "seo", "slug", "status", "template", @@ -5858,6 +11825,17 @@ Array [ ], "name": "UpdateActionMonitorActionPayload", }, + Object { + "fields": null, + "name": "UpdateBlockEditorPreviewInput", + }, + Object { + "fields": Array [ + "blockEditorPreview", + "clientMutationId", + ], + "name": "UpdateBlockEditorPreviewPayload", + }, Object { "fields": null, "name": "UpdateCategoryInput", @@ -5925,6 +11903,17 @@ Array [ ], "name": "UpdatePostPayload", }, + Object { + "fields": null, + "name": "UpdateReusableBlockInput", + }, + Object { + "fields": Array [ + "reusableBlock", + "clientMutationId", + ], + "name": "UpdateReusableBlockPayload", + }, Object { "fields": null, "name": "UpdateSettingsInput", @@ -5998,6 +11987,7 @@ Array [ Object { "fields": Array [ "avatar", + "blockEditorPreviews", "capKey", "capabilities", "comments", @@ -6021,6 +12011,7 @@ Array [ "registeredDate", "revisions", "roles", + "seo", "slug", "translationFilterTests", "typeLimit0Tests", @@ -6049,6 +12040,25 @@ Array [ "fields": null, "name": "UserRoleEnum", }, + Object { + "fields": Array [ + "edges", + "nodes", + "pageInfo", + ], + "name": "UserToBlockEditorPreviewConnection", + }, + Object { + "fields": Array [ + "cursor", + "node", + ], + "name": "UserToBlockEditorPreviewConnectionEdge", + }, + Object { + "fields": null, + "name": "UserToBlockEditorPreviewConnectionWhereArgs", + }, Object { "fields": Array [ "edges", @@ -6309,6 +12319,7 @@ Array [ "endCursor", "hasNextPage", "hasPreviousPage", + "seo", "startCursor", ], "name": "WPPageInfo", @@ -6332,6 +12343,124 @@ Array [ ], "name": "WritingSettings", }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "YoastFaqBlock", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + ], + "name": "YoastFaqBlockAttributes", + }, + Object { + "fields": null, + "name": "YoastFaqBlockAttributesUnion", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + ], + "name": "YoastFaqBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "YoastHowToBlock", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "YoastHowToBlockAttributes", + }, + Object { + "fields": null, + "name": "YoastHowToBlockAttributesUnion", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "YoastHowToBlockDeprecatedV1Attributes", + }, + Object { + "fields": Array [ + "additionalListCssClasses", + "className", + "days", + "defaultDurationText", + "durationText", + "hasDuration", + "hours", + "jsonDescription", + "minutes", + "unorderedList", + ], + "name": "YoastHowToBlockDeprecatedV2Attributes", + }, + Object { + "fields": Array [ + "attributes", + "dynamicContent", + "innerBlocks", + "isDynamic", + "name", + "order", + "originalContent", + "parentNode", + "parentNodeDatabaseId", + "saveContent", + ], + "name": "YoastSeoBreadcrumbsBlock", + }, + Object { + "fields": Array [ + "className", + ], + "name": "YoastSeoBreadcrumbsBlockAttributes", + }, Object { "fields": Array [ "name", diff --git a/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql b/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql index b73f6e6eb2302..c88c2677bf244 100644 --- a/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql +++ b/integration-tests/gatsby-source-wordpress/docker/seed/backup.sql @@ -4,7 +4,7 @@ -- https://tableplus.com/ -- -- Database: wordpress --- Generation Time: 2021-04-30 16:34:53.0520 +-- Generation Time: 2021-05-04 10:21:39.1010 -- ------------------------------------------------------------- @@ -128,7 +128,7 @@ CREATE TABLE `wp_options` ( PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`), KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=5534 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=5618 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_postmeta` ( `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -138,7 +138,7 @@ CREATE TABLE `wp_postmeta` ( PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=72767 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=72944 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_posts` ( `ID` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -169,7 +169,7 @@ CREATE TABLE `wp_posts` ( KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), KEY `post_parent` (`post_parent`), KEY `post_author` (`post_author`) -) ENGINE=InnoDB AUTO_INCREMENT=11784 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11825 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_term_relationships` ( `object_id` bigint unsigned NOT NULL DEFAULT '0', @@ -189,7 +189,7 @@ CREATE TABLE `wp_term_taxonomy` ( PRIMARY KEY (`term_taxonomy_id`), UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), KEY `taxonomy` (`taxonomy`) -) ENGINE=InnoDB AUTO_INCREMENT=160 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_termmeta` ( `meta_id` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -209,7 +209,7 @@ CREATE TABLE `wp_terms` ( PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), KEY `name` (`name`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=160 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_usermeta` ( `umeta_id` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -219,7 +219,7 @@ CREATE TABLE `wp_usermeta` ( PRIMARY KEY (`umeta_id`), KEY `user_id` (`user_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=153 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; CREATE TABLE `wp_users` ( `ID` bigint unsigned NOT NULL AUTO_INCREMENT, @@ -238,6 +238,113 @@ CREATE TABLE `wp_users` ( KEY `user_email` (`user_email`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +CREATE TABLE `wp_yoast_indexable` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `permalink` longtext COLLATE utf8mb4_unicode_520_ci, + `permalink_hash` varchar(40) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `object_id` bigint DEFAULT NULL, + `object_type` varchar(32) COLLATE utf8mb4_unicode_520_ci NOT NULL, + `object_sub_type` varchar(32) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `author_id` bigint DEFAULT NULL, + `post_parent` bigint DEFAULT NULL, + `title` text COLLATE utf8mb4_unicode_520_ci, + `description` mediumtext COLLATE utf8mb4_unicode_520_ci, + `breadcrumb_title` text COLLATE utf8mb4_unicode_520_ci, + `post_status` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `is_public` tinyint(1) DEFAULT NULL, + `is_protected` tinyint(1) DEFAULT '0', + `has_public_posts` tinyint(1) DEFAULT NULL, + `number_of_pages` int unsigned DEFAULT NULL, + `canonical` longtext COLLATE utf8mb4_unicode_520_ci, + `primary_focus_keyword` varchar(191) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `primary_focus_keyword_score` int DEFAULT NULL, + `readability_score` int DEFAULT NULL, + `is_cornerstone` tinyint(1) DEFAULT '0', + `is_robots_noindex` tinyint(1) DEFAULT '0', + `is_robots_nofollow` tinyint(1) DEFAULT '0', + `is_robots_noarchive` tinyint(1) DEFAULT '0', + `is_robots_noimageindex` tinyint(1) DEFAULT '0', + `is_robots_nosnippet` tinyint(1) DEFAULT '0', + `twitter_title` text COLLATE utf8mb4_unicode_520_ci, + `twitter_image` longtext COLLATE utf8mb4_unicode_520_ci, + `twitter_description` longtext COLLATE utf8mb4_unicode_520_ci, + `twitter_image_id` varchar(191) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `twitter_image_source` text COLLATE utf8mb4_unicode_520_ci, + `open_graph_title` text COLLATE utf8mb4_unicode_520_ci, + `open_graph_description` longtext COLLATE utf8mb4_unicode_520_ci, + `open_graph_image` longtext COLLATE utf8mb4_unicode_520_ci, + `open_graph_image_id` varchar(191) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `open_graph_image_source` text COLLATE utf8mb4_unicode_520_ci, + `open_graph_image_meta` mediumtext COLLATE utf8mb4_unicode_520_ci, + `link_count` int DEFAULT NULL, + `incoming_link_count` int DEFAULT NULL, + `prominent_words_version` int unsigned DEFAULT NULL, + `created_at` datetime DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `blog_id` bigint NOT NULL DEFAULT '1', + `language` varchar(32) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `region` varchar(32) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `schema_page_type` varchar(64) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `schema_article_type` varchar(64) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + `has_ancestors` tinyint(1) DEFAULT '0', + `estimated_reading_time_minutes` int DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `object_type_and_sub_type` (`object_type`,`object_sub_type`), + KEY `object_id_and_type` (`object_id`,`object_type`), + KEY `permalink_hash_and_object_type` (`permalink_hash`,`object_type`), + KEY `subpages` (`post_parent`,`object_type`,`post_status`,`object_id`), + KEY `prominent_words` (`prominent_words_version`,`object_type`,`object_sub_type`,`post_status`) +) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + +CREATE TABLE `wp_yoast_indexable_hierarchy` ( + `indexable_id` int unsigned NOT NULL, + `ancestor_id` int unsigned NOT NULL, + `depth` int unsigned DEFAULT NULL, + `blog_id` bigint NOT NULL DEFAULT '1', + PRIMARY KEY (`indexable_id`,`ancestor_id`), + KEY `indexable_id` (`indexable_id`), + KEY `ancestor_id` (`ancestor_id`), + KEY `depth` (`depth`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + +CREATE TABLE `wp_yoast_migrations` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `version` varchar(191) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `wp_yoast_migrations_version` (`version`) +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + +CREATE TABLE `wp_yoast_primary_term` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint DEFAULT NULL, + `term_id` bigint DEFAULT NULL, + `taxonomy` varchar(32) COLLATE utf8mb4_unicode_520_ci NOT NULL, + `created_at` datetime DEFAULT NULL, + `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `blog_id` bigint NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + KEY `post_taxonomy` (`post_id`,`taxonomy`), + KEY `post_term` (`post_id`,`term_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + +CREATE TABLE `wp_yoast_seo_links` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `url` varchar(255) DEFAULT NULL, + `post_id` bigint unsigned DEFAULT NULL, + `target_post_id` bigint unsigned DEFAULT NULL, + `type` varchar(8) DEFAULT NULL, + `indexable_id` int unsigned DEFAULT NULL, + `target_indexable_id` int unsigned DEFAULT NULL, + `height` int unsigned DEFAULT NULL, + `width` int unsigned DEFAULT NULL, + `size` int unsigned DEFAULT NULL, + `language` varchar(32) DEFAULT NULL, + `region` varchar(32) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `link_direction` (`post_id`,`type`), + KEY `indexable_link_direction` (`indexable_id`,`type`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb3; + INSERT INTO `wp_actionscheduler_actions` (`action_id`, `hook`, `status`, `scheduled_date_gmt`, `scheduled_date_local`, `args`, `schedule`, `group_id`, `attempts`, `last_attempt_gmt`, `last_attempt_local`, `claim_id`, `extended_args`) VALUES (1, 'action_scheduler/migration_hook', 'pending', '2021-02-12 21:22:14', '2021-02-12 21:22:14', '[]', 'O:30:\"ActionScheduler_SimpleSchedule\":4:{s:22:\"\0*\0scheduled_timestamp\";i:1613164934;s:41:\"\0ActionScheduler_SimpleSchedule\0timestamp\";i:1613164934;s:19:\"scheduled_timestamp\";i:1613164934;s:9:\"timestamp\";i:1613164934;}', 1, 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', 0, NULL); @@ -282,7 +389,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (30, 'hack_file', '0', 'yes'), (31, 'blog_charset', 'UTF-8', 'yes'), (32, 'moderation_keys', '', 'no'), -(33, 'active_plugins', 'a:7:{i:0;s:34:\"advanced-custom-fields-pro/acf.php\";i:1;s:25:\"basic-auth/basic-auth.php\";i:2;s:43:\"custom-post-type-ui/custom-post-type-ui.php\";i:3;s:23:\"wp-gatsby/wp-gatsby.php\";i:4;s:33:\"wp-graphql-acf/wp-graphql-acf.php\";i:5;s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";i:6;s:25:\"wp-graphql/wp-graphql.php\";}', 'yes'), +(33, 'active_plugins', 'a:10:{i:0;s:34:\"advanced-custom-fields-pro/acf.php\";i:1;s:25:\"basic-auth/basic-auth.php\";i:2;s:43:\"custom-post-type-ui/custom-post-type-ui.php\";i:3;s:24:\"wordpress-seo/wp-seo.php\";i:4;s:23:\"wp-gatsby/wp-gatsby.php\";i:5;s:33:\"wp-graphql-acf/wp-graphql-acf.php\";i:6;s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";i:7;s:37:\"wp-graphql-gutenberg-0.3.8/plugin.php\";i:8;s:45:\"wp-graphql-yoast-seo/wp-graphql-yoast-seo.php\";i:9;s:25:\"wp-graphql/wp-graphql.php\";}', 'yes'), (34, 'category_base', '', 'yes'), (35, 'ping_sites', 'http://rpc.pingomatic.com/', 'yes'), (36, 'comment_max_links', '2', 'yes'), @@ -339,7 +446,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (92, 'show_comments_cookies_opt_in', '1', 'yes'), (93, 'admin_email_lifespan', '1634494686', 'yes'), (94, 'initial_db_version', '45805', 'yes'), -(95, 'wp_user_roles', 'a:7:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:115:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;s:12:\"manage_polls\";b:1;s:18:\"manage_woocommerce\";b:1;s:24:\"view_woocommerce_reports\";b:1;s:12:\"edit_product\";b:1;s:12:\"read_product\";b:1;s:14:\"delete_product\";b:1;s:13:\"edit_products\";b:1;s:20:\"edit_others_products\";b:1;s:16:\"publish_products\";b:1;s:21:\"read_private_products\";b:1;s:15:\"delete_products\";b:1;s:23:\"delete_private_products\";b:1;s:25:\"delete_published_products\";b:1;s:22:\"delete_others_products\";b:1;s:21:\"edit_private_products\";b:1;s:23:\"edit_published_products\";b:1;s:20:\"manage_product_terms\";b:1;s:18:\"edit_product_terms\";b:1;s:20:\"delete_product_terms\";b:1;s:20:\"assign_product_terms\";b:1;s:15:\"edit_shop_order\";b:1;s:15:\"read_shop_order\";b:1;s:17:\"delete_shop_order\";b:1;s:16:\"edit_shop_orders\";b:1;s:23:\"edit_others_shop_orders\";b:1;s:19:\"publish_shop_orders\";b:1;s:24:\"read_private_shop_orders\";b:1;s:18:\"delete_shop_orders\";b:1;s:26:\"delete_private_shop_orders\";b:1;s:28:\"delete_published_shop_orders\";b:1;s:25:\"delete_others_shop_orders\";b:1;s:24:\"edit_private_shop_orders\";b:1;s:26:\"edit_published_shop_orders\";b:1;s:23:\"manage_shop_order_terms\";b:1;s:21:\"edit_shop_order_terms\";b:1;s:23:\"delete_shop_order_terms\";b:1;s:23:\"assign_shop_order_terms\";b:1;s:16:\"edit_shop_coupon\";b:1;s:16:\"read_shop_coupon\";b:1;s:18:\"delete_shop_coupon\";b:1;s:17:\"edit_shop_coupons\";b:1;s:24:\"edit_others_shop_coupons\";b:1;s:20:\"publish_shop_coupons\";b:1;s:25:\"read_private_shop_coupons\";b:1;s:19:\"delete_shop_coupons\";b:1;s:27:\"delete_private_shop_coupons\";b:1;s:29:\"delete_published_shop_coupons\";b:1;s:26:\"delete_others_shop_coupons\";b:1;s:25:\"edit_private_shop_coupons\";b:1;s:27:\"edit_published_shop_coupons\";b:1;s:24:\"manage_shop_coupon_terms\";b:1;s:22:\"edit_shop_coupon_terms\";b:1;s:24:\"delete_shop_coupon_terms\";b:1;s:24:\"assign_shop_coupon_terms\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}s:8:\"customer\";a:2:{s:4:\"name\";s:8:\"Customer\";s:12:\"capabilities\";a:1:{s:4:\"read\";b:1;}}s:12:\"shop_manager\";a:2:{s:4:\"name\";s:12:\"Shop manager\";s:12:\"capabilities\";a:92:{s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:4:\"read\";b:1;s:18:\"read_private_pages\";b:1;s:18:\"read_private_posts\";b:1;s:10:\"edit_posts\";b:1;s:10:\"edit_pages\";b:1;s:20:\"edit_published_posts\";b:1;s:20:\"edit_published_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"edit_private_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:17:\"edit_others_pages\";b:1;s:13:\"publish_posts\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_posts\";b:1;s:12:\"delete_pages\";b:1;s:20:\"delete_private_pages\";b:1;s:20:\"delete_private_posts\";b:1;s:22:\"delete_published_pages\";b:1;s:22:\"delete_published_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:19:\"delete_others_pages\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:17:\"moderate_comments\";b:1;s:12:\"upload_files\";b:1;s:6:\"export\";b:1;s:6:\"import\";b:1;s:10:\"list_users\";b:1;s:18:\"edit_theme_options\";b:1;s:18:\"manage_woocommerce\";b:1;s:24:\"view_woocommerce_reports\";b:1;s:12:\"edit_product\";b:1;s:12:\"read_product\";b:1;s:14:\"delete_product\";b:1;s:13:\"edit_products\";b:1;s:20:\"edit_others_products\";b:1;s:16:\"publish_products\";b:1;s:21:\"read_private_products\";b:1;s:15:\"delete_products\";b:1;s:23:\"delete_private_products\";b:1;s:25:\"delete_published_products\";b:1;s:22:\"delete_others_products\";b:1;s:21:\"edit_private_products\";b:1;s:23:\"edit_published_products\";b:1;s:20:\"manage_product_terms\";b:1;s:18:\"edit_product_terms\";b:1;s:20:\"delete_product_terms\";b:1;s:20:\"assign_product_terms\";b:1;s:15:\"edit_shop_order\";b:1;s:15:\"read_shop_order\";b:1;s:17:\"delete_shop_order\";b:1;s:16:\"edit_shop_orders\";b:1;s:23:\"edit_others_shop_orders\";b:1;s:19:\"publish_shop_orders\";b:1;s:24:\"read_private_shop_orders\";b:1;s:18:\"delete_shop_orders\";b:1;s:26:\"delete_private_shop_orders\";b:1;s:28:\"delete_published_shop_orders\";b:1;s:25:\"delete_others_shop_orders\";b:1;s:24:\"edit_private_shop_orders\";b:1;s:26:\"edit_published_shop_orders\";b:1;s:23:\"manage_shop_order_terms\";b:1;s:21:\"edit_shop_order_terms\";b:1;s:23:\"delete_shop_order_terms\";b:1;s:23:\"assign_shop_order_terms\";b:1;s:16:\"edit_shop_coupon\";b:1;s:16:\"read_shop_coupon\";b:1;s:18:\"delete_shop_coupon\";b:1;s:17:\"edit_shop_coupons\";b:1;s:24:\"edit_others_shop_coupons\";b:1;s:20:\"publish_shop_coupons\";b:1;s:25:\"read_private_shop_coupons\";b:1;s:19:\"delete_shop_coupons\";b:1;s:27:\"delete_private_shop_coupons\";b:1;s:29:\"delete_published_shop_coupons\";b:1;s:26:\"delete_others_shop_coupons\";b:1;s:25:\"edit_private_shop_coupons\";b:1;s:27:\"edit_published_shop_coupons\";b:1;s:24:\"manage_shop_coupon_terms\";b:1;s:22:\"edit_shop_coupon_terms\";b:1;s:24:\"delete_shop_coupon_terms\";b:1;s:24:\"assign_shop_coupon_terms\";b:1;}}}', 'yes'), +(95, 'wp_user_roles', 'a:9:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:116:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;s:12:\"manage_polls\";b:1;s:18:\"manage_woocommerce\";b:1;s:24:\"view_woocommerce_reports\";b:1;s:12:\"edit_product\";b:1;s:12:\"read_product\";b:1;s:14:\"delete_product\";b:1;s:13:\"edit_products\";b:1;s:20:\"edit_others_products\";b:1;s:16:\"publish_products\";b:1;s:21:\"read_private_products\";b:1;s:15:\"delete_products\";b:1;s:23:\"delete_private_products\";b:1;s:25:\"delete_published_products\";b:1;s:22:\"delete_others_products\";b:1;s:21:\"edit_private_products\";b:1;s:23:\"edit_published_products\";b:1;s:20:\"manage_product_terms\";b:1;s:18:\"edit_product_terms\";b:1;s:20:\"delete_product_terms\";b:1;s:20:\"assign_product_terms\";b:1;s:15:\"edit_shop_order\";b:1;s:15:\"read_shop_order\";b:1;s:17:\"delete_shop_order\";b:1;s:16:\"edit_shop_orders\";b:1;s:23:\"edit_others_shop_orders\";b:1;s:19:\"publish_shop_orders\";b:1;s:24:\"read_private_shop_orders\";b:1;s:18:\"delete_shop_orders\";b:1;s:26:\"delete_private_shop_orders\";b:1;s:28:\"delete_published_shop_orders\";b:1;s:25:\"delete_others_shop_orders\";b:1;s:24:\"edit_private_shop_orders\";b:1;s:26:\"edit_published_shop_orders\";b:1;s:23:\"manage_shop_order_terms\";b:1;s:21:\"edit_shop_order_terms\";b:1;s:23:\"delete_shop_order_terms\";b:1;s:23:\"assign_shop_order_terms\";b:1;s:16:\"edit_shop_coupon\";b:1;s:16:\"read_shop_coupon\";b:1;s:18:\"delete_shop_coupon\";b:1;s:17:\"edit_shop_coupons\";b:1;s:24:\"edit_others_shop_coupons\";b:1;s:20:\"publish_shop_coupons\";b:1;s:25:\"read_private_shop_coupons\";b:1;s:19:\"delete_shop_coupons\";b:1;s:27:\"delete_private_shop_coupons\";b:1;s:29:\"delete_published_shop_coupons\";b:1;s:26:\"delete_others_shop_coupons\";b:1;s:25:\"edit_private_shop_coupons\";b:1;s:27:\"edit_published_shop_coupons\";b:1;s:24:\"manage_shop_coupon_terms\";b:1;s:22:\"edit_shop_coupon_terms\";b:1;s:24:\"delete_shop_coupon_terms\";b:1;s:24:\"assign_shop_coupon_terms\";b:1;s:20:\"wpseo_manage_options\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:35:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:15:\"wpseo_bulk_edit\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}s:8:\"customer\";a:2:{s:4:\"name\";s:8:\"Customer\";s:12:\"capabilities\";a:1:{s:4:\"read\";b:1;}}s:12:\"shop_manager\";a:2:{s:4:\"name\";s:12:\"Shop manager\";s:12:\"capabilities\";a:92:{s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:4:\"read\";b:1;s:18:\"read_private_pages\";b:1;s:18:\"read_private_posts\";b:1;s:10:\"edit_posts\";b:1;s:10:\"edit_pages\";b:1;s:20:\"edit_published_posts\";b:1;s:20:\"edit_published_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"edit_private_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:17:\"edit_others_pages\";b:1;s:13:\"publish_posts\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_posts\";b:1;s:12:\"delete_pages\";b:1;s:20:\"delete_private_pages\";b:1;s:20:\"delete_private_posts\";b:1;s:22:\"delete_published_pages\";b:1;s:22:\"delete_published_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:19:\"delete_others_pages\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:17:\"moderate_comments\";b:1;s:12:\"upload_files\";b:1;s:6:\"export\";b:1;s:6:\"import\";b:1;s:10:\"list_users\";b:1;s:18:\"edit_theme_options\";b:1;s:18:\"manage_woocommerce\";b:1;s:24:\"view_woocommerce_reports\";b:1;s:12:\"edit_product\";b:1;s:12:\"read_product\";b:1;s:14:\"delete_product\";b:1;s:13:\"edit_products\";b:1;s:20:\"edit_others_products\";b:1;s:16:\"publish_products\";b:1;s:21:\"read_private_products\";b:1;s:15:\"delete_products\";b:1;s:23:\"delete_private_products\";b:1;s:25:\"delete_published_products\";b:1;s:22:\"delete_others_products\";b:1;s:21:\"edit_private_products\";b:1;s:23:\"edit_published_products\";b:1;s:20:\"manage_product_terms\";b:1;s:18:\"edit_product_terms\";b:1;s:20:\"delete_product_terms\";b:1;s:20:\"assign_product_terms\";b:1;s:15:\"edit_shop_order\";b:1;s:15:\"read_shop_order\";b:1;s:17:\"delete_shop_order\";b:1;s:16:\"edit_shop_orders\";b:1;s:23:\"edit_others_shop_orders\";b:1;s:19:\"publish_shop_orders\";b:1;s:24:\"read_private_shop_orders\";b:1;s:18:\"delete_shop_orders\";b:1;s:26:\"delete_private_shop_orders\";b:1;s:28:\"delete_published_shop_orders\";b:1;s:25:\"delete_others_shop_orders\";b:1;s:24:\"edit_private_shop_orders\";b:1;s:26:\"edit_published_shop_orders\";b:1;s:23:\"manage_shop_order_terms\";b:1;s:21:\"edit_shop_order_terms\";b:1;s:23:\"delete_shop_order_terms\";b:1;s:23:\"assign_shop_order_terms\";b:1;s:16:\"edit_shop_coupon\";b:1;s:16:\"read_shop_coupon\";b:1;s:18:\"delete_shop_coupon\";b:1;s:17:\"edit_shop_coupons\";b:1;s:24:\"edit_others_shop_coupons\";b:1;s:20:\"publish_shop_coupons\";b:1;s:25:\"read_private_shop_coupons\";b:1;s:19:\"delete_shop_coupons\";b:1;s:27:\"delete_private_shop_coupons\";b:1;s:29:\"delete_published_shop_coupons\";b:1;s:26:\"delete_others_shop_coupons\";b:1;s:25:\"edit_private_shop_coupons\";b:1;s:27:\"edit_published_shop_coupons\";b:1;s:24:\"manage_shop_coupon_terms\";b:1;s:22:\"edit_shop_coupon_terms\";b:1;s:24:\"delete_shop_coupon_terms\";b:1;s:24:\"assign_shop_coupon_terms\";b:1;}}s:13:\"wpseo_manager\";a:2:{s:4:\"name\";s:11:\"SEO Manager\";s:12:\"capabilities\";a:38:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:15:\"wpseo_bulk_edit\";b:1;s:28:\"wpseo_edit_advanced_metadata\";b:1;s:20:\"wpseo_manage_options\";b:1;s:23:\"view_site_health_checks\";b:1;}}s:12:\"wpseo_editor\";a:2:{s:4:\"name\";s:10:\"SEO Editor\";s:12:\"capabilities\";a:36:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:15:\"wpseo_bulk_edit\";b:1;s:28:\"wpseo_edit_advanced_metadata\";b:1;}}}', 'yes'), (96, 'fresh_site', '0', 'yes'), (97, 'widget_search', 'a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}', 'yes'), (98, 'widget_recent-posts', 'a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}', 'yes'), @@ -347,7 +454,7 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (100, 'widget_archives', 'a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}', 'yes'), (101, 'widget_meta', 'a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}', 'yes'), (102, 'sidebars_widgets', 'a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}', 'yes'), -(103, 'cron', 'a:19:{i:1619825617;a:1:{s:39:\"WPEngineSecurityAuditor_Scans_scheduler\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619826863;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827200;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619827736;a:2:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827742;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619827745;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619829015;a:1:{s:10:\"polls_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1619838535;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619848463;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619849335;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1619891662;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619891668;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619891669;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619895510;a:1:{s:19:\"wpseo-reindex-links\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619897314;a:1:{s:17:\"gravityforms_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1619905123;a:1:{s:16:\"backupbuddy_cron\";a:1:{s:32:\"b2d6f4df5dfc2b203ff6fc9b49103fdc\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:2:{i:0;s:12:\"housekeeping\";i:1;a:0:{}}s:8:\"interval\";i:86400;}}}i:1620071118;a:1:{s:16:\"wpseo_ryte_fetch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1620257264;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}', 'yes'), +(103, 'cron', 'a:21:{i:1620149415;a:1:{s:10:\"polls_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1620150862;a:1:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620150863;a:4:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1620150868;a:2:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:25:\"delete_expired_transients\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620150869;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620151735;a:1:{s:28:\"woocommerce_cleanup_sessions\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1620151736;a:1:{s:33:\"wc_admin_process_orders_milestone\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1620151742;a:1:{s:29:\"wc_admin_unsnooze_admin_notes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1620154710;a:1:{s:19:\"wpseo-reindex-links\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620156514;a:1:{s:17:\"gravityforms_cron\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620164323;a:1:{s:16:\"backupbuddy_cron\";a:1:{s:32:\"b2d6f4df5dfc2b203ff6fc9b49103fdc\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:2:{i:0;s:12:\"housekeeping\";i:1;a:0:{}}s:8:\"interval\";i:86400;}}}i:1620170655;a:1:{s:31:\"wpseo_permalink_structure_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620170656;a:1:{s:13:\"wpseo-reindex\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620171217;a:1:{s:39:\"WPEngineSecurityAuditor_Scans_scheduler\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1620172800;a:1:{s:27:\"woocommerce_scheduled_sales\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620173336;a:1:{s:14:\"wc_admin_daily\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620173345;a:2:{s:33:\"woocommerce_cleanup_personal_data\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:30:\"woocommerce_tracker_send_event\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620184135;a:1:{s:24:\"woocommerce_cleanup_logs\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1620257264;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}i:1620675918;a:1:{s:16:\"wpseo_ryte_fetch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}', 'yes'), (104, 'widget_pages', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (105, 'widget_calendar', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (106, 'widget_media_audio', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), @@ -359,11 +466,11 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (112, 'widget_custom_html', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (114, 'theme_mods_twentytwenty', 'a:3:{s:18:\"custom_css_post_id\";i:-1;s:18:\"nav_menu_locations\";a:5:{s:7:\"primary\";i:0;s:8:\"expanded\";i:0;s:6:\"mobile\";i:0;s:6:\"footer\";i:0;s:6:\"social\";i:17;}s:16:\"background_color\";s:3:\"fff\";}', 'yes'), (115, 'recovery_keys', 'a:0:{}', 'yes'), -(143, 'recently_activated', 'a:10:{s:34:\"advanced-custom-fields-pro/acf.php\";i:1619033044;s:43:\"custom-post-type-ui/custom-post-type-ui.php\";i:1619033044;s:25:\"basic-auth/basic-auth.php\";i:1619033044;s:23:\"wp-gatsby/wp-gatsby.php\";i:1619033044;s:25:\"wp-graphql/wp-graphql.php\";i:1619033044;s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";i:1619033044;s:33:\"wp-graphql-acf/wp-graphql-acf.php\";i:1619033044;s:56:\"wp-sync-db-media-files-master/wp-sync-db-media-files.php\";i:1618942769;s:44:\"wp-database-tools-main/wp-migrate-db-pro.php\";i:1618942762;s:29:\"wp-sync-db-1.5/wp-sync-db.php\";i:1618942434;}', 'yes'), +(143, 'recently_activated', 'a:0:{}', 'yes'), (171, 'acf_version', '5.8.7', 'yes'), (180, 'cptui_new_install', 'false', 'yes'), (183, 'cptui_post_types', 'a:6:{s:11:\"team_member\";a:33:{s:4:\"name\";s:11:\"team_member\";s:5:\"label\";s:12:\"Team Members\";s:14:\"singular_label\";s:11:\"Team Member\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:4:\"true\";s:18:\"has_archive_string\";s:4:\"team\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"post\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:11:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";i:3;s:7:\"excerpt\";i:4;s:10:\"trackbacks\";i:5;s:13:\"custom-fields\";i:6;s:8:\"comments\";i:7;s:9:\"revisions\";i:8;s:6:\"author\";i:9;s:15:\"page-attributes\";i:10;s:12:\"post-formats\";}s:10:\"taxonomies\";a:2:{i:0;s:8:\"category\";i:1;s:8:\"post_tag\";}s:6:\"labels\";a:29:{s:9:\"menu_name\";s:0:\"\";s:9:\"all_items\";s:0:\"\";s:7:\"add_new\";s:0:\"\";s:12:\"add_new_item\";s:0:\"\";s:9:\"edit_item\";s:0:\"\";s:8:\"new_item\";s:0:\"\";s:9:\"view_item\";s:0:\"\";s:10:\"view_items\";s:0:\"\";s:12:\"search_items\";s:0:\"\";s:9:\"not_found\";s:0:\"\";s:18:\"not_found_in_trash\";s:0:\"\";s:17:\"parent_item_colon\";s:0:\"\";s:14:\"featured_image\";s:0:\"\";s:18:\"set_featured_image\";s:0:\"\";s:21:\"remove_featured_image\";s:0:\"\";s:18:\"use_featured_image\";s:0:\"\";s:8:\"archives\";s:0:\"\";s:16:\"insert_into_item\";s:0:\"\";s:21:\"uploaded_to_this_item\";s:0:\"\";s:17:\"filter_items_list\";s:0:\"\";s:21:\"items_list_navigation\";s:0:\"\";s:10:\"items_list\";s:0:\"\";s:10:\"attributes\";s:0:\"\";s:14:\"name_admin_bar\";s:0:\"\";s:14:\"item_published\";s:0:\"\";s:24:\"item_published_privately\";s:0:\"\";s:22:\"item_reverted_to_draft\";s:0:\"\";s:14:\"item_scheduled\";s:0:\"\";s:12:\"item_updated\";s:0:\"\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"0\";s:19:\"graphql_single_name\";s:10:\"teamMember\";s:19:\"graphql_plural_name\";s:11:\"TeamMembers\";}s:7:\"project\";a:33:{s:4:\"name\";s:7:\"project\";s:5:\"label\";s:7:\"Project\";s:14:\"singular_label\";s:8:\"Projects\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:5:\"false\";s:18:\"has_archive_string\";s:0:\"\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"post\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:4:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";i:3;s:6:\"author\";}s:10:\"taxonomies\";a:0:{}s:6:\"labels\";a:29:{s:9:\"menu_name\";s:0:\"\";s:9:\"all_items\";s:0:\"\";s:7:\"add_new\";s:0:\"\";s:12:\"add_new_item\";s:0:\"\";s:9:\"edit_item\";s:0:\"\";s:8:\"new_item\";s:0:\"\";s:9:\"view_item\";s:0:\"\";s:10:\"view_items\";s:0:\"\";s:12:\"search_items\";s:0:\"\";s:9:\"not_found\";s:0:\"\";s:18:\"not_found_in_trash\";s:0:\"\";s:17:\"parent_item_colon\";s:0:\"\";s:14:\"featured_image\";s:0:\"\";s:18:\"set_featured_image\";s:0:\"\";s:21:\"remove_featured_image\";s:0:\"\";s:18:\"use_featured_image\";s:0:\"\";s:8:\"archives\";s:0:\"\";s:16:\"insert_into_item\";s:0:\"\";s:21:\"uploaded_to_this_item\";s:0:\"\";s:17:\"filter_items_list\";s:0:\"\";s:21:\"items_list_navigation\";s:0:\"\";s:10:\"items_list\";s:0:\"\";s:10:\"attributes\";s:0:\"\";s:14:\"name_admin_bar\";s:0:\"\";s:14:\"item_published\";s:0:\"\";s:24:\"item_published_privately\";s:0:\"\";s:22:\"item_reverted_to_draft\";s:0:\"\";s:14:\"item_scheduled\";s:0:\"\";s:12:\"item_updated\";s:0:\"\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"0\";s:19:\"graphql_single_name\";s:7:\"project\";s:19:\"graphql_plural_name\";s:8:\"projects\";}s:15:\"type_limit_test\";a:33:{s:4:\"name\";s:15:\"type_limit_test\";s:5:\"label\";s:15:\"Type Limit Test\";s:14:\"singular_label\";s:15:\"Type limit Test\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:5:\"false\";s:18:\"has_archive_string\";s:0:\"\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"post\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:4:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";i:3;s:6:\"author\";}s:10:\"taxonomies\";a:0:{}s:6:\"labels\";a:29:{s:9:\"menu_name\";s:0:\"\";s:9:\"all_items\";s:0:\"\";s:7:\"add_new\";s:0:\"\";s:12:\"add_new_item\";s:0:\"\";s:9:\"edit_item\";s:0:\"\";s:8:\"new_item\";s:0:\"\";s:9:\"view_item\";s:0:\"\";s:10:\"view_items\";s:0:\"\";s:12:\"search_items\";s:0:\"\";s:9:\"not_found\";s:0:\"\";s:18:\"not_found_in_trash\";s:0:\"\";s:17:\"parent_item_colon\";s:0:\"\";s:14:\"featured_image\";s:0:\"\";s:18:\"set_featured_image\";s:0:\"\";s:21:\"remove_featured_image\";s:0:\"\";s:18:\"use_featured_image\";s:0:\"\";s:8:\"archives\";s:0:\"\";s:16:\"insert_into_item\";s:0:\"\";s:21:\"uploaded_to_this_item\";s:0:\"\";s:17:\"filter_items_list\";s:0:\"\";s:21:\"items_list_navigation\";s:0:\"\";s:10:\"items_list\";s:0:\"\";s:10:\"attributes\";s:0:\"\";s:14:\"name_admin_bar\";s:0:\"\";s:14:\"item_published\";s:0:\"\";s:24:\"item_published_privately\";s:0:\"\";s:22:\"item_reverted_to_draft\";s:0:\"\";s:14:\"item_scheduled\";s:0:\"\";s:12:\"item_updated\";s:0:\"\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"1\";s:19:\"graphql_single_name\";s:13:\"typeLimitTest\";s:19:\"graphql_plural_name\";s:14:\"typeLimitTests\";}s:17:\"type_limit_0_test\";a:33:{s:4:\"name\";s:17:\"type_limit_0_test\";s:5:\"label\";s:17:\"Type Limit 0 Test\";s:14:\"singular_label\";s:17:\"Type Limit 0 Test\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:5:\"false\";s:18:\"has_archive_string\";s:0:\"\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"post\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:4:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";i:3;s:6:\"author\";}s:10:\"taxonomies\";a:0:{}s:6:\"labels\";a:29:{s:9:\"menu_name\";s:0:\"\";s:9:\"all_items\";s:0:\"\";s:7:\"add_new\";s:0:\"\";s:12:\"add_new_item\";s:0:\"\";s:9:\"edit_item\";s:0:\"\";s:8:\"new_item\";s:0:\"\";s:9:\"view_item\";s:0:\"\";s:10:\"view_items\";s:0:\"\";s:12:\"search_items\";s:0:\"\";s:9:\"not_found\";s:0:\"\";s:18:\"not_found_in_trash\";s:0:\"\";s:17:\"parent_item_colon\";s:0:\"\";s:14:\"featured_image\";s:0:\"\";s:18:\"set_featured_image\";s:0:\"\";s:21:\"remove_featured_image\";s:0:\"\";s:18:\"use_featured_image\";s:0:\"\";s:8:\"archives\";s:0:\"\";s:16:\"insert_into_item\";s:0:\"\";s:21:\"uploaded_to_this_item\";s:0:\"\";s:17:\"filter_items_list\";s:0:\"\";s:21:\"items_list_navigation\";s:0:\"\";s:10:\"items_list\";s:0:\"\";s:10:\"attributes\";s:0:\"\";s:14:\"name_admin_bar\";s:0:\"\";s:14:\"item_published\";s:0:\"\";s:24:\"item_published_privately\";s:0:\"\";s:22:\"item_reverted_to_draft\";s:0:\"\";s:14:\"item_scheduled\";s:0:\"\";s:12:\"item_updated\";s:0:\"\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"1\";s:19:\"graphql_single_name\";s:14:\"typeLimit0Test\";s:19:\"graphql_plural_name\";s:15:\"typeLimit0Tests\";}s:20:\"translation_filter_t\";a:33:{s:4:\"name\";s:20:\"translation_filter_t\";s:5:\"label\";s:23:\"Translation Filter Test\";s:14:\"singular_label\";s:23:\"Translation Filter Test\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:5:\"false\";s:18:\"has_archive_string\";s:0:\"\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"page\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:4:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";i:3;s:6:\"author\";}s:10:\"taxonomies\";a:0:{}s:6:\"labels\";a:29:{s:9:\"menu_name\";s:0:\"\";s:9:\"all_items\";s:0:\"\";s:7:\"add_new\";s:0:\"\";s:12:\"add_new_item\";s:0:\"\";s:9:\"edit_item\";s:0:\"\";s:8:\"new_item\";s:0:\"\";s:9:\"view_item\";s:0:\"\";s:10:\"view_items\";s:0:\"\";s:12:\"search_items\";s:0:\"\";s:9:\"not_found\";s:0:\"\";s:18:\"not_found_in_trash\";s:0:\"\";s:17:\"parent_item_colon\";s:0:\"\";s:14:\"featured_image\";s:0:\"\";s:18:\"set_featured_image\";s:0:\"\";s:21:\"remove_featured_image\";s:0:\"\";s:18:\"use_featured_image\";s:0:\"\";s:8:\"archives\";s:0:\"\";s:16:\"insert_into_item\";s:0:\"\";s:21:\"uploaded_to_this_item\";s:0:\"\";s:17:\"filter_items_list\";s:0:\"\";s:21:\"items_list_navigation\";s:0:\"\";s:10:\"items_list\";s:0:\"\";s:10:\"attributes\";s:0:\"\";s:14:\"name_admin_bar\";s:0:\"\";s:14:\"item_published\";s:0:\"\";s:24:\"item_published_privately\";s:0:\"\";s:22:\"item_reverted_to_draft\";s:0:\"\";s:14:\"item_scheduled\";s:0:\"\";s:12:\"item_updated\";s:0:\"\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"1\";s:19:\"graphql_single_name\";s:21:\"translationFilterTest\";s:19:\"graphql_plural_name\";s:22:\"translationFilterTests\";}s:20:\"acf custom post type\";a:33:{s:4:\"name\";s:20:\"acf custom post type\";s:5:\"label\";s:26:\"ACF Custom post type posts\";s:14:\"singular_label\";s:25:\"ACF Custom post type post\";s:11:\"description\";s:0:\"\";s:6:\"public\";s:4:\"true\";s:18:\"publicly_queryable\";s:4:\"true\";s:7:\"show_ui\";s:4:\"true\";s:17:\"show_in_nav_menus\";s:4:\"true\";s:16:\"delete_with_user\";s:5:\"false\";s:12:\"show_in_rest\";s:4:\"true\";s:9:\"rest_base\";s:0:\"\";s:21:\"rest_controller_class\";s:0:\"\";s:11:\"has_archive\";s:5:\"false\";s:18:\"has_archive_string\";s:0:\"\";s:19:\"exclude_from_search\";s:5:\"false\";s:15:\"capability_type\";s:4:\"post\";s:12:\"hierarchical\";s:5:\"false\";s:7:\"rewrite\";s:4:\"true\";s:12:\"rewrite_slug\";s:0:\"\";s:17:\"rewrite_withfront\";s:4:\"true\";s:9:\"query_var\";s:4:\"true\";s:14:\"query_var_slug\";s:0:\"\";s:13:\"menu_position\";s:0:\"\";s:12:\"show_in_menu\";s:4:\"true\";s:19:\"show_in_menu_string\";s:0:\"\";s:9:\"menu_icon\";s:0:\"\";s:8:\"supports\";a:3:{i:0;s:5:\"title\";i:1;s:6:\"editor\";i:2;s:9:\"thumbnail\";}s:10:\"taxonomies\";a:0:{}s:6:\"labels\";a:30:{s:9:\"menu_name\";s:29:\"My ACF Custom post type posts\";s:9:\"all_items\";s:30:\"All ACF Custom post type posts\";s:7:\"add_new\";s:7:\"Add new\";s:12:\"add_new_item\";s:33:\"Add new ACF Custom post type post\";s:9:\"edit_item\";s:30:\"Edit ACF Custom post type post\";s:8:\"new_item\";s:29:\"New ACF Custom post type post\";s:9:\"view_item\";s:30:\"View ACF Custom post type post\";s:10:\"view_items\";s:31:\"View ACF Custom post type posts\";s:12:\"search_items\";s:33:\"Search ACF Custom post type posts\";s:9:\"not_found\";s:35:\"No ACF Custom post type posts found\";s:18:\"not_found_in_trash\";s:44:\"No ACF Custom post type posts found in trash\";s:6:\"parent\";s:33:\"Parent ACF Custom post type post:\";s:14:\"featured_image\";s:49:\"Featured image for this ACF Custom post type post\";s:18:\"set_featured_image\";s:53:\"Set featured image for this ACF Custom post type post\";s:21:\"remove_featured_image\";s:56:\"Remove featured image for this ACF Custom post type post\";s:18:\"use_featured_image\";s:56:\"Use as featured image for this ACF Custom post type post\";s:8:\"archives\";s:34:\"ACF Custom post type post archives\";s:16:\"insert_into_item\";s:37:\"Insert into ACF Custom post type post\";s:21:\"uploaded_to_this_item\";s:40:\"Upload to this ACF Custom post type post\";s:17:\"filter_items_list\";s:38:\"Filter ACF Custom post type posts list\";s:21:\"items_list_navigation\";s:42:\"ACF Custom post type posts list navigation\";s:10:\"items_list\";s:31:\"ACF Custom post type posts list\";s:10:\"attributes\";s:37:\"ACF Custom post type posts attributes\";s:14:\"name_admin_bar\";s:25:\"ACF Custom post type post\";s:14:\"item_published\";s:35:\"ACF Custom post type post published\";s:24:\"item_published_privately\";s:46:\"ACF Custom post type post published privately.\";s:22:\"item_reverted_to_draft\";s:44:\"ACF Custom post type post reverted to draft.\";s:14:\"item_scheduled\";s:35:\"ACF Custom post type post scheduled\";s:12:\"item_updated\";s:34:\"ACF Custom post type post updated.\";s:17:\"parent_item_colon\";s:33:\"Parent ACF Custom post type post:\";}s:15:\"custom_supports\";s:0:\"\";s:15:\"show_in_graphql\";s:1:\"0\";s:19:\"graphql_single_name\";s:6:\"acfCPT\";s:19:\"graphql_plural_name\";s:7:\"acfCPTs\";}}', 'yes'), -(203, 'wpseo', 'a:30:{s:8:\"tracking\";b:0;s:22:\"license_server_version\";s:1:\"2\";s:15:\"ms_defaults_set\";b:0;s:40:\"ignore_search_engines_discouraged_notice\";b:1;s:25:\"ignore_indexation_warning\";b:0;s:29:\"indexation_warning_hide_until\";b:0;s:18:\"indexation_started\";b:0;s:28:\"indexables_indexation_reason\";s:0:\"\";s:31:\"indexables_indexation_completed\";b:1;s:7:\"version\";s:4:\"14.9\";s:16:\"previous_version\";s:6:\"14.8.1\";s:20:\"disableadvanced_meta\";b:1;s:30:\"enable_headless_rest_endpoints\";b:1;s:17:\"ryte_indexability\";b:1;s:11:\"baiduverify\";s:0:\"\";s:12:\"googleverify\";s:0:\"\";s:8:\"msverify\";s:0:\"\";s:12:\"yandexverify\";s:0:\"\";s:9:\"site_type\";s:0:\"\";s:20:\"has_multiple_authors\";s:0:\"\";s:16:\"environment_type\";s:0:\"\";s:23:\"content_analysis_active\";b:1;s:23:\"keyword_analysis_active\";b:1;s:21:\"enable_admin_bar_menu\";b:1;s:26:\"enable_cornerstone_content\";b:1;s:18:\"enable_xml_sitemap\";b:1;s:24:\"enable_text_link_counter\";b:1;s:22:\"show_onboarding_notice\";b:1;s:18:\"first_activated_on\";i:1582657110;s:13:\"myyoast-oauth\";b:0;}', 'yes'), +(203, 'wpseo', 'a:44:{s:8:\"tracking\";b:0;s:22:\"license_server_version\";s:1:\"2\";s:15:\"ms_defaults_set\";b:0;s:40:\"ignore_search_engines_discouraged_notice\";b:1;s:19:\"indexing_first_time\";b:1;s:16:\"indexing_started\";b:0;s:15:\"indexing_reason\";s:26:\"permalink_settings_changed\";s:29:\"indexables_indexing_completed\";b:0;s:7:\"version\";s:4:\"16.2\";s:16:\"previous_version\";s:6:\"14.8.1\";s:20:\"disableadvanced_meta\";b:1;s:30:\"enable_headless_rest_endpoints\";b:1;s:17:\"ryte_indexability\";b:1;s:11:\"baiduverify\";s:0:\"\";s:12:\"googleverify\";s:0:\"\";s:8:\"msverify\";s:0:\"\";s:12:\"yandexverify\";s:0:\"\";s:9:\"site_type\";s:0:\"\";s:20:\"has_multiple_authors\";s:0:\"\";s:16:\"environment_type\";s:0:\"\";s:23:\"content_analysis_active\";b:1;s:23:\"keyword_analysis_active\";b:1;s:21:\"enable_admin_bar_menu\";b:1;s:26:\"enable_cornerstone_content\";b:1;s:18:\"enable_xml_sitemap\";b:1;s:24:\"enable_text_link_counter\";b:1;s:22:\"show_onboarding_notice\";b:1;s:18:\"first_activated_on\";i:1582657110;s:13:\"myyoast-oauth\";b:0;s:26:\"semrush_integration_active\";b:1;s:14:\"semrush_tokens\";a:0:{}s:20:\"semrush_country_code\";s:2:\"us\";s:19:\"permalink_structure\";s:36:\"/%year%/%monthnum%/%day%/%postname%/\";s:8:\"home_url\";s:21:\"http://localhost:8001\";s:18:\"dynamic_permalinks\";b:0;s:17:\"category_base_url\";s:0:\"\";s:12:\"tag_base_url\";s:0:\"\";s:21:\"custom_taxonomy_slugs\";a:0:{}s:29:\"enable_enhanced_slack_sharing\";b:1;s:25:\"zapier_integration_active\";b:0;s:19:\"zapier_subscription\";a:0:{}s:14:\"zapier_api_key\";s:0:\"\";s:23:\"enable_metabox_insights\";b:1;s:23:\"enable_link_suggestions\";b:1;}', 'yes'), (204, 'wpseo_titles', 'a:77:{s:10:\"title_test\";i:0;s:17:\"forcerewritetitle\";b:0;s:9:\"separator\";s:7:\"sc-dash\";s:16:\"title-home-wpseo\";s:42:\"%%sitename%% %%page%% %%sep%% %%sitedesc%%\";s:18:\"title-author-wpseo\";s:41:\"%%name%%, Author at %%sitename%% %%page%%\";s:19:\"title-archive-wpseo\";s:38:\"%%date%% %%page%% %%sep%% %%sitename%%\";s:18:\"title-search-wpseo\";s:63:\"You searched for %%searchphrase%% %%page%% %%sep%% %%sitename%%\";s:15:\"title-404-wpseo\";s:35:\"Page not found %%sep%% %%sitename%%\";s:19:\"metadesc-home-wpseo\";s:0:\"\";s:21:\"metadesc-author-wpseo\";s:0:\"\";s:22:\"metadesc-archive-wpseo\";s:0:\"\";s:9:\"rssbefore\";s:0:\"\";s:8:\"rssafter\";s:53:\"The post %%POSTLINK%% appeared first on %%BLOGLINK%%.\";s:20:\"noindex-author-wpseo\";b:0;s:28:\"noindex-author-noposts-wpseo\";b:1;s:21:\"noindex-archive-wpseo\";b:1;s:14:\"disable-author\";b:0;s:12:\"disable-date\";b:0;s:19:\"disable-post_format\";b:0;s:18:\"disable-attachment\";b:1;s:23:\"is-media-purge-relevant\";b:0;s:20:\"breadcrumbs-404crumb\";s:25:\"Error 404: Page not found\";s:29:\"breadcrumbs-display-blog-page\";b:1;s:20:\"breadcrumbs-boldlast\";b:0;s:25:\"breadcrumbs-archiveprefix\";s:12:\"Archives for\";s:18:\"breadcrumbs-enable\";b:0;s:16:\"breadcrumbs-home\";s:4:\"Home\";s:18:\"breadcrumbs-prefix\";s:0:\"\";s:24:\"breadcrumbs-searchprefix\";s:16:\"You searched for\";s:15:\"breadcrumbs-sep\";s:7:\"»\";s:12:\"website_name\";s:0:\"\";s:11:\"person_name\";s:0:\"\";s:11:\"person_logo\";s:0:\"\";s:14:\"person_logo_id\";i:0;s:22:\"alternate_website_name\";s:0:\"\";s:12:\"company_logo\";s:0:\"\";s:15:\"company_logo_id\";i:0;s:12:\"company_name\";s:0:\"\";s:17:\"company_or_person\";s:7:\"company\";s:25:\"company_or_person_user_id\";b:0;s:17:\"stripcategorybase\";b:0;s:10:\"title-post\";s:39:\"%%title%% %%page%% %%sep%% %%sitename%%\";s:13:\"metadesc-post\";s:0:\"\";s:12:\"noindex-post\";b:0;s:13:\"showdate-post\";b:0;s:23:\"display-metabox-pt-post\";b:1;s:23:\"post_types-post-maintax\";i:0;s:10:\"title-page\";s:39:\"%%title%% %%page%% %%sep%% %%sitename%%\";s:13:\"metadesc-page\";s:0:\"\";s:12:\"noindex-page\";b:0;s:13:\"showdate-page\";b:0;s:23:\"display-metabox-pt-page\";b:1;s:23:\"post_types-page-maintax\";i:0;s:16:\"title-attachment\";s:39:\"%%title%% %%page%% %%sep%% %%sitename%%\";s:19:\"metadesc-attachment\";s:0:\"\";s:18:\"noindex-attachment\";b:0;s:19:\"showdate-attachment\";b:0;s:29:\"display-metabox-pt-attachment\";b:1;s:29:\"post_types-attachment-maintax\";i:0;s:17:\"title-team_member\";s:39:\"%%title%% %%page%% %%sep%% %%sitename%%\";s:20:\"metadesc-team_member\";s:0:\"\";s:19:\"noindex-team_member\";b:0;s:20:\"showdate-team_member\";b:0;s:30:\"display-metabox-pt-team_member\";b:1;s:30:\"post_types-team_member-maintax\";i:0;s:18:\"title-tax-category\";s:53:\"%%term_title%% Archives %%page%% %%sep%% %%sitename%%\";s:21:\"metadesc-tax-category\";s:0:\"\";s:28:\"display-metabox-tax-category\";b:1;s:20:\"noindex-tax-category\";b:0;s:18:\"title-tax-post_tag\";s:53:\"%%term_title%% Archives %%page%% %%sep%% %%sitename%%\";s:21:\"metadesc-tax-post_tag\";s:0:\"\";s:28:\"display-metabox-tax-post_tag\";b:1;s:20:\"noindex-tax-post_tag\";b:0;s:21:\"title-tax-post_format\";s:53:\"%%term_title%% Archives %%page%% %%sep%% %%sitename%%\";s:24:\"metadesc-tax-post_format\";s:0:\"\";s:31:\"display-metabox-tax-post_format\";b:1;s:23:\"noindex-tax-post_format\";b:1;}', 'yes'), (205, 'wpseo_social', 'a:19:{s:13:\"facebook_site\";s:0:\"\";s:13:\"instagram_url\";s:0:\"\";s:12:\"linkedin_url\";s:0:\"\";s:11:\"myspace_url\";s:0:\"\";s:16:\"og_default_image\";s:0:\"\";s:19:\"og_default_image_id\";s:0:\"\";s:18:\"og_frontpage_title\";s:0:\"\";s:17:\"og_frontpage_desc\";s:0:\"\";s:18:\"og_frontpage_image\";s:0:\"\";s:21:\"og_frontpage_image_id\";s:0:\"\";s:9:\"opengraph\";b:1;s:13:\"pinterest_url\";s:0:\"\";s:15:\"pinterestverify\";s:0:\"\";s:7:\"twitter\";b:1;s:12:\"twitter_site\";s:0:\"\";s:17:\"twitter_card_type\";s:19:\"summary_large_image\";s:11:\"youtube_url\";s:0:\"\";s:13:\"wikipedia_url\";s:0:\"\";s:10:\"fbadminapp\";s:0:\"\";}', 'yes'), (206, 'wpseo_flush_rewrite', '1', 'yes'), @@ -429,9 +536,8 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (5077, 'widget_wpe_powered_by_widget', 'a:1:{s:12:\"_multiwidget\";i:1;}', 'yes'), (5078, 'wpe_notices', 'a:1:{s:4:\"read\";s:0:\"\";}', 'yes'), (5079, 'wpe_notices_ttl', '1618946008', 'yes'), -(5092, 'yoast_migrations_free', 'a:1:{s:7:\"version\";s:4:\"14.9\";}', 'yes'); -INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5102, 'wp_graphql_gutenberg_block_types', 'a:105:{s:23:\"woocommerce/all-reviews\";a:12:{s:4:\"name\";s:23:\"woocommerce/all-reviews\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:15:{s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"imageType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"reviewer\";}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:11:\"most-recent\";}s:17:\"reviewsOnLoadMore\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:17:\"reviewsOnPageLoad\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:12:\"showLoadMore\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"showOrderby\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"showReviewDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewerName\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:15:\"showReviewImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewRating\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"showReviewContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"previewReviews\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";N;}s:15:\"showProductName\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:11:\"All Reviews\";s:11:\"description\";s:35:\"Show a list of all product reviews.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:14:{s:8:\"editMode\";b:0;s:9:\"imageType\";s:8:\"reviewer\";s:7:\"orderby\";s:11:\"most-recent\";s:17:\"reviewsOnLoadMore\";i:10;s:17:\"reviewsOnPageLoad\";i:10;s:12:\"showLoadMore\";b:1;s:11:\"showOrderby\";b:1;s:14:\"showReviewDate\";b:1;s:16:\"showReviewerName\";b:1;s:15:\"showReviewImage\";b:1;s:16:\"showReviewRating\";b:1;s:17:\"showReviewContent\";b:1;s:14:\"previewReviews\";a:2:{i:0;a:12:{s:2:\"id\";i:1;s:12:\"date_created\";s:19:\"2019-07-15T17:05:04\";s:22:\"formatted_date_created\";s:13:\"July 15, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-15T15:05:04\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:5:\"Alice\";s:6:\"review\";s:67:\"

I bought this product last week and I\'m very happy with it.

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";i:5;s:8:\"verified\";b:1;}i:1;a:12:{s:2:\"id\";i:2;s:12:\"date_created\";s:19:\"2019-07-12T12:39:39\";s:22:\"formatted_date_created\";s:13:\"July 12, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-12T10:39:39\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:3:\"Bob\";s:6:\"review\";s:43:\"

This product is awesome, I love it!

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";N;s:8:\"verified\";b:0;}}s:15:\"showProductName\";b:1;}}s:10:\"variations\";a:0:{}}s:29:\"woocommerce/featured-category\";a:12:{s:4:\"name\";s:29:\"woocommerce/featured-category\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:15:{s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:6:\"height\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:500;}s:7:\"mediaId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:8:\"mediaSrc\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"linkText\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"Shop now\";}s:10:\"categoryId\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"showDesc\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:15:\"previewCategory\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";N;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:17:\"Featured Category\";s:11:\"description\";s:66:\"Visually highlight a product category and encourage prompt action.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:8:{s:12:\"contentAlign\";s:6:\"center\";s:8:\"dimRatio\";i:50;s:8:\"editMode\";b:0;s:6:\"height\";i:500;s:8:\"mediaSrc\";s:0:\"\";s:8:\"showDesc\";b:1;s:10:\"categoryId\";s:7:\"preview\";s:15:\"previewCategory\";a:8:{s:2:\"id\";i:1;s:4:\"name\";s:8:\"Clothing\";s:4:\"slug\";s:8:\"clothing\";s:6:\"parent\";i:0;s:5:\"count\";i:10;s:11:\"description\";s:50:\"

Branded t-shirts, jumpers, pants and more!

\n\";s:5:\"image\";a:8:{s:2:\"id\";i:1;s:12:\"date_created\";s:19:\"2019-07-15T17:05:04\";s:16:\"date_created_gmt\";s:19:\"2019-07-15T17:05:04\";s:13:\"date_modified\";s:19:\"2019-07-15T17:05:04\";s:17:\"date_modified_gmt\";s:19:\"2019-07-15T17:05:04\";s:3:\"src\";s:106:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/collection.jpg\";s:4:\"name\";s:0:\"\";s:3:\"alt\";s:0:\"\";}s:9:\"permalink\";s:1:\"#\";}}}s:10:\"variations\";a:0:{}}s:28:\"woocommerce/featured-product\";a:12:{s:4:\"name\";s:28:\"woocommerce/featured-product\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:16:{s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:6:\"height\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:500;}s:7:\"mediaId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:8:\"mediaSrc\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"linkText\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"Shop now\";}s:9:\"productId\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"showDesc\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"showPrice\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"previewProduct\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";N;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:16:\"Featured Product\";s:11:\"description\";s:70:\"Visually highlight a product or variation and encourage prompt action.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:8:{s:12:\"contentAlign\";s:6:\"center\";s:8:\"dimRatio\";i:50;s:8:\"editMode\";b:0;s:6:\"height\";i:500;s:8:\"mediaSrc\";s:0:\"\";s:8:\"showDesc\";b:1;s:9:\"productId\";s:7:\"preview\";s:14:\"previewProduct\";a:18:{s:2:\"id\";i:1;s:4:\"name\";s:17:\"WordPress Pennant\";s:9:\"variation\";s:0:\"\";s:9:\"permalink\";s:19:\"https://example.org\";s:3:\"sku\";s:10:\"wp-pennant\";s:17:\"short_description\";s:150:\"Fly your WordPress banner with this beauty! Deck out your office space or add it to your kids walls. This banner will spruce up any space it’s hung!\";s:11:\"description\";s:278:\"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.\";s:5:\"price\";s:4:\"7.99\";s:10:\"price_html\";s:112:\"$7.99\";s:6:\"images\";a:1:{i:0;a:7:{s:2:\"id\";i:1;s:3:\"src\";s:103:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/pennant.jpg\";s:9:\"thumbnail\";s:103:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/pennant.jpg\";s:4:\"name\";s:13:\"pennant-1.jpg\";s:3:\"alt\";s:17:\"WordPress Pennant\";s:6:\"srcset\";s:0:\"\";s:5:\"sizes\";s:0:\"\";}}s:14:\"average_rating\";i:5;s:12:\"review_count\";i:1;s:6:\"prices\";a:10:{s:13:\"currency_code\";s:3:\"GBP\";s:17:\"decimal_separator\";s:1:\".\";s:18:\"thousand_separator\";s:1:\",\";s:8:\"decimals\";i:2;s:12:\"price_prefix\";s:2:\"£\";s:12:\"price_suffix\";s:0:\"\";s:5:\"price\";s:4:\"7.99\";s:13:\"regular_price\";s:4:\"9.99\";s:10:\"sale_price\";s:4:\"7.99\";s:11:\"price_range\";N;}s:11:\"add_to_cart\";a:2:{s:4:\"text\";s:11:\"Add to cart\";s:11:\"description\";s:11:\"Add to cart\";}s:11:\"has_options\";b:0;s:14:\"is_purchasable\";b:1;s:11:\"is_in_stock\";b:1;s:7:\"on_sale\";b:1;}}}s:10:\"variations\";a:0:{}}s:31:\"woocommerce/handpicked-products\";a:13:{s:4:\"name\";s:31:\"woocommerce/handpicked-products\";s:8:\"keywords\";a:2:{i:0;s:19:\"Handpicked Products\";i:1;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:8:\"products\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:20:\"Hand-picked Products\";s:11:\"description\";s:54:\"Display a selection of hand-picked products in a grid.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:7:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:8:\"products\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:32:\"woocommerce/product-best-sellers\";a:13:{s:4:\"name\";s:32:\"woocommerce/product-best-sellers\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:21:\"Best Selling Products\";s:11:\"description\";s:54:\"Display a grid of your all-time best selling products.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:30:\"woocommerce/product-categories\";a:13:{s:4:\"name\";s:30:\"woocommerce/product-categories\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:7:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"hasCount\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:8:\"hasImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"hasEmpty\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"isDropdown\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:14:\"isHierarchical\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:23:\"Product Categories List\";s:11:\"description\";s:50:\"Show all product categories as a list or dropdown.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:8:\"hasCount\";b:1;s:8:\"hasImage\";b:0;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:5:{s:8:\"hasCount\";a:5:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"div\";s:9:\"attribute\";s:14:\"data-has-count\";}s:8:\"hasEmpty\";a:5:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"div\";s:9:\"attribute\";s:14:\"data-has-empty\";}s:10:\"isDropdown\";a:5:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"div\";s:9:\"attribute\";s:16:\"data-is-dropdown\";}s:14:\"isHierarchical\";a:5:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"div\";s:9:\"attribute\";s:20:\"data-is-hierarchical\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:28:\"woocommerce/product-category\";a:13:{s:4:\"name\";s:28:\"woocommerce/product-category\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:11:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:20:\"Products by Category\";s:11:\"description\";s:57:\"Display a grid of products from your selected categories.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:10:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:23:\"woocommerce/product-new\";a:13:{s:4:\"name\";s:23:\"woocommerce/product-new\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:15:\"Newest Products\";s:11:\"description\";s:39:\"Display a grid of your newest products.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:27:\"woocommerce/product-on-sale\";a:13:{s:4:\"name\";s:27:\"woocommerce/product-on-sale\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:10:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:16:\"On Sale Products\";s:11:\"description\";s:45:\"Display a grid of products currently on sale.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:9:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:33:\"woocommerce/products-by-attribute\";a:13:{s:4:\"name\";s:33:\"woocommerce/products-by-attribute\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:11:{s:10:\"attributes\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:12:\"attrOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:21:\"Products by Attribute\";s:11:\"description\";s:52:\"Display a grid of products with selected attributes.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:10:\"attributes\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:12:\"attrOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:29:\"woocommerce/product-top-rated\";a:13:{s:4:\"name\";s:29:\"woocommerce/product-top-rated\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:18:\"Top Rated Products\";s:11:\"description\";s:42:\"Display a grid of your top rated products.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"catOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:30:\"woocommerce/reviews-by-product\";a:12:{s:4:\"name\";s:30:\"woocommerce/reviews-by-product\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:15:{s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"imageType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"reviewer\";}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:11:\"most-recent\";}s:17:\"reviewsOnLoadMore\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:17:\"reviewsOnPageLoad\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:12:\"showLoadMore\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"showOrderby\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"showReviewDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewerName\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:15:\"showReviewImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewRating\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"showReviewContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"previewReviews\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";N;}s:9:\"productId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:18:\"Reviews by Product\";s:11:\"description\";s:45:\"Show reviews of your products to build trust.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:14:{s:8:\"editMode\";b:0;s:9:\"imageType\";s:8:\"reviewer\";s:7:\"orderby\";s:11:\"most-recent\";s:17:\"reviewsOnLoadMore\";i:10;s:17:\"reviewsOnPageLoad\";i:10;s:12:\"showLoadMore\";b:1;s:11:\"showOrderby\";b:1;s:14:\"showReviewDate\";b:1;s:16:\"showReviewerName\";b:1;s:15:\"showReviewImage\";b:1;s:16:\"showReviewRating\";b:1;s:17:\"showReviewContent\";b:1;s:14:\"previewReviews\";a:2:{i:0;a:12:{s:2:\"id\";i:1;s:12:\"date_created\";s:19:\"2019-07-15T17:05:04\";s:22:\"formatted_date_created\";s:13:\"July 15, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-15T15:05:04\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:5:\"Alice\";s:6:\"review\";s:67:\"

I bought this product last week and I\'m very happy with it.

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";i:5;s:8:\"verified\";b:1;}i:1;a:12:{s:2:\"id\";i:2;s:12:\"date_created\";s:19:\"2019-07-12T12:39:39\";s:22:\"formatted_date_created\";s:13:\"July 12, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-12T10:39:39\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:3:\"Bob\";s:6:\"review\";s:43:\"

This product is awesome, I love it!

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";N;s:8:\"verified\";b:0;}}s:9:\"productId\";i:1;}}s:10:\"variations\";a:0:{}}s:31:\"woocommerce/reviews-by-category\";a:12:{s:4:\"name\";s:31:\"woocommerce/reviews-by-category\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:16:{s:8:\"editMode\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"imageType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"reviewer\";}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:11:\"most-recent\";}s:17:\"reviewsOnLoadMore\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:17:\"reviewsOnPageLoad\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:10;}s:12:\"showLoadMore\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"showOrderby\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"showReviewDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewerName\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:15:\"showReviewImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showReviewRating\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"showReviewContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"previewReviews\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";N;}s:11:\"categoryIds\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:15:\"showProductName\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:19:\"Reviews by Category\";s:11:\"description\";s:46:\"Show product reviews from specific categories.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:15:{s:8:\"editMode\";b:0;s:9:\"imageType\";s:8:\"reviewer\";s:7:\"orderby\";s:11:\"most-recent\";s:17:\"reviewsOnLoadMore\";i:10;s:17:\"reviewsOnPageLoad\";i:10;s:12:\"showLoadMore\";b:1;s:11:\"showOrderby\";b:1;s:14:\"showReviewDate\";b:1;s:16:\"showReviewerName\";b:1;s:15:\"showReviewImage\";b:1;s:16:\"showReviewRating\";b:1;s:17:\"showReviewContent\";b:1;s:14:\"previewReviews\";a:2:{i:0;a:12:{s:2:\"id\";i:1;s:12:\"date_created\";s:19:\"2019-07-15T17:05:04\";s:22:\"formatted_date_created\";s:13:\"July 15, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-15T15:05:04\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:5:\"Alice\";s:6:\"review\";s:67:\"

I bought this product last week and I\'m very happy with it.

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";i:5;s:8:\"verified\";b:1;}i:1;a:12:{s:2:\"id\";i:2;s:12:\"date_created\";s:19:\"2019-07-12T12:39:39\";s:22:\"formatted_date_created\";s:13:\"July 12, 2019\";s:16:\"date_created_gmt\";s:19:\"2019-07-12T10:39:39\";s:10:\"product_id\";i:0;s:12:\"product_name\";s:17:\"WordPress Pennant\";s:17:\"product_permalink\";s:1:\"#\";s:8:\"reviewer\";s:3:\"Bob\";s:6:\"review\";s:43:\"

This product is awesome, I love it!

\n\";s:20:\"reviewer_avatar_urls\";a:2:{i:48;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";i:96;s:102:\"http://localhost:8001/wp-content/plugins/woocommerce/packages/woocommerce-blocks/assets/img/avatar.jpg\";}s:6:\"rating\";N;s:8:\"verified\";b:0;}}s:11:\"categoryIds\";a:1:{i:0;i:1;}s:15:\"showProductName\";b:1;}}s:10:\"variations\";a:0:{}}s:26:\"woocommerce/product-search\";a:12:{s:4:\"name\";s:26:\"woocommerce/product-search\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:6:{s:8:\"hasLabel\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"label\";a:4:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"Search\";s:6:\"source\";s:4:\"text\";s:8:\"selector\";s:5:\"label\";}s:11:\"placeholder\";a:5:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:18:\"Search products…\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:36:\"input.wc-block-product-search__field\";s:9:\"attribute\";s:11:\"placeholder\";}s:6:\"formId\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}}s:6:\"styles\";a:0:{}s:5:\"title\";s:14:\"Product Search\";s:11:\"description\";s:66:\"A search box to allow customers to search for products by keyword.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:8:\"hasLabel\";b:1;}}s:10:\"variations\";a:0:{}}s:23:\"woocommerce/product-tag\";a:12:{s:4:\"name\";s:23:\"woocommerce/product-tag\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:10:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"alignButtons\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:17:\"contentVisibility\";a:2:{s:4:\"type\";s:6:\"object\";s:7:\"default\";a:4:{s:5:\"title\";b:1;s:5:\"price\";b:1;s:6:\"rating\";b:1;s:6:\"button\";b:1;}}s:4:\"tags\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:11:\"tagOperator\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"any\";}s:7:\"orderby\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:15:\"Products by Tag\";s:11:\"description\";s:46:\"Display a grid of products with selected tags.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"variations\";a:0:{}}s:25:\"woocommerce/product-title\";a:13:{s:4:\"name\";s:25:\"woocommerce/product-title\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:4:{s:12:\"headingLevel\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"productLink\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:13:\"Product Title\";s:11:\"description\";s:31:\"Display the title of a product.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:25:\"woocommerce/product-price\";a:13:{s:4:\"name\";s:25:\"woocommerce/product-price\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:2:{s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:13:\"Product Price\";s:11:\"description\";s:31:\"Display the price of a product.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:25:\"woocommerce/product-image\";a:13:{s:4:\"name\";s:25:\"woocommerce/product-image\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:6:{s:11:\"productLink\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:13:\"showSaleBadge\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"saleBadgeAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"right\";}s:11:\"imageSizing\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:9:\"full-size\";}s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:13:\"Product Image\";s:11:\"description\";s:30:\"Display the main product image\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:26:\"woocommerce/product-rating\";a:13:{s:4:\"name\";s:26:\"woocommerce/product-rating\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:2:{s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:14:\"Product Rating\";s:11:\"description\";s:40:\"Display the average rating of a product.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:26:\"woocommerce/product-button\";a:13:{s:4:\"name\";s:26:\"woocommerce/product-button\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:2:{s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:18:\"Add to Cart Button\";s:11:\"description\";s:104:\"Display a call to action button which either adds the product to the cart, or links to the product page.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:27:\"woocommerce/product-summary\";a:13:{s:4:\"name\";s:27:\"woocommerce/product-summary\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:2:{s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:15:\"Product Summary\";s:11:\"description\";s:44:\"Display a short description about a product.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:30:\"woocommerce/product-sale-badge\";a:13:{s:4:\"name\";s:30:\"woocommerce/product-sale-badge\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:2:{s:9:\"productId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:13:\"On-Sale Badge\";s:11:\"description\";s:52:\"Displays an on-sale badge if the product is on-sale.\";s:8:\"category\";s:28:\"woocommerce-product-elements\";s:6:\"parent\";a:2:{i:0;s:25:\"@woocommerce/all-products\";i:1;s:27:\"@woocommerce/single-product\";}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:24:\"woocommerce/all-products\";a:14:{s:4:\"name\";s:24:\"woocommerce/all-products\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"rows\";a:1:{s:4:\"type\";s:6:\"number\";}s:12:\"alignButtons\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:17:\"contentVisibility\";a:1:{s:4:\"type\";s:6:\"object\";}s:7:\"orderby\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"layoutConfig\";a:1:{s:4:\"type\";s:5:\"array\";}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"All Products\";s:11:\"description\";s:50:\"Display products from your store in a grid layout.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:8:\"defaults\";a:7:{s:7:\"columns\";i:3;s:4:\"rows\";i:3;s:12:\"alignButtons\";b:0;s:17:\"contentVisibility\";a:1:{s:7:\"orderBy\";b:1;}s:7:\"orderby\";s:4:\"date\";s:12:\"layoutConfig\";a:5:{i:0;a:1:{i:0;s:25:\"woocommerce/product-image\";}i:1;a:1:{i:0;s:25:\"woocommerce/product-title\";}i:2;a:1:{i:0;s:25:\"woocommerce/product-price\";}i:3;a:1:{i:0;s:26:\"woocommerce/product-rating\";}i:4;a:1:{i:0;s:26:\"woocommerce/product-button\";}}s:9:\"isPreview\";b:0;}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"rows\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:1;}s:12:\"alignButtons\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:17:\"contentVisibility\";a:1:{s:4:\"type\";s:6:\"object\";}s:7:\"orderby\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"layoutConfig\";a:1:{s:4:\"type\";s:5:\"array\";}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:24:\"woocommerce/price-filter\";a:12:{s:4:\"name\";s:24:\"woocommerce/price-filter\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:5:{s:15:\"showInputFields\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:16:\"showFilterButton\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:7:\"heading\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:15:\"Filter by price\";}s:12:\"headingLevel\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:4:\"html\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:24:\"Filter Products by Price\";s:11:\"description\";s:130:\"Allow customers to filter the products by choosing a lower or upper price limit. Works in combination with the All Products block.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:28:\"woocommerce/attribute-filter\";a:12:{s:4:\"name\";s:28:\"woocommerce/attribute-filter\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:9:{s:11:\"attributeId\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:0;}s:10:\"showCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"queryType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"or\";}s:7:\"heading\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:19:\"Filter by attribute\";}s:12:\"headingLevel\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:12:\"displayStyle\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:16:\"showFilterButton\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"isPreview\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:28:\"Filter Products by Attribute\";s:11:\"description\";s:121:\"Allow customers to filter the grid by product attribute, such as color. Works in combination with the All Products block.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"isPreview\";b:1;}}s:10:\"variations\";a:0:{}}s:26:\"woocommerce/active-filters\";a:12:{s:4:\"name\";s:26:\"woocommerce/active-filters\";s:8:\"keywords\";a:1:{i:0;s:11:\"WooCommerce\";}s:10:\"attributes\";a:4:{s:12:\"displayStyle\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"heading\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:14:\"Active filters\";}s:12:\"headingLevel\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:4:\"html\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:22:\"Active Product Filters\";s:11:\"description\";s:105:\"Show the currently active product filters. Works in combination with the All Products and filters blocks.\";s:8:\"category\";s:11:\"woocommerce\";s:7:\"example\";a:1:{s:10:\"attributes\";a:0:{}}s:10:\"variations\";a:0:{}}s:18:\"yoast/how-to-block\";a:13:{s:4:\"name\";s:18:\"yoast/how-to-block\";s:8:\"keywords\";a:5:{i:0;s:6:\"How-to\";i:1;s:6:\"How to\";i:2;s:6:\"Schema\";i:3;s:3:\"SEO\";i:4;s:15:\"Structured Data\";}s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"Yoast How-to\";s:11:\"description\";s:89:\"Create a How-to guide in an SEO-friendly way. You can only use one How-to block per post.\";s:8:\"category\";s:28:\"yoast-structured-data-blocks\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:5:\"steps\";a:2:{i:0;a:3:{s:2:\"id\";s:25:\"how-to-step-1602177822453\";s:4:\"name\";a:0:{}s:4:\"text\";a:0:{}}i:1;a:3:{s:2:\"id\";s:25:\"how-to-step-1602177822453\";s:4:\"name\";a:0:{}s:4:\"text\";a:0:{}}}}}s:10:\"deprecated\";a:2:{i:0;a:1:{s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:15:\"yoast/faq-block\";a:13:{s:4:\"name\";s:15:\"yoast/faq-block\";s:8:\"keywords\";a:5:{i:0;s:3:\"FAQ\";i:1;s:26:\"Frequently Asked Questions\";i:2;s:6:\"Schema\";i:3;s:3:\"SEO\";i:4;s:15:\"Structured Data\";}s:10:\"attributes\";a:3:{s:9:\"questions\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:9:\"Yoast FAQ\";s:11:\"description\";s:101:\"List your Frequently Asked Questions in an SEO-friendly way. You can only use one FAQ block per post.\";s:8:\"category\";s:28:\"yoast-structured-data-blocks\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"questions\";a:3:{i:0;a:3:{s:2:\"id\";s:26:\"faq-question-1602177822454\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}i:1;a:3:{s:2:\"id\";s:26:\"faq-question-1602177822454\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}i:2;a:3:{s:2:\"id\";s:26:\"faq-question-1602177822454\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}}}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:3:{s:9:\"questions\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:14:\"core/paragraph\";a:13:{s:4:\"name\";s:14:\"core/paragraph\";s:8:\"keywords\";a:1:{i:0;s:4:\"text\";}s:10:\"attributes\";a:11:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:9:{s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:17:\"lightBlockWrapper\";b:1;s:19:\"__experimentalColor\";a:1:{s:9:\"linkColor\";b:1;}s:22:\"__experimentalFontSize\";b:1;s:24:\"__experimentalLineHeight\";b:1;s:22:\"__experimentalFeatures\";a:1:{s:10:\"typography\";a:1:{s:7:\"dropCap\";b:1;}}s:22:\"__experimentalSelector\";s:1:\"p\";s:25:\"__unstablePasteTextInline\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:9:\"Paragraph\";s:11:\"description\";s:47:\"Start with the building block of all narrative.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:7:\"content\";s:224:\"In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.\";s:5:\"style\";a:1:{s:10:\"typography\";a:1:{s:8:\"fontSize\";i:28;}}s:7:\"dropCap\";b:1;}}s:10:\"deprecated\";a:5:{i:0;a:2:{s:10:\"attributes\";a:12:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:1;a:2:{s:10:\"attributes\";a:12:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:2;a:2:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:3;a:2:{s:10:\"attributes\";a:9:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:4;a:2:{s:10:\"attributes\";a:10:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}}s:10:\"variations\";a:0:{}}s:10:\"core/image\";a:13:{s:4:\"name\";s:10:\"core/image\";s:8:\"keywords\";a:2:{i:0;s:3:\"img\";i:1;s:5:\"photo\";}s:10:\"attributes\";a:16:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:5:\"title\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"sizeSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"rounded\";s:5:\"label\";s:7:\"Rounded\";}}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Image\";s:11:\"description\";s:43:\"Insert an image to make a visual statement.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:8:\"sizeSlug\";s:5:\"large\";s:3:\"url\";s:44:\"https://s.w.org/images/core/5.3/MtBlanc1.jpg\";s:7:\"caption\";s:46:\"Mont Blanc appears—still, snowy, and serene.\";}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:12:\"core/heading\";a:13:{s:4:\"name\";s:12:\"core/heading\";s:8:\"keywords\";a:2:{i:0;s:5:\"title\";i:1;s:8:\"subtitle\";}s:10:\"attributes\";a:10:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:8:{s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:17:\"lightBlockWrapper\";b:1;s:19:\"__experimentalColor\";a:1:{s:9:\"linkColor\";b:1;}s:22:\"__experimentalFontSize\";b:1;s:24:\"__experimentalLineHeight\";b:1;s:22:\"__experimentalSelector\";a:6:{s:15:\"core/heading/h1\";s:2:\"h1\";s:15:\"core/heading/h2\";s:2:\"h2\";s:15:\"core/heading/h3\";s:2:\"h3\";s:15:\"core/heading/h4\";s:2:\"h4\";s:15:\"core/heading/h5\";s:2:\"h5\";s:15:\"core/heading/h6\";s:2:\"h6\";}s:25:\"__unstablePasteTextInline\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:7:\"Heading\";s:11:\"description\";s:123:\"Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:7:\"content\";s:14:\"Code is Poetry\";s:5:\"level\";i:2;}}s:10:\"deprecated\";a:3:{i:0;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}i:1;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}i:2;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}}s:10:\"variations\";a:0:{}}s:12:\"core/gallery\";a:13:{s:4:\"name\";s:12:\"core/gallery\";s:8:\"keywords\";a:2:{i:0;s:6:\"images\";i:1;s:6:\"photos\";}s:10:\"attributes\";a:10:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:20:\".blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:4:\"link\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:29:\".blocks-gallery-item__caption\";}}}s:3:\"ids\";a:3:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"number\";}s:7:\"default\";a:0:{}}s:7:\"columns\";a:3:{s:4:\"type\";s:6:\"number\";s:7:\"minimum\";i:1;s:7:\"maximum\";i:8;}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:23:\".blocks-gallery-caption\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:8:\"sizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"large\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:7:\"Gallery\";s:11:\"description\";s:42:\"Display multiple images in a rich gallery.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";i:2;s:6:\"images\";a:2:{i:0;a:1:{s:3:\"url\";s:59:\"https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg\";}i:1;a:1:{s:3:\"url\";s:70:\"https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg\";}}}}s:10:\"deprecated\";a:4:{i:0;a:2:{s:10:\"attributes\";a:8:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:20:\".blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:29:\".blocks-gallery-item__caption\";}}}s:3:\"ids\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:23:\".blocks-gallery-caption\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:1;a:2:{s:10:\"attributes\";a:7:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:40:\"ul.wp-block-gallery .blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:7:\"caption\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:10:\"figcaption\";}}}s:3:\"ids\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:2;a:2:{s:10:\"attributes\";a:6:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:40:\"ul.wp-block-gallery .blocks-gallery-item\";s:5:\"query\";a:5:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:7:\"caption\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:10:\"figcaption\";}}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:3;a:2:{s:10:\"attributes\";a:6:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:52:\"div.wp-block-gallery figure.blocks-gallery-image img\";s:5:\"query\";a:3:{s:3:\"url\";a:2:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:3:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:2:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:7:\"data-id\";}}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:9:\"core/list\";a:12:{s:4:\"name\";s:9:\"core/list\";s:8:\"keywords\";a:3:{i:0;s:11:\"bullet list\";i:1;s:12:\"ordered list\";i:2;s:13:\"numbered list\";}s:10:\"attributes\";a:7:{s:7:\"ordered\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:6:\"values\";a:6:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:5:\"ol,ul\";s:9:\"multiline\";s:2:\"li\";s:30:\"__unstableMultilineWrapperTags\";a:2:{i:0;s:2:\"ol\";i:1;s:2:\"ul\";}s:7:\"default\";s:0:\"\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"start\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"reversed\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:25:\"__unstablePasteTextInline\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:4:\"List\";s:11:\"description\";s:35:\"Create a bulleted or numbered list.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:6:\"values\";s:120:\"
  • Alice.
  • The White Rabbit.
  • The Cheshire Cat.
  • The Mad Hatter.
  • The Queen of Hearts.
  • \";}}s:10:\"variations\";a:0:{}}s:10:\"core/quote\";a:13:{s:4:\"name\";s:10:\"core/quote\";s:8:\"keywords\";a:2:{i:0;s:10:\"blockquote\";i:1;s:4:\"cite\";}s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:5:\"large\";s:5:\"label\";s:5:\"Large\";}}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Quote\";s:11:\"description\";s:93:\"Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:5:\"value\";s:44:\"

    In quoting others, we cite ourselves.

    \";s:8:\"citation\";s:15:\"Julio Cortázar\";s:9:\"className\";s:14:\"is-style-large\";}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:4:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:6:\"footer\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:14:\"core/shortcode\";a:11:{s:4:\"name\";s:14:\"core/shortcode\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:4:\"text\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:9:\"Shortcode\";s:11:\"description\";s:61:\"Insert additional custom elements with a WordPress shortcode.\";s:10:\"variations\";a:0:{}}s:13:\"core/archives\";a:12:{s:4:\"name\";s:13:\"core/archives\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:17:\"displayAsDropdown\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:14:\"showPostCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:8:\"Archives\";s:11:\"description\";s:40:\"Display a monthly archive of your posts.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:10:\"core/audio\";a:12:{s:4:\"name\";s:10:\"core/audio\";s:8:\"keywords\";a:4:{i:0;s:5:\"music\";i:1;s:5:\"sound\";i:2;s:7:\"podcast\";i:3;s:9:\"recording\";}s:10:\"attributes\";a:9:{s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:3:\"src\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:8:\"autoplay\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:4:\"loop\";}s:7:\"preload\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:7:\"preload\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Audio\";s:11:\"description\";s:28:\"Embed a simple audio player.\";s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:8:{s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:3:\"src\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:8:\"autoplay\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:4:\"loop\";}s:7:\"preload\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:7:\"preload\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:11:\"core/button\";a:14:{s:4:\"name\";s:11:\"core/button\";s:8:\"keywords\";a:1:{i:0;s:4:\"link\";}s:10:\"attributes\";a:14:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:9:\"alignWide\";b:0;s:8:\"reusable\";b:0;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:4:\"fill\";s:5:\"label\";s:4:\"Fill\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"outline\";s:5:\"label\";s:7:\"Outline\";}}s:8:\"category\";s:6:\"design\";s:6:\"parent\";a:1:{i:0;s:12:\"core/buttons\";}s:5:\"title\";s:6:\"Button\";s:11:\"description\";s:56:\"Prompt visitors to take action with a button-style link.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:9:\"className\";s:13:\"is-style-fill\";s:15:\"backgroundColor\";s:16:\"vivid-green-cyan\";s:4:\"text\";s:14:\"Call to Action\";}}s:10:\"deprecated\";a:6:{i:0;a:2:{s:10:\"attributes\";a:13:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";b:1;s:9:\"alignWide\";b:0;s:19:\"__experimentalColor\";a:1:{s:9:\"gradients\";b:1;}}}i:1;a:2:{s:10:\"attributes\";a:15:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:9:\"alignWide\";b:0;}}i:2;a:1:{s:10:\"attributes\";a:12:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:3;a:1:{s:10:\"attributes\";a:9:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:4;a:1:{s:10:\"attributes\";a:7:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:5;a:1:{s:10:\"attributes\";a:7:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:12:\"core/buttons\";a:11:{s:4:\"name\";s:12:\"core/buttons\";s:8:\"keywords\";a:1:{i:0;s:4:\"link\";}s:10:\"attributes\";a:3:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:9:\"alignWide\";b:0;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:7:\"Buttons\";s:11:\"description\";s:66:\"Prompt visitors to take action with a group of button-style links.\";s:10:\"variations\";a:0:{}}s:13:\"core/calendar\";a:12:{s:4:\"name\";s:13:\"core/calendar\";s:8:\"keywords\";a:2:{i:0;s:5:\"posts\";i:1;s:7:\"archive\";}s:10:\"attributes\";a:4:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"month\";a:1:{s:4:\"type\";s:7:\"integer\";}s:4:\"year\";a:1:{s:4:\"type\";s:7:\"integer\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:8:\"Calendar\";s:11:\"description\";s:34:\"A calendar of your site’s posts.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:15:\"core/categories\";a:12:{s:4:\"name\";s:15:\"core/categories\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:5:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:17:\"displayAsDropdown\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"showHierarchy\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:14:\"showPostCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:10:\"Categories\";s:11:\"description\";s:33:\"Display a list of all categories.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:9:\"core/code\";a:12:{s:4:\"name\";s:9:\"core/code\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"text\";s:8:\"selector\";s:4:\"code\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:4:\"Code\";s:11:\"description\";s:57:\"Display code snippets that respect your spacing and tabs.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:179:\"// A \"block\" is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );\";}}s:10:\"variations\";a:0:{}}s:12:\"core/columns\";a:13:{s:4:\"name\";s:12:\"core/columns\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:8:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:6:\"anchor\";b:1;s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;s:19:\"__experimentalColor\";a:2:{s:9:\"gradients\";b:1;s:9:\"linkColor\";b:1;}}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:7:\"Columns\";s:11:\"description\";s:101:\"Add a block that displays content in multiple columns, then add whatever content blocks you’d like.\";s:10:\"variations\";a:5:{i:0;a:7:{s:4:\"name\";s:17:\"two-columns-equal\";s:5:\"title\";s:7:\"50 / 50\";s:11:\"description\";s:24:\"Two columns; equal split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H25V34H39ZM23 34H9V14H23V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:9:\"isDefault\";b:1;s:11:\"innerBlocks\";a:2:{i:0;a:1:{i:0;s:11:\"core/column\";}i:1;a:1:{i:0;s:11:\"core/column\";}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:1;a:6:{s:4:\"name\";s:32:\"two-columns-one-third-two-thirds\";s:5:\"title\";s:7:\"30 / 70\";s:11:\"description\";s:40:\"Two columns; one-third, two-thirds split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H20V34H39ZM18 34H9V14H18V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:2:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";d:33.33;}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";d:66.66;}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:2;a:6:{s:4:\"name\";s:32:\"two-columns-two-thirds-one-third\";s:5:\"title\";s:7:\"70 / 30\";s:11:\"description\";s:40:\"Two columns; two-thirds, one-third split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H30V34H39ZM28 34H9V14H28V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:2:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";d:66.66;}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";d:33.33;}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:3;a:6:{s:4:\"name\";s:19:\"three-columns-equal\";s:5:\"title\";s:12:\"33 / 33 / 33\";s:11:\"description\";s:26:\"Three columns; equal split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:8:\"fillRule\";s:7:\"evenodd\";s:1:\"d\";s:132:\"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM28.5 34h-9V14h9v20zm2 0V14H39v20h-8.5zm-13 0H9V14h8.5v20z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:3:{i:0;a:1:{i:0;s:11:\"core/column\";}i:1;a:1:{i:0;s:11:\"core/column\";}i:2;a:1:{i:0;s:11:\"core/column\";}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:4;a:6:{s:4:\"name\";s:26:\"three-columns-wider-center\";s:5:\"title\";s:12:\"25 / 50 / 25\";s:11:\"description\";s:33:\"Three columns; wide center column\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:8:\"fillRule\";s:7:\"evenodd\";s:1:\"d\";s:126:\"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM31 34H17V14h14v20zm2 0V14h6v20h-6zm-18 0H9V14h6v20z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:3:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";i:25;}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";i:50;}}i:2;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";i:25;}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}}s:7:\"example\";a:1:{s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:11:\"core/column\";s:11:\"innerBlocks\";a:3:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:83:\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.\";}}i:1;a:2:{s:4:\"name\";s:10:\"core/image\";s:10:\"attributes\";a:1:{s:3:\"url\";s:49:\"https://s.w.org/images/core/5.3/Windbuchencom.jpg\";}}i:2;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:59:\"Suspendisse commodo neque lacus, a dictum orci interdum et.\";}}}}i:1;a:2:{s:4:\"name\";s:11:\"core/column\";s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:157:\"Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:103:\"Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.\";}}}}}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:6:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}}s:11:\"core/column\";a:12:{s:4:\"name\";s:11:\"core/column\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"width\";a:3:{s:4:\"type\";s:6:\"number\";s:3:\"min\";i:0;s:3:\"max\";i:100;}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:8:\"reusable\";b:0;s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:6:\"parent\";a:1:{i:0;s:12:\"core/columns\";}s:5:\"title\";s:6:\"Column\";s:11:\"description\";s:39:\"A single column within a columns block.\";s:10:\"variations\";a:0:{}}s:10:\"core/cover\";a:13:{s:4:\"name\";s:10:\"core/cover\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:17:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:13:\"minHeightUnit\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"contentPosition\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;s:21:\"__experimentalPadding\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Cover\";s:11:\"description\";s:64:\"Add an image or video with a text overlay — great for headers.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:3:{s:18:\"customOverlayColor\";s:7:\"#065174\";s:8:\"dimRatio\";i:40;s:3:\"url\";s:49:\"https://s.w.org/images/core/5.3/Windbuchencom.jpg\";}s:11:\"innerBlocks\";a:1:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:14:\"customFontSize\";i:48;s:7:\"content\";s:28:\"Snow Patrol\";s:5:\"align\";s:6:\"center\";}}}}s:10:\"deprecated\";a:5:{i:0;a:1:{s:10:\"attributes\";a:14:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:14:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:3;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:4;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:2:\"h2\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}}s:10:\"variations\";a:0:{}}s:10:\"core/embed\";a:12:{s:4:\"name\";s:10:\"core/embed\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:5:\"Embed\";s:11:\"description\";s:77:\"Embed videos, images, tweets, audio, and other content from external sources.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/twitter\";a:12:{s:4:\"name\";s:18:\"core-embed/twitter\";s:8:\"keywords\";a:2:{i:0;s:5:\"tweet\";i:1;s:6:\"social\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"Twitter\";s:11:\"description\";s:14:\"Embed a tweet.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/youtube\";a:12:{s:4:\"name\";s:18:\"core-embed/youtube\";s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"video\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"YouTube\";s:11:\"description\";s:22:\"Embed a YouTube video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:19:\"core-embed/facebook\";a:12:{s:4:\"name\";s:19:\"core-embed/facebook\";s:8:\"keywords\";a:1:{i:0;s:6:\"social\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:8:\"Facebook\";s:11:\"description\";s:22:\"Embed a Facebook post.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:20:\"core-embed/instagram\";a:12:{s:4:\"name\";s:20:\"core-embed/instagram\";s:8:\"keywords\";a:2:{i:0;s:5:\"image\";i:1;s:6:\"social\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:9:\"Instagram\";s:11:\"description\";s:24:\"Embed an Instagram post.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:20:\"core-embed/wordpress\";a:12:{s:4:\"name\";s:20:\"core-embed/wordpress\";s:8:\"keywords\";a:2:{i:0;s:4:\"post\";i:1;s:4:\"blog\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:9:\"WordPress\";s:11:\"description\";s:23:\"Embed a WordPress post.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:21:\"core-embed/soundcloud\";a:12:{s:4:\"name\";s:21:\"core-embed/soundcloud\";s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:10:\"SoundCloud\";s:11:\"description\";s:25:\"Embed SoundCloud content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/spotify\";a:12:{s:4:\"name\";s:18:\"core-embed/spotify\";s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"Spotify\";s:11:\"description\";s:22:\"Embed Spotify content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:17:\"core-embed/flickr\";a:12:{s:4:\"name\";s:17:\"core-embed/flickr\";s:8:\"keywords\";a:1:{i:0;s:5:\"image\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:6:\"Flickr\";s:11:\"description\";s:21:\"Embed Flickr content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:16:\"core-embed/vimeo\";a:12:{s:4:\"name\";s:16:\"core-embed/vimeo\";s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:5:\"Vimeo\";s:11:\"description\";s:20:\"Embed a Vimeo video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/animoto\";a:12:{s:4:\"name\";s:18:\"core-embed/animoto\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"Animoto\";s:11:\"description\";s:23:\"Embed an Animoto video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/cloudup\";a:12:{s:4:\"name\";s:18:\"core-embed/cloudup\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"Cloudup\";s:11:\"description\";s:22:\"Embed Cloudup content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:23:\"core-embed/collegehumor\";a:12:{s:4:\"name\";s:23:\"core-embed/collegehumor\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"CollegeHumor\";s:11:\"description\";s:27:\"Embed CollegeHumor content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:22:\"core-embed/crowdsignal\";a:12:{s:4:\"name\";s:22:\"core-embed/crowdsignal\";s:8:\"keywords\";a:2:{i:0;s:9:\"polldaddy\";i:1;s:6:\"survey\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:11:\"Crowdsignal\";s:11:\"description\";s:47:\"Embed Crowdsignal (formerly Polldaddy) content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:22:\"core-embed/dailymotion\";a:12:{s:4:\"name\";s:22:\"core-embed/dailymotion\";s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:11:\"Dailymotion\";s:11:\"description\";s:26:\"Embed a Dailymotion video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:16:\"core-embed/imgur\";a:12:{s:4:\"name\";s:16:\"core-embed/imgur\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:5:\"Imgur\";s:11:\"description\";s:20:\"Embed Imgur content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:16:\"core-embed/issuu\";a:12:{s:4:\"name\";s:16:\"core-embed/issuu\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:5:\"Issuu\";s:11:\"description\";s:20:\"Embed Issuu content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:22:\"core-embed/kickstarter\";a:12:{s:4:\"name\";s:22:\"core-embed/kickstarter\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:11:\"Kickstarter\";s:11:\"description\";s:26:\"Embed Kickstarter content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:21:\"core-embed/meetup-com\";a:12:{s:4:\"name\";s:21:\"core-embed/meetup-com\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:10:\"Meetup.com\";s:11:\"description\";s:25:\"Embed Meetup.com content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:19:\"core-embed/mixcloud\";a:12:{s:4:\"name\";s:19:\"core-embed/mixcloud\";s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:8:\"Mixcloud\";s:11:\"description\";s:23:\"Embed Mixcloud content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:20:\"core-embed/polldaddy\";a:12:{s:4:\"name\";s:20:\"core-embed/polldaddy\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:9:\"Polldaddy\";s:11:\"description\";s:24:\"Embed Polldaddy content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:17:\"core-embed/reddit\";a:12:{s:4:\"name\";s:17:\"core-embed/reddit\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:6:\"Reddit\";s:11:\"description\";s:22:\"Embed a Reddit thread.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:23:\"core-embed/reverbnation\";a:12:{s:4:\"name\";s:23:\"core-embed/reverbnation\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"ReverbNation\";s:11:\"description\";s:27:\"Embed ReverbNation content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:21:\"core-embed/screencast\";a:12:{s:4:\"name\";s:21:\"core-embed/screencast\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:10:\"Screencast\";s:11:\"description\";s:25:\"Embed Screencast content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:17:\"core-embed/scribd\";a:12:{s:4:\"name\";s:17:\"core-embed/scribd\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:6:\"Scribd\";s:11:\"description\";s:21:\"Embed Scribd content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:21:\"core-embed/slideshare\";a:12:{s:4:\"name\";s:21:\"core-embed/slideshare\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:10:\"Slideshare\";s:11:\"description\";s:25:\"Embed Slideshare content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/smugmug\";a:12:{s:4:\"name\";s:18:\"core-embed/smugmug\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"SmugMug\";s:11:\"description\";s:22:\"Embed SmugMug content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:18:\"core-embed/speaker\";a:12:{s:4:\"name\";s:18:\"core-embed/speaker\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:7:\"Speaker\";s:11:\"description\";s:94:\"Add a block that displays content pulled from other sites, like Twitter, Instagram or YouTube.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:23:\"core-embed/speaker-deck\";a:12:{s:4:\"name\";s:23:\"core-embed/speaker-deck\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"Speaker Deck\";s:11:\"description\";s:27:\"Embed Speaker Deck content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:17:\"core-embed/tiktok\";a:12:{s:4:\"name\";s:17:\"core-embed/tiktok\";s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:6:\"TikTok\";s:11:\"description\";s:21:\"Embed a TikTok video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:14:\"core-embed/ted\";a:12:{s:4:\"name\";s:14:\"core-embed/ted\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:3:\"TED\";s:11:\"description\";s:18:\"Embed a TED video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:17:\"core-embed/tumblr\";a:12:{s:4:\"name\";s:17:\"core-embed/tumblr\";s:8:\"keywords\";a:1:{i:0;s:6:\"social\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:6:\"Tumblr\";s:11:\"description\";s:20:\"Embed a Tumblr post.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:21:\"core-embed/videopress\";a:12:{s:4:\"name\";s:21:\"core-embed/videopress\";s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:10:\"VideoPress\";s:11:\"description\";s:25:\"Embed a VideoPress video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:23:\"core-embed/wordpress-tv\";a:12:{s:4:\"name\";s:23:\"core-embed/wordpress-tv\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"WordPress.tv\";s:11:\"description\";s:27:\"Embed a WordPress.tv video.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:24:\"core-embed/amazon-kindle\";a:12:{s:4:\"name\";s:24:\"core-embed/amazon-kindle\";s:8:\"keywords\";a:1:{i:0;s:5:\"ebook\";}s:10:\"attributes\";a:7:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:5:\"title\";s:13:\"Amazon Kindle\";s:11:\"description\";s:28:\"Embed Amazon Kindle content.\";s:8:\"category\";s:5:\"embed\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:6:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:9:\"core/file\";a:11:{s:4:\"name\";s:9:\"core/file\";s:8:\"keywords\";a:3:{i:0;s:8:\"document\";i:1;s:3:\"pdf\";i:2;s:8:\"download\";}s:10:\"attributes\";a:10:{s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"href\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fileName\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"a:not([download])\";}s:12:\"textLinkHref\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:17:\"a:not([download])\";s:9:\"attribute\";s:4:\"href\";}s:14:\"textLinkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:17:\"a:not([download])\";s:9:\"attribute\";s:6:\"target\";}s:18:\"showDownloadButton\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:18:\"downloadButtonText\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:11:\"a[download]\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:4:\"File\";s:11:\"description\";s:34:\"Add a link to a downloadable file.\";s:10:\"variations\";a:0:{}}s:10:\"core/group\";a:13:{s:4:\"name\";s:10:\"core/group\";s:8:\"keywords\";a:4:{i:0;s:9:\"container\";i:1;s:7:\"wrapper\";i:2;s:3:\"row\";i:3;s:7:\"section\";}s:10:\"attributes\";a:8:{s:7:\"tagName\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"div\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;s:19:\"__experimentalColor\";a:2:{s:9:\"gradients\";b:1;s:9:\"linkColor\";b:1;}}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:5:\"Group\";s:11:\"description\";s:33:\"A block that groups other blocks.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:1:{s:5:\"style\";a:1:{s:5:\"color\";a:2:{s:4:\"text\";s:7:\"#000000\";s:10:\"background\";s:7:\"#ffffff\";}}}s:11:\"innerBlocks\";a:6:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#cf2e2e\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"One.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#ff6900\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"Two.\";}}i:2;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#fcb900\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:6:\"Three.\";}}i:3;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#00d084\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:5:\"Four.\";}}i:4;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#0693e3\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:5:\"Five.\";}}i:5;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#9b51e0\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"Six.\";}}}}s:10:\"deprecated\";a:3:{i:0;a:2:{s:10:\"attributes\";a:7:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}i:1;a:2:{s:10:\"attributes\";a:7:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}i:2;a:2:{s:10:\"attributes\";a:5:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}}s:10:\"variations\";a:0:{}}s:13:\"core/freeform\";a:11:{s:4:\"name\";s:13:\"core/freeform\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:8:\"reusable\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:7:\"Classic\";s:11:\"description\";s:33:\"Use the classic WordPress editor.\";s:10:\"variations\";a:0:{}}s:9:\"core/html\";a:12:{s:4:\"name\";s:9:\"core/html\";s:8:\"keywords\";a:1:{i:0;s:5:\"embed\";}s:10:\"attributes\";a:1:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:11:\"Custom HTML\";s:11:\"description\";s:48:\"Add custom HTML code and preview it as you edit.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:62:\"Welcome to the wonderful world of blocks…\";}}s:10:\"variations\";a:0:{}}s:15:\"core/media-text\";a:13:{s:4:\"name\";s:15:\"core/media-text\";s:8:\"keywords\";a:2:{i:0;s:5:\"image\";i:1;s:5:\"video\";}s:10:\"attributes\";a:23:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:9:\"mediaLink\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:6:\"target\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:5:\"class\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:6:\"anchor\";b:1;s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;s:19:\"__experimentalColor\";a:2:{s:9:\"gradients\";b:1;s:9:\"linkColor\";b:1;}}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:12:\"Media & Text\";s:11:\"description\";s:53:\"Set media and words side-by-side for a richer layout.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:2:{s:9:\"mediaType\";s:5:\"image\";s:8:\"mediaUrl\";s:94:\"https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg\";}s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:44:\"The wren
    Earns his living
    Noiselessly.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:27:\"— Kobayashi Issa (一茶)\";}}}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:19:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"mediaLink\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:6:\"target\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:5:\"class\";}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:14:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:11:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:20:\"core/latest-comments\";a:12:{s:4:\"name\";s:20:\"core/latest-comments\";s:8:\"keywords\";a:1:{i:0;s:15:\"recent comments\";}s:10:\"attributes\";a:6:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"commentsToShow\";a:4:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;s:7:\"minimum\";i:1;s:7:\"maximum\";i:100;}s:13:\"displayAvatar\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"displayDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"displayExcerpt\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:15:\"Latest Comments\";s:11:\"description\";s:44:\"Display a list of your most recent comments.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/latest-posts\";a:13:{s:4:\"name\";s:17:\"core/latest-posts\";s:8:\"keywords\";a:1:{i:0;s:12:\"recent posts\";}s:10:\"attributes\";a:19:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"object\";}}s:14:\"selectedAuthor\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"postsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:18:\"displayPostContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:23:\"displayPostContentRadio\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:7:\"excerpt\";}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"displayPostDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"postLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:5:\"order\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"desc\";}s:7:\"orderBy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:20:\"displayFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:18:\"featuredImageAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}}s:21:\"featuredImageSizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:9:\"thumbnail\";}s:22:\"featuredImageSizeWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:23:\"featuredImageSizeHeight\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:12:\"Latest Posts\";s:11:\"description\";s:41:\"Display a list of your most recent posts.\";s:7:\"example\";a:0:{}s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:19:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"categories\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"selectedAuthor\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"postsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:18:\"displayPostContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:23:\"displayPostContentRadio\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:7:\"excerpt\";}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"displayPostDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"postLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:5:\"order\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"desc\";}s:7:\"orderBy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:20:\"displayFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:18:\"featuredImageAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}}s:21:\"featuredImageSizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:9:\"thumbnail\";}s:22:\"featuredImageSizeWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:23:\"featuredImageSizeHeight\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}}}s:10:\"variations\";a:0:{}}s:12:\"core/missing\";a:11:{s:4:\"name\";s:12:\"core/missing\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:12:\"originalName\";a:1:{s:4:\"type\";s:6:\"string\";}s:26:\"originalUndelimitedContent\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"originalContent\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:8:\"inserter\";b:0;s:4:\"html\";b:0;s:8:\"reusable\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:11:\"Unsupported\";s:11:\"description\";s:51:\"Your site doesn’t include support for this block.\";s:10:\"variations\";a:0:{}}s:9:\"core/more\";a:12:{s:4:\"name\";s:9:\"core/more\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:2:{s:10:\"customText\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"noTeaser\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:4:\"More\";s:11:\"description\";s:77:\"Content before this block will be shown in the excerpt on your archives page.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:13:\"core/nextpage\";a:13:{s:4:\"name\";s:13:\"core/nextpage\";s:8:\"keywords\";a:2:{i:0;s:9:\"next page\";i:1;s:10:\"pagination\";}s:10:\"attributes\";a:0:{}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:6:\"parent\";a:1:{i:0;s:17:\"core/post-content\";}s:5:\"title\";s:10:\"Page Break\";s:11:\"description\";s:51:\"Separate your content into a multi-page experience.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/preformatted\";a:12:{s:4:\"name\";s:17:\"core/preformatted\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:7:\"content\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";s:28:\"__unstablePreserveWhiteSpace\";b:1;}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:12:\"Preformatted\";s:11:\"description\";s:70:\"Add text that respects your spacing and tabs, and also allows styling.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:260:\"EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\nWindow, very small in the distance, illuminated.\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;\";}}s:10:\"variations\";a:0:{}}s:14:\"core/pullquote\";a:13:{s:4:\"name\";s:14:\"core/pullquote\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:9:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";a:4:{i:0;s:4:\"left\";i:1;s:5:\"right\";i:2;s:4:\"wide\";i:3;s:4:\"full\";}}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:11:\"solid-color\";s:5:\"label\";s:11:\"Solid color\";}}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:9:\"Pullquote\";s:11:\"description\";s:55:\"Give special visual emphasis to a quote from your text.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:5:\"value\";s:73:\"

    One of the hardest things to do in technology is disrupt yourself.

    \";s:8:\"citation\";s:14:\"Matt Mullenweg\";}}s:10:\"deprecated\";a:4:{i:0;a:1:{s:10:\"attributes\";a:8:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"figureStyle\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:6:\"figure\";s:9:\"attribute\";s:5:\"style\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:7:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:7:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:3;a:1:{s:10:\"attributes\";a:8:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:6:\"footer\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:8:\"core/rss\";a:12:{s:4:\"name\";s:8:\"core/rss\";s:8:\"keywords\";a:2:{i:0;s:4:\"atom\";i:1;s:4:\"feed\";}s:10:\"attributes\";a:10:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"blockLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"feedURL\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:11:\"itemsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:14:\"displayExcerpt\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"displayDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:3:\"RSS\";s:11:\"description\";s:42:\"Display entries from any RSS or Atom feed.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"feedURL\";s:21:\"https://wordpress.org\";}}s:10:\"variations\";a:0:{}}s:11:\"core/search\";a:12:{s:4:\"name\";s:11:\"core/search\";s:8:\"keywords\";a:1:{i:0;s:4:\"find\";}s:10:\"attributes\";a:5:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"label\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"placeholder\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:10:\"buttonText\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:6:\"Search\";s:11:\"description\";s:32:\"Help visitors find your content.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:1:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:9:\"isDefault\";b:1;s:10:\"attributes\";a:2:{s:10:\"buttonText\";s:6:\"Search\";s:5:\"label\";s:6:\"Search\";}}}}s:14:\"core/separator\";a:12:{s:4:\"name\";s:14:\"core/separator\";s:8:\"keywords\";a:3:{i:0;s:15:\"horizontal-line\";i:1;s:2:\"hr\";i:2;s:7:\"divider\";}s:10:\"attributes\";a:4:{s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"customColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:3:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:4:\"wide\";s:5:\"label\";s:9:\"Wide Line\";}i:2;a:2:{s:4:\"name\";s:4:\"dots\";s:5:\"label\";s:4:\"Dots\";}}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:9:\"Separator\";s:11:\"description\";s:69:\"Create a break between ideas or sections with a horizontal separator.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:11:\"customColor\";s:7:\"#065174\";s:9:\"className\";s:13:\"is-style-wide\";}}s:10:\"variations\";a:0:{}}s:10:\"core/block\";a:11:{s:4:\"name\";s:10:\"core/block\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:3:\"ref\";a:1:{s:4:\"type\";s:6:\"number\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:4:\"html\";b:0;s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:8:\"reusable\";s:5:\"title\";s:14:\"Reusable Block\";s:11:\"description\";s:114:\"Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.\";s:10:\"variations\";a:0:{}}s:17:\"core/social-links\";a:12:{s:4:\"name\";s:17:\"core/social-links\";s:8:\"keywords\";a:1:{i:0;s:5:\"links\";}s:10:\"attributes\";a:3:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:5:\"align\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}s:17:\"lightBlockWrapper\";b:1;s:6:\"anchor\";b:1;}s:6:\"styles\";a:3:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:10:\"logos-only\";s:5:\"label\";s:10:\"Logos Only\";}i:2;a:2:{s:4:\"name\";s:10:\"pill-shape\";s:5:\"label\";s:10:\"Pill Shape\";}}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:12:\"Social Icons\";s:11:\"description\";s:64:\"Display icons linking to your social media profiles or websites.\";s:7:\"example\";a:1:{s:11:\"innerBlocks\";a:3:{i:0;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:9:\"wordpress\";s:3:\"url\";s:21:\"https://wordpress.org\";}}i:1;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:8:\"facebook\";s:3:\"url\";s:35:\"https://www.facebook.com/WordPress/\";}}i:2;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:7:\"twitter\";s:3:\"url\";s:29:\"https://twitter.com/WordPress\";}}}}s:10:\"variations\";a:0:{}}s:16:\"core/social-link\";a:12:{s:4:\"name\";s:16:\"core/social-link\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"service\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"label\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:8:\"reusable\";b:0;s:4:\"html\";b:0;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:6:\"parent\";a:1:{i:0;s:17:\"core/social-links\";}s:5:\"title\";s:11:\"Social Icon\";s:11:\"description\";s:61:\"Display an icon linking to a social media profile or website.\";s:10:\"variations\";a:39:{i:0;a:4:{s:9:\"isDefault\";b:1;s:4:\"name\";s:9:\"wordpress\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"wordpress\";}s:5:\"title\";s:9:\"WordPress\";}i:1;a:3:{s:4:\"name\";s:13:\"fivehundredpx\";s:10:\"attributes\";a:1:{s:7:\"service\";s:13:\"fivehundredpx\";}s:5:\"title\";s:5:\"500px\";}i:2;a:3:{s:4:\"name\";s:6:\"amazon\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"amazon\";}s:5:\"title\";s:6:\"Amazon\";}i:3;a:3:{s:4:\"name\";s:8:\"bandcamp\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"bandcamp\";}s:5:\"title\";s:8:\"Bandcamp\";}i:4;a:3:{s:4:\"name\";s:7:\"behance\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"behance\";}s:5:\"title\";s:7:\"Behance\";}i:5;a:3:{s:4:\"name\";s:5:\"chain\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"chain\";}s:5:\"title\";s:4:\"Link\";}i:6;a:3:{s:4:\"name\";s:7:\"codepen\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"codepen\";}s:5:\"title\";s:7:\"CodePen\";}i:7;a:3:{s:4:\"name\";s:10:\"deviantart\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"deviantart\";}s:5:\"title\";s:10:\"DeviantArt\";}i:8;a:3:{s:4:\"name\";s:8:\"dribbble\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"dribbble\";}s:5:\"title\";s:8:\"Dribbble\";}i:9;a:3:{s:4:\"name\";s:7:\"dropbox\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"dropbox\";}s:5:\"title\";s:7:\"Dropbox\";}i:10;a:3:{s:4:\"name\";s:4:\"etsy\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"etsy\";}s:5:\"title\";s:4:\"Etsy\";}i:11;a:3:{s:4:\"name\";s:8:\"facebook\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"facebook\";}s:5:\"title\";s:8:\"Facebook\";}i:12;a:3:{s:4:\"name\";s:4:\"feed\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"feed\";}s:5:\"title\";s:8:\"RSS Feed\";}i:13;a:3:{s:4:\"name\";s:6:\"flickr\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"flickr\";}s:5:\"title\";s:6:\"Flickr\";}i:14;a:3:{s:4:\"name\";s:10:\"foursquare\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"foursquare\";}s:5:\"title\";s:10:\"Foursquare\";}i:15;a:3:{s:4:\"name\";s:9:\"goodreads\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"goodreads\";}s:5:\"title\";s:9:\"Goodreads\";}i:16;a:3:{s:4:\"name\";s:6:\"google\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"google\";}s:5:\"title\";s:6:\"Google\";}i:17;a:3:{s:4:\"name\";s:6:\"github\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"github\";}s:5:\"title\";s:6:\"GitHub\";}i:18;a:3:{s:4:\"name\";s:9:\"instagram\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"instagram\";}s:5:\"title\";s:9:\"Instagram\";}i:19;a:3:{s:4:\"name\";s:6:\"lastfm\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"lastfm\";}s:5:\"title\";s:7:\"Last.fm\";}i:20;a:3:{s:4:\"name\";s:8:\"linkedin\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"linkedin\";}s:5:\"title\";s:8:\"LinkedIn\";}i:21;a:3:{s:4:\"name\";s:4:\"mail\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"mail\";}s:5:\"title\";s:4:\"Mail\";}i:22;a:3:{s:4:\"name\";s:8:\"mastodon\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"mastodon\";}s:5:\"title\";s:8:\"Mastodon\";}i:23;a:3:{s:4:\"name\";s:6:\"meetup\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"meetup\";}s:5:\"title\";s:6:\"Meetup\";}i:24;a:3:{s:4:\"name\";s:6:\"medium\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"medium\";}s:5:\"title\";s:6:\"Medium\";}i:25;a:3:{s:4:\"name\";s:9:\"pinterest\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"pinterest\";}s:5:\"title\";s:9:\"Pinterest\";}i:26;a:3:{s:4:\"name\";s:6:\"pocket\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"pocket\";}s:5:\"title\";s:6:\"Pocket\";}i:27;a:3:{s:4:\"name\";s:6:\"reddit\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"reddit\";}s:5:\"title\";s:6:\"Reddit\";}i:28;a:3:{s:4:\"name\";s:5:\"skype\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"skype\";}s:5:\"title\";s:5:\"Skype\";}i:29;a:3:{s:4:\"name\";s:8:\"snapchat\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"snapchat\";}s:5:\"title\";s:8:\"Snapchat\";}i:30;a:3:{s:4:\"name\";s:10:\"soundcloud\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"soundcloud\";}s:5:\"title\";s:10:\"SoundCloud\";}i:31;a:3:{s:4:\"name\";s:7:\"spotify\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"spotify\";}s:5:\"title\";s:7:\"Spotify\";}i:32;a:3:{s:4:\"name\";s:6:\"tumblr\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"tumblr\";}s:5:\"title\";s:6:\"Tumblr\";}i:33;a:3:{s:4:\"name\";s:6:\"twitch\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"twitch\";}s:5:\"title\";s:6:\"Twitch\";}i:34;a:3:{s:4:\"name\";s:7:\"twitter\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"twitter\";}s:5:\"title\";s:7:\"Twitter\";}i:35;a:3:{s:4:\"name\";s:5:\"vimeo\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"vimeo\";}s:5:\"title\";s:5:\"Vimeo\";}i:36;a:3:{s:4:\"name\";s:2:\"vk\";s:10:\"attributes\";a:1:{s:7:\"service\";s:2:\"vk\";}s:5:\"title\";s:2:\"VK\";}i:37;a:3:{s:4:\"name\";s:4:\"yelp\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"yelp\";}s:5:\"title\";s:4:\"Yelp\";}i:38;a:3:{s:4:\"name\";s:7:\"youtube\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"youtube\";}s:5:\"title\";s:7:\"YouTube\";}}}s:11:\"core/spacer\";a:11:{s:4:\"name\";s:11:\"core/spacer\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:6:\"height\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:100;}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:6:\"Spacer\";s:11:\"description\";s:56:\"Add white space between blocks and customize its height.\";s:10:\"variations\";a:0:{}}s:12:\"core/subhead\";a:11:{s:4:\"name\";s:12:\"core/subhead\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:8:\"inserter\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:23:\"Subheading (deprecated)\";s:11:\"description\";s:65:\"This block is deprecated. Please use the Paragraph block instead.\";s:10:\"variations\";a:0:{}}s:10:\"core/table\";a:13:{s:4:\"name\";s:10:\"core/table\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:9:{s:14:\"hasFixedLayout\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";s:7:\"default\";s:0:\"\";}s:4:\"head\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"thead tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:4:\"body\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tbody tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:4:\"foot\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tfoot tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"regular\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"stripes\";s:5:\"label\";s:7:\"Stripes\";}}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Table\";s:11:\"description\";s:55:\"Insert a table — perfect for sharing charts and data.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:4:\"head\";a:1:{i:0;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:7:\"Version\";s:3:\"tag\";s:2:\"th\";}i:1;a:2:{s:7:\"content\";s:13:\"Jazz Musician\";s:3:\"tag\";s:2:\"th\";}i:2;a:2:{s:7:\"content\";s:12:\"Release Date\";s:3:\"tag\";s:2:\"th\";}}}}s:4:\"body\";a:3:{i:0;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.2\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:14:\"Jaco Pastorius\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:11:\"May 7, 2019\";s:3:\"tag\";s:2:\"td\";}}}i:1;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.1\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:12:\"Betty Carter\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:17:\"February 21, 2019\";s:3:\"tag\";s:2:\"td\";}}}i:2;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.0\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:12:\"Bebo Valdés\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:16:\"December 6, 2018\";s:3:\"tag\";s:2:\"td\";}}}}}}s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:7:{s:14:\"hasFixedLayout\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:4:\"head\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"thead tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:4:\"body\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tbody tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:4:\"foot\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tfoot tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:14:\"core/tag-cloud\";a:12:{s:4:\"name\";s:14:\"core/tag-cloud\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:5:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"taxonomy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"post_tag\";}s:13:\"showTagCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:4:\"html\";b:0;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:9:\"Tag Cloud\";s:11:\"description\";s:31:\"A cloud of your most used tags.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/text-columns\";a:11:{s:4:\"name\";s:17:\"core/text-columns\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:7:\"content\";a:5:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:1:\"p\";s:5:\"query\";a:1:{s:8:\"children\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:7:\"default\";a:2:{i:0;a:0:{}i:1;a:0:{}}}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:8:\"category\";s:6:\"design\";s:5:\"title\";s:25:\"Text Columns (deprecated)\";s:11:\"description\";s:63:\"This block is deprecated. Please use the Columns block instead.\";s:10:\"variations\";a:0:{}}s:10:\"core/verse\";a:13:{s:4:\"name\";s:10:\"core/verse\";s:8:\"keywords\";a:2:{i:0;s:6:\"poetry\";i:1;s:4:\"poem\";}s:10:\"attributes\";a:4:{s:7:\"content\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";s:28:\"__unstablePreserveWhiteSpace\";b:1;}s:9:\"textAlign\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Verse\";s:11:\"description\";s:65:\"Insert poetry. Use special spacing formats. Or quote song lyrics.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:226:\"WHAT was he doing, the great god Pan,\n Down in the reeds by the river?\nSpreading ruin and scattering ban,\nSplashing and paddling with hoofs of a goat,\nAnd breaking the golden lilies afloat\n With the dragon-fly on the river.\";}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:3:{s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";}s:9:\"textAlign\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:10:\"core/video\";a:11:{s:4:\"name\";s:10:\"core/video\";s:8:\"keywords\";a:1:{i:0;s:5:\"movie\";}s:10:\"attributes\";a:13:{s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:8:\"autoplay\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:8:\"controls\";a:5:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:8:\"controls\";s:7:\"default\";b:1;}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:4:\"loop\";}s:5:\"muted\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:5:\"muted\";}s:6:\"poster\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:6:\"poster\";}s:7:\"preload\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:7:\"preload\";s:7:\"default\";s:8:\"metadata\";}s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:3:\"src\";}s:11:\"playsInline\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:11:\"playsinline\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:17:\"lightBlockWrapper\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Video\";s:11:\"description\";s:58:\"Embed a video from your media library or upload a new one.\";s:10:\"variations\";a:0:{}}}', 'no'), +(5092, 'yoast_migrations_free', 'a:1:{s:7:\"version\";s:4:\"16.2\";}', 'yes'), +(5102, 'wp_graphql_gutenberg_block_types', 'a:46:{s:21:\"yoast-seo/breadcrumbs\";a:12:{s:4:\"name\";s:21:\"yoast-seo/breadcrumbs\";s:8:\"keywords\";a:4:{i:0;s:3:\"seo\";i:1;s:11:\"breadcrumbs\";i:2;s:16:\"internal linking\";i:3;s:14:\"site structure\";}s:10:\"attributes\";a:1:{s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:0:{}s:6:\"styles\";a:0:{}s:5:\"title\";s:17:\"Yoast Breadcrumbs\";s:11:\"description\";s:59:\"Adds the Yoast SEO breadcrumbs to your template or content.\";s:8:\"category\";s:29:\"yoast-internal-linking-blocks\";s:7:\"example\";a:1:{s:10:\"attributes\";a:0:{}}s:10:\"variations\";a:0:{}}s:18:\"yoast/how-to-block\";a:13:{s:4:\"name\";s:18:\"yoast/how-to-block\";s:8:\"keywords\";a:5:{i:0;s:6:\"How-to\";i:1;s:6:\"How to\";i:2;s:6:\"Schema\";i:3;s:3:\"SEO\";i:4;s:15:\"Structured Data\";}s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:12:\"Yoast How-to\";s:11:\"description\";s:89:\"Create a How-to guide in an SEO-friendly way. You can only use one How-to block per post.\";s:8:\"category\";s:28:\"yoast-structured-data-blocks\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:5:\"steps\";a:2:{i:0;a:3:{s:2:\"id\";s:25:\"how-to-step-1620086660645\";s:4:\"name\";a:0:{}s:4:\"text\";a:0:{}}i:1;a:3:{s:2:\"id\";s:25:\"how-to-step-1620086660645\";s:4:\"name\";a:0:{}s:4:\"text\";a:0:{}}}}}s:10:\"deprecated\";a:2:{i:0;a:1:{s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:12:{s:11:\"hasDuration\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:4:\"days\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"hours\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"minutes\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"description\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:26:\".schema-how-to-description\";}s:15:\"jsonDescription\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"steps\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:13:\"unorderedList\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:12:\"durationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:19:\"defaultDurationText\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:15:\"yoast/faq-block\";a:13:{s:4:\"name\";s:15:\"yoast/faq-block\";s:8:\"keywords\";a:5:{i:0;s:3:\"FAQ\";i:1;s:26:\"Frequently Asked Questions\";i:2;s:6:\"Schema\";i:3;s:3:\"SEO\";i:4;s:15:\"Structured Data\";}s:10:\"attributes\";a:3:{s:9:\"questions\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:5:\"title\";s:9:\"Yoast FAQ\";s:11:\"description\";s:101:\"List your Frequently Asked Questions in an SEO-friendly way. You can only use one FAQ block per post.\";s:8:\"category\";s:28:\"yoast-structured-data-blocks\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:9:\"questions\";a:3:{i:0;a:3:{s:2:\"id\";s:26:\"faq-question-1620086660645\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}i:1;a:3:{s:2:\"id\";s:26:\"faq-question-1620086660645\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}i:2;a:3:{s:2:\"id\";s:26:\"faq-question-1620086660645\";s:8:\"question\";a:0:{}s:6:\"answer\";a:0:{}}}}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:3:{s:9:\"questions\";a:1:{s:4:\"type\";s:5:\"array\";}s:24:\"additionalListCssClasses\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:14:\"core/paragraph\";a:14:{s:4:\"name\";s:14:\"core/paragraph\";s:8:\"keywords\";a:1:{i:0;s:4:\"text\";}s:10:\"attributes\";a:11:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:7:{s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:5:\"color\";a:1:{s:4:\"link\";b:1;}s:8:\"fontSize\";b:1;s:10:\"lineHeight\";b:1;s:22:\"__experimentalSelector\";s:1:\"p\";s:25:\"__unstablePasteTextInline\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:9:\"Paragraph\";s:11:\"description\";s:47:\"Start with the building block of all narrative.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:7:\"content\";s:224:\"In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.\";s:5:\"style\";a:1:{s:10:\"typography\";a:1:{s:8:\"fontSize\";i:28;}}s:7:\"dropCap\";b:1;}}s:10:\"deprecated\";a:5:{i:0;a:2:{s:10:\"attributes\";a:12:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:1;a:2:{s:10:\"attributes\";a:12:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:2;a:2:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customFontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:3;a:2:{s:10:\"attributes\";a:9:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:4;a:2:{s:10:\"attributes\";a:10:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:7:\"default\";s:0:\"\";}s:7:\"dropCap\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"direction\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:2:{i:0;s:3:\"ltr\";i:1;s:3:\"rtl\";}}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}}s:10:\"variations\";a:0:{}}s:10:\"core/image\";a:14:{s:4:\"name\";s:10:\"core/image\";s:8:\"keywords\";a:3:{i:0;s:3:\"img\";i:1;s:5:\"photo\";i:2;s:7:\"picture\";}s:10:\"attributes\";a:16:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:5:\"title\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"sizeSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"rounded\";s:5:\"label\";s:7:\"Rounded\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Image\";s:11:\"description\";s:43:\"Insert an image to make a visual statement.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:8:\"sizeSlug\";s:5:\"large\";s:3:\"url\";s:44:\"https://s.w.org/images/core/5.3/MtBlanc1.jpg\";s:7:\"caption\";s:46:\"Mont Blanc appears—still, snowy, and serene.\";}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:13:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:5:\"class\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:6:\"height\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure > a\";s:9:\"attribute\";s:6:\"target\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:12:\"core/heading\";a:14:{s:4:\"name\";s:12:\"core/heading\";s:8:\"keywords\";a:2:{i:0;s:5:\"title\";i:1;s:8:\"subtitle\";}s:10:\"attributes\";a:11:{s:9:\"textAlign\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:8:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:5:\"color\";a:1:{s:4:\"link\";b:1;}s:8:\"fontSize\";b:1;s:10:\"lineHeight\";b:1;s:22:\"__experimentalSelector\";a:6:{s:15:\"core/heading/h1\";s:2:\"h1\";s:15:\"core/heading/h2\";s:2:\"h2\";s:15:\"core/heading/h3\";s:2:\"h3\";s:15:\"core/heading/h4\";s:2:\"h4\";s:15:\"core/heading/h5\";s:2:\"h5\";s:15:\"core/heading/h6\";s:2:\"h6\";}s:25:\"__unstablePasteTextInline\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:7:\"Heading\";s:11:\"description\";s:123:\"Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:7:\"content\";s:14:\"Code is Poetry\";s:5:\"level\";i:2;}}s:10:\"deprecated\";a:4:{i:0;a:2:{s:10:\"attributes\";a:10:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fontSize\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:8:\"supports\";a:8:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:5:\"color\";a:1:{s:4:\"link\";b:1;}s:8:\"fontSize\";b:1;s:10:\"lineHeight\";b:1;s:22:\"__experimentalSelector\";a:6:{s:15:\"core/heading/h1\";s:2:\"h1\";s:15:\"core/heading/h2\";s:2:\"h2\";s:15:\"core/heading/h3\";s:2:\"h3\";s:15:\"core/heading/h4\";s:2:\"h4\";s:15:\"core/heading/h5\";s:2:\"h5\";s:15:\"core/heading/h6\";s:2:\"h6\";}s:25:\"__unstablePasteTextInline\";b:1;}}i:1;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}i:2;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}i:3;a:2:{s:10:\"attributes\";a:8:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"h1,h2,h3,h4,h5,h6\";s:7:\"default\";s:0:\"\";}s:5:\"level\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:9:\"className\";b:0;s:6:\"anchor\";b:1;}}}s:10:\"variations\";a:0:{}}s:12:\"core/gallery\";a:13:{s:4:\"name\";s:12:\"core/gallery\";s:8:\"keywords\";a:2:{i:0;s:6:\"images\";i:1;s:6:\"photos\";}s:10:\"attributes\";a:10:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:20:\".blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:4:\"link\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:29:\".blocks-gallery-item__caption\";}}}s:3:\"ids\";a:3:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"number\";}s:7:\"default\";a:0:{}}s:7:\"columns\";a:3:{s:4:\"type\";s:6:\"number\";s:7:\"minimum\";i:1;s:7:\"maximum\";i:8;}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:23:\".blocks-gallery-caption\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"sizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"large\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:8:\"category\";s:5:\"media\";s:5:\"title\";s:7:\"Gallery\";s:11:\"description\";s:42:\"Display multiple images in a rich gallery.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";i:2;s:6:\"images\";a:2:{i:0;a:1:{s:3:\"url\";s:59:\"https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg\";}i:1;a:1:{s:3:\"url\";s:70:\"https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg\";}}}}s:10:\"deprecated\";a:5:{i:0;a:2:{s:10:\"attributes\";a:9:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:20:\".blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:4:\"link\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:3:\"alt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:29:\".blocks-gallery-item__caption\";}}}s:3:\"ids\";a:3:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"number\";}s:7:\"default\";a:0:{}}s:7:\"columns\";a:3:{s:4:\"type\";s:6:\"number\";s:7:\"minimum\";i:1;s:7:\"maximum\";i:8;}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:23:\".blocks-gallery-caption\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:8:\"sizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"large\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:1;a:2:{s:10:\"attributes\";a:8:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:20:\".blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:29:\".blocks-gallery-item__caption\";}}}s:3:\"ids\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:23:\".blocks-gallery-caption\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:2;a:2:{s:10:\"attributes\";a:7:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:40:\"ul.wp-block-gallery .blocks-gallery-item\";s:5:\"query\";a:6:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:7:\"fullUrl\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:13:\"data-full-url\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:7:\"caption\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:10:\"figcaption\";}}}s:3:\"ids\";a:2:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:3;a:2:{s:10:\"attributes\";a:6:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:40:\"ul.wp-block-gallery .blocks-gallery-item\";s:5:\"query\";a:5:{s:3:\"url\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:4:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:7:\"data-id\";}s:4:\"link\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:3:\"img\";s:9:\"attribute\";s:9:\"data-link\";}s:7:\"caption\";a:3:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:8:\"children\";s:8:\"selector\";s:10:\"figcaption\";}}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:4;a:2:{s:10:\"attributes\";a:6:{s:6:\"images\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:52:\"div.wp-block-gallery figure.blocks-gallery-image img\";s:5:\"query\";a:3:{s:3:\"url\";a:2:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:3:\"src\";}s:3:\"alt\";a:3:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:2:\"id\";a:2:{s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:7:\"data-id\";}}}s:7:\"columns\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"imageCrop\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:6:\"linkTo\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:9:\"core/list\";a:13:{s:4:\"name\";s:9:\"core/list\";s:8:\"keywords\";a:3:{i:0;s:11:\"bullet list\";i:1;s:12:\"ordered list\";i:2;s:13:\"numbered list\";}s:10:\"attributes\";a:11:{s:7:\"ordered\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:6:\"values\";a:6:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:5:\"ol,ul\";s:9:\"multiline\";s:2:\"li\";s:30:\"__unstableMultilineWrapperTags\";a:2:{i:0;s:2:\"ol\";i:1;s:2:\"ul\";}s:7:\"default\";s:0:\"\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"start\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"reversed\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:9:\"className\";b:0;s:5:\"color\";a:1:{s:9:\"gradients\";b:1;}s:25:\"__unstablePasteTextInline\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:4:\"List\";s:11:\"description\";s:35:\"Create a bulleted or numbered list.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:6:\"values\";s:120:\"
  • Alice.
  • The White Rabbit.
  • The Cheshire Cat.
  • The Mad Hatter.
  • The Queen of Hearts.
  • \";}}s:10:\"variations\";a:0:{}}s:10:\"core/quote\";a:14:{s:4:\"name\";s:10:\"core/quote\";s:8:\"keywords\";a:2:{i:0;s:10:\"blockquote\";i:1;s:4:\"cite\";}s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:5:\"large\";s:5:\"label\";s:5:\"Large\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Quote\";s:11:\"description\";s:93:\"Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:5:\"value\";s:44:\"

    In quoting others, we cite ourselves.

    \";s:8:\"citation\";s:15:\"Julio Cortázar\";s:9:\"className\";s:14:\"is-style-large\";}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:4:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:5:{s:5:\"value\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";s:7:\"default\";s:0:\"\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:6:\"footer\";s:7:\"default\";s:0:\"\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:14:\"core/shortcode\";a:12:{s:4:\"name\";s:14:\"core/shortcode\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:4:\"text\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:9:\"Shortcode\";s:11:\"description\";s:61:\"Insert additional custom elements with a WordPress shortcode.\";s:10:\"variations\";a:0:{}}s:13:\"core/archives\";a:13:{s:4:\"name\";s:13:\"core/archives\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:17:\"displayAsDropdown\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:14:\"showPostCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:8:\"Archives\";s:11:\"description\";s:40:\"Display a monthly archive of your posts.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:10:\"core/audio\";a:13:{s:4:\"name\";s:10:\"core/audio\";s:8:\"keywords\";a:4:{i:0;s:5:\"music\";i:1;s:5:\"sound\";i:2;s:7:\"podcast\";i:3;s:9:\"recording\";}s:10:\"attributes\";a:9:{s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:3:\"src\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:8:\"autoplay\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:4:\"loop\";}s:7:\"preload\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:7:\"preload\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Audio\";s:11:\"description\";s:28:\"Embed a simple audio player.\";s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:8:{s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:3:\"src\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:8:\"autoplay\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:4:\"loop\";}s:7:\"preload\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"audio\";s:9:\"attribute\";s:7:\"preload\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:11:\"core/button\";a:15:{s:4:\"name\";s:11:\"core/button\";s:8:\"keywords\";a:1:{i:0;s:4:\"link\";}s:10:\"attributes\";a:14:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:9:\"alignWide\";b:0;s:8:\"reusable\";b:0;s:22:\"__experimentalSelector\";s:20:\".wp-block-button > a\";}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:4:\"fill\";s:5:\"label\";s:4:\"Fill\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"outline\";s:5:\"label\";s:7:\"Outline\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:6:\"parent\";a:1:{i:0;s:12:\"core/buttons\";}s:5:\"title\";s:6:\"Button\";s:11:\"description\";s:56:\"Prompt visitors to take action with a button-style link.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:3:{s:9:\"className\";s:13:\"is-style-fill\";s:15:\"backgroundColor\";s:16:\"vivid-green-cyan\";s:4:\"text\";s:14:\"Call to Action\";}}s:10:\"deprecated\";a:6:{i:0;a:2:{s:10:\"attributes\";a:13:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";b:1;s:9:\"alignWide\";b:0;s:5:\"color\";a:1:{s:9:\"gradients\";b:1;}}}i:1;a:2:{s:10:\"attributes\";a:15:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"borderRadius\";a:1:{s:4:\"type\";s:6:\"number\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:9:\"alignWide\";b:0;}}i:2;a:1:{s:10:\"attributes\";a:12:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:6:\"target\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:3:\"rel\";}s:11:\"placeholder\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:3;a:1:{s:10:\"attributes\";a:9:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:4;a:1:{s:10:\"attributes\";a:7:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:5;a:1:{s:10:\"attributes\";a:7:{s:3:\"url\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:4:\"href\";}s:5:\"title\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:1:\"a\";s:9:\"attribute\";s:5:\"title\";}s:4:\"text\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"a\";}s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:12:\"core/buttons\";a:13:{s:4:\"name\";s:12:\"core/buttons\";s:8:\"keywords\";a:1:{i:0;s:4:\"link\";}s:10:\"attributes\";a:3:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:9:\"alignWide\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:7:\"Buttons\";s:11:\"description\";s:66:\"Prompt visitors to take action with a group of button-style links.\";s:7:\"example\";a:1:{s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:11:\"core/button\";s:10:\"attributes\";a:1:{s:4:\"text\";s:13:\"Find out more\";}}i:1;a:2:{s:4:\"name\";s:11:\"core/button\";s:10:\"attributes\";a:1:{s:4:\"text\";s:10:\"Contact us\";}}}}s:10:\"variations\";a:0:{}}s:13:\"core/calendar\";a:13:{s:4:\"name\";s:13:\"core/calendar\";s:8:\"keywords\";a:2:{i:0;s:5:\"posts\";i:1;s:7:\"archive\";}s:10:\"attributes\";a:4:{s:5:\"month\";a:1:{s:4:\"type\";s:7:\"integer\";}s:4:\"year\";a:1:{s:4:\"type\";s:7:\"integer\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:8:\"Calendar\";s:11:\"description\";s:34:\"A calendar of your site’s posts.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:15:\"core/categories\";a:13:{s:4:\"name\";s:15:\"core/categories\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:5:{s:17:\"displayAsDropdown\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"showHierarchy\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:14:\"showPostCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:10:\"Categories\";s:11:\"description\";s:33:\"Display a list of all categories.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:9:\"core/code\";a:13:{s:4:\"name\";s:9:\"core/code\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"code\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:4:\"Code\";s:11:\"description\";s:57:\"Display code snippets that respect your spacing and tabs.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:179:\"// A \"block\" is the abstract term used\n// to describe units of markup that\n// when composed together, form the\n// content or layout of a page.\nregisterBlockType( name, settings );\";}}s:10:\"variations\";a:0:{}}s:12:\"core/columns\";a:14:{s:4:\"name\";s:12:\"core/columns\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:8:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;s:5:\"color\";a:2:{s:9:\"gradients\";b:1;s:4:\"link\";b:1;}}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:7:\"Columns\";s:11:\"description\";s:101:\"Add a block that displays content in multiple columns, then add whatever content blocks you’d like.\";s:10:\"variations\";a:6:{i:0;a:6:{s:4:\"name\";s:15:\"one-column-full\";s:5:\"title\";s:3:\"100\";s:11:\"description\";s:10:\"One column\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:160:\"m39.0625 14h-30.0625v20.0938h30.0625zm-30.0625-2c-1.10457 0-2 .8954-2 2v20.0938c0 1.1045.89543 2 2 2h30.0625c1.1046 0 2-.8955 2-2v-20.0938c0-1.1046-.8954-2-2-2z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:1:{i:0;a:1:{i:0;s:11:\"core/column\";}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:1;a:7:{s:4:\"name\";s:17:\"two-columns-equal\";s:5:\"title\";s:7:\"50 / 50\";s:11:\"description\";s:24:\"Two columns; equal split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H25V34H39ZM23 34H9V14H23V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:9:\"isDefault\";b:1;s:11:\"innerBlocks\";a:2:{i:0;a:1:{i:0;s:11:\"core/column\";}i:1;a:1:{i:0;s:11:\"core/column\";}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:2;a:6:{s:4:\"name\";s:32:\"two-columns-one-third-two-thirds\";s:5:\"title\";s:7:\"30 / 70\";s:11:\"description\";s:40:\"Two columns; one-third, two-thirds split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H20V34H39ZM18 34H9V14H18V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:2:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:6:\"33.33%\";}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:6:\"66.66%\";}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:3;a:6:{s:4:\"name\";s:32:\"two-columns-two-thirds-one-third\";s:5:\"title\";s:7:\"70 / 30\";s:11:\"description\";s:40:\"Two columns; two-thirds, one-third split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:8:\"fillRule\";s:7:\"evenodd\";s:8:\"clipRule\";s:7:\"evenodd\";s:1:\"d\";s:163:\"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H30V34H39ZM28 34H9V14H28V34Z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:2:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:6:\"66.66%\";}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:6:\"33.33%\";}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:4;a:6:{s:4:\"name\";s:19:\"three-columns-equal\";s:5:\"title\";s:12:\"33 / 33 / 33\";s:11:\"description\";s:26:\"Three columns; equal split\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:8:\"fillRule\";s:7:\"evenodd\";s:1:\"d\";s:132:\"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM28.5 34h-9V14h9v20zm2 0V14H39v20h-8.5zm-13 0H9V14h8.5v20z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:3:{i:0;a:1:{i:0;s:11:\"core/column\";}i:1;a:1:{i:0;s:11:\"core/column\";}i:2;a:1:{i:0;s:11:\"core/column\";}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}i:5;a:6:{s:4:\"name\";s:26:\"three-columns-wider-center\";s:5:\"title\";s:12:\"25 / 50 / 25\";s:11:\"description\";s:33:\"Three columns; wide center column\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:5:{s:5:\"width\";s:2:\"48\";s:6:\"height\";s:2:\"48\";s:7:\"viewBox\";s:9:\"0 0 48 48\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:8:\"fillRule\";s:7:\"evenodd\";s:1:\"d\";s:126:\"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM31 34H17V14h14v20zm2 0V14h6v20h-6zm-18 0H9V14h6v20z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"innerBlocks\";a:3:{i:0;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:3:\"25%\";}}i:1;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:3:\"50%\";}}i:2;a:2:{i:0;s:11:\"core/column\";i:1;a:1:{s:5:\"width\";s:3:\"25%\";}}}s:5:\"scope\";a:1:{i:0;s:5:\"block\";}}}s:7:\"example\";a:1:{s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:11:\"core/column\";s:11:\"innerBlocks\";a:3:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:83:\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.\";}}i:1;a:2:{s:4:\"name\";s:10:\"core/image\";s:10:\"attributes\";a:1:{s:3:\"url\";s:49:\"https://s.w.org/images/core/5.3/Windbuchencom.jpg\";}}i:2;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:59:\"Suspendisse commodo neque lacus, a dictum orci interdum et.\";}}}}i:1;a:2:{s:4:\"name\";s:11:\"core/column\";s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:157:\"Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:103:\"Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.\";}}}}}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:6:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:2:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}}s:11:\"core/column\";a:14:{s:4:\"name\";s:11:\"core/column\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:5:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"templateLock\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:8:\"reusable\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:6:\"parent\";a:1:{i:0;s:12:\"core/columns\";}s:5:\"title\";s:6:\"Column\";s:11:\"description\";s:39:\"A single column within a columns block.\";s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:3:{s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"width\";a:3:{s:4:\"type\";s:6:\"number\";s:3:\"min\";i:0;s:3:\"max\";i:100;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:10:\"core/cover\";a:14:{s:4:\"name\";s:10:\"core/cover\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:18:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"isRepeated\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:13:\"minHeightUnit\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"contentPosition\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:4:\"html\";b:0;s:7:\"spacing\";a:1:{s:7:\"padding\";b:1;}}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Cover\";s:11:\"description\";s:64:\"Add an image or video with a text overlay — great for headers.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:3:{s:18:\"customOverlayColor\";s:7:\"#065174\";s:8:\"dimRatio\";i:40;s:3:\"url\";s:49:\"https://s.w.org/images/core/5.3/Windbuchencom.jpg\";}s:11:\"innerBlocks\";a:1:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:14:\"customFontSize\";i:48;s:7:\"content\";s:28:\"Snow Patrol\";s:5:\"align\";s:6:\"center\";}}}}s:10:\"deprecated\";a:5:{i:0;a:1:{s:10:\"attributes\";a:14:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:14:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"minHeight\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"customGradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}i:3;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}i:4;a:2:{s:10:\"attributes\";a:12:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"hasParallax\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:8:\"dimRatio\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:12:\"overlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:18:\"customOverlayColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"backgroundType\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:5:\"image\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:5:\"title\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:2:\"h2\";}s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:12:\"contentAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:6:\"center\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:9:\"className\";b:0;}}}s:10:\"variations\";a:0:{}}s:10:\"core/embed\";a:15:{s:4:\"name\";s:10:\"core/embed\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:9:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:10:\"responsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"previewable\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:5:\"align\";b:1;s:8:\"reusable\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"embed\";s:11:\"editorStyle\";s:21:\"wp-block-embed-editor\";s:5:\"style\";s:14:\"wp-block-embed\";s:5:\"title\";s:5:\"Embed\";s:11:\"description\";s:94:\"Add a block that displays content pulled from other sites, like Twitter, Instagram or YouTube.\";s:10:\"variations\";a:32:{i:0;a:7:{s:4:\"name\";s:7:\"twitter\";s:5:\"title\";s:7:\"Twitter\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#1da1f2\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:621:\"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:2:{i:0;s:5:\"tweet\";i:1;s:6:\"social\";}s:11:\"description\";s:14:\"Embed a tweet.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:7:\"twitter\";s:10:\"responsive\";b:1;}}i:1;a:7:{s:4:\"name\";s:7:\"youtube\";s:5:\"title\";s:7:\"YouTube\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#ff0000\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:445:\"M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"video\";}s:11:\"description\";s:22:\"Embed a YouTube video.\";s:8:\"patterns\";a:2:{i:0;a:0:{}i:1;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:7:\"youtube\";s:10:\"responsive\";b:1;}}i:2;a:8:{s:4:\"name\";s:8:\"facebook\";s:5:\"title\";s:8:\"Facebook\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#3b5998\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:187:\"M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:1:{i:0;s:6:\"social\";}s:11:\"description\";s:22:\"Embed a Facebook post.\";s:5:\"scope\";a:1:{i:0;s:5:\"block\";}s:8:\"patterns\";a:0:{}s:10:\"attributes\";a:3:{s:16:\"providerNameSlug\";s:8:\"facebook\";s:11:\"previewable\";b:0;s:10:\"responsive\";b:1;}}i:3;a:8:{s:4:\"name\";s:9:\"instagram\";s:5:\"title\";s:9:\"Instagram\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:1541:\"M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:2:{i:0;s:5:\"image\";i:1;s:6:\"social\";}s:11:\"description\";s:24:\"Embed an Instagram post.\";s:5:\"scope\";a:1:{i:0;s:5:\"block\";}s:8:\"patterns\";a:0:{}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:9:\"instagram\";s:10:\"responsive\";b:1;}}i:4;a:6:{s:4:\"name\";s:9:\"wordpress\";s:5:\"title\";s:9:\"WordPress\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#0073AA\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:924:\"M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:2:{i:0;s:4:\"post\";i:1;s:4:\"blog\";}s:11:\"description\";s:23:\"Embed a WordPress post.\";s:10:\"attributes\";a:1:{s:16:\"providerNameSlug\";s:9:\"wordpress\";}}i:5;a:7:{s:4:\"name\";s:10:\"soundcloud\";s:5:\"title\";s:10:\"SoundCloud\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:344:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:11:\"description\";s:25:\"Embed SoundCloud content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:10:\"soundcloud\";s:10:\"responsive\";b:1;}}i:6;a:7:{s:4:\"name\";s:7:\"spotify\";s:5:\"title\";s:7:\"Spotify\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#1db954\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:637:\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:11:\"description\";s:22:\"Embed Spotify content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:7:\"spotify\";s:10:\"responsive\";b:1;}}i:7;a:7:{s:4:\"name\";s:6:\"flickr\";s:5:\"title\";s:6:\"Flickr\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:117:\"m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:1:{i:0;s:5:\"image\";}s:11:\"description\";s:21:\"Embed Flickr content.\";s:8:\"patterns\";a:2:{i:0;a:0:{}i:1;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:6:\"flickr\";s:10:\"responsive\";b:1;}}i:8;a:7:{s:4:\"name\";s:5:\"vimeo\";s:5:\"title\";s:5:\"Vimeo\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#1ab7ea\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:536:\"M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:11:\"description\";s:20:\"Embed a Vimeo video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:5:\"vimeo\";s:10:\"responsive\";b:1;}}i:9;a:6:{s:4:\"name\";s:7:\"animoto\";s:5:\"title\";s:7:\"Animoto\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:6:{i:0;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:48:\"m.0206909 21 19.8160091-13.07806 3.5831 6.20826z\";s:4:\"fill\";s:7:\"#4bc7ee\";}s:6:\"_owner\";N;}i:1;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:136:\"m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z\";s:4:\"fill\";s:7:\"#d4cdcb\";}s:6:\"_owner\";N;}i:2;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:48:\"m.0206909 21 15.2439091-16.38571 4.3029 7.32271z\";s:4:\"fill\";s:7:\"#c3d82e\";}s:6:\"_owner\";N;}i:3;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:92:\"m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z\";s:4:\"fill\";s:7:\"#e4ecb0\";}s:6:\"_owner\";N;}i:4;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:44:\"m.0206909 21 19.5468091-9.063 1.6621 2.8344z\";s:4:\"fill\";s:7:\"#209dbd\";}s:6:\"_owner\";N;}i:5;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:48:\"m.0206909 21 17.9209091-11.82623 1.6259 2.76323z\";s:4:\"fill\";s:7:\"#7cb3c9\";}s:6:\"_owner\";N;}}}s:6:\"_owner\";N;}s:11:\"description\";s:23:\"Embed an Animoto video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:7:\"animoto\";s:10:\"responsive\";b:1;}}i:10;a:6:{s:4:\"name\";s:7:\"cloudup\";s:5:\"title\";s:7:\"Cloudup\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:22:\"Embed Cloudup content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:7:\"cloudup\";s:10:\"responsive\";b:1;}}i:11;a:7:{s:4:\"name\";s:12:\"collegehumor\";s:5:\"title\";s:12:\"CollegeHumor\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:27:\"Embed CollegeHumor content.\";s:5:\"scope\";a:1:{i:0;s:5:\"block\";}s:8:\"patterns\";a:0:{}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:12:\"collegehumor\";s:10:\"responsive\";b:1;}}i:12;a:7:{s:4:\"name\";s:11:\"crowdsignal\";s:5:\"title\";s:11:\"Crowdsignal\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:2:{i:0;s:9:\"polldaddy\";i:1;s:6:\"survey\";}s:11:\"description\";s:47:\"Embed Crowdsignal (formerly Polldaddy) content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:11:\"crowdsignal\";s:10:\"responsive\";b:1;}}i:13;a:7:{s:4:\"name\";s:11:\"dailymotion\";s:5:\"title\";s:11:\"Dailymotion\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:1:\"d\";s:481:\"m12.1479 18.5957c-2.4949 0-4.28131-1.7558-4.28131-4.0658 0-2.2176 1.78641-4.0965 4.09651-4.0965 2.2793 0 4.0349 1.7864 4.0349 4.1581 0 2.2794-1.7556 4.0042-3.8501 4.0042zm8.3521-18.5957-4.5329 1v7c-1.1088-1.41691-2.8028-1.8787-4.8049-1.8787-2.09443 0-3.97329.76993-5.5133 2.27917-1.72483 1.66323-2.6489 3.78863-2.6489 6.16033 0 2.5873.98562 4.8049 2.89526 6.499 1.44763 1.2936 3.17251 1.9402 5.17454 1.9402 1.9713 0 3.4498-.5236 4.8973-1.9402v1.9402h4.5329c0-7.6359 0-15.3641 0-23z\";s:4:\"fill\";s:7:\"#333436\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:11:\"description\";s:26:\"Embed a Dailymotion video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:11:\"dailymotion\";s:10:\"responsive\";b:1;}}i:14;a:6:{s:4:\"name\";s:5:\"imgur\";s:5:\"title\";s:5:\"Imgur\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:273:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:20:\"Embed Imgur content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:5:\"imgur\";s:10:\"responsive\";b:1;}}i:15;a:6:{s:4:\"name\";s:5:\"issuu\";s:5:\"title\";s:5:\"Issuu\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:20:\"Embed Issuu content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:5:\"issuu\";s:10:\"responsive\";b:1;}}i:16;a:6:{s:4:\"name\";s:11:\"kickstarter\";s:5:\"title\";s:11:\"Kickstarter\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:26:\"Embed Kickstarter content.\";s:8:\"patterns\";a:2:{i:0;a:0:{}i:1;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:11:\"kickstarter\";s:10:\"responsive\";b:1;}}i:17;a:6:{s:4:\"name\";s:10:\"meetup-com\";s:5:\"title\";s:10:\"Meetup.com\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:25:\"Embed Meetup.com content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:10:\"meetup-com\";s:10:\"responsive\";b:1;}}i:18;a:7:{s:4:\"name\";s:8:\"mixcloud\";s:5:\"title\";s:8:\"Mixcloud\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:344:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:2:{i:0;s:5:\"music\";i:1;s:5:\"audio\";}s:11:\"description\";s:23:\"Embed Mixcloud content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:8:\"mixcloud\";s:10:\"responsive\";b:1;}}i:19;a:6:{s:4:\"name\";s:6:\"reddit\";s:5:\"title\";s:6:\"Reddit\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:1453:\"M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:22:\"Embed a Reddit thread.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:6:\"reddit\";s:10:\"responsive\";b:1;}}i:20;a:6:{s:4:\"name\";s:12:\"reverbnation\";s:5:\"title\";s:12:\"ReverbNation\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:344:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:27:\"Embed ReverbNation content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:12:\"reverbnation\";s:10:\"responsive\";b:1;}}i:21;a:6:{s:4:\"name\";s:10:\"screencast\";s:5:\"title\";s:10:\"Screencast\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:25:\"Embed Screencast content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:10:\"screencast\";s:10:\"responsive\";b:1;}}i:22;a:6:{s:4:\"name\";s:6:\"scribd\";s:5:\"title\";s:6:\"Scribd\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:21:\"Embed Scribd content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:6:\"scribd\";s:10:\"responsive\";b:1;}}i:23;a:6:{s:4:\"name\";s:10:\"slideshare\";s:5:\"title\";s:10:\"Slideshare\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:25:\"Embed Slideshare content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:10:\"slideshare\";s:10:\"responsive\";b:1;}}i:24;a:6:{s:4:\"name\";s:7:\"smugmug\";s:5:\"title\";s:7:\"SmugMug\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:273:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:22:\"Embed SmugMug content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:3:{s:16:\"providerNameSlug\";s:7:\"smugmug\";s:11:\"previewable\";b:0;s:10:\"responsive\";b:1;}}i:25;a:6:{s:4:\"name\";s:12:\"speaker-deck\";s:5:\"title\";s:12:\"Speaker Deck\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:241:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:27:\"Embed Speaker Deck content.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:12:\"speaker-deck\";s:10:\"responsive\";b:1;}}i:26;a:7:{s:4:\"name\";s:6:\"tiktok\";s:5:\"title\";s:6:\"TikTok\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:11:\"description\";s:21:\"Embed a TikTok video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:6:\"tiktok\";s:10:\"responsive\";b:1;}}i:27;a:6:{s:4:\"name\";s:3:\"ted\";s:5:\"title\";s:3:\"TED\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:18:\"Embed a TED video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:3:\"ted\";s:10:\"responsive\";b:1;}}i:28;a:7:{s:4:\"name\";s:6:\"tumblr\";s:5:\"title\";s:6:\"Tumblr\";s:4:\"icon\";a:2:{s:10:\"foreground\";s:7:\"#35465c\";s:3:\"src\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:251:\"M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}}s:8:\"keywords\";a:1:{i:0;s:6:\"social\";}s:11:\"description\";s:20:\"Embed a Tumblr post.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:6:\"tumblr\";s:10:\"responsive\";b:1;}}i:29;a:7:{s:4:\"name\";s:10:\"videopress\";s:5:\"title\";s:10:\"VideoPress\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:8:\"keywords\";a:1:{i:0;s:5:\"video\";}s:11:\"description\";s:25:\"Embed a VideoPress video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:10:\"videopress\";s:10:\"responsive\";b:1;}}i:30;a:6:{s:4:\"name\";s:12:\"wordpress-tv\";s:5:\"title\";s:12:\"WordPress.tv\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:3:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:5:\"xmlns\";s:26:\"http://www.w3.org/2000/svg\";s:8:\"children\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:167:\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\";}s:6:\"_owner\";N;}}s:6:\"_owner\";N;}s:11:\"description\";s:27:\"Embed a WordPress.tv video.\";s:8:\"patterns\";a:1:{i:0;a:0:{}}s:10:\"attributes\";a:2:{s:16:\"providerNameSlug\";s:12:\"wordpress-tv\";s:10:\"responsive\";b:1;}}i:31;a:7:{s:4:\"name\";s:13:\"amazon-kindle\";s:5:\"title\";s:13:\"Amazon Kindle\";s:4:\"icon\";a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:2:{s:7:\"viewBox\";s:9:\"0 0 24 24\";s:8:\"children\";a:3:{i:0;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:534:\"M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z\";}s:6:\"_owner\";N;}i:1;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:106:\"M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z\";}s:6:\"_owner\";N;}i:2;a:4:{s:3:\"key\";N;s:3:\"ref\";N;s:5:\"props\";a:1:{s:1:\"d\";s:148:\"M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z\";}s:6:\"_owner\";N;}}}s:6:\"_owner\";N;}s:8:\"keywords\";a:1:{i:0;s:5:\"ebook\";}s:11:\"description\";s:28:\"Embed Amazon Kindle content.\";s:8:\"patterns\";a:2:{i:0;a:0:{}i:1;a:0:{}}s:10:\"attributes\";a:1:{s:16:\"providerNameSlug\";s:13:\"amazon-kindle\";}}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:8:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:4:\"type\";a:1:{s:4:\"type\";s:6:\"string\";}s:16:\"providerNameSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"allowResponsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:10:\"responsive\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"previewable\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}}s:9:\"core/file\";a:12:{s:4:\"name\";s:9:\"core/file\";s:8:\"keywords\";a:3:{i:0;s:8:\"document\";i:1;s:3:\"pdf\";i:2;s:8:\"download\";}s:10:\"attributes\";a:10:{s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"href\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"fileName\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:17:\"a:not([download])\";}s:12:\"textLinkHref\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:17:\"a:not([download])\";s:9:\"attribute\";s:4:\"href\";}s:14:\"textLinkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:17:\"a:not([download])\";s:9:\"attribute\";s:6:\"target\";}s:18:\"showDownloadButton\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:18:\"downloadButtonText\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:11:\"a[download]\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:4:\"File\";s:11:\"description\";s:34:\"Add a link to a downloadable file.\";s:10:\"variations\";a:0:{}}s:10:\"core/group\";a:14:{s:4:\"name\";s:10:\"core/group\";s:8:\"keywords\";a:4:{i:0;s:9:\"container\";i:1;s:7:\"wrapper\";i:2;s:3:\"row\";i:3;s:7:\"section\";}s:10:\"attributes\";a:9:{s:7:\"tagName\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:3:\"div\";}s:12:\"templateLock\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;s:5:\"color\";a:2:{s:9:\"gradients\";b:1;s:4:\"link\";b:1;}s:7:\"spacing\";a:1:{s:7:\"padding\";b:1;}}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:5:\"Group\";s:11:\"description\";s:28:\"Combine blocks into a group.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:1:{s:5:\"style\";a:1:{s:5:\"color\";a:2:{s:4:\"text\";s:7:\"#000000\";s:10:\"background\";s:7:\"#ffffff\";}}}s:11:\"innerBlocks\";a:6:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#cf2e2e\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"One.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#ff6900\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"Two.\";}}i:2;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#fcb900\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:6:\"Three.\";}}i:3;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#00d084\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:5:\"Four.\";}}i:4;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#0693e3\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:5:\"Five.\";}}i:5;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:3:{s:15:\"customTextColor\";s:7:\"#9b51e0\";s:8:\"fontSize\";s:5:\"large\";s:7:\"content\";s:4:\"Six.\";}}}}s:10:\"deprecated\";a:3:{i:0;a:2:{s:10:\"attributes\";a:7:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}i:1;a:2:{s:10:\"attributes\";a:7:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}i:2;a:2:{s:10:\"attributes\";a:5:{s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:3:{s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:6:\"anchor\";b:1;s:4:\"html\";b:0;}}}s:10:\"variations\";a:0:{}}s:13:\"core/freeform\";a:12:{s:4:\"name\";s:13:\"core/freeform\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:8:\"reusable\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:7:\"Classic\";s:11:\"description\";s:33:\"Use the classic WordPress editor.\";s:10:\"variations\";a:0:{}}s:9:\"core/html\";a:13:{s:4:\"name\";s:9:\"core/html\";s:8:\"keywords\";a:1:{i:0;s:5:\"embed\";}s:10:\"attributes\";a:1:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:11:\"Custom HTML\";s:11:\"description\";s:48:\"Add custom HTML code and preview it as you edit.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:62:\"Welcome to the wonderful world of blocks…\";}}s:10:\"variations\";a:0:{}}s:15:\"core/media-text\";a:14:{s:4:\"name\";s:15:\"core/media-text\";s:8:\"keywords\";a:2:{i:0;s:5:\"image\";i:1;s:5:\"video\";}s:10:\"attributes\";a:24:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:9:\"mediaLink\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:6:\"target\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:5:\"class\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:13:\"mediaSizeSlug\";a:1:{s:4:\"type\";s:6:\"string\";}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"gradient\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"style\";a:1:{s:4:\"type\";s:6:\"object\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:6:\"anchor\";b:1;s:5:\"align\";a:2:{i:0;s:4:\"wide\";i:1;s:4:\"full\";}s:4:\"html\";b:0;s:5:\"color\";a:2:{s:9:\"gradients\";b:1;s:4:\"link\";b:1;}}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:12:\"Media & Text\";s:11:\"description\";s:53:\"Set media and words side-by-side for a richer layout.\";s:7:\"example\";a:2:{s:10:\"attributes\";a:2:{s:9:\"mediaType\";s:5:\"image\";s:8:\"mediaUrl\";s:94:\"https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg\";}s:11:\"innerBlocks\";a:2:{i:0;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:44:\"The wren
    Earns his living
    Noiselessly.\";}}i:1;a:2:{s:4:\"name\";s:14:\"core/paragraph\";s:10:\"attributes\";a:1:{s:7:\"content\";s:27:\"— Kobayashi Issa (一茶)\";}}}}s:10:\"deprecated\";a:3:{i:0;a:1:{s:10:\"attributes\";a:19:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"mediaLink\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"linkDestination\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"linkTarget\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:6:\"target\";}s:4:\"href\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:4:\"href\";}s:3:\"rel\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:3:\"rel\";}s:9:\"linkClass\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:8:\"figure a\";s:9:\"attribute\";s:5:\"class\";}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:14:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:17:\"verticalAlignment\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"imageFill\";a:1:{s:4:\"type\";s:7:\"boolean\";}s:10:\"focalPoint\";a:1:{s:4:\"type\";s:6:\"object\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:11:{s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"wide\";}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaAlt\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:10:\"figure img\";s:9:\"attribute\";s:3:\"alt\";s:7:\"default\";s:0:\"\";}s:13:\"mediaPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"left\";}s:7:\"mediaId\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"mediaType\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"mediaWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:50;}s:17:\"isStackedOnMobile\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:21:\"customBackgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"mediaUrl\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:23:\"figure video,figure img\";s:9:\"attribute\";s:3:\"src\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:20:\"core/latest-comments\";a:13:{s:4:\"name\";s:20:\"core/latest-comments\";s:8:\"keywords\";a:1:{i:0;s:15:\"recent comments\";}s:10:\"attributes\";a:6:{s:14:\"commentsToShow\";a:4:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;s:7:\"minimum\";i:1;s:7:\"maximum\";i:100;}s:13:\"displayAvatar\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"displayDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:14:\"displayExcerpt\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:15:\"Latest Comments\";s:11:\"description\";s:44:\"Display a list of your most recent comments.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/latest-posts\";a:14:{s:4:\"name\";s:17:\"core/latest-posts\";s:8:\"keywords\";a:1:{i:0;s:12:\"recent posts\";}s:10:\"attributes\";a:20:{s:10:\"categories\";a:2:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"object\";}}s:14:\"selectedAuthor\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"postsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:18:\"displayPostContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:23:\"displayPostContentRadio\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:7:\"excerpt\";}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"displayPostDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"postLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:5:\"order\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"desc\";}s:7:\"orderBy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:20:\"displayFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:18:\"featuredImageAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}}s:21:\"featuredImageSizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:9:\"thumbnail\";}s:22:\"featuredImageSizeWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:23:\"featuredImageSizeHeight\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:22:\"addLinkToFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:12:\"Latest Posts\";s:11:\"description\";s:41:\"Display a list of your most recent posts.\";s:7:\"example\";a:0:{}s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:20:{s:10:\"categories\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"selectedAuthor\";a:1:{s:4:\"type\";s:6:\"number\";}s:11:\"postsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:18:\"displayPostContent\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:23:\"displayPostContentRadio\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:7:\"excerpt\";}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"displayPostDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:10:\"postLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:3;}s:5:\"order\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"desc\";}s:7:\"orderBy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"date\";}s:20:\"displayFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:18:\"featuredImageAlign\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}}s:21:\"featuredImageSizeSlug\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:9:\"thumbnail\";}s:22:\"featuredImageSizeWidth\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:23:\"featuredImageSizeHeight\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";N;}s:22:\"addLinkToFeaturedImage\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}}}s:10:\"variations\";a:0:{}}s:12:\"core/missing\";a:12:{s:4:\"name\";s:12:\"core/missing\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:12:\"originalName\";a:1:{s:4:\"type\";s:6:\"string\";}s:26:\"originalUndelimitedContent\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"originalContent\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:5:{s:9:\"className\";b:0;s:15:\"customClassName\";b:0;s:8:\"inserter\";b:0;s:4:\"html\";b:0;s:8:\"reusable\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:11:\"Unsupported\";s:11:\"description\";s:51:\"Your site doesn’t include support for this block.\";s:10:\"variations\";a:0:{}}s:9:\"core/more\";a:13:{s:4:\"name\";s:9:\"core/more\";s:8:\"keywords\";a:1:{i:0;s:9:\"read more\";}s:10:\"attributes\";a:2:{s:10:\"customText\";a:1:{s:4:\"type\";s:6:\"string\";}s:8:\"noTeaser\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:4:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:4:\"More\";s:11:\"description\";s:77:\"Content before this block will be shown in the excerpt on your archives page.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:13:\"core/nextpage\";a:14:{s:4:\"name\";s:13:\"core/nextpage\";s:8:\"keywords\";a:2:{i:0;s:9:\"next page\";i:1;s:10:\"pagination\";}s:10:\"attributes\";a:0:{}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:9:\"className\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:6:\"parent\";a:1:{i:0;s:17:\"core/post-content\";}s:5:\"title\";s:10:\"Page Break\";s:11:\"description\";s:51:\"Separate your content into a multi-page experience.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/preformatted\";a:13:{s:4:\"name\";s:17:\"core/preformatted\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:7:\"content\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";s:28:\"__unstablePreserveWhiteSpace\";b:1;}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:12:\"Preformatted\";s:11:\"description\";s:70:\"Add text that respects your spacing and tabs, and also allows styling.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:260:\"EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\nWindow, very small in the distance, illuminated.\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;\";}}s:10:\"variations\";a:0:{}}s:14:\"core/pullquote\";a:14:{s:4:\"name\";s:14:\"core/pullquote\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:9:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";a:4:{i:0;s:4:\"left\";i:1;s:5:\"right\";i:2;s:4:\"wide\";i:3;s:4:\"full\";}}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:11:\"solid-color\";s:5:\"label\";s:11:\"Solid color\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:9:\"Pullquote\";s:11:\"description\";s:55:\"Give special visual emphasis to a quote from your text.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:5:\"value\";s:73:\"

    One of the hardest things to do in technology is disrupt yourself.

    \";s:8:\"citation\";s:14:\"Matt Mullenweg\";}}s:10:\"deprecated\";a:4:{i:0;a:1:{s:10:\"attributes\";a:8:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"figureStyle\";a:3:{s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:6:\"figure\";s:9:\"attribute\";s:5:\"style\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:1;a:1:{s:10:\"attributes\";a:7:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:2;a:1:{s:10:\"attributes\";a:7:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:4:\"cite\";s:7:\"default\";s:0:\"\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}i:3;a:1:{s:10:\"attributes\";a:8:{s:5:\"value\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"blockquote\";s:9:\"multiline\";s:1:\"p\";}s:8:\"citation\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:6:\"footer\";}s:9:\"mainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customMainColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"textColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:15:\"customTextColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"none\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:8:\"core/rss\";a:13:{s:4:\"name\";s:8:\"core/rss\";s:8:\"keywords\";a:2:{i:0;s:4:\"atom\";i:1;s:4:\"feed\";}s:10:\"attributes\";a:10:{s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:11:\"blockLayout\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:4:\"list\";}s:7:\"feedURL\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:11:\"itemsToShow\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:5;}s:14:\"displayExcerpt\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"displayAuthor\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:11:\"displayDate\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:13:\"excerptLength\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:55;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";b:1;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:3:\"RSS\";s:11:\"description\";s:42:\"Display entries from any RSS or Atom feed.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"feedURL\";s:21:\"https://wordpress.org\";}}s:10:\"variations\";a:0:{}}s:11:\"core/search\";a:13:{s:4:\"name\";s:11:\"core/search\";s:8:\"keywords\";a:1:{i:0;s:4:\"find\";}s:10:\"attributes\";a:10:{s:5:\"label\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"showLabel\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:1;}s:11:\"placeholder\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:0:\"\";}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"number\";}s:9:\"widthUnit\";a:1:{s:4:\"type\";s:6:\"string\";}s:10:\"buttonText\";a:1:{s:4:\"type\";s:6:\"string\";}s:14:\"buttonPosition\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:14:\"button-outside\";}s:13:\"buttonUseIcon\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:6:\"Search\";s:11:\"description\";s:32:\"Help visitors find your content.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:1:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:9:\"isDefault\";b:1;s:10:\"attributes\";a:2:{s:10:\"buttonText\";s:6:\"Search\";s:5:\"label\";s:6:\"Search\";}}}}s:14:\"core/separator\";a:13:{s:4:\"name\";s:14:\"core/separator\";s:8:\"keywords\";a:3:{i:0;s:15:\"horizontal-line\";i:1;s:2:\"hr\";i:2;s:7:\"divider\";}s:10:\"attributes\";a:5:{s:5:\"color\";a:1:{s:4:\"type\";s:6:\"string\";}s:11:\"customColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";a:3:{i:0;s:6:\"center\";i:1;s:4:\"wide\";i:2;s:4:\"full\";}}s:6:\"styles\";a:3:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:4:\"wide\";s:5:\"label\";s:9:\"Wide Line\";}i:2;a:2:{s:4:\"name\";s:4:\"dots\";s:5:\"label\";s:4:\"Dots\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:9:\"Separator\";s:11:\"description\";s:69:\"Create a break between ideas or sections with a horizontal separator.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:11:\"customColor\";s:7:\"#065174\";s:9:\"className\";s:13:\"is-style-wide\";}}s:10:\"variations\";a:0:{}}s:10:\"core/block\";a:12:{s:4:\"name\";s:10:\"core/block\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:1:{s:3:\"ref\";a:1:{s:4:\"type\";s:6:\"number\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:15:\"customClassName\";b:0;s:4:\"html\";b:0;s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:8:\"reusable\";s:5:\"title\";s:14:\"Reusable Block\";s:11:\"description\";s:114:\"Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.\";s:10:\"variations\";a:0:{}}s:17:\"core/social-links\";a:13:{s:4:\"name\";s:17:\"core/social-links\";s:8:\"keywords\";a:1:{i:0;s:5:\"links\";}s:10:\"attributes\";a:4:{s:12:\"openInNewTab\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:1:{s:12:\"openInNewTab\";s:12:\"openInNewTab\";}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:5:\"align\";a:3:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";}s:6:\"anchor\";b:1;}s:6:\"styles\";a:3:{i:0;a:3:{s:4:\"name\";s:7:\"default\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:10:\"logos-only\";s:5:\"label\";s:10:\"Logos Only\";}i:2;a:2:{s:4:\"name\";s:10:\"pill-shape\";s:5:\"label\";s:10:\"Pill Shape\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:12:\"Social Icons\";s:11:\"description\";s:64:\"Display icons linking to your social media profiles or websites.\";s:7:\"example\";a:1:{s:11:\"innerBlocks\";a:3:{i:0;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:9:\"wordpress\";s:3:\"url\";s:21:\"https://wordpress.org\";}}i:1;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:8:\"facebook\";s:3:\"url\";s:35:\"https://www.facebook.com/WordPress/\";}}i:2;a:2:{s:4:\"name\";s:16:\"core/social-link\";s:10:\"attributes\";a:2:{s:7:\"service\";s:7:\"twitter\";s:3:\"url\";s:29:\"https://twitter.com/WordPress\";}}}}s:10:\"variations\";a:0:{}}s:16:\"core/social-link\";a:13:{s:4:\"name\";s:16:\"core/social-link\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:3:\"url\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"service\";a:1:{s:4:\"type\";s:6:\"string\";}s:5:\"label\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:1:{i:0;s:12:\"openInNewTab\";}s:8:\"supports\";a:2:{s:8:\"reusable\";b:0;s:4:\"html\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:6:\"parent\";a:1:{i:0;s:17:\"core/social-links\";}s:5:\"title\";s:11:\"Social Icon\";s:11:\"description\";s:61:\"Display an icon linking to a social media profile or website.\";s:10:\"variations\";a:39:{i:0;a:4:{s:9:\"isDefault\";b:1;s:4:\"name\";s:9:\"wordpress\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"wordpress\";}s:5:\"title\";s:9:\"WordPress\";}i:1;a:3:{s:4:\"name\";s:13:\"fivehundredpx\";s:10:\"attributes\";a:1:{s:7:\"service\";s:13:\"fivehundredpx\";}s:5:\"title\";s:5:\"500px\";}i:2;a:3:{s:4:\"name\";s:6:\"amazon\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"amazon\";}s:5:\"title\";s:6:\"Amazon\";}i:3;a:3:{s:4:\"name\";s:8:\"bandcamp\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"bandcamp\";}s:5:\"title\";s:8:\"Bandcamp\";}i:4;a:3:{s:4:\"name\";s:7:\"behance\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"behance\";}s:5:\"title\";s:7:\"Behance\";}i:5;a:3:{s:4:\"name\";s:5:\"chain\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"chain\";}s:5:\"title\";s:4:\"Link\";}i:6;a:3:{s:4:\"name\";s:7:\"codepen\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"codepen\";}s:5:\"title\";s:7:\"CodePen\";}i:7;a:3:{s:4:\"name\";s:10:\"deviantart\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"deviantart\";}s:5:\"title\";s:10:\"DeviantArt\";}i:8;a:3:{s:4:\"name\";s:8:\"dribbble\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"dribbble\";}s:5:\"title\";s:8:\"Dribbble\";}i:9;a:3:{s:4:\"name\";s:7:\"dropbox\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"dropbox\";}s:5:\"title\";s:7:\"Dropbox\";}i:10;a:3:{s:4:\"name\";s:4:\"etsy\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"etsy\";}s:5:\"title\";s:4:\"Etsy\";}i:11;a:3:{s:4:\"name\";s:8:\"facebook\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"facebook\";}s:5:\"title\";s:8:\"Facebook\";}i:12;a:3:{s:4:\"name\";s:4:\"feed\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"feed\";}s:5:\"title\";s:8:\"RSS Feed\";}i:13;a:3:{s:4:\"name\";s:6:\"flickr\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"flickr\";}s:5:\"title\";s:6:\"Flickr\";}i:14;a:3:{s:4:\"name\";s:10:\"foursquare\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"foursquare\";}s:5:\"title\";s:10:\"Foursquare\";}i:15;a:3:{s:4:\"name\";s:9:\"goodreads\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"goodreads\";}s:5:\"title\";s:9:\"Goodreads\";}i:16;a:3:{s:4:\"name\";s:6:\"google\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"google\";}s:5:\"title\";s:6:\"Google\";}i:17;a:3:{s:4:\"name\";s:6:\"github\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"github\";}s:5:\"title\";s:6:\"GitHub\";}i:18;a:3:{s:4:\"name\";s:9:\"instagram\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"instagram\";}s:5:\"title\";s:9:\"Instagram\";}i:19;a:3:{s:4:\"name\";s:6:\"lastfm\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"lastfm\";}s:5:\"title\";s:7:\"Last.fm\";}i:20;a:3:{s:4:\"name\";s:8:\"linkedin\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"linkedin\";}s:5:\"title\";s:8:\"LinkedIn\";}i:21;a:4:{s:4:\"name\";s:4:\"mail\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"mail\";}s:5:\"title\";s:4:\"Mail\";s:8:\"keywords\";a:2:{i:0;s:5:\"email\";i:1;s:6:\"e-mail\";}}i:22;a:3:{s:4:\"name\";s:8:\"mastodon\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"mastodon\";}s:5:\"title\";s:8:\"Mastodon\";}i:23;a:3:{s:4:\"name\";s:6:\"meetup\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"meetup\";}s:5:\"title\";s:6:\"Meetup\";}i:24;a:3:{s:4:\"name\";s:6:\"medium\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"medium\";}s:5:\"title\";s:6:\"Medium\";}i:25;a:3:{s:4:\"name\";s:9:\"pinterest\";s:10:\"attributes\";a:1:{s:7:\"service\";s:9:\"pinterest\";}s:5:\"title\";s:9:\"Pinterest\";}i:26;a:3:{s:4:\"name\";s:6:\"pocket\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"pocket\";}s:5:\"title\";s:6:\"Pocket\";}i:27;a:3:{s:4:\"name\";s:6:\"reddit\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"reddit\";}s:5:\"title\";s:6:\"Reddit\";}i:28;a:3:{s:4:\"name\";s:5:\"skype\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"skype\";}s:5:\"title\";s:5:\"Skype\";}i:29;a:3:{s:4:\"name\";s:8:\"snapchat\";s:10:\"attributes\";a:1:{s:7:\"service\";s:8:\"snapchat\";}s:5:\"title\";s:8:\"Snapchat\";}i:30;a:3:{s:4:\"name\";s:10:\"soundcloud\";s:10:\"attributes\";a:1:{s:7:\"service\";s:10:\"soundcloud\";}s:5:\"title\";s:10:\"SoundCloud\";}i:31;a:3:{s:4:\"name\";s:7:\"spotify\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"spotify\";}s:5:\"title\";s:7:\"Spotify\";}i:32;a:3:{s:4:\"name\";s:6:\"tumblr\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"tumblr\";}s:5:\"title\";s:6:\"Tumblr\";}i:33;a:3:{s:4:\"name\";s:6:\"twitch\";s:10:\"attributes\";a:1:{s:7:\"service\";s:6:\"twitch\";}s:5:\"title\";s:6:\"Twitch\";}i:34;a:3:{s:4:\"name\";s:7:\"twitter\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"twitter\";}s:5:\"title\";s:7:\"Twitter\";}i:35;a:3:{s:4:\"name\";s:5:\"vimeo\";s:10:\"attributes\";a:1:{s:7:\"service\";s:5:\"vimeo\";}s:5:\"title\";s:5:\"Vimeo\";}i:36;a:3:{s:4:\"name\";s:2:\"vk\";s:10:\"attributes\";a:1:{s:7:\"service\";s:2:\"vk\";}s:5:\"title\";s:2:\"VK\";}i:37;a:3:{s:4:\"name\";s:4:\"yelp\";s:10:\"attributes\";a:1:{s:7:\"service\";s:4:\"yelp\";}s:5:\"title\";s:4:\"Yelp\";}i:38;a:3:{s:4:\"name\";s:7:\"youtube\";s:10:\"attributes\";a:1:{s:7:\"service\";s:7:\"youtube\";}s:5:\"title\";s:7:\"YouTube\";}}}s:11:\"core/spacer\";a:12:{s:4:\"name\";s:11:\"core/spacer\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:6:\"height\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:100;}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:6:\"Spacer\";s:11:\"description\";s:56:\"Add white space between blocks and customize its height.\";s:10:\"variations\";a:0:{}}s:12:\"core/subhead\";a:12:{s:4:\"name\";s:12:\"core/subhead\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:3:{s:5:\"align\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"content\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:1:\"p\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:8:\"inserter\";b:0;s:8:\"multiple\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:23:\"Subheading (deprecated)\";s:11:\"description\";s:65:\"This block is deprecated. Please use the Paragraph block instead.\";s:10:\"variations\";a:0:{}}s:10:\"core/table\";a:14:{s:4:\"name\";s:10:\"core/table\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:9:{s:14:\"hasFixedLayout\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:7:\"caption\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";s:7:\"default\";s:0:\"\";}s:4:\"head\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"thead tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:4:\"body\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tbody tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:4:\"foot\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tfoot tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:4:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}s:5:\"align\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:10:\"data-align\";}}}}}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:3:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;s:22:\"__experimentalSelector\";s:24:\".wp-block-button > table\";}s:6:\"styles\";a:2:{i:0;a:3:{s:4:\"name\";s:7:\"regular\";s:5:\"label\";s:7:\"Default\";s:9:\"isDefault\";b:1;}i:1;a:2:{s:4:\"name\";s:7:\"stripes\";s:5:\"label\";s:7:\"Stripes\";}}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Table\";s:11:\"description\";s:55:\"Insert a table — perfect for sharing charts and data.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:2:{s:4:\"head\";a:1:{i:0;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:7:\"Version\";s:3:\"tag\";s:2:\"th\";}i:1;a:2:{s:7:\"content\";s:13:\"Jazz Musician\";s:3:\"tag\";s:2:\"th\";}i:2;a:2:{s:7:\"content\";s:12:\"Release Date\";s:3:\"tag\";s:2:\"th\";}}}}s:4:\"body\";a:3:{i:0;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.2\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:14:\"Jaco Pastorius\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:11:\"May 7, 2019\";s:3:\"tag\";s:2:\"td\";}}}i:1;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.1\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:12:\"Betty Carter\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:17:\"February 21, 2019\";s:3:\"tag\";s:2:\"td\";}}}i:2;a:1:{s:5:\"cells\";a:3:{i:0;a:2:{s:7:\"content\";s:3:\"5.0\";s:3:\"tag\";s:2:\"td\";}i:1;a:2:{s:7:\"content\";s:12:\"Bebo Valdés\";s:3:\"tag\";s:2:\"td\";}i:2;a:2:{s:7:\"content\";s:16:\"December 6, 2018\";s:3:\"tag\";s:2:\"td\";}}}}}}s:10:\"deprecated\";a:1:{i:0;a:2:{s:10:\"attributes\";a:7:{s:14:\"hasFixedLayout\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:15:\"backgroundColor\";a:1:{s:4:\"type\";s:6:\"string\";}s:4:\"head\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"thead tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:4:\"body\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tbody tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:4:\"foot\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:8:\"tfoot tr\";s:5:\"query\";a:1:{s:5:\"cells\";a:5:{s:4:\"type\";s:5:\"array\";s:7:\"default\";a:0:{}s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:5:\"td,th\";s:5:\"query\";a:3:{s:7:\"content\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}s:3:\"tag\";a:3:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:2:\"td\";s:6:\"source\";s:3:\"tag\";}s:5:\"scope\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:5:\"scope\";}}}}}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:8:\"supports\";a:1:{s:5:\"align\";b:1;}}}s:10:\"variations\";a:0:{}}s:14:\"core/tag-cloud\";a:13:{s:4:\"name\";s:14:\"core/tag-cloud\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:8:\"taxonomy\";a:2:{s:4:\"type\";s:6:\"string\";s:7:\"default\";s:8:\"post_tag\";}s:13:\"showTagCounts\";a:2:{s:4:\"type\";s:7:\"boolean\";s:7:\"default\";b:0;}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:4:\"html\";b:0;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:7:\"widgets\";s:5:\"title\";s:9:\"Tag Cloud\";s:11:\"description\";s:31:\"A cloud of your most used tags.\";s:7:\"example\";a:0:{}s:10:\"variations\";a:0:{}}s:17:\"core/text-columns\";a:12:{s:4:\"name\";s:17:\"core/text-columns\";s:8:\"keywords\";a:0:{}s:10:\"attributes\";a:4:{s:7:\"content\";a:5:{s:4:\"type\";s:5:\"array\";s:6:\"source\";s:5:\"query\";s:8:\"selector\";s:1:\"p\";s:5:\"query\";a:1:{s:8:\"children\";a:2:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";}}s:7:\"default\";a:2:{i:0;a:0:{}i:1;a:0:{}}}s:7:\"columns\";a:2:{s:4:\"type\";s:6:\"number\";s:7:\"default\";i:2;}s:5:\"width\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:8:\"inserter\";b:0;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:6:\"design\";s:5:\"title\";s:25:\"Text Columns (deprecated)\";s:11:\"description\";s:63:\"This block is deprecated. Please use the Columns block instead.\";s:10:\"variations\";a:0:{}}s:10:\"core/verse\";a:14:{s:4:\"name\";s:10:\"core/verse\";s:8:\"keywords\";a:2:{i:0;s:6:\"poetry\";i:1;s:4:\"poem\";}s:10:\"attributes\";a:4:{s:7:\"content\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";s:28:\"__unstablePreserveWhiteSpace\";b:1;}s:9:\"textAlign\";a:1:{s:4:\"type\";s:6:\"string\";}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:1:{s:6:\"anchor\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:4:\"text\";s:5:\"title\";s:5:\"Verse\";s:11:\"description\";s:65:\"Insert poetry. Use special spacing formats. Or quote song lyrics.\";s:7:\"example\";a:1:{s:10:\"attributes\";a:1:{s:7:\"content\";s:226:\"WHAT was he doing, the great god Pan,\n Down in the reeds by the river?\nSpreading ruin and scattering ban,\nSplashing and paddling with hoofs of a goat,\nAnd breaking the golden lilies afloat\n With the dragon-fly on the river.\";}}s:10:\"deprecated\";a:1:{i:0;a:1:{s:10:\"attributes\";a:3:{s:7:\"content\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:3:\"pre\";s:7:\"default\";s:0:\"\";}s:9:\"textAlign\";a:1:{s:4:\"type\";s:6:\"string\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}}}s:10:\"variations\";a:0:{}}s:10:\"core/video\";a:12:{s:4:\"name\";s:10:\"core/video\";s:8:\"keywords\";a:1:{i:0;s:5:\"movie\";}s:10:\"attributes\";a:14:{s:8:\"autoplay\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:8:\"autoplay\";}s:7:\"caption\";a:3:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:4:\"html\";s:8:\"selector\";s:10:\"figcaption\";}s:8:\"controls\";a:5:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:8:\"controls\";s:7:\"default\";b:1;}s:2:\"id\";a:1:{s:4:\"type\";s:6:\"number\";}s:4:\"loop\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:4:\"loop\";}s:5:\"muted\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:5:\"muted\";}s:6:\"poster\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:6:\"poster\";}s:7:\"preload\";a:5:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:7:\"preload\";s:7:\"default\";s:8:\"metadata\";}s:3:\"src\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:3:\"src\";}s:11:\"playsInline\";a:4:{s:4:\"type\";s:7:\"boolean\";s:6:\"source\";s:9:\"attribute\";s:8:\"selector\";s:5:\"video\";s:9:\"attribute\";s:11:\"playsinline\";}s:6:\"tracks\";a:3:{s:4:\"type\";s:5:\"array\";s:5:\"items\";a:1:{s:4:\"type\";s:6:\"object\";}s:7:\"default\";a:0:{}}s:5:\"align\";a:2:{s:4:\"type\";s:6:\"string\";s:4:\"enum\";a:6:{i:0;s:4:\"left\";i:1;s:6:\"center\";i:2;s:5:\"right\";i:3;s:4:\"wide\";i:4;s:4:\"full\";i:5;s:0:\"\";}}s:6:\"anchor\";a:4:{s:4:\"type\";s:6:\"string\";s:6:\"source\";s:9:\"attribute\";s:9:\"attribute\";s:2:\"id\";s:8:\"selector\";s:1:\"*\";}s:9:\"className\";a:1:{s:4:\"type\";s:6:\"string\";}}s:15:\"providesContext\";a:0:{}s:11:\"usesContext\";a:0:{}s:8:\"supports\";a:2:{s:6:\"anchor\";b:1;s:5:\"align\";b:1;}s:6:\"styles\";a:0:{}s:10:\"apiVersion\";i:2;s:8:\"category\";s:5:\"media\";s:5:\"title\";s:5:\"Video\";s:11:\"description\";s:58:\"Embed a video from your media library or upload a new one.\";s:10:\"variations\";a:0:{}}}', 'no'), (5107, 'action_scheduler_hybrid_store_demarkation', '8449', 'yes'), (5108, 'schema-ActionScheduler_StoreSchema', '3.0.1600474134', 'yes'), (5109, 'schema-ActionScheduler_LoggerSchema', '2.0.1600474134', 'yes'), @@ -583,13 +689,11 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (5319, 'comment_previously_approved', '1', 'yes'), (5320, 'auto_plugin_theme_update_emails', 'a:0:{}', 'no'), (5321, 'finished_updating_comment_type', '1', 'yes'), -(5349, 'wpseo_ryte', 'a:2:{s:6:\"status\";i:0;s:10:\"last_fetch\";i:1612891978;}', 'yes'), +(5349, 'wpseo_ryte', 'a:2:{s:6:\"status\";i:-1;s:10:\"last_fetch\";i:1620084311;}', 'yes'), (5375, 'wpe-health-check-site-status-result', '{\"good\":11,\"recommended\":8,\"critical\":0}', 'yes'), (5386, 'wp_graphql_version', '1.1.2', 'yes'), (5387, '_gatsby_tracked_post_types', 'a:6:{i:0;s:4:\"post\";i:1;s:4:\"page\";i:2;s:10:\"attachment\";i:3;s:15:\"type_limit_test\";i:4;s:17:\"type_limit_0_test\";i:5;s:20:\"translation_filter_t\";}', 'yes'), -(5388, '_gatsby_tracked_taxonomies', 'a:3:{i:0;s:8:\"category\";i:1;s:8:\"post_tag\";i:2;s:11:\"post_format\";}', 'yes'); -INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5391, 'rewrite_rules', 'a:248:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:7:\"team/?$\";s:31:\"index.php?post_type=team_member\";s:37:\"team/feed/(feed|rdf|rss|rss2|atom)/?$\";s:48:\"index.php?post_type=team_member&feed=$matches[1]\";s:32:\"team/(feed|rdf|rss|rss2|atom)/?$\";s:48:\"index.php?post_type=team_member&feed=$matches[1]\";s:24:\"team/page/([0-9]{1,})/?$\";s:49:\"index.php?post_type=team_member&paged=$matches[1]\";s:10:\"graphql/?$\";s:22:\"index.php?graphql=true\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:39:\"team_member/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:49:\"team_member/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:69:\"team_member/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:64:\"team_member/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:64:\"team_member/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:45:\"team_member/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:28:\"team_member/([^/]+)/embed/?$\";s:44:\"index.php?team_member=$matches[1]&embed=true\";s:32:\"team_member/([^/]+)/trackback/?$\";s:38:\"index.php?team_member=$matches[1]&tb=1\";s:52:\"team_member/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?team_member=$matches[1]&feed=$matches[2]\";s:47:\"team_member/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?team_member=$matches[1]&feed=$matches[2]\";s:40:\"team_member/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?team_member=$matches[1]&paged=$matches[2]\";s:47:\"team_member/([^/]+)/comment-page-([0-9]{1,})/?$\";s:51:\"index.php?team_member=$matches[1]&cpage=$matches[2]\";s:36:\"team_member/([^/]+)(?:/([0-9]+))?/?$\";s:50:\"index.php?team_member=$matches[1]&page=$matches[2]\";s:28:\"team_member/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:38:\"team_member/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:58:\"team_member/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:53:\"team_member/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:53:\"team_member/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:34:\"team_member/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:35:\"project/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:45:\"project/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:65:\"project/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:60:\"project/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:60:\"project/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:41:\"project/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:24:\"project/([^/]+)/embed/?$\";s:40:\"index.php?project=$matches[1]&embed=true\";s:28:\"project/([^/]+)/trackback/?$\";s:34:\"index.php?project=$matches[1]&tb=1\";s:36:\"project/([^/]+)/page/?([0-9]{1,})/?$\";s:47:\"index.php?project=$matches[1]&paged=$matches[2]\";s:43:\"project/([^/]+)/comment-page-([0-9]{1,})/?$\";s:47:\"index.php?project=$matches[1]&cpage=$matches[2]\";s:32:\"project/([^/]+)(?:/([0-9]+))?/?$\";s:46:\"index.php?project=$matches[1]&page=$matches[2]\";s:24:\"project/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:34:\"project/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:54:\"project/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:49:\"project/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:49:\"project/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:30:\"project/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:43:\"type_limit_test/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:53:\"type_limit_test/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:73:\"type_limit_test/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:68:\"type_limit_test/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:68:\"type_limit_test/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:49:\"type_limit_test/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:32:\"type_limit_test/([^/]+)/embed/?$\";s:48:\"index.php?type_limit_test=$matches[1]&embed=true\";s:36:\"type_limit_test/([^/]+)/trackback/?$\";s:42:\"index.php?type_limit_test=$matches[1]&tb=1\";s:44:\"type_limit_test/([^/]+)/page/?([0-9]{1,})/?$\";s:55:\"index.php?type_limit_test=$matches[1]&paged=$matches[2]\";s:51:\"type_limit_test/([^/]+)/comment-page-([0-9]{1,})/?$\";s:55:\"index.php?type_limit_test=$matches[1]&cpage=$matches[2]\";s:40:\"type_limit_test/([^/]+)(?:/([0-9]+))?/?$\";s:54:\"index.php?type_limit_test=$matches[1]&page=$matches[2]\";s:32:\"type_limit_test/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:42:\"type_limit_test/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:62:\"type_limit_test/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:57:\"type_limit_test/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:57:\"type_limit_test/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:38:\"type_limit_test/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:45:\"type_limit_0_test/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:55:\"type_limit_0_test/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:75:\"type_limit_0_test/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:70:\"type_limit_0_test/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:70:\"type_limit_0_test/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:51:\"type_limit_0_test/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:34:\"type_limit_0_test/([^/]+)/embed/?$\";s:50:\"index.php?type_limit_0_test=$matches[1]&embed=true\";s:38:\"type_limit_0_test/([^/]+)/trackback/?$\";s:44:\"index.php?type_limit_0_test=$matches[1]&tb=1\";s:46:\"type_limit_0_test/([^/]+)/page/?([0-9]{1,})/?$\";s:57:\"index.php?type_limit_0_test=$matches[1]&paged=$matches[2]\";s:53:\"type_limit_0_test/([^/]+)/comment-page-([0-9]{1,})/?$\";s:57:\"index.php?type_limit_0_test=$matches[1]&cpage=$matches[2]\";s:42:\"type_limit_0_test/([^/]+)(?:/([0-9]+))?/?$\";s:56:\"index.php?type_limit_0_test=$matches[1]&page=$matches[2]\";s:34:\"type_limit_0_test/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:44:\"type_limit_0_test/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:64:\"type_limit_0_test/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:59:\"type_limit_0_test/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:59:\"type_limit_0_test/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:40:\"type_limit_0_test/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:48:\"translation_filter_t/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:58:\"translation_filter_t/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:78:\"translation_filter_t/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"translation_filter_t/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"translation_filter_t/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:54:\"translation_filter_t/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:37:\"translation_filter_t/([^/]+)/embed/?$\";s:53:\"index.php?translation_filter_t=$matches[1]&embed=true\";s:41:\"translation_filter_t/([^/]+)/trackback/?$\";s:47:\"index.php?translation_filter_t=$matches[1]&tb=1\";s:49:\"translation_filter_t/([^/]+)/page/?([0-9]{1,})/?$\";s:60:\"index.php?translation_filter_t=$matches[1]&paged=$matches[2]\";s:56:\"translation_filter_t/([^/]+)/comment-page-([0-9]{1,})/?$\";s:60:\"index.php?translation_filter_t=$matches[1]&cpage=$matches[2]\";s:45:\"translation_filter_t/([^/]+)(?:/([0-9]+))?/?$\";s:59:\"index.php?translation_filter_t=$matches[1]&page=$matches[2]\";s:37:\"translation_filter_t/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:47:\"translation_filter_t/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:67:\"translation_filter_t/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"translation_filter_t/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"translation_filter_t/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:43:\"translation_filter_t/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:48:\"acf custom post type/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:58:\"acf custom post type/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:78:\"acf custom post type/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"acf custom post type/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"acf custom post type/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:54:\"acf custom post type/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:37:\"acf custom post type/([^/]+)/embed/?$\";s:50:\"index.php?acfcustomposttype=$matches[1]&embed=true\";s:41:\"acf custom post type/([^/]+)/trackback/?$\";s:44:\"index.php?acfcustomposttype=$matches[1]&tb=1\";s:49:\"acf custom post type/([^/]+)/page/?([0-9]{1,})/?$\";s:57:\"index.php?acfcustomposttype=$matches[1]&paged=$matches[2]\";s:56:\"acf custom post type/([^/]+)/comment-page-([0-9]{1,})/?$\";s:57:\"index.php?acfcustomposttype=$matches[1]&cpage=$matches[2]\";s:45:\"acf custom post type/([^/]+)(?:/([0-9]+))?/?$\";s:56:\"index.php?acfcustomposttype=$matches[1]&page=$matches[2]\";s:37:\"acf custom post type/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:47:\"acf custom post type/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:67:\"acf custom post type/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"acf custom post type/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"acf custom post type/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:43:\"acf custom post type/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:42:\"action_monitor/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:52:\"action_monitor/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:72:\"action_monitor/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:67:\"action_monitor/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:67:\"action_monitor/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:48:\"action_monitor/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:31:\"action_monitor/([^/]+)/embed/?$\";s:47:\"index.php?action_monitor=$matches[1]&embed=true\";s:35:\"action_monitor/([^/]+)/trackback/?$\";s:41:\"index.php?action_monitor=$matches[1]&tb=1\";s:43:\"action_monitor/([^/]+)/page/?([0-9]{1,})/?$\";s:54:\"index.php?action_monitor=$matches[1]&paged=$matches[2]\";s:50:\"action_monitor/([^/]+)/comment-page-([0-9]{1,})/?$\";s:54:\"index.php?action_monitor=$matches[1]&cpage=$matches[2]\";s:39:\"action_monitor/([^/]+)(?:/([0-9]+))?/?$\";s:53:\"index.php?action_monitor=$matches[1]&page=$matches[2]\";s:31:\"action_monitor/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:41:\"action_monitor/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:61:\"action_monitor/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:56:\"action_monitor/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:56:\"action_monitor/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:37:\"action_monitor/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:68:\"gatsby_action_ref_node_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&feed=$matches[2]\";s:63:\"gatsby_action_ref_node_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&feed=$matches[2]\";s:44:\"gatsby_action_ref_node_type/([^/]+)/embed/?$\";s:74:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&embed=true\";s:56:\"gatsby_action_ref_node_type/([^/]+)/page/?([0-9]{1,})/?$\";s:81:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&paged=$matches[2]\";s:38:\"gatsby_action_ref_node_type/([^/]+)/?$\";s:63:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]\";s:68:\"gatsby_action_ref_node_dbid/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&feed=$matches[2]\";s:63:\"gatsby_action_ref_node_dbid/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&feed=$matches[2]\";s:44:\"gatsby_action_ref_node_dbid/([^/]+)/embed/?$\";s:74:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&embed=true\";s:56:\"gatsby_action_ref_node_dbid/([^/]+)/page/?([0-9]{1,})/?$\";s:81:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&paged=$matches[2]\";s:38:\"gatsby_action_ref_node_dbid/([^/]+)/?$\";s:63:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]\";s:66:\"gatsby_action_ref_node_id/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&feed=$matches[2]\";s:61:\"gatsby_action_ref_node_id/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&feed=$matches[2]\";s:42:\"gatsby_action_ref_node_id/([^/]+)/embed/?$\";s:72:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&embed=true\";s:54:\"gatsby_action_ref_node_id/([^/]+)/page/?([0-9]{1,})/?$\";s:79:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&paged=$matches[2]\";s:36:\"gatsby_action_ref_node_id/([^/]+)/?$\";s:61:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]\";s:59:\"gatsby_action_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:71:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&feed=$matches[2]\";s:54:\"gatsby_action_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:71:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&feed=$matches[2]\";s:35:\"gatsby_action_type/([^/]+)/embed/?$\";s:65:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&embed=true\";s:47:\"gatsby_action_type/([^/]+)/page/?([0-9]{1,})/?$\";s:72:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&paged=$matches[2]\";s:29:\"gatsby_action_type/([^/]+)/?$\";s:54:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]\";s:66:\"gatsby_action_stream_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&feed=$matches[2]\";s:61:\"gatsby_action_stream_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&feed=$matches[2]\";s:42:\"gatsby_action_stream_type/([^/]+)/embed/?$\";s:72:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&embed=true\";s:54:\"gatsby_action_stream_type/([^/]+)/page/?([0-9]{1,})/?$\";s:79:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&paged=$matches[2]\";s:36:\"gatsby_action_stream_type/([^/]+)/?$\";s:61:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:27:\"comment-page-([0-9]{1,})/?$\";s:39:\"index.php?&page_id=17&cpage=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}', 'yes'), +(5388, '_gatsby_tracked_taxonomies', 'a:3:{i:0;s:8:\"category\";i:1;s:8:\"post_tag\";i:2;s:11:\"post_format\";}', 'yes'), (5406, 'wpmdb_usage', 'a:2:{s:6:\"action\";s:11:\"pull-remote\";s:4:\"time\";i:1618942585;}', 'no'), (5409, 'blog_public', '0', 'yes'), (5410, 'upload_path', '', 'yes'), @@ -604,32 +708,32 @@ INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload` (5419, 'auto_update_core_major', 'unset', 'yes'), (5427, 'can_compress_scripts', '0', 'no'), (5470, '_transient_health-check-site-status-result', '{\"good\":13,\"recommended\":5,\"critical\":2}', 'yes'), -(5475, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:2:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}i:1;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";s:9:\"new_files\";s:1:\"1\";}}s:12:\"last_checked\";i:1619821745;s:15:\"version_checked\";s:5:\"5.6.3\";s:12:\"translations\";a:0:{}}', 'no'), -(5478, 'auto_core_update_notified', 'a:4:{s:4:\"type\";s:7:\"success\";s:5:\"email\";s:18:\"tyler@gatsbyjs.com\";s:7:\"version\";s:5:\"5.6.3\";s:9:\"timestamp\";i:1619126108;}', 'no'), -(5488, '_transient_timeout_acf_plugin_updates', '1619994547', 'no'), -(5489, '_transient_acf_plugin_updates', 'a:4:{s:7:\"plugins\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";a:8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:10:\"expiration\";i:172800;s:6:\"status\";i:1;s:7:\"checked\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";}}', 'no'), -(5490, '_site_transient_timeout_theme_roots', '1619823547', 'no'), -(5491, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), -(5492, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619821748;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.9\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.1\";}s:8:\"response\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.0\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.0.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.7\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.7.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.3\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.3.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:9:\"no_update\";a:0:{}s:12:\"translations\";a:0:{}}', 'no'), -(5493, '_site_transient_update_plugins', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1619821748;s:7:\"checked\";a:7:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:5:\"1.8.1\";s:25:\"basic-auth/basic-auth.php\";s:3:\"0.1\";s:23:\"wp-gatsby/wp-gatsby.php\";s:5:\"0.9.1\";s:25:\"wp-graphql/wp-graphql.php\";s:5:\"1.1.2\";s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";s:3:\"1.1\";s:33:\"wp-graphql-acf/wp-graphql-acf.php\";s:5:\"0.3.1\";}s:8:\"response\";a:4:{s:43:\"custom-post-type-ui/custom-post-type-ui.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:33:\"w.org/plugins/custom-post-type-ui\";s:4:\"slug\";s:19:\"custom-post-type-ui\";s:6:\"plugin\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:11:\"new_version\";s:5:\"1.9.1\";s:3:\"url\";s:50:\"https://wordpress.org/plugins/custom-post-type-ui/\";s:7:\"package\";s:68:\"https://downloads.wordpress.org/plugin/custom-post-type-ui.1.9.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-256x256.png?rev=1069557\";s:2:\"1x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-128x128.png?rev=1069557\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:75:\"https://ps.w.org/custom-post-type-ui/assets/banner-1544x500.png?rev=1069557\";s:2:\"1x\";s:74:\"https://ps.w.org/custom-post-type-ui/assets/banner-772x250.png?rev=1069557\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.7.0\";s:12:\"requires_php\";s:3:\"5.6\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:23:\"wp-gatsby/wp-gatsby.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:23:\"w.org/plugins/wp-gatsby\";s:4:\"slug\";s:9:\"wp-gatsby\";s:6:\"plugin\";s:23:\"wp-gatsby/wp-gatsby.php\";s:11:\"new_version\";s:6:\"1.0.10\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/wp-gatsby/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-gatsby.1.0.10.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-256x256.png?rev=2336725\";s:2:\"1x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-128x128.png?rev=2336725\";}s:7:\"banners\";a:0:{}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.3\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:25:\"wp-graphql/wp-graphql.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:24:\"w.org/plugins/wp-graphql\";s:4:\"slug\";s:10:\"wp-graphql\";s:6:\"plugin\";s:25:\"wp-graphql/wp-graphql.php\";s:11:\"new_version\";s:5:\"1.3.6\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/wp-graphql/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.6.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=2482884\";s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=2482884\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=2482884\";s:2:\"1x\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=2482884\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.6.3\";s:12:\"requires_php\";s:3:\"7.1\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:34:\"advanced-custom-fields-pro/acf.php\";O:8:\"stdClass\":8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:0:{}}', 'no'), +(5478, 'auto_core_update_notified', 'a:4:{s:4:\"type\";s:7:\"success\";s:5:\"email\";s:18:\"tyler@gatsbyjs.com\";s:7:\"version\";s:5:\"5.6.3\";s:9:\"timestamp\";i:1620148463;}', 'no'), (5494, '_site_transient_timeout_browser_220ac8ceb1db13ed6db2da1a3be63cdd', '1620426548', 'no'), (5495, '_site_transient_browser_220ac8ceb1db13ed6db2da1a3be63cdd', 'a:10:{s:4:\"name\";s:6:\"Chrome\";s:7:\"version\";s:12:\"90.0.4430.93\";s:8:\"platform\";s:9:\"Macintosh\";s:10:\"update_url\";s:29:\"https://www.google.com/chrome\";s:7:\"img_src\";s:43:\"http://s.w.org/images/browsers/chrome.png?1\";s:11:\"img_src_ssl\";s:44:\"https://s.w.org/images/browsers/chrome.png?1\";s:15:\"current_version\";s:2:\"18\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}', 'no'), (5496, '_site_transient_timeout_php_check_7841c854be39099ac1d9b61bb411ecb0', '1620426549', 'no'), (5497, '_site_transient_php_check_7841c854be39099ac1d9b61bb411ecb0', 'a:5:{s:19:\"recommended_version\";s:3:\"7.4\";s:15:\"minimum_version\";s:6:\"5.6.20\";s:12:\"is_supported\";b:1;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}', 'no'), -(5500, '_site_transient_timeout_community-events-e945964770a0fd6f0dbbcd9622f2e63f', '1619864949', 'no'), -(5501, '_site_transient_community-events-e945964770a0fd6f0dbbcd9622f2e63f', 'a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:10:\"172.30.0.0\";}s:6:\"events\";a:7:{i:0;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:64:\"Demo + Discussion group: Creating and Registering Block Patterns\";s:3:\"url\";s:68:\"https://www.meetup.com/learn-wordpress-discussions/events/277669500/\";s:6:\"meetup\";s:27:\"Learn WordPress Discussions\";s:10:\"meetup_url\";s:51:\"https://www.meetup.com/learn-wordpress-discussions/\";s:4:\"date\";s:19:\"2021-05-04 07:00:00\";s:8:\"end_date\";s:19:\"2021-05-04 08:00:00\";s:20:\"start_unix_timestamp\";i:1620136800;s:18:\"end_unix_timestamp\";i:1620140400;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:37.779998779297;s:9:\"longitude\";d:-122.41999816895;}}i:1;a:10:{s:4:\"type\";s:8:\"wordcamp\";s:5:\"title\";s:18:\"WordCamp Venezuela\";s:3:\"url\";s:36:\"https://venezuela.wordcamp.org/2021/\";s:6:\"meetup\";N;s:10:\"meetup_url\";N;s:4:\"date\";s:19:\"2021-05-06 16:00:00\";s:8:\"end_date\";s:19:\"2021-05-07 00:00:00\";s:20:\"start_unix_timestamp\";i:1620331200;s:18:\"end_unix_timestamp\";i:1620360000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"VE\";s:8:\"latitude\";d:10.4805937;s:9:\"longitude\";d:-66.9036063;}}i:2;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:19:\"Virtual Mega Meetup\";s:3:\"url\";s:63:\"https://www.meetup.com/SeattleWordPressMeetup/events/277077262/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-05-16 10:00:00\";s:8:\"end_date\";s:19:\"2021-05-16 14:00:00\";s:20:\"start_unix_timestamp\";i:1621184400;s:18:\"end_unix_timestamp\";i:1621198800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:3;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:21:\"WP Freelancers Meetup\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/jjtpbsyccjbfb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-03 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-03 12:00:00\";s:20:\"start_unix_timestamp\";i:1622739600;s:18:\"end_unix_timestamp\";i:1622746800;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:4;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:37:\"WordPress Developer Meetup: Topic TBD\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/lzwzgsyccjbmb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-09 18:00:00\";s:8:\"end_date\";s:19:\"2021-06-09 20:00:00\";s:20:\"start_unix_timestamp\";i:1623286800;s:18:\"end_unix_timestamp\";i:1623294000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:5;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:31:\"Virtual: WordPress Fundamentals\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/zhfqdsyccjbzb/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-19 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-19 12:00:00\";s:20:\"start_unix_timestamp\";i:1624122000;s:18:\"end_unix_timestamp\";i:1624129200;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}i:6;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:48:\"Online Event: DIY User Group for Bloggers & More\";s:3:\"url\";s:67:\"https://www.meetup.com/SeattleWordPressMeetup/events/dxgdhsyccjbjc/\";s:6:\"meetup\";s:24:\"Seattle WordPress Meetup\";s:10:\"meetup_url\";s:46:\"https://www.meetup.com/SeattleWordPressMeetup/\";s:4:\"date\";s:19:\"2021-06-26 10:00:00\";s:8:\"end_date\";s:19:\"2021-06-26 12:00:00\";s:20:\"start_unix_timestamp\";i:1624726800;s:18:\"end_unix_timestamp\";i:1624734000;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"US\";s:8:\"latitude\";d:47.580001831055;s:9:\"longitude\";d:-122.40000152588;}}}}', 'no'), -(5502, '_transient_timeout_feed_9bbd59226dc36b9b26cd43f15694c5c3', '1619864950', 'no'), -(5503, '_transient_feed_9bbd59226dc36b9b26cd43f15694c5c3', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:49:\"\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"News – – WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"https://wordpress.org/news\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-US\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=5.8-alpha-50799\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:10:{i:0;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"Getting Started with the Figma WordPress Design Library\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"https://wordpress.org/news/2021/04/getting-started-with-the-figma-wordpress-design-library/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Uncategorized\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10173\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"Get Started with the Figma WordPress Design Library! \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:26010:\"\n

    Created by James Koster, (@jameskoster)

    \n\n\n\n

    As the name suggests, the WordPress Design Library is a library of WordPress design assets, enabling anyone to quickly create design prototypes for WordPress UI in Figma.

    \n\n\n\n

    These tools are useful for designers when creating new UI and for anyone looking to contribute ideas, enhancements, or even solutions to bug reports. Sometimes pictures really do speak a thousand words.

    \n\n\n\n

    In this post, we’ll talk about some key features of Figma before diving into a practical example that demonstrates some of the WordPress Design Library utilities.

    \n\n\n\n

    What Is Figma?

    \n\n\n\n
    \"\"
    \n\n\n\n

    Figma is a collaborative design tool that members of the WordPress project’s design team have been using for several years to work on and share design concepts. It offers a variety of handy features such as: in-browser access, rich prototyping tools, component libraries, code inspectors, live embeds, inline commenting, plugins, and much much more.

    \n\n\n\n

    Perhaps best of all, it is totally free to sign up and start playing around. If you join the WordPress.org Figma organization (instructions below), you’ll gain access to the WordPress Design Library enabling you to design WordPress UI in no time.

    \n\n\n\n

    What Is the WordPress Design Library?

    \n\n\n\n

    In Figma, you can share components and styles by publishing them, transforming your file into a library so that you can use instances of those components in other files.

    Figma.com
    \n\n\n\n

    It may be easiest to think of the WordPress Design Library as a visual representation of all the javascript components that compose UI in the WordPress codebase. As an end user of the library, you can use those components in a self-contained environment to create new interface designs. It’s kind of like a big LEGO box containing all the UI pieces (buttons, form inputs, etc.) that you can use to create and try out new designs.

    \n\n\n\n
    \"\"\"\"
    \n\n\n\n

    Creating designs with these assets enables rapid ideation on new interfaces by removing mundane processes that one would ordinarily have to work through. Nobody wants to repeatedly double-check that the button they made perfectly matches the buttons rendered by the code! And on the flip-side of that coin, anyone sharing a design with others will generally endeavor to make specific elements (like buttons) match what exists in the code as closely as possible. The WordPress Design Library solves both these headaches and more.

    \n\n\n\n

    An additional benefit to these assets visually matching what exists in the codebase is that any designs you create with them will inherently make use of the latest WordPress design language and consequently feel like WordPress with almost no effort required. Passing such designs on to developers makes them easier to interpret and implement too.

    \n\n\n\n

    Figma Fundamentals

    \n\n\n\n

    Before getting into the practical section of this post, let’s quickly cover some of the fundamental features of Figma libraries. This will help prepare us for working with the WordPress Design Library.

    \n\n\n\n

    Components

    \n\n\n\n

    As we touched on above, the library consists of “components” that serve as visual counterparts to their code-based equivalents. That is to say, there is a Button component in Figma, and a matching Button component in the WordPress codebase.

    \n\n\n\n

    But what is a Figma component?

    \n\n\n\n

    Components are elements you can reuse across your designs. They help to create and manage consistent designs across projects.

    help.figma.com
    \n\n\n\n

    Let’s quickly explore some of the properties of Figma components to understand the ways they help when working on our next design.

    \n\n\n\n

    Variants

    \n\n\n\n

    Some Figma components offer variants. One example is Button(s) which all have the following states:

    \n\n\n\n
    • Resting
    • Hover
    • Focus
    • Disabled
    \n\n\n\n

    These can be manipulated via the variants interface in Figma:

    \n\n\n\n
    \"\"
    \n\n\n\n

    Other examples of components with variants are form inputs and menu items. Variants are a new feature in Figma, so we’ll be adding more over time.

    \n\n\n\n

    Overrides

    \n\n\n\n

    Although any components you insert are intrinsically linked to the master component in the library, it is possible to override some properties.

    \n\n\n\n

    While working with an instance of the Button component, you can change things like the label, or even the background color, while maintaining the link to the master component in the library. If you’re familiar with git workflows, this is kind of like creating a local branch. Any changes you make can easily be reset in a couple of clicks.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Overrides made to your local instance will persist even when the master component is updated. So if your design calls for a button with a green background, you can apply that override safely with the knowledge that even if the master component is updated, your button can inherit those updates and remain green.

    \n\n\n\n
    \n\n\n\n

    We’ve only really scratched the surface of components here. So I would recommend the official Figma documentation for more advanced information.

    \n\n\n\n

    Figma Styles

    \n\n\n\n

    In addition to components, styles are also published as part of the WordPress Design Library. They have similar properties to components in that a master style exists in the library and can be utilized in your local Figma file. Just like Components, Styles will receive updates when changes to the library are published.

    \n\n\n\n

    Styles are used to define colors, typographical rules, and effects like drop-shadows present in the WordPress codebase. They enable you to apply things like text or background colors that will match other UI parts.

    \n\n\n\n

    Using Styles from the library, you ensure that your creations match existing UI elements, making it easier to implement.

    \n\n\n\n
    \"\"
    \n\n\n\n
    \n\n\n\n

    To learn more about styles in Figma, I recommend the official documentation.

    \n\n\n\n

    Views and Stickers

    \n\n\n\n

    “Stickers” are simply arrangements of Components and Styles that have been combined to represent common UI elements. They are not good candidates for full componentization due to their frequent customization needs. Examples of Stickers include the Inspector sidebar and the block inserter:

    \n\n\n\n
    \"\"
    \n\n\n\n

    Their utility is simple: find the sticker you need, peel (copy) it from the WordPress Design Library, and stick (paste) it into your local file before customizing as needed.

    \n\n\n\n

    Stickers are not Figma features like Components and Styles, but any stickers you copy to a working file will stay up to date by virtue of their underlying assets.

    \n\n\n\n

    Views are arrangements of components, styles, and stickers.

    \n\n\n\n

    Designing a Block Using the WordPress Design Library

    \n\n\n\n

    Okay, now that we have a handle on the basics of Figma libraries and their features and the utilities of the WordPress Design Library like Stickers and Views, let’s work through a practical example – designing the UI for a brand new block.

    \n\n\n\n

    Getting Started

    \n\n\n\n

    All you need to get started is a Figma account added to the WordPress.org Figma organization.

    \n\n\n\n

    Once you’ve signed up at Figma, simply join the #Design channel on the community Slack and request an invite. Include your Figma username, and a friendly community member will help get you set up in no time.

    \n\n\n\n

    Now the fun begins!

    \n\n\n\n

    To create a fresh new design file in Figma, visit the Gutenberg project and click the “+ New” button.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Now let’s include the WordPress Design Library in our working file so that we have access to all the goodies we’ll need:

    \n\n\n\n
    1. Open the “Assets” panel and click the little book icon to view the available Team Libraries.
    2. In the modal, toggle the WordPress Design Library on. You can leave the others off for now.
    \n\n\n\n
    \"\"
    \n\n\n\n

    After closing the modal, you’ll notice a number of components become visible in the assets panel. To insert them, they can be dragged on to the canvas:

    \n\n\n\n
    \"\"
    \n\n\n\n

    It’s kind of like inserting a block \"🙂\"

    \n\n\n\n

    Creating a Pizza Block \"🍕\"

    \n\n\n\n

    I love to eat pizza, so for fun, I’m going to design a new block that simply allows the user to display a delicious pizza in their posts and pages. I want the block to include options for a total number of slices and different toppings.

    \n\n\n\n

    Work Out the Flow

    \n\n\n\n

    I always like to concentrate on individual flows when designing blocks. That is to say, the linear steps a user will take when working with that block. In this case, I want to create visualizations of the following steps/views in our Figma file:

    \n\n\n\n
    1. Inserting the block from the Block Inserter
    2. The Pizza Block placeholder state including options in the block, its Toolbar, and the Inspector
    3. The configured Pizza Block settings
    4. The end result – a delicious pizza sitting comfortably on the canvas
    \n\n\n\n

    Sketch the New States

    \n\n\n\n

    Thanks to the WordPress Design Library, I’ll be using as many existing UI components as possible, but I still need a rough idea of how they will be composed in the new interfaces that my Pizza block will require. I normally find it helpful to sketch these out on paper.

    \n\n\n\n

    Here’s the placeholder state which users will see when they first insert the block. This should be all I need:

    \n\n\n\n
    \"\"
    \n\n\n\n

    Prepare the Views and Stickers

    \n\n\n\n

    Helpfully, there are Views in the WordPress Design Library I can use for each of the steps in the flow outlined above.

    \n\n\n\n

    I open the library, navigate to the Views page, find the views I need, copy them, and paste into my working file.

    \n\n\n\n
    \"\"
    \n\n\n\n

    It is very important to copy (not cut) Views from the library so that they remain intact and other people can still access them. If you cut them, they’ll be gone forever, so please don’t do that \"🙂\"

    \n\n\n\n

    I’m also going to need a block placeholder sticker, so I navigate to the Stickers page, copy the one that most closely resembles my sketch from before, and paste it into my working file.

    \n\n\n\n
    \"\"
    \n\n\n\n

    As with views, please only copy stickers; do not cut them.

    \n\n\n\n

    Gather the Components

    \n\n\n\n

    Referring back to the placeholder state I sketched out on paper (it can be helpful to import this into your Figma file), I can see that I’m going to need some form elements to realize the design.

    \n\n\n\n
    \"\"
    \n\n\n\n

    I navigate to the Assets panel, locate the components I need, and drag them into my file:

    \n\n\n\n
    \"\"
    \n\n\n\n

    Helpful tip: Once a component has been inserted, you can transform it into another component via its settings panel. Sometimes it is easier to copy/paste a component you already inserted and transform it this way, rather than opening the assets panel over and over.

    \n\n\n\n

    Arrange the Views, Stickers, and Components to Create a Coherent Design

    \n\n\n\n

    Now that we’ve gathered all the individual pieces we need, it’s simply a case of arranging them so that they resemble each of the steps of the flow we outlined before. This is done with simple drag and drop.

    \n\n\n\n

    If you’re familiar with software like Photoshop, Sketch, and others, this should feel very familiar.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Once everything is in place, our flow is complete:

    \n\n\n\n
    \"\"
    \n\n\n\n

    I still find it incredible that we’re able to do this in just a few short moments.

    \n\n\n\n

    Hook up the Prototype

    \n\n\n\n

    With each step of our flow created, the last piece of the puzzle is to connect them and form a clickable prototype.

    \n\n\n\n

    I switch to the Prototype panel and create click behaviors by selecting a layer, then dragging the white dot to the corresponding frame.

    \n\n\n\n
    \"\"
    \n\n\n\n

    There are a variety of behaviors that the Figma prototyping tools support, such as a hover, drag, and click. It is even possible to create smart animations. Perhaps that’s something we can explore in another tutorial, but for now, I will refer you to the Figma documentation for more advanced prototyping.

    \n\n\n\n

    Now that I’ve connected all the appropriate elements, I am able to take my prototype for a test drive by clicking the Play \"▶\" icon:

    \n\n\n\n
    \"\"
    \n\n\n\n

    You can try it too; just click here.

    \n\n\n\n

    That’s All, Folks!

    \n\n\n\n

    I tried to keep this tutorial fairly simple and concise; even though we only really got to grips with the basics here, you can see the power of Figma and the WordPress Design Library when it comes to trying out new designs.

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10173\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"Curious About Full Site Editing?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/curious-about-full-site-editing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:26:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Features\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:7:\"General\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10190\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:296:\"The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more. For […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:2792:\"\n

    The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more.

    \n\n\n\n

    For Site Owners and Operators

    \n\n\n\n

    If you own and operate a WordPress site, updating to version 5.8 should be a seamless experience, just like any other update. All the conversation around full site editing is very exciting, but shouldn’t be alarming—everything in the next release that relates to full site editing is opt-in. To experiment freely with it, you need a theme that is built for it. Check the links at the end to see a few examples!

    \n\n\n\n

    For Agencies and Theme/Plugin Developers

    \n\n\n\n

    If you extend the functionality of the WordPress CMS for clients, updating to version 5.8 should also be seamless. As always, it’s smart to spot-check custom implementations in a staging environment or fully test when the release candidate is made available. Want to test your products and get everything client-ready? Check out any of the testing options below.

    \n\n\n\n

    For Contributors and Volunteers

    \n\n\n\n

    If you contribute time and expertise to the WordPress project, you can join us in the interesting work leading up to the WordPress 5.8 release and update your site with the deep satisfaction of a job well done. There is a lot that goes into every release—from design and development to documentation and translation; if you’ve got some time to spare, and want to help support the project that supports the tool that supports your site (whew!), check out the links below.

    \n\n\n\n

    Resources

    \n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10190\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:58:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:44:\"WP Briefing: Your Opinion is Our Opportunity\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/your-opinion-is-our-opportunity/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 15:24:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10171\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:148:\"In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/04/WP-Briefing-007.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:13068:\"\n

    In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. 

    \n\n\n\n

    Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

    \n\n\n\n

    Credits

    \n\n\n\n\n\n\n\n

    References

    \n\n\n\n\n\n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    0:10

    \n\n\n\n

    Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

    \n\n\n\n

    0:39

    \n\n\n\n

    Prior to Gutenberg, our current multi-year project that is changing the way we see WordPress, another multi-year project changed the way we saw WordPress. Starting in 2008, substantial changes to the WordPress interface came in a series of major releases, starting with WordPress 2.5. That was before my time in the project; I’ve only ever worked with the current dashboard in WordPress. But, from what I’ve read, the user testing that would have gone into it was a huge undertaking and very well coordinated. Now, WordPress has not taken on that type of robust testing project since, but starting around 2014 or 2015, a community testing practice was started. I’ve shared these calls for testing frequently, both on Twitter and in this podcast. But you may not really know why I find the testing program so valuable. So today, I’m going to explore with you the concept of co-developers in open source.

    \n\n\n\n

    1:52

    \n\n\n\n

    Open source software, like WordPress, is built by the people who show up. There are a few obvious groups when you think of software, the developers, designers, technical writers, folks who monitor the forums, and really, all the teams you find in our WordPress project. Co-developers or co-creators, if you’ll join me in making our tent a little bigger, refers to the users of an open source product who actively engage and contribute to the work by using the software and sharing any bugs that they find.

    \n\n\n\n

    2:25

    \n\n\n\n

    I mentioned this group in the episode about how WordPress improves. Specifically in that episode, I underlined that if you consider users to be part of the collaborative process, as long as people use your product, those people will have opinions about your product’s needs. And today, I’m extending that thought a bit further to say that, as long as there are opinions, there are opportunities.

    \n\n\n\n

    2:51

    \n\n\n\n

    When you know what isn’t working, you can focus your attention on a solution, you can focus on making sure that you can make it work. The existence of co-creators is one of the great things about open source. No designer or developer or product owner has to know every sort of user to be able to get feedback from them. If they show up, test the software and get their thoughts written down, then you can start to see patterns and common pain points. It is also, unfortunately, one of the great difficulties of being an open source project. After all, if users don’t show up, or don’t test, or don’t write down their feedback, it’s impossible to know what worked for them and what didn’t. And on top of that, with such a large percentage of the web being supported by WordPress in this case, not every problem is part of a pattern. And not all patterns are part of the current priorities.

    \n\n\n\n

    3:54

    \n\n\n\n

    Looking beyond that double-edged sword. Let’s say that this idea of a co-creator makes sense to you. And more than that, you feel like it describes you. What does it mean for you to show up in WordPress? There are lots of good ways to offer this sort of feedback and contribute to those patterns that can help us see through the fog. So I have for you a mini list and, of course, a bunch of links in the show notes for you. 

    \n\n\n\n

    So some good ways. First, you can participate in any of the dedicated calls for testing. They are short and frequently have a guide. I participate in them and generally find them fun. I say generally because sometimes I also find them frustrating. That’s really okay too; the frustrations helped me to identify that I found a problem. And if I can find a problem, then I have saved someone else from finding that problem in the future. The second thing you can do is file a bug report with information about what happened when you ran into a problem and how someone like me could make your bug happen on their site. Bug

    \n\n\n\n

    5:00

    \n\n\n\n

    Reporting is one of the things I’ve grown to really love in my time and open source; I did not love it. At first, I was really scared to do it. I mostly used to send videos of the bugs that I found to other people and ask them to file the bug reports for me. But then, of course, I never knew whether they got fixed or not. So I was scared to do it at first. But once I figured out what makes a “good report,” I felt like I was helping circle hidden treasure on a map or something. I realized also not everyone’s excited about finding hidden treasure on a map. But I play video games and finding hidden treasure on maps is, like, a thing.

    \n\n\n\n

    5:43

    \n\n\n\n

    A third really great way to contribute like this is that you can join any community meeting to learn more about what’s happening now and in the future, or just to see what makes WordPress work. As a heads up, these meetings go really fast. And they’re all in text. And there’s sometimes, but not all the time, a little bit of jargon that you have to head to your favorite search engine to find. But I sit in on about half of them myself and get a lot of really good information about things that I’ve been wondering about, things that looked broken, but actually are functioning exactly the way that they should. And I just didn’t want them to function that way. And more often than not, I found out that something that I thought was broken, was already identified and being fixed. Those are three great ways to show up and help give feedback that helps make WordPress better and more functional for more people. 

    \n\n\n\n

    There are also a few other ways that we see people trying to share that feedback that don’t work quite as well. And I’m going to touch on a few of them just because it’s important to know, as you’re trying to figure out how to get started with this. The first one is just tweeting your frustrations, and I get it like that’s literally what Twitter is for.

    \n\n\n\n

    7:03

    \n\n\n\n

    But also it’s hard to create a block from “I am frustrated, behold my hateful rhetoric.” Not that any of you, my dear listeners, ever tweet hateful rhetoric. Still, that is really hard for anyone to figure out what was actually wrong in that moment. Another thing that is not the most functional way to give feedback is review brigading. The Internet rewards this kind of behavior, but I have found at least for WordPress, those false positives and false negatives can be really confusing for our new users. And the third way, that’s not our best way, and probably is the least best way, is just by giving up and not telling anyone what broke for you.

    \n\n\n\n

    7:45

    \n\n\n\n

    I know that I already said it’s not possible to fix everyone’s problems. But while it’s not possible to fix everyone’s problems the moment they get shared, it’s also truly impossible to fix any problems that no one knows exist. And so giving up and not sharing an issue so that we can identify it as part of a pattern of problems is probably the least effective way to help us help you get your problem solved.

    \n\n\n\n

    8:13

    \n\n\n\n

    This brings me back to the question of the value of WordPress users as co creators in the development process. As WordPress grows, both in usage as a CMS and in participation as a community, it’s important for us to shed the idea that software creation is only about what literally can be done to code or what literally can be done to core or what literally can be done to the CMS. It’s also important for us to constantly remind ourselves that the best outcomes are the result of collaboration with the people who use WordPress the most. I know that not every type of user we have is showing up to give us feedback about where WordPress doesn’t work for them. And I would love to see more feedback that helps us to figure out where our patterns are.

    \n\n\n\n

    9:03

    \n\n\n\n

    So the bottom line is this without user feedback that has some clarity of what was expected versus what happened, the work to make a good choice involves a whole lot of guessing. So since open source software is built by the people who show up, I hope this gives you an idea of how you can show up and help improve the tool that powers your sites.

    \n\n\n\n

    9:32

    \n\n\n\n

    That brings us to today’s community highlight every episode or so I share either a great story of WordPress success or a great story of a WordPress contributor who helped some folks along the way. Today’s community highlight comes from @trishacodes who shared one of her early to WordPress mentors. She says “@RianRietveld was such an encouragement and helped me find the courage to speak up.” I have had myself many conversations with Rian, and that rings true for me as well. 

    \n\n\n\n

    10:00

    \n\n\n\n

    That brings us to the moment you’ve all been waiting for, the small list of big things. It’s actually kind of a medium list. Today, I’ve got four whole things to share with you all. The first thing on my list is that WordCamp Europe is coming, that will be June 7th through the 10th. It’s a multi-day online event. I will share in the show notes a link to the main website; there you can get an idea of what will happen, the schedule, and get your hands on some tickets so that you can get it in your calendar and prepare yourselves. 

    \n\n\n\n

    The second thing I want to share is for all of our polyglots out there. The French team is planning a translation day coming up on April 30. I will share a link to that as well so that you can get an idea of what that takes if you’re feeling like you want to do some translation work. The third thing I want to share is that the Indian community in Pune actually started a new meetup series. It is a translation work along self-study – also for all of our polyglots out there. I would love to see as many people as are interested in both learning about how to do translations and certainly translating WordPress get registered for that. A final thing I want to share with you all is that if you are curious about what full site editing features will be included in the 5.8 release, that’s the WordPress release that’s coming out in the middle of July, you can check out my recap and recording of the demo that was held with Matt, Matias, and the rest of the team. There’s are also a number of other posts of next step ideas that I will share in the show notes as well.

    \n\n\n\n

    11:51

    \n\n\n\n

    That, my friends, is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10171\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"Become an Early Adopter With the Gutenberg Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wordpress.org/news/2021/04/become-an-early-adopter-with-the-gutenberg-plugin/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 21:03:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:13:\"Uncategorized\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10164\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:372:\"Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce) In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:4695:\"\n

    Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce)

    \n\n\n\n
    \"\"
    \n\n\n\n

    In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project itself, you may also have heard some additional nuances—Gutenberg plugin, Gutenberg, or Block Editor. 

    \n\n\n\n

    It can get a little confusing, so let’s take a look at four terms that will help you find your way: 

    \n\n\n\n
    • WordPress – WordPress refers to the open source software but also to the community that surrounds it. 
    • Gutenberg – Gutenberg is the code name for a multi-year project to update editing areas for the WordPress software.
    • Editor – The editor refers to a section of the software that allows you to update content on your site’s posts and pages. 
    • Gutenberg Plugin – The Gutenberg plugin is where early work to update the editor is shared.
    \n\n\n\n

    The Gutenberg Plugin

    \n\n\n\n

    Now that we’ve cleared up the definitions, let’s talk about the plugin. When might you use it? What would you use it for? You can think of it as an early access program or a “WordPress lab.” The plugin is updated every two weeks, which means that bugs that have been reported are often fixed and that what you see changes rapidly. 

    \n\n\n\n

    The Gutenberg plugin also contains features that aren’t yet ready for their WordPress debut but are ready for curious users to test and provide feedback. This is a common practice that allows stable features to make it to your site in WordPress releases while allowing experimental features to be tested and refined. To get a sense of whether using the Gutenberg Plugin might be something you want to explore to get access to earlier features, check out the “What’s New” release posts and the Core Editor Improvement post series

    \n\n\n\n

    Do I Need the Plugin to Use Gutenberg?

    \n\n\n\n

    It depends on your comfort level! Generally speaking, it is not recommended to use the plugin on a site that has launched and is actively in use unless you’re very comfortable with the code side of WordPress. Fortunately, each WordPress release comes ready to go with multiple versions of the Gutenberg plugin

    \n\n\n\n

    But if you are a keen beta tester who loves reporting feedback, or you feel comfortable navigating how to opt-in/out of the experimental aspects of the plugin, here are a few reasons you might want to dig into what the Gutenberg Plugin has to offer:

    \n\n\n\n
    • Test new features and give helpful feedback. For example, you can use the plugin to help test Full Site Editing
    • Get early access to the latest & greatest while navigating when to opt-in or out of experimental features. 
    • Prepare for the future whether you’re a theme author, plugin developer, agency owner, etc. 
    \n\n\n\n

    Do you use the Gutenberg plugin and share feedback on GitHub? Thank you! This kind of feedback is what helps ensure stability in what’s shipped in WordPress releases. 

    \n\n\n\n
    \n\n\n\n

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10164\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:60:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Security\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:365:\"WordPress 5.7.1 is now available! This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated. WordPress 5.7.1 is a short-cycle security and maintenance release. The next […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8461:\"\n

    WordPress 5.7.1 is now available!

    \n\n\n\n

    This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

    \n\n\n\n

    WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

    \n\n\n\n

    You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

    \n\n\n\n

    If you have sites that support automatic background updates, they’ve already started the update process.

    \n\n\n\n

    Security Updates

    \n\n\n\n

    Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

    \n\n\n\n
    • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
    • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
    \n\n\n\n

    Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

    \n\n\n\n

    Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

    \n\n\n\n

    For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

    \n\n\n\n

    Thanks and props!

    \n\n\n\n

    The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

    \n\n\n\n

    In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

    \n\n\n\n

    99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:63:\"\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:3:{i:0;a:5:{s:4:\"data\";s:9:\"heropress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:16:\"ContributorStory\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:17:\"WordPress journey\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:117:\"In this People of WordPress contributor story, we chat with Tyler Lau from Kansas, US, on his journey with WordPress.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:10363:\"\n

    WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

    \n\n\n\n

    Embrace Who You Are and Your Journey

    \n\n\n\n

    In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

    \n\n\n\n

    Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

    \n\n\n\n
    \"Tyler
    \n\n\n\n

    An Entrepreneurial Mindset

    \n\n\n\n

    Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

    \n\n\n\n

    While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

    \n\n\n\n

    He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

    \n\n\n\n

    Using your skills to uncover your journey

    \n\n\n\n
    \"Tyler
    \n\n\n\n

    Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

    \n\n\n\n

    These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

    \n\n\n\n

    In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

    \n\n\n\n

    Relationship-building as a career

    \n\n\n\n

    Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

    \n\n\n\n

    When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

    \n\n\n\n

    Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

    \n\n\n\n

    The true meaning of freedom

    \n\n\n\n

    In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

    \n\n\n\n

    Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

    \n\n\n\n

    He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

    \n\n\n\n

    There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

    \n\n\n\n

    Going forward positively 

    \n\n\n\n
    \"Tyler
    \n\n\n\n

    The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

    \n\n\n\n

    He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

    \n\n\n\n

    I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

    \n\n\n\n

    Now, he’s able to put those skills to good use in the WordPress community and beyond. 

    \n\n\n\n

    He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

    \n\n\n\n

    Contributors

    \n\n\n\n

    Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

    \n\n\n\n

    Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

    \n\n\n\n
    \"HeroPress
    \n\n\n\n

    This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

    \n\n\n\n

    Meet more WordPress community members in our People of WordPress series.

    \n\n\n\n

    #ContributorStory #HeroPress

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:246:\"In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight. \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/04/WP-Briefing-006.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9292:\"\n

    In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

    \n\n\n\n

    Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

    \n\n\n\n

    Credits

    \n\n\n\n\n\n\n\n

    References

    \n\n\n\n\n\n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

    \n\n\n\n

    In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

    \n\n\n\n

    Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

    \n\n\n\n

    Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

    \n\n\n\n

    Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

    \n\n\n\n

    Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

    \n\n\n\n

    There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

    \n\n\n\n

    That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

    \n\n\n\n

    WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

    \n\n\n\n

    Later, the community picked me up when I became seriously ill. 

    \n\n\n\n

    So I can say from the bottom of my heart, that working with WordPress has saved my life.

    \n\n\n\n

    And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

    \n\n\n\n

    The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

    \n\n\n\n

    The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

    \n\n\n\n

    Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:57:\"\n \n \n \n \n \n \n \n\n \n \n \n \n \n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:6:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"The Month in WordPress: March 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"https://wordpress.org/news/2021/04/the-month-in-wordpress-march-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 03 Apr 2021 16:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Month in WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10084\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:319:\"This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution. These words from Josepha Haden Chomphosy on […]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:9821:\"\n

    This way of iterating improves WordPress and ties back to one of my favorite open-source principles. The idea that with many eyes, all bugs are shallow. To me, that means that with enough people looking at a problem, someone is bound to be able to see the solution.

    \n\n\n\n

    These words from Josepha Haden Chomphosy on the How WordPress Improves episode of the WP Briefing Podcast point to the factors that differentiate building software in an open-source environment. Our updates this month are closely tied to the philosophy behind those core principles of open source software. 

    \n\n\n\n
    \n\n\n\n

    WordPress 5.7 released

    \n\n\n\n

    WordPress version 5.7 “Esperanza,” came out on March 9. The release offers fresher admin colors, several improvements to the block editor, single-click HTTP to HTTPS migration, and a new Robots API. Read more about it in the release post, the field guide, and the talking points post for meetup groups. The Core Team has also started work on WordPress 5.8 pre-planning.

    \n\n\n\n

    Want to contribute to WordPress 5.8? Join the WordPress #core channel in the Make WordPress Slack and follow the Core Team blog. The Core Team hosts weekly chats on Wednesdays at 5 AM and 8 PM UTC. 

    \n\n\n\n

    Gutenberg Version 10.1 and 10.2 are out

    \n\n\n\n

    Contributor teams released Gutenberg Version 10.1 on March 3 and Version 10.2 on March 17.

    \n\n\n\n

    Version 10.1 showcases significant improvements to reusable blocks, a clearer image toolbar, and spatial options for the social media block. Version 10.2 offers block pattern options to display contents from the query block and removes writing prompts from empty paragraphs in the editor. It also adds width adjustment for spacer blocks in horizontal parent blocks and the ability to transform media and text blocks into columns.

    \n\n\n\n

    Want to get involved in building Gutenberg? Follow the Core Team blog, contribute to Gutenberg on GitHub, and join the #core-editor channel in the Make WordPress Slack. The “What’s next in Gutenberg” post offers more details on the latest updates. Don’t miss the monthly Gutenberg tutorial on How to make block patterns!

    \n\n\n\n

    Full Site Editing updates

    \n\n\n\n

    March saw a plethora of updates to the Full Site Editing project!

    \n\n\n\n\n\n\n\n

    Proposal launched for a WordPress contributor handbook

    \n\n\n\n

    A proposal has been kicked off on building a project-wide WordPress contributor handbook. The handbook will have content around the WordPress project’s underlying philosophies and commitments, along with shared expectations on working together and building products. It will also contain modern open source best practices for WordPress. 

    \n\n\n\n
    \n\n\n\n

    Further Reading

    \n\n\n\n\n\n\n\n

    Have a story that we should include in the next “Month in WordPress” post? Please submit it using this form.

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10084\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:68:\"\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"So you want to make block patterns?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"https://wordpress.org/news/2021/03/so-you-want-to-make-block-patterns/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 30 Mar 2021 17:01:10 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:4:{i:0;a:5:{s:4:\"data\";s:11:\"Development\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Features\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:9:\"tutorials\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"https://wordpress.org/news/?p=9995\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:33:\"Learn how to make block patterns!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:2:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:59:\"https://wordpress.org/news/files/2021/03/reusable-block.mp4\";s:6:\"length\";s:6:\"273436\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:58:\"https://wordpress.org/news/files/2021/03/waves-pattern.mp4\";s:6:\"length\";s:6:\"493389\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Beatriz Fialho\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:22433:\"\n
    \"\"
    \n\n\n\n

    If you’ve ever built something for the WordPress block editor — a theme or a plugin — you may have also heard about block patterns.

    \n\n\n\n

    Looking at the patterns that come bundled with WordPress, I thought it would be nice to dedicate to them a short post. They’re pretty nice, useful shortcuts when you know them, but there’s a good chance you may not know what they are or why you might want to use them.

    \n\n\n\n

    What’s a block pattern?

    \n\n\n\n

    Patterns are collections of pre-arranged blocks that can be combined and arranged in many ways making it easier to create beautiful content. They act as a head-start, leaving you to plug and play with your content as you see fit and be as simple as single blocks or as complex as a full-page layout.

    \n\n\n\n
    \"\"
    \n\n\n\n

    They live in a tab in the block library. You can click or drag and you’re able to preview them with your site’s styles.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Basically, a block pattern is just a bunch of blocks put together in advance:

    \n\n\n\n
    	<!-- wp:group -->\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator -->\n<!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} -->\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div>\n<!-- /wp:image -->\n<!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} -->\n<blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote>\n<!-- /wp:quote -->\n<!-- wp:separator {\"className\":\"is-style-default\"} -->\n<hr class=\"wp-block-separator is-style-default\"/>\n<!-- /wp:separator --></div></div>\n<!-- /wp:group -->
    \n\n\n\n

    That’s also how you create them: just use the block editor to configure a smattering of blocks to your liking, and the hard part’s over.

    \n\n\n\n

    How do I get them in the block library?

    \n\n\n\n

    There’s more documentation in the handbook, but what it boils down to is this:

    \n\n\n\n
    <?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
    \n\n\n\n

    \"👆\" That’s a snippet of PHP, which means you can drop it in a WordPress plugin, or perhaps more simply, paste it into the functions.php file from your theme. Done:

    \n\n\n\n
    \"\"
    \n\n\n\n

    For patterns that include images, it’s worth thinking about where those are stored. The TT1 Blocks theme (which is a fancy name for “TwentyTwentyOne Blocks”) stores images in the theme library.

    \n\n\n\n

    Now what?

    \n\n\n\n

    The thing about a block pattern is, as soon as you insert it from the block library, it stops being a cohesive unit — now it’s just a smattering of blocks, detached from the pattern you created and meant to be customized to your liking. It’s a shortcut, not a template. That also means you don’t have to worry about switching themes or deactivating pattern plugins: the blocks you already inserted won’t go anywhere.

    \n\n\n\n

    That being said, if you like this one pattern so much you want to use it again and again, with no customization at all, you can make it into a reusable block:

    \n\n\n\n
    \n\n\n\n

    Reusable blocks are created, as the name implies, to be reused. The feature is a great way to store small bits of commonly used snippets that you can edit in one place to update in all. “Follow me on Twitter,” “Article series, or “Subscribe to my podcast” are great examples of that.

    \n\n\n\n

    What makes a good block pattern?

    \n\n\n\n

    Patterns, as they ship today, are limited by the features available. If the block editor doesn’t allow you to customize letter-spacing, your block pattern can’t either. While the Global Styles project will expand what’s to blocks, in the meantime, we have to work with the available tools.

    \n\n\n\n

    Even then, with the most basic ingredients — color, photography, typography — it is possible to do a lot:

    \n\n\n\n
    \"\"
    Three columns with images and text
    \n\n\n\n
    \"\"
    Media and text with image on the right
    \n\n\n\n

    I designed these patterns to potentially land in WordPress core, which all have a few properties in common:

    \n\n\n\n

    They share a theme.

    \n\n\n\n

    You can think of a pattern as a section of a website: it is meant to be part of a whole, and so it works best when it can exist in the context of other patterns that share the same theme. There are a few sharing a Nature theme in the patterns above, a few sharing an Art theme, and others sharing an Architecture theme. When seen together, it becomes easier to see how you might be able to piece together multiple pages of your site, one page at a time.

    \n\n\n\n\n\n\n\n

    They share a minimalist color palette.

    \n\n\n\n

    By being parts of a whole, patterns will inevitably land in a context that uses different colors. With a reduced color palette, there’s both a better chance of fitting in and less to customize to make it just right.

    \n\n\n\n\n\n\n\n

    The best patterns do things you might have not done otherwise.

    \n\n\n\n

    Whether that’s images offset to create a unique silhouette, or just using less visible features (like fixed positioning in the Cover block), it’s a way to surface creativity.

    \n\n\n\n

    Tip: You can use any block in your patterns, including blocks that came from a plugin. And if that block is in the block directory, it will prompt you to install it with one click if it’s missing from your self-hosted WordPress:

    \n\n\n\n
    \n\n\n\n

    Here’s a plugin for you

    \n\n\n\n
    <?php \n/*\nPlugin Name: Quote Pattern Example Plugin\n*/\n\nregister_block_pattern(\n	\'my-plugin/my-quote-pattern\',\n	array(\n		\'title\'       => __( \'Quote with Avatar\', \'my-plugin\' ),\n		\'categories\'  => array( \'text\' ),\n		\'description\' => _x( \'A big quote with an avatar\".\', \'Block pattern description\', \'my-plugin\' ),\n		\'content\'     => \'<!-- wp:group --><div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\"><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --><!-- wp:image {\"align\":\"center\",\"id\":553,\"width\":150,\"height\":150,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-style-rounded\"} --><div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter size-large is-resized\"><img src=\"https://blockpatterndesigns.mystagingwebsite.com/wp-content/uploads/2021/02/StockSnap_HQR8BJFZID-1.jpg\" alt=\"\" class=\"wp-image-553\" width=\"150\" height=\"150\"/></figure></div><!-- /wp:image --><!-- wp:quote {\"align\":\"center\",\"className\":\"is-style-large\"} --><blockquote class=\"wp-block-quote has-text-align-center is-style-large\"><p>\"Contributing makes me feel like I\\\'m being useful to the planet.\"</p><cite>— Anna Wong, <em>Volunteer</em></cite></blockquote><!-- /wp:quote --><!-- wp:separator {\"className\":\"is-style-default\"} --><hr class=\"wp-block-separator is-style-default\"/><!-- /wp:separator --></div></div><!-- /wp:group -->\',\n	)\n);\n\n?>
    \n\n\n\n

    In case you want to make patterns, this example plugin features two of the patterns you saw above. Drop it in your plugins folder and they should show up in your block library.

    \n\n\n\n
    \"\"
    Installed pattern under “Text” Category
    \n\n\n\n

    Feel free to tweak it, customize it, and make it yours. It’s GPL, after all!

    \n\n\n\n
    \n\n\n\n

    Thank you @joen for the help writing this post.

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"9995\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:4:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"WP Briefing: Talking Full Site Editing with Matías Ventura\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"https://wordpress.org/news/2021/03/talking-full-site-editing-with-matias-ventura/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 29 Mar 2021 15:05:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:9:\"Gutenberg\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:11:\"wp-briefing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10013\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:296:\"In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.\" Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://wordpress.org/news/files/2021/03/WP-Briefing-005.mp3\";s:6:\"length\";s:1:\"0\";s:4:\"type\";s:0:\"\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:31294:\"\n

    In this episode, Josepha is joined by Matías Ventura, also known as “the spark behind the vision of Gutenberg.” Josepha and Matías discuss full site editing and answer your questions, from “is full site editing a standalone plugin?” to “will full site editing break my current site?”

    \n\n\n\n

    Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

    \n\n\n\n

    Credits

    \n\n\n\n\n\n\n\n

    References

    \n\n\n\n\n\n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

    \n\n\n\n

    Josepha [0:41]: This month, we have a bonus briefing, so I’ve asked my dear friend and colleague Matías Ventura to join me. Matías was recently called “the spark behind the vision of Gutenberg.” With full site editing coming our way in 202, I asked if he would join me for a quick Q&A. Welcome, Matías. 

    \n\n\n\n

    Matías [0:56]: Hello, hello! Thanks for inviting me. It’s a pleasure to be here.

    \n\n\n\n

    Josepha [1:00]: Well, I’m delighted to have you. And I think that we have a lot of excellent questions. All right, so Matías, we actually ended up with questions in about three different groupings. And so I’m going to start with the “what is it about full site editing,” sorts of questions that people had. We’re gonna work our way into “what are we doing with it?” and then “how are we planning on getting this out the door?” Then, a couple of big picture questions that people asked. We’re just gonna leap right in this full site editing part of the Gutenberg plugin, or is it a standalone plugin?

    \n\n\n\n

    Matías [1:39]: Okay, we’ll start with the basics. Full site editing is part of the Gutenberg plugin right now. I think it’s important to mention that full site editing is like an umbrella for several projects that we’re working on. They are all aiming to bring blocks into more parts of your site so that editing becomes easier and more expressive, and so on. So full site editing right now encompasses adding a ton of new blocks. I think we have around 20 new blocks coming in, including navigation query, site, title, logo, etc. There’s also the interface to interact with templates outside of the content; that’s another big part of the full site editing project. We also have a lot of new design tools included, many of these have been released in previous major releases, but they still comprise a strong part of what full site editing is. We also have something called Global Styles, which aims to allow people to configure the visual aspects of blogs across the entire site, not just on any individual blog. And of course, then there’s a whole layer of how we utilize these tools. It can get complex because there are many layers and projects that need to come together. So yeah, all of these are accessible through the Gutenberg plugin right now.

    \n\n\n\n

    Josepha [3:07]: Yeah. So it’s not a standalone plugin. If you wanted to check out full site editing the site editor experience as it is now, you would just have to make sure you had the Gutenberg plugin on your site. Right?

    \n\n\n\n

    Matías: Yes, correct.

    \n\n\n\n

    Josepha:  So a couple of the questions related to this are how exactly do I enable it on my site? And what is the easiest and safest way to try this on my site? And I think the answer is, is right in there. It’s in the Gutenberg plugin. And so if you have that plugin, you don’t need the testing plugin or anything else to make that work, right?

    \n\n\n\n

    Matías [3:51]:  No, you like, you might need to install a theme like Twenty Twenty One blocks that unlock some of these new interfaces that we just talked about. Like other of these pieces are available for anything. But some of these, like the interface to edit templates, right now only talk with things that know how to express their desire. 

    \n\n\n\n

    Josepha [4:14]: And I think we have less than 10 themes right now that do that, but I’ll leave some links to at least 2021 blocks in the show notes. And then, if there are another one or two themes that I can find, I can add those in there as well. 

    \n\n\n\n

    So you have to have the Gutenberg plugin; you have to have a theme that works with that site editor kind of experience. And then you’re safe to try everything out. It shows up in your left toolbar just like any other thing, like if you were working with plugins, or if you were adding a post or anything else, right?

    \n\n\n\n

    Matías [4:51]: Yes, correct. And so, some of these details are being worked on right now. Like how and where you access things, and so on. These things are subject to change, but right now, you have this site editor beta in the sidebar when both you have the plugin running and a theme that’s capable.

    \n\n\n\n

    Josepha [5:10]: Yeah. Excellent note. If you are running this on a production website, I would recommend you not do that unless you are very, very good with WordPress. It’s a really safe and easy thing to test and try out. But because it is still in beta, I recommend always putting it on a test site. I have a couple of different test sites that I run on myself. Another question that I had was, “will full site editing slow down my site?” And I think we have some refreshed performance tests coming out about that. And maybe they’ll be out by the time we publish this podcast.

    \n\n\n\n

    Matías [5:49]: Yeah, I mean, like the performance has been one of the major focuses for the whole project. In many cases, it should speed up things because we’re like, I think one of the big pieces that these projects bring into the picture, especially for themes, is that it allows only the necessary assets to be loaded on the front end. For example, if for a given page, there are, I don’t know, 10-15 blocks being used, you would only get the CSS and scrapes and so on related to those blocks. This can cut down on a lot a ton of CSS that themes used to end queue on a side, particularly if you were trying to customize many widgets and so on, like a lot of themes have the full styles or multiple widgets, even third party plugins, and so on. So one of the advantages of having this blog system is that we can know at the time of rendering what blogs are being used and only load those assets. 

    \n\n\n\n

    Josepha [6:50]: Excellent. Another big question that we have is, “does full site editing work with the classic editor? And does it work with other builders?” I think that’s a really big answer if you’re going to get super deep into it. But I think that the short answer is yes, it does. Is that fair?

    \n\n\n\n

    Matías [7:08]: Yeah, I don’t think it touches a bit on that full site editing is not like a single thing. There are multiple projects around it. So again, like the template editor that only deals with blogs, it doesn’t have a lot to do with a classic editor. But the classic editor use for both doesn’t change anything at all; like the same way that when the block editor was introduced, it didn’t change how you could still write posts in the classic editor. You will still be able to do that.

    \n\n\n\n

    Josepha [7:41]: And if you are brand new to WordPress person, or, I mean, I guess at this point, you don’t have to be super brand new. If you’re fairly new to WordPress person and have no idea what we’re talking about when we say the classic editor, you don’t really have to worry about it either. You don’t have to go and find out what that is; the block editor that you have right now works perfectly for what you’re trying to do. So if you don’t know what I mean when I say classic editor, don’t worry about chasing it down either. 

    \n\n\n\n

    I think that this last question we accidentally answered earlier, but I’m going to go ahead and ask it anyway since I received it. “I keep hearing that you can use the site editor with the 2021 theme. But I don’t seem to be able to. What am I missing?” I think the answer is that there’s the Twenty Twenty One theme shipped with the WordPress release 5.6. And then there is the Twenty Twenty One blocks theme; those are two different themes. The link to the Twenty Twenty One block theme is going to be in our show notes this time around. And so, if you have been trying to use the full site editor with Twenty Twenty One and not succeeding, try the link to the one below. And I bet that that will work for you.

    \n\n\n\n

    Matías [8:50]: Yes, that’s correct. 

    \n\n\n\n

    Josepha [8:51]: All right, excellent. Well, that brings us kind of into our second set of questions, which is about how we are doing it. The first one that folks have is “will full site editing be on by default in the next release. In this context, the next release is WordPress 5.8. But I think it’s a safe question to ask if full site editing will be on by default in the release that it’s planned for.

    \n\n\n\n

    Matías [9:15]: Yeah, and for this, I need to go back to the same principle of many projects because there are many pieces of full site editing, and we have been merging them in major releases, particularly like the blocks and the design tools. There are more coming in that we want to make accessible as soon as possible. The full experience that requires a theme to opt-in to templates using blogs won’t be by default; it requires a specific theme running. A lot of these details we’re still like determining exactly what projects are ready to be merged and so on. But yeah, if you have a theme right now that works the way you want, it doesn’t change anything there. If anything, it adds some more capabilities and more customization tools, and so on. And the theme can also regulate how much they want to incorporate.

    \n\n\n\n

    Josepha [10:13]: Matías, you’ve mentioned a couple of times in this podcast so far like this is a really complex and really complicated part of this work. And just for anyone out there who’s either encountering Gutenberg or full site editing or this podcast for the first time, I think a tiny bit of context that’s worth having here is that Matías and I have been working on this together in various capacities for like, five years. And Matías has probably been working on this for practically a decade. So, when we say that this is a really complicated problem, and when we say that this is a complex set of issues that we’re working with like, it is all that we have been thinking about for I want to say at least the last three or four years, but certainly it’s all that we have been trying to untangle for quite a bit of time before that as well. So we don’t take it lightly when we’re like, “this is complicated;” we mean it. It’s really complicated. And we’re trying our hardest over here as WordPress. 

    \n\n\n\n

    The next big question, since we’re all stuck in the “it’s very complicated,” part of things is the question, “will this update break my current site?” Like, if I have a site that is updated and ready, and it’s exactly as I wanted it to be, and it took me two years to get there will full site editing, whichever release it’s in. Currently, 5.8 is what we’re planning for. Will that break anything on my site as I know it right now?

    \n\n\n\n

    Matías [11:44]: No, not at all. One of the major things that the WordPress team, the WordPress community, always cares so much about, never to break things. Many of these things are stepping stones that you can adopt, as we’ve talked about full site editing. But for example, we also have a few concurrent projects around the widget screen and the navigation screen that are meant to bring blocks into existing interfaces. So again, the theme doesn’t need to change, and a lot of care is being put into making this more like you’re unlocking new features, and nothing really breaks or falls apart.

    \n\n\n\n

    Josepha [12:23]: This update, like all the other updates, should have minimal, minimal impact on what you have to actively fix on your site. Every once in a while, a bug is gonna get by. We can’t say that we’re 100% perfect with not breaking things. But also, we always and I and I know that we’re planning on this for our remaining releases for the rest of the year. At the very least, I can’t imagine we’d ever change it. But after every major release, we always make a plan to have a minor release within the next one or two weeks. Because we know that a broken thing on a site is really incredibly impactful, even if you’re only 1% of the sites that had that happen to it. And so I think that’s true in this case, too. And getting that feedback back from all of the people who are actually using WordPress is the thing that makes us be able to kind of move quickly when we do see those problems. 

    \n\n\n\n

    One of the questions that we have been getting is, “can I see a live preview without saving the changes that I made?” When I got this question, I didn’t actually understand it. And so I went and looked at a site without the Gutenberg plugin on it, and then a site with the Gutenberg plugin on it. And of course, on sites without Gutenberg, without the block editor, without full site editing, when you are looking to preview, you have the option to open up your preview in a new window. And you don’t have that with Gutenberg because it’s supposed to be a true WYSIWYG editor. A true what you see is what you get, editor. I think that the answer to this is, yes, you can see a live preview without actually saving the changes on the front end of your site. But you don’t actually have to reload anything. You don’t have to open it up in a new window. You don’t have to, like, actively click “please show me a preview” because what you see in your editing screen should be what you see at the end of your app as an end-user.

    \n\n\n\n

    Matías [14:28]: Yeah, that’s the sort of the main gist to it. Yes, the site editor is built so that it always reflects the front end as truly as possible, so that’s one layer. Also, the preview tools should allow you to see in different devices like mobile breakpoints, and I don’t know if they will have breakpoints and stuff like that. There are a lot of things in the current interface that is just not enabled. There are some challenges in the sidebar. Because the site editor is not just focused on a single post, it’s focused on the entire site. So, there can be many, many changes that need to be shadowed for the site. 

    \n\n\n\n

    If you’re changing the site title, some of the global styles, aspects, and so on need to be orchestrated. So, to see in the previewing new window, there are some challenges there to integrate. Again, the interface is not final yet; a lot of these things are still being tweaked and improved. There are many things from the regular post editor that are not enabled yet. But they will be enabled. So yeah, it’s a, I guess, it’s not a simple thing to answer. Because, again, the idea of previewing the site that’s core to the whole project is that you’re always interacting in the same way that when you’re in the customizer, you’re seeing the preview all the time. That’s the main scope of this project,

    \n\n\n\n

    Josepha [15:54]: Excellent. Changes like that changes to your workflow can be really hard to get your mind around, especially if part of that existing workflow was there to create some confidence in what you’re seeing with your users. And so I understand. Now that I’ve researched that question a bit, I see where that’s coming from. Based on existing workflows and existing patterns that we have for ourselves in WordPress, will we need to have a theme to use the full site editor?

    \n\n\n\n

    Matías [16:33]: I think we’ve already covered some of these. And again, they are tools that can work on any existing theme. There is other stuff that needs space-specific themes to opt-in into these tools, like blog templates and so on.

    \n\n\n\n

    Josepha [16:50]: Yes, I think the question that we have next, because I see that the literal next question I have is actually something we have covered; just because we’re being pretty conversational about it, not because anyone already asked the question. So I’m actually going to skip to the last question of this section that I received. I got this next one via Twitter. The question is, “how do you view the role of themes once full site editing is fully rolled out and all the page elements (content, headers, widgets, footers, etc.) and all the views are managed via blocks and block patterns? Will things become typographic and block styles?”

    \n\n\n\n

    Matías [17:28]: I think this is a great question because it goes to the heart of, why are we doing all this. One of the main reasons is to empower users more. WordPress has been democratizing publishing for a while; this is another step into allowing themes to get more customization tools and more control over their site if they want to. I think the recent call for testing has focused on the 404 page, for example. That’s something that forever has been locked away from users. And it’s also something that, as a theme developer, and I used to develop themes a long time ago, that was one of the things where you decide what sort of approach you take for the 404 page. Maybe sometimes you want to have something more whimsical. Sometimes you need something more serious. And committing to one when you can have such a diverse and broad user base can be challenging. With these, it becomes as easy as offering a few different patterns for that template. Then the user will always be able to change the copy and modify something. So again, it opens up a lot of these things that used to be locked down. However, from a theme perspective, I think this doesn’t reduce the theme at all. If anything, it allows the theme to focus less on coding and functions and more on design expression and aesthetics. I don’t think that would ever be exhausted. That will always remain as diverse as humans are interacting with WordPress. And so it’s not that I don’t see it’s just as like, typographic and block styles. How do you express a template, how do you express the structure, what choices you quote, what choices you make as a theme builder? And of course, there are many degrees of control there. Because a site maintainer may not want the 404 template to be editable, that sort of control will always be present.

    \n\n\n\n

    Josepha [19:38]: Yeah. And really fast. I have to add a caveat to a thing that you said in there. For anyone who’s listening keenly, you may have heard Matías say that the users can update any of the content there – any of the copy. In this context, we’re talking about users as in the people who are maintaining the site, not people who are visiting your site. Visitors to your site will not be able to change any copy on your page unless you’ve done something very interesting with your WordPress site, which is also fine if that’s what you prefer to do. By default, your visitors can’t change everything on your website, which is good news, frankly.

    \n\n\n\n

    So I’ve got one logistics question, which I’m happy to take. And then one is kind of a big picture question that I also got from Twitter. “What about the classic editor block; what is going to happen to that? And when will we know?” So ages and ages ago, before COVID? I think so. Probably maybe a couple of years ago, Matt said that the classic editor plugin would be supported through the end of 2021. And that is still the case; there will be active support on that through the end of 2021. After that, it will not be actively supported anymore. It won’t be removed from any place that you can get access to right now. In a “this is the end of its lifecycle” sort of way, we just won’t have anyone who is currently committed to maintaining that plugin anymore. So that’s what’s happening at the end of the year. And yeah, at the end of 2021. The big question that we have is, “why is full site editing being so rushed?” I think this is a bit of a loaded question.

    \n\n\n\n

    Matías [21:32]: Yeah, I think I think it’s still a fair question, though. I think we’re dealing with two things here. And one is ensuring that we release things in the best state possible. And also, some of the urgency is to offer tools that we know that people lack right now and that could really benefit from. Making that determination is very tricky. The full site editing project has been in the works for the last couple of years. If we count the initial phase of Gutenberg, that’s four to five years. We’ve been doing many calls for testing, which I think have been super useful to catch issues and reflect as a community on where things are going; how do we integrate with these? How do we use it? What are the shortcomings? What do we need to do? Based on all of these, we’ll continue to make decisions on when things become ready. We’re not committed to releasing something that’s not in a good state. And I think we will always be very careful about that. There are these two competing senses of the urgency – of getting some of these tools out, and because it also benefits from the feedback loops. I always say that, in many ways, the initial phase of Gutenberg, to me, is not finished. We took the initial two years to do the 5.0 release, the initial block editor, and so on. But, it’s still being improved at a very fast pace, among all the recent major releases improvements to the editor were included; that will continue to be the case. In many ways, phase one is not finished. And the moment we choose to release some of these tools or editing tools, it won’t be finished either. They will need to continue to grow, mature, and incorporate a lot of the feedback. Even the things that the ecosystem is building around. I’ve seen a few themes already that are incorporating a blank canvas template so that you can use them in some pages and take over and do everything with blocks. So even the community and ecosystem as a whole is also sort of paving the way for what needs to come.

    \n\n\n\n

    Josepha [24:06]: I think from my perspective, and of course, I’m on the people side of things, the communication side of things, the logistics side of things; I have a frequently a very different view from what a lot of other folks are seeing. And so from my side of things, I have to say, I’m communicating about this change in a really broad way, which has not been happening since 2019 when we started the work. We’ve been communicating broadly with the WordPress community, but not with everybody who uses WordPress. So, I think that for a lot of people, this looks like a project that we started really actively working on in the last six months or so. And now we’re just racing toward a finish line. I think that there’s, there’s not been a lot of awareness of everything that’s gone into it. And so, on the one hand, it feels a little less rushed to me knowing the full length of the history on this. But also, as you said, I really think that this gets a bunch of tools to people who otherwise have not been able to accomplish these things in WordPress or otherwise. I am so anxious to get something to people who really can benefit from this change the most. And it’s the nature of the open source, right that like, one, as long as you have users, you’re going to have stuff you have to fix in your software. So we’re never really, really going to be done with this; there’s not going to be like a done point of WordPress. And the second thing is, I think it’s generally true that you don’t really start getting full user feedback until after you have launched your major release. I think that we see that a lot in open source software; you can bring in as many people as you think you can in your user tests heading up to it. And in your accessibility tests. And, in general, quality assurance tests. You can bring in a lot of people and still not have gotten the full understanding of the various niche use cases that your users will bring to you. Because at this point, we’re like 40% of the web. And that means that we’re serving this majority collection of increasingly minority voices and niche voices in the space. And so, a little bit I feel a sense of urgency; I feel a bit of anxiousness about trying to get this out there for one, to get the tools in the hands of the people who can benefit the most from them, but also so that we can start really getting the full stress test of this software out and get that feedback in so that we can really build something responsive to what our users need our long tail, “anyone who ever uses WordPress ever,” definition of users. And so, that’s why I feel a sense of urgency around it. Even though you know, as I said, you and I have been working on this for like five years, and you’ve been working on it for a decade or something. I actually don’t know how long it’s been worked on.

    \n\n\n\n

    Matías [27:35]: Now that makes me feel a bit old.

    \n\n\n\n

    Josepha [27:40]: Nobody makes Matías feel old. He is a lovely, wonderful colleague. Sorry, Matías, If I made you feel old.

    \n\n\n\n

    Matías [27:46]: No, that’s totally fine. I also want to add that full site editing is not like a single toggle that’s going to drop into a major release. So I think that’s important to consider, I think this entire year is going to see a lot of these tools being, and sometimes the sort of the end-user is not the, again, the site maintainer. Still, you can also be the theme developer; I think there are many tools that would be empowering for theme developers to use. Again, we mentioned there are like five to ten themes, block themes right now. That needs to grow a lot, and that only grows through these sorts of feedback loops. And the theme community pushing things forward and seeing where things can lead to. I’m very excited about the pattern directory integration because I think that can also combine with blog themes in very powerful ways. Imagine if, I don’t know many of these patterns that are very common on the web and very needed, that if we can refine them together with a second community and make them available across themes, you can combine a header from one theme with a content of another; all these sorts of mixtures could happen. All of this needs exploration, the creativity of the entire community, and so on. In that sense, getting all these tools, even if it doesn’t immediately change anything for like the site itself, starts to unlock a lot of things. 

    \n\n\n\n

    Josepha [29:27]: I’m going to take a bit of your answer from there and tie it all the way back to your first answer that we had when you joined me today. And say, I think you’re absolutely right. We have a set of users in our theme authors and our plugin developers as well that we desperately need to get looking at this set of tools. I hope that what we are shipping in the first iteration of this serves as an opportunity for all of those theme authors and agency owners, plugin authors, WordPress site configurers freelancers. Like, I really hope that this puts it into a really accessible, easy-to-access space for them so that they can do those experiments based on what they know their users need the most. They are the group that has the closest access to site maintainers. And what they need compared to, for instance, me or a potential you like we have a lot of information, you and I, we do a lot of tests, we have a strong sense of what is needed at the moment, but we don’t have as a close connection that our theme and agency and plugin folks all have. And so that’s another part of why I’m so excited to get this out in the current iteration of it.

    \n\n\n\n

    Josepha [31:04]: That was a lot of questions in a little bit of time. This is going to be officially my longest WordPress briefing. Matías, I am so glad that you were able to join me today. And I think that everyone’s going to be really, really excited to hear your answers to these questions.

    \n\n\n\n

    Matías [31:23]: Thank you for having me.

    \n\n\n\n

    Josepha [31:25]: All right, my friends. That brings us into our small list of big things. I’m going to skip our community highlight today just because we had a slightly longer word press briefing in our bonus iteration today. But the small list of big things. The first thing is WordCamp Central America is coming up on April 15; there is a registration link in the show notes that you can access your tickets with. I recommend that you go; we’ve got a lot of excellent speakers coming up there and a lot of good content and good training and learning for y’all. The second thing is that Matt Mullenweg and I have listening hours coming up with the community in the first week of April. I’ll add the link to register for those in the show notes as well; it’s just a few minutes for you all to stop by, check-in, see what’s going on, and share some celebrations or concerns with us. And I hope that I see you there. 

    \n\n\n\n

    So that my friends is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

    \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:7:\"post-id\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"10013\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:32:\"https://wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n hourly \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n 1 \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:30:\"com-wordpress:feed-additions:1\";a:1:{s:4:\"site\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"14607090\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:9:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Fri, 30 Apr 2021 22:29:10 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:25:\"strict-transport-security\";s:11:\"max-age=360\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Wed, 28 Apr 2021 17:52:55 GMT\";s:4:\"link\";s:63:\"; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 1\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'), -(5504, '_transient_timeout_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619864950', 'no'), -(5505, '_transient_feed_mod_9bbd59226dc36b9b26cd43f15694c5c3', '1619821750', 'no'), -(5506, '_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9', '1619864950', 'no'); +(5535, '_transient_timeout_acf_plugin_updates', '1620257051', 'no'), +(5536, '_transient_acf_plugin_updates', 'a:4:{s:7:\"plugins\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";a:8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:10:\"expiration\";i:172800;s:6:\"status\";i:1;s:7:\"checked\";a:1:{s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";}}', 'no'), +(5548, '_transient_timeout_wpseo_unindexed_post_link_count', '1620170656', 'no'), +(5549, '_transient_wpseo_unindexed_post_link_count', '22', 'no'), +(5550, '_transient_timeout_wpseo_unindexed_term_link_count', '1620170656', 'no'), +(5551, '_transient_wpseo_unindexed_term_link_count', '14', 'no'), +(5552, '_transient_timeout_wpseo_total_unindexed_posts', '1620170711', 'no'), +(5553, '_transient_wpseo_total_unindexed_posts', '117', 'no'), +(5554, '_transient_timeout_wpseo_total_unindexed_terms', '1620170711', 'no'), +(5555, '_transient_wpseo_total_unindexed_terms', '14', 'no'), +(5556, '_transient_timeout_wpseo_total_unindexed_post_type_archives', '1620170711', 'no'), +(5557, '_transient_wpseo_total_unindexed_post_type_archives', '1', 'no'); INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5507, '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:61:\"\n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"WordPress Planet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"WordPress Planet - http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:50:{i:0;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Alpha Particle and Flowspoke Acquire Kanban for WordPress for $15K\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115839\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/alpha-particle-and-flowspoke-acquire-kanban-for-wordpress-for-15k?utm_source=rss&utm_medium=rss&utm_campaign=alpha-particle-and-flowspoke-acquire-kanban-for-wordpress-for-15k\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5586:\"

    Digital consultancies Alpha Particle and Flowspoke have acquired the Kanban for WordPress plugin, a tool that puts Kanban boards into the admin to measure progress on a goal. The plugin is used for agile project management, sales tracking, editorial scheduling, and other planning purposes.

    \n\n\n\n
    \n\n\n\n

    WordPress developer Corey Maass created Kanban for WordPress in 2015 but struggled to market it enough to grow beyond 2,000 users. In 2020, he saw Alpha Particle CTO Keanan Koppenhaver post on Twitter that he was looking to acquire a plugin business and jumped at the chance to sell Kanban for WordPress. Koppenhaver wanted a plugin that already had $1k-$12K annual revenue and wasn’t tied in with Beaver Builder, Elementor, Divi, or any other page builders. Integration with WooCommerce or other third-party software was a plus.

    \n\n\n\n
    \n

    – A business selling a WordPress plugin or a collection of plugins

    – Between $1k and $12k annual revenue, ideally recurring

    – Ideally runs as its own entity, or has its own account with any payment processors

    (2/4)

    — Keanan Koppenhaver (@KKoppenhaver) October 19, 2020
    \n
    \n\n\n\n

    “I’d burned out on the project so I’d thought about selling for a while but didn’t do anything about it,” Maass said. “When Keanan posted he was looking, I inquired because I’d met him and knew he was solid. After a chat I knew he was the right buyer because his approach to WordPress was similar to mine – not too detached, not too dogmatic.”

    \n\n\n\n

    Maass had monetized Kanban for WordPress for the past five years through a $149/year pro version (the most popular price point) and a $499.00 lifetime support license. He said revenue had peaked around $20K/ARR but had dropped to about $10K/ARR due to his minimal involvement. During his peak revenue months there were some weeks he would work 40 hours and some that he would work no hours at all.

    \n\n\n\n

    “I applied the ’12-18 months of revenue as a selling price’ rule, and sold it for $15k,” Maass said.

    \n\n\n\n

    He also commented on the difficulty of finding a non-technical partner in the WordPress world. Maass searched for someone to market the plugin while he concentrated on the product but never found a match:

    \n\n\n\n

    I interviewed non-WordPress people. No luck. I’ve found a few people in the WordPress eco-system, but most already have one more products they’re growing. It’s one of the quirks of the WordPress world – there are more devs than non-devs. Most everywhere else in the tech-business world, it’s the other way around. And of course most of the success stories of WordPress are tech founders that pivoted to marketing/biz dev, which a lot of devs can’t do, myself included.

    \n\n\n\n

    The teams at Alpha Particle and Flowspoke saw potential to grow the Kanban for WordPress plugin business with their combined design, marketing, and development skills.

    \n\n\n\n

    “As WordPress continues to become an even more full-featured platform, we think there’s a demand for great applications to be built inside WordPress,” Alpha Particle CTO Keanan Koppenhaver said. “And Kanban is a perfect example of that. It’s already proven useful for a lot of people and we want to take even more of the features from other project management tools and integrate them tightly with tools WordPress folks are already using, like the Block Editor and WooCommerce, to help add to that unified WordPress experience.”

    \n\n\n\n

    Although Alpha Particle and Flowspoke already have in-house products they are working on, they wanted to acquire a business where they could immediately start experimenting.

    \n\n\n\n

    “With a plugin that already has some traction, it just makes it a lot easier to try new things and get quicker feedback on new features and new ideas,” Koppenhaver said. “Since there’s already an engaged user base, we saw the opportunity to take the things we tell our clients to do with their projects and apply them to a product of our own. I think that long-term this wouldn’t be the only one we acquire, but we’ll be on the look out for the next right opportunity. We’re excited about the long-term roadmap we’ve laid out for Kanban, too, and ready to put in the time to focus and make that vision a reality.”

    \n\n\n\n

    Alpha Particle and Flowspoke plan to release the long-awaited version 3 of Kanban for WordPress in the near future. It has been completely redesigned and rewritten from the ground up. They will also be building in tighter integration with WordPress where users will be able to link posts to cards and automatically have cards moved to the “Published” column after publishing. Kanban for WordPress already has integrations for Gravity Forms and Ninja Forms but the team has more third-party integrations on the roadmap and is also taking suggestions.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 30 Apr 2021 17:14:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"BuddyPress: BuddyPress 8.0.0-beta1\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318272\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://buddypress.org/2021/04/buddypress-8-0-0-beta1/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4338:\"

    BuddyPress 8.0.0-beta1 is now available for testing! \"🥁\"

    \n\n\n\n

    Please note the plugin is still in development, so we recommend running this beta release on a testing site.

    \n\n\n\n

    You can test BuddyPress 8.0.0-beta1 in 4 ways :

    \n\n\n\n\n\n\n\n

    The current target for final release is June 2, 2021. That’s just five weeks away, so your help is vital to making sure that the final release is as good as it can be.

    \n\n\n\n

    Please note BuddyPress 8.0.0 will require at least WordPress 4.9.

    \n\n\n\n

    We repeat it each time we announce a beta release : testing for bugs is VERRRY important. Please make sure to test this pre-release using a testing configuration which is very close to the one you are using in production. If you find something unusual (aside from the great new features below), please report it on BuddyPress Trac or post a reply to this support topic.

    \n\n\n\n

    Here are the three hottest 8.0.0 features to pay close attention to while testing (Check out this report on Trac for the full list).

    \n\n\n\n
    \n\n\n\n

    \"👫\" BP Members Invitations

    \n\n\n\n

    Whether you allow open registration or not you can use this opt-in feature to let your community grow itself. Once enabled from the BuddyPress Options Administration screen, your members will be able to invite their network of friends, co-workers, students, developers, well possibly anyone, to join your site \"📈\".

    \n\n\n\n
    \n\n\n\n

    \"✍\" Selectable xProfile sign-up fields

    \n\n\n\n

    Until now, only the Primary group of xProfile fields was displayed on the registration form of your community. 8.0.0 gives you the freedom to choose any field from any field group to add to your site’s registration form \"💫\".

    \n\n\n\n
    \n\n\n\n

    Include WordPress user fields in your BuddyPress member profiles

    \n\n\n\n

    8.0.0 introduces 2 new xProfile Field types. The WP Textbox can be used to include the user’s first name, last name, Website link or any potential WP contact methods. With the WP Biography field you can display the Biographical Info in the group of xProfile fields of your choice \"🙌\" .

    \n\n\n\n
    \n\n\n\n

    And so much more such as the new Welcome BP Email, the terms of use acceptance profile field, improvements to the BP Nouveau template pack & to the BP REST API…

    \n\n\n\n

    We’ll tell you more about all these soon into our developer notes.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 23:30:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"WPTavern: Gutenberg 10.5 Embeds PDFs, Adds Verse Block Color Options, and Introduces New Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115767\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:235:\"https://wptavern.com/gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6495:\"

    I reach over to grab my phone to check the time. I am debating whether I should stay awake and watch one more episode of The Walking Dead — it would be my fourth, maybe fifth, binge of the series.

    \n\n\n\n

    11:12 pm.

    \n\n\n\n

    I noticed that Slack was blowing up my phone. I had it on silent, so I had to catch up. One message stood out above all the rest:

    \n\n\n\n

    No matching template found.

    \n\n\n\n

    That was the front page of the Tavern last night as it updated to Gutenberg 10.5. I knew it was related to the Full Site Editing (FSE) changes in the latest release. I had seen that error enough in local testing and needed no more information to know what to do — deactivate the plugin. Then, I could get back to my internal debate of staying up for an hour past my bedtime for TV.

    \n\n\n\n

    Sometimes, such is life on the bleeding edge, or at least life when running the fortnightly releases of the Gutenberg plugin with automatic updates enabled. It presents a challenge or two or a hundred. I had let my guard down after a smooth 10.4 release, and I knew better. After several prior releases of fixing issues on the backend, the development team gave me a break. It was almost as if they were saving up for something big.

    \n\n\n\n

    Gutenberg now explicitly declares that anyone running the plugin is on a block-based theme, despite whether their theme actually supports block templates. It should generally fall back gracefully if there none. This seems to be centered on a change that allows classic users to create custom block templates. However, with the plugin activating a “theme-supported” feature automatically, it triggers a chain of events that overrides the template system. Any theme with a custom template hierarchy could break. I created a code snippet on Gist if anyone else runs into the issue and needs to deactivate “block templates” support.

    \n\n\n\n

    I like that we run the plugin. Daily usage means that we can effectively write about it — a practice-what-you-preach sort of thing.

    \n\n\n\n

    Sometimes, Gutenberg, you break my heart. You will find few enthusiastic cheerleaders more loyal than me. I believe in the project, but some days, you try your best to make it rough.

    \n\n\n\n

    But, all is well. There are some exciting things about this release.

    \n\n\n\n

    Template-editing mode is now enabled for classic themes. Despite this breaking the Tavern theme, it is a feature that I look forward to as a necessary transitional feature toward FSE. Another quick highlight is the work the team has done in making the Columns block more accessible. Each column now has a numbered label that is read aloud via screen-readers.

    \n\n\n\n

    Embedded PDFs

    \n\n\n\nInline-embedded PDF.\n\n\n\n

    A decade ago, I had one theme user in particular who needed to embed PDFs. As a young developer, it was just the sort of challenge I needed to build for an audience of one out of 100,000+. So, within the day, I wrapped up a solution similar to what the Gutenberg team did in version 10.5. It is nice to see WordPress finally catching up.

    \n\n\n\n

    Only the block system makes such embedding much nicer. Drag a PDF into the content canvas and let it work its magic.

    \n\n\n\n

    There is one caveat: many mobile phones and tablets will not show an embedded PDF. The File block does make a note of this. It also allows users to disable the inline embed and control the height.

    \n\n\n\n

    This feature offers the best of both worlds. Visitors can read the PDF directly on the page, and they can also click the download button to snag a copy of the file.

    \n\n\n\n

    Color Options for the Verse Block

    \n\n\n\nVerse block with custom colors.\n\n\n\n
    Poets can rejoice at last\nThe time of the Verse being a second-class block lies in the past\nUsers can add subtle colors or those that clash\nA tweak here or there can give their words the flash\nthey need\nto breathe\nto exceed, all expectations\nText, background, and links are fair game\nUnreadable if they were all the same\nA splash of color is what it takes to tame\nthe words…
    \n\n\n\n

    I will stop there and let the pros handle actual poetry.

    \n\n\n\n

    Gutenberg 10.2 added the standard block color options to the Verse block. Perhaps all blocks will get the same treatment down the road. I am still waiting on colors for the Quote block too.

    \n\n\n\n

    New Block Patterns

    \n\n\n\n

    The latest plugin update removes all 10 of the default WordPress block patterns and replaces them with 15 fresh designs. The new set is an attempt to better showcase the editor’s capabilities.

    \n\n\n\nTesting new block patterns.\n\n\n\n

    For end-users who might be worried about losing their old patterns, this will not affect your content. Because patterns are merely predefined sets of blocks, it is the blocks rather than the patterns that actually get inserted into the content canvas and saved.

    \n\n\n\n

    The removal of old patterns with replacements of new ones was always a part of the plan. Web design changes over time, and the patterns system allows core developers to keep pace. Perhaps the old patterns will live in the upcoming block directory for those users who still want them.

    \n\n\n\n

    Gutenberg 10.5 also introduces a few opinionated Query block patterns: Post Grid, Large Title, and Offset Posts. The ultimate goal is to provide an array of options for users as a starting point.

    \n\n\n\n“Large title” Query block pattern.\n\n\n\n

    There is still an open call for the designers to pitch in, contributing custom Query patterns to the project. It is an opportunity to give back that requires almost no JavaScript or PHP programming knowledge.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 16:41:02 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"WordCamp Central: Making a great online conference experience at WordCamp Prague\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:39:\"https://central.wordcamp.org/?p=3138356\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:108:\"https://central.wordcamp.org/news/2021/04/29/making-a-great-online-conference-experience-at-wordcamp-prague/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14783:\"

    My name is Jan, I am a Toolset developer at OnTheGoSystems. For the past several years, I have been actively involved in the Czech WordPress community. On Saturday 27th of February 2021, we held an online conference WordCamp Prague 2021.

    \n

    Switching an interactive, in-person event to the online format while keeping most of its magic has been difficult but certainly not impossible.

    \n

    As this year’s lead organizer, I want to share pieces of this sometimes arduous but extremely rewarding journey, together with some crucial ingredients that made it a success beyond our wildest expectations.

    \n

    \n

    Let’s just face the truth: If I knew what I was actually getting into, I wouldn’t have said yes. But I am deeply grateful that I didn’t know. Even after being on the team two years prior to this one, the experience of being a lead organizer is pretty much non-transferable.

    \n

    Even so, I — a backend software developer with questionable social and team management skills — was very reluctant about taking such a huge responsibility.

    \n

    One of the things that convinced me — besides the fact that, apart from the then lead organizer, nobody else from our team was willing to take the role — was that this time, we were going to do an online conference.

    \n

    This unique situation meant two things that removed most of my anxiety. First, nobody knew what to expect from an online WordCamp Prague: It was a completely new thing, an experiment, even. Let’s do our best and see what happens.

    \n

    Second, the budget was no longer nightmare-inducing, compared to previous years (especially the fact that we were never sustainable without sponsors, and every time, we worried if we would manage to secure enough funding).

    \n

    With the pandemic foreseeably about to wreak havoc on our small country, with all the uncertainty, and with me in strict isolation until a vaccine is available, a fully online event was the only realistic way we could actually make it happen.

    \n

    And so we did.

    \n

    Specifically, by “we”, I mean the fourteen of us: My fellow WordCamp organizers, most of whom have been on the team for years (many of them previous lead organizers), some new faces, and a small recording studio owner who demonstrated superhuman patience during the whole process. Even with this amount of people, it took considerable effort, and without the dedication, good teamwork, and communication, this wouldn’t have worked at all.

    \n

    \n

    Part of the WordCamp Prague 2021 organizer team at the closing speech

    \n

    The Recipe

    \n

    My goal since the very beginning was to make it very interactive and to emulate the experience of a physical conference — where, as everyone who ever attended one will testify, the true magic of WordCamps happens — as closely as possible.

    \n

    A great source of inspiration was WordCamp Europe 2020, which had to be hastily switched to an online version just a couple of months before (and I deeply empathize with its organizers, it must have been an extremely hard blow for them, much harder than for us who have “just” booked a hotel in Porto or already bought non-refundable airline tickets). I got some ideas from there that we copied and also some things I knew I wanted to avoid.

    \n

    So, here’s our “online WordCamp recipe”, if you will:

    \n

    A local target audience

    \n

    From the get-go, we decided to explicitly focus on the Czech and Slovak audience, and we didn’t accept any English talks whatsoever (some of the speakers who applied will be talking at our monthly meetups, though).

    \n

    The reasoning behind this was what I call online conference fatigue. Attending an English-speaking WordPress event is very easy these days, with WordCamps or meetups happening every couple of days or weeks. There’s nothing wrong with that, of course.

    \n

    But, considering that many of our fellow citizens aren’t fluent English speakers — the language barrier is still rather high, unfortunately — and that we were told there are no other WordCamps planned in the Czech Republic or Slovakia for the upcoming year, we found ourselves in a unique position to kind of fill this niche (side note: Czechs and Slovaks understand each other very well) and to effectively add some value to the WordPress ecosystem in our region.

    \n

    In the end, I believe this was one of the main reasons for such a high attendance (over 650 registered attendees, 595 of which showed up).

    \n

    A proper online conference platform

    \n

    WCEU — and other WordCamps as well — went with a combination of YouTube Live or Crowdcast for presentation tracks and Zoom for networking or virtual sponsor booths. While that is affordable, relatively easy, and accessible (and once again: I cannot blame WCEU for this choice due to the time pressure), I was not entirely satisfied. The result felt a bit confusing, constantly switching between browser tabs or different applications.

    \n

    We put a lot of effort into finding a good platform, and we eventually settled on Hopin. It wasn’t without its quirks and little obstacles, it definitely wasn’t for free. But it worked great for the attendees. It allowed us to have a main “stage”, networking rooms, sponsor booths, even the schedule all in one place. It was immersive.

    \n

    \n

    Front page of the event on Hopin

    \n

    One track only

    \n

    I have to admit that the two-track experience of WCEU (which also meant two networking rooms on Zoom) was pretty overwhelming. I can be an information sponge and I had a hard time deciding what I want to see or where I want to be the most.

    \n

    Also, we didn’t have enough resources to effectively run multiple tracks for WordCamp Prague. To cover one track for a whole day, you need at least two hosts and then two other teammates who will stay in the networking room (we called ours “foyer”). We were very lucky to find our two hosts and we decided to go for quality instead of quantity.

    \n

    From the feedback we received, this was a good choice. Even with keeping presentations to only one track, many people still struggled with wanting to be both in the main track and in the foyer at the same time.

    \n

    Pre-recorded talks, live Q&A

    \n

    One of those things that I truly liked about WCEU — and that we’ve easily agreed upon — was that our speakers’ talks would be pre-recorded and then they would join together with a host for a live Q&A session.

    \n

    With fourteen speakers, the risk that something somewhere would go wrong was considerable. This way, the worst that could happen would be losing the Q&A.

    \n

    The approach had some unexpected secondary benefits too: Our hosts could see the talk in advance and prepare for the Q&A much better. We knew when it would end, so we could plan our timetable accordingly. The speakers knew they really had to submit their completed talk a couple of days before the event. And so on.

    \n

    Networking with the speaker afterward

    \n

    If I had to pick one key aspect that made the most difference, this would be it. Also inspired by WCEU, after every talk (ca. 20min + 5min for Q&A), the speaker was invited to join the foyer (networking room) where the attendees could catch up with them either by asking further questions in the chat or by connecting with their audio and video and talking to them directly.

    \n

    This ended up being very popular, there were always a couple of dozen people in the foyer. Sometimes, the conversation had to continue in a newly created room after the following speaker had finished their talk and joined in as well.

    \n

    We had two of our team members always present, ready with some of their own questions for the speaker, to help start the conversation if needed.

    \n

    Virtual sponsor booths with schedule

    \n

    The highest two tiers of our sponsor program included a virtual sponsor booth. We suggested the sponsors pick one hour on the schedule and hold their presentation then, instead of having to attend for the whole day.

    \n

    It was also practical for the attendees, I believe, to know what’s the best time to visit and ask questions.

    \n

    When not active, the virtual booth was in a “presentation” mode with a sponsor’s slideshow on repeat.

    \n

    Happiness bar and afterparty

    \n

    No WordCamp is a proper WordCamp without these two things.

    \n

    We implemented the happiness bar as another virtual room (same as the foyer) and two to three volunteers were always present to answer any attendees’ questions about their WordPress sites.

    \n

    As for the afterparty, we created four different “tables” – virtual rooms. One of them also for English speakers, since some of our sponsors’ representatives wanted to attend as well.

    \n

    To my surprise, two of those tables stayed active for a pretty long time, and when we concluded the afterparty around 10 PM, there were still about twenty, thirty people around. Perhaps we’ve become more used to online socializing because of the pandemic endless lockdowns, but some of the feedback we received went along the lines of “it felt almost like a physical WordCamp.”

    \n

    Interviews with speakers

    \n

    In years past, before the conference itself, we usually did write interviews with speakers and then shared the articles on our social media to bring attention to the event. It was usually quite difficult to produce these interview articles: The speakers rarely found enough time for this and we often got late submissions or content that was not wordy enough. Then, the text had to be polished and reviewed before publishing.

    \n

    This year, instead, someone had the brilliant idea to just do live interviews via Zoom. The advantages were numerous: It was fast to make, we immediately had the final product (videorecording) with minimal post-processing, and it was also fast to view and more attractive on social media than a long text.

    \n

    A strong, positive organizer team

    \n

    I can’t stress enough how well my team managed to self-organize and how dedicated the vast majority of us were to deliver a great result. Even under time pressure, we’ve always done our best to keep the spirit up.

    \n

    After all, we should all remember, it’s a WordCamp, a volunteer-organized event that should be interesting and fun, not a question of life and death. Everything doesn’t always have to be perfect. It’s important to keep that in mind.

    \n

    \n

    WordCamp Prague 2021 organizers

    \n

    Looking back

    \n

    In retrospect, the whole experience was intense, difficult at times, but ultimately rewarding beyond expectation.

    \n

    I find myself struggling to compare it with previous years. The physical event is really something else, and my perspective was dramatically shifted in my new role.

    \n

    But I will say this: We keep building on the work of previous years. Be it our visual presence, the experience of individual team members with their agenda, or the way we organize and carefully handpick and balance the content of the whole event. It seems that we manage to move the event forward every year, and that’s ultimately what matters.

    \n

    The most challenging part was time management — no surprise there. Because of the pandemic, everyone was kind of busy with their lives and we started seriously organizing only towards the end of September. In combination with the already somewhat problematic timing, we set ourselves up for quite a wild ride.

    \n

    If you want to do the event before the main conference season, that also means that you have less than two months from confirming speakers to make everything happen. Practically nothing gets done during December, and the speakers will not plan that far ahead as to apply in November already.

    \n

    This timing is kind of set in stone for us and we will have to handle everything that we can beforehand so that the run to the finish line is without unnecessary obstacles.

    \n

    Also, with my limited experience, I would say that organizing a team of — albeit very motivated — volunteers who have different daily jobs is quite different from any sort of project management at work. The primary occupation or other things often have taken precedence over WordCamp and can easily mess up the team’s schedule in a bad way. That’s why we always have to strive for asynchronous communication.

    \n

    Looking forward

    \n

    And what’s next? I might apply to lead the next year as well, especially if my teammates decide to continue as well. The idea of starting with a physical event organization around May feels downright ridiculous at this point because of the situation in our country. And since I already have experience with leading an online event, I might as well exploit it.

    \n

    For the next year, I want to again iterate on our know-how, keep what has worked, and replace the things that didn’t — simply, to move the whole project a couple of steps forward.

    \n

    Most importantly, my great desire is to make the preparations run smoothly, do things in advance, reduce the amount of stress for the whole team.

    \n

    Apart from that, we’ll be also focusing on monthly WP Pivo meetups and other activities of the community, but that is a topic for another time.

    \n

    If you have any comments or questions, I invite you to reach out to me.

    \n

    \"\"

    \n

    WordCamp Prague mascot, The Wapuu King

    \n

    This post was originally published on onthegosystems.com.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 08:53:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:3:\"Jan\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"WPTavern: Pattern Directory Targeted to Launch with WordPress 5.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115742\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:175:\"https://wptavern.com/pattern-directory-targeted-to-launch-with-wordpress-5-8?utm_source=rss&utm_medium=rss&utm_campaign=pattern-directory-targeted-to-launch-with-wordpress-5-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2218:\"

    Last month WordPress contributors published the initial designs for the upcoming pattern directory, which will host community-submitted patterns that can be installed with one click from the block inserter in the editor. A live prototype of the work in progress is available at wordpress.org/patterns.

    \n\n\n\n
    \n\n\n\n

    The previously planned masonry style, which accommodates variable thumbnail heights, has not been implemented yet. Clicking on the individual pattern reveals a live preview with a handy resizing bar for trying it out on different screen sizes. The copying and favoriting features are not yet fully working. I was able to copy and paste patterns into the editor, but the previews aren’t yet very accurate.

    \n\n\n\n

    The project is clipping along and contributors are aiming to have the new directory ready to launch in tandem with the upcoming WordPress 5.8 release. Features planned for the first version include browsing and searching patterns, live preview of patterns, and the ability to copy the block code. Users signed into WordPress.org will be able to create and submit patterns to the directory using a set of curated images and media. They will go through a basic moderation process and patterns will be available for download directly through the block editor.

    \n\n\n\n

    Once the directory is launched, contributors plan to add support for internationalization, forking and iterating on patterns, expand the available media for use in pattern creation, and add a pattern browsing UI to the editor.

    \n\n\n\n

    WordPress 5.8 is expected to land in July 2021 with the new Query, Site Logo, and Navigation blocks, template-editing mode, and the block-based widgets screen and customizer integration. The availability of pre-made patterns will be a beneficial accompaniment to the first round of full-site editing features added to core in the next release, enhancing the basic page building experience.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 29 Apr 2021 04:25:54 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Gravity Forms 2.5 Launches With an Overhauled UI and Focus on Accessibility\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115645\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/gravity-forms-2-5-launches-with-an-overhauled-ui-and-focus-on-accessibility?utm_source=rss&utm_medium=rss&utm_campaign=gravity-forms-2-5-launches-with-an-overhauled-ui-and-focus-on-accessibility\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7327:\"

    The Gravity Forms team formally announced version 2.5 of its form plugin yesterday. The product, owned by Rocketgenius, promises an overhauled experience that is more in line with the core block editor. The team also wanted to put accessibility at the forefront of this release.

    \n\n\n\n

    The design is fresh, ditching pieces of the older WordPress UI in favor of cleaner lines and branding. The update should make current users feel like they are getting an overhauled product that still offers all the tools they are accustomed to. It should also feel more attractive to new customers.

    \n\n\n\n

    “Our big push with 2.5 is to update our editor so it looks more like Gutenberg, added more enhancements to using it in the block editor as well as doing our level best to make Gravity Forms the easiest form plugin in the ecosystem to make accessible,” said James Giroux, Community Experience Manager at Rocketgenius.

    \n\n\n\n
    Comparison between new and old Gravity Forms editor screens.\n\n\n\n

    While much of the new UI looks and feels like the block editor, there are differences in the user experience. Instead of a block inserter, form fields can be clicked or dragged and dropped from the right sidebar. Users more accustomed to slash commands will not be able to work directly from the content canvas. Even with the differences, building forms felt natural.

    \n\n\n\n

    “The native WP editor experience is changing a lot, and things are continuing to evolve there,” said Giroux. “One of the things we’ve worked really hard on with this latest release is to be as consistent as we can with our UI without being completely identical to the editor. This gives us the freedom to adapt to our users’ needs without being constrained by the timelines and development priorities of the WP editor. Our previous form editor was designed to fit in with the look and feel of the editor of the day, and I expect we’ll continue to be influenced and shaped by what the community designs and creates for Core.”

    \n\n\n\n

    Gravity Forms always carved its own path, leaping when others were still learning to crawl. Building entirely with native WordPress methods could hinder their goals, and the block system is still rapidly changing.

    \n\n\n\n

    “We’re very excited about the new UI patterns that the block editor has introduced,” said Giroux. “It gives us a blueprint to create with consistency that we believe will lead to better user outcomes. The legacy WordPress Dashboard was not opinionated by design. The Block Editor and now Full Site Editing workflows, however, are giving us a lot more that we can apply. This will make Gravity Forms more familiar to WordPress users, and that’s probably the biggest way the new editing experience has shaped our approach.”

    \n\n\n\nForms management screen.\n\n\n\n

    “The Block Editor is a great tool for users,” said Giroux. “If we can find ways to give more functionality on a per post or per-page basis that will maintain the stability and performance that our users have come to expect, I don’t see why we wouldn’t move in that direction. For now, there is a lot of opportunity for us to explore the existing options available within the editor that keep development complexity to a minimum, and we’re keen to do that and provide more value to Gravity Forms users via the block editor.”

    \n\n\n\n

    On accessibility, the primary lesson the team learned is that there is no magic switch to make a site WCAG compliant. It takes a holistic approach. WordPress, themes, and plugins must each do their parts to make this path easier for users.

    \n\n\n\n

    “What we have done is invest in learning as much as we can about accessibility, the challenges of accessible forms, and worked with Rian Rietveld and the team at Level Level to make creating accessible forms easier and faster,” he said.

    \n\n\n\n

    Gravity Forms 2.5 introduces new tools to enable accessible forms and outputs warnings when a user is configuring a form in a way that would pose an issue. The team also has extensive documentation on accessibility and a blog post covering it in the context of version 2.5.

    \n\n\n\n

    “We’ve committed ourselves to making accessibility and accessibility testing a part of our development process,” said Giroux.

    \n\n\n\n

    Outside of mentioning that the current release is the foundation going forward and excitement over new ideas, he remained tight-lipped about specific features in the pipeline for version 2.6 and beyond.

    \n\n\n\n

    Competition and the Forms Market

    \n\n\n\nExtensions from the Certified Add-On program.\n\n\n\n

    For years, few developers or companies could afford the time and monetary investment of creating visual builders, for forms or otherwise. It is no small feat to accomplish what Gravity Forms and others have done in the past. However, the block system is a set of APIs that could take some legwork out of the equation. Eager developers might see this as an opportunity to carve out their own slice of the market.

    \n\n\n\n

    Even while Gravity Forms is taking cues from core WordPress, the block editor could level the playing field, introducing new competition.

    \n\n\n\n

    “I’m very excited by what we’re seeing plugin developers do with the functionality in the WordPress editor,” said Giroux. “Giving users common patterns that work the same regardless of the developer, I believe, will only help further adoption of WordPress and the plugins that capitalize on the power of the editor. Gravity Forms is more than just a form builder, it’s a platform for building some pretty exciting workflows which can be challenging to adapt to the pace of change in the editor. As the development cycle matures and becomes more predictable, I’m eager to see how more complex plugin ecosystems like ours adapt to it.”

    \n\n\n\n

    The Gravity Forms team looks at forms as “just the tip of the iceberg,” seeing value in helping web professionals solve problems with different types of business data.

    \n\n\n\n

    Even in an increasingly crowded space, they have tripled their team size in the past two years, launched a Certified Developer program, and upgraded their support and user feedback system.

    \n\n\n\n

    “We are committed to being the most reliable, secure, and accessible form solution, and I think that’s what keeps us relevant,” said Giroux. “The WordPress ecosystem is maturing, and while it is harder to stand out today than perhaps a few years ago, there is still a lot of opportunity for great ideas and great innovation, just like we’re seeing with the WordPress editor.”

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 21:44:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"WordPress.org blog: Getting Started with the Figma WordPress Design Library\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10173\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"https://wordpress.org/news/2021/04/getting-started-with-the-figma-wordpress-design-library/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:18151:\"

    Created by James Koster, (@jameskoster)

    \n\n\n\n

    As the name suggests, the WordPress Design Library is a library of WordPress design assets, enabling anyone to quickly create design prototypes for WordPress UI in Figma.

    \n\n\n\n

    These tools are useful for designers when creating new UI and for anyone looking to contribute ideas, enhancements, or even solutions to bug reports. Sometimes pictures really do speak a thousand words.

    \n\n\n\n

    In this post, we’ll talk about some key features of Figma before diving into a practical example that demonstrates some of the WordPress Design Library utilities.

    \n\n\n\n

    What Is Figma?

    \n\n\n\n
    \"\"
    \n\n\n\n

    Figma is a collaborative design tool that members of the WordPress project’s design team have been using for several years to work on and share design concepts. It offers a variety of handy features such as: in-browser access, rich prototyping tools, component libraries, code inspectors, live embeds, inline commenting, plugins, and much much more.

    \n\n\n\n

    Perhaps best of all, it is totally free to sign up and start playing around. If you join the WordPress.org Figma organization (instructions below), you’ll gain access to the WordPress Design Library enabling you to design WordPress UI in no time.

    \n\n\n\n

    What Is the WordPress Design Library?

    \n\n\n\n

    In Figma, you can share components and styles by publishing them, transforming your file into a library so that you can use instances of those components in other files.

    Figma.com
    \n\n\n\n

    It may be easiest to think of the WordPress Design Library as a visual representation of all the javascript components that compose UI in the WordPress codebase. As an end user of the library, you can use those components in a self-contained environment to create new interface designs. It’s kind of like a big LEGO box containing all the UI pieces (buttons, form inputs, etc.) that you can use to create and try out new designs.

    \n\n\n\n
    \"\"\"\"
    \n\n\n\n

    Creating designs with these assets enables rapid ideation on new interfaces by removing mundane processes that one would ordinarily have to work through. Nobody wants to repeatedly double-check that the button they made perfectly matches the buttons rendered by the code! And on the flip-side of that coin, anyone sharing a design with others will generally endeavor to make specific elements (like buttons) match what exists in the code as closely as possible. The WordPress Design Library solves both these headaches and more.

    \n\n\n\n

    An additional benefit to these assets visually matching what exists in the codebase is that any designs you create with them will inherently make use of the latest WordPress design language and consequently feel like WordPress with almost no effort required. Passing such designs on to developers makes them easier to interpret and implement too.

    \n\n\n\n

    Figma Fundamentals

    \n\n\n\n

    Before getting into the practical section of this post, let’s quickly cover some of the fundamental features of Figma libraries. This will help prepare us for working with the WordPress Design Library.

    \n\n\n\n

    Components

    \n\n\n\n

    As we touched on above, the library consists of “components” that serve as visual counterparts to their code-based equivalents. That is to say, there is a Button component in Figma, and a matching Button component in the WordPress codebase.

    \n\n\n\n

    But what is a Figma component?

    \n\n\n\n

    Components are elements you can reuse across your designs. They help to create and manage consistent designs across projects.

    help.figma.com
    \n\n\n\n

    Let’s quickly explore some of the properties of Figma components to understand the ways they help when working on our next design.

    \n\n\n\n

    Variants

    \n\n\n\n

    Some Figma components offer variants. One example is Button(s) which all have the following states:

    \n\n\n\n
    • Resting
    • Hover
    • Focus
    • Disabled
    \n\n\n\n

    These can be manipulated via the variants interface in Figma:

    \n\n\n\n\"\"\n\n\n\n

    Other examples of components with variants are form inputs and menu items. Variants are a new feature in Figma, so we’ll be adding more over time.

    \n\n\n\n

    Overrides

    \n\n\n\n

    Although any components you insert are intrinsically linked to the master component in the library, it is possible to override some properties.

    \n\n\n\n

    While working with an instance of the Button component, you can change things like the label, or even the background color, while maintaining the link to the master component in the library. If you’re familiar with git workflows, this is kind of like creating a local branch. Any changes you make can easily be reset in a couple of clicks.

    \n\n\n\n\"\"\n\n\n\n

    Overrides made to your local instance will persist even when the master component is updated. So if your design calls for a button with a green background, you can apply that override safely with the knowledge that even if the master component is updated, your button can inherit those updates and remain green.

    \n\n\n\n
    \n\n\n\n

    We’ve only really scratched the surface of components here. So I would recommend the official Figma documentation for more advanced information.

    \n\n\n\n

    Figma Styles

    \n\n\n\n

    In addition to components, styles are also published as part of the WordPress Design Library. They have similar properties to components in that a master style exists in the library and can be utilized in your local Figma file. Just like Components, Styles will receive updates when changes to the library are published.

    \n\n\n\n

    Styles are used to define colors, typographical rules, and effects like drop-shadows present in the WordPress codebase. They enable you to apply things like text or background colors that will match other UI parts.

    \n\n\n\n

    Using Styles from the library, you ensure that your creations match existing UI elements, making it easier to implement.

    \n\n\n\n\"\"\n\n\n\n
    \n\n\n\n

    To learn more about styles in Figma, I recommend the official documentation.

    \n\n\n\n

    Views and Stickers

    \n\n\n\n

    “Stickers” are simply arrangements of Components and Styles that have been combined to represent common UI elements. They are not good candidates for full componentization due to their frequent customization needs. Examples of Stickers include the Inspector sidebar and the block inserter:

    \n\n\n\n\"\"\n\n\n\n

    Their utility is simple: find the sticker you need, peel (copy) it from the WordPress Design Library, and stick (paste) it into your local file before customizing as needed.

    \n\n\n\n

    Stickers are not Figma features like Components and Styles, but any stickers you copy to a working file will stay up to date by virtue of their underlying assets.

    \n\n\n\n

    Views are arrangements of components, styles, and stickers.

    \n\n\n\n

    Designing a Block Using the WordPress Design Library

    \n\n\n\n

    Okay, now that we have a handle on the basics of Figma libraries and their features and the utilities of the WordPress Design Library like Stickers and Views, let’s work through a practical example – designing the UI for a brand new block.

    \n\n\n\n

    Getting Started

    \n\n\n\n

    All you need to get started is a Figma account added to the WordPress.org Figma organization.

    \n\n\n\n

    Once you’ve signed up at Figma, simply join the #Design channel on the community Slack and request an invite. Include your Figma username, and a friendly community member will help get you set up in no time.

    \n\n\n\n

    Now the fun begins!

    \n\n\n\n

    To create a fresh new design file in Figma, visit the Gutenberg project and click the “+ New” button.

    \n\n\n\n\"\"\n\n\n\n

    Now let’s include the WordPress Design Library in our working file so that we have access to all the goodies we’ll need:

    \n\n\n\n
    1. Open the “Assets” panel and click the little book icon to view the available Team Libraries.
    2. In the modal, toggle the WordPress Design Library on. You can leave the others off for now.
    \n\n\n\n\"\"\n\n\n\n

    After closing the modal, you’ll notice a number of components become visible in the assets panel. To insert them, they can be dragged on to the canvas:

    \n\n\n\n\"\"\n\n\n\n

    It’s kind of like inserting a block \"🙂\"

    \n\n\n\n

    Creating a Pizza Block \"🍕\"

    \n\n\n\n

    I love to eat pizza, so for fun, I’m going to design a new block that simply allows the user to display a delicious pizza in their posts and pages. I want the block to include options for a total number of slices and different toppings.

    \n\n\n\n

    Work Out the Flow

    \n\n\n\n

    I always like to concentrate on individual flows when designing blocks. That is to say, the linear steps a user will take when working with that block. In this case, I want to create visualizations of the following steps/views in our Figma file:

    \n\n\n\n
    1. Inserting the block from the Block Inserter
    2. The Pizza Block placeholder state including options in the block, its Toolbar, and the Inspector
    3. The configured Pizza Block settings
    4. The end result – a delicious pizza sitting comfortably on the canvas
    \n\n\n\n

    Sketch the New States

    \n\n\n\n

    Thanks to the WordPress Design Library, I’ll be using as many existing UI components as possible, but I still need a rough idea of how they will be composed in the new interfaces that my Pizza block will require. I normally find it helpful to sketch these out on paper.

    \n\n\n\n

    Here’s the placeholder state which users will see when they first insert the block. This should be all I need:

    \n\n\n\n\"\"\n\n\n\n

    Prepare the Views and Stickers

    \n\n\n\n

    Helpfully, there are Views in the WordPress Design Library I can use for each of the steps in the flow outlined above.

    \n\n\n\n

    I open the library, navigate to the Views page, find the views I need, copy them, and paste into my working file.

    \n\n\n\n\"\"\n\n\n\n

    It is very important to copy (not cut) Views from the library so that they remain intact and other people can still access them. If you cut them, they’ll be gone forever, so please don’t do that \"🙂\"

    \n\n\n\n

    I’m also going to need a block placeholder sticker, so I navigate to the Stickers page, copy the one that most closely resembles my sketch from before, and paste it into my working file.

    \n\n\n\n\"\"\n\n\n\n

    As with views, please only copy stickers; do not cut them.

    \n\n\n\n

    Gather the Components

    \n\n\n\n

    Referring back to the placeholder state I sketched out on paper (it can be helpful to import this into your Figma file), I can see that I’m going to need some form elements to realize the design.

    \n\n\n\n\"\"\n\n\n\n

    I navigate to the Assets panel, locate the components I need, and drag them into my file:

    \n\n\n\n\"\"\n\n\n\n

    Helpful tip: Once a component has been inserted, you can transform it into another component via its settings panel. Sometimes it is easier to copy/paste a component you already inserted and transform it this way, rather than opening the assets panel over and over.

    \n\n\n\n

    Arrange the Views, Stickers, and Components to Create a Coherent Design

    \n\n\n\n

    Now that we’ve gathered all the individual pieces we need, it’s simply a case of arranging them so that they resemble each of the steps of the flow we outlined before. This is done with simple drag and drop.

    \n\n\n\n

    If you’re familiar with software like Photoshop, Sketch, and others, this should feel very familiar.

    \n\n\n\n\"\"\n\n\n\n

    Once everything is in place, our flow is complete:

    \n\n\n\n\"\"\n\n\n\n

    I still find it incredible that we’re able to do this in just a few short moments.

    \n\n\n\n

    Hook up the Prototype

    \n\n\n\n

    With each step of our flow created, the last piece of the puzzle is to connect them and form a clickable prototype.

    \n\n\n\n

    I switch to the Prototype panel and create click behaviors by selecting a layer, then dragging the white dot to the corresponding frame.

    \n\n\n\n\"\"\n\n\n\n

    There are a variety of behaviors that the Figma prototyping tools support, such as a hover, drag, and click. It is even possible to create smart animations. Perhaps that’s something we can explore in another tutorial, but for now, I will refer you to the Figma documentation for more advanced prototyping.

    \n\n\n\n

    Now that I’ve connected all the appropriate elements, I am able to take my prototype for a test drive by clicking the Play \"▶\" icon:

    \n\n\n\n\"\"\n\n\n\n

    You can try it too; just click here.

    \n\n\n\n

    That’s All, Folks!

    \n\n\n\n

    I tried to keep this tutorial fairly simple and concise; even though we only really got to grips with the basics here, you can see the power of Figma and the WordPress Design Library when it comes to trying out new designs.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 17:52:55 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: Creative Commons Search to Relaunch on WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115690\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/creative-commons-search-to-relaunch-on-wordpress-org?utm_source=rss&utm_medium=rss&utm_campaign=creative-commons-search-to-relaunch-on-wordpress-org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3493:\"

    The Creative Commons search engine will soon be part of WordPress.org, as Automattic will begin sponsoring several members of the CC Search team to maintain it. The engine currently offers over 500 million images, audio, and videos, under Creative Commons licenses or the public domain, aggregating more than 45 different sources.

    \n\n\n\n

    Matt Mullenweg announced the acquisition on his personal blog, saying that CC Search would be “joining the WordPress project.” It is a major benefit to the community, providing a valuable resource for finding GPL-compatible images for use in WordPress-derivative products like themes and plugins. Mullenweg hinted at a long-term plan where deeply integrating CC search into WordPress.org is just the first step:

    \n\n\n\n

    I am eager to give a new home to their open search product on WordPress.org in continued commitment to open source freedoms, and providing this community resource for decades to come. This is an important first step to provide a long-term, sustainable challenger to proprietary libraries like Unsplash.

    \n\n\n\n

    The reference to Unsplash follows the company’s controversial licensing changes, where it abandoned CC0 licensing in 2017 after making a name for itself by offering images originally shared to the public domain. That body of work was hidden away by Unsplash’s refusal to use its API to differentiate these CC0 images going forward. In July 2020, the controversy was renewed after Unsplash launched its official WordPress plugin. Some users are apprehensive about the company’s willingness to change its license and terms in the future, especially after Unsplash was acquired by Getty Images.

    \n\n\n\n

    Creative Commons search remains one of the few places to find CC0-licensed images that are compatible with the GPL. It will be interesting to see how this news of CC Search finding a new home on WordPress.org will affect Automattic’s relationship with Pexels, another image library with even more restrictive licensing than Unsplash. Access to Pexels was added to WordPress.com in 2018 and is also integrated with Jetpack.

    \n\n\n\n

    “When I started CC Search, I always hoped it would become part of the infrastructure of the Internet,” former Creative Commons CEO Ryan Merkley  said. “Matt Mullenweg and I first talked about CC Search in 2018, and he immediately saw the potential. I’m so happy to see this happen. It’s great for WordPress, and great for the Commons.”

    \n\n\n\n

    Mullenweg’s announcement said he anticipates CC search will be live and and running on WordPress.org in a few weeks. The new Automattic employees who were hired from Creative Commons will have their contributions sponsored by the company as part of the company’s Five for the Future commitment.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 28 Apr 2021 04:42:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:73:\"WPTavern: Churel Is a Colorful and Minimalist Block-Ready WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115663\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/churel-is-a-colorful-and-minimalist-block-ready-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=churel-is-a-colorful-and-minimalist-block-ready-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5311:\"\n\n\n\n

    WordPress theme development company Themix released its third free theme to the official directory this week. Churel is described as a theme for organizations and businesses that also works for traditional blogging.

    \n\n\n\n

    The development team has a keen eye for modern color schemes and font families. The theme has a refreshing design that is rare for the free theme directory, at least at first glance. It is the sort of project with just the right amount of eye candy to pull users in.

    \n\n\n\n

    If that was everything necessary for great design, the theme would land in my top 10 picks from WordPress.org without a second thought. However, after digging deeper, it was clear the design had some issues. They are fixable. It would not take much nudging of a few CSS rules to make this a much better theme, so let’s just dive right into the problems before getting into the good stuff.

    \n\n\n\n

    The theme’s most clear-cut flaw is with its typography. Sizing and words-per-line work well enough. The default Open Sans font is rarely a poor choice for readability. However, the line height is far too large for a good flow, and the white space between paragraphs makes it tough to tell where one ends and the other begins. It is almost as if the team got halfway through with fine-tuning the typography and decided to simply stop. It is a glaring issue that makes the theme practically unusable for long-form content, but it could be addressed with two minor style changes.

    \n\n\n\n
    \n\n\n\n

    For a theme “designed to take full advantage of the flexibility of the block editor,” it is missing one crucial component: editor styles. It is marked with the official “Block Editor Styles” tag in the directory and passed through the review process with no mention of it.

    \n\n\n\n

    This seems like an oversight. Maybe something was lost in the build process or accidentally deleted before submission.

    \n\n\n\n
    \n\n\n\n

    Churel relies on the Kirki Customizer Framework, a requirement for accessing any theme options. Most controls the theme uses are built directly into WordPress. It does not make much sense to tie them to the activation of a third-party plugin, particularly for its simple color options.

    \n\n\n\n

    Despite its faults, I fell in love with its homepage design immediately. The modern card design coupled with a minimalist page layout and bright colors makes me want to explore. And, you just got to love the ghost in the demo logo, right?

    \n\n\n\nChurel theme homepage.\n\n\n\n

    I also welcome any theme that actually creates a unique design for sticky posts on the homepage. Far too many theme authors either ignore it in whole or relegate it to a last-minute addition. The design team did not go overboard, but they made sure that readers know, “Hey, this is important,” while keeping it simple.

    \n\n\n\n

    Other elements are attractive about the theme, such as its subscription/newsletter area in the page footer. The attention to detail when styling the core widgets means everything looks good in the theme’s sidebars. And a handful of animations sprinkled throughout the design, such as floating circles and an underline effect on post title links, add an extra dimension without feeling clunky.

    \n\n\n\n

    Churel is almost a top-tier block-ready WordPress theme. With a handful of trivial CSS changes and — I will sound like a broken record to regular readers — some block patterns, it could be.

    \n\n\n\n

    The theme’s “Authors” page template is an example of a missed opportunity for a block pattern. The page template itself might be perfect for some but not others. It automatically lists administrators and authors along with their profiles. By overlooking other roles that can publish posts, the system is rigid. “Authors” or, more commonly, “team” pages are an ideal fit for the block system. Site administrators could quickly create and customize such a page if they merely had a pattern for doing so.

    \n\n\n\nChurel theme “Authors” page template.\n\n\n\n

    A pattern built from the Columns block with nested Image, Heading, Separator, and Social Icons blocks would make this easy. Throw in an “alternating colors” block style (or just let users control the colors) for the Columns, and users can build what they want more easily than theme authors doing guesswork about what user profiles should appear.

    \n\n\n\n

    The block editor exists to solve these problems, and theme authors are leaving half their tools in the bag. Block patterns will be a cornerstone of theme design in the coming years.

    \n\n\n\n

    I may be overusing the term as of late, but this yet another theme that has potential. It is not the best that it can be yet, but it is a decent 1.x launch.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 21:09:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:37:\"Matt: CC Search to join WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=54079\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://ma.tt/2021/04/cc-search-to-join-wordpress-org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1426:\"\n\n\n\n

    The WordPress community has long advocated for a repository with GPL-compatible images, and it’s time to listen to that need. CC Search, a CC0 (Creative Commons Zero) image search engine, is joining the WordPress project with over 500 million openly licensed and public domain images discoverable from over 50 sources, audio and video soon to come.

    \n\n\n\n

    I am a long-time supporter of Creative Commons and their influential work on open content licenses, and when we heard they were considering shutting down their CC Search engine we immediately started exploring ways we could keep it going. I am eager to give a new home to their open search product on WordPress.org in continued commitment to open source freedoms, and providing this community resource for decades to come. This is an important first step to provide a long-term, sustainable challenger to proprietary libraries like Unsplash.

    \n\n\n\n

    Automattic has hired key members of the CC Search team and will sponsor their contributions as part of our Five for the Future commitment. I look forward to seeing the project grow and welcome them to the WordPress community! Will share in a few weeks when everything is live and running on the site.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:36:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WordPress.org blog: Curious About Full Site Editing?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10190\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/curious-about-full-site-editing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2790:\"

    The second major release of the year is right around the corner. You might have heard a bit of buzz about full site editing around your WordPress circles, so this post will give you some big picture things to know as well as a few wayfinding links for anyone who wants to know more.

    \n\n\n\n

    For Site Owners and Operators

    \n\n\n\n

    If you own and operate a WordPress site, updating to version 5.8 should be a seamless experience, just like any other update. All the conversation around full site editing is very exciting, but shouldn’t be alarming—everything in the next release that relates to full site editing is opt-in. To experiment freely with it, you need a theme that is built for it. Check the links at the end to see a few examples!

    \n\n\n\n

    For Agencies and Theme/Plugin Developers

    \n\n\n\n

    If you extend the functionality of the WordPress CMS for clients, updating to version 5.8 should also be seamless. As always, it’s smart to spot-check custom implementations in a staging environment or fully test when the release candidate is made available. Want to test your products and get everything client-ready? Check out any of the testing options below.

    \n\n\n\n

    For Contributors and Volunteers

    \n\n\n\n

    If you contribute time and expertise to the WordPress project, you can join us in the interesting work leading up to the WordPress 5.8 release and update your site with the deep satisfaction of a job well done. There is a lot that goes into every release—from design and development to documentation and translation; if you’ve got some time to spare, and want to help support the project that supports the tool that supports your site (whew!), check out the links below.

    \n\n\n\n

    Resources

    \n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 27 Apr 2021 17:26:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Will We See In-Person WordCamps in 2021? An Open Discussion on a Path Forward\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115641\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:217:\"https://wptavern.com/will-we-see-in-person-wordcamps-in-2021-an-open-discussion-on-a-path-forward?utm_source=rss&utm_medium=rss&utm_campaign=will-we-see-in-person-wordcamps-in-2021-an-open-discussion-on-a-path-forward\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3613:\"

    Now that COVID-19 vaccinations are becoming more widespread, many hope that in-person WordCamps can once again be a reality. There is no official path forward just yet, and decisions will likely be locally based in the coming months. Angela Jin, a community organizer for Automattic, announced an open discussion around the topic.

    \n\n\n\n

    Currently, all WordCamps are online-only events. There is no official decision on when in-person events will begin anew.

    \n\n\n\n

    This is a follow-up to an earlier discussion that began in December 2020. It served as an initial opinion-gathering mission. For communities that have more effectively contained the COVID-19 spread, the Community Team posted guidelines and a checklist for local Meetups in February.

    \n\n\n\n

    Most of the ideas from the December 2020 dialogue are at the forefront of the current open discussion. Mandatory masks, restricting the length of events, limiting attendance, and capping attendance according to the venue’s capacity top the list.

    \n\n\n\n

    One of the tougher-to-achieve goals might be setting up safety guidelines around food or drink, which are often steeped in the local culture. It will also be a primary safety concern.

    \n\n\n\n

    Mandatory registration is on the table. This would allow organizers to contact attendees in case of exposure.

    \n\n\n\n

    Other suggestions center on maintaining local events, which is what WordCamp is all about. While some of the conferences are held in major cities and draw international crowds and speakers, this could be an opportunity to make sure that events focus directly on their communities. It would also be necessary for containing any spread of the virus or variants to outside populations.

    \n\n\n\n

    There is one suggestion to recommend that only vaccinated conference-goers attend. This would likely fall under an honor system. Making this mandatory could create potential hurdles based on local jurisdictions. For example, there is a House Bill in Alabama, my home state, that would not allow entertainment events to “discriminate” based on vaccination status if passed. I have yet to verify if WordCamps fall under the definition of “entertainment events” like a concert or sports match.

    \n\n\n\n

    There are still many unknowns at this point, and every potential in-person WordCamp would have to follow local laws. However, we are nearing a time where such events may once again be a reality.

    \n\n\n\n

    “I’m going to get a little more personal here: returning to in-person WordCamps is going to be an emotional experience that is going to affect everyone differently,” Jin said in a final note, sharing thoughts that echo throughout the WordPress ecosystem.

    \n\n\n\n

    “The WordPress community has a big range of introverts to extroverts, and we’ve gone through major changes to how we interact with each other. For all that I want to hug everyone, it also is strange and a bit frightening to think about all that human contact after a year-and-then-some of this pandemic. Supporting organizers in bringing back WordCamps in a way that acknowledges and accommodates all our excitement and fears, as well as our love of WordPress, is a worthy goal.”

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 20:35:59 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: FLoC Blocking Discussion Continues on WordPress Trac\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115523\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/floc-blocking-discussion-continues-on-wordpress-trac?utm_source=rss&utm_medium=rss&utm_campaign=floc-blocking-discussion-continues-on-wordpress-trac\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4580:\"

    Last week WordPress contributors began a heated discussion regarding blocking FLoC (Federated Learning of Cohorts). Google’s experimental alternative to third-party cookies has become a highly contentious topic that made its way into last week’s Core developers meeting.

    \n\n\n\n

    Representatives from the Chrome team also attended the meeting to clear up any confusion and answer questions about how FLoC currently works. They related that during the FLoC Origin Trial (the process by which Chrome introduces new proposed API’s for feedback from developers), a page will only be included in the browser’s FLoC computation for one of two reasons:

    \n\n\n\n\n\n\n\n

    “In the final end state, we expect the way FLoC will work is that the only pages that will be relevant to calculating your cohort are the pages that call the FLoC API,” Chrome representative Michael Kleber said. “So pages will ‘opt in’ by using some new JS function call.”

    \n\n\n\n

    Since FLoC is still in the the beginning stages, the Chrome team cannot confirm the final behavior for what pages will be included in FLoC calculations. At this point, it seems like it will primarily affect publishers and ad-supported websites in the future.

    \n\n\n\n

    Although the authors and proponents of the proposal prescribed immediate action, WordPress’ leadership has determined that an implementation discussion is premature at this time.

    \n\n\n\n

    “I am now amending my posted request for a reworking of the proposal – I do not want to see another proposal for action in WordPress right now,” WordPress lead developer Helen Hou-Sandí said during the meeting. “What we need is a Trac ticket where we track the status of the FLoC trial/implementation and discuss periodically to see if action is needed. I have an opinion, but it’s not really relevant at this time, and I think more of us should be comfortable with that idea.”

    \n\n\n\n

    The Chrome team did not expect that many people would be considering FLoC at this point, as Origin Trials generally only attract a handful of people who are curious about the technical details. FLoC gained more widespread attention after the critical article from EFF. The original proposal on make.wordpress.org also attracted media attention due to its confusing approach, premature assumptions, and lack of critical peer review.

    \n\n\n\n

    Peter Wilson commented on behalf of WordPress’ security team after meeting to discuss the issue, stating that it is unequivocally not a security concern:

    \n\n\n\n

    Treating this as WordPress currently treats any other security issue would require releasing 21 versions of WordPress. As identified in other comments on this thread, it would also break the implicit contract of security releases by including an enhancement in the release.

    As a result of these consideration, the security team have concluded that treating this as a security issue is inappropriate.

    Whether this is suitable to be included in WordPress and subsequently released as part of the next 5.7.x maintenance release are discussions for the Core team. The security team do not have a consensus view on these questions.

    \n\n\n\n

    Hou-Sandí opened a ticket where discussion continues on the implications of FLoC. As more information becomes available from Chrome’s Origin Trial, WordPress contributors will be better prepared to discuss how it may affect publishers and whether a core block, privacy setting, or other action is necessary.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 16:44:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:64:\"WordPress.org blog: WP Briefing: Your Opinion is Our Opportunity\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10171\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/04/your-opinion-is-our-opportunity/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:13066:\"

    In this episode, Josepha discusses the importance of co-development and testing for the continued growth and maintenance of the WordPress project. 

    \n\n\n\n

    Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

    \n\n\n\n

    Credits

    \n\n\n\n\n\n\n\n

    References

    \n\n\n\n\n\n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    0:10

    \n\n\n\n

    Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

    \n\n\n\n

    0:39

    \n\n\n\n

    Prior to Gutenberg, our current multi-year project that is changing the way we see WordPress, another multi-year project changed the way we saw WordPress. Starting in 2008, substantial changes to the WordPress interface came in a series of major releases, starting with WordPress 2.5. That was before my time in the project; I’ve only ever worked with the current dashboard in WordPress. But, from what I’ve read, the user testing that would have gone into it was a huge undertaking and very well coordinated. Now, WordPress has not taken on that type of robust testing project since, but starting around 2014 or 2015, a community testing practice was started. I’ve shared these calls for testing frequently, both on Twitter and in this podcast. But you may not really know why I find the testing program so valuable. So today, I’m going to explore with you the concept of co-developers in open source.

    \n\n\n\n

    1:52

    \n\n\n\n

    Open source software, like WordPress, is built by the people who show up. There are a few obvious groups when you think of software, the developers, designers, technical writers, folks who monitor the forums, and really, all the teams you find in our WordPress project. Co-developers or co-creators, if you’ll join me in making our tent a little bigger, refers to the users of an open source product who actively engage and contribute to the work by using the software and sharing any bugs that they find.

    \n\n\n\n

    2:25

    \n\n\n\n

    I mentioned this group in the episode about how WordPress improves. Specifically in that episode, I underlined that if you consider users to be part of the collaborative process, as long as people use your product, those people will have opinions about your product’s needs. And today, I’m extending that thought a bit further to say that, as long as there are opinions, there are opportunities.

    \n\n\n\n

    2:51

    \n\n\n\n

    When you know what isn’t working, you can focus your attention on a solution, you can focus on making sure that you can make it work. The existence of co-creators is one of the great things about open source. No designer or developer or product owner has to know every sort of user to be able to get feedback from them. If they show up, test the software and get their thoughts written down, then you can start to see patterns and common pain points. It is also, unfortunately, one of the great difficulties of being an open source project. After all, if users don’t show up, or don’t test, or don’t write down their feedback, it’s impossible to know what worked for them and what didn’t. And on top of that, with such a large percentage of the web being supported by WordPress in this case, not every problem is part of a pattern. And not all patterns are part of the current priorities.

    \n\n\n\n

    3:54

    \n\n\n\n

    Looking beyond that double-edged sword. Let’s say that this idea of a co-creator makes sense to you. And more than that, you feel like it describes you. What does it mean for you to show up in WordPress? There are lots of good ways to offer this sort of feedback and contribute to those patterns that can help us see through the fog. So I have for you a mini list and, of course, a bunch of links in the show notes for you. 

    \n\n\n\n

    So some good ways. First, you can participate in any of the dedicated calls for testing. They are short and frequently have a guide. I participate in them and generally find them fun. I say generally because sometimes I also find them frustrating. That’s really okay too; the frustrations helped me to identify that I found a problem. And if I can find a problem, then I have saved someone else from finding that problem in the future. The second thing you can do is file a bug report with information about what happened when you ran into a problem and how someone like me could make your bug happen on their site. Bug

    \n\n\n\n

    5:00

    \n\n\n\n

    Reporting is one of the things I’ve grown to really love in my time and open source; I did not love it. At first, I was really scared to do it. I mostly used to send videos of the bugs that I found to other people and ask them to file the bug reports for me. But then, of course, I never knew whether they got fixed or not. So I was scared to do it at first. But once I figured out what makes a “good report,” I felt like I was helping circle hidden treasure on a map or something. I realized also not everyone’s excited about finding hidden treasure on a map. But I play video games and finding hidden treasure on maps is, like, a thing.

    \n\n\n\n

    5:43

    \n\n\n\n

    A third really great way to contribute like this is that you can join any community meeting to learn more about what’s happening now and in the future, or just to see what makes WordPress work. As a heads up, these meetings go really fast. And they’re all in text. And there’s sometimes, but not all the time, a little bit of jargon that you have to head to your favorite search engine to find. But I sit in on about half of them myself and get a lot of really good information about things that I’ve been wondering about, things that looked broken, but actually are functioning exactly the way that they should. And I just didn’t want them to function that way. And more often than not, I found out that something that I thought was broken, was already identified and being fixed. Those are three great ways to show up and help give feedback that helps make WordPress better and more functional for more people. 

    \n\n\n\n

    There are also a few other ways that we see people trying to share that feedback that don’t work quite as well. And I’m going to touch on a few of them just because it’s important to know, as you’re trying to figure out how to get started with this. The first one is just tweeting your frustrations, and I get it like that’s literally what Twitter is for.

    \n\n\n\n

    7:03

    \n\n\n\n

    But also it’s hard to create a block from “I am frustrated, behold my hateful rhetoric.” Not that any of you, my dear listeners, ever tweet hateful rhetoric. Still, that is really hard for anyone to figure out what was actually wrong in that moment. Another thing that is not the most functional way to give feedback is review brigading. The Internet rewards this kind of behavior, but I have found at least for WordPress, those false positives and false negatives can be really confusing for our new users. And the third way, that’s not our best way, and probably is the least best way, is just by giving up and not telling anyone what broke for you.

    \n\n\n\n

    7:45

    \n\n\n\n

    I know that I already said it’s not possible to fix everyone’s problems. But while it’s not possible to fix everyone’s problems the moment they get shared, it’s also truly impossible to fix any problems that no one knows exist. And so giving up and not sharing an issue so that we can identify it as part of a pattern of problems is probably the least effective way to help us help you get your problem solved.

    \n\n\n\n

    8:13

    \n\n\n\n

    This brings me back to the question of the value of WordPress users as co creators in the development process. As WordPress grows, both in usage as a CMS and in participation as a community, it’s important for us to shed the idea that software creation is only about what literally can be done to code or what literally can be done to core or what literally can be done to the CMS. It’s also important for us to constantly remind ourselves that the best outcomes are the result of collaboration with the people who use WordPress the most. I know that not every type of user we have is showing up to give us feedback about where WordPress doesn’t work for them. And I would love to see more feedback that helps us to figure out where our patterns are.

    \n\n\n\n

    9:03

    \n\n\n\n

    So the bottom line is this without user feedback that has some clarity of what was expected versus what happened, the work to make a good choice involves a whole lot of guessing. So since open source software is built by the people who show up, I hope this gives you an idea of how you can show up and help improve the tool that powers your sites.

    \n\n\n\n

    9:32

    \n\n\n\n

    That brings us to today’s community highlight every episode or so I share either a great story of WordPress success or a great story of a WordPress contributor who helped some folks along the way. Today’s community highlight comes from @trishacodes who shared one of her early to WordPress mentors. She says “@RianRietveld was such an encouragement and helped me find the courage to speak up.” I have had myself many conversations with Rian, and that rings true for me as well. 

    \n\n\n\n

    10:00

    \n\n\n\n

    That brings us to the moment you’ve all been waiting for, the small list of big things. It’s actually kind of a medium list. Today, I’ve got four whole things to share with you all. The first thing on my list is that WordCamp Europe is coming, that will be June 7th through the 10th. It’s a multi-day online event. I will share in the show notes a link to the main website; there you can get an idea of what will happen, the schedule, and get your hands on some tickets so that you can get it in your calendar and prepare yourselves. 

    \n\n\n\n

    The second thing I want to share is for all of our polyglots out there. The French team is planning a translation day coming up on April 30. I will share a link to that as well so that you can get an idea of what that takes if you’re feeling like you want to do some translation work. The third thing I want to share is that the Indian community in Pune actually started a new meetup series. It is a translation work along self-study – also for all of our polyglots out there. I would love to see as many people as are interested in both learning about how to do translations and certainly translating WordPress get registered for that. A final thing I want to share with you all is that if you are curious about what full site editing features will be included in the 5.8 release, that’s the WordPress release that’s coming out in the middle of July, you can check out my recap and recording of the demo that was held with Matt, Matias, and the rest of the team. There’s are also a number of other posts of next step ideas that I will share in the show notes as well.

    \n\n\n\n

    11:51

    \n\n\n\n

    That, my friends, is your small list of big things. Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 26 Apr 2021 15:24:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:106:\"WPTavern: Companies Running Competitive Ads Against WordPress May Soon be Banned from Sponsoring WordCamps\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115353\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:257:\"https://wptavern.com/companies-running-competitive-ads-against-wordpress-may-soon-be-banned-from-sponsoring-wordcamps?utm_source=rss&utm_medium=rss&utm_campaign=companies-running-competitive-ads-against-wordpress-may-soon-be-banned-from-sponsoring-wordcamps\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4644:\"

    The WordPress Community Team is discussing banning companies from sponsoring WordCamps if they advertise competitively against WordPress. A WordCamp organizing team recently brought the concern to community deputies regarding a potential sponsor that is advertising its product in such a way that it puts WordPress in “an unflattering light.”

    \n\n\n\n

    This particular instance is prompting community leadership to clarify expectations for how sponsors advertise WordPress derivative products – products built on top of WordPress, such as themes, plugins, or distributions.

    \n\n\n\n

    Cami Kaos published a list of the existing expectations for sponsors and those who want to participate in the community’s events program. These include items such as no discrimination, no incitement of violence, respecting the WordPress trademark and licensing, and others from the WordCamp Organizer Handbook. Kaos posed the following two questions to the community:

    \n\n\n\n

    Should the WordCamp and meetup programs accept sponsors, speakers and organizers who engage in competitive marketing against WordPress?

    How should competitive advertising be defined in the WordPress space?

    \n\n\n\n

    The discussion post did not specify the potential sponsor in question but recent campaigns from Elementor meet the criteria of advertising against WordPress with a negative slant. The ads insinuate that WordPress isn’t user -friendly or intuitive and that without this particular product WordPress is frustrating. The company has also run ads that co-opt the term “full-site editing” on Google searches, with Elementor representatives claiming that it is a generic industry term.

    \n\n\n\n
    \n\n\n\n

    Elementor has sponsored events in the past. If the community guidelines are changed to explicitly prohibit advertising that puts WordPress in a negative light, then the company may be required to pull all of its ads that violate the new requirements in order to become a sponsor.

    \n\n\n\n

    Bluehost is another company that might come under the microscope for its recent trademark misuse. Although the company had a meeting to resolve matters with WordPress’ executive director Josepha Haden, Bluehost still has multiple ads running with the same issue.

    \n\n\n\n

    Feedback so far has been minimal. One participant in the discussion mistakenly thought the proposal was referring to competition in general. Andrea Middleton clarified in the comments.

    \n\n\n\n

    “The question is whether WordPress events should co-promote or endorse people and companies that are competing against WordPress itself,” Middleton said.

    \n\n\n\n

    “For example, if someone is running ads saying ‘WordPress is terrible, use our product instead,’ or even ‘WordPress is terrible, but our plugin makes it good’ do we want to include them as a sponsor for WordPress events?”

    \n\n\n\n

    Defining competitive advertising to exclude all forms criticism may be too strong of a line but there should be guidelines that cover more egregious cases where a company is disparaging WordPress for the purpose of exploiting its community.

    \n\n\n\n

    “Criticism can be healthy and good marketing when done in good faith and with a tool that truly addresses a user need,” Mark Root-Wiley said. “What makes criticism objectionable is when it strays past details of software and into harmful criticism of people and communities, and it seems like the existing standards cover that.”

    \n\n\n\n

    The discussion will be open until April 29, 2021, when comments will be closed and the discussion will move to final review.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 23 Apr 2021 22:01:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"WPTavern: Plausible Analytics Adds Statistics Dashboard to the WordPress Admin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115526\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:201:\"https://wptavern.com/plausible-analytics-adds-statistics-dashboard-to-the-wordpress-admin?utm_source=rss&utm_medium=rss&utm_campaign=plausible-analytics-adds-statistics-dashboard-to-the-wordpress-admin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5460:\"

    Earlier this week, Plausible Analytics released version 1.2 of its WordPress plugin. The update includes a missing feature that should make it more appealing to end-users. The plugin now supports an “embedded mode” that displays a site’s stats directly in the WordPress admin interface.

    \n\n\n\n

    Without counting the self-hosted users of its open-source project, Plausible Analytics recently surpassed 14,000 users on its hosted service. That is a step forward in its two-year path toward making a dent in the analytics market.

    \n\n\n\n

    “We’ve taken 1.4 billion pageviews directly from Google Analytics to date,” said Plausible’s co-founder Marko Saric”. We’re about to reach 3,000 paying subscribers by the end of the week.”

    \n\n\n\n

    It is an exciting moment for the small, EU-based team. However, the work does not stop there. The plugin has gained 500 active installs after its recent launch. It is a small number, but Saric seems happy that the plugin is simply showing up in the directory when people search for “web analytics” at this point, hoping that it will bring more WordPress users around to a privacy-first solution.

    \n\n\n\n

    It is a slow burn and organic growth. However, WordPress users are stepping up and filing tickets through the plugin’s GitHub repository now. Activity and feedback are the lifeblood of young products, giving developers goals to reach toward.

    \n\n\n\n

    The latest version of the Plausible Analytics plugin gives users access to their stats dashboard from the WordPress admin. Hooking it up is as simple as generating a shared link via the service’s website.

    \n\n\n\nGenerating a shared link from the Plausible Analytics site.\n\n\n\n

    Earlier versions of the plugin did not include this functionality because the team was still building their public API, a necessary feature for sharing the data outside of their system.

    \n\n\n\n

    The new stats API is not just for the plugin. Developers can build on top of the system, retrieve stats, and present them however they want. Dailytics, a third-party service, already integrates with it and sends out daily analytics emails. The team has detailed documentation on using it.

    \n\n\n\nRealtime stats embedded into the WordPress admin.\n\n\n\n

    The latest version of the self-hosted Plausible script is available too. It features all of the same capabilities. However, the WordPress plugin does not yet support embedded mode for analytics just yet.

    \n\n\n\n

    “The development of the WordPress plugin started before this self-hosted release was completed, so WP dashboard for self-hosters is not part of the 1.2 plugin release, unfortunately,” said Saric. “I’ve now spoken with Mehul Gohil, who is the WordPress developer that has helped us with the plugin, and we will try to do a mini-release of the plugin in the upcoming days to allow the self-hosters to get their stats within the WordPress interface too.”

    \n\n\n\n

    Version 1.3 and Beyond

    \n\n\n\n

    Saric said his team already has a roadmap for the next version of the plugin. Several new features should land in version 1.3, such as excluding authors and editors being counted in the stats. This option exists for administrators at the moment.

    \n\n\n\n

    “The second one is a widget that gives a quick overview of the most import metrics such as unique visitors and pageviews, so you don’t need to go into the analytics section if you don’t want to,” he said.

    \n\n\n\n

    The team is also looking at out-of-the-box integration with some popular third-party plugins to support event tracking. At the moment, this is primarily a developer-friendly feature because it requires a bit of JavaScript to track signups and conversions. Making it work by default is the goal.

    \n\n\n\n

    “We’ve already done some work to make it easier, such as the recent introduction of the ability to group pages,” said Saric. “For instance, you can now group WooCommerce checkout pages for your eCommerce, so now we just need to enable that out of the box in the plugin.”

    \n\n\n\n

    They are shooting for a self-hosted or proxied version of their script from the plugin in the long term. This would allow users to run the script from their domain directly as a first-party connection, providing more accurate data. This is a manual process right now, but the team wants the process to be easy for those users going down the self-hosted path.

    \n\n\n\n

    “Obviously, in addition to the WordPress-specific improvements, we’re constantly working on improving Plausible Analytics itself,” said Saric. “WordPress users automatically get all of those into their dashboard as we improve and update the main site. No need to wait for WordPress plugin updates for those to make it into the WordPress dashboard. One metric we’re hoping to release over the upcoming weeks is the inclusion of states and city data in addition to the countries that we have now. Many of our users have asked for this, so we’re prioritizing it in our development.”

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 23 Apr 2021 15:49:57 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: With Some Hits and Misses, the Guten Blog WordPress Theme Has Potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115543\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/with-some-hits-and-misses-the-guten-blog-wordpress-theme-has-potential?utm_source=rss&utm_medium=rss&utm_campaign=with-some-hits-and-misses-the-guten-blog-wordpress-theme-has-potential\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5677:\"

    Any time I see a new block-ready WordPress theme, I am like a toddler in a toyshop. I cannot wait to bring it home, rip off the packaging, and play with it. Sometimes it is the type of fun that will create lasting, years-long memories. Other times, the toy is not all it is cracked up to be. It does not deliver on the promises on its packaging. It is too hard to play with or just not what you expected. You discard it and move on to one of your other trusted toys, ones with guaranteed fun built-in.

    \n\n\n\n

    The latter feeling is where I am at with Guten Blog by Avid Themes. I want to love it. It has many elements that could make for a great theme. At first glance, I even believed it could be one of only a handful of quality, block-supported themes in the directory.

    \n\n\n\nGuten Blog default demo homepage.\n\n\n\n

    However, I was that kid all over again, let down by the shiny veneer of colorful packaging. The upside is that there is potential. It has all the elements needed to be among the great blogging themes. With more work, it could go from mediocre to top-10 material.

    \n\n\n\n

    The most disappointing thing about the theme is the following homepage section:

    \n\n\n\nCommon three-box design pattern.\n\n\n\n

    It is a typical design on the web today — a section containing some intro text with three boxes. I do not dislike the design. The problem is how it is handled by the theme. It relies exclusively on the Gutentor plugin to build this, and there are zero reasons to do so. The block editor is capable of handling this on its own.

    \n\n\n\n

    This would have been an easy win for the theme to package this section design as a custom block pattern.

    \n\n\n\n

    For some blocks, I get it; WordPress’s built-in blocks do not cut it yet. For example, the various post-related blocks do not exist yet. Of course, the Query block is slated to land in WordPress 5.8. That would be an opportune moment to make the switch.

    \n\n\n\n

    However, the above section is representative of all the imported demo content. Everything from columns to quotes to paragraphs — yes, paragraphs — is built with Gutentor’s blocks.

    \n\n\n\n

    One of my primary fears with theme developers is that they will continue to over-rely on plugins for basic features that exist in WordPress. This teaches end-users to also rely on these plugins, and it is a shame. This creates less flexibility for users, tying basic content to a third-party tool.

    \n\n\n\n

    There are some stunning pre-made demos that users can import. In total, the theme offers 18 options. Seven of those are available for free. The other demos are part of the “pro” package, ranging from $49.99 to $79.99 depending on the number of sites the customer wants support and updates.

    \n\n\n\nPre-made, importable demos.\n\n\n\n

    In particular, I am a fan of its third free option for lifestyle-type blogs:

    \n\n\n\nLifestyle-type free, importable demo.\n\n\n\n

    The importable demos are the bright spot of the theme, most of which showcase various homepage options. The development team simply bypassed the tools available in core WordPress. There are no block styles or patterns, and the demos offer a plethora of opportunities to flesh out custom designs for users to insert with one click.

    \n\n\n\n

    The theme technically works without extra plugins. It is billed as a blogging theme, so the hope is that it holds up in that regard. With a content size between 730 – 800 pixels and text of 16 pixels, it does not. The text is practically unreadable when it comes to long-form content. It may as well be a jumbled mass of words where you continually lose your place from line to line.

    \n\n\n\n

    This is not Justin-is-having-a-bad-day-so-let’s-dump-on-a-theme. I genuinely love the potential Guten Blog has. I want it to be better. The overall design is something I could imagine myself using on various websites I am involved with. Its font choices, minimalist layout, and generous use of whitespace are right up my alley.

    \n\n\n\n

    However, it has some issues. For example, it updates a database option for a third-party plugin on every page load (I am not sure how that made it through the review process). It also missed a lot of opportunities to showcase the core block editor.

    \n\n\n\n

    Other issues are with the theme’s primary admin notice. The small text that reads “Clicking on get started will activate Advanced Import” felt shady. Literally, the text was intentionally styled with a 10-pixel font size, which was incredibly difficult to read, so tough that I did not catch it until I unwittingly began installing a third-party plugin. It also installed Gutenblog Demo Import and the Gutentor plugin without authorization at that moment.

    \n\n\n\n

    These are fixable issues. I hope the theme development team can take my complaints and build something that eventually exceeds my expectations. The potential is there.

    \n\n\n\n

    Update (April 26): I did not notice during the initial review, but I have since confirmed that this theme changed my site title to “WP GutenBlog” at some point in the process, likely during the demo import.

    \n\n\n\n
    \n\n\n\n

    Disclosure: This theme makes use of a library I built for breadcrumbs. It is using a version that is at least three years out of date.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Apr 2021 23:12:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:113:\"WPTavern: Google Delays Page Experience Ranking Signal Rollout until June 2021, Adds New Report to Search Console\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115367\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:269:\"https://wptavern.com/google-delays-page-experience-ranking-signal-rollout-until-june-2021-adds-new-report-to-search-console?utm_source=rss&utm_medium=rss&utm_campaign=google-delays-page-experience-ranking-signal-rollout-until-june-2021-adds-new-report-to-search-console\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2764:\"

    Google announced this week that it will be delaying the rollout of the new page experience ranking signal to mid-June 2021. Page experience will be included along with existing search signals like mobile-friendliness, safe-browsing, HTTPS-security, and intrusive interstitial guidelines. The rollout, previously planned to begin in May, will be gradual and page experience will not be in full force as a ranking signal until August.

    \n\n\n\n

    In the meantime, Google has been elaborating on how page experience is evaluated and has published an FAQ page with common questions they have been answering:

    \n\n\n\n
    • If I built AMP pages, do they meet the recommended thresholds?
    • Can a site meet the recommended thresholds without using AMP?
    • Is there a difference between desktop and mobile ranking?
    \n\n\n\n

    Google also announced a new Page Experience report in the Search Console that displays the percentage of URLs with good page experience and search impressions over time. Currently, page experience only applies to mobile search. Good URLs refers to the percentage of mobile URLs with both Good status in Core Web Vitals and no mobile usability issues according to the Mobile Usability report.

    \n\n\n\n\n\n\n\n

    Google News will also be getting some important AMP-related updates during the rollout, with the removal of the AMP badge icon and the inclusion of non-AMP content in the mobile apps:

    \n\n\n\n

    As part of the page experience update, we’re expanding the usage of non-AMP content to power the core experience on news.google.com and in the Google News mobile apps.

    Additionally, we will no longer show the AMP badge icon to indicate AMP content. You can expect this change to come to our products as the page experience update begins to roll out in mid-June.

    \n\n\n\n

    Non-AMP pages will also be eligible to appear in the Top Stories carousel as another planned part of this update.

    \n\n\n\n

    Google Search has been updated to include support for signed exchanges (SXG) on all pages, previously only available on AMP-generated pages. This allows for pre-fetching resources, such as HTML, JavaScript, CSS, images, or font, in order to render pages faster. Web.dev has a guide and tools for monitoring and debugging SXG.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 22 Apr 2021 14:26:45 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"WPTavern: Themes Set Up for a Paradigm Shift, WordPress 5.8 Will Unleash Tools To Make It Happen\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115466\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:235:\"https://wptavern.com/themes-set-up-for-a-paradigm-shift-wordpress-5-8-will-unleash-tools-to-make-it-happen?utm_source=rss&utm_medium=rss&utm_campaign=themes-set-up-for-a-paradigm-shift-wordpress-5-8-will-unleash-tools-to-make-it-happen\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9813:\"

    For much of WordPress’s history, the foundational elements of building a theme have been slow to change. Every so often, developers would get a new feature, such as child themes, featured images, nav menus, and template parts. Each of these was epic in its own way. However, theme authors had ample time to adapt to these single feature introductions.

    \n\n\n\n

    When the block editor landed, it did so with a bang. Love it or hate it, it shifted how we think about design for the web. It was not one of those one-off enhancements, regardless of how many times we were told it would “just work” with any theme. It sometimes does not technically break things. Support and integration are necessary for an ideal user experience, and theme authors have been slow to catch up.

    \n\n\n\n

    With WordPress 5.8, theme authors are gearing up for another paradigm-shifting set of changes. Josepha Haden Chomphosy, WordPress Executive Director, announced last week that several Full Site Editing (FSE) sub-components will begin shipping with the next release.

    \n\n\n\n

    In the latest episode of the WP Tavern Jukebox podcast, Nathan Wrigley hosted guest Anne McCarthy. He asked her to calm people’s fears over upcoming changes. “So, as an example, let’s imagine that we’re a theme developer. We may be getting concerned that themes are going to become a thing of the past, that the livelihood that we’ve created for ourselves is going to disappear before our eyes.”

    \n\n\n\n

    It is a common question. Since the inception of Gutenberg, particularly its features that fall under FSE, themers have wondered if there would be a place at the table for them. If WordPress is moving toward a grander page-building experience, where do themes fit in? If users can change the layout or manipulate all of the styles, what is the theme’s job?

    \n\n\n\n

    These questions are finally getting some answers. We can see the real-world changes introduced in recent months. They paint a much clearer picture, defining the role of themes in WordPress’s future.

    \n\n\n\n

    “And for theme authors, themes are going to be so important in a full site editing world,” said McCarthy. “And one of the things I am so excited about is that there’s going to be a ton of what they’re calling…the idea of these hybrid universal themes that can work with, for example, template editing.”

    \n\n\n\n

    She is referring to a recent discussion that makes some distinctions between universal and hybrid themes. Essentially, universal themes would work in both a classic or block editor context, depending on what the user chose. A hybrid might support parts of the block experience but have a path to becoming a universal theme that fully caters to any user down the road.

    \n\n\n\n

    While this does not wholly address theme authors’ concerns, these are the building blocks that Gutenberg contributors are thinking about. First and foremost, they want a solid user experience. However, the discussions show that they also recognize that theme developers need to opt into new things at their own pace, supporting features as they understand them and learn how to implement them. This provides a path forward for traditional themes to transition into the new era and be built from scratch with new tools.

    \n\n\n\n

    Themes may well be more vital to WordPress’s future than they were in the past.

    \n\n\n\n

    New Tools Coming in WordPress 5.8

    \n\n\n\n\n\n\n\n

    The site editor and global styles features are not planned to ship with WordPress 5.8. However, the upcoming release is set to introduce some powerful tools for theme authors. This will be a pivotal moment for theme development companies that want to make their mark in the space. The right team with a forward-looking mindset stands to disrupt the market and make millions. And, there is room for the authors who just want to build cool stuff.

    \n\n\n\n

    It all starts with the new template-related blocks that should be enabled in the next major update. In particular, the Query block provides an alternative to what was formerly only possible via code and carefully constructed theme options. Coupling it with existing features opens us to a world of possibilities.

    \n\n\n\n

    For example, I chose a theme from the most popular list on WordPress.org that looked to have one of the most complex query and loop setups of the bunch. The following is the homepage of EnterNews:

    \n\n\n\nEnterNews WordPress theme homepage.\n\n\n\n

    Anyone familiar with theme development can tell you that it would take at least eight different queries to create that homepage design without looking at the code. The only way to build that and allow users to customize which posts appear is through a series of theme options (probably category-based dropdown select boxes).

    \n\n\n\n

    If the Query block ships with WordPress 5.8 as expected and is also enabled for any theme, this layout is suddenly possible directly from the block editor — no site editor necessary. Via block patterns, users can insert these “sections” of different Query blocks in their page and reorder them. However, it requires buy-in from the theme author.

    \n\n\n\n

    As I said earlier, theme authors have been slow to adopt block-related features as a whole. Undoubtedly, the system for the EnterNews homepage is already getting the job done. And, if it works for the theme’s current user base, there may seem to be little incentive to change.

    \n\n\n\n

    However, there are real benefits from a development angle to transitioning to a new system. The most obvious is that it requires little code compared to the PHP needed for building customizer options. Block patterns are little more than HTML with bits and pieces of JSON configuration in the mix. Developers can literally build them from the editor and copy/paste the code part.

    \n\n\n\n

    By writing less code, it lowers the potential for security issues and other bugs. Theme authors can also be less rigid in their design, allowing users to move pieces of the layout around.

    \n\n\n\n

    The Query block is not the only one slated for inclusion in 5.8 outside of a block-based theme context. The Navigation, Site Title, Site Logo, and more are ready to ship. Most such blocks are vital components for building an entire page. Theme authors could start handing over the tools for building complex landing pages on launch day this July.

    \n\n\n\n

    Stepping Stones

    \n\n\n\n\n\n\n\n

    Not every theme author needs to step up and attempt to revolutionize the theme space — though I am looking forward to those who do. Others might want to take a more measured approach. FSE is a set of many sub-components, some of which are shipping with WordPress 5.8. Many of these do not require developers to opt into them. They will “just work.” Sort of. Mostly.

    \n\n\n\n

    Users will be able to switch to a template-editing mode directly from the block editor. From there, they can create entire page templates of their choosing. Theme authors can either stand in their way by not styling for blocks or make the experience more enjoyable.

    \n\n\n\n

    The widgets screen and customizer will allow end-users of traditional themes to insert blocks in any of their sidebars. Some theme authors will need to account for this in their designs. The HTML output might throw off some layouts. For those who are not ready, they should disable block-based widget support.

    \n\n\n\n

    The most crucial tool, however, is entirely optional for theme authors. That is the introduction of theme.json support. The theme.json file is the cornerstone of future theme development. It acts as a config file for block settings and styles, allowing theme authors to set up the defaults for anything.

    \n\n\n\n

    In a nutshell, theme developers can set up any of the block options from this file, and those options are automatically handled in the editor and on the front end.

    \n\n\n\n

    Themes can also define defaults for block options that do not yet exist in the interface. The system will automatically output these as styles, even if users cannot change them in 5.8.

    \n\n\n\n

    Again, this means less code work for themers in the long run. While there will likely always be a place for custom CSS, some themes could essentially be built from theme.json configurations. That is not possible today. However, theme authors can start taking advantage of this tool.

    \n\n\n\n
    \n\n\n\n

    Themes are not going the way of the dinosaur. All of that overly complex PHP code work necessary in the past might just be. The shift is putting themes back into their proper place: design. Previously available tools such as patterns and styles coupled with the new pieces like theme.json and template-related blocks will be the backbone of the new system. It is all starting to come together.

    \n\n\n\n

    The transition will take some time, and each themer will need to decide for him or herself how much they want to take on. But, the time is near. I might even crank up the old code editor and start putting together a project myself. There has never been a better time to be excited about theme development than now.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 23:32:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WordPress.org blog: Become an Early Adopter With the Gutenberg Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10164\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"https://wordpress.org/news/2021/04/become-an-early-adopter-with-the-gutenberg-plugin/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4168:\"

    Copy by Anne McCarthy (@annezazu) and Design by Mel Choyce-Dwan (@melchoyce)

    \n\n\n\n
    \"\"
    \n\n\n\n

    In WordPress circles (whether it’s your local meetup, a trusted publication, or your networking group), you may have heard terms like Core Editor, Gutenberg, and the Block Editor used interchangeably over the last four years. And if you’re following contributor work on the project itself, you may also have heard some additional nuances—Gutenberg plugin, Gutenberg, or Block Editor. 

    \n\n\n\n

    It can get a little confusing, so let’s take a look at four terms that will help you find your way: 

    \n\n\n\n
    • WordPress – WordPress refers to the open source software but also to the community that surrounds it. 
    • Gutenberg – Gutenberg is the code name for a multi-year project to update editing areas for the WordPress software.
    • Editor – The editor refers to a section of the software that allows you to update content on your site’s posts and pages. 
    • Gutenberg Plugin – The Gutenberg plugin is where early work to update the editor is shared.
    \n\n\n\n

    The Gutenberg Plugin

    \n\n\n\n

    Now that we’ve cleared up the definitions, let’s talk about the plugin. When might you use it? What would you use it for? You can think of it as an early access program or a “WordPress lab.” The plugin is updated every two weeks, which means that bugs that have been reported are often fixed and that what you see changes rapidly. 

    \n\n\n\n

    The Gutenberg plugin also contains features that aren’t yet ready for their WordPress debut but are ready for curious users to test and provide feedback. This is a common practice that allows stable features to make it to your site in WordPress releases while allowing experimental features to be tested and refined. To get a sense of whether using the Gutenberg Plugin might be something you want to explore to get access to earlier features, check out the “What’s New” release posts and the Core Editor Improvement post series

    \n\n\n\n

    Do I Need the Plugin to Use Gutenberg?

    \n\n\n\n

    It depends on your comfort level! Generally speaking, it is not recommended to use the plugin on a site that has launched and is actively in use unless you’re very comfortable with the code side of WordPress. Fortunately, each WordPress release comes ready to go with multiple versions of the Gutenberg plugin

    \n\n\n\n

    But if you are a keen beta tester who loves reporting feedback, or you feel comfortable navigating how to opt-in/out of the experimental aspects of the plugin, here are a few reasons you might want to dig into what the Gutenberg Plugin has to offer:

    \n\n\n\n
    • Test new features and give helpful feedback. For example, you can use the plugin to help test Full Site Editing
    • Get early access to the latest & greatest while navigating when to opt-in or out of experimental features. 
    • Prepare for the future whether you’re a theme author, plugin developer, agency owner, etc. 
    \n\n\n\n

    Do you use the Gutenberg plugin and share feedback on GitHub? Thank you! This kind of feedback is what helps ensure stability in what’s shipped in WordPress releases. 

    \n\n\n\n
    \n\n\n\n

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 21:03:47 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: #2 – Anne McCarthy on How Full Site Editing Will Impact WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=115391\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/podcast/2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress?utm_source=rss&utm_medium=rss&utm_campaign=2-anne-mccarthy-on-how-full-site-editing-will-impact-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:68360:\"

    About this episode.

    \n\n\n\n

    So the podcast today features Anne McCarthy. Anne is Developer Relations Wrangler for Automattic. Her work is focussed on the WordPress.org space, and she is leading the Full Site Editing Outreach Program.

    \n\n\n\n

    Full Site Editing is an endeavour to make it easier to manage how your WordPress website works. It’s hoped that tasks which once required a fairly technical understanding of the WordPress code, will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed. These will become part of the Block Editor interface. Complexity replaced by simplicity; or at least that’s the goal.

    \n\n\n\n

    This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team trying to work out how this might look, how it should work and when it will be ready.

    \n\n\n\n

    We start off with an introduction from Anne and how she became involved with WordPress and the Full Site Editing initiative in particular.

    \n\n\n\n

    Then the discussion moves to an explanation of what Full Site Editing hopes to achieve. Which areas of a website are intended to be made available with Full Site Editing?

    \n\n\n\n

    We then get into the specific details of what constraints the project faces; and there are many points to consider. Backwards compatibility, accessibility and how commercial and free plugins feed into the project roadmap.

    \n\n\n\n

    Towards the end of the podcast we get into the process of how Full Site Editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’ future through endeavours like Anne’s Outreach Program.

    \n\n\n\n

    It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon.

    \n\n\n\n

    If any of the points raised here resonate with you, be sure to leave a comment below.

    \n\n\n\n

    Useful links.

    \n\n\n\n

    Full Site Editing is moving fast. Since the recording of this episode, there’s been some movement. To get the latest information and learn more, see the following links:

    \n\n\n\n

    Full Site Editing Outreach Program

    \n\n\n\n

    Full Site Editing for WordPress Overview

    \n\n\n\n

    Full Site Editing Go/No Go | April 14, 2021

    \n\n\n\n

    Full Site Editing Go/No Go: Next steps

    \n\n\nTranscript
    Nathan Wrigley [00:00:00]

    Welcome to the second edition of the Jukebox podcast from WP Tavern. My name is Nathan Wrigley. Our aim here is to create a podcast and transcript for people who are interested in WordPress and the WordPress community. We’re going to create one episode each month, for the time being, but that might change in the future.

    \n

    We’d love to hear your feedback about the podcast. Perhaps there’s a subject that you’d like us to feature, a person who you think would make a great guest or anything else that comes to mind. We’re very open to suggestions so long as it’s to do with WordPress and the wider WordPress community. You can do that by going to WP Tavern dot com forward slash contact forward slash jukebox. And there you’ll find a contact form for you to complete. Once again, WP Tavern dot com forward slash contact forward slash jukebox, and thanks in advance if you reach out.

    \n

    Okay, so the podcast today features Anne McCarthy. Anne is a developer relations wrangler for Automattic. She focuses on the wordpress.org space and is leading the full site editing outreach program. Full site editing is an endeavor to make it easier to manage how your WordPress website works. It’s hoped that tasks, which once required a fairly technical understanding of the WordPress code will become available to all. Creating headers and footers, deciding what information to pull from the database and where it should be displayed.

    \n

    These will become part of the block editor interface. Complexity replaced by simplicity, or at least that’s the goal. This, as you might imagine, is not an easy task. Now that WordPress is pushing beyond 40% of the web, there’s a lot to consider, and that’s what Anne is doing. She’s part of the team, trying to work out how this might look, how it should work and when it will be ready.

    \n

    We start off with an introduction from Anne and how she became involved with WordPress and the full site editing initiative in particular. Then the discussion moves to an explanation of what full site editing hopes to achieve, which areas of a website are intended to be made available with full site editing.

    \n

    We then get into the specific details of what constraints the project faces, and there are many points to consider. Backwards compatibility, accessibility, and how commercial and free plugins feed into the project roadmap. Towards the end of the podcast, we get into the process of how full site editing is moving forwards, who is making the decisions and how the WordPress community can get involved in shaping WordPress’s future through endeavors like Anne’s outreach program.

    \n

    It’s a very timely episode. Many of the areas discussed will be landing in WordPress soon. If any of the points raised here resonate with you, be sure to head over and find the post at wptavern dot com forward slash podcast, and leave a comment there. And so without further delay, I bring you Anne McCarthy.

    \n

    I am here with Anne McCarthy, Anne welcome to the podcast.

    \n
    Anne McCarthy [00:03:55]

    Thank you so much for having me.

    \n
    Nathan Wrigley [00:03:57]

    You’re very, very welcome. Now it’s a regular question, I often ask them at the beginning of such podcasts, but I think it’s important that we lay the foundations of who you are and how you’ve come to be on the podcast.

    \n

    Would you mind giving us a little bit of backstory about how it is that you came to be on this podcast today? What’s your relationship with WordPress and perhaps tell us what the role is that you have currently?

    \n
    Anne McCarthy [00:04:20]

    Great question. It’s hard to succinctly sum up who I am, but I’ll give it a try. I first got started with WordPress in 2011 as a freshmen in college, and I was using blogger for many years before that to get out all my feelings on the internet as a millennial does.

    \n

    And eventually, it turned into three years working at the university and their ITS department, which led me eventually to finding out about Automattic. In 2014, I joined them as a happiness engineer and very recently, almost exactly a year ago, switched into a developer relations wrangler role focused on the wordpress dot org community. And currently part of why I’m here today is cause I’m spearheading the full site outreach program. So I’m here to talk about that and talk about full site editing and all the fun stuff that’s happening. Cause I know it’s a lot to keep up with.

    \n
    Nathan Wrigley [00:05:08]

    Yeah, there is a lot to keep up with, but it is a really interesting episode.

    \n

    There’s an awful lot to say when we’re recording this, in the month of April 2021, this episode will probably air shortly after we record it, and there’s an awful lot that has been going on, but there’s an awful lot to happen during the course of the rest of this year. And we know that there’s a lot of change coming.

    \n

    First of all, just rewinding the clock. Would you just like to try and sum up what the ultimate ambition of the full site editing project is? I know that there may be things about that roadmap which change things you wish had been included that probably won’t get included, but just sum it up. What is the full intention of the project?

    \n
    Anne McCarthy [00:05:48]

    That’s a great question. I would simply say it’s to empower users more and bring WordPress to the future. There’s a reason these projects are taking so long. It really is about planting seeds for decades to come. And it’s something that Matt, the co-founder I really admire in him as he thinks about those decades.

    \n

    And so this is a part of that push into using blocks as a paradigm into empowering users, more and bringing WordPress to the future.

    \n
    Nathan Wrigley [00:06:10]

    Okay. So it’s all about creating websites with blocks. What kind of areas is it getting into? What is it going to empower us to do? What things in the future will we be able to do inside the block editor?

    \n
    Anne McCarthy [00:06:24]

    Yeah, so everything you can edit any part of a global style on your site. So if you want to have every font color, be one thing, you can quickly change it. Even by block, you’ll be able to change things by block, which is really exciting to have a global point of view of your site, and to be able to actually customize it to your liking unlocks things.

    \n

    There was recently a test that we did around, the 404 page. Normally that’s something that a theme author decides. And you’re locked into it, and if you want to change it, you have to go digging through the code. With full site editing, you can actually go straight ahead and customize it to your liking, make it real fun, make it really clever and make it really serious.

    \n

    Like you can do whatever you want with that. So a lot of template editing that normally you wouldn’t have access to. So even editing, like if you land on your blog page, you can actually adjust how that looks, what shows up, what doesn’t, in a really powerful way. I try and talk about the tangible aspects of it, but there’s also a lot underneath the hood.

    \n

    So there’s a lot of design tools for theme authors as well. That there’ll be able to hook into that ideally will make it much easier to create themes and to focus more on the aesthetics and the experience rather than on coding up the basics. So there’s a lot that I think across the board, whether you’re a user or a theme developer or a plugin author, there’s a lot to be excited about in the future.

    \n
    Nathan Wrigley [00:07:34]

    One of the things that keeps coming on my radar is the comparison between what we’ll call page builders, these plugins, or perhaps it’s a theme we’ve seen lots of commercial and free products available in the WordPress community, which enables you to achieve many of the goals that the full site editing hopes to achieve. So templates for this templates for that. Headers, footers, you can have global color palettes and all of the things, and it can be done within their interface. I guess the thing about those products is they are created by a team of developers and they are released presumably when they’re mature and they’re ready to go and the company believe that it’s now suitable and people will purchase it or use it and deploy it. Now you’ve got a very different set of constraints that you have to work within. And I think highlighting what those constraints are, would be really useful to give people some context as to why it isn’t where some of these other solutions might be, because you’ve got many, many things to be thinking about in the background. So if we just get into that, maybe one thing at a time, do you want to just rattle off a list of things that you’ve got to be concerned about that perhaps we didn’t know you needed to be concerned about.

    \n
    Anne McCarthy [00:08:48]

    Yeah. I’ll start with the most obvious ones, which is we’re building things so that other people can build upon it, including page builders. So I think that’s something that often gets overlooked. Like some of our audience members are these page builders. So it’s an interesting dynamic there because it really is about that foundational level. Anyway, 40%, the internet, just the diversity of ways that people use WordPress, whether it’s multi-site or what have you, there’s a lot to consider.

    \n

    Then you add in internationalization, which is part of like future phase four. Accessibility is a huge issue. Something that really needs to be thought about including backwards compatibility, and that’s another. A lot of page builders could easily say, hey, update to this version after this, x Y and Z will no longer be supported. Doing that with 40% of the internet is huge.

    \n

    Just recently actually, I did some outreach because in 5.2, which is many releases ago, some smaller APIs were deprecated. We’re finally removing them from the Gutenberg plugin. And there were still three plugin authors who were using these APIs, and I reached out to them, let them know and made sure they were aware that this was coming, but that’s something that a page builder is not building the same APIs that are going to be used across the internet in the same way.

    \n

    So there’s a lot of just scale that I think has to be thought of, which is partly why things get pulled from releases until they’re ready. But it’s also why sometimes we have to include things in releases in order to get feedback in order to, hear from people what needs to be improved and what we haven’t thought of, because inherently you can’t talk to 40% of the internet at once.

    \n

    You just can’t. So part of that is that dance of, hey, this is coming up, hey, this is what’s new. And seeing how 40% response. What did we miss and how can we do better next time? And the way I think of it as it’s this nice chance with every single release of thanks for making me better. Thanks for making the web better.

    \n

    And when the feedback comes in, that’s what it is. Whereas I think page builders and site builders have a unique position where they might have a very large user base, but it’s not going to be 40% of the internet. You know, there’s just a huge difference there.

    \n
    Nathan Wrigley [00:10:42]

    So some of the constraints that you mentioned there were the audience size, 40% of the internet, you’ve got to be mindful of the fact that they are going to expect things to break as little as possible.

    \n

    You’ve got accessibility and so on. And there were probably two or three other things that you mentioned there as well. In real terms, how does this constrain the development? How do these factors slow you down? Do they have a material impact in the amount of time it takes you to do things because you have to ask for more consultation or you have to receive feedback from various people before you can get the green light to push that and move onto the next thing.

    \n
    Anne McCarthy [00:11:18]

    What you described is very, very accurate. I’ll give a specific example. So the widgets editor, which is bringing blocks to the widgets editor. Originally, it was slated for 5.5. I’m pretty sure. And it’s gotten pulled from 5.5 from 5.6. Wasn’t even considered for 5.7 and is now hopefully going to be slated for 5.8.

    \n

    And a big part of this was originally, it was just going to be a separate editor, separate from the customizer and with feedback, it became very clear, customizer is a key interaction that we need to prioritize. How do we bring blocks to the customizer, which is a whole unique experience to think about.

    \n

    And this is where the 40% of the internet comes into play, right? Because we understand that you’re releasing new things, that’ll cascade to new people. But what about the person who’s had a site for five years? What benefits can we bring to them? Not just brand new users who are going to be using WordPress for the first time, because the majority of the users are people who have been using WordPress and who have trusted the community and the people building WordPress, with their site, with their, who knows what is their story, their business.

    \n

    So there’s a level of thought that has to go into play with that, and I think part of it is why Gutenberg, the plugin does bi-weekly releases. And I think there’s about 300,000 active installs, which is a much smaller compared to the 40% of the internet. And it allows us to test things out, have experiments, go do outreach, like the outreach program I’m running, get the feedback that we need, reach out to specific plugin authors. And in the case of the widgets editor, it became clear with each release, it just wasn’t ready. It wasn’t in the place that it needed to be. It wasn’t as stable as it needed to be. It wasn’t refined, it wasn’t intuitive enough.

    \n

    And in many ways, one of the things that slowed us down was wanting to have it in the customizer, which I think is a huge win. It’s a main interaction that people are used to. It’s something that people trust. So how can we go where people trust and extend that and provide an experience that they can also in the future trust and have actually unlock more things because when you’re able to use blocks in the customizer, you’re now able to add way more stuff than you would be able to and do way more things than you’d be able to when it was just the customizer, which is pretty exciting. So it’s both like trying to get user trust, but then also providing value at the same time and going to areas that people feel familiar with and slowly incrementally having stepping stones towards this eventual idea of full site editing, where everything is through a block paradigm, and you’re able to extend your site, however you want.

    \n
    Nathan Wrigley [00:13:35]

    Do you ever get feedback from people who use these tools? That sort of question I’m trying to frame is something along the lines of. How do you cope with people who wish that it were already something that their current tool can do? Take the example of a commercial page builder. There’s several, you could pick the names of, and they’ve got this tool and they’re quite happy with it. And it does all of the things that they would wish to achieve. And then they come over and they look at the project that you’re involved with, the full site editing, and they see a real difference. They see that this tool over here, which I’m familiar with that works. I’m very happy with it and it works and it does all these things that you are, you’re still trying to put together. How do you bridge the gap between what their expectations are and what you’re trying to build? Do you have conversations with people? In fact, you even download some of these commercial products and check them out and see what it is that people get excited about, about them.

    \n
    Anne McCarthy [00:14:33]

    I definitely check them out. I actually love, love, love hearing about new plugins because I do, I actually test full siting every single day. I have been, it’s been a challenge of mine like last couple of weeks, but I do also love when people flag things and say, hey, this new page builder or this new plugin provides a really interesting experience.

    \n

    One of the recent ones, I actually went back and checked out was the Iceberg plugin that simplifies the Gutenberg editor. And I recently checked that out again cause I was actually talking to someone in a completely different, it was a developer relations, a Slack community, and I have an alert word set up, anytime someone says, WordPress, I love doing that’s my favorite little hack, life hack for everyone just joined a bunch of communities and then set up alert words. Yeah. He was just like, oh, man, this editor sucks. I don’t know what to do with it. I immediately reached out to him and said, hey, no pressure. If you’re game to talk about this, I’d love to hear your concerns are what features are missing or what has you blocked? And I ended up sharing the Iceberg plugin with him and then went back through and tried it out again. And I bring this up because I think something to be said is that, the hope is that WordPress can provide common tools so that people, for example, aren’t locked into one single page builder.

    \n

    Like you can move around, and I get the rush to say man, I want to use the core system, but right now I’m relying on this page builder, and we’re frustrated with that too. There is a sense of urgency and Matias and Josepha touched on that in a WP Briefing podcast very recently that there’s this urgency of getting features out to people now, because we know that it will benefit them.

    \n

    And I think that as a really exciting position to be in. I know where we’re coming… It’s going to come, I promise, hang in in there. Which I think is a neat space rather than this impatience or hesitancy, which I also think happens, but I do seek out feedback like that, and I do enjoy talking to people whenever they explicitly have a bad experience. And one of the best questions that I ask is, what features about this page builder do you really like, what would you want to see in the core experience. And then from there, I can be honest with them and say, oh yeah, we’re working on that. That’s going to be like, here are a couple of Github issues that you might be interested in that this is the design. This is whatever it is. But then on the flip side, There is also going to be a role that plugins have to play into the future. Same with the Gutenberg editor right now, and the core editor right now with Iceberg, for example, like where it simplifies the editor.

    \n

    I imagine in the future with full site editing, there will be both plugins that really open up the options in the settings, and I also can imagine there’ll be plugins that really simplify things and make it really easy for certain users to use it and people can pick and choose and customize as they’d like, same to what we see with plugins now, anyway. And the biggest thing I often say to people whenever they talk about page builders, I’m like, that’s fine, if you’re not ready to switch, that’s totally fine. But at the end of the day, when you’re starting with new client or you’re starting a new site, or you’re redoing your site at some point, you’re going to have to learn something new, and it’s better to learn the sure thing. Doesn’t mean you only have to learn this your thing. I can imagine a world where people have these like hybrid experiences for some time, but the hope is that we can provide common tools so that people are not locked into one single page builder. Ideally the page builder is actually build alongside full site editing and the editor tools that we have. And then from there, people can customize to their liking either having more options show up or having less, and I do love hearing, what do you want? What’s missing? Cause it helps sharpen our thinking, and oftentimes I hear about things that I would never think of. That’s the beauty of having 40% of the internet is it’s like, whoa, I never thought about that. You’re right. That is a really interesting use case.

    \n

    Like someone recently a good example with the custom 404 test, as part of the outreach program, we had people build fun, custom 404 pages and someone reached out and said, well right now, it’d be really awesome to have different templates depending upon how the person landed on the 404, having some level of customization of what you present.

    \n

    So maybe you have four different 404 templates and it cycles through them. They were like, is this possible? I would want to put a feature request in. And it was pretty easy for me to say, you know what? That probably will be done by a plugin. So, that’s a great idea. That’s a really interesting use case, and I do think that’s something that’s desired, but this is also where plugins will still play a role. And being able to tell people that, so that expectations are in line as much as possible, I think is really important. There are going to be aspects that will not be covered by the site editor and that’s good.

    \n
    Nathan Wrigley [00:18:39]

    Commercial page builders if you like, the process which I often see is they’ll release a statement out into their email list or what have you, and they’ll describe the features that they have been working on that have now been released and so on. And so in many cases you don’t really know what is happening unless you probably take great interest in their team and what have you. So I’m curious to know what is the actual process that is going on in the background that iterates your project, the full site editing project. How did the little leaps forward get made? Who is involved? How can people get involved? How can they find out what it is that you’re working on currently? And ways in which they can help you. And there’s a lot in that question, so probably the first thing I’ll just rewind a little bit and say, could we just concentrate on how the full site editing, the team that’s behind that, how does it actually work? What is it that you do? How do you communicate with each other? How do you ensure that things are being built that people want to have in.

    \n
    Anne McCarthy [00:19:38]

    Yeah, that’s a great question. To start, I would say Matias is kind of, I think Josepha described him as the spark behind Gutenberg, and I really love that title, so I’m going to use it, reuse it. He is the project architect. So imagining multiple steps ahead, thinking about where we need to go, thinking about truly the infrastructure of what’s being built, APIs, is design tools, all that sort of stuff. And really thinking about based on many, many, many years of experience in the WordPress community, what do we know for sure that people need? And then from there, a lot of it is just this back and forth with the community, releasing stuff, doing calls for testing. The outreach program is a big part of that. So getting feedback from the outreach program, but one of the things that I recently came up that I am working on doing a better job of communicating is the outreach program is bringing in feedback, but that feedback and the high level, top feedback items are likely going to be different than what are the top issues to solve for full site editing if that makes sense. So there’s the feedback there’s actually using the tool, and then there are, these are the things that have to be solved and sometimes there’s overlap where sometimes some of the feedback becomes a top issue. But not all the time. And that’s partly because the MVPs is a work in progress.

    \n

    And as those things get clear, for example, I think after April is gonna be a jam packed month, but once there’s that decision point that go no go date, there will be a time where the full site editing outreach program can start switching into a more narrowed experience of testing. And I’m really excited for that, where it’s okay, here’s the MVP. Here’s what we’re thinking for 5.8 which are two separate goals, by the way, there’s like building MVP, and then there’s, what’s going to go in 5.8 and I think that’s important to keep in mind as well. And yeah, one of the biggest ways that we get feedback and figure out what needs to be done next, especially now that we’re in a more refinement period is through the outreach program is through people filing feature requests and just doing as much testing as possible. Ideally this is also where a theme authors start exploring what it’s like to build block-based themes and give feedback on that experience. So, yeah, there’s a lot of ways that the feature development goes on. I will say a lot of the work happens in Github and then every, probably I think, a two month cadence, there’s some high-level posts about full site editing, whether it’s about a specific release or just like a check-in post, or if it’s about FSE and themes. There have been various posts over the last six months and I expect to see a lot more in the coming months leading up to 5.8 so that people are aware and they don’t have to pay attention to the day to day with Github. Another really good post to keep an eye out on is the what’s next post. And that’s posted each month and kind of defines, this is what the team is working on next.

    \n

    And a lot of that does come down to, what issues of have come up in testing, what issues does Matias think are high priority to solve? What else is remaining in the MVP that’s been discovered previously? And one thing that I think is really easy to miss with full site editing, and it almost feels weird to just say. This monolithic full site editing when actually it’s this really diverse set of projects, and each is further along than others.

    \n

    So there’s this very interesting battle that goes on in my mind, whenever I talk about full site editing, cause what I really want to do is talk about a specific piece of full site editing, but that also can get too granular in a way that can be really confusing. But it’s something I like to mention where if you try out the experience and one part seems really good and one part you’re like what’s happening here, that’s on purpose. Because at the end of the day, I don’t expect the entire experience to go into 5.8. I expect certain things to fit in and for there to be a drip campaign, probably through even the 6.0 release, who knows, but definitely through the 5.9.

    \n
    Nathan Wrigley [00:23:02]

    Let’s say somebody is listening to this and they’ve got no experience contributing to any software project, and they’re interested, they like the idea of full site editing and they’ve got a few things they’d like to get off their chest and they want to be of some help. What are the most effective things that can help to push the project forward right now? That could be an answer as to which website to go to, and get involved in, or it could be, well, actually, no, we need help about this specific thing right now over the next month or two, you can take that in any way you like.

    \n
    Anne McCarthy [00:23:35]

    I mean the simplest answer that I would love to see is people joining the Core Editor meeting. If you can. If you can’t reading the notes and starting there, which you can see them posted on make.wordpress.org backslash core, there’s actually a tag for the Core Editor meeting. But I would start there, and I say that partially because we’re in a pandemic. Most places in the world, you can’t meet up in person. So getting connected with the people behind this work before you step into Github, before you step into anything else, I think is really important. There are humans doing this work. There are humans who are listening, who are caring, who are staying up late, thinking about problems. So join the meetings if you can, if you can’t asynchronous contributions are very welcome. So if you can comment on the post with a question and have it answered, but I want to start there with the human element, especially right now. So my answer, you’re listening to this many years in the future, hopefully we’re beyond this, but for now I really want to connect people with other people. And then from there, start as simple as just testing, get a test site up, try things out. There’s another make site, which is where we communicate in the project, make.wordpress.org backslash test. That’s where I post a lot of the stuff around this outreach program. So if you just want dip your toes in, that’s a great place to start. It walks you through, there’s instructions on how to set up everything, what to use what to pay attention to, how to actually go through the call for testing. It’s very purposely constrained right now, so that it makes it easy for people to jump in. But if you’re more advanced, I would just say, start scrolling th through Github. Look at different labels. There’s a really good label that I check regularly, the overview label. So if you want to get a sense of the top issues, or I guess the summarized issues, the overview label is my jam. I love going through that and seeing what’s new and also just seeing the status of things. It’s a really great way to dig into the project, but not too deeply. And if you’re someone who’s been around WordPress for awhile I would say starting to, try to create a block plugin or build a block based theme.

    \n

    We’re going to need to see the community in the future, really adopt these things and starting early while things are almost refined, I think is super helpful because it helps us define them in a place that there’s early enough for things to shift. Getting that feedback is pretty key so that we are creating tools that you can actually use, because the whole point is this is all being built, so other people can use it. Other people can’t use it, and we don’t know that. That’s a problem and it’s hugely helpful and valuable to do that.

    \n
    Nathan Wrigley [00:25:48]

    You highlight the fact that you obviously need help with the things that you just described. All those technical areas. If I was to be listening to this and I am a more casual user of WordPress, I use it to create blog posts and I’m good at writing, but I’m not really into the code, and that side of things is of no interest to me, are there avenues that would still be open to me to assist with this?

    \n
    Anne McCarthy [00:26:09]

    Yeah, I would actually say the testing should be pretty basic enough that you can dig into it. I’m saying this as the person who writes the test, I purposely try to make them very contained, so anyone can jump in and if they want to spend five minutes, ten minutes, that’s great. You don’t need to spend hours on this. Some people do, some people really like to go deep with it, but the whole point is that it’s something that anyone can jump into.

    \n

    And even if a call for testing is passed, it’s still great to go back through previous calls for testing and I actually have videos as part of the calls for testing so that you can see me walk through it. So if you get stuck, if you’re reading my instructions and you’re like, what is this person saying?

    \n

    You can watch the video and watch me go through it. And even just watching that and giving feedback and saying, hey, this is really weird, or, I really like when my page builder does this , do you all have plans for that? And another thing that’s actually coming up that I plan to do that anyone can participate in is another big call for questions. So there was a lull in testing. I was waiting for a new Gutenberg release and a couple of months ago, I did just, anyone could ask anything about full siding and I would find the answer for it. And we ended up getting, I think it was 46, 47 questions, which was fantastic. And I grouped them into different chunks, answered them, all, publish them, pass them on to the documentation team, the marketing team, but that allowed people where if they don’t have time to test, but they’re nervous about it, or they’re curious about it or they’re excited for it, or they’re impatient, whatever their emotional state is. Ask any question and I’ll answer it. And I plan to do those, another round of that definitely in the future. Probably at the end of April, and if that’s of interest paying attention to the, make.wordpress.org backslash test as the best place to pay attention or in Slack there’s in wordpress.org Slack, there’s a FSE hyphen outreach hyphen experiment that you can join, and you can just sit back and listen to me update you as I go, but that’s also a great way is asking questions, sharing concerns. That is actually hugely helpful. It sets the foundation for documentation. It helps the people building it know what the points of confusion are likely to be. So yeah, if you just want to ask a question by all means that’s a very easy pathway to jump into.

    \n
    Nathan Wrigley [00:28:10]

    Thank you. I’ll be sure to take those links off you before we finally hang up the call today and we’ll make sure they make it into the show notes. Do you feel that you have. Enough people giving you feedback to justify the decisions that you made. I mean obviously in any software development, the answer I guess, is going to be, well, it would be great to have more. Do you feel that there is enough people assisting you at the moment so that you can be confident in the direction that you’re going? We’re doing this, we’ve got some feedback, but curious whether or not, if we have more feedback, we’d go in a different direction or not.

    \n
    Anne McCarthy [00:28:44]

    That’s a great question. I am always someone who wants more people involved. I don’t think I’ll ever be happy with the numbers. Right now we have between 10 to 15 people with each test. And one of the things I actually recently consulted some of our design team with an Automattic, and I asked, I said, with usability testing what kind of numbers do you look for when you all did this with 5.0 what did you look for how many people? And a lot of times I got feedback saying, Oh my gosh. Anne, five to 10 people, it was great. You can calm down. It’s fine. I’m like, no, no, no. I need like 50, you know, it is this weird sense of no, no, I want more and more and more. And I can tell you, I don’t think we can ever get too much feedback, especially if it’s relevant and its… I mean, obviously there’s like irrelevant feedback where it’s make WordPress like Facebook. I mean, whatever, it could be something outrageous. That’s not terribly helpful, you know? But imagine if we just got completely inundated with feedback in the outreach program, that would be amazing. My goal, my personal goal that I’ve been trying to say outwardly in hopes it encourages people is I would love to have 20 to 25, really dedicated, diverse testers, each release and not each release each call for testing. That’s my ideal. And the reason I mentioned engaged testers is because I want people who are along for the journey a little bit,ideally. Obviously I think it’s great if people jump in and out, I think there’s something to be said for really new perspectives and I love when people comment saying, hey, this is my first time using full site editing and here are my thoughts. That’s excellent. But the idea of quality over quantity, I think is really key, for this phase of testing. I think when things actually get merged into core and certain aspects get merged into core, that’s when things can open up and be a bit more, having 2000 people give feedback, but yeah, I don’t think there’s ever enough testing and honestly, I do worry about that.

    \n

    And it’s something, one of the things I’ve been very intentional about is reaching out to the accessibility team to try and get people to help give feedback so that we’re thinking about accessibility needs and reaching out to folks in the polyglot space so that we have translations of these posts so that people can participate. I only speak English and I had been in countries where all of a sudden, you see something in English and it’s like this it’s like such a relief to have a menu in English. Like, Oh yes, this is so nice. And I want that outreach to happen because I think sometimes the software development I’ve seen this like arrogance of, oh well, we’ll just be doing the work and if they’re curious, they can come to us. And I actually think this is one of those situations where we need to go to them. And that’s what the outreach program is all about is meeting people where they are doing the outreach. Bringing people along with us and learning from them as we go. Part education, part feedback loop, and part, hey, here’s a really easy way to get involved and walk you through what’s coming.

    \n

    I would love to see more engagement from folks who are non-English speaking. We’ve had Italian, Spanish and Japanese translations very consistently. I’m so grateful for the people who’ve done that. I think it’s just, oh, I’m so bad at languages that it just amazes me. I also think everything looks better in a different language. So it’s neat to see my own words translated, which is a kind of a wild experience that I never thought would happen, but I’d love to see more engagement. In those polyglot and local spaces, because the last thing you want is for all of a sudden it to land and only a specific audience benefits or sees this or understands it or knows what’s coming, right. There’s a big responsibility for 40% of the internet. And I’ll never forget the day that Matt at a State of the Word said that non-English downloads passed English downloads. And so when you think about that 40% I think a lot of us English speaking, Western world think of a certain type of person, but really it’s much more expansive than that.

    \n

    So I’ve been really hammering the polyglot space as much as I can, as much as volunteer time people can give to translate those posts and to try and get feedback. But it’s something that I’d love to see more of.

    \n
    Nathan Wrigley [00:32:22]

    I’m curious actually, if you’ve got a really nice concrete example of an instance where somebody’s feedback turned into something actual. It was realized off the back of a piece of feedback, which you passed on to the team, and somebody reached out said, I would like this. And you were able to provide this, Hearing those stories. Ah, it is possible.

    \n
    Anne McCarthy [00:32:44]

    Yeah, I can think of a really specific example that I was actually thinking about this morning when I was making coffee. A blind developer, I got connected with her through actually posting in a different Slack community. So, you would not believe how many Slack communities I’m a part of and how much I try to drop links and engage people in different spaces. And I got connected because someone said, hey, I have a friend she’s blind, she’s a WordPress developer, and she cannot use full site editing. And I was like, whoa, tell me everything.

    \n

    How can I get in touch, and got in touch, her name’s Taylor. And she very kindly jumped on for about 30 minutes. We recorded the session so that I could pass along the feedback. She just walked me through the experience of both using of using two different screenreader tools. And. It was fascinating. It was awesome.

    \n

    We found so many bugs. It was one of those things where I think the biggest, the most jarring one that I keep thinking about that I actually want to see if we can get some development in on ASAP, is that the save button, and the saving process for full site editing right now is pretty non-intuitive, it’s a little bit clunky and it’s something that’s come up with sighted folks as well. What is the saving process, how does it work? But for people who rely on screen readers, it’s really impossible to save. Like you basically have to search for the phrase save in order to find the save button because there isn’t an aria label. And so that’s a big one that came up and on top of that in just the session, I worked with her another piece of feedback that came up with the columns block.

    \n

    So if you have columns and you’re imagining, let’s say two columns and you are using a screen reader, it doesn’t tell you which column is which. So all of you here just announces column, column it doesn’t say like column one or column two or right column or left column. There’s no identifier for how to navigate.

    \n

    And so that’s actually, there’s a PR right now that’s underway. I actually just filed it for the accessibility team last week to see if someone could review and someone already stepped in to offer some thoughts to fix that, to actually announce, I think they’re going with like column one and column two and column three rather than right and left due to internationalization. And that’s going to be a huge improvement because right now Taylor was just like, columns block is so confusing. This is almost useless. Another one is the spacer block. I’d love to hear. If you use a screen reader, I’d love to hear your experiences with the spacer block, because that’s a really confusing block for people I’m relying on screen readers.

    \n

    And I opened up an issue for that, and we’ve had some discussion back and forth about improvements that need to be made there as well. So those are some of the, and I can tell you, there’s probably about. I think six issues I opened just from that 30 minute conversation. Some are like a work in progress, but this was very recent and something I keep thinking about, especially as we start to refine things and decision points come up because we don’t want to release something that has such blatant problems with it.

    \n
    Nathan Wrigley [00:35:24]

    It marks a very big change for WordPress this last couple of years have been really extraordinarily different, the experience that we’re all going through, but in particular, around full site editing How do you calm people’s fears that things in the future are going to be going in the direction that they wish it to go in. So, as an example, let’s imagine that we’re a theme developer. We may be getting concerned that themes are going to become a thing of the past that the livelihood that we’ve created for ourselves is going to disappear before our eyes. People concerned that the way that they’re working with at the moment, the way that they’ve taught their clients to work, this is how WordPress works, and this is how you can manage your website for yourself, and so on. What do you say to people? What is the golden light on the hill? The thing that you draw attention to, to say, look, all of this will be worth it. How do you keep people focused on the positives and not worrying about all the different things that are going on left right and center?

    \n
    Anne McCarthy [00:36:20]

    Yeah. The biggest thing I say is there’s a reason that the last milestone is gradual adoption. And one of the things that I also love to talk about is the fact that full site editing is a bunch of sub projects actually gives us the flexibility to ship reliable items rather than shipping it all at once.

    \n

    Yes, they’re interdependent. Yes. And some cases they rely on each other and there needs to be probably a certain order or approach to releasing things. But by having so many different tools that provide value. It actually gives us the ability to step back and say, okay, what’s ready. And that should be a big relief to people.

    \n

    It’s not like there’s going to be this on-off switch full savings here is taking over your site. Good luck. That’s not going to happen. Gradual adoption is the game plan. It is the final step. And I imagine right now, a gradual adoption as a milestone is not fleshed out. But I imagine, especially you have to 5.8, that will become a much more fleshed out milestone in the same way you see other milestones, I think, Josepha has talked a lot about this, and I really love the way she basically says we want to fulfill the WordPress promise. We want to keep that trust and we want to release things in the best state possible while at the same time, recognizing that there’s this urgency to offer tools that people are just lacking right now, at some point, we need to get those out in front of people and to provide value and making that determination is super tricky. But the good news is like I was saying earlier, we have that flexibility built into the fact that these are all sub projects and that many of them can be shipped independently.

    \n

    And for theme authors, Themes are going to be so important in a full siding world. And one of the things I am so excited about is that there’s going to be a ton of what they’re calling. I .. the idea of these hybrid universal themes that can work with for example, template editing.

    \n

    So going and being able to edit like your single page template, your homepage template, or your 404 template. You could have a theme, that’s a classic theme or traditional theme, whatever you want to call it. And you could use template editing. You could update your theme to hook into the tools have been made to allow for template editing.

    \n

    Same thing goes for global styles. You could just use one part of the full site editing machine, so to speak and all the projects and slowly integrate, more and more, as you want to, like theme authors will have a lot of control of what they opt into and what they opt out of. And for us building it, it’s on us to make it so desirable to opt in.

    \n

    Right, and that’s where the gradual adoption, so many pathways are going to be created. And I’m actually really excited to see people move from this framework of anxiety to looking out across the space and going, hmm, what can I use? What is it that I hear from people all the time that I can integrate into this and moving into an exciting creative space rather than thinking, hh, I got to get caught up, I’m behind. This is so bad. Like that kind of feeling, which I hear from a lot of people was like, I don’t have time to get up to speed. And the ideal is that we’re actually providing tools that save you time and add value. And that makes me really excited. I fully understand the fear. I fully understand the fear.

    \n

    I don’t say that lightly. As someone who is thinking about like how it’s going to land in 40% of the internet and who every single day is talking to people who are giving feedback about, what’s not quite there, I don’t spend a lot of time talking to people who are just like, oh, I’m so excited about this.

    \n

    People don’t go out of their way to tell you that you often hear from the people who are upset or something’s missing or promises broken or whatever it is. And it’s something I think about a lot. And I understand why there is panic there, especially with livelihood in the situation that we’re in.

    \n

    And I have a lot of empathy for that. And I think in the future, and one of the things that I think you’ll hear from leadership and you’ve, everyone’s priority heard this from leadership. It’s just that we are purposely moving slowly and things get pooled for a reason. And it is to fulfill that promise and to think about backwards compatibility, but at the same time, balancing that with wanting to provide value for users and empowering users, especially in a day and age, when a lot of tech companies are actually taking away a lot of the power, whether it’s in the form of privacy or what have you.

    \n

    I think open source and the way WordPress is working is actually trying to resist that and really focus on giving everything we can to the user, to build the site that they want and to have the experience that they want. And also to free them up, to focus on what the site actually gives them, whether it’s a business or platform.

    \n

    I think that’s the part that makes me… that hopefully makes other people excited. And that makes me really excited.

    \n
    Nathan Wrigley [00:40:26]

    Speaking to that. You’ve done an incredible job answering all of my questions and you’ve obviously got to wear the Automattic hat during a discussion like this. I’m curious if we cast away the Automattic hat just for a moment and we ask you personally, what in the next six months to a year, what’s the one single thing, the thing that you are most excited about, the thing that you most want to see happen, the thing that gets you personally switched on about the project.

    \n
    Anne McCarthy [00:40:54]

    It’s a great question. I would have to say block patterns, because we’re talking about all these tools and features and things coming along, but ultimately as a user, it’s like, what can I do, and what can I do quickly? And block patterns will really be the glue that ties together all these projects. You can insert a block pattern, manipulate it as you want to. And when you’re manipulating it, you probably won’t be thinking about the fact that you might be using global styles or that the block pattern is relying on block styles or whatever it is.

    \n

    But the power of that. And the promise of that, I think is just such a high impact, such a high impact feature that will really be like a cherry on top. And we’ll bring together a lot of the things that we’re talking about in a way that will be really tangible. And especially in this world of, you know, we’re not able to gather in person we’re not able to have those moments.

    \n

    I think having something that is easy to understand almost the point of being, so intuitive that it’s like, why didn’t we do this years ago? That’s what I want the feeling to be. And that’s when I had someone in design, tell me this one time. And it always stuck with me as like the best ideas are the ones where you’re like, well, no, duh, like, yeah, of course.

    \n

    And that’s what block patterns I think you’re going to feel like, and I think it’s really gonna fulfill a lot of these things and bring a lot of these things that we’re talking about together in a way that will be really fun to play with. And also people will be able to submit to the block pattern directory, ideally in the future, similar to the block plugin directory.

    \n

    So personally, I’m most excited to see the marriage between block patterns and full site editing along with these hybrid themes.

    \n
    Nathan Wrigley [00:42:24]

    I know there will be no metric to judge this, but it would be fascinating in a couple of years time. Were we able to measure it, to see just how much of humanity’s time has been saved by something like block patterns, the fact that you don’t have to do things over and over again. Yeah. I completely understand why you’ve selected that one. We have gone through so many questions. If somebody at the end of this, has been listening to this and thinks I would like to help, but I want to contact Anne directly before I go to these Slack channels and Github repos and so on. How might somebody get in touch with you should they wish to?

    \n
    Anne McCarthy [00:43:01]

    I would say go to my website. I am a weird millennial without social media. I jump on and off of Instagram. That’s my one holdout. I love photography too much, but yeah, my website is nomad.blog and I have a contact page and I truly welcome to hear from anyone seriously. All I ask, and this is on my website as well. I like to do pen pal. Kind of writing back and forth. I think we don’t rely, I think email, I’ve read too many books about this, but I think email has ruined our ability to relax and unwind, and I refuse to opt into this always responding world. So as long as you’re patient with me, and if I get a bunch of emails, as long as you’re patient with me responding, I promise I will respond genuinely with a lot of thought. I do not like to do short, low quality responses. So if you’re willing to engage there, that would be awesome to hear from you. I’m also an annezazu in WordPress dot org Slack, if you end up joining there as well.

    \n
    Nathan Wrigley [00:43:53]

    Well, thank you very much. I appreciate all of the hard work that you and everybody connected in the project is doing. It’s making great inroads into our editing experience in WordPress. Greatly appreciated. Thanks for coming on the podcast.

    \n
    Anne McCarthy [00:44:06]

    Of course. Thank you so much for having me.

    \n
    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"HeroPress: You Don’t Have To Want What Everyone Else Wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3539\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:166:\"https://heropress.com/essays/you-dont-have-to-want-what-everyone-else-wants/#utm_source=rss&utm_medium=rss&utm_campaign=you-dont-have-to-want-what-everyone-else-wants\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6216:\"\"Pull

    I launched a WordPress-based business sometime around 2013. Starting a business is a goal for a lot of people, but it was never something I intentionally set out to do. I was in university at the time and blogging about books — just doing something I loved. But then I had an idea for a WordPress plugin that would make book bloggers’ lives easier. Although I did decide to sell it instead of releasing it for free, making a lot of money was never my goal. I thought maybe I’d make $500 overall if I was lucky. But three months in I’d already made nearly $1500 and those numbers would only continue to climb.

    \n

    By the time I graduated university, this little business of mine was already fully paying my bills. I went straight from graduation to running a full time business. Over the next few years, I sold pre-made plugins, built custom plugins, launched custom websites for authors and bloggers, dipped into the managed WordPress hosting space, and created WordPress e-courses. Objectively, business was great.

    \n

    But by 2016, I was waking up every morning and thinking, “What the hell am I doing?”

    \n

    The more my business grew, the more I was afraid it was about to crash and burn.

    \n

    The more I diversified, the less confident I felt about what I was doing.

    \n

    Above everything, I was tired.

    \n

    Turns out, I’m not a businesswoman

    \n

    I was tired of selling, of marketing, of advertising, of promoting. I was tired of asking myself “will this sell?” before I started a new project. I missed creating just for the sheer fun and joy of it, which was how my very first plugin even came to be. I just wanted to build cool things and quietly release them into the wild. I love to create but I don’t love to sell.

    \n

    Perhaps I could have hired people to help me with the aspects of my business I didn’t enjoy, but although business was going well for a one person show, I didn’t feel like it was going well enough to hire more people and confidently feel like I could pay their salary every month. And the thought of having that responsibility just brought me even more anxiety.

    \n

    I felt stuck and, honestly, ashamed of how I felt about my business. Was I being ungrateful?

    \n

    I had this incredible thing going for me — I was paying all my bills, working flexible hours (and from home!), and calling all the shots. This is what other people aspire to have, and I had it! I was embarrassed to admit that maybe I didn’t like it anymore. I didn’t want to be in charge. I didn’t want to have the entire success or failure of a business resting on my shoulders.

    \n

    I remember looking through job listings trying to imagine myself doing something else — anything else. But another problem I had was that running my own business straight out of school had spoiled me. I didn’t want to be in charge, but I also still wanted to work from home. I still wanted flexible hours. I didn’t want to sacrifice my 3pm gym session. I still wanted a certain degree of freedom in what I did each day. I wanted all the benefits of running my own business, without any of the downsides I had come to dread.

    \n

    A well timed opportunity

    \n

    In late 2016, sheer luck and good timing brought me to Sandhills Development. I was offered a job at a company that could amazingly check every box on my dream list. I could work from home, set my own hours, have a weird schedule, still make the gym at 3pm, and most importantly: my job would just be one thing. I could focus on building really cool stuff, and nothing else. I wouldn’t have to think about marketing or sales or profit.

    \n

    It’s been over four years since then and I’m now the lead developer for Easy Digital Downloads — the plugin I originally used to sell my first product. So I think things are going pretty well! My old business does still exist, but in a very low key way. I still work on and maintain the products out of love and passion for them, but with zero pressure to actually make sales or be successful.

    \n

    The biggest difference is the boundaries I’ve been able to create in my life.

    \n

    When running my own business, I didn’t work all day long, but I did tend to think about work all the time. Growth was always on my mind because making that happen was purely up to me. I was putting so much pressure on myself to do well, that I couldn’t stop thinking about it. But now, work goes away as soon as I decide I’m done for the day. I don’t think about it after hours. There’s comfort in the fact that although I care about the company, it’s not my company, and the success — or failure — of the company isn’t purely up to me; if something does go wrong when I’m gone, there’s someone else capable of handling it.

    \n

    What works for someone else may not work for you

    \n

    Some people would consider it a downgrade to go from business owner to employee, but it was absolutely the right move for me. Running your own business is often glamorized, but not everyone is cut out to wear all the hats that a one-person business requires, and not everyone has the drive to grow a business into something larger. And that’s okay. At the time, it was immensely hard for me to admit that out loud because I thought it would make me a failure.

    \n

    There is no “one size fits all” dream job and I learned that being the owner of a company is not mine. If what you’re doing now isn’t working then there’s absolutely no shame in bowing out, even if you’re currently living someone else’s dream.

    \n

    The post You Don’t Have To Want What Everyone Else Wants appeared first on HeroPress.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 08:27:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Ashley Gibson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"WPTavern: WordPress Contributors Propose Blocking FLoC in Core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115316\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:169:\"https://wptavern.com/wordpress-contributors-propose-blocking-floc-in-core?utm_source=rss&utm_medium=rss&utm_campaign=wordpress-contributors-propose-blocking-floc-in-core\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7493:\"

    WordPress contributors are proposing the project take an active position on Google’s Federated Learning of Cohorts (FLoC). This particular mechanism is Google’s alternative to third-party cookies that doesn’t require collecting users’ browsing history. The GitHub repository for FLoC explains how Google will group people together and label them using machine learning:

    \n\n\n\n

    We plan to explore ways in which a browser can group together people with similar browsing habits, so that ad tech companies can observe the habits of large groups instead of the activity of individuals. Ad targeting could then be partly based on what group the person falls into.

    Browsers would need a way to form clusters that are both useful and private: Useful by collecting people with similar enough interests and producing labels suitable for machine learning, and private by forming large clusters that don’t reveal information that’s too personal, when the clusters are created, or when they are used.

    \n\n\n\n

    WordPress contributors are proposing blocking FLoC in core, citing the Electronic Frontier Foundation’s article titled “Google’s FLoC Is a Terrible Idea.”

    \n\n\n\n

    “WordPress powers approximately 41% of the web – and this community can help combat racism, sexism, anti-LGBTQ+ discrimination and discrimination against those with mental illness with a few lines of code,” the proposal states.

    \n\n\n\n

    One of the more controversial aspects of the original proposal was that it was spectacularly miscategorized as a security concern, clouding the issue at hand. It identified FLoC as a security issue for the sake of getting it into core on a more aggressive timeline, which was outlined as follows:

    \n\n\n\n
    1. Include the patch the next minor release, rather than waiting for the next major release;
    2. Back-port the patch to previous versions of WordPress.
    \n\n\n\n

    The proposal was later revised to clarify that treating FLoC like a security concern referenced only the timeline of accelerated development and back-porting.

    \n\n\n\n

    Although blocking FLoC seemed to have wide support in the comments on the post, the premature suggestion of treating it as a security concern weakened the proposal.

    \n\n\n\n

    WordPress core committer Ryan McCue said that while he is in agreement with the overall sentiment, rolling it out like a security updatet would abuse users’ trust in automatic updates:

    \n\n\n\n

    The implicit contract with users for security autoupdates is that they are used in order to protect the user from their site (data or codebase) being compromised imminently. This isn’t the case with FLoC, and may in some cases damage the site’s behaviour.

    More concretely: as someone who operates a hosting service where we keep users up-to-date with security patches, this changes our approach substantially. Right now, we can confidently roll out security updates trusting the update has minimal effect outside of purely security changes, but breaching that barrier means that now scrutiny needs to be applied to every security update in order to avoid rolling out potentially breaking changes to our clients.

    That erosion of trust would ultimately hurt WP’s users.

    \n\n\n\n

    The proposal has started an active discussion with more than 100 commenters, including participation from the Chrome DevRel team who added more context on the current status of the experiment.

    \n\n\n\n

    “It’s also worth noting that because this is an origin trial it means that nothing is set in stone — this is an experiment to gather feedback,” Chrome Developer lead Rowan Merewood said. “The API may change, the opt-out mechanism may change, the eligibility criteria may change. Any code changes relating to an origin trial should also be treated as temporary and experimental.”

    \n\n\n\n

    Those who were critical of the proposal consider FLoC a personal privacy issue that is not WordPress’ problem to solve. Others believe a proposal to block FLoC is reactionary at this point, since Google has not yet finalized its FLoC experiment.

    \n\n\n\n

    “Thinking about users… i.e. the readers of a blog, they deserve choice,” Andy Beard commented.

    \n\n\n\n

    “They can choose which browser they use.
    “They can choose settings in the browser.
    “They can choose some overall options on a Google privacy site.
    “They can install a multitude of plugins.

    \n\n\n\n

    “Alternatively, if WordPress blocks FLoC by default, that actually removes a choice – the choice of a user to see more relevant advertising.”

    \n\n\n\n

    Several participants in the discussion were opposed to FLoC but also not supportive of a WordPress core effort to block it.

    \n\n\n\n

    “While I’m not pro-FLoC (and won’t have my browsers using it) I certainly wouldn’t expect a website to make the choice to opt-out for me, and I can’t see why the majority of WordPress users and people visiting WordPress sites would expect that either,” WordPress lead developer Dion Hulse commented.

    \n\n\n\n

    “Perhaps more importantly, would WordPress also continue to opt out all future browser protocols too? Once you delve into blocking one, you’ve either got to block them all, or you’re playing favorites.”

    \n\n\n\n

    Mika Epstein, who also expressed her opinion as anti-FLoC, said she is not in support of backporting a block due to the practicality of such an effort.

    \n\n\n\n

    “If the decision is made to include this, I would support it as a filterable privacy enhancement only, not security,” Epstein said.

    \n\n\n\n

    “That said, I do not support backporting with the precedent that we did not backport the GDPR exporting stuff. Having it exist as a plugin (there are three already) is sufficient for those who are on older versions. The undue strain of increased backporting needs to be minimized, not maximized in my opinion.”

    \n\n\n\n

    Others commented on the harm to independent publishers whose main source of revenue is often advertising.

    \n\n\n\n

    WordPress lead developer Helen Hou-Sandi requested the proposal be re-written to clarify the differences between disabling FLoC on a site level vs the browser level as a consumer. She also discouraged referring to the matter as a security issue and recommended the proposal’s proponents justify the work required to backport the block. Hou-Sandi recommended opening a trac ticket as a more appropriate avenue of discussion regarding core implementation and inclusion, as contributors have not yet reached a consensus.

    \n\n\n\n

    The topic will be up for discussion at the next core developers’ chat on Wednesday, April 21, 2021. Representatives from the Chrome team will also be attending to answer any questions about FLoC.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 21 Apr 2021 05:17:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:114:\"WPTavern: Patchstack Whitepaper: 582 WordPress Security Issues Found in 2020, Over 96% From Third-Party Extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115396\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:267:\"https://wptavern.com/patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions?utm_source=rss&utm_medium=rss&utm_campaign=patchstack-whitepaper-582-wordpress-security-issues-found-in-2020-over-96-from-third-party-extensions\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4647:\"

    Patchstack, which recently rebranded from WebARX, released its 2020 security whitepaper. The report identified a total of 582 security vulnerabilities. However, only 22 of the issues came from WordPress itself. Third-party plugins and themes accounted for the remaining 96.22%.

    \n\n\n\n

    “These are all security issues disclosed by the Patchstack internal research team, Patchstack Red Team community, by third-party security vendors, and by other independent security researchers,” said Oliver Sild, Patchstack founder and CEO. “So it includes all public information about vulnerabilities.”

    \n\n\n\n

    Patchstack is a security company that focuses on third-party extensions to WordPress. Its vulnerability database is public and available for anyone to view.

    \n\n\n\n

    In the second quarter of 2020, Patchstack surveyed nearly 400 web developers, freelancers, and agencies about web security. “Over 70% responded that they were increasingly worried about the security of their website, and the top reason was ‘vulnerabilities in third-party plugins,\'” according to the whitepaper. “About 45% of respondents saw an increase in attacks on websites they were managing, and 25% had to deal with a hacked website in the month prior to participating in the survey.”

    \n\n\n\n

    Ranking at the top, 211 of the vulnerabilities found were Cross-Site Scripting (XSS) issues, 36.2% of the total.

    \n\n\n\n

    “XSS in WordPress plugins almost always happens because user input data is directly printed onto the screen without any sanitization,” said Sild. “esc_html would be used to convert certain characters to their HTML entities, so it will be literally printed onto the screen. Then you also have esc_attr for user input variables, which need to be used in HTML attributes. There are many good resources published by OWASP (The Open Web Application Security Project), such as the ‘Secure Coding Practices.\'”

    \n\n\n\n

    Injection vulnerabilities ranked second with 70 unique cases. It was followed by 38 Cross-Site Request Forgery (CSRF) issues and 29 instances of sensitive data exposure.

    \n\n\n\n

    “The vulnerabilities found in plugins and themes tend to be more severe than those found in WordPress core,” wrote Sild in the whitepaper. “What makes matters worse is that many popular plugins have millions of active installations, and the numbers aren’t pretty when we look at how many websites are affected by the vulnerable plugins.”

    \n\n\n\n

    The total number of active and vulnerable theme and plugin installations throughout the year was 70 million. According to WordCamp Central, WordPress is installed on 75 million websites. Many sites likely had more than one vulnerable plugin during 2020 rather than 70 million individual sites being at risk.

    \n\n\n\n

    Patchstack surveyed 50,000 websites and found that they averaged 23 active plugins at a time. About four on each site were outdated with an upgrade available, which often increases the risk of a security issue.

    \n\n\n\n

    WordPress plugins accounted for 478 vulnerabilities in the report. However, there were only 82 unique theme issues. While themes are typically far more limited in scope, they can do anything a plugin can do with a few exceptions.

    \n\n\n\n

    It is not surprising to see that number lower for themes. However, one has to wonder if the ongoing plan to loosen the WordPress.org theme directory review guidelines will factor into that in the coming year or two. Currently, reviewers for the official directory perform extensive code checks that may be more likely to catch issues before themes arrive in users’ hands. If the trade-off is better automation, it could also mean stricter coding standards and fewer security issues that human reviewers might miss.

    \n\n\n\n

    “Vulnerabilities from third-party code remain as one of the biggest threats to websites build on WordPress,” concluded Sild in the report. “We already see a growth in unique vulnerabilities reported in the WordPress plugins and themes comparing 2020 with the beginning of 2021.”

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 20 Apr 2021 20:47:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:87:\"WPTavern: Recreating the Classic Wedding WordPress Theme Homepage With the Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115369\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:219:\"https://wptavern.com/recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=recreating-the-classic-wedding-wordpress-theme-homepage-with-the-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6345:\"

    I simply do not understand it. For at least the better part of a decade, theme authors have asked for the tools to create more complex layouts with WordPress. They have asked for the ability to allow end-users to more easily recreate their demos. They have wanted methods to bypass the “restrictive” theme review guidelines.

    \n\n\n\n

    Over the past couple of years, WordPress has consistently delivered features that theme authors have asked for. Yet, themes that use them are few and far between.

    \n\n\n\n

    During my weekly perusal of the latest themes to land in the directory, a new wedding theme caught my attention last week. Of course, I downloaded, installed, and activated it only to find that I had no idea how to recreate the homepage design. There were no instructions. The theme options in the customizer seemed to make little sense. Nearly all of the decorative images were non-existent in the theme folder.

    \n\n\n\n

    Did I need to upgrade to the pro version to get what was in the screenshot? There seems to be a plan for such a version, but it is not available yet.

    \n\n\n\nClassic Wedding theme screenshot.\n\n\n\n

    I am no rookie, but I was stuck. I liked the simplicity of the design. However, I could not imagine setting up a wedding site with this theme. From a user’s standpoint, it should not take more than a few mouse clicks. After that point, it should only be a matter of customizing the content.

    \n\n\n\n

    I recognize that there is still a sort of love/hate divide for the block editor in the inner WordPress community. However, theme authors are not doing any favors for the overall WordPress user base by not taking advantage of the tools available.

    \n\n\n\n

    So, I recreated the Classic Wedding theme homepage from scratch. Using the block editor. With a theme that supports it.

    \n\n\n\n

    Creating a Wedding Homepage

    \n\n\n\n

    My goal was simple. There was no demo to work from, and all I had to go on was an 800-pixel wide screenshot from the theme page on the author’s site. Like I recreated the Music Artist homepage several weeks ago, I wanted to do the same for Classic Wedding. With a couple of exceptions, which could have been handled by the theme, I was successful.

    \n\n\n\n

    Because Classic Wedding does not support the block editor itself, I could not recreate its homepage via the block editor while using the theme. It was not happening — I tried. I knew that the Eksell WordPress theme had a “canvas” template that allowed users to edit the entire page, so it was an easy choice.

    \n\n\n\n

    I also loaded the Kaushan Script and Lora fonts to more closely match the original theme. This was unnecessary for the experiment, but I wanted my recreation to at least look somewhat similar.

    \n\n\n\n

    I immediately knew that I would have one hurdle to overcome. The theme used an image that overlapped both the section above and below it. This requires margin controls, particularly the ability to add negative margins. Unfortunately, this is a missing component of the block editor today. It does not mean that theme authors cannot do it with custom block styles or patterns. It simply means that end-users are unable to control it from the interface.

    \n\n\n\n

    Because I did not want to spend my time writing the code for this, I leaned on my usual safety net, the Editor Plus plugin. While it can be a little clunky sometimes and feel like overkill, it does include those missing features like margin options.

    \n\n\n\nAdding negative margin to an image.\n\n\n\n

    I used px units there because it was easy. In a real-world project, % or rem would have been better. But I was just doing a quick proof-of-concept.

    \n\n\n\n

    Everything else in the content area was straightforward. I needed a Cover block with an Image, Heading, Paragraph, and Button tucked inside. I needed a Group block as a container for Image, Heading, and Paragraphs in the bottom section.

    \n\n\n\n

    Because the theme did not package its decorative images — again, how would users recreate the homepage without them? — I opted for a simple striped SVG background instead of the flowers in the original. Since I already had Editor Plus installed, I added an SVG from Hero Icons as the main background.

    \n\n\n\nWedding page content recreation.\n\n\n\n

    My original idea was to recreate the “content” part of the homepage only. However, it was a bit boring on its own. Therefore, I transformed everything into a Columns block and added the sidebar. I recreated the primary elements using the Image, Heading, Paragraph, and Navigation blocks. Then, I added a Social Icons block for fun.

    \n\n\n\nFull wedding homepage design.\n\n\n\n

    I did hit one snag with the Navigation block. WordPress does not currently offer a method of centering each link in the list when using the vertical block variation. I had to write a couple of lines of CSS to make this happen. This seems like an oversight and one area where the block editor failed to meet my expectations. Of course, this could be handled on the theme side of things.

    \n\n\n\n

    Overall, this was a relatively simple project. However, this experiment added some complexities that were not present when I recreated the Music Artist homepage. Margin controls and vertical Navigation block alignments are must-haves. Using a third-party plugin and writing custom CSS is not ideal, and these were requirements to make this happen straight from the editor.

    \n\n\n\n

    All of this is possible from the theme end. Each piece of this design could have been packaged as a block pattern. The overlapping image effect would have made for a neat block style. I just wish that theme authors would start utilizing the features that are being hand-fed to them.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 21:42:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Automattic Launches Jetpack Boost: A New Performance Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114913\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/automattic-launches-jetpack-boost-a-new-performance-plugin?utm_source=rss&utm_medium=rss&utm_campaign=automattic-launches-jetpack-boost-a-new-performance-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4877:\"

    The Jetpack team has been quietly testing a new plugin called Jetpack Boost, which addresses website owners’ performance and SEO concerns. Version 1.0 was released today, one month after the final pre-release came out in March.

    \n\n\n\n

    Boost is a separate plugin under the Jetpack brand and it does not require Jetpack core to work. The first iteration bundles three performance modules:

    \n\n\n\n
    1. Local Critical CSS generates optimized styles for the homepage, posts, and pages to display content faster, especially for visitors on mobile devices.
    2. Defer Non-Essential Javascript moves some tasks to after the page loads, so visible items load faster.
    3. Lazy Image Loading loads images as the visitor scrolls them into view.
    \n\n\n\n
    \n\n\n\n

    Once the plugin is installed, users can toggle the modules on or off. Optimizing the site’s CSS can be a lengthy process but it shows a progress bar and alerts you if are trying to navigate away from the page before it’s finished. Jetpack Boost displays an initial score when it’s first installed and will update after optimizations are put in place.

    \n\n\n\n

    Here’s an example score from a relatively unoptimized simple blog with 20 active plugins:

    \n\n\n\n
    \n\n\n\n

    After installing Jetpack Boost, there was a significant improvement on scores in the dashboard. It’s not a magic wand but it’s a fairly user-friendly way to tackle some basic performance issues that may translate into a better visitor experience.

    \n\n\n\n
    \n\n\n\n

    Checking the before and after scores on web.dev demonstrates a noticeable improvement on the Core Web Vitals assessment. For some websites this could mean the difference between passing or not (meaning 75% of pages on the domain pass).

    \n\n\n\n
    Before installing Jetpack Boost
    \n\n\n\nAfter installing Jetpack Boost\n\n\n\n

    Automattic engineer Nauris Pūķis, who worked on the project, said one reason the plugin was created was to help users “get their Web Vitals up and make the web a better place.”

    \n\n\n\n

    Google Search will be adding Page Experience to ranking signals in May 2021, and WordPress sites need all the help they can get. Page Experience is measured by a website’s Core Web Vitals metrics, but these scores are not easy to improve without some technical knowledge and troubleshooting.

    \n\n\n\n

    Despite Jetpack already including so many different, varied features, Automattic opted to put the Boost modules in a separate plugin.

    \n\n\n\n

    “We want Jetpack Boost to have a life of its own – focused on performance and make it available to everyone, including people who don’t want to use the main Jetpack plugin,” Pūķis said.

    \n\n\n\n

    The plugin was built with the same modular structure as Jetpack core, so users can easily deactivate modules they don’t want to use. This is helpful for ensuring compatibility with other performance or caching plugins that website owners may already be using.

    “You’ve probably noticed that both Jetpack and Boost have lazy loading images – it’s the exact same module,” Pūķis said. “If the user happens to have both Jetpack and Jetpack Boost active – it’ll just use the most recent version of Lazy Loading Images.”

    \n\n\n\n

    The features in version 1.0 are just the beginning of Automattic’s plans for Jetpack Boost. The project appears to be on track to become a full-blown performance plugin that may even migrate some of Jetpack core’s performance-related functionality.

    \n\n\n\n

    “Version 1.0.0 is being released the “one-point-oh” way,” Pūķis said. “We’re releasing as early as we can call it stable – but there’s so much that we want to do. Starting with simple modules that package up other typical optimization techniques (like concatenation, minification, maybe even photon?) – all the way to more advanced ideas like performance tracking, intelligent performance suggestions, etc.”

    \n\n\n\n

    Pūķis said none of these ideas are set in stone and the team is open to exploring and building modules that will have the highest performance impact after getting more feedback.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 19 Apr 2021 17:37:43 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"Gutenberg Times: Page Template Editor for WordPress 5.8, Videos and Plugins – Weekend Edition #166\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17602\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:105:\"https://gutenbergtimes.com/page-template-editor-for-wordpress-5-8-videos-and-plugins-weekend-edition-166/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:14988:\"

    Howdy,

    \n\n\n\n

    Yes, it’s been a while that you received a fully curated Weekend edition. After the move it took a while to get my office operational again. We still have too many boxes to unpack, though.

    \n\n\n\n\n\n

    Nevertheless, let’s catch up on Gutenberg news together!

    \n\n\n\n

    All the best,
    Birgit 💕

    \n\n\n\n

    Gutenberg 10.4 Released (and 10.4.1)

    \n\n\n\n

    The Gutenberg Changelog episode 42 is now available. Grzegorz (“Greg”) Ziolkowski and I discuss Full-site Editing Scope for WordPress 5.8, Gutenberg’s 10.4, Gallery Block Refactor and Block-Based Theme updates.

    \n\n\n\n
    \n\n\n\n

    Sarah Gooding of the WP Tavern wrote about the Gutenberg 10.4 release: Gutenberg 10.4 Introduces Block Widgets in the Customizer

    \n\n\n\n
    \n\n\n\n

    Full-Site Editing and WordPress 5.8

    \n\n\n\n

    If you now find yourself in the position to learn more about the extent of Full-Site Editing experience, I have a real treat for you: A 30-min video Full-Site Editing Overview by, Anne McCarthy, Developer Relations for the Gutenberg project.

    \n\n\n\n
    \n\n\n\n

    On April 14, 2021, the Gutenberg and 5.8 release leads held a meeting, with Matias Venture giving a tour of the current state of the Phase 2 of Gutenberg development. The outcome of the meeting was a decision on Go/NoGo for component that make it into core for WordPress 5.8.

    \n\n\n\n

    Josepha Haden Chomphosy provide in her follow-up post a list of the detailed scope, the video of the meeting and a transcript of the recording.

    \n\n\n\n

    The block editor scope

    \n\n\n\n
    • Improvements from Gutenberg 9.9 to 10.7 plugin version.
    • Introduce 25 new blocks (Query, Site Logo, Navigation,Posts, Comments, Archives etc. ), the most valuable among them will be the Query Block.
    • theme.json Mechanism for Theme builders (see developer documentation)
    • Template Editor for Pages/Blank Template. (see demo by Marcus Kazmierczak)
    • Widgets Screen & Block widgets in Customizer.
    • Design tools: Duotone, Layout controls, padding, etc.
    \n\n\n\n

    There is the caution stated in the post: “Not all the above are currently ready, but there’s some level of confidence that they can be by the time of 5.8.”

    \n\n\n\n
    \n\n\n\n

    For the Template Editor for Pages/Blank Template you can see it in action in a demo by Marcus Kazmierczak, he gave at the Mega Meetup last week.

    \n\n\n\n
    \n\n\n\n

    Bud Kraus of JoyofWP showed us in his video, how the Widget screen will look like in the future. It does not show the Widget handling in the Customizer yet, but that is to come to WordPress 5.8. You could see a short piece of it in Matias Ventura’s demo video from the release leads meeting. It is now already available in the latest Gutenberg plugin release.

    \n\n\n\n
    \n\n\n\n\n

     “Keeping up with Gutenberg – Index 2021” 
    A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

    \n\n\n\n\n

    Justin Tadlock summarized last week’s announcements in Full Site Editing Is Partly a ‘Go’ for WordPress 5.8

    \n\n\n\n

    Testing Full-Site Editing

    \n\n\n\n

    As the latest Full-Site Editing Call of Testing, Anne McCarthy has a Query Quest for you. Again with a great set of test instruction, you are guided towards usage and various features of the Query Block and its accompanying new post blocks for title, content, comments, feature image and pagination.

    \n\n\n\n
    \n\n\n\n

    Justin Tadlock discussed this task a bit further in his article: FSE Outreach Round #5: Venturing out a Query Quest. “Testing never has to be boring. I encourage participants to grab inspiration from their lives as they venture out on their Query Quest.” he wrote.

    \n\n\n\n
    \n\n\n\n

    Apropos Testing: Sarah Gooding wrote about our Gutenberg Nightly plugin to get the latest development of the block-editor in an easy to handle plugin. Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin.

    \n\n\n\n
    \n\n\n\n\n

    Need a plugin .zip from Gutenberg’s main (trunk) branch?
    Gutenberg Times provides daily build for testing and review.
    Have you been using it? Hit reply and let me know.

    \n\n\n\n

    \"GitHub

    \n\n\n\n

    \n\n\n\n\n

    Anne McCarthy curated all the feedback from the fourth testing call: FSE Program Custom 404 Page Testing Summary

    \n\n\n\n

    Block-Based Themes

    \n\n\n\n

    Helen Hou-Sandi streamed on Twitch her exploration session to create a block-based theme for the Full-Site Editing.

    \n\n\n\n
    \n\n\n\n

    Kjell Reigstad opened an issue for Query Block Pattern inspirations. There are great examples posted that could be converted to pattern, that could be bundled with WordPress 5.8

    \n\n\n\n
    \n\n\n\n

    Marcus Kazmierczak also used Twitch to stream his Lunch & Learn series on Block-based themes.

    \n\n\n\n
    \n\n\n\n

    Keep abreast on specific Theme related development and discussions with the weekly round-up from the Themes Team. Kjell Reigstad posted this week’s edition. Gutenberg + Themes: Week of Apr 12, 2021

    \n\n\n\n
    \n\n\n\n

    A couple of PRs that should help with transitioning existing themes to be block-based:

    \n\n\n\n\n\n\n\n
    \n\n\n\n

    In their latest episode of WPCafe co-hosts Mark Wilkinson and Keith Devon talked about Building Twenty-Twenty-One with Caroline Nymark and Mel Choyce-Dwan.

    \n\n\n\n

    Plugins for the Block Editor

    \n\n\n\n

    Gutentor published a collection of 70+ Blocks and layouts for Gutenberg Editor.

    \n\n\n\n
    \n\n\n\n

    If you are working on your set of Blocks for the editor, Justin Tadlock has some thoughts to consider: Yet Another WordPress Block Library Plugin. He is making a well though through case to suggest more unique blocks to fill the gap to the core blocks. It seems to me that, two years of seeing block collections being acquired by big companies like Atom Blocks, Co Blocks and latest Kadence Blocks, might tempt a small developer team to come up with another set of blocks matching a specific theme and hope for an acquisition by another big company in the space. There might be space for a few more, indeed.

    \n\n\n\n

    Tadlock’s longs for something new, a unique extension of core or a missing tool:

    \n\n\n\n\n\n\n\n
    \n\n\n\n

    Conditional Blocks by Morgan Hvidt allows you to create block that are displayed when certain conditions apply. We saw other plugins that offer that, like Block Visibility by Nick Diego. This one is a bit different. It allows you to change content depending on HTTP referrer, so if someone comes from Twitter, they could see a different message than someone coming from a Google Search or a link in a newsletter or an affiliate link. The plugin is also available as a pro version with premium features at conditionalblocks.com

    \n\n\n\n\n

    Episode #42 is now available, with new co-host Grzegorz Ziolkowski

    \n\n\n\n

    Subscribe to the Gutenberg Changelog podcast
    🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
    🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

    \n\n\n\n\n\n\n\n\n

    People and Community

    \n\n\n\n

    It’s been already a year that Anne McCarthy joined the Gutenberg team as a developer relations wrangler. It has been a great pleasure meeting Anne and collaborating with her has been quite inspiring, and I learned a lot from her wisdom and her wealth of ideas. She has also become a good friend. She is som much better and being a remote friend that I ever will be. On her personal block Anne published One year in DevRel

    \n\n\n\n

    Anne’s pioneer work with WordPress open-source project has been so successful that Automattic wants to sponsor another person for developer relations.

    \n\n\n\n

    Developing with ReactJS and Gutenberg Blocks.

    \n\n\n\n

    Rob Stinson wrote a tutorial on how to building custom Collections in Genesis Blocks. Now Collections in this context are Layout templates, that extend existing Genesis blocks.

    \n\n\n\n
    \n\n\n\n

    Mark Howells-Mead uses ReactJS to build interactive single page applications with WordPress and wrote a tutorial. It’s not at all about Blocks and Gutenberg, but it’s related to the skill set of learning ReactJS and hopefully inspired developer to gradually make the transition.

    \n\n\n\n\n\n

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 18 Apr 2021 23:33:09 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Gutenberg 10.4 Introduces Block Widgets in the Customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115274\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/gutenberg-10-4-introduces-block-widgets-in-the-customizer?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-4-introduces-block-widgets-in-the-customizer\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3021:\"

    The latest release of the Gutenberg plugin (10.4) brings block widgets into the Customizer. When customizing widget-enabled areas, a new block inserter icon is now available for dropping blocks into sidebars. This is the first iteration of block management in the Customizer, tackling the technical integration for editing blocks while also taking advantage of the live preview in the Customizer.

    \n\n\n\n
    \n\n
    \n\n\n\n

    Version 10.4 includes several design updates to the Site Editor List View, bringing more consistency to the icon sizing and spacing, as well as new colors for hover, focus, and select states. The publishing UI has been updated to display the site icon and name, adding a more personal touch to this flow while also making it more clear for full-screen or mobile users.

    \n\n\n\nGutenberg 10.4 release post\n\n\n\n

    More progress on site editing experiments includes the following notable updates:

    \n\n\n\n\n\n\n\n

    The block editor still fails to deliver a consistent preview of core blocks on the frontend in many cases. Version 10.4 brings greater parity between the editor/frontend with more consistent markup for archives, latest comments, quote, and separator blocks, with improved default padding to match the browser’s default. The GitHub issue for this improvement contains a to-do list for additional blocks that need more polishing on previews, including search, paragraph, columns, embed, post title, and more.

    \n\n\n\n

    For a full list of all the enhancements and bug fixes, check out the 10.4 release post.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 17 Apr 2021 13:59:29 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"Gutenberg Times: Video: Full-Site Editing Overview with Anne McCarthy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17545\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://gutenbergtimes.com/video-full-site-editing-overview-with-anne-mccarthy/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:52174:\"

    As part of the Meta Meetup on April 15th 2021, Anne McCarthy gave a presentation on what Full-Site Editing entails, the updated scope of WordPress 5.8, what the FSE outreach program is and what issues surfaced during the four calls for testing from the group.

    \n\n\n\n

    It’s a fantastic and fast-paced presentation and covers a lot of ground. It’s ideal for WordPress users that just now want to catch up on all the buzz around Full–Site Editing and learn what will come to WordPress in the 5.8 release in July 2021.

    \n\n\n\n

    Big Thank You to Anne for allowing us to publish the video here with the transcript.

    \n\n\n\n

    For those interested how the template editor works, jump right in to Marcus Kasmierczak’s live demo portion of the WordPress Mega Meetup recording

    \n\n\n\n
    \n
    \n
    \n\n\n\n

    Shared Resources

    \n\n\n\n\n\n\n\n

    See transcript below

    \n\n\n\n
    \n\n \n \n
    \n \n
    \n\n \n
    Full-Site-Editing – the Ultimate Resource List
    Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. — Marie Curie 
    \n
    \n\n \n
    \n\n \n
    Full-site Editing MVP: Can I Build a Landing Page?
    Josepha Haden Chomphosy was the featured guest on the inaugural episode of the WPTavern Jukebox podcast, hosted by Nathan Wrigley. Chomphosy explained her unofficial benchmark for the Go/NoGo decision on Full-site Editing for the WordPress core merge. 
    \n
    \n\n \n \n
    \n\n
    \n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    Featured image: 404 template by Channing Ritter on critterverse.blog

    \n\n\n\n

    Howdy. To start, thanks so much for having me. This is a presentation about full site editing. I’m very excited to talk with you. This is a feature I’ve been thinking a lot about over the last year and I’m excited to share with you all. I’m also really keen to learn from each of you what you’re worried about, what you’re excited about, how you think full-site editing can improve your workflows, and more. So this is prerecorded because I wanted to make sure with so much information going around, wanted to make sure I had all the details lined up and so I could pause and rework certain sections. But please know that I welcome questions. So while you can’t interrupt me during the presentation, there will be a whole section at the end. Pull out your pen and paper, write them down, and know that they’re very, very welcomed. But for now, let’s dig in.

    \n\n\n\n

    So briefly about me, I’m actually originally from Winter Park, Florida. So I haven’t been home in about a year and a half, and thank you for letting me virtually return home by participating in this meetup. In 2011, I first found WordPress as a student at UNC Chapel Hill. I worked on their multi-site, had a great time. 2013, I went to my first ever WordCamp. 2014, joined Automatic as a happiness engineer focused on VaultPress and had a great time focusing on security of websites. It gave me a really interesting look into concerns people have about websites that most people don’t think about. Then 2020, I switched into the developer relations position at Automatic and have been there ever since.

    \n\n\n\n

    So let’s get meta and talk about the talk. (laughing). So to start, I’m going to zoom out really big and then slowly put pieces together until we kind of get a nice map of what full-site editing is with all the details. So this will look kind of like first answering some big, high-level questions, digging into then how the work is actually being done, so going from high level, “What is this? Why does it help me?” to “How is this work actually being approached? What are the pieces of the work that I need to know, the role of the outreach program?” Then I want to address some key topics and questions that I often get asked when I’ve presented at other places and talked on other podcasts about full-site editing or just one-on-one with people. I love to talk about full-site editing. So hopefully some of the key topics and questions can help get people thinking about other things they want to ask about.

    \n\n\n\n

    So let’s dig into the first big picture question. Why is this being done at all? Simply put, it’s to empower users. Rather than having a specific part of the site locked away in a theme or requiring a plugin, full-site editing will basically open it up to customize any part of your site the way you want to, or, on the flip side, you can let it be, or if you’re an agency, you could lock certain sites down or certain parts of a site down, depending upon how you want users to have access. So it’s a pretty powerful, big mission to actually deliver on full site editing.

    \n\n\n\n

    So I answered why is this being done. Now let’s dig into how does this fit into the WordPress roadmap? So full-site editing is a major part of phase two of the current roadmap. It’s not the only part, though. There’s actually other interrelated projects, including things like block patterns, the block directory, block-based themes. So it’s just one piece of this larger roadmap, but it’s one of the major grounding points of phase two of the roadmap.

    \n\n\n\n

    So what is full-site editing at a high level? Essentially, it’s a collection of features, and it’s important that you get the collection part. But it’s a collection of features that bring the familiar experience of blocks to all parts of your site, rather than just posts and pages. But Anne, what does a collection of features mean? Basically, I’ve noticed people tend to refer to full-site editing as one big thing. It’s like an on-off switch. It’s this monolith, and it’s actually not. It’s not this binary thing. It’s way better to talk about how there’s different pieces that fit together and interrelate, because it actually gives flexibility for release squads to release what’s ready, rather than all of it at once. So while it might be easier to talk about how it’s this one big thing, I encourage you all to kind of think about the different pieces, if you can, and I’ll touch on this more in a bit.

    \n\n\n\n

    Okay. So what does full-site editing actually allow me to do, right? So cool, Anne, a collection of features, but show me the money. (laughing). So this is an example of a 404 page. So a 404 page, typically you’re not actually able to edit, but with full-site editing, you could actually create this 404 page. This was actually done by one of the automatic designers, Channing. Shout-out to Channing. She did this as part of one of the tests for full-site editing, the outreach program. So it’s a pretty beautiful thing. While we all might not have the design chops that Channing does, it is pretty neat to see kind of a very tangible, hands-on example of what full-site editing unlocks you to be able to do.

    \n\n\n\n

    To get more specific, basically, if you’re a user, imagine editing the template that a specific post has for a specific category. For theme authors, you’ll be able to tap into design tools that allow you to focus more on actually creating a really compelling experience and less on getting the code in place and hacking things up. You can also out in and out of whatever you’re ready for, which is really exciting. But ideally, for theme authors, it’s going to be a huge change. It’ll allow creating themes to be much, much easier. If you’re an agency, you’ll have greater control over what you can offer clients, including setting custom brand colors with presets to locking down various aspects for consistency, such as typography or wanting only certain default colors to be used.

    \n\n\n\n

    Milestones of Full-Site Editing Experience

    \n\n\n\n

    So how is this work being done? So rather than trying to go through everything in one go, this project has actually been broken down into seven different milestones. Some of these milestones are completely separate, their own thing. Some are very interrelated. Some mix and match in different ways. But we’re going to go through each of them so you can get a sense of how this is being done. I’m going to try to stay at a high level before going into a very brief demo midway through the presentation. But hopefully this’ll give you a sense of what this looks like.

    \n\n\n\n

    Infrastructure       

    \n\n\n\n

    So milestone one, this was actually such a big milestone that it was broken into two parts. Essentially, this is all about laying the foundation, everything from multi-entity saving, which is actually being displayed here in the GIF that you see, where you can actually update multiple things at once, including a template part. You update your header, you update a post, and you update your footer. It’ll show all the changes happening and allow you to check and uncheck different boxes to save. Basically, just think about this as building the foundation of the experience, the technical foundation, unlocking things like being able to edit a template directly to working on specific blocks for full-site editing, like the site title. So we have a site title block, and it updates everywhere you have it listed.

    \n\n\n\n

    Browsing Templates and Template Parts

    \n\n\n\n

    Milestone two, browsing. Again, there’s another little visual so you can see what this actually looks like. This is basically giving you a map and a GPS to know your location, how to get where you need to go for your site. So because there are these new parts of editing your site that are unlocked with full-site editing, like template editing and template parts, like a header or footer, there needs to be a way to navigate between them. So this milestone is dedicated to that. How can we make it as easy as possible for you to you get where you need to go?

    \n\n\n\n

    Styling – Global Styles + theme.json

    \n\n\n\n

    Milestone three, styling. So this actually covers a couple different layers. I’m going to break it down in this slide and then the next one to help give you a sense visually of what this looks like. But this includes everything from the technical requirements to make various levels work and the UI for users. So you can actually see a depiction of the future design for the UI that users will interact with in the imagery here. So there’s generally three layers, including selling for local blocks, theme defaults, and then global modifications or what we often call global styles. You can think of global styles as basically having the option to edit all aspects of your site. So if you want to set a typography that goes across your entire site, if you want to have certain colors for all H1 headers, you can set that up with global styles.

    \n\n\n\n

    Currently, much of the work has been focused on the technical underpinnings, especially around aspects like theme.json, which is a very key component for block themes and a really big tool for block theme authors. But for 5.8, the focus is generally going to be on merging the non-user interface parts of global styles. So don’t expect to interact with this system unless you’re a theme author. If you are a theme authro, get really excited. Here’s a little visual, just you can get a sense of it. So these are the different layers that have to interact in the styling system and hierarchy that needs to be thought of when working on this milestone.

    \n\n\n\n

    20+ Theme Blocks

    \n\n\n\n

    Milestone four, theme blocks. So because full-site editing opens up so many more aspects of the site to edit, new blocks had to be created, basically. So if you’re creating a new template for a specific category and you’re putting in post content and you want to add the post author block, which you can see here, you can quickly add it in, customize it to your liking, add in post comment, add in post data, remove the post date. You can edit each parts of these things, which pretty excited about this, is there’s actually 20-plus blocks that fall into this category. If all goes as planned, some of those will be released for 5.8 and available potentially for all sites. So even if you’re not using a block theme, you could have access to these theme blocks, which is pretty powerful and pretty cool.

    \n\n\n\n

    Query Block – The Loop or Post List

    \n\n\n\n

    Query block. So the query block has its own milestone, because it’s a pretty powerful block. It’s also meant to be a theme author tool, so in the long run, if you’re a user, imagine that you interact with what we call block variations, which basically are just different variations of a block, as the name implies. But imagine you want to add in your latest post. You’ll add the latest post block, but underneath it, what will be powering that experience of adding your latest post will be the query block. Essentially, as the name implies, it allows you to query posts and pages and display them in different arrangements on the page. I’m very excited, actually. In Gutenberg 10.5, which will be released in just about two weeks, there’s going to be some new patterns. You can see right here, large, medium, small are the current selection of patterns that you have for the query block. But pretty soon, there’s going to be a grid pattern and a couple other cool ones, which is pretty exciting. Generally speaking, though, if you’re an end user, don’t expect to interact with this. If you’re a theme author, get excited.

    \n\n\n\n

    Navigation Block

    \n\n\n\n

    Navigation block. Again, this is just a single block, but don’t be fooled. It’s definitely a mighty one. So this last one is dedicated to all things navigation block, both in terms of structure and design. You can see in this little GIF I have going on, I’m just kind of making little design changes and moving things around so you can get a sense of what it’s like to interact with this block. This milestone actually includes everything from how do you build a really simple menu with a few items to thinking about how to create a really large mega menu and add in new blocks, like the search block that you can see here. We’re even adding sub-menus, different designs, different layouts, and more.

    \n\n\n\n

    Gradual Adoption – Widgets, Customizer, Hybrid Themes 

    \n\n\n\n

    So the last piece of the milestones is the gradual adoption. I hope this GIF makes you laugh, but also seriously, this is the intent, is we slowly want people to be able to adapt in the way that they can. Once more of these pieces are completed, there’s basically a ton of room to start exploring how adoption might look like for those who can’t or don’t want to restructure a full theme. So this might be an intermix of block-based things and regular PHP templates, or it might be covered by projects like the block-based widget editor and the navigation screen. Both of those projects I’ll cover later, but for now, just keep in mind that this is intentionally a milestone. We want to allow for gradual adoption and want people to have lots of pathways in to taking advantage of full site editing.

    \n\n\n\n

    What’s coming to WordPress 5.8

    \n\n\n\n

    So what’s coming to WordPress 5.8? So just last week, a post went out from Josepha, who is the executive director of the WordPress project. I want to read a quote from it just to kind of set the tone and give you a sense. So full-site editing is a collection of projects, and together, they represent a big change, arguably too much for a single release. The most important context to share is that it isn’t shipping as the full default experience for users. One of the clearest pieces of feedback from the phase one merge process was that there wasn’t enough time for extenders, agencies, theme authors, plugin developers, site builders, et cetera to prepare for the upcoming changes. With that in mind, this merge process won’t be an on-off switch, and you can see I’ve bolded various specific parts that I hope you take home with you.

    \n\n\n\n

    All right. So let’s talk WordPress 5.8 plans. This is up-to-date information as of today. A post was released from Josepha on [inaudible 00:12:21], if you’d like to check it out. From the call that the project leadership had, this is what they came up with for the 5.8 plans. This includes improvements from Gutenberg 9.9 and beyond. So we always package different versions of Gutenberg into major releases. This release is no different. There’ll be an introduction of new blocks, including query, site logo, navigation, et cetera. These are each very powerful blocks, very exciting to see. theme.json mechanism, this is part of what allows block themes to use different global styling, which will be very cool for block authors to get their hands on.

    \n\n\n\n

    The template editor for pages and a blank template, I’ll actually be showing a demo of this in a moment. So hang tight there, but it’ll all make sense in a bit. The widget screen and block widgets in the customizer, this is basically work being done to bring blocks to the widgets experience. I will talk more about that later, about how it’s a stepping stone towards full-site editing. Then finally, design tools, so even more design tools that people can hook into, including duotone, which adds a really cool color filter, layout controls, padding, and more.

    \n\n\n\n

    Short Demo: Template Editing, Navigation Block and Multi-Entity Saving

    \n\n\n\n

    So at this point, let’s pause for a minute and actually show off one of the features that is aimed to be included in 5.8. 

    \n\n\n\n

    I’m going to show you template editing, the navigation block, and just some of the cool flows with multi-entity saving is one of the things that we talked about that will make it into this release. So I’m in the post editor. I have a new post. I love to blog and write and present. I hit Update. Super happy, whatever. Open up the post settings, and there’s this new section that allows you to both create a brand new template. This will ideally be used both in themes that are block-based themes, so they’re ready for full-site editing, and potentially for classic themes. There’s actually work underway so that this will be available in anything being used in WordPress right now.

    \n\n\n\n

    So right now, if I hit Edit, this will take me into the template that this post is using. So let’s do that now. So as you can see, this drops me into what looks like the entire site. So you can see I have my header up here, I have the footer down here, and I can make changes directly to them. So, for example, if I jump in here, this is the navigation block, and I haven’t yet set it up. So I can say add all pages, and I can start empty. In this case, I’ll say, “You know what? Let’s start empty.” Let’s say I want to add a custom link. One of the cool things you can actually do, you can quickly select from here, or let’s say I want to add a new post. Let me first select post link.

    \n\n\n\n

    So adventures around the world. Let’s pretend I’m just inspired where I’m writing this. I can actually create a draft post, which is pretty cool, and it’ll show up here. It will not show up on the front end, since it’s a draft, but it actually creates a page draft for this with this title automatically. So let’s say I’m scrolling through here. I’m going, “Oh, this looks pretty good. Actually, I kind of want to see what it looks like if I add an image to the post here.” Pull up an image block. Oh, my media library. Hammocks. Can’t get enough hammocks. Going to throw that in there. Great. So at this point, I’ve made changes to the actual header. I’ve made changes to the post. I’m just going to apply and see what happens.

    \n\n\n\n

    So this is the multi-entity saving that I mentioned earlier. Now, as you can see, it has a section for posts, so it’s saying, “Hey, you edited this post,” and it has a section saying, “Hey, you edited the header.” So at this point, I’m going to hit Save, because I want both those changes to propagate. Now I’m back into my post, into the writing flow, and I can easily switch back and forth. I can also select a new one. But yeah, hopefully this gives you a good sense of one of the key parts that’s being worked on for inclusion in 5.8. There will be a demo later, but this is just a taste.

    \n\n\n\n

    Timeline of 5.8 Release

    \n\n\n\n

    To help set the stage for what you can prepare for, here are some upcoming dates to keep in mind. If you’re like me, time is moving really strangely, so I like to have dates to kind of anchor me. Feel free to take a screenshot of this or write it down if you’d like. So April 13th and April 27th, these are the go and no-go decision dates. So right now, project leadership actually has gathered. So you might notice if you are good with dates and good with time right now, April 13th has come and gone. So this date has passed, and project leadership has met actually to go through different FSE-related features and projects to figure out what might be ready for 5.8. I would expect to see more high-level posts throughout the month, especially after the second date, the April 27th date. That’s when final decisions will be made around 5.8.

    \n\n\n\n

    Then if all goes well, the beta period for WordPress 5.8 will start on June 8th. So people can actually start getting their hands on the tools that are going to be in place in the actual release and testing it and finding bugs and improving things from there. July 20th is the actual date of WordPress 5.8 and when it’s released. This is being considered as an open beta, where theme authors, plugin authors, agencies, and more can dig into the tools that are being offered and that I went over previously. Then in December 2021, that’s around the time when WordPress 5.9 will be released, and this is when I expect to move from tools for extenders into tools actually for users and more user-facing interactions with full-site editing and having things unlocked in the interface that previously in 5.8, most users won’t notice and won’t interact with. In 5.9, I expect that to be more visible.

    \n\n\n\n

    So some key takeaways. I know this is a lot of information. So only what’s ready from the various milestones will be shipped. This is not an on-off switch, and it won’t take over your site. The focus right now is on giving tools to extenders first, before user-facing changes. That’s a big lesson that was learned from the 5.0 merge, where Gutenberg and the core editor was brought into the WordPress experience. This is something that, thankfully, we’re in a position where because of these interrelated projects, we’re able to move in a more flexible and adaptable way to release what’s ready and not anything else.

    \n\n\n\n

    What is the FSE Outreach Experiment Program?

    \n\n\n\n

    All right. At this point, let’s jump into the full-site editing outreach program. As a reminder, this is the program that I actually run, so consider this free rein to ask me whatever question you’d like, because I think probably too much about this program. But it’s something I’m really excited to talk to you about, and I think it’s a really neat vehicle for both feedback and education about full site editing.

    \n\n\n\n

    So let’s go over some big picture questions, kind of like we did earlier on, and just get the details of the way. So let’s start. What is it? So essentially, it’s just a program focused on full-site editing. It’s in the form of a Slack channel right now. I’ll go over how to join it in a bit. But it has curated calls for testing, summary posts of the feedback that we get, and various educational opportunities that you can hop in on, mainly in the form of live streams. I’m running some hallway hangouts, which are basically just Zoom calls. People can come in, and we can talk about full site editing.

    \n\n\n\n

    What’s the goal

    \n\n\n\n

    What’s the goal? So the goal is pretty simple, help improve full-site editing experience by gathering feedback from WordPress site builders. While the group originally started solely to be about feedback, there’s actually this really neat educational component that has come up as the feature has developed and as more people have gotten curious about it. So people can join just to build their own awareness about what’s happening with full-site editing and kind of just look at a glance or just help amplify the posts that are coming through.

    \n\n\n\n

    Why was it started?

    \n\n\n\n

    Why was it started? So I’m going to quote Josepha from the kickoff post. During the WordPress 5.0 retrospective, which is when Gutenberg was merged and the core editor was merged, one of the things that came up routinely was the need for better engagement with users. It was generally agreed from all levels and area of contribution that users would be most impacted by Gutenberg, but the users were also the group we had the least channels of communication to. To help get user feedback to WordPress developers a little bit more seamlessly, I’m going to try and experiment outreach program. So basically, this is a lesson that was learned from the 5.0 release. In order to prevent another situation where people are caught by surprise, this program is in place to help people get excited and on ramped and on boarded onto full-site editing, as well as getting feedback so that we know if a major workflow change is coming into play, we can actually get user feedback to make it a little bit easier.

    \n\n\n\n

    How to Join FSE Outreach Experiment

    \n\n\n\n

    All right. At this point, I bet you’re just so stoked. You’re ready to dive in. Awesome. (laughing). All you’ve got to do is join FSE Outreach Experiment in Make WordPress Slack, and then you’re all set. You’ll just get a bunch of annoying pings for me with prompts for how to test, interesting posts related to full site editing, and more. I promise it’s also not as scary as this dive, which looks absolutely terrifying, but also beautiful.

    \n\n\n\n

    High-Level Feedback from Calls for Testing

    \n\n\n\n

    So because at this point, we’re on our fifth call for testing, I want to go over some high-level pieces of feedback that we’ve actually gotten about the experience so far. Basically, across all the calls for testing, these are repeated themes that have come up. But keep in mind that because there are certain aspects that we actually haven’t tested, so global styles, for example, the UI isn’t available really for users, and it’s not refined for users, so it’s not something that we’ve had as a focus part of testing, even though there is a UI that is available. So certain things are left out purely because they aren’t necessarily ready for testing, but these are the top pieces of feedback. So bear with me.

    \n\n\n\n

    Preview Content

    \n\n\n\n

    Previewing content. Publish a post. You want to go preview it, or you’re editing a post. You want to go preview the content. The same thing is true with full site editing. This is a big thing that kept coming up. My question is, is this a necessary workflow, or is it a symptom of other problems? Because in general, the site editor should be as WYSIWYG, as what you see is what you get, as possible.

    \n\n\n\n

    So if you’re making a change, it should look exactly the same as the front end of your site, and because it doesn’t right now, it’s causing this tension. There actually is a preview site option under discussion, as well as a browse mode option, which basically, if you’re actually editing your site, it would turn off everything that wouldn’t actually show up on the front end. So if you only have one page of posts, but you have pagination set up so if you had multiple pages, that would actually go away. So as you can imagine, this is currently up for discussion, but there actually are a couple different pathways to try and address this problem. But it’s a very important one to address.

    \n\n\n\n

    Saving Process

    \n\n\n\n

    Saving process. I like to say it’s technically reliable, but not yet delightful. So basically, it’s left a lot to be desired right now, and it’s resulted in a fair bit of confusion. There’s a lot of feature requests and enhancements and bugs that have come up related to saving. This is likely because the multi-entity saving aspect that I demoed earlier is very new for WordPress users. It’s not something we’re used to having as part of our workflow. So it’s something that inherently needs some work on. So whether it was people requesting more granular saving options to show specifically what was being changed to issues with saving for screen readers to confusion around even just what the general parts mean, like what you’re actually selecting or unselecting, This was definitely a big, big area of feedback.

    \n\n\n\n

    Distinction between editing area.

    \n\n\n\n

    Distinction between editing area. So basically, because you can edit all parts of your site, it’s hard to know, “Am I editing the header for all of my site, or am I editing just a specific piece of content on a post?” This kind of distinction, jumping between different levels of, “Oh, you’re changing this. This will change everything” to “You’re just changing this one thing in this one spot” is pretty tricky. Right now, there’s not a lot of friction, and there’s not a lot clarity in the actual experience to show when you’re actually jumping between those different levels. So this was a big piece that’s come up, and it’s something that is an active area of iteration and exploration to kind of get the right amount of friction in place.

    \n\n\n\n

    Rethinking Width and Alignment.

    \n\n\n\n

    So rethinking width and alignment. Previously, alignment in full-site editing worked to optimize how traditional things worked, where basically, traditional things provided their own alignment styles. This worked okay for the project up until this point. But recently, work has been shipped to reimagine how this dynamic should work to allow for actually more control over alignments when using the site editor. This should actually help make sure that whether you want something that’s full width or you want to change the actual width of your content that’s showing up that it’ll actually be what you see is what you get. Right now, this is another piece of feedback at a high level that’s impacted what you see is what you get experience.

    \n\n\n\n

    General usability improvements.

    \n\n\n\n

    Generally usability improvements. I admit this is totally a catchall, and it covers a ton of stuff, but it’s actually a very important one to think of, because it’ll actually move the site editing experience from being just functional to actually delightful, which is really exciting. There’s a ton of issues that are included in this, including some enhancement requests, bug reports, all that good stuff. One of my favorites to talk about is creating a background image on a template part. So imagine you have a header. You’re working on it. You’re super excited, and you’re almost done. Then you’re like, “Oh, do you what would be really cool is if I had mountains in the background. Maybe I’ll add a cover block in the background and add an image and set the opacity pretty low, but have mountains going in the background of the site.” That’s really hard to do.(laughing). You basically would have to delete everything and add the block in and then add everything back. So those are the kinds of experiences that we’re trying to improve right now.

    \n\n\n\n

    Improving Placeholders.

    \n\n\n\n

    Improving placeholders. So placeholders, especially for some of the newer blocks, are a powerful way to both guide people and a current point of confusion. So you probably saw this with the navigation block earlier, where it had those little grayed boxes. It’s like, “How do we explain to people, ‘Hey, this is something you have to set up and engage with, but here’s generally what it will look like and what it will do’?” 

    \n\n\n\n

    The feedback for this mainly came into play with the query block, social icon block, featured image block, and the navigation block. Each currently actually also get users started in different ways. So not only are there different placeholders for different experiences, the actual experience of interacting with the placeholders are all pretty inconsistent right now. So I think in the long run, it seems that users will benefit a bunch from a standardized, consistent way to interact with placeholder content so that it becomes a really familiar interaction when you’re working with a more powerful block. This especially is true for the query block and navigation block.

    \n\n\n\n

    Okay, now that we’ve covered the milestones, the outreach program, high-level pieces of feedback, I’m going to quickly run through some key topics that I imagine you’re going to have questions about. Just because I cover them here does not mean I don’t want to answer questions, so please don’t see this as a sign that you can’t also still ask questions about these topics. This is just what I’ve been hearing from folks.

    \n\n\n\n

    Will full site editing take over my site?

    \n\n\n\n

    Hopefully by this point, you all can say no in a resounding way. But no, this is not something that’s going to all of a sudden, on-off switch, you upgrade to 5.8, it takes everything over. Not at all. You very much have to opt into it through using a theme blocking that supports, actually, these features. In time, more pathways are going to be built as well so that when you’re actually using full-site editing, you’ll likely be using pieces in all of it. So you could just be using the query block, or you could just be using global styles without it taking over your entire site.

    \n\n\n\n

    What about the block-based navigation and widget screens?

    \n\n\n\n

    What’s the deal there? So in case you missed it, there’s actually two additional projects that are dedicated to bringing blocks to more areas of the site outside of full site, I think. This include the navigation screens. You can build out menus and the widget screens. You can build out your widget sections, and this is pretty powerful and high-impact work. They are both separate projects that are tangential to full-site editing, but you can think of them as stepping stones, basically. So you could have a theme that is a classic theme, but it uses a block-based widget screen so that people can have the power blocks with their widgets. Essentially, the whole point, like I said, it’s a stepping stone to get people used to using blocks more places.                                                       

    \n\n\n\n

    Site builders

    \n\n\n\n

    I could write a thesis about this, because there’s so much to talk about here. I imagine I’m going to get questions about this, but essentially, full-site editing is being built partially so people don’t get stuck or locked into one site builder or another. It’s also being built in a way that site builders can actually hook into what’s being created if they choose to. I’ve heard from a lot of folks, though, that they expect full-site editing to actually fully replicate their favorite site builder’s functionality, and I’m here to say that while the goals between full-site editing and site builders are pretty similar in terms of empowering users and giving better tools to customize a site, the difference is that we’re building for 40% of the Internet, and we’re building even for site builders, where site builders have a much more targeted approach.

    \n\n\n\n

    In the future, I do think there will always be room for specific takes of how to have an ideal site editing experience, whether that’s geared to a specific group, like a marketing style approach, or if you want to have things locked down or if you want to have things opened up. But generally speaking, full-site editing is meant to actually expand the way WordPress as a whole uses blocks, so don’t expect it to fully replicate any sort of site builder, your favorite site builder, essentially.

    \n\n\n\n

    How is this going to impact themes?

    \n\n\n\n

    How is this going to impact themes? So in the long run, this should actually make theme development much easier. I think Marcus’s demonstration later will show that, and much simpler, especially with the design tools that will be essentially ready at your fingertips to tap into. Ideally, because of what’s being released, it should allow theme authors to focus less on coding and functions and more on design aesthetics, integrating block patterns, and all that good stuff. But because one of the key things I wanted to really drive home in this section, though, is that because full-site editing requires a block-based theme or a theme with certain functionality enabled, this makes theming extremely important to get right. So I’ve heard people say like, “Oh, themes are a thing of the past.” It’s very much not true. I’d actually argue the opposite, that theme is almost key to this experience, to having it be delightful and having it makes sense.

    \n\n\n\n

    What pathways are going to be created?

    \n\n\n\n

    I know I’ve talked a lot about pathways this entire time, but it is the entire focus of the final month milestone for full-site editing. So expect a lot of pathways. For now, this includes everything from having a classic theme that can take advantage of global styles to template editing or a block-based widget screen. This also includes things like allowing certain full-site editing, really, blocks to be available for users, regardless of if they’re using a classic theme or a block theme or enabling the ability to edit block templates directly, kind of like I showed in the demo earlier. So there’s going to be a ton of options here, and I’m actually really excited to see what happens once 5.8 kind of sparks the creativity of the community, because I imagine both that people will create their own pathways and start experimenting, and we’ll also get a very clear sense of, “Hey, I actually really need X, Y, and Z pathway.” We’ll get a sense of demand from the community of core, which is super exciting to have.

    \n\n\n\n

    What’s the best way to prepare? 

    \n\n\n\n

    So this depends on who you are. (laughing). So depending on whoever you are, at a high level, this is what I recommend. Join the FSE Outreach Program. I know this is the thing that I run. I’m very biased. But seriously, join it. I think it’s really, really helpful to get a sense both of feedback, what’s being currently iterated on, and just general education opportunities. If you’re a theme author, I really recommend checking out the theme experiments repo and joining the block-based theme meetings to learn about the latest and greatest, because lots of good information is shared there. In general, too, it’s often also helpful to join the weekly core editor meetings, because there’s regular updates about the projects and PRs people working on. Finally, pay attention to upcoming content on Learn WordPress, because I think there’s going to be a ton of stuff coming up about full-site editing, depending upon what’s scoped for 5.8 and 5.9, including building a block-based theme, for example. That will really help, I think, everyone level up.

    \n\n\n\n

    Stay connected with Anne McCarthy

    \n\n\n\n

    All right. So we’re at the very end. At this point, if you want to stay connected with me or you have follow-up questions after this talk, I very much welcome them. You can find me on WordPress or on Slack @annezazu, or you can reach me at my site, nomad.blog. I will also try and drop my automatic email address separately. I just won’t on a live presentation, in case you want to follow up directly via email. I’m not on Twitter. I’m not on Facebook. I’m on and off of Instagram. So please don’t try to contact me those ways.

    \n\n\n\n

    Finally, I just want to say thanks so much for your time. Let’s hear your questions at this point. I’m really excited to hear what you all are thinking and curious about. I do want to say I don’t know everything, but I can find anything, and I’ve talked with David about how he can follow up after this presentation to get you all information and answers that you all want to questions that I might not be able to answer. So at this point, I’m going to pass it off to live and current Anne and give a high-five from past Anne.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 18:21:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"WPTavern: Enō: ‘Probably This Is the Best Blogging Theme Ever’\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115149\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:163:\"https://wptavern.com/eno-probably-this-is-the-best-blogging-theme-ever?utm_source=rss&utm_medium=rss&utm_campaign=eno-probably-this-is-the-best-blogging-theme-ever\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4460:\"\n\n\n\n

    Sometimes a theme’s description is so moving that one must install, activate, and test the project. I often rail against the obviously keyword-stuffed text in the free WordPress theme directory. But, I am pleasantly surprised from time to time.

    \n\n\n\n

    Enō is an elegant, modern and functional WordPress theme. Probably this is the best blogging theme ever. Just see the demo at…It supports Gutenberg block editor and has a lot of Customizer options…

    \n\n\n\n

    Thus began my journey into Enō, an upcoming theme by Ivan Fonin. I could have been partially a language-barrier thing. Or, the author could have just been having a bit of fun. Nevertheless, it was the sort of description that stood out enough to pull into my test environment. Any blogging theme claiming the title of “the best” was at least worth a look.

    \n\n\n\n

    What I found was a well-designed theme that focused on some of those timeless elements, such as generous use of whitespace and sound typography. I would not go so far as crowning it the best ever created, but it will undoubtedly be the perfect fit for many bloggers in the future.

    \n\n\n\n

    Currently, the theme is awaiting a review before it lands in the official WordPress theme directory. However, those who want to try it out early can snag a copy of the ZIP file from its Trac ticket.

    \n\n\n\n

    Enō tackles the intricacies of block editor design like a pro. In areas where so many “block-ready” themes fail to live up to expectations, it is a textbook example of working alongside the block system.

    \n\n\n\n

    Where it falls short is that it does not go beyond nailing down the basics of block design. The theme bundles no patterns, which would allow users to quickly drop in more advanced layouts. It also does not include block styles or even a custom color palette. There are no unique elements in the design where the author stamps his own signature in bold. It is almost formulaic, but that is not necessarily a bad thing. Formula can feel good. It can be comforting when you need something that simply gets out of the way and allows your content to shine.

    \n\n\n\n

    While Fonin bills the project as a blogging theme, it stands out as a solid option for photographers. The open-canvas layout leaves ample room for large images and galleries, and the theme’s demo is filled with examples.

    \n\n\n\nGallery examples from the Enō theme.\n\n\n\n

    What would make this theme even better would be a few image and gallery styles, allowing end-users to spruce up their blocks a little more.

    \n\n\n\n

    As much as I like the theme, it does tick one of the boxes from my most-irritating-things-that-themes-do checklist. It outputs the featured image on single post views above the post content. This creates the dreaded double-image issue when a user also uses the same image in the post itself. The easy fix for this is to provide a theme option for not showing the featured image on single posts.

    \n\n\n\nNo customizer option to disable post featured image on single views.\n\n\n\n

    It is a surprise that the theme does not have this option because it allows users to enable or disable nearly everything possible outside of the post content. It has three different areas where metadata can be shown: before the post title, after the title, and after the content. Users can pick and choose what appears where via a series of checkboxes. The approach is convoluted at best and is a good representation of why we need the site editor. This is not so much the fault of the theme as it is a limitation of the customizer. Instead of ticking and unticking boxes, users could simply move blocks around to their desired location.

    \n\n\n\n

    The comments are broken in the theme at the moment. Each comment’s text is outputting a simple comma instead of the content. I am sure this will come up in the theme review and be addressed before it goes live.

    \n\n\n\n

    For users looking for a minimalist, block-ready theme, this will be a solid option once it makes it through the review process. I look forward to the day when themes like Enō are the baseline when designing for the block system.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 16 Apr 2021 17:20:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"WPTavern: Full Site Editing Is Partly a ‘Go’ for WordPress 5.8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115193\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/full-site-editing-is-partly-a-go-for-wordpress-5-8?utm_source=rss&utm_medium=rss&utm_campaign=full-site-editing-is-partly-a-go-for-wordpress-5-8\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6930:\"

    Today, Josepha Haden Chomphosy announced the results of yesterday’s “go/no-go” demo and decision on whether Full Site Editing (FSE) would land in WordPress 5.8. The site editor and global styles are not landing in the next release. However, several other features should launch and allow users to build their sites with blocks in new ways.

    \n\n\n\n

    The following people attended the demo:

    \n\n\n\n
    • Matías Ventura – Demo Host and Gutenberg Project Lead
    • Matt Mullenweg – WordPress Project Lead
    • Helen Hou-Sandí – Lead Developer
    • Josepha Haden Chomphosy – Executive Director
    • Héctor Prieto – Technical Project Manager
    • Chloé Bringmann – Assisting with administrative and operational logistics
    \n\n\n\n

    Ventura walked the group through the various FSE features that could be ready for WordPress 5.8, taking questions and discussing along the way. There was also a discussion afterward that focused on ideas beyond the next release.

    \n\n\n\n

    The following FSE-related features are expected to ship:

    \n\n\n\n
    • Improvements from Gutenberg 9.9+.
    • New theme-related blocks like Query, Site Logo, Navigation, and more.
    • theme.json integration, which allows themes to define block defaults and settings.
    • Template-editing mode for the block editor.
    • Block-based widgets screen and customizer integration.
    • New block design tools, such as duotone (SVG filters for images), layout controls, padding, and more.
    \n\n\n\n

    “Not all of the above are currently ready but there’s some level of confidence that they can be by the time of 5.8,” noted Haden Chomphosy in the post.

    \n\n\n\n

    This list feels like a solid compromise between launching some of the more polished FSE features and trying to force in those that are probably out of reach for a July 2021 release. The features also provide current users access to new block tools without activating a block-based theme.

    \n\n\n\n

    The group focused on the Query block for much of the early discussion. The Gutenberg development team will likely change the block’s user-facing name to something less confusing. It also needs a bit more polishing to make things more user-friendly. I am interested in seeing how theme authors use this in conjunction with patterns once this launches.

    \n\n\n\n

    One other feature that users should look forward to is the pattern directory. While it is not ready for integration into the WordPress admin UI, it does not need to be. Users will be able to copy patterns from the directory and paste them directly into their editor. In time, it should become a part of the built-in experience.

    \n\n\n\n

    The group seems to have made a good call on which features to include. It is easy to want to push forward and get everything into the hands of users. It can be tougher to pull back and compromise.

    \n\n\n\n

    Full video of the demo:

    \n\n\n\n
    \n\n
    \n\n\n\n

    I had two takeaways that stood out to me more than anything in the meeting.

    \n\n\n\n

    Takeaway #1: Page Template Editor

    \n\n\n\n

    In WordPress 5.8, users should gain access to the template editor. On the page-editing screen, it allows users to switch out of content-editing mode. From there, they can work on the overall template. Essentially, for this release, it would serve as a landing page builder.

    \n\n\n\n

    This is a sort of middle ground between just the block editor and the eventual site editor. I like this route because it does not overwhelm end-users with a complete site-editing experience at once. It is a helping hand, a transition from the current phase to the next, allowing users to familiarize themselves with more advanced tools.

    \n\n\n\n

    The template editor will work for all users too. They will not be required to run a block-based theme to access it. Because each template would be a one-off use case, WordPress can serve this up without theme authors opting into it.

    \n\n\n\n

    Many block-ready themes have already been including an “open canvas” type of template. This would remove the need for those unless also including it for third-party builders. It would also solve the portability issue when users switch from a theme that bundles the template and one that does not.

    \n\n\n\n

    Takeaway #2: Many Block-Based Themes

    \n\n\n\n

    At the end of the discussion, the group was more or less spitballing some ideas beyond version 5.8. In particular, Hou-Sandí shared a vision of what theme development for the official directory could look like in the era of FSE.

    \n\n\n\n

    “Because the full site editing, like from a user-facing point of view, is not about page building all the time,” she said. “It’s about tweaking what’s there. Yeah. So I feel like the correct thing for core to do in terms of bundled themes is actually a bunch of small bundled themes.”

    \n\n\n\n

    I have previously written about how work on Twenty Twenty-Two should already be underway instead of waiting until the last moment to piece a new default theme together for the end-of-the-year launch. The yearly default theme system has served the community well for over a decade now. I am already warming to the idea of turning it on its head and forging a new path.

    \n\n\n\n

    With FSE, developers do not necessarily have to follow all of the rules of traditional themes. Themes like Kjell Reigstad’s Carrd-like, two-column landing page theme would be well-suited to such an experiment. Smaller, more experimental projects like this could replace the old Twenty* theme system with something new or even complement it.

    \n\n\n\n

    Hou-Sandí also threw out a few ideas around building block-based themes via a library of CC0 images, the patterns directory, and copying/pasting things from WordPress.org. She likened it to the CSS Zen Garden era. It could even open the possibility of bypassing the theme review process since everything would be pre-vetted.

    \n\n\n\n

    But, these are thoughts for tomorrow. For now, we are at least getting some initial FSE components.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 21:54:15 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WPTavern: Zerodium Temporarily Triples Payout to $300K for WordPress Exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115080\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:197:\"https://wptavern.com/zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits?utm_source=rss&utm_medium=rss&utm_campaign=zerodium-temporarily-triples-payout-to-300k-for-wordpress-exploits\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4216:\"

    Zerodium, one of the most well-known security vulnerability brokers, announced that it is tripling payouts for remote code execution exploits on default WordPress installations. Payouts are typically $100K but have been temporarily increased to $300K.

    \n\n\n\n

    The company focuses on acquiring original and previously unreported zero-day research. It pays researchers for high-risk vulnerabilities and fully functional exploits, with the highest rewards at $2.5M for ‘full chain, zero-click, with persistence’ Android exploits. This price tag was increased from $200K in September 2019, suggesting Android exploits have become more difficult to find or that demand for them has increased significantly.

    \n\n\n\n
    \n

    We\'re temporarily increasing our payouts for WordPress RCEs to $300,000 per exploit (usually $100K).

    The exploit must work with latest WordPress, default install, no third-party plugins, no auth, no user interaction!

    If you have this gem, contact us: https://t.co/PBuS1nnpED

    — Zerodium (@Zerodium) April 9, 2021
    \n
    \n\n\n\n

    Exploit resellers operate within a sort of grey area of security research. As a standard practice, security researchers are encouraged to report vulnerabilities to the original developer of the software, not an intermediary that may pass it along to a party that may not use the information for good. The appeal of these companies is that they pay more than most organizations, hence the tagline: “We pay BIG bounties, not bug bounties.”

    \n\n\n\n

    WordPress has an account with Hackerone to pay security researchers for vulnerabilities but payouts are much smaller in comparison to what exploit brokers pay. This makes it a tough choice for security researchers who do this for a living. Professional zero-day hunters are looking for the highest payouts for the vulnerabilities they find, which can sometimes take months or longer.

    \n\n\n\n
    \n\n\n\n

    Zerodium does not reveal who its clients are or what their purpose is for buying the the vulnerabilities. The best case scenario would be a government entity wanting to secure its own systems. Even then one cannot guarantee that they use the exploit ethically or that they don’t inadvertently leak the exploits where they could be used maliciously by others.

    \n\n\n\n

    Zerodium did not elaborate on why it has increased payouts for WordPress exploits to $300K. WPScan speculates that the company may suddenly have a greater demand for WordPress RCE exploits, combined with WordPress becoming more secure:

    \n\n\n\n

    This could indicate that WordPress is becoming more secure and that it is getting harder to find the critical security issues that buyers want. On the other hand, we must also assume that these types of exploits already exist and are already being actively sold on Zerodium and other similar platforms.

    We could also conclude that if a government is going to pay more than $300,000 on a WordPress RCE exploit, that they intend to use it. World governments may even barter over the exploits so that the seller, in this case, Zerodium, gets the best price.

    \n\n\n\n

    WPScan also emphasized that with WordPress having such a large presence on the web, an exploit against core with those particular characteristics “would be devastating to the web as a whole if it landed in the wrong hands.”

    \n\n\n\n

    “Zerodium increasing their prices may indicate that it is becoming harder to find these critical issues in WordPress Core,” WPScan founder and CEO Ryan Dewhurst said. “That, at least, should be good news for WordPress and the web as a whole.”

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 18:11:04 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WordPress.org blog: WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10144\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:84:\"https://wordpress.org/news/2021/04/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8387:\"

    WordPress 5.7.1 is now available!

    \n\n\n\n

    This security and maintenance release features 26 bug fixes in addition to two security fixes. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.

    \n\n\n\n

    WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.

    \n\n\n\n

    You can download WordPress 5.7.1 by downloading from WordPress.org, or visit your Dashboard → Updates and click Update Now.

    \n\n\n\n

    If you have sites that support automatic background updates, they’ve already started the update process.

    \n\n\n\n

    Security Updates

    \n\n\n\n

    Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:

    \n\n\n\n
    • Thank you SonarSource for reporting an XXE vulnerability within the media library affecting PHP 8.
    • Thanks Mikael Korpela for reporting a data exposure vulnerability within the REST API.
    \n\n\n\n

    Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

    \n\n\n\n

    Props to Adam Zielinski, Pascal Birchler, Peter Wilson, Juliette Reinders Folmer, Alex Concha, Ehtisham Siddiqui, Timothy Jacobs and the WordPress security team for their work on these issues.

    \n\n\n\n

    For more information, browse the full list of changes on Trac, or check out the version 5.7.1 HelpHub documentation page.

    \n\n\n\n

    Thanks and props!

    \n\n\n\n

    The 5.7.1 release was led by @peterwilsoncc and @audrasjb.

    \n\n\n\n

    In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:

    \n\n\n\n

    99w, Adam Silverstein, Andrew Ozz, annalamprou, anotherdave, Ari Stathopoulos, Ayesh Karunaratne, bobbingwide, Brecht, Daniel Richards, David Baumwald, dkoo, Dominik Schilling, dragongate, eatsleepcode, Ella van Durpe, Erik, Fabian Pimminger, Felix Arntz, Florian TIAR, gab81, Gal Baras, Geoffrey, George Mamadashvili, Glen Davies, Greg Ziółkowski, grzim, Ipstenu (Mika Epstein), Jake Spurlock, Jayman Pandya, Jb Audras, Joen A., Johan Jonk Stenström, Johannes Kinast, John Blackbourn, John James Jacoby, Jonathan Desrosiers, Josee Wouters, Joy, k3nsai, Kelly Choyce-Dwan, Kerry Liu, Marius L. J., Mel Choyce-Dwan, Mikhail Kobzarev, mmuyskens, Mukesh Panchal, nicegamer7, Otshelnik-Fm, Paal Joachim Romdahl, palmiak, Pascal Birchler, Peter Wilson, pwallner, Rachel Baker, Riad Benguella, Rinat Khaziev, Robert Anderson, Roger Theriault, Sergey Biryukov, Sergey Yakimov, SirStuey, stefanjoebstl, Stephen Bernhardt, Sumit Singh, Sybre Waaijer, Synchro, Terri Ann, tigertech, Timothy Jacobs, tmatsuur, TobiasBg, Tonya Mork, Toru Miki, Ulrich, and Vlad T.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 03:05:01 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Peter Wilson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: FSE Outreach Round #5: Venturing out a Query Quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115153\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:161:\"https://wptavern.com/fse-outreach-round-5-venturing-out-a-query-quest?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-round-5-venturing-out-a-query-quest\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5293:\"

    The Full Site Editing (FSE) outreach program is chugging along. Since December, it has called for and completed four rounds of testing. The latest round asks volunteers to provide feedback on the Query block, arguably one of the most crucial pieces of the FSE-puzzle.

    \n\n\n\n

    Automattic Developer Relations Wrangler Anne McCarthy has been overseeing the program since its inception. Each round of testing asks participants to follow along with a set of instructions while testing a specific feature related to FSE. They can then provide feedback on what does or does not work. Thus far, the program has tested and identified issues for template-editing mode, building a custom homepage, creating a 404 page, and wrangling a restaurant-themed header.

    \n\n\n\n

    Volunteers for the program should install the latest version of the Gutenberg plugin and the TT1 Blocks theme. Participation is open to all, and further details are available through the announcement post.

    \n\n\n\n

    The latest test is all about the Query block — McCarthy is dubbing it a “Query Quest.”

    \n\n\n\n

    “Not many blocks get an entire milestone dedicated to them but the Query Block did!” she wrote. “As the name implies, this is a pretty powerful block allowing you to display posts/pages on your site and customize them as you see fit. For example, you could easily use this block to show off all of your favorite recipes by setting it up to show a specific category of posts.”

    \n\n\n\n

    Generally, theme authors will primarily work with this block. However, for those end-users who will inevitably want to customize post output on their sites, they may need to at least have some basic familiarity with it or its block variations.

    \n\n\n\n

    Building With the Query Block

    \n\n\n\n

    Following the instructions for the testing round netted fairly consistent results between the editor and front end. Each step walks participants through the process of assembling a two-column page with posts from separate categories. Within just a few minutes, I built a few demo posts with custom categories named “Veggie Garden” and “Fruit Trees” (side note: these are pics of my plants). I sped through the process with no issues.

    \n\n\n\nUsing Columns to output two category-based Query blocks.\n\n\n\n

    However, I am a bit of a pro at this point with the Query block. It is one feature I have been eyeing at least every week for months.

    \n\n\n\n

    The two primary issues I ran into were with the “read more” link and spacing. For the more-link, it simply did not appear on the front end. When viewing the source code, the wrapper HTML was there, but the actual text was nowhere to be found.

    \n\n\n\n

    As for spacing, this is more of a theme problem. I have harped on this issue in past testing rounds, and it is the same ol’ tune. TT1 Blocks failed to produce consistent spacing between the front and back end. One example is when using the Post Featured Image block followed by the Post Excerpt block. In the editor, there is little whitespace between the two. On the front end, there is ample room.

    \n\n\n\n

    Some might say it is the most vital part of page building — nailing down the layout. I have voiced my concerns ad nauseam on spacing, so I have nothing new to report on the subject.

    \n\n\n\n

    I decided to take a few extra steps and move beyond the basic testing instructions. Because it is springtime, I have been enjoying the outdoors a bit more as of late. I wanted to spruce up my Query block design. I wrapped the initial design in a Cover block with a garden-related background image, dropped in some header and intro text, and created boxes for my posts with the Group block. With a splash of color, some font-size changes, and a Spacer block here and there, I built something with a tiny bit more personality.

    \n\n\n\nCustom layout with the Query, Cover, and Columns blocks.\n\n\n\n

    Testing never has to be boring. I encourage participants to grab inspiration from their own lives as they venture out on their Query Quest.

    \n\n\n\n

    While I have my complaints about the site editor and realize we are miles away from the long-term vision, it is also amazing what is now possible. Even six months ago, building something as simple as this was not happening. More and more each day, I believe a public beta of the site editor and other FSE components in WordPress 5.8 is not such a bad idea.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 22:38:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"BuddyPress: BuddyPress 7.3.0 Maintenance & Security Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318066\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://buddypress.org/2021/04/buddypress-7-3-0-maintenance-security-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1768:\"

    BuddyPress 7.3.0 is now available. This is a security and maintenance release. All BuddyPress installations are strongly encouraged to upgrade as soon as possible.

    \n\n\n\n

    The 7.3.0 release addresses four security issues:

    \n\n\n\n
    • A vulnerability was fixed that could allow a member to create a group on behalf of another member via a REST API endpoint.
    • A vulnerability was fixed that could allow members to favorite any private/hidden activities they shouldn’t access to via a REST API endpoint.
    • A vulnerability was fixed that could allow the creator of a group to still be able to update or delete it after being demoted as a regular member of it via a REST API endpoint.
    • A vulnerability was fixed that could allow group’s banned members to remove themselves from the group and still be able to join it or request a membership to it via a REST API endpoint.
    \n\n\n\n

    These vulnerabilities were reported privately to the BuddyPress team by Kien Hoang, in accordance with WordPress’s security policies. Our thanks to the reporter for practicing coordinated disclosure.

    \n\n\n\n

    Version 7.3.0 also fixes a bug about our WP CLI Scaffold command.

    \n\n\n\n

    For complete details, visit the 7.3.0 changelog.

    \n\n\n\n

    Update to BuddyPress 7.3.0 today in your WordPress Dashboard, or by downloading from the WordPress.org plugin repository.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 05:09:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"WPTavern: WordCamp Europe 2021 Opens Call for Speakers and Workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115025\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:181:\"https://wptavern.com/wordcamp-europe-2021-opens-call-for-speakers-and-workshops?utm_source=rss&utm_medium=rss&utm_campaign=wordcamp-europe-2021-opens-call-for-speakers-and-workshops\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1836:\"

    WordCamp Europe 2021 will be taking place online, June 7-10. This will be the second year in a row that the event has not been held in person due to the pandemic, but organizers are incorporating feedback from the first edition to improve upon it.

    \n\n\n\n

    Speaker applications are now open and first-time speakers are encouraged to apply. Organizers posted a list of example topics for inspiration, including advanced development, frameworks, security, storytelling, website performance optimization, and more.

    \n\n\n\n

    WCEU 2021 will be running two tracks, with two different presentation formats: long talks (20-minute talk with a 10-minute Q&A) and lightning talks (10-minute talk with a 5-minute Q&A). Prospective speakers are allowed to submit up to three different presentation topics on their applications. The call for speakers is open until April 24, 2021, and selected speakers will be contacted the first week of May ahead of mid-May public announcements.

    \n\n\n\n

    WCEU organizers also plan to continue the successful tradition of hosting workshops after 77% of attendees who completed a feedback survey requested their return. Workshop sessions will be 45 minutes long and hosts will have workshop assistants available to them. Organizers are aiming to schedule a diverse lineup of workshops with topics like “Starting with WordPress,” accessibility, development, security, and SEO, to name a few.

    \n\n\n\n

    The call for workshops is on the same timeline as speaker selection, with a closing date of April 24, 2021.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:40:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:172:\"HeroPress: A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3529\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:152:\"https://heropress.com/essays/a-journey-toward-freedom-with-wordpress/#utm_source=rss&utm_medium=rss&utm_campaign=a-journey-toward-freedom-with-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:46477:\"\"Pull

    यो लेख नेपाली भाषामा पनि उपलब्ध छ।

    \n

    Hello world!

    \n

    “Always be thankful for what you have, many people have nothing!” – Buddha

    \n

    Yes, I’m immensely grateful to be writing this essay! I’m fortunate to have had the education that gave me the capacity to aspire, get into a WordPress job, meet people from around the world, connect with Topher of HeroPress, and tell my story!

    \n

    How I Landed Into a WordPress Job

    \n

    My WordPress journey began by chance! Honestly, I didn’t know WordPress until I landed on a WordPress job.

    \n

    Back then, I was doing my Master’s degree in Sociology and had just left my work as a school teacher. I was looking for a job that would allow me to focus on my study and pay me a decent salary.

    \n

    I had a long career of over 5 years in teaching which was a full-time job. In addition to 9 AM to 5 PM work, we had to work extra hours at home – designing lesson plans, evaluating assignment works, exams, etc. – so I was finding it hard to manage time for my own study. I just needed a job that wouldn’t require me to work after office hours.

    \n

    After applying to several different positions, I finally got a content writing job. Fortunately, the company turned out to be a successful WordPress development company based in Nepal (Access Keys).

    \n

    Well, it’s how my WordPress story began! But it’s not the full story.

    \n

    For Hope! My Family’s Struggle for Education

    \n

    I come from a remote village in the hills of Nepal, not connected by any means of transportation until recently. We had to walk a minimum of an hour to go to the nearest school, from where I completed my secondary education.

    \n

    But that time wasn’t just about walking hours to reach school. It was also about poverty, hardships, and the burning desire to overcome them someday!

    \n

    Schools were first opened in the late 1970s in our village but my parents couldn’t even complete the lower secondary level. Pervasive poverty and lack of awareness both were responsible for it.

    \n

    Time passed but our family’s financial condition was still the same. But my parents had understood that the only way out of it was education. Hence, they decided to send us to school, no matter what. Our father sometimes as a seasonal migrant worker to India, sometimes as a porter, brought us (me and my siblings) school supplies. Our mother worked day and night, managed home, family, and our farm.

    \n

    After completing secondary level education, I moved to a nearby city in the guardianship of my aunt. With minimal financial support from my parents, my aunt helped me complete higher secondary school.

    \n

    However, she had her own hardships. She was a single mother without any academic degree so had to work minimum-wage jobs which hardly met her and her family’s needs.

    \n

    Therefore, I couldn’t simply add to her burden. And on the other side, my parents had to support my younger siblings too. So, the only choice I had, if I wanted to study further, was to support myself, for which I started teaching in a school.

    \n

    Breakthrough through English Language Skills

    \n

    I got my life’s first job but it wasn’t easy. I joined a private English-medium school as a teacher. But my schooling as well as the undergraduate program had been in our national language, Nepali, and not in English. We had “English” as a subject in school but the teacher taught us English in the Nepali language. We never spoke in English. Yet, my English writing was fine as I was a good student.

    \n

    When I joined an English medium school as a teacher, I had no choice but to improve my English. I practiced speaking English with primary-level students. Within a year, my spoken English improved considerably.

    \n

    Along with my teaching job, I continued my college. It was a super-busy schedule but was the only option I had! With my earnings, I paid my college fees, covered some of my living expenses, and also supported my family. Well, this is how I completed my Bachelor’s degree and started my Master’s degree too.

    \n

    Later on, the same teaching job that I started to sustain myself enabled me to apply for an English content writing job! As of now, I’m quite confident about my English language skills but still feel hesitant when I have to talk with native speakers.

    \n

    My WordPress Journey – Toward Freedom

    \n

    As I stated earlier, I landed on my first WordPress job when I was looking for the type of job that would allow me free time for my study. Yes, and that’s from where my journey toward freedom began!

    \n

    During my interview, I explained to the CEO of Access Keys (Arjun Singh Thakuri) about the flexibility that I need in my new job so that I could also focus well on my studies. I was hired and could join from 11 AM instead of the usual 9:30 AM after attending my classes in the morning. It was a moment of gratitude and great relief for me!

    \n

    I learnt WordPress at Access Keys. First, by reading Wikipedia and other blogs on the web. Second, from Arjun sir as well as from the senior developers and the designers at the company. I used to have a lot of questions, and my team at Access Keys helped me get answers to those questions. Third, by doing. I set up a WordPress.com blog, a testing site on localhost, and tried different options.

    \n

    My curiosity was definitely the driving force, but above all, ‘the way WordPress is built’ is what made it possible for someone like me (with no technical background) to understand a powerful website creation software, WordPress.

    \n

    As for content writing skills, I started with list articles (theme collections). Arjun sir mentored me for my first few articles. Later, Access Keys hired an experienced SEO professional Amin Ghale who taught me more about SEO and content writing. He is a mentor cum brother to me.

    \n

    When in Access Keys, I joined WordCamp for the first time – WordCamp Nepal 2015. The event was grand! I met people involved in WordPress from other companies in Nepal and abroad, heard their stories, and learnt about new innovations in WordPress!

    \n

    I was truly enthralled by the event and had truly wished to give a presentation in a WordCamp someday. And I did, the very next year! I shared what I had learnt so far on the title ‘SEO Copywriting for WordPress’ at WordCamp Kathmandu 2016.

    \n

    Later, I also joined a panel ‘Girls in WordPress – Story, Experience, Opportunity, and Career’ in WordCamp Biratnagar 2018 along with a dear friend Ganga Kafle and my WordPress sister Prithu Singh Thakuri. Now, looking forward to joining some international WordCamps!

    \n\n\"Speaking\n\"Sunita\n\"\"\n\"A\n\n

    About my WordPress career, I’m still in WordPress content writing.

    \n

    After Access Keys, I went to ThemeGrill, another successful WordPress business in Nepal, with even more flexibility and freedom in the working hours.  Sanjip Shah and Rabin Shrestha (Founders of ThemeGrill) encouraged me to learn and explore this field even more. After some time, ThemeGrill hired a few new writers and I started mentoring them.

    \n

    Next, I joined Awesome Motive, the company behind the popular WPBeginner blog. In the beginning, I wrote for IsItWP and MonsterInsights blog but later also got the opportunity to write for WPBeginner. When at Awesome Motive, I got an even better opportunity to learn WordPress and marketing skills.

    \n

    My supervisors Shahzad Saeed from India, Noumaan Yaqoob from Pakistan, Lauren Tharp, and Keri Lynn Engel from the United States helped me be better at my work. Above all, I was super lucky to have Syed Balkhi himself tutoring me every week on various aspects of content writing and marketing. I still remember how he explained the “success gap” over multiple calls, over weeks. He’s really a wonderful mentor!

    \n

    As of now, I work with beginners who’re just starting their careers in WordPress content writing. I’m trying to help small WordPress businesses and blogs with the marketing skills I’ve acquired so far. For example, SiteSaga.com, ZakraTheme.com are some of the sites I’m currently working on. Yet, I feel there’s a lot more for me to learn!

    \n

    Now, I want to make my final and important point – freedom!

    \n

    First, my WordPress job allowed me the freedom to work on my time (so I could manage time for my study too). But more importantly, I meant the ‘economic freedom’.

    \n

    For an individual, economic independence is a major freedom factor! Income isn’t everything, but definitely a basic aspect of human development!

    \n

    My salary at my first WordPress job wasn’t high, but increments since then are cool! Plus, we can always do some extra work. For instance, after my talk at WordCamp, I got a lot of freelance work opportunities, which I did during my free time and earned some extra bucks. Then, I was able to support my family even better.

    \n

    Finally, it’s the ‘feeling of freedom’ that, I have now, enabled me to share this story. I always had an ‘inferiority complex’ due to which I could never tell anyone about my family or our socio-economic background. Even if someone asked, I’d simply avoid the question or lie to them.

    \n

    I’ve now overcome the situation as well as the fear of being judged. And, I believe it’s the ‘freedom’ in its truest sense.

    \n

    That’s my story of freedom! Story of our freedom!

    \n

    Now is Great! I Have Greater Aspiration for the Future!

    \n

    Yes, now is great! I have a good career as a WordPress content writer, editor, and mentor. I also joined the MPhil degree and will soon complete it.

    \n

    For the future, have greater aspirations!

    \n
      \n
    1. I hope to continue doing what I do – teaching beginners copywriting skills and help them achieve their part of freedom. WordPress is a gift for people like me!
    2. \n
    3. I want to earn a Doctorate degree; not yet content being a student! I haven’t planned it yet but I really wish to do it in this life!
    4. \n
    5. I want to give back to my community. Our village hasn’t changed much – still struggling with poverty. Even today, most students from my village fail to complete their university degree in lack of a support system. I firmly believe education is vital to change; for individuals as well as society as a whole. So, I really wish to work on it but I’m not yet sure how! I hope time will answer!
    6. \n
    \n

    Thanks for reading my story! Thanks, dear friend Topher for this opportunity! It’s a privilege to be sharing my story on HeroPress (feeling like a hero!). :D

    \n

    Thank you to every single individual who supported my journey to this date! And, thanks to the universe for everything I have!

    \n
    \n

    वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा

    \n

    नमस्कार संसार!

    \n

    तपाईंसँग जे छ त्यसैमा सदैव कृतग्य रहनु, किनकी धेरै मानिसहरू संग केहि पनि हुन्न। – बुद्ध

    \n

    हो, म यो लेख लेख्दै गर्दा एकदमै खुसी र आभारि छु। म आफुलाई एकदमै भाग्यमानी ठान्दछु कि मैले जस्तोसुकै परिस्थितिमा पनि शिक्षा आर्जन गर्न पाए जसले मलाई सपना देख्न प्रेरित गर्यो, वर्डप्रेसमा काम गर्न सक्षम बनायो, संसारभरिका मानिससंग भेटघाट गर्ने अवसर दिलायो, हिरोप्रेसका टोफर संग भेत्न र मेरो कथा सबैसंग बाड्ने अवसर दिलायो।

    \n

    मेरो वर्डप्रेस यात्राको शुरुवात

    \n

    मेरो वर्डप्रेस यात्रा संयोगवश सुरु भएको हो। साच्चिकै भन्नुपर्दा मैले काम गर्न सुरु गर्नु भन्दा अगाडी मलाई वर्डप्रेसको बारेमा केही पनि थाहा थिएन।

    \n

    त्यो समयमा म समाजशास्त्र बिषयमा मास्टर डिग्री गरिरहेकी थिएँ। समयको अभावले गर्दा भर्खरै विद्यालय शिक्षण पेशाको काम पनि छोडेको थिएं। त्यसैले म यस्तो कामको खोजीमा थिए जुन बाट राम्रो तलब र मेरो पढाईको लागि केहि समय पनि बच्न सक्थ्यो।

    \n

    मैले शिक्षण पेशामा लगभग ५ बर्ष सम्म काम गरें। ती दिनहरुमा म विहान ९ बजेदेखि दिउँसो ५ बजे सम्म स्कुल पढाउथे । अनि फेरि राति अर्को दिनको कक्षाका लागि तयारी र गृहकार्य जाँच गर्दा गर्दै ठिक्क हुन्थ्यो। जसले गर्दा मलाई आफ्नो पढाई सम्हाल्न गाह्रो भइरहेको थियो। त्यसैले मलाई खासगरि अफिस समयपश्चात अरु थप काम गर्नु नपर्ने खालको काम चाहिएको थियो।

    \n

    धेरै खालको जागिरहरूमा आवेदन दिएपश्चात बल्ल कन्टेन्ट राइटिङ्ग (इन्टरनेटको लागि लेख लेखन) को जागिर पाए। भाग्यवश मैले काम पाएको कम्पनी वर्डप्रेस विकासको क्षेत्रमा नेपालको एक सफल कम्पनी रहेछ (एक्सेस किइज)।

    \n

    हो यसरी नै मेरो वर्डप्रेसको यात्रा सुरु भयो, तर यो नै सम्पुर्ण कथा भने हैन।

    \n

    शिक्षाको लागि मेरो परिवारको संघर्ष र आशा

    \n

    नेपाल को पहाडी भेगमा अवस्थित एउटा गाउँमा मेरो जन्म भएको हो जहाँ आवतजावत गर्नलाई अझैसम्मपनि भरपर्दो सडक अनि गाडीहरूको ब्यबस्था भएको छैन। हाम्रो घरबाट नजिकैको विद्यालय नै १ घण्टा को बाटो हिडेर पुग्नुपर्थ्यो र त्यहि विद्यालय बाट मैले कक्षा १० सम्म को अध्ययन पुरा गरें।

    \n

    तर हाम्रो गाउँको त्यो समय घन्टौ हिड्नुपर्ने दुखका बारेमा मात्र थिएन। सर्वत्र ब्याप्त गरिवी, खानलाउनको लागि कठिन संघर्ष, र यि तमाम दुखबाट कुनै दिन मुक्त हुने प्रबल आकङ्क्षाको पनि समय थियो।

    \n

    हाम्रो गाउँमा विद्यालय सन १९७० को दशक अन्त्य तिर खुले तर मेरो आमाबाबुले भने गरिवी र अशिक्षाको कारण निम्न माध्यमिक तहको शिक्षा सम्म पनि पुरा गर्न सक्नुभएन। समय बित्यो, हामि बिद्यालय जान थाल्यौ तर पनि हाम्रो परिवारको आर्थिक अवस्थामा भने कुनै सुधार आएको थिएन। तरपनि मेरा बुबाआमाले भने शिक्षाको महत्व बुझिसक्नु भएको थियो। त्यसैले उहाहरुले जस्तो सुकै अप्ठ्यारो परिस्थिति भए पनि हामी लाई विद्यालय पठाउने निधो गर्नुभयो।

    \n

    आपा (राई बान्तावा भाषामा बुबा) कहिले भारततिर मौसमी कामदार को रूपमा त कहिले भरियाको रूपमा काम गर्न जानुहुन्थ्यो। अनि फर्केर आउँदा म र मेरो बहिनीहरू लाई किताब कापी र स्कुलको कपडा हरू ल्याइदिनु हुन्थ्यो। हाम्रो आमा भने रातदिन आफैं खटेर घरपरिवार, खेतिपाती र गाइबस्तु सम्हाल्नु हुन्थो।

    \n

    गाउँकै बिध्यालय बाट माध्यमिक तह उत्तीर्ण गरीसके पछि म नजिकै को सहरमा फुपुसंग बस्दै पढ्न थालें। मेरो फुपुले मलाई उच्च शिक्षा हासिल गर्नमा धेरै मद्दत गर्नुभएको छ।

    \n

    तर त्यो बेला उहाँको लागि पनि कठिन समय थियो। कुनै पनि शैक्षिक डिग्रि नभएको एक एकल महिलाका लागि सहरमा आफु अनि आफ्नो सन्तानलाइ पाल्नु, हुर्काउनु, पढाउनु सानो दुख थिएन। उहाँले दिनभर ज्याला मजदुरि गरेर कमाएको पैसाले बिहानबेलुका को छाक टार्न मै ठिक्क हुन्थ्यो।

    \n

    त्यसैले म आफैंपनि उहाँमाथि अझ भार थपिन चाहन्नथे। फेरि अर्को तर्फ मेरो बाबाआमा ले पनि त अरु साना बहिनीहरू लाई हेर्नुपर्थ्यो। अब भने मसंग आफ्नो उच्च शिक्षालाइ निरन्तरता दिनको लागि एउटै मात्र बिकल्प थियो – आफैले कमाएर पढ्ने। यसैकारण मैले एउटा विद्यालयमा पढाउन शुरु गरें।

    \n

    अङ्ग्रेजी भाषाको ज्ञानमार्फत उडान आरम्भ

    \n

    मैले मेरो जीवनको पहिलो जागिर त पाए तर त्यो सोचेजस्तो सजिलो थिएन। मैले शिक्षक को रूपमा एक निजी विद्यालयमा प्रबेश गरे। तर म आफैले भने सरकारी विद्यालयमा पढेको थिए जहाँ नेपाली भाषामा पढाई हुन्थ्यो। हाम्रो कक्षामा अङ्ग्रेजी एउटा मात्र अनिवार्य विषय थियो तर त्यो पनि शिक्षकहरु ले नेपाली भाषामा नै पढाउनु हुन्थ्यो। हामीले कहिल्यै पनि अङ्ग्रेजी भाषा बोलेनौं। यधपी म राम्रो बिध्यार्थीहरु मध्यको एक थिए, जसकारण मेरो अङ्ग्रेजी लेखन भने सामान्यतया राम्रो नै थियो।

    \n

    मैले अङ्ग्रेजी शिक्षकको रूपमा पढाउन थालिसके पछि भने मसंग अङ्ग्रेजी सुधार्नु भन्दा अरू कुनै उपाए थिएन। त्यसैले मैले प्राथमिक तहका बिध्यार्थीहरूसँग अङ्ग्रेजीमा बोल्न सुरु गरें। फलस्वरूप एकवर्ष भित्र मेरो अङ्ग्रेजी बोलाईमा धेरै सुधार आयो।

    \n

    शिक्षण पेशासंगै मैले मेरो पढाईलाई पनि अगाडि बढाउदै लगें। त्यो बेला मेरो दैनिकि धेरै नै व्यस्त थियो, तर फेरि अर्को विकल्प पनि त थिएन। मेरो तलबले आफ्नो पढाई खर्च जुटाउँदै अलिअलि परिवार लाई पनि सहयोग गर्न थाले। हो यसरी नै मैले ब्याचलर डिग्री पुरा गरें र मास्टर डिग्री पनि शुरु गरें।

    \n

    मैले आफ्नो आवश्यकता पुर्ति गर्नको लागि सुरु गरेको शिक्षण पेशाले नै मलाई अङ्ग्रेजी कन्टेन्ट राइटिङ्गको जागिरमा आवेदन दिने साहस दियो। अहिलेको कु्रा गर्ने हो भने, म मेरो अङ्ग्रेजी भाषाको बोलाई र लेखाईसंग केही हदसम्म विश्वस्त छु तर अझै पनि अङ्ग्रेजी नै मातृभाषा भएका बिदेशिहरुका अगाडि बोल्न भने केहि हिच्किचाउछु।

    \n

    मेरो वर्डप्रेस यात्राः स्वतन्त्रता तिर

    \n

    मैले अगाडि नै भनेको जस्तै मेरो पढाईलाई हानी नगर्ने खालको काम खोज्दै गर्दा संयोगवश वर्डप्रेसमा प्रवेश गरेको थिएँ। र यहि बाट नै मेरो स्वतन्त्रता तिर को यात्रा सुरु भएको हो।

    \n

    मैले कामको लागि अन्तर्वार्ता दिँदै गर्दा नै एक्सेस किइज कम्पनीको प्रमुख (अर्जुन सिंह ठकुरी) संग आफ्नो पढाईको लागि चाहिने समयको बारेमा पनि कुरा गरेको थिएँ। उहाँले सजिलैसंग सहमति जनाउनु भयो। फलस्वरूप मैले आफ्नो बिहान को कलेज सकेर ११ बजेदेखि कार्यालय जाने भए जबकि अफिस समय भने ९ः३० बजे नै शुरु हुन्थ्यो। त्यो पल मेरो लागि कृतज्ञता र ठूलो राहतको क्षण थियो।

    \n

    एक्सेस किइज कम्पनीमा काम गर्दा नै मैले वर्डप्रेस सिके। पहिलो, विकिपीडिया र अन्य ब्लग हरूलाई धेरै पढे। दोस्रो, नजानेको सानासाना कुराहरू अर्जुन सर र अरू अनुभबी कर्मचारी (डेभलपर, डिजाइनर) हरु संग सोध्थे। र उहाँ हरूले पनि धेरै सहयोग गर्नुहुन्थ्यो। तेस्रो, मैले आफैले वर्डप्रेस डटकम ब्लग स्थापना गरें, परिक्षणका लागि वेबसाइट बनाए र त्यहाँ हरेक कुरा जान्ने र बुझ्ने कोशिस गरे।

    \n

    अवश्य पनि मेरो जिज्ञासु भावना नै मलाई अगाडि बढाउने शक्ती थियो। यधपी म जस्तो प्राविधिक पृष्ठभूमि नभएको ब्यक्तिलाई वेबसाइट बनाउन सक्ने शक्तिशाली सफ्टवेयर, वर्डप्रेस को बारेमा बुझाउनमा भने वर्डप्रेस आफै सरल हुनु र इन्टरनेटमा प्रशस्ट सामग्रि पाइनुको ठूलो भुमिका छ।

    \n

    मैले कन्टेन्ट राइटिङ्ग गर्ने क्रमको शुरुवात भने वर्डप्रेस थिमको सुचि बनाउने लेखहरुबाट गरें। सुरूको लेखहरूमा अर्जुन सर नै मेरो सल्लाहकारको रूपमा रहनु भयो। पछि एक्सेस किइज कम्पनीले अनुभबी एसईओ विज्ञ अमिन घले लाइ नियुक्ति गर्यो र उहाँले नै मलाई धेरै कुराहरु सिकाउनुभयो। उहा मेरो गुरुका साथै दाई पनि हुनुहुन्छ।

    \n

    म एक्सेस किइज कम्पनीमा काम गरिरहेकै बखत पहिलो पटक “वर्डक्याम्प नेपाल २०१५“ मा सहभागी भए। यो कार्यक्रम भव्य थियो। मैले त्यहाँ वर्डप्रेसमा काम गर्ने नेपालका तथा अन्य देशबाट आएका ब्यक्तिहरुसंग भेटें, उनीहरूको कथा सुने र वर्डप्रेसको बारेमा अझ नयाँनयाँ कुराहरु थाहा पाए।

    \n

    म त्यो कार्यक्रमबाट धेरै नै प्रभावित भए र त्यतिबेलानै कुनै दिन वर्डक्याम्पमा वक्तव्य दिने अठोट गरे। नभन्दै मैले अर्को सालको “वर्डक्याम्प काठमान्डु २०१६“ मा वक्ता को रूपमा सहभागी भए र “वर्डप्रेसको लागि एसइओ कपिराईटिङ“ शिर्षक मा वक्तव्य दिए।

    \n

    पछि फेरि बिराटनगर मा आयोजना भएको “वर्डक्याम्प बिराटनगर २०१८“ मा पनि सहभागी भए। यसमा म, साथी गंगा काफ्ले र प्यारी बहिनी प्रिठु शिंह थकुरीले “वर्डप्रेसमा केटीहरुः अनुभव, कथा, अवसर, र चुनौती“ शिर्षक मा छलफल गरेका थियौ। अब भने, मलाई अरु अन्तर्राष्ट्रिय वर्डक्याम्प हरूमा सहभागी हुन मन छ।

    \n\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\"वर्डक्याम्प\n\n

    म अझै पनि वर्डप्रेस कन्टेन्ट राइटिङ्ग नै गर्छु।

    \n

    मैले एक्सेस किइजमा काम गरिसके पछि नेपालको अर्को सफल कम्पनी थिमग्रिलमा प्रवेश गरे। त्यहाँ अझै धेरै काममा सौलियत र समयमा लचकता थियो। थिमग्रिल कम्पनी का संस्थापक-सन्चालक द्वय सन्जिप शाहरबिन श्रेष्ठ सरले झन धेरै कुरा सिक्ने हौसला दिनुभयो। केही समय पछाडि कम्पनी ले नयाँनयाँ लेखकहरु ल्यायो र मैले उनीहरूलाई सिकाउन थाले।

    \n

    पछि मैले अमेरिकामा अवस्थित अवसम मोटिभ कम्पनीमा पनि काम गरें। सुरु सुरुमा “इजइटडब्लुपि“ र “मन्स्टरइनसाइट्स“ ब्लगमा लेखे र पछि “डब्लुपिबिगिनर“ मा पनि लेख्ने मौका पाएं। म यसै कम्पनीमा काम गरिरहेकै बेला वर्डप्रेस र मार्केटिङ सम्बन्धि अझ धेरै कुरा जान्ने मौका पाए।

    \n

    मेरो काममा सुधार आउनुमा मुख्यतया मेरो निरिक्षक साहजाद सइद (भारतबाट), नवमान याकुब (पाकिस्तानबाट), लउरेन थार्पकेरि लिन एन्जेल (अमेरिकाबाट) को धेरै ठूलो भुमिका छ। यतिमात्र हैन कम्पनीको प्रमुख शाइद बाल्खि संग काम गर्न पाउनु पनि मेरो लागि भाग्यको कुरा थियो। उहाँले मलाई प्रत्येक हप्ता कन्टेन्ट राइटिङ्ग को बारेमा बिस्तृत रुपमा सिकाउनु हुन्थ्यो। मलाई अझै याद छ उहाँले थुप्रै पटकको संवादमा “सफलताको अन्तर” को बारेमा सिकाउनु भएको थियो। उहाँ साच्चिकै राम्रो प्रशिक्षक सल्लाहकार हुनुहुन्छ।

    \n

    अब अहिलेको कुरा! हाल म वर्डप्रेस लेख लेखन क्षेत्रमा भर्खर आउदै गरेका ब्यक्तिहरु संग काम गर्छु। मैले अहिलेसम्म बटुलेको अनुभवहरु को माध्यमबाट साना वर्डप्रेस विजिनेश र ब्लग लाई सहयोग गर्न खोजिरहेको छु। जस्तो कि म अहिले “साइटसागा डटकम“ र “जाक्राथिम डटकम“ मा कार्यरत छु। यधपि मेरो आफ्नै सिक्ने क्रम भने सदैब जारि नै छ।

    \n

    अब भने म आफुलाइ लागेको सबभन्दा महत्वपुर्ण कुरा भन्न चाहान्छ। यो क्षेत्रमा मैले पाएको सबभन्दा महत्वपूर्ण कुरा भनेको “स्वतन्त्रता“ हो।

    \n

    सर्वप्रथम त मेरो वर्डप्रेसको कामले मलाई समयको स्वतन्त्रता दिलायो। मेरो मतलब यो काम म आफुले भ्याएको समयमा गर्न सक्थे जसले गर्दा मेरो आफ्नै पढाईको लागि समय छुटाउन पाए। अनि दोस्रो कुरा भनेको “आर्थिक स्वतन्त्रता“।

    \n

    आर्थिक आत्मनिर्भरता प्रत्येक व्यक्तिकालागि स्वतन्त्रता प्राप्तिको एक प्रमुख आधार हो। आम्दानी नै सबै कुरा हो भन्ने त होइन तर यो मानव विकासको एक आधारभुत पक्ष भने अवश्य पनि हो।

    \n

    वर्डप्रेसमा मेरो शुरुको तलब ठिकै मात्र थियो तर यसको वृद्धि क्रमशः राम्रो हुदै गयो। उदाहरणका लागि, मैले वर्डक्याम्पमा वक्तव्य दिइसकेपछि भने मलाई अरू पनि धेरै फ्रिल्यान्सिङ्ग काम गर्ने अवसरहरू पाए जुन काम मैले खालि समयमा गर्थे र केही थप पैसा पनि कमाए। त्यसपछि मैले मेरो परिवारलाई पनि राम्ररि सहयोग गर्न थाले।

    \n

    अबभने, म स्वतन्त्रता बारे अन्तिम कुरा भन्न चाहान्छु। मलाइ लाग्छ यो स्वतन्त्रताको अनुभुति नै त हो जसले मलाइ यो लेख लेख्न सक्षम बनायो। किनभने मलाइ जहिल्यै पनि लघुताबासले थिचिरहन्थ्यो र आफ्नो परिवार अनि आफ्नो सामाजिक-आर्थिक अवस्थाबारे कसैलाइ पनि भन्न सक्दिनथे या चाहान्नथे। यदि कसैले सोधिहाले पनि, म त्यो प्रश्नलाइ बेवास्ता गर्थे वा ढाटेर जवाफ दिन्थे।

    \n

    अहिलेको सन्दर्भको कुरा गर्दा, मैले त्यो परिस्थिति र अरुले के सोच्छन भन्ने डर दुबैमाथि जित हासिल गरेझै लाग्छ। र मलाइ यो नै साचो अर्थमा ‘स्वतन्त्रता’ हो जस्तो लाग्छ।

    \n

    यही हो मेरो स्वतन्त्रता को कथा! हाम्रो स्वतन्त्रता को कथा!

    \n

    आज राम्रो छ र मसँग अझै ठुला आकांक्षाहरु छन् भविष्यको लागि!

    \n

    हो, मेरो वर्तमान राम्रो छ! वर्डप्रेस कन्टेन्ट राइटर, एडिटर, र सल्लाहाकार रूपमा मेरो करियर राम्रो छ। म एमफिल डिग्री पनि गर्दैछु र छिट्टै पुरा पनि गर्नेछु।

    \n

    तर अझपनि भविष्यको लागि मेरा धेरै ठुला आकांक्षाहरु छन्!

    \n
      \n
    1. म जे गरिरहेको छु त्यसैलाई निरन्तरता दिन चाहन्छु – नयाँ लेखकहरुलाई कपिराइटिङ्गको सिप सिकाउदै स्वतन्त्रता को अनुभुति दिलाउन। म जस्तो मान्छेहरू को लागि वर्डप्रेस एक अमुल्य उपहार हो।
    2. \n
    3. म कुनैदिन विद्यावारिधि गर्न चाहन्छु। यसको लागि यतिबेला भने कुनै योजना बनाएको छैन तर जसरी पनि यसै जुनिमा पुरा गर्ने इच्छा छ।
    4. \n
    5. म मेरो समुदायलाई सहयोग गर्न चाहन्छु। हाम्रो गाउँमा अझै पनि धेरै परिवर्तन आएको छैन – गरिबीको अवस्था यथावत् नै छ। राम्रो सहयोग प्रणालीको अभावमा अहिले पनि मेरो गाउँका धेरै जसो विद्यार्थीहरु स्नातक तह सम्मको अध्ययन पुरा गर्न सम्म असमर्थ छन्। मलाइ चै ब्यक्ति र समाज सबैको परिवर्तन को लागि शिक्षा एक्दमै महत्वपुर्ण हुन्छ भन्ने कुरामा दृढ विश्वास छ। त्यसैले म यो क्षेत्रमा काम गर्न चाहन्छु, तर कसरी गर्ने भन्ने कुरा भने थाहा छैन! मलाई आशा छ, समयले मेरो प्रश्नको जवाफ अवश्य दिनेछ!
    6. \n
    \n

    मेरो कथा पढ्नुभएको यहाँहरु सबैलाई धन्यवाद! मुख्यतः मलाई यो अवसर दिने साथी टोफर लाई धेरै धेरै धन्यवाद! हिरोप्रेसमा मेरो कथा सुनाउन पाउँदा म धेरै नै खुसि छु (आफुलाइ हिरो जस्तै महसुस गरिरहेकोछु)।

    \n

    मलाई यो स्थान सम्म पुग्न मद्दत गर्ने सम्पूर्ण व्याक्तीहरूलाई धेरै धेरै धन्यवाद! मैले पाएका सम्पूर्ण चिजहरुको लागि ब्रह्माण्ड लाई धन्यवाद!

    \n

    The post A Journey toward Freedom with WordPress – वर्डप्रेससंगै स्वतन्त्रता तर्फको यात्रामा appeared first on HeroPress.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 14 Apr 2021 02:24:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:10:\"Sunita Rai\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WPTavern: Yet Another WordPress Block Library Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115095\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:149:\"https://wptavern.com/yet-another-wordpress-block-library-plugin?utm_source=rss&utm_medium=rss&utm_campaign=yet-another-wordpress-block-library-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4107:\"

    You are the team manager at a WordPress development company. You just spent the last couple of months directing the group of highly skilled developers that you oversee to create the latest and greatest block library for WordPress. Your developers just spent those two months recreating what has already been done at least a couple of dozen times.

    \n\n\n\n

    You go through your product launch list:

    \n\n\n\n

    Testimonial block? Check.

    \n\n\n\n

    Accordion block? Check.

    \n\n\n\n

    Countdown block? Check.

    \n\n\n\n

    Meme-creation block? Coming in version 2.0.

    \n\n\n\n

    Everything seems to be in order. Your company has a new and shiny wheel, a bullet point on its product list, and a promise to end-users that you are keeping up with the times, launching a set of blocks that they can pick up literally anywhere else. But, yours is better because you built it in-house.

    \n\n\n\n

    Color me unimpressed.

    \n\n\n\n

    Maybe you are just trying to make a dent in the market, grabbing your share of the pie that companies have been snacking on for the last couple of years. Every time I see another forms plugin, I wonder how they will remain competitive, but there have been success stories. However, the ones who tell those stories always had a fresh take on an old concept.

    \n\n\n\n

    I worry about the upcoming years when the block market is simply a race to the bottom. Everyone has built their plugin with 100+ blocks, 500+ patterns, and more customization options than you can count. It is the story of the early ThemeForest days where premium themes amassed a gluttonous amount of theme options. The top sellers were continually one-upping each other with another notch on their feature lists.

    \n\n\n\n

    As a user, developer, and journalist who writes about these products, I am often lost. I look at a new plugin and ask myself if I had already checked it out and dismissed it last week. I am always searching for something innovative, but the lines between one project to the next are blurry. I am swirling in a sea of icon, shape divider, post list, and container blocks — just looking for a life preserver to pull myself out.

    \n\n\n\n

    Don’t get me wrong. I am a wheel recreator myself. I have built products that others had already created. In some cases, I launched something better. In others, I failed miserably. I may be a little biased, but I always felt like I was bringing something new to the table. And that is where I take issue.

    \n\n\n\n

    I want to see you create a block that no one has ever done before, such as drawing digital sheet music or a side-scrolling T-Rex game.

    \n\n\n\n

    I want to see you extend the editor with new tools like inserting Emoji or Font Awesome icons into Rich Text.

    \n\n\n\n

    I want to see you overhaul the editor and create a Markdown-friendly experience.

    \n\n\n\n

    Instead of an “advanced” list block of your own design, create a plugin that extends the core List block with custom options. Skip that custom gallery. Bring something new to the existing Gallery block. Got a custom music player? Use it to overhaul the Audio block instead of wrapping it up separately.

    \n\n\n\n

    The community has all the tabs, buttons, and progress bars it can handle. Of course, if you are raising the bar on all of these same ol’ blocks, keep pushing forward. Let’s see what you can do. Otherwise, keep thinking outside of the box.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 20:34:08 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: People of WordPress: Tyler Lau\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10102\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://wordpress.org/news/2021/04/people-of-wordpress-tyler-lau/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9022:\"

    WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories that are lesser-known.

    \n\n\n\n

    Embrace Who You Are and Your Journey

    \n\n\n\n

    In this People of WordPress contributor story, we chat to Tyler Lau from the US on his relationship building work in marketing and his WordPress journey.

    \n\n\n\n

    Read on to discover his story which shows it is often what you have learned from negative experiences in your life that can make you a major asset to a product team.

    \n\n\n\n\"Tyler\n\n\n\n

    An Entrepreneurial Mindset

    \n\n\n\n

    Tyler recalls he always had a knack for spotting a enterprise ideas. As an industrious seven-year-old, he was already finding ways to make sales during the school breaks. 

    \n\n\n\n

    While many entrepreneurs have similar stories, Tyler’s path took many turns before he discovered and thrived in the WordPress community.

    \n\n\n\n

    He was drawn to both the software and the community that surrounds it from his search for personal and professional freedom. He ultimately was able to combine his various business interests and people skills into professional marketing work.

    \n\n\n\n

    Using your skills to uncover your journey

    \n\n\n\n\"Tyler\n\n\n\n

    Tyler’s current role is as a Marketing Relationship Builder, based in Kansas, USA. His responsibilities span across all digital properties and products, leveraging his broad set of business and people skills.

    \n\n\n\n

    These skills are amplified by his creativity and adaptability. Tyler says that one reason he is always looking for new projects is his Attention Deficit Hyperactivity Disorder (ADHD), a diagnosis he received in 2005.

    \n\n\n\n

    In an industry built by programmers and developers who often have a strong sense of focus, Tyler felt that someone with ADHD wouldn’t be seen as a natural fit. He found the WordPress community to be a place where everyone can find the right spot for their unique skills. Tyler’s skill is people, and this has translated into many opportunities and responsibilities in his work life. His skills have also helped him give back to the WordPress community as a speaker and volunteer, and through multiple contributor days.

    \n\n\n\n

    Relationship-building as a career

    \n\n\n\n

    Most of Tyler’s experience was in the restaurant industry, and his resume did not exactly point to a career in tech. But the service industry actually prepared him well for everything he has taken on since.

    \n\n\n\n

    When he is at work events, he meets people from across the world and builds connections with them. As an extrovert, he enjoys this and couldn’t imagine a job where he was isolated from getting to know others and relationship-building.

    \n\n\n\n

    Understanding people and being able to operate in any setting are key competencies. Social skills and tact are useful for community building in the WordPress space too, and in Tyler’s life at different times it has been necessary for survival.

    \n\n\n\n

    The true meaning of freedom

    \n\n\n\n

    In the WordPress community, the concept of freedom comes up often. WordPress is built on GPL, free software, and open-source values. Practically speaking, anyone can work remotely or be their own boss to gain more freedom in work and life. Tyler feels that he never fitted into a traditional work mould. With his strong focus on freedom, he found this resonated with the freedom and opportunities he believes WordPress provides him and thousands of others.

    \n\n\n\n

    Tyler describes how in 2013 his ‘inner opportunist’ got him into trouble. After dropping out of college following a brain aneurysm, he needed capital to fund his first startup. He shares that he found a quick but unlawful way to make money. Alongside this between shifts as a waiter, he worked on prototypes for his first product. The company was growing fast, and to protect his patents and take research and development to the next level, he had to work hard. Everything came to a halt when some of the actions he took resulted in being sent to prison.

    \n\n\n\n

    He says that meeting other inmates reminded him that he was in a much better situation than most. He was educated, well-off, loved, and knew he had a future once he was released. He found that many inmates never graduated from high school and were computer illiterate. While inside, Tyler taught subjects like science, math, writing, reading, and social studies. He found that due to the lack of skills and support, many inmates would struggle upon release. He believes getting the mental health support and job training needed to thrive after prison is not easy for many.

    \n\n\n\n

    There’s more to freedom than just being on the outside. You also need a sense of agency and enfranchisement,” says Tyler. He considered his sense of purpose and support network were plenty to keep him going and was ready to take on his next (legal) business challenge as soon as he could.

    \n\n\n\n

    Going forward positively 

    \n\n\n\n\"Tyler\n\n\n\n

    The idea that your past doesn’t define you and you can choose to embrace it, is a key driver for Tyler.

    \n\n\n\n

    He describes himself as an outlier in many ways. He recalls how politics influenced his life from the day he was born. Tyler’s father is a semi-dissident Chinese visual anthropologist, his mother is an art professor who left her home country of Japan to break free from traditional Japanese gender roles. Tyler feels he inherited a lot of this fearlessness.

    \n\n\n\n

    I’ve never fitted in, and yet this is what makes me able to adapt to most situations and relate to just about anyone. I embrace my eclectic, dissonant past and see beauty in the person those experiences shaped me to be,” says Tyler. 

    \n\n\n\n

    Now, he’s able to put those skills to good use in the WordPress community and beyond. 

    \n\n\n\n

    He says: “Regardless of your physical abilities, mental health struggles, upbringing, and even your run-ins with the law, no one is excluded from carving their place in the WordPress industry”.

    \n\n\n\n

    Contributors

    \n\n\n\n

    Thank you to Tyler Lau (@tylermaximus) for sharing his #ContributorStory.

    \n\n\n\n

    Thanks to Larissa Murillo (@lmurillom), Surendra Thakor (@sthakor), Olga Gleckler (@oglekler), Meher Bala (@meher), Yvette Sonneveld (@yvettesonneveld), Abha Thakor (@webcommsat), Josepha Haden (@chanthaboune), Chloé Bringmann (@cbringmann) and Topher DeRosia (@topher1kenobe) for working on the People of WordPress series.

    \n\n\n\n\"HeroPress\n\n\n\n

    This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.

    \n\n\n\n

    Meet more WordPress community members in our People of WordPress series.

    \n\n\n\n

    #ContributorStory #HeroPress

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 13:47:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"WPTavern: Free Software Foundation Unrelenting on Stallman Reinstatement: “We Missed His Wisdom”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115008\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:231:\"https://wptavern.com/free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom?utm_source=rss&utm_medium=rss&utm_campaign=free-software-foundation-unrelenting-on-stallman-reinstatement-we-missed-his-wisdom\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8324:\"

    The Free Software Foundation has published a public explanation of why they decided to reinstate Richard Stallman to the board of directors last month:

    \n\n\n\n

    “The voting members of the Free Software Foundation, which include the board of directors, voted to appoint Richard Stallman to a board seat after several months of thorough discussion and thoughtful deliberation.

    We decided to bring RMS back because we missed his wisdom. His historical, legal and technical acumen on free software is unrivaled. He has a deep sensitivity to the ways that technologies can contribute to both the enhancement and the diminution of basic human rights. His global network of connections is invaluable. He remains the most articulate philosopher and an unquestionably dedicated advocate of freedom in computing.”

    \n\n\n\n

    The board took responsibility for bungling the news of his election to a board seat, stating that the planned flow of information was not executed in a timely manner. When Stallman announced his return to the board at last month’s LibrePlanet event, the free software community was not able to discern whether he did so with the board’s permission. It took the FSF by surprise, polarized the community, and provoked organizations and corporations to publish statements condemning his reinstatement.

    \n\n\n\n

    The board admits that “FSF staff should have been informed and consulted first,” but follows it up by effectively downplaying his influence, stating that Stallman is “an unpaid volunteer and subject to the organization’s policies.”

    \n\n\n\n

    The statement reads like a perplexing love letter for someone who struggles with social cues. It obscures most of the real issues outlined in an open letter signed by many prominent members of the free software community. The FSF board referenced a statement from Stallman, published one minute prior, and claims that he has acknowledged his mistakes:

    \n\n\n\n

    “He has sincere regrets, especially at how anger toward him personally has negatively impacted the reputation and mission of FSF. While his personal style remains troubling for some, a majority of the board feel his behavior has moderated and believe that his thinking strengthens the work of the FSF in pursuit of its mission.”

    \n\n\n\n

    The FSF board has officially confirmed that the majority of its leadership advocated for Stallman’s return and see it as important in its aim “to attract a new generation of activists for software freedom and to grow the movement.”

    \n\n\n\n

    Stallman’s statement identifies his past behaviors as something outside his control, saying it was “not a choice” and “unavoidable:”

    \n\n\n\n

    Later in life, I discovered that some people had negative reactions to my behavior, which I did not even know about. Tending to be direct and honest with my thoughts, I sometimes made others uncomfortable or even offended them — especially women. This was not a choice: I didn’t understand the problem enough to know which choices there were.

    Sometimes I lost my temper because I didn’t have the social skills to avoid it. Some people could cope with this; others were hurt. I apologize to each of them. Please direct your criticism at me, not at the Free Software Foundation.

    \n\n\n\n

    He also attempted to explain his position regarding the 2019 controversy that prompted his resignation from the FSF board and MIT’s Computer Science and Artificial Intelligence Lab.

    \n\n\n\n

    “It was right for me to talk about the injustice to Minsky, but it was tone-deaf that I didn’t acknowledge as context the injustice that Epstein did to women or the pain that caused.

    I’ve learned something from this about how to be kind to people who have been hurt. In the future, that will help me be kind to people in other situations, which is what I hope to do.”

    \n\n\n\n

    This strategically intertwined pair of statements from Stallman and the FSF did little to change the community’s perception of his reinstatement to the board. They seemed to have the opposite effect of inflaming those who opposed it in the first place.

    \n\n\n\n

    “I’m really grateful that the FSF board took the time to clarify this,” Tock founder Brian Fitzpatrick said. “This makes it crystal clear that they would rather have RMS around than become an inclusive and welcoming environment to more than half the people who write software. Toxic to the core.”

    \n\n\n\n
    \n

    Congratulations on getting RMS offering a non-apology for being tone deaf. You\'ve just inherited that skill.
    It\'s time for that \"new generation of activists for software freedom\" to help another foundation grow.

    — St⭕nehead (@stonehead) April 12, 2021
    \n
    \n\n\n\n

    The statements were met with considerable backlash, as they did little to assuage community concerns regarding Stallman’s patterns of misconduct. More recently that includes his controversial remarks on rape, assault, and child sex trafficking, along with two decades of behaviors and statements that many have found to be disturbing and offensive. Whether these behaviors are motivated by malice or simply a lack of understanding the proper context, the damage to the FSF continues.

    \n\n\n\n

    Red Hat principle engineer Elana Hashman, former director of the Open Source Initiative, published a thread with suggestions for 501(c)(3) public charities the community can donate to as an alternative to the FSF, including The Software Freedom Conservancy, EFF, OSI, and Software in the Public Interest.

    \n\n\n\n

    Last week we reported that the WordPress project does not support Stallman’s return to the FSF board of directors. Curiously, WordPress’ executive director Josepha Haden-Chomphosy published the statement to her personal blog instead of on the project’s website, but she confirmed it is WordPress’ official stance on Stallman’s reinstatement. Since that time, the WordPress Foundation has quietly removed the Free Software Foundation from its list of inspirations.

    \n\n\n\n

    Many corporations and individuals have distanced themselves and pulled funding from the FSF, but it has not had much impact on the leadership of the organization. The FSF board seems confident in their decision to keep Stallman in place, despite openly admitting that “his personal style remains troubling.” When the organization’s actions so sublimely repudiate its stated goals (to attract a new generation of activists for software freedom), it’s easy to see why former supporters can no longer buy into the FSF’s promises to improve transparency and accountability.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 13 Apr 2021 03:53:44 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:69:\"WPTavern: Display Digital Sheet Music With the WordPress Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=115022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/display-digital-sheet-music-with-the-wordpress-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=display-digital-sheet-music-with-the-wordpress-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4520:\"OSMD plugin output on the front end.\n\n\n\n

    PhonicScore, a company out of Vienna, recently released its OpenSheetMusicDisplay (OSMD) plugin. It is a WordPress block built for rendering digital sheet music in the browser.

    \n\n\n\n

    The OSMD plugin is built on top of the team’s JavaScript library of the same name, a project officially released in 2016. It is a bridge between VexFlow and MusicXML. VexFlow is a JavaScript API for rendering music notation, and MusicXML is a standard open format for exchanging digital sheet music.

    \n\n\n\n

    “As WordPress is one of the most popular CMS’ we decided to make an out-of-the-box solution that users could easily plug in their WP websites,” wrote Marin Jurcic in the announcement post. “This wasn’t an easy build, lucky for us OSMD provided all the tools for the job. To make this happen we relied heavily on the latest OSMD release and bundled it with the plugin. To add the ‘out-of-the-box features’ and get it working we used WordPress’s framework/library — Javascript and PHP.”

    \n\n\n\n

    This is the type of plugin that allows the beauty of the block editor to shine. A few years ago, such a feat would only have been possible via the shortcode system. Users would have had to manually type in all of the shortcode’s arguments — assuming they could remember them all — and preview the post to see what it would look like. Today, they can interact with and make changes directly to their sheet music’s display from the editor.

    \n\n\n\n

    OSMD was never a WordPress-first project. It was a standalone library that the company decided to make available to WordPress. With the power of the block system, they were able to do that. One can only hope that we see investments in our community from similar projects now that the block editor has become more stable.

    \n\n\n\n

    We are barely digging beneath the surface of what will be possible in time. Blocks like OSMD build upon the optimism I had when the system was first unveiled.

    \n\n\n\n

    To use the plugin, users must simply insert the OpenSheetMusicDisplay block into their content canvas. It is located under the Embed category. From that point, they must select or upload an XML file via the block options sidebar (.xml, .musicxml, and .mxl files are supported). Dragging and dropping a file does not work in this version — maybe a feature request for 2.0?

    \n\n\n\nOSMD block in the editor.\n\n\n\n

    The “Basic Options” tab has several width and aspect ratio settings. For the most part, it is probably best to leave these at the defaults. However, this will depend on your theme and how much room it provides.

    \n\n\n\n

    The block does not currently support the standard wide-alignment system. Instead, it has a width option, allowing users to determine the front-end output. Because this is a non-standard option, it may not play well with all themes. Depending on how the user’s active theme handles content width, they can get wildly different results.

    \n\n\n\n

    The “Drawing Options” tab is where users have more control over customizing the output. These settings allow users to determine what is “drawn” in the digital sheet music. One option is whether to draw the composer’s name. Another is to output time signatures. With 10 settings in total, there is a lot to tinker with.

    \n\n\n\n

    The biggest issue I ran into with the plugin was with the editor freezing from time to time. It appeared that the block was trying to reload, even when I was working outside of it. This happened despite having unticked the “Automatically Rerender on Change” checkbox.

    \n\n\n\n

    Overall, this plugin should serve users who want to display sheet music well. It is simple to use and offers numerous customization options. The team has a demo of the OSMD library in action on their site.

    \n\n\n\n

    For those who are not inclined to share digital sheet music, well, we can all appreciate the genius of J.S. Bach’s Air:

    \n\n\n\n
    \n\n
    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 21:16:12 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"WordPress Foundation: Announcement: Upcoming live discussion on do_action charity hackathons\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=184010\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:107:\"https://wordpressfoundation.org/2021/announcement-upcoming-live-discussion-on-do_action-charity-hackathons/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4578:\"

    This live discussion has concluded. You can find a video recording of the live discussion on this post or watch it directly on YouTube and on WordPress.tv. Captions and a full transcript of the video will be made available shortly.

    \n\n\n\n

    Over the past few months, many community organizers have expressed interest in organizing do_action charity hackathons and asked many questions about the event to Community deputies. In order to address these questions – some members of the WordPress Community are organizing a live Tuesday Training discussion on How to organize do_action charity hackathons!

    \n\n\n\n

    Hari Shanker, Hugh Lashbrooke, Naoko Takano, and Yogesh Londhe – who are all experienced do_action hackathon organizers, will participate in this Live discussion on do_action charity hackathons. The event, which will be streamed LIVE on the WordCamp Central YouTube channel on Tuesday, April 13, 2021, 02:00 UTC, is open to all! Community members can also participate in the discussion by asking questions in the live chat, which will be answered by the panelists live, during the session!

    \n\n\n\n

    What are do_action charity hackathons?

    \n\n\n\n

    do_action hackathons are community-organized events that are focused on using WordPress to give deserving charitable organizations their own online presence. Each do_action event includes participants from the local WordPress community coming together to plan and build brand new websites for a number of local organizations in one day. Due to the COVID-19 pandemic, do_action hackathons have moved online.

    \n\n\n\n

    In this session, we talk about do_action events, and their importance in this post-pandemic world, and on how to effectively organize an online do_action hackathon.

    \n\n\n\n

    Watch the discussion!

    \n\n\n\n

    The live discussion has concluded, but you can catch a recording of the session below.

    \n\n\n\n
    \n
    \n
    \n\n\n\n

    Date and time: Tuesday April 13, 2021, 02:00 UTC (Click to view in your local time)
    You can sign up for notifications on the YouTube live link below!

    \n\n\n\n

    In case the timing is off, and if you will not be able to join the live event, fret not! The event recording will be available on YouTube, and will soon be uploaded to WordPress.tv as well!
    As mentioned above, while the live discussion has concluded, don’t forget to check out the recording of the live discussion above. We are working on adding captions for the video and will share a transcript of the same, shortly.

    \n\n\n\n

    We hope that this session was useful. We strongly encourage you to organize a do_action charity hackathon to support your local non-profits by giving them a WordPress-powered online presence. Thank you for all that you do to support the global WordPress Community!

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 15:10:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:50:\"WordPress.org blog: WP Briefing: Who Is WordPress?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10099\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"https://wordpress.org/news/2021/04/who-is-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:9290:\"

    In this episode, Josepha explores the five groups within the WordPress ecosystem and provides a high-level example of how they interact and support one another. As always, stay tuned for the small list of big things and a contributor highlight.  

    \n\n\n\n

    Have a question you’d like answered? You can submit them to wpbriefing@wordpress.org, either written or as a voice recording.

    \n\n\n\n

    Credits

    \n\n\n\n\n\n\n\n

    References

    \n\n\n\n\n\n\n\n

    Transcript

    \n\n\n\n\n\n\n\n

    Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I’m your host, Josepha Haden Chomphosy. Here we go!

    \n\n\n\n

    In the first episode of this podcast, I said that there’s a lot that goes into WordPress, that’s really hard to see. One of the hardest things to see about the WordPress project as you get started is the overall structure. There is quite a bit of documentation that can clarify the basics: the names of teams, what they work on, and where, and when they meet. The way that they influence and support each other can really feel like a bit of a mystery. So today, I’m going to break down the WordPress community into five big groups; I want you to keep a couple of things in mind. 

    \n\n\n\n

    Firstly, these are high-level and based on my observations. Each of these groups can be further broken down into subgroups. So while you may not feel represented in this exact five, you are included if you were to dig a little bit deeper. The second thing to keep in mind is that the makeup of these groups is pretty fluid. Many community members find themselves in more than one group, but generally not far off. Some group two folks end up in group three, depending on the situation, people in group four can also end up in group five, and so on. As with so many things that I share, I’m not trying to insist that one size fits all. I’m not trying to put the WordPress community into a box. This is just a basic framework to understand how it all fits together. Alright, are you ready? I’m ready. Let’s do it!

    \n\n\n\n

    Okay, I have a broad definition of the community, which I have mentioned before. I believe that the community is anyone who has interacted with WordPress, whether they know it or not. So, I’ll start from way out there and work my way in that first group; we’re going to call our Visitors

    \n\n\n\n

    Visitors are people who arrive at a WordPress site to gain information or engage in an activity. Sometimes they know it’s a WordPress site, but most of the time, they don’t. The second group are Users, people who use WordPress as their CMS. So, that’s website builders, website designers, small businesses, content creators, and the list goes on and on. The third group I like to refer to is the Extenders. Those are people who extend WordPress through the creation of blocks, themes, plugins, and more. There are also people who teach WordPress to others through WordPress podcasts, and newsletters and tutorials. The fourth group I refer to as our Contributors is the people who contribute to the open source software and the infrastructure supporting it, but not necessarily the same people who contribute directly to their own product. And then there’s group five, Leaders. Those are people who help drive the vision and strategy for WordPress; the most notable member of that group is of course, Matt Mullenweg. And I’m also in that group. 

    \n\n\n\n

    Each of these groups directly influenced the groups on either side. For example, a WordPress user is affected by both visitors and extenders. Imagine a content creator who shares their passion for photography through a WordPress site; this photographer may have visitors that need to purchase photos. In response, the user now has a need to make it possible for visitors to purchase photos on a site. So they go to what we consider the extenders, people who have built a plugin that supports that need. And as a result, that user can install that on their site. And they have have satisfied the need of the visitors to their site, the people who now can purchase photos. 

    \n\n\n\n

    There are a lot of examples like this in the WordPress project. Every small pattern that you see is mirrored in the larger patterns across our ecosystem. And every large pattern you see in the ecosystem can be seen among our teams. It’s pretty cool to look at really. So, why should this matter to you? From a very practical standpoint, this matters for anyone who’s trying to learn more about contributing to the WordPress project. These five groups mirror very closely the five steps of volunteer engagement that we see across the ecosystem and from a more philosophical standpoint, it’s just kind of nice to know who your neighbors are. Without the influence and support of the groups around us, it can be hard to know whether we’re on the right track or not. So take a look to your left and look to your right, and get to know your partners in this project.

    \n\n\n\n

    That brings us now to our community highlight, the segment where I share a note about contributors who have helped others along the way, or WordPress success story. This week’s highlight is from @CoachBirgit, Birgit Olzem, a longtime contributor and a friend of mine. Her success story goes like this. 

    \n\n\n\n

    WordPress has allowed me as a mother of five to leave a toxic marriage for good. 

    \n\n\n\n

    Later, the community picked me up when I became seriously ill. 

    \n\n\n\n

    So I can say from the bottom of my heart, that working with WordPress has saved my life.

    \n\n\n\n

    And now our small list of big things. I’ve got three things for you this week. I think that they’re all very important. And I hope you check them all out. The first one is a reminder that word camp Central America is coming up on April 15 and 16th. If you have not registered for tickets, you still have time, I will share a link to the registration page and the schedule in the show notes below. 

    \n\n\n\n

    The second thing on our small list of big things is that the Gutenberg 10.4 release is coming out later this week on April 14th. It’s an important release because it’s when we take a look at the current iteration of full site editing tools that we have, and decide if it’s ready to get into the WordPress 5.8 release. There’s a post that has a little more information about that which I will share in the show notes below as well. If you haven’t checked out the Gutenberg plugin lately, obviously I think it’s a good idea to do that in general, but definitely a good idea to check it out now. 

    \n\n\n\n

    The third thing on our list today is a reminder to check out our most recent block pattern tutorial, I’ll share a link to that in the show notes. It’s this kind of tips and tricks, tutorial, the “show me how to do it,” kind of thing in the style of CSS-Tricks. If you or anyone that you know might be interested in sharing a similar style of tutorial, there’s a link to a form in that show notes as well so that you can share with us your name and the topic that you’re interested in. We’ll take a look and see if it’s something that we definitely need to make sure our users know how to do. So, that my friends is your small list of big things. 

    \n\n\n\n

    Thank you for joining in today for the WordPress briefing. I’m your host, Josepha Haden Chomphosy. I’ll see you again in a couple of weeks!

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 12 Apr 2021 14:36:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: Set Up a Gutenberg Test Site in 2 Minutes with the Gutenberg Nightly Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114098\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:215:\"https://wptavern.com/set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin?utm_source=rss&utm_medium=rss&utm_campaign=set-up-a-gutenberg-test-site-in-2-minutes-with-the-gutenberg-nightly-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4142:\"

    WordPress contributors are working towards landing full site editing (FSE) sometime this year, an ambitious plan that will require all hands on deck for testing. A meeting of a small group of core leads on April 14 will start the process of deciding whether FSE will land in version 5.8. In the meantime, the FSE outreach program has extended the deadline for the fourth round of testing until April 12.

    \n\n\n\n

    One of the quickest ways to get started doing alpha/beta testing is to install the Gutenberg Nightly plugin, which pulls in the latest build from the Gutenberg project. Ordinarily, to get the latest build one would have to install NodeJS and npm and use the command line to get set up. This process can be prohibitive, along with the dizzying pace of Gutenberg development, for less technical users who want to start testing.

    \n\n\n\n

    The Gutenberg Nightly plugin, combined with the GitHub Updater plugin completely automates the process of grabbing the latest zip from Gutenberg trunk, and users will be notified when a new nightly is available for updating.

    \n\n\n\n

    How to Set Up a Gutenberg Nightly Test Environment

    \n\n\n\n

    The first step is to download and install the Gutenberg Nightly plugin by uploading the zip file. If you already have the stable version of the Gutenberg plugin, you will be prompted to replace the current version with the one you are uploading. If you want to get updates when a new nightly is available, download and install the GitHub Updater plugin the same way.

    \n\n\n\n
    Gutenberg Nightly update available
    \n\n\n\n

    Testing the full-site editing project will require you to install a theme like TT1 Blocks, which has support for the experimental feature. Once you do, you will see the “Site Editor (beta)” menu item in the dashboard.

    \n\n\n\n
    \n\n\n\n

    I set up a Gutenberg testing environment in 2 minutes using these plugins. Please note that it’s not recommended to use Gutenberg Nightly in production.

    \n\n\n\n

    Birgit Pauli-Haack, publisher of the Gutenberg Times, created the plugin in October 2020, to help testers keep up with the rapid pace of Gutenberg development.

    \n\n\n\n

    “On October 19, 2020, there were 250 new commits made since the last release (9.1.1) and before the release of 9.2,” Pauli-Haack said. “Any issue you might file, might get a response like ‘Could you please try it in master, I think it was already fixed.\'” This slows down the testing process and can be discouraging to testers.

    \n\n\n\n

    Pauli-Haack creates the build every day as a volunteer service to facilitate Gutenberg testing.

    \n\n\n\n

    “At the beginning it took a bit longer but now I wrote a small Node CLI script that does the distribution to GitHub and uploads it to the GT site as well, so the button Download gives you the newest version,” she said. “In October, I was a total rookie with an idea.”

    \n\n\n\n

    Pauli-Haack credits Andy Fragen, author of the GitHub Updater plugin, and Riad Benguella, a technical lead on the Gutenberg project, who helped her past some skill gaps in getting the process more automated.

    \n\n\n\n

    “Andy Fragen helped me think through it for making it the easiest for the ‘normal’ users to get a Test version without to know much about git, node and stuff,” she said.

    \n\n\n\n

    Gutenberg Nightly has facilitated more than 62,000 downloads to date. The repository for the plugin has discussions enabled so users can stay updated with major changes, make feature requests, and participate in Q&A.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sun, 11 Apr 2021 16:12:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"Gutenberg Times: Full-Site Editing Scope in WordPress 5.8. Weekend (Tiny) Edition #165\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17473\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://gutenbergtimes.com/full-site-editing-scope-in-wordpress-5-8-weekend-edition-165/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:8253:\"

    Howdy!

    \n\n\n\n

    In the last two weeks there was so much was happening around Gutenberg. To keep you somewhat in the loop, I interrupt my unpacking of way-too-many boxes and share a few links with you.

    \n\n\n\n

    Next week again in full force. Stay tuned.

    \n\n\n\n

    Have a great weekend!

    \n\n\n\n

    Yours, 💕
    Birgit

    \n\n\n\n\n\n
    \n\n\n\n

    Grzegorz (Greg) Ziółkowski and I published our first episode together, Episode #41. It is a great episode, and we had a lot of fun. I am delighted having Grzegorz on the show. It’s now available with show notes and transcript.

    \n\n\n\n

    Josepha Haden Chomphosy posted Full Site Editing Scope for WP5.8 (u)

    \n\n\n\n
    • Lesson from Phase 1 roll-out, extenders like plugins developers, site builders and theme authors didn’t have enough time to test their products with the new editor in core. 
    • Full-Site Editing user experience with Global Styles, Template editing and saving, will not be changing default user experience. It’s opt-in only. There is some confusion on saving template and switch from overall template to content and back. Polishing those will be out of scope for 5.8. 
    • Also, on the scope list for WordPress 5.8 are: Widget Editor, Navigation Screen and block, refactored Gallery Block and the List View. These  components are some of the most complex, and the user experience of them will be key. “They are all high priority to complete (hopefully for WP5.8), but will be punted if they aren’t ready in time for Beta.” 
    \n\n\n\n

    Matias Ventura will demo the current state of these features to the release lead team trio of  Matt Mullenweg, Josepha Haden Chomphosy and Helen Hou-Sandi.

    \n\n\n\n

    Justin Tadlock has the skinny: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming

    \n\n\n\n

    Hector Prieto published the April Focus areas for the Gutenberg team. 

    \n\n\n\n

    As expected, it covers Widget, Navigation Screen, and Full-Site Editing with more details. Please see the “Area to be aware of” section of the post, for Block and plugin Developers, Designers and Theme builders. We talked about most of them in one or the other episode, but you find them all in one place in Hector’s post. 

    \n\n\n\n

    Kjell Reigstad published the notes from the Block Theme Meeting They team discussed among other things:

    \n\n\n\n
    • TT1 Blocks update 
    • Block-based theme updates in Gutenberg 10.3 with alignment styles automatically for front and back end and the capability to use theme.json styles for every block.
    • New tools for transitioning to Block-based Themes.
    \n\n\n\n

    The deadline for the Full Site Editing Testing Call #4 has been extended until April 12th, 2021.

    \n\n\n\n\n

    Need a plugin .zip from Gutenberg’s master branch?
    Gutenberg Times provides daily build for testing and review.
    Have you been using it? Hit reply and let me know.

    \n\n\n\n

    \"GitHub

    \n\n\n\n\n

    Don’t Miss this!
    Mega-Meetup April 15th, 2021 6:30 -8:30 pm EDT / 23:30 UTC with Anne McCarthy, David Bisset and the organizers of six Florida Meetup groups. All About Full Site Editing (Coming in WordPress). Register via Meetup.com

    \n\n\n\n

    For a more in-depth look on current Gutenberg development, the Index page with all the teams’ updates in the Core handbook has the latest.

    \n\n\n\n\n

     “Keeping up with Gutenberg – Index” 
    A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test and Meta team from Jan. 2021 on. The index 2020 is here

    \n\n\n\n\n\n

    Featured Image: Photo by Fran Jacquier on Unsplash

    \n\n\n\n\n\n
    \n\n\n\n

    Don’t want to miss the next Weekend Edition?

    \n\n\n\n

    We hate spam, too and won’t give your email address to anyone except Mailchimp to send out our Weekend Edition

    Thanks for subscribing.
    \n\n\n\n
    \n\n\n\n\n\n

    Episode #41 is now available, with new co-host Grzegorz Ziolkowski

    \n\n\n\n

    Subscribe to the Gutenberg Changelog podcast
    🎙️ Spotify | Google | iTunes | PocketCasts | Stitcher |
    🎙️ Pod Bean | CastBox | Podchaser | RSS Feed 

    \n\n\n\nReview by Peter Ingersoll on Stitcher\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 10 Apr 2021 15:24:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:81:\"WPTavern: Will Full Site Editing Land in WordPress 5.8? A Decision Is Forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114870\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:205:\"https://wptavern.com/will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming?utm_source=rss&utm_medium=rss&utm_campaign=will-full-site-editing-land-in-wordpress-5-8-a-decision-is-forthcoming\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6679:\"

    Yesterday, Josepha Haden Chomphosy announced the roadmap for deciding whether Full Site Editing (FSE) will land in WordPress 5.8. After the launch of Gutenberg 10.4 on April 14, a small group of core leads will participate in a go/no-go demo.

    \n\n\n\n

    The following people will be on the call:

    \n\n\n\n
    • Matias Ventura – Gutenberg Project Lead who will host the demo.
    • Matt Mullenweg – WordPress Project Lead.
    • Helen Hou-Sandì – Lead Developer.
    • Josepha Haden Chomphosy – Executive Director.
    \n\n\n\n

    The meeting’s agenda is simple. Ventura will host the demo, and the group will discuss and cover implementation questions.

    \n\n\n\n

    If there are no blockers, they will share a plan for merging FSE into WordPress. The more likely outcome is that they will find at least a few items that must be addressed. In that case, they will share these publicly with a plan to tackle them before a second go/no-go date of April 27.

    \n\n\n\n

    The first beta release of WordPress 5.8 is set for June 8, with a general public release for July 20. The team needs to decide on inclusion early in the release cycle to give theme and plugin developers time to prepare.

    \n\n\n\n

    While many are on their toes awaiting a final decision, everyone needs to have a little patience at the moment. Everything needs to be carefully weighed by the project leaders. There is a good chance we will not know the outcome until that second, April 27 deadline.

    \n\n\n\n

    Most of the FSE transition would be a beta run for a subset users. Including these features in core does not mean that WordPress immediately flips the switch and enables everything for 40% of the web. For the overall FSE experience, users must make an explicit choice to install and activate a block-based theme.

    \n\n\n\n

    With that in mind, the onboarding experience should be a welcoming one that invites users into site editing while letting them know the potential issues. If it is a built-in beta, they really need to understand that improvements are forthcoming.

    \n\n\n\n

    An in-core beta run like this is also welcome, given the project’s launch of the block editor a couple of years ago. Regardless of whether people loved or hated the block editor, the rollout was not smooth for everyone. WordPress dropped end-users into an overhauled system, which was a shocking change for many. The project has a chance to do better this time around by incrementally introducing features to users and allowing others to immerse themselves in the new experience of their own choice.

    \n\n\n\n

    “The most important context to share is that it isn’t shipping as the full, default experience for users,” wrote Chomphosy in the post, noting that the team is growing beyond past mistakes. “One of the clearest pieces of feedback from the Phase One merge process was that there wasn’t enough time for our extenders (agencies, theme authors, plugin developers, site builders, etc.) to prepare for the upcoming changes.”

    \n\n\n\n

    The decision-makers may also decide to ship some pieces but not others. FSE is a project made up of several components.

    \n\n\n\n

    “The whole full site editing project is sort of an umbrella term for a collection of tools and projects, so it would be possible for some pieces to ship while others don’t,” said Haden Chomphosy. “There are probably some exceptions to that, as you mentioned, but many of these can ship as they are ready.”

    \n\n\n\n

    The exceptions she was referring to are components that make more sense together. For example, block-based themes via a theme.json config file and most of the site-editing blocks are not as useful when separate.

    \n\n\n\n

    Of course, there are cases where something like the Query block could be used outside of the site editor. Users might create custom queries within a page without the benefit of the site editor, for example.

    \n\n\n\n

    My primary concern is not with features related to the site editor but with block-based widgets. It is a transitional tool for users on traditional themes. Along with the new nav menus screen, it is not a part of the block-based themes experience. The goal is to allow users to start using blocks in more places. However, this will result in a broken UX in many cases.

    \n\n\n\n

    The widgets experience is still partially broken, treating each block as a separate widget. Users must learn to put a Heading (widget title) and another block (widget content) into a Group (widget wrapper) for the correct widget-related classes on the front end of the site. For some themes, whether users do this will be a non-issue. For others, it will look ugly at best and break the layout at worst. Putting this responsibility on the shoulders of end-users was deemed an acceptable solution.

    \n\n\n\n

    I wanted to focus on this issue because it is one of those things that may simply be flipped on for all users. I am still afraid that transitioning from a functioning system to a potentially broken one will make for a bumpy ride.

    \n\n\n\n

    The WordPress 5.6 release team decided not to ship block-based widgets. Hou-Sandì, as the core tech lead for 5.6, provided a historical account of the decision and why it was not ready for inclusion:

    \n\n\n\n

    My question for features that affect the front-end is “can I try out this new thing without the penalty of messing up my site?” — that is, user trust. At this current moment, given that widget areas are not displayed anything like what you see on your site without themes really putting effort into it and that you have to save your changes live without revisions to get an actual contextual view, widget area blocks do not allow you to try this new feature without penalizing you for experimenting.

    \n\n\n\n

    While widgets have arguably improved, I still see the answer as being the same as last October. I have not seen enough buy-in from the theme development community to support the block editor itself, much less new block-related features. However, at some point, the project simply needs to move forward. Themers will just need to keep up.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 15:48:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: iThemes Acquires Kadence WP, Plans to Sunset Legacy Themes in 2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114848\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022?utm_source=rss&utm_medium=rss&utm_campaign=ithemes-acquires-kadence-wp-plans-to-sunset-legacy-themes-in-2022\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3957:\"

    iThemes has acquired Kadence WP, the Missoula-based makers of the Kadence Blocks plugin and its accompanying Kadence theme. Originally founded in 2008 as a themes company, iThemes became more of a plugin-oriented business over the years before it was acquired by Liquid Web in 2018. The company is returning to its roots with this acquisition and plans to make Kadence WP the official theme platform of choice for iThemes.

    \n\n\n\n

    “It’s no secret that the ‘themes’ part of iThemes has been lacking for many years now,” iThemes general manager Matt Danner said. “While we got our start in WordPress themes in 2008, over the past 10 years, we pivoted to the more obvious needs of our customers (mainly WordPress security, backups, memberships and maintenance) as the theme marketplace got more competitive. 

    \n\n\n\n

    Joining forces with Kadence WP means that iThemes can once again have an innovative and modern WordPress theme platform.”

    \n\n\n\n

    iThemes announced it will be sunsetting its iThemes Builder theme framework and all of its legacy themes in 2022, in favor of supporting the Kadence theme which already has more than 50,000 active installations. Danner said the older themes “are no longer truly compatible with the future direction of WordPress.”

    \n\n\n\n

    Kadence Blocks are even more popular than the accompanying theme, since they can be used in combination with any WordPress theme. The plugin has gained more than 100,000 users after its initial launch in August 2018. Kadence Blocks pioneered some of the first full-featured layout blocks in the early days of Gutenberg prior to its inclusion in core.

    \n\n\n\n

    “This last year has marked some ridiculous growth for Kadence WP,” co-founder Ben Ritner said. “Only one year ago my sister Hannah (many users will know Hannah from our support channels) and I were the entirety of the Kadence WP team. It is hard to gauge user numbers with accuracy because of how many free products we have, but the amount of people using Kadence WP products has roughly quadrupled in the last 10 months! Our new Kadence Theme, which landed on the repo in November (only 160 days ago), now has more than 50,000 active users.”

    \n\n\n\n

    Kadence WP will continue running under its same branding and as a separate company under the iThemes brand. Pricing will remain the same for existing Kadence WP customers. iThemes plans to raise its prices for its Agency Bundle on May 1, 2021, but renewal pricing will remain the same as long as the customers’ subscriptions auto-renew.

    \n\n\n\n

    Kadence Blocks is adding dynamic content for its pro version in the next month. The team is also launching a new plugin called Kadence Cloud, which will allow users to create a pre-built cloud of content that they can pull down into any website. Both Kadence Blocks and the theme will also be rolling in many of the top-voted feature requests from its community. A major new product release is planned for Q4 2021.

    \n\n\n\n

    iThemes will be hosting a townhall meeting Friday, April 9 at 11:00 am CST to address any questions or concerns that users and customers may have. They are also running an online training workshop titled “Learn How to Use Kadence WP” on May 5, 2021, at 1:00 p.m. CST.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 09 Apr 2021 05:23:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"WPTavern: Yes, Comments Are Still Relevant, But We Need a Better System\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114628\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:183:\"https://wptavern.com/yes-comments-are-still-relevant-but-we-need-a-better-system?utm_source=rss&utm_medium=rss&utm_campaign=yes-comments-are-still-relevant-but-we-need-a-better-system\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6116:\"

    More and more, open comments are becoming a thing of the past. Large news organizations have kicked them to the curb. Frustrated bloggers who no longer desire all of the hassles with moderation shut down their forms. The conversations have moved to corporate-controlled social media.

    \n\n\n\n

    It is hard to pinpoint the exact moment much of the web devolved into chaos. It was probably more of a gradual thing. The tools that we built fostered the darkest side of humanity. Far too often, people let out their worst unfiltered thoughts without regard to decency and kindness. If we dig deep enough, social media is likely the culprit that spawned this growing experience. However, it is also entrenched in the blogging world.

    \n\n\n\n

    Now, with the ubiquity of mobile phones, everyone has a voice. And, far too often, the vocal minority drives the masses from discussion to ad hominem. Or, maybe the majority was always looking for a justification.

    \n\n\n\n

    There is a bright side. Commenting on and discussing ideas in an open forum can change hearts and minds. It can lead to discoveries and create life-long friendships — I still routinely chat with people I met through blogs and their comments from nearly two decades ago.

    \n\n\n\n

    Ryan McCue, a core contributor to WordPress, said that comments should be a plugin.

    \n\n\n\n

    There are few things I could think that would hurt the blogging community more. Comments are the lifeblood of many WordPress-built sites. Without them as part of the core experience, how many new users will venture out to find a commenting plugin? Such a change would sign the death warrant for commenting on a large part of the web, moving more discussion away from blogs into the waiting arms of social networks.

    \n\n\n\n

    McCue’s response was to a tweet by Brian Krogsgard, the Post Status creator and editor. “WordPress should have one singular button that says: Turn off all comments and comment displays. This is so hilariously complicated, it’s absurd.”

    \n\n\n\n

    He is not wrong.

    \n\n\n\n

    The WordPress comment settings screen is so complex that I rarely change anything other than a setting or two, even when I want comments enabled for a site. There are around two dozen individual options on that screen, and none of them just allow users to turn it all off.

    \n\n\n\n

    Eric Karkovack explores this same topic in his piece for Speckyboy titled Is the WordPress Comment System Still Relevant? He concluded:

    \n\n\n\n

    So, where does this leave the default comment system? It still offers the basics and can be extended. Yet it seems a bit antiquated when compared to what other services are offering. To remain a compelling option, improvements are in order.

    There’s certainly no harm in keeping it around. But, short of a renewed effort to improve the out-of-the-box functionality, perhaps it shouldn’t be as front-and-center within WordPress as it is now.

    \n\n\n\n

    WordPress has failed to iterate on its commenting feature in recent years.

    \n\n\n\n

    “Like most things, [Full Site Editing] will change things there,” wrote WordPress Themes Team rep Ari Stathopoulos in the Post Status Slack. “Want comments? Add the comment-form block in your template. Don’t want them? Don’t add it.”

    \n\n\n\n

    While that is partly true, it only handles things on the front end of the site. All the commenting-related features would still be there in the admin. However, it is a step in the right direction.

    \n\n\n\n

    The ability to easily opt in or out of a commenting system is merely one change that needs to happen. Something as basic as an in-context comment list view is a must for easier moderation. The Tavern still uses Stephen Cronin’s Show Comment Parent plugin for this. Even a basic JavaScript-based front-end submission form would go a long way toward modernizing the commenting system. Does anyone enjoy a full page reload when leaving a comment?

    \n\n\n\n

    However, there is more that we could be doing. For a platform that prides itself on democratizing publishing and owning your content, a ticket for supporting webmentions has had virtually no movement in five years.

    \n\n\n\n

    A Webmention is a standardized protocol for mentions and conversations across the web. It is a part of a goal for a decentralized social “network” of sorts where everyone owns and controls their content. While the Webmention plugin by Matthias Pfefferle takes care of this feature, universal adoption would be a far more realistic goal as part of WordPress.

    \n\n\n\n

    We should also have some serious conversations about what tools publishers need to build thriving communities via their comments. For example, is comment moderation easy enough? If not, what can we do to improve it?

    \n\n\n\n

    WordPress is more than simply a blogging platform. Users can build any kind of site they want today, with or without the comments. However, commenting is part of the software’s history and identity. It is a gateway to discussion — often as important or even more so than a site’s content.

    \n\n\n\n

    Comments will always be relevant. Whether it is a response to a blog post, tweet, Slack thread, or some new thing we have yet to think of, the web is all about connecting and communicating with others. We should constantly reevaluate whether WordPress is leading the pack, creating the tools to enable more discussion.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 23:11:34 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:11:\"\n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"HeroPress: Hallway Chats Joins The HeroPress Family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://heropress.com/?p=3524\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:147:\"https://heropress.com/hallway-chats-joins-the-heropress-family/#utm_source=rss&utm_medium=rss&utm_campaign=hallway-chats-joins-the-heropress-family\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2413:\"\"Original\n

    As any parent or pet owner knows, quiet doesn’t always equal inactivity. And the same is true here at HeroPress.

    \n\n\n\n

    Investing in a sustainable framework

    \n\n\n\n

    While we haven’t said much over the last few months, we’ve been working with the initial feedback we received to expand HeroPress in the most manageable and sustainable way. Because really, if it’s not manageable and sustainable, what’s even the point?

    \n\n\n\n

    This quest prompted a lot of additional research and active listening, all of which lead the fine folks behind the Hallway Chats podcast to start a conversation with us.

    \n\n\n\n

    Hallway Chats found us

    \n\n\n\n

    We were considering a podcast, but had moved it down the build list. Tara Claeys and Liam Dempsey, while loving the work they’ve done with Hallway Chats, found life was moving then in different directions, as it does for us all. And as Hallway Chats approached its 150th episode, the decision was made to pass the torch, or microphone as it were.

    \n\n\n\n

    We’re thrilled to be able to build on their legacy and continue to grow Hallway Chats through out the community, and we’re grateful to Tara and Liam that they’ve entrusted it into our care.

    \n\n\n\n

    Embrace opportunities that are the right fit

    \n\n\n\n

    A few shifts and changes are inevitable, but the spirit of Hallway Chats will always stand. After all, why change something that so ideally meshes with our own goals?

    \n\n\n\n

    Listen to the 150th Episode of Hallway Chats where Tara, Liam, Topher, and I talk even more about the direction we’re all heading.

    \n

    The post Hallway Chats Joins The HeroPress Family appeared first on HeroPress.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 08 Apr 2021 14:55:13 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n \n \n \n \n \n \n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: Calling All Themers: Design the Next Round of Query Block Patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114777\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/calling-all-themers-design-the-next-round-of-query-block-patterns?utm_source=rss&utm_medium=rss&utm_campaign=calling-all-themers-design-the-next-round-of-query-block-patterns\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4621:\"

    The Gutenberg plugin repository currently has an open ticket calling for community-contributed Query block patterns. These would launch alongside Full Site Editing’s inclusion in WordPress, which could be as soon as version 5.8 — no hard decision has been made on that yet. Some may not end up bundled directly in WordPress but could be included in the upcoming pattern directory.

    \n\n\n\n

    Gutenberg 10.2 introduced a new feature called “scoped patterns.” This system allows developers to build block patterns within a specific context instead of always being available from the inserter. Specifically, the Gutenberg development team created a handful of patterns for the Query block. When inserting the block, users can choose between each of these patterns as a starting point for outputting their posts.

    \n\n\n\nPattern selections for the Query block in its initial state.\n\n\n\n

    The patterns are far too generic and do not come close to replicating the array of design options in the real world. While the end goal is to not cover every scenario imaginable, WordPress should ultimately give users a little more flexibility as a jumping-off point.

    \n\n\n\n

    “Those were always meant to be temporary to start with,” wrote Kjell Reigstad, a core WordPress contributor and Design Director at Automattic, in the GitHub ticket. “Let’s take another look at these, both to replace the current ones for now, but also so that we eventually have a nice set of WordPress community-designed query block patterns to add to the Pattern Directory at launch.”

    \n\n\n\n

    Theme authors will be able to release their own scoped patterns for the Query block too. However, with block-based themes being few and far between at this phase of the project, WordPress needs to set the stage.

    \n\n\n\n

    This is one of the reasons I was so vocal pre-WordPress 5.5 about the early pattern designs, and it is why I was happy to see them overhauled before the launch. Many users need that bit of inspiration, that push to try out alternate layouts instead of building them on their own. They need options beyond the typical stacked blog posts layouts.

    \n\n\n\n

    A few well-designed Query patterns do that.

    \n\n\n\n

    I decided to try my hand at building what I think would be a fun Query pattern to use:

    \n\n\n\nQuery block pattern with full-width background image.\n\n\n\n

    I built this using core blocks instead of the Query block with the Eksell theme installed. Side note: let me just reiterate my earlier review of Eksell. It is such a well-rounded design that anyone can create all sorts of custom patterns. It makes for an easy-to-use testbed for exploring design concepts.

    \n\n\n\n

    The idea was based on a pattern that Mel Choyce-Dwan shared in the ticket:

    \n\n\n\n Query block pattern with background image and centered text. \n\n\n\n

    I do not think it is currently possible to build this Query pattern idea with the site editor. Unless I am mistaken, there is no way to use the post featured image as a background or within the Cover block, a common layout design.

    \n\n\n\n

    Eventually, the site editor should get to the point where theme authors can move at least a hair beyond the basics. It will take some time for the tooling to catch up, but we are approaching the point where designers can build more complex things. That is another reason theme authors should be involved with this discussion. It needs input and ideas from themers who are out there dealing with users in real-world settings. The Gutenberg team cannot know everything it needs to build without this vital community source.

    \n\n\n\n

    Choyce-Dwan shared several other patterns in the ticket that are worth exploring. Along with Reigstad, Beatriz Fialho and Paal Joachim Romdahl have contributed pattern ideas.

    \n\n\n\n

    If you fancy yourself a theme designer, now is as good a time as any to contribute.

    \";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 07 Apr 2021 22:45:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Fri, 30 Apr 2021 22:29:10 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:13:\"last-modified\";s:29:\"Fri, 30 Apr 2021 22:15:08 GMT\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 1\";s:16:\"content-encoding\";s:4:\"gzip\";}}s:5:\"build\";s:14:\"20201016172007\";}', 'no'); -INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES -(5508, '_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619864950', 'no'), -(5509, '_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9', '1619821750', 'no'), -(5510, '_transient_timeout_dash_v2_88ae138922fe95674369b1cb3d215a2b', '1619864950', 'no'), -(5511, '_transient_dash_v2_88ae138922fe95674369b1cb3d215a2b', '', 'no'); +(5558, 'rewrite_rules', 'a:251:{s:19:\"sitemap_index\\.xml$\";s:19:\"index.php?sitemap=1\";s:31:\"([^/]+?)-sitemap([0-9]+)?\\.xml$\";s:51:\"index.php?sitemap=$matches[1]&sitemap_n=$matches[2]\";s:24:\"([a-z]+)?-?sitemap\\.xsl$\";s:39:\"index.php?yoast-sitemap-xsl=$matches[1]\";s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:7:\"team/?$\";s:31:\"index.php?post_type=team_member\";s:37:\"team/feed/(feed|rdf|rss|rss2|atom)/?$\";s:48:\"index.php?post_type=team_member&feed=$matches[1]\";s:32:\"team/(feed|rdf|rss|rss2|atom)/?$\";s:48:\"index.php?post_type=team_member&feed=$matches[1]\";s:24:\"team/page/([0-9]{1,})/?$\";s:49:\"index.php?post_type=team_member&paged=$matches[1]\";s:10:\"graphql/?$\";s:22:\"index.php?graphql=true\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:39:\"team_member/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:49:\"team_member/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:69:\"team_member/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:64:\"team_member/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:64:\"team_member/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:45:\"team_member/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:28:\"team_member/([^/]+)/embed/?$\";s:44:\"index.php?team_member=$matches[1]&embed=true\";s:32:\"team_member/([^/]+)/trackback/?$\";s:38:\"index.php?team_member=$matches[1]&tb=1\";s:52:\"team_member/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?team_member=$matches[1]&feed=$matches[2]\";s:47:\"team_member/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?team_member=$matches[1]&feed=$matches[2]\";s:40:\"team_member/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?team_member=$matches[1]&paged=$matches[2]\";s:47:\"team_member/([^/]+)/comment-page-([0-9]{1,})/?$\";s:51:\"index.php?team_member=$matches[1]&cpage=$matches[2]\";s:36:\"team_member/([^/]+)(?:/([0-9]+))?/?$\";s:50:\"index.php?team_member=$matches[1]&page=$matches[2]\";s:28:\"team_member/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:38:\"team_member/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:58:\"team_member/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:53:\"team_member/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:53:\"team_member/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:34:\"team_member/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:35:\"project/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:45:\"project/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:65:\"project/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:60:\"project/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:60:\"project/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:41:\"project/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:24:\"project/([^/]+)/embed/?$\";s:40:\"index.php?project=$matches[1]&embed=true\";s:28:\"project/([^/]+)/trackback/?$\";s:34:\"index.php?project=$matches[1]&tb=1\";s:36:\"project/([^/]+)/page/?([0-9]{1,})/?$\";s:47:\"index.php?project=$matches[1]&paged=$matches[2]\";s:43:\"project/([^/]+)/comment-page-([0-9]{1,})/?$\";s:47:\"index.php?project=$matches[1]&cpage=$matches[2]\";s:32:\"project/([^/]+)(?:/([0-9]+))?/?$\";s:46:\"index.php?project=$matches[1]&page=$matches[2]\";s:24:\"project/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:34:\"project/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:54:\"project/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:49:\"project/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:49:\"project/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:30:\"project/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:43:\"type_limit_test/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:53:\"type_limit_test/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:73:\"type_limit_test/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:68:\"type_limit_test/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:68:\"type_limit_test/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:49:\"type_limit_test/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:32:\"type_limit_test/([^/]+)/embed/?$\";s:48:\"index.php?type_limit_test=$matches[1]&embed=true\";s:36:\"type_limit_test/([^/]+)/trackback/?$\";s:42:\"index.php?type_limit_test=$matches[1]&tb=1\";s:44:\"type_limit_test/([^/]+)/page/?([0-9]{1,})/?$\";s:55:\"index.php?type_limit_test=$matches[1]&paged=$matches[2]\";s:51:\"type_limit_test/([^/]+)/comment-page-([0-9]{1,})/?$\";s:55:\"index.php?type_limit_test=$matches[1]&cpage=$matches[2]\";s:40:\"type_limit_test/([^/]+)(?:/([0-9]+))?/?$\";s:54:\"index.php?type_limit_test=$matches[1]&page=$matches[2]\";s:32:\"type_limit_test/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:42:\"type_limit_test/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:62:\"type_limit_test/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:57:\"type_limit_test/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:57:\"type_limit_test/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:38:\"type_limit_test/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:45:\"type_limit_0_test/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:55:\"type_limit_0_test/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:75:\"type_limit_0_test/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:70:\"type_limit_0_test/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:70:\"type_limit_0_test/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:51:\"type_limit_0_test/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:34:\"type_limit_0_test/([^/]+)/embed/?$\";s:50:\"index.php?type_limit_0_test=$matches[1]&embed=true\";s:38:\"type_limit_0_test/([^/]+)/trackback/?$\";s:44:\"index.php?type_limit_0_test=$matches[1]&tb=1\";s:46:\"type_limit_0_test/([^/]+)/page/?([0-9]{1,})/?$\";s:57:\"index.php?type_limit_0_test=$matches[1]&paged=$matches[2]\";s:53:\"type_limit_0_test/([^/]+)/comment-page-([0-9]{1,})/?$\";s:57:\"index.php?type_limit_0_test=$matches[1]&cpage=$matches[2]\";s:42:\"type_limit_0_test/([^/]+)(?:/([0-9]+))?/?$\";s:56:\"index.php?type_limit_0_test=$matches[1]&page=$matches[2]\";s:34:\"type_limit_0_test/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:44:\"type_limit_0_test/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:64:\"type_limit_0_test/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:59:\"type_limit_0_test/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:59:\"type_limit_0_test/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:40:\"type_limit_0_test/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:48:\"translation_filter_t/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:58:\"translation_filter_t/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:78:\"translation_filter_t/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"translation_filter_t/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"translation_filter_t/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:54:\"translation_filter_t/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:37:\"translation_filter_t/([^/]+)/embed/?$\";s:53:\"index.php?translation_filter_t=$matches[1]&embed=true\";s:41:\"translation_filter_t/([^/]+)/trackback/?$\";s:47:\"index.php?translation_filter_t=$matches[1]&tb=1\";s:49:\"translation_filter_t/([^/]+)/page/?([0-9]{1,})/?$\";s:60:\"index.php?translation_filter_t=$matches[1]&paged=$matches[2]\";s:56:\"translation_filter_t/([^/]+)/comment-page-([0-9]{1,})/?$\";s:60:\"index.php?translation_filter_t=$matches[1]&cpage=$matches[2]\";s:45:\"translation_filter_t/([^/]+)(?:/([0-9]+))?/?$\";s:59:\"index.php?translation_filter_t=$matches[1]&page=$matches[2]\";s:37:\"translation_filter_t/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:47:\"translation_filter_t/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:67:\"translation_filter_t/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"translation_filter_t/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"translation_filter_t/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:43:\"translation_filter_t/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:48:\"acf custom post type/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:58:\"acf custom post type/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:78:\"acf custom post type/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"acf custom post type/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:73:\"acf custom post type/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:54:\"acf custom post type/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:37:\"acf custom post type/([^/]+)/embed/?$\";s:50:\"index.php?acfcustomposttype=$matches[1]&embed=true\";s:41:\"acf custom post type/([^/]+)/trackback/?$\";s:44:\"index.php?acfcustomposttype=$matches[1]&tb=1\";s:49:\"acf custom post type/([^/]+)/page/?([0-9]{1,})/?$\";s:57:\"index.php?acfcustomposttype=$matches[1]&paged=$matches[2]\";s:56:\"acf custom post type/([^/]+)/comment-page-([0-9]{1,})/?$\";s:57:\"index.php?acfcustomposttype=$matches[1]&cpage=$matches[2]\";s:45:\"acf custom post type/([^/]+)(?:/([0-9]+))?/?$\";s:56:\"index.php?acfcustomposttype=$matches[1]&page=$matches[2]\";s:37:\"acf custom post type/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:47:\"acf custom post type/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:67:\"acf custom post type/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"acf custom post type/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:62:\"acf custom post type/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:43:\"acf custom post type/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:42:\"action_monitor/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:52:\"action_monitor/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:72:\"action_monitor/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:67:\"action_monitor/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:67:\"action_monitor/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:48:\"action_monitor/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:31:\"action_monitor/([^/]+)/embed/?$\";s:47:\"index.php?action_monitor=$matches[1]&embed=true\";s:35:\"action_monitor/([^/]+)/trackback/?$\";s:41:\"index.php?action_monitor=$matches[1]&tb=1\";s:43:\"action_monitor/([^/]+)/page/?([0-9]{1,})/?$\";s:54:\"index.php?action_monitor=$matches[1]&paged=$matches[2]\";s:50:\"action_monitor/([^/]+)/comment-page-([0-9]{1,})/?$\";s:54:\"index.php?action_monitor=$matches[1]&cpage=$matches[2]\";s:39:\"action_monitor/([^/]+)(?:/([0-9]+))?/?$\";s:53:\"index.php?action_monitor=$matches[1]&page=$matches[2]\";s:31:\"action_monitor/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:41:\"action_monitor/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:61:\"action_monitor/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:56:\"action_monitor/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:56:\"action_monitor/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:37:\"action_monitor/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:68:\"gatsby_action_ref_node_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&feed=$matches[2]\";s:63:\"gatsby_action_ref_node_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&feed=$matches[2]\";s:44:\"gatsby_action_ref_node_type/([^/]+)/embed/?$\";s:74:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&embed=true\";s:56:\"gatsby_action_ref_node_type/([^/]+)/page/?([0-9]{1,})/?$\";s:81:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]&paged=$matches[2]\";s:38:\"gatsby_action_ref_node_type/([^/]+)/?$\";s:63:\"index.php?taxonomy=gatsby_action_ref_node_type&term=$matches[1]\";s:68:\"gatsby_action_ref_node_dbid/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&feed=$matches[2]\";s:63:\"gatsby_action_ref_node_dbid/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&feed=$matches[2]\";s:44:\"gatsby_action_ref_node_dbid/([^/]+)/embed/?$\";s:74:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&embed=true\";s:56:\"gatsby_action_ref_node_dbid/([^/]+)/page/?([0-9]{1,})/?$\";s:81:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]&paged=$matches[2]\";s:38:\"gatsby_action_ref_node_dbid/([^/]+)/?$\";s:63:\"index.php?taxonomy=gatsby_action_ref_node_dbid&term=$matches[1]\";s:66:\"gatsby_action_ref_node_id/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&feed=$matches[2]\";s:61:\"gatsby_action_ref_node_id/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&feed=$matches[2]\";s:42:\"gatsby_action_ref_node_id/([^/]+)/embed/?$\";s:72:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&embed=true\";s:54:\"gatsby_action_ref_node_id/([^/]+)/page/?([0-9]{1,})/?$\";s:79:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]&paged=$matches[2]\";s:36:\"gatsby_action_ref_node_id/([^/]+)/?$\";s:61:\"index.php?taxonomy=gatsby_action_ref_node_id&term=$matches[1]\";s:59:\"gatsby_action_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:71:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&feed=$matches[2]\";s:54:\"gatsby_action_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:71:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&feed=$matches[2]\";s:35:\"gatsby_action_type/([^/]+)/embed/?$\";s:65:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&embed=true\";s:47:\"gatsby_action_type/([^/]+)/page/?([0-9]{1,})/?$\";s:72:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]&paged=$matches[2]\";s:29:\"gatsby_action_type/([^/]+)/?$\";s:54:\"index.php?taxonomy=gatsby_action_type&term=$matches[1]\";s:66:\"gatsby_action_stream_type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&feed=$matches[2]\";s:61:\"gatsby_action_stream_type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:78:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&feed=$matches[2]\";s:42:\"gatsby_action_stream_type/([^/]+)/embed/?$\";s:72:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&embed=true\";s:54:\"gatsby_action_stream_type/([^/]+)/page/?([0-9]{1,})/?$\";s:79:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]&paged=$matches[2]\";s:36:\"gatsby_action_stream_type/([^/]+)/?$\";s:61:\"index.php?taxonomy=gatsby_action_stream_type&term=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:27:\"comment-page-([0-9]{1,})/?$\";s:39:\"index.php?&page_id=17&cpage=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}', 'yes'), +(5582, '_site_transient_timeout_poptags_40cd750bba9870f18aada2478b24840a', '1620097318', 'no'), +(5583, '_site_transient_poptags_40cd750bba9870f18aada2478b24840a', 'O:8:\"stdClass\":100:{s:11:\"woocommerce\";a:3:{s:4:\"name\";s:11:\"woocommerce\";s:4:\"slug\";s:11:\"woocommerce\";s:5:\"count\";i:4863;}s:6:\"widget\";a:3:{s:4:\"name\";s:6:\"widget\";s:4:\"slug\";s:6:\"widget\";s:5:\"count\";i:4761;}s:4:\"post\";a:3:{s:4:\"name\";s:4:\"post\";s:4:\"slug\";s:4:\"post\";s:5:\"count\";i:2716;}s:5:\"admin\";a:3:{s:4:\"name\";s:5:\"admin\";s:4:\"slug\";s:5:\"admin\";s:5:\"count\";i:2590;}s:5:\"posts\";a:3:{s:4:\"name\";s:5:\"posts\";s:4:\"slug\";s:5:\"posts\";s:5:\"count\";i:1997;}s:9:\"shortcode\";a:3:{s:4:\"name\";s:9:\"shortcode\";s:4:\"slug\";s:9:\"shortcode\";s:5:\"count\";i:1855;}s:8:\"comments\";a:3:{s:4:\"name\";s:8:\"comments\";s:4:\"slug\";s:8:\"comments\";s:5:\"count\";i:1831;}s:6:\"images\";a:3:{s:4:\"name\";s:6:\"images\";s:4:\"slug\";s:6:\"images\";s:5:\"count\";i:1510;}s:6:\"google\";a:3:{s:4:\"name\";s:6:\"google\";s:4:\"slug\";s:6:\"google\";s:5:\"count\";i:1505;}s:7:\"twitter\";a:3:{s:4:\"name\";s:7:\"twitter\";s:4:\"slug\";s:7:\"twitter\";s:5:\"count\";i:1497;}s:3:\"seo\";a:3:{s:4:\"name\";s:3:\"seo\";s:4:\"slug\";s:3:\"seo\";s:5:\"count\";i:1489;}s:5:\"image\";a:3:{s:4:\"name\";s:5:\"image\";s:4:\"slug\";s:5:\"image\";s:5:\"count\";i:1480;}s:8:\"facebook\";a:3:{s:4:\"name\";s:8:\"facebook\";s:4:\"slug\";s:8:\"facebook\";s:5:\"count\";i:1467;}s:7:\"sidebar\";a:3:{s:4:\"name\";s:7:\"sidebar\";s:4:\"slug\";s:7:\"sidebar\";s:5:\"count\";i:1310;}s:5:\"email\";a:3:{s:4:\"name\";s:5:\"email\";s:4:\"slug\";s:5:\"email\";s:5:\"count\";i:1255;}s:9:\"ecommerce\";a:3:{s:4:\"name\";s:9:\"ecommerce\";s:4:\"slug\";s:9:\"ecommerce\";s:5:\"count\";i:1242;}s:7:\"gallery\";a:3:{s:4:\"name\";s:7:\"gallery\";s:4:\"slug\";s:7:\"gallery\";s:5:\"count\";i:1227;}s:4:\"page\";a:3:{s:4:\"name\";s:4:\"page\";s:4:\"slug\";s:4:\"page\";s:5:\"count\";i:1152;}s:6:\"social\";a:3:{s:4:\"name\";s:6:\"social\";s:4:\"slug\";s:6:\"social\";s:5:\"count\";i:1124;}s:5:\"login\";a:3:{s:4:\"name\";s:5:\"login\";s:4:\"slug\";s:5:\"login\";s:5:\"count\";i:1051;}s:8:\"security\";a:3:{s:4:\"name\";s:8:\"security\";s:4:\"slug\";s:8:\"security\";s:5:\"count\";i:946;}s:5:\"video\";a:3:{s:4:\"name\";s:5:\"video\";s:4:\"slug\";s:5:\"video\";s:5:\"count\";i:926;}s:7:\"widgets\";a:3:{s:4:\"name\";s:7:\"widgets\";s:4:\"slug\";s:7:\"widgets\";s:5:\"count\";i:904;}s:5:\"links\";a:3:{s:4:\"name\";s:5:\"links\";s:4:\"slug\";s:5:\"links\";s:5:\"count\";i:886;}s:10:\"e-commerce\";a:3:{s:4:\"name\";s:10:\"e-commerce\";s:4:\"slug\";s:10:\"e-commerce\";s:5:\"count\";i:876;}s:4:\"spam\";a:3:{s:4:\"name\";s:4:\"spam\";s:4:\"slug\";s:4:\"spam\";s:5:\"count\";i:821;}s:6:\"slider\";a:3:{s:4:\"name\";s:6:\"slider\";s:4:\"slug\";s:6:\"slider\";s:5:\"count\";i:815;}s:7:\"content\";a:3:{s:4:\"name\";s:7:\"content\";s:4:\"slug\";s:7:\"content\";s:5:\"count\";i:806;}s:9:\"analytics\";a:3:{s:4:\"name\";s:9:\"analytics\";s:4:\"slug\";s:9:\"analytics\";s:5:\"count\";i:803;}s:4:\"form\";a:3:{s:4:\"name\";s:4:\"form\";s:4:\"slug\";s:4:\"form\";s:5:\"count\";i:780;}s:10:\"buddypress\";a:3:{s:4:\"name\";s:10:\"buddypress\";s:4:\"slug\";s:10:\"buddypress\";s:5:\"count\";i:761;}s:5:\"media\";a:3:{s:4:\"name\";s:5:\"media\";s:4:\"slug\";s:5:\"media\";s:5:\"count\";i:742;}s:3:\"rss\";a:3:{s:4:\"name\";s:3:\"rss\";s:4:\"slug\";s:3:\"rss\";s:5:\"count\";i:727;}s:6:\"search\";a:3:{s:4:\"name\";s:6:\"search\";s:4:\"slug\";s:6:\"search\";s:5:\"count\";i:725;}s:5:\"pages\";a:3:{s:4:\"name\";s:5:\"pages\";s:4:\"slug\";s:5:\"pages\";s:5:\"count\";i:712;}s:6:\"editor\";a:3:{s:4:\"name\";s:6:\"editor\";s:4:\"slug\";s:6:\"editor\";s:5:\"count\";i:711;}s:4:\"menu\";a:3:{s:4:\"name\";s:4:\"menu\";s:4:\"slug\";s:4:\"menu\";s:5:\"count\";i:677;}s:7:\"payment\";a:3:{s:4:\"name\";s:7:\"payment\";s:4:\"slug\";s:7:\"payment\";s:5:\"count\";i:670;}s:6:\"jquery\";a:3:{s:4:\"name\";s:6:\"jquery\";s:4:\"slug\";s:6:\"jquery\";s:5:\"count\";i:664;}s:4:\"feed\";a:3:{s:4:\"name\";s:4:\"feed\";s:4:\"slug\";s:4:\"feed\";s:5:\"count\";i:663;}s:12:\"contact-form\";a:3:{s:4:\"name\";s:12:\"contact form\";s:4:\"slug\";s:12:\"contact-form\";s:5:\"count\";i:661;}s:8:\"category\";a:3:{s:4:\"name\";s:8:\"category\";s:4:\"slug\";s:8:\"category\";s:5:\"count\";i:659;}s:5:\"embed\";a:3:{s:4:\"name\";s:5:\"embed\";s:4:\"slug\";s:5:\"embed\";s:5:\"count\";i:651;}s:4:\"ajax\";a:3:{s:4:\"name\";s:4:\"ajax\";s:4:\"slug\";s:4:\"ajax\";s:5:\"count\";i:646;}s:9:\"gutenberg\";a:3:{s:4:\"name\";s:9:\"gutenberg\";s:4:\"slug\";s:9:\"gutenberg\";s:5:\"count\";i:626;}s:15:\"payment-gateway\";a:3:{s:4:\"name\";s:15:\"payment gateway\";s:4:\"slug\";s:15:\"payment-gateway\";s:5:\"count\";i:599;}s:7:\"youtube\";a:3:{s:4:\"name\";s:7:\"youtube\";s:4:\"slug\";s:7:\"youtube\";s:5:\"count\";i:597;}s:3:\"css\";a:3:{s:4:\"name\";s:3:\"css\";s:4:\"slug\";s:3:\"css\";s:5:\"count\";i:595;}s:4:\"link\";a:3:{s:4:\"name\";s:4:\"link\";s:4:\"slug\";s:4:\"link\";s:5:\"count\";i:588;}s:10:\"javascript\";a:3:{s:4:\"name\";s:10:\"javascript\";s:4:\"slug\";s:10:\"javascript\";s:5:\"count\";i:588;}s:9:\"affiliate\";a:3:{s:4:\"name\";s:9:\"affiliate\";s:4:\"slug\";s:9:\"affiliate\";s:5:\"count\";i:576;}s:5:\"share\";a:3:{s:4:\"name\";s:5:\"share\";s:4:\"slug\";s:5:\"share\";s:5:\"count\";i:571;}s:10:\"responsive\";a:3:{s:4:\"name\";s:10:\"responsive\";s:4:\"slug\";s:10:\"responsive\";s:5:\"count\";i:564;}s:5:\"theme\";a:3:{s:4:\"name\";s:5:\"theme\";s:4:\"slug\";s:5:\"theme\";s:5:\"count\";i:561;}s:7:\"comment\";a:3:{s:4:\"name\";s:7:\"comment\";s:4:\"slug\";s:7:\"comment\";s:5:\"count\";i:557;}s:9:\"dashboard\";a:3:{s:4:\"name\";s:9:\"dashboard\";s:4:\"slug\";s:9:\"dashboard\";s:5:\"count\";i:556;}s:3:\"ads\";a:3:{s:4:\"name\";s:3:\"ads\";s:4:\"slug\";s:3:\"ads\";s:5:\"count\";i:544;}s:7:\"contact\";a:3:{s:4:\"name\";s:7:\"contact\";s:4:\"slug\";s:7:\"contact\";s:5:\"count\";i:543;}s:3:\"api\";a:3:{s:4:\"name\";s:3:\"api\";s:4:\"slug\";s:3:\"api\";s:5:\"count\";i:542;}s:6:\"custom\";a:3:{s:4:\"name\";s:6:\"custom\";s:4:\"slug\";s:6:\"custom\";s:5:\"count\";i:539;}s:10:\"categories\";a:3:{s:4:\"name\";s:10:\"categories\";s:4:\"slug\";s:10:\"categories\";s:5:\"count\";i:530;}s:4:\"user\";a:3:{s:4:\"name\";s:4:\"user\";s:4:\"slug\";s:4:\"user\";s:5:\"count\";i:517;}s:6:\"button\";a:3:{s:4:\"name\";s:6:\"button\";s:4:\"slug\";s:6:\"button\";s:5:\"count\";i:510;}s:6:\"events\";a:3:{s:4:\"name\";s:6:\"events\";s:4:\"slug\";s:6:\"events\";s:5:\"count\";i:501;}s:4:\"tags\";a:3:{s:4:\"name\";s:4:\"tags\";s:4:\"slug\";s:4:\"tags\";s:5:\"count\";i:499;}s:9:\"elementor\";a:3:{s:4:\"name\";s:9:\"elementor\";s:4:\"slug\";s:9:\"elementor\";s:5:\"count\";i:499;}s:6:\"mobile\";a:3:{s:4:\"name\";s:6:\"mobile\";s:4:\"slug\";s:6:\"mobile\";s:5:\"count\";i:491;}s:5:\"block\";a:3:{s:4:\"name\";s:5:\"block\";s:4:\"slug\";s:5:\"block\";s:5:\"count\";i:490;}s:5:\"users\";a:3:{s:4:\"name\";s:5:\"users\";s:4:\"slug\";s:5:\"users\";s:5:\"count\";i:488;}s:9:\"marketing\";a:3:{s:4:\"name\";s:9:\"marketing\";s:4:\"slug\";s:9:\"marketing\";s:5:\"count\";i:486;}s:4:\"chat\";a:3:{s:4:\"name\";s:4:\"chat\";s:4:\"slug\";s:4:\"chat\";s:5:\"count\";i:473;}s:5:\"popup\";a:3:{s:4:\"name\";s:5:\"popup\";s:4:\"slug\";s:5:\"popup\";s:5:\"count\";i:463;}s:8:\"calendar\";a:3:{s:4:\"name\";s:8:\"calendar\";s:4:\"slug\";s:8:\"calendar\";s:5:\"count\";i:458;}s:5:\"forms\";a:3:{s:4:\"name\";s:5:\"forms\";s:4:\"slug\";s:5:\"forms\";s:5:\"count\";i:454;}s:14:\"contact-form-7\";a:3:{s:4:\"name\";s:14:\"contact form 7\";s:4:\"slug\";s:14:\"contact-form-7\";s:5:\"count\";i:446;}s:5:\"photo\";a:3:{s:4:\"name\";s:5:\"photo\";s:4:\"slug\";s:5:\"photo\";s:5:\"count\";i:445;}s:10:\"navigation\";a:3:{s:4:\"name\";s:10:\"navigation\";s:4:\"slug\";s:10:\"navigation\";s:5:\"count\";i:444;}s:9:\"slideshow\";a:3:{s:4:\"name\";s:9:\"slideshow\";s:4:\"slug\";s:9:\"slideshow\";s:5:\"count\";i:443;}s:10:\"newsletter\";a:3:{s:4:\"name\";s:10:\"newsletter\";s:4:\"slug\";s:10:\"newsletter\";s:5:\"count\";i:441;}s:8:\"shipping\";a:3:{s:4:\"name\";s:8:\"shipping\";s:4:\"slug\";s:8:\"shipping\";s:5:\"count\";i:435;}s:5:\"stats\";a:3:{s:4:\"name\";s:5:\"stats\";s:4:\"slug\";s:5:\"stats\";s:5:\"count\";i:432;}s:6:\"photos\";a:3:{s:4:\"name\";s:6:\"photos\";s:4:\"slug\";s:6:\"photos\";s:5:\"count\";i:424;}s:10:\"statistics\";a:3:{s:4:\"name\";s:10:\"statistics\";s:4:\"slug\";s:10:\"statistics\";s:5:\"count\";i:419;}s:12:\"social-media\";a:3:{s:4:\"name\";s:12:\"social media\";s:4:\"slug\";s:12:\"social-media\";s:5:\"count\";i:409;}s:11:\"performance\";a:3:{s:4:\"name\";s:11:\"performance\";s:4:\"slug\";s:11:\"performance\";s:5:\"count\";i:407;}s:8:\"redirect\";a:3:{s:4:\"name\";s:8:\"redirect\";s:4:\"slug\";s:8:\"redirect\";s:5:\"count\";i:406;}s:4:\"news\";a:3:{s:4:\"name\";s:4:\"news\";s:4:\"slug\";s:4:\"news\";s:5:\"count\";i:406;}s:10:\"shortcodes\";a:3:{s:4:\"name\";s:10:\"shortcodes\";s:4:\"slug\";s:10:\"shortcodes\";s:5:\"count\";i:400;}s:12:\"notification\";a:3:{s:4:\"name\";s:12:\"notification\";s:4:\"slug\";s:12:\"notification\";s:5:\"count\";i:390;}s:4:\"code\";a:3:{s:4:\"name\";s:4:\"code\";s:4:\"slug\";s:4:\"code\";s:5:\"count\";i:390;}s:7:\"plugins\";a:3:{s:4:\"name\";s:7:\"plugins\";s:4:\"slug\";s:7:\"plugins\";s:5:\"count\";i:388;}s:9:\"multisite\";a:3:{s:4:\"name\";s:9:\"multisite\";s:4:\"slug\";s:9:\"multisite\";s:5:\"count\";i:380;}s:3:\"url\";a:3:{s:4:\"name\";s:3:\"url\";s:4:\"slug\";s:3:\"url\";s:5:\"count\";i:379;}s:8:\"tracking\";a:3:{s:4:\"name\";s:8:\"tracking\";s:4:\"slug\";s:8:\"tracking\";s:5:\"count\";i:372;}s:4:\"meta\";a:3:{s:4:\"name\";s:4:\"meta\";s:4:\"slug\";s:4:\"meta\";s:5:\"count\";i:371;}s:4:\"list\";a:3:{s:4:\"name\";s:4:\"list\";s:4:\"slug\";s:4:\"list\";s:5:\"count\";i:364;}s:6:\"import\";a:3:{s:4:\"name\";s:6:\"import\";s:4:\"slug\";s:6:\"import\";s:5:\"count\";i:363;}s:16:\"google-analytics\";a:3:{s:4:\"name\";s:16:\"google analytics\";s:4:\"slug\";s:16:\"google-analytics\";s:5:\"count\";i:355;}s:5:\"cache\";a:3:{s:4:\"name\";s:5:\"cache\";s:4:\"slug\";s:5:\"cache\";s:5:\"count\";i:354;}s:16:\"custom-post-type\";a:3:{s:4:\"name\";s:16:\"custom post type\";s:4:\"slug\";s:16:\"custom-post-type\";s:5:\"count\";i:347;}}', 'no'), +(5608, '_site_transient_timeout_theme_roots', '1620150260', 'no'), +(5609, '_site_transient_theme_roots', 'a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}', 'no'), +(5611, '_site_transient_update_core', 'O:8:\"stdClass\":4:{s:7:\"updates\";a:2:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:7:\"upgrade\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}i:1;O:8:\"stdClass\":11:{s:8:\"response\";s:10:\"autoupdate\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.7.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.7.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.7.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.1\";s:7:\"version\";s:5:\"5.7.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";s:9:\"new_files\";s:1:\"1\";}}s:12:\"last_checked\";i:1620148463;s:15:\"version_checked\";s:5:\"5.6.3\";s:12:\"translations\";a:0:{}}', 'no'), +(5612, '_site_transient_update_themes', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1620148463;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"1.9\";s:12:\"twentytwenty\";s:3:\"1.6\";s:15:\"twentytwentyone\";s:3:\"1.1\";}s:8:\"response\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.0\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.0.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.7\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.7.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.3\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.3.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:9:\"no_update\";a:0:{}s:12:\"translations\";a:0:{}}', 'no'), +(5613, '_site_transient_update_plugins', 'O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1620148463;s:7:\"checked\";a:10:{s:45:\"wp-graphql-yoast-seo/wp-graphql-yoast-seo.php\";s:6:\"4.14.0\";s:34:\"advanced-custom-fields-pro/acf.php\";s:5:\"5.8.7\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:5:\"1.8.1\";s:25:\"basic-auth/basic-auth.php\";s:3:\"0.1\";s:23:\"wp-gatsby/wp-gatsby.php\";s:6:\"1.0.10\";s:25:\"wp-graphql/wp-graphql.php\";s:5:\"1.3.7\";s:65:\"wp-graphql-custom-post-type-ui/wp-graphql-custom-post-type-ui.php\";s:3:\"1.1\";s:33:\"wp-graphql-acf/wp-graphql-acf.php\";s:5:\"0.3.1\";s:37:\"wp-graphql-gutenberg-0.3.8/plugin.php\";s:5:\"0.3.8\";s:24:\"wordpress-seo/wp-seo.php\";s:4:\"16.2\";}s:8:\"response\";a:2:{s:43:\"custom-post-type-ui/custom-post-type-ui.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:33:\"w.org/plugins/custom-post-type-ui\";s:4:\"slug\";s:19:\"custom-post-type-ui\";s:6:\"plugin\";s:43:\"custom-post-type-ui/custom-post-type-ui.php\";s:11:\"new_version\";s:5:\"1.9.1\";s:3:\"url\";s:50:\"https://wordpress.org/plugins/custom-post-type-ui/\";s:7:\"package\";s:68:\"https://downloads.wordpress.org/plugin/custom-post-type-ui.1.9.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-256x256.png?rev=1069557\";s:2:\"1x\";s:72:\"https://ps.w.org/custom-post-type-ui/assets/icon-128x128.png?rev=1069557\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:75:\"https://ps.w.org/custom-post-type-ui/assets/banner-1544x500.png?rev=1069557\";s:2:\"1x\";s:74:\"https://ps.w.org/custom-post-type-ui/assets/banner-772x250.png?rev=1069557\";}s:11:\"banners_rtl\";a:0:{}s:6:\"tested\";s:5:\"5.7.0\";s:12:\"requires_php\";s:3:\"5.6\";s:13:\"compatibility\";O:8:\"stdClass\":0:{}}s:34:\"advanced-custom-fields-pro/acf.php\";O:8:\"stdClass\":8:{s:4:\"slug\";s:26:\"advanced-custom-fields-pro\";s:6:\"plugin\";s:34:\"advanced-custom-fields-pro/acf.php\";s:11:\"new_version\";s:5:\"5.9.5\";s:3:\"url\";s:36:\"https://www.advancedcustomfields.com\";s:6:\"tested\";s:3:\"5.7\";s:7:\"package\";s:0:\"\";s:5:\"icons\";a:1:{s:7:\"default\";s:63:\"https://ps.w.org/advanced-custom-fields/assets/icon-256x256.png\";}s:7:\"banners\";a:2:{s:3:\"low\";s:77:\"https://ps.w.org/advanced-custom-fields/assets/banner-772x250.jpg?rev=1729102\";s:4:\"high\";s:78:\"https://ps.w.org/advanced-custom-fields/assets/banner-1544x500.jpg?rev=1729099\";}}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:4:{s:45:\"wp-graphql-yoast-seo/wp-graphql-yoast-seo.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:31:\"w.org/plugins/add-wpgraphql-seo\";s:4:\"slug\";s:17:\"add-wpgraphql-seo\";s:6:\"plugin\";s:45:\"wp-graphql-yoast-seo/wp-graphql-yoast-seo.php\";s:11:\"new_version\";s:6:\"4.14.0\";s:3:\"url\";s:48:\"https://wordpress.org/plugins/add-wpgraphql-seo/\";s:7:\"package\";s:67:\"https://downloads.wordpress.org/plugin/add-wpgraphql-seo.4.14.0.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:70:\"https://ps.w.org/add-wpgraphql-seo/assets/icon-256x256.png?rev=2365220\";s:2:\"1x\";s:70:\"https://ps.w.org/add-wpgraphql-seo/assets/icon-128x128.png?rev=2365220\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:73:\"https://ps.w.org/add-wpgraphql-seo/assets/banner-1544x500.png?rev=2365220\";s:2:\"1x\";s:72:\"https://ps.w.org/add-wpgraphql-seo/assets/banner-772x250.png?rev=2365220\";}s:11:\"banners_rtl\";a:0:{}}s:23:\"wp-gatsby/wp-gatsby.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:23:\"w.org/plugins/wp-gatsby\";s:4:\"slug\";s:9:\"wp-gatsby\";s:6:\"plugin\";s:23:\"wp-gatsby/wp-gatsby.php\";s:11:\"new_version\";s:6:\"1.0.10\";s:3:\"url\";s:40:\"https://wordpress.org/plugins/wp-gatsby/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-gatsby.1.0.10.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-256x256.png?rev=2336725\";s:2:\"1x\";s:62:\"https://ps.w.org/wp-gatsby/assets/icon-128x128.png?rev=2336725\";}s:7:\"banners\";a:0:{}s:11:\"banners_rtl\";a:0:{}}s:25:\"wp-graphql/wp-graphql.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:24:\"w.org/plugins/wp-graphql\";s:4:\"slug\";s:10:\"wp-graphql\";s:6:\"plugin\";s:25:\"wp-graphql/wp-graphql.php\";s:11:\"new_version\";s:5:\"1.3.7\";s:3:\"url\";s:41:\"https://wordpress.org/plugins/wp-graphql/\";s:7:\"package\";s:59:\"https://downloads.wordpress.org/plugin/wp-graphql.1.3.7.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-256x256.png?rev=2482884\";s:2:\"1x\";s:63:\"https://ps.w.org/wp-graphql/assets/icon-128x128.png?rev=2482884\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:66:\"https://ps.w.org/wp-graphql/assets/banner-1544x500.png?rev=2482884\";s:2:\"1x\";s:65:\"https://ps.w.org/wp-graphql/assets/banner-772x250.png?rev=2482884\";}s:11:\"banners_rtl\";a:0:{}}s:24:\"wordpress-seo/wp-seo.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:27:\"w.org/plugins/wordpress-seo\";s:4:\"slug\";s:13:\"wordpress-seo\";s:6:\"plugin\";s:24:\"wordpress-seo/wp-seo.php\";s:11:\"new_version\";s:4:\"16.2\";s:3:\"url\";s:44:\"https://wordpress.org/plugins/wordpress-seo/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/plugin/wordpress-seo.16.2.zip\";s:5:\"icons\";a:3:{s:2:\"2x\";s:66:\"https://ps.w.org/wordpress-seo/assets/icon-256x256.png?rev=2363699\";s:2:\"1x\";s:58:\"https://ps.w.org/wordpress-seo/assets/icon.svg?rev=2363699\";s:3:\"svg\";s:58:\"https://ps.w.org/wordpress-seo/assets/icon.svg?rev=2363699\";}s:7:\"banners\";a:2:{s:2:\"2x\";s:69:\"https://ps.w.org/wordpress-seo/assets/banner-1544x500.png?rev=1843435\";s:2:\"1x\";s:68:\"https://ps.w.org/wordpress-seo/assets/banner-772x250.png?rev=1843435\";}s:11:\"banners_rtl\";a:2:{s:2:\"2x\";s:73:\"https://ps.w.org/wordpress-seo/assets/banner-1544x500-rtl.png?rev=1843435\";s:2:\"1x\";s:72:\"https://ps.w.org/wordpress-seo/assets/banner-772x250-rtl.png?rev=1843435\";}}}}', 'no'); INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES (1, 2, '_wp_page_template', 'default'), @@ -1002,9 +1106,9 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (45038, 7646, '_flexible_content_field_0_flex_repeater_1_flex_repeater_title', 'field_5f4829b1401a6'), (45039, 7646, 'flexible_content_field_0_flex_repeater_1_flex_repeater_relationship', ''), (45040, 7646, '_flexible_content_field_0_flex_repeater_1_flex_repeater_relationship', 'field_5f4829c7401a7'), -(45311, 7868, '_edit_lock', '1598571524:1'), +(45311, 7868, '_edit_lock', '1620094620:4'), (45312, 7868, '__update', '1'), -(45326, 7868, '_edit_last', '1'), +(45326, 7868, '_edit_last', '4'), (45327, 7868, 'range_field', '0'), (45328, 7868, '_range_field', 'field_5f47e967644b1'), (45329, 7868, 'text_field', ''), @@ -1219,10 +1323,10 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (46550, 116, '_oembed_8413e2f5a1ec2d352aa22e8807b649df', ''), (46551, 116, '_oembed_time_8413e2f5a1ec2d352aa22e8807b649df', '1600377208'), (46591, 94, '_edit_lock', '1613606786:1'), -(46594, 128, '_edit_lock', '1600375745:1'), +(46594, 128, '_edit_lock', '1620085807:4'), (46611, 128, '_edit_last', '1'), (46626, 128, '_yoast_wpseo_content_score', '90'), -(46627, 125, '_edit_lock', '1600376582:1'), +(46627, 125, '_edit_lock', '1620085760:4'), (46628, 122, '_edit_lock', '1602025482:1'), (46629, 116, '_edit_lock', '1600377383:1'), (46632, 114, '_edit_lock', '1600377407:1'), @@ -2847,11 +2951,108 @@ INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUE (72731, 11763, 'mp4', ''), (72732, 11763, '_mp4', 'field_5f777f213694c'), (72733, 11763, 'mov', ''), -(72734, 11763, '_mov', 'field_5f777f303694d'); +(72734, 11763, '_mov', 'field_5f777f303694d'), +(72767, 11784, 'referenced_node_status', 'update_non_node_root_field'), +(72768, 11784, 'referenced_node_single_name', 'updateNonNodeRootField'), +(72769, 11784, 'referenced_node_plural_name', 'updateNonNodeRootField'), +(72770, 11785, 'referenced_node_status', 'publish'), +(72771, 11785, 'referenced_node_single_name', 'page'), +(72772, 11785, 'referenced_node_plural_name', 'pages'), +(72773, 7868, 'pdf', ''), +(72774, 7868, '_pdf', 'field_5f777f123694a'), +(72775, 7868, 'doc', ''), +(72776, 7868, '_doc', 'field_5f777f1a3694b'), +(72777, 7868, 'mp4', ''), +(72778, 7868, '_mp4', 'field_5f777f213694c'), +(72779, 7868, 'mov', ''), +(72780, 7868, '_mov', 'field_5f777f303694d'), +(72781, 11786, 'range_field', '0'), +(72782, 11786, '_range_field', 'field_5f47e967644b1'), +(72783, 11786, 'text_field', ''), +(72784, 11786, '_text_field', 'field_5f47e986644b2'), +(72785, 11786, 'text_area_field', ''), +(72786, 11786, '_text_area_field', 'field_5f47e993644b3'), +(72787, 11786, 'button_group_field', 'button1'), +(72788, 11786, '_button_group_field', 'field_5f47e99f644b4'), +(72789, 11786, 'checkbox_field', ''), +(72790, 11786, '_checkbox_field', 'field_5f47e9c5644b5'), +(72791, 11786, 'radio_button_field', 'radiobutton1'), +(72792, 11786, '_radio_button_field', 'field_5f47e9f3644b6'), +(72793, 11786, 'select_field', 'select1'), +(72794, 11786, '_select_field', 'field_5f47ea12644b7'), +(72795, 11786, 'true_false_field', '0'), +(72796, 11786, '_true_false_field', 'field_5f47ea28644b8'), +(72797, 11786, 'file_field', ''), +(72798, 11786, '_file_field', 'field_5f47ea3f644b9'), +(72799, 11786, 'gallery_field', ''), +(72800, 11786, '_gallery_field', 'field_5f47ea4a644ba'), +(72801, 11786, 'image_field', ''), +(72802, 11786, '_image_field', 'field_5f47ea53644bb'), +(72803, 11786, 'oembed_field', ''), +(72804, 11786, '_oembed_field', 'field_5f47ea5b644bc'), +(72805, 11786, 'wysiwyg_editor_field', ''), +(72806, 11786, '_wysiwyg_editor_field', 'field_5f47ea64644bd'), +(72807, 11786, 'color_picker_field', ''), +(72808, 11786, '_color_picker_field', 'field_5f47ea75644be'), +(72809, 11786, 'date_picker_field', ''), +(72810, 11786, '_date_picker_field', 'field_5f47ea7f644bf'), +(72811, 11786, 'date_time_picker_field', ''), +(72812, 11786, '_date_time_picker_field', 'field_5f47ea8b644c0'), +(72813, 11786, 'google_map_field', ''), +(72814, 11786, '_google_map_field', 'field_5f47ea9d644c1'), +(72815, 11786, 'time_picker', ''), +(72816, 11786, '_time_picker', 'field_5f47eaa7644c2'), +(72817, 11786, 'flexible_content_field', ''), +(72818, 11786, '_flexible_content_field', 'field_5f47eadf644c4'), +(72819, 11786, 'repeater_field', ''), +(72820, 11786, '_repeater_field', 'field_5f47eaf8644c6'), +(72821, 11786, 'clone_field', ''), +(72822, 11786, '_clone_field', 'field_5f47eb4b644c8'), +(72823, 11786, 'link_field', ''), +(72824, 11786, '_link_field', 'field_5f47eb54644c9'), +(72825, 11786, 'page_link_field', ''), +(72826, 11786, '_page_link_field', 'field_5f47eb5e644ca'), +(72827, 11786, 'post_object_field', ''), +(72828, 11786, '_post_object_field', 'field_5f47eb69644cb'), +(72829, 11786, 'relationship_field', ''), +(72830, 11786, '_relationship_field', 'field_5f47eb74644cc'), +(72831, 11786, 'taxonomy_field', ''), +(72832, 11786, '_taxonomy_field', 'field_5f47edce644cd'), +(72833, 11786, 'user_field', ''), +(72834, 11786, '_user_field', 'field_5f47eddc644ce'), +(72835, 11786, 'pdf', ''), +(72836, 11786, '_pdf', 'field_5f777f123694a'), +(72837, 11786, 'doc', ''), +(72838, 11786, '_doc', 'field_5f777f1a3694b'), +(72839, 11786, 'mp4', ''), +(72840, 11786, '_mp4', 'field_5f777f213694c'), +(72841, 11786, 'mov', ''), +(72842, 11786, '_mov', 'field_5f777f303694d'), +(72843, 7868, '_yoast_wpseo_estimated-reading-time-minutes', '1'), +(72868, 11791, 'referenced_node_status', 'publish'), +(72869, 11791, 'referenced_node_single_name', 'post'), +(72870, 11791, 'referenced_node_plural_name', 'posts'), +(72872, 11793, 'referenced_node_status', 'publish'), +(72873, 11793, 'referenced_node_single_name', 'post'), +(72874, 11793, 'referenced_node_plural_name', 'posts'), +(72876, 11795, 'referenced_node_status', 'publish'), +(72877, 11795, 'referenced_node_single_name', 'post'), +(72878, 11795, 'referenced_node_plural_name', 'posts'), +(72880, 11797, 'referenced_node_status', 'publish'), +(72881, 11797, 'referenced_node_single_name', 'post'), +(72882, 11797, 'referenced_node_plural_name', 'posts'), +(72904, 11806, 'referenced_node_status', 'trash'), +(72905, 11806, 'referenced_node_single_name', 'mediaItem'), +(72906, 11806, 'referenced_node_plural_name', 'mediaItems'), +(72907, 11807, '_edit_lock', '1620086556:4'), +(72910, 11809, 'referenced_node_status', 'trash'), +(72911, 11809, 'referenced_node_single_name', 'mediaItem'), +(72912, 11809, 'referenced_node_plural_name', 'mediaItems'), +(72913, 11810, '_edit_lock', '1620086660:4'); INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES -(1, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'publish', 'open', 'open', '', 'hello-world', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/?p=1', 0, 'post', '', 1), -(2, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'open', '', 'sample-page', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/?page_id=2', 0, 'page', '', 0), +(1, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'publish', 'open', 'open', '', 'hello-world', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 0, 'http://localhost:8001/?p=1', 0, 'post', '', 1), +(2, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'open', '', 'sample-page', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 0, 'http://localhost:8001/?page_id=2', 0, 'page', '', 0), (3, 4, '2020-02-25 17:54:21', '2020-02-25 17:54:21', '

    Who we are

    Our website address is: http://localhost:8001.

    What personal data we collect and why we collect it

    Comments

    When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.

    An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.

    Media

    If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.

    Contact forms

    Cookies

    If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.

    If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.

    When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.

    If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.

    Embedded content from other websites

    Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.

    These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.

    Analytics

    Who we share your data with

    How long we retain your data

    If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.

    For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.

    What rights you have over your data

    If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.

    Where we send your data

    Visitor comments may be checked through an automated spam detection service.

    Your contact information

    Additional information

    How we protect your data

    What data breach procedures we have in place

    What third parties we receive data from

    What automated decision making and/or profiling we do with user data

    Industry regulatory disclosure requirements

    ', 'Privacy Policy', '', 'private', 'closed', 'open', '', 'privacy-policy', '', '', '2021-02-17 23:56:57', '2021-02-17 23:56:57', '', 0, 'http://localhost:8001/?page_id=3', 0, 'page', '', 0), (16, 4, '2020-02-25 19:27:33', '2020-02-25 19:27:33', '', 'Activity', '', 'publish', 'closed', 'closed', '', 'activity', '', '', '2021-04-21 19:56:02', '2021-04-21 19:56:02', '', 0, 'http://localhost:8001/activity/', 0, 'page', '', 0), (17, 4, '2020-02-25 19:27:33', '2020-02-25 19:27:33', '', 'Members', '', 'private', 'closed', 'closed', '', 'members', '', '', '2021-02-17 23:56:57', '2021-02-17 23:56:57', '', 0, 'http://localhost:8001/members/', 0, 'page', '', 0), @@ -2877,7 +3078,7 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (84, 4, '2020-03-02 20:54:37', '2020-03-02 20:54:37', 'a:11:{s:4:\"type\";s:4:\"text\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:15:\"show_in_graphql\";i:1;s:13:\"default_value\";s:0:\"\";s:11:\"placeholder\";s:0:\"\";s:7:\"prepend\";s:0:\"\";s:6:\"append\";s:0:\"\";s:9:\"maxlength\";s:0:\"\";}', 'Title', 'title', 'publish', 'closed', 'closed', '', 'field_5e5d726060854', '', '', '2020-03-03 00:35:33', '2020-03-03 00:35:33', '', 74, 'http://localhost:8001/?post_type=acf-field&p=84', 1, 'acf-field', '', 0), (89, 4, '2020-03-02 20:54:37', '2020-03-02 20:54:37', 'a:16:{s:4:\"type\";s:5:\"image\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:15:\"show_in_graphql\";i:1;s:13:\"return_format\";s:5:\"array\";s:12:\"preview_size\";s:6:\"medium\";s:7:\"library\";s:3:\"all\";s:9:\"min_width\";s:0:\"\";s:10:\"min_height\";s:0:\"\";s:8:\"min_size\";s:0:\"\";s:9:\"max_width\";s:0:\"\";s:10:\"max_height\";s:0:\"\";s:8:\"max_size\";s:0:\"\";s:10:\"mime_types\";s:0:\"\";}', 'Portrait', 'portrait', 'publish', 'closed', 'closed', '', 'field_5e5d727560855', '', '', '2020-03-03 00:35:33', '2020-03-03 00:35:33', '', 74, 'http://localhost:8001/?post_type=acf-field&p=89', 2, 'acf-field', '', 0), (90, 4, '2018-10-23 09:38:23', '2018-10-23 19:38:23', '\n

    Archives Widget

    \n\n\n\n\n\n

    Categories

    \n\n\n\n\n\n

    Latest Posts

    \n\n\n\n\n\n

    Latest Comments

    \n\n\n\n\n\n

    YouTube Shortcode

    \n\n\n\n[youtube https://www.youtube.com/watch?v=ssfHW5lwFZg]\n', 'Gutenberg: Widget Blocks', '', 'private', 'open', 'open', '', 'gutenberg-widget-blocks', '', '', '2021-02-17 23:57:07', '2021-02-17 23:57:07', '', 0, 'https://chrisrunnells.wordpress.com/?p=90', 0, 'post', '', 0), -(94, 4, '2018-10-23 15:33:34', '2018-10-24 01:33:34', '\n

    Paragraph Block

    \n\n\n\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris purus urna, vulputate at convallis hendrerit, mattis id mi. Nulla mauris justo, sodales vitae sodales nec, fermentum at elit. Proin condimentum risus sed venenatis mollis. Donec auctor euismod sodales. Donec sodales congue metus, sit amet tempor odio maximus in. Ut vestibulum nisl a maximus scelerisque. Donec aliquam eleifend metus, eget iaculis ante vestibulum id. Nulla facilisi. Nullam interdum sagittis accumsan. Phasellus egestas elementum enim nec condimentum. Sed mattis purus odio. Curabitur vehicula rutrum porttitor. Phasellus tempus dui id turpis fermentum, auctor dictum mauris mollis.

    \n\n\n\n

    Header 1

    \n\n\n\n

    Header 2

    \n\n\n\n

    Header 3

    \n\n\n\n

    Header 4

    \n\n\n\n
    Header 5
    \n\n\n\n
    Header 6
    \n\n\n\n

    Image Block

    \n\n\n\n
    \"\"
    A pretty unicorn
    \n\n\n\n

    List Block

    \n\n\n\n
    • List Item One
    • List Item Two
    • List Item Three
    \n\n\n\n
    1. List Item One
    2. List Item Two
    3. List Item Three
    \n\n\n\n

    Quote Block

    \n\n\n\n

    This is a quote block. It\'s aligned to the side at least in the default styles. Pretty darn amazing.

    Laurel Fulford
    \n\n\n\n

    Large Quote Block

    \n\n\n\n

    Use the force, Luke.

    Obi-Wan Kenobi
    \n\n\n\n

    Audio Block

    \n\n\n\n
    Tom Raftery interviews Matt Mullenweg and Donncha Ó Caoimh
    \n\n\n\n

    Cover Image Block

    \n\n\n\n
    \n

    This is a cover image block.

    \n
    \n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Video Block

    \n\n\n\n
    Now that\'s a fun animation!
    \n', 'Gutenberg: Common Blocks', '', 'private', 'open', 'open', '', 'gutenberg-common-blocks', '', '', '2021-02-18 00:03:15', '2021-02-18 00:03:15', '', 0, 'https://chrisrunnells.wordpress.com/?p=94', 0, 'post', '', 0), +(94, 4, '2018-10-23 15:33:34', '2018-10-24 01:33:34', '\n

    Paragraph Block

    \n\n\n\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris purus urna, vulputate at convallis hendrerit, mattis id mi. Nulla mauris justo, sodales vitae sodales nec, fermentum at elit. Proin condimentum risus sed venenatis mollis. Donec auctor euismod sodales. Donec sodales congue metus, sit amet tempor odio maximus in. Ut vestibulum nisl a maximus scelerisque. Donec aliquam eleifend metus, eget iaculis ante vestibulum id. Nulla facilisi. Nullam interdum sagittis accumsan. Phasellus egestas elementum enim nec condimentum. Sed mattis purus odio. Curabitur vehicula rutrum porttitor. Phasellus tempus dui id turpis fermentum, auctor dictum mauris mollis.

    \n\n\n\n

    Header 1

    \n\n\n\n

    Header 2

    \n\n\n\n

    Header 3

    \n\n\n\n

    Header 4

    \n\n\n\n
    Header 5
    \n\n\n\n
    Header 6
    \n\n\n\n

    Image Block

    \n\n\n\n
    \"\"
    A pretty unicorn
    \n\n\n\n

    List Block

    \n\n\n\n
    • List Item One
    • List Item Two
    • List Item Three
    \n\n\n\n
    1. List Item One
    2. List Item Two
    3. List Item Three
    \n\n\n\n

    Quote Block

    \n\n\n\n

    This is a quote block. It\'s aligned to the side at least in the default styles. Pretty darn amazing.

    Laurel Fulford
    \n\n\n\n

    Large Quote Block

    \n\n\n\n

    Use the force, Luke.

    Obi-Wan Kenobi
    \n\n\n\n

    Audio Block

    \n\n\n\n
    Tom Raftery interviews Matt Mullenweg and Donncha Ó Caoimh
    \n\n\n\n

    Cover Image Block

    \n\n\n\n
    \n

    This is a cover image block.

    \n
    \n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Video Block

    \n\n\n\n
    Now that\'s a fun animation!
    \n', 'Gutenberg: Common Blocks', '', 'publish', 'open', 'open', '', 'gutenberg-common-blocks', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'https://chrisrunnells.wordpress.com/?p=94', 0, 'post', '', 0), (95, 4, '2018-10-23 10:34:54', '2018-10-23 20:34:54', '', 'aperture-vintage-346923-unsplash', '', 'inherit', 'open', 'closed', '', 'aperture-vintage-346923-unsplash', '', '', '2018-10-23 10:34:54', '2018-10-23 20:34:54', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/aperture-vintage-346923-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), (96, 4, '2018-10-23 10:35:00', '2018-10-23 20:35:00', '', 'brandon-siu-608784-unsplash', '', 'inherit', 'open', 'closed', '', 'brandon-siu-608784-unsplash', '', '', '2018-10-23 10:35:00', '2018-10-23 20:35:00', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), (97, 4, '2018-10-23 10:35:04', '2018-10-23 20:35:04', '', 'casey-horner-512022-unsplash', '', 'inherit', 'open', 'closed', '', 'casey-horner-512022-unsplash', '', '', '2018-10-23 10:35:04', '2018-10-23 20:35:04', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/casey-horner-512022-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), @@ -2890,9 +3091,9 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (104, 4, '2018-10-23 15:24:00', '2018-10-24 01:24:00', '', 'WordPress-logotype-standard', '', 'inherit', 'open', 'closed', '', 'wordpress-logotype-standard', '', '', '2018-10-23 15:24:00', '2018-10-24 01:24:00', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', 0, 'attachment', 'application/pdf', 0), (114, 4, '2018-10-24 10:49:42', '2018-10-24 20:49:42', '

    Headings

    \n

    Header one

    \n

    Header two

    \n

    Header three

    \n

    Header four

    \n
    Header five
    \n
    Header six
    \n

    Blockquotes

    \nSingle line blockquote:\n
    Stay hungry. Stay foolish.
    \nMulti line blockquote with a cite reference:\n
    People think focus means saying yes to the thing you\'ve got to focus on. But that\'s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I\'m actually as proud of the things we haven\'t done as the things I have done. Innovation is saying no to 1,000 things.
    \nSteve Jobs - Apple Worldwide Developers\' Conference, 1997\n
    Do. Or do not. There is no try.\n\nYoda
    \n

    Tables

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    EmployeeSalary
    John Doe$1Because that\'s all Steve Jobs needed for a salary.
    Jane Doe$100KFor all the blogging she does.
    Fred Bloggs$100MPictures are worth a thousand words, right? So Jane x 1,000.
    Jane Bloggs$100BWith hair like that?! Enough said...
    \n

    Definition Lists

    \n
    \n
    Definition List Title
    \n
    Definition list division.
    \n
    Startup
    \n
    A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
    \n
    #dowork
    \n
    Coined by Rob Dyrdek and his personal body guard Christopher \"Big Black\" Boykins, \"Do Work\" works as a self motivator, to motivating your friends.
    \n
    Do It Live
    \n
    I\'ll let Bill O\'Reilly will explain this one.
    \n
    \n

    Unordered Lists (Nested)

    \n
      \n
    • List item one\n
        \n
      • List item one\n
          \n
        • List item one
        • \n
        • List item two
        • \n
        • List item three
        • \n
        • List item four
        • \n
        \n
      • \n
      • List item two
      • \n
      • List item three
      • \n
      • List item four
      • \n
      \n
    • \n
    • List item two
    • \n
    • List item three
    • \n
    • List item four
    • \n
    \n

    Ordered List (Nested)

    \n
      \n
    1. List item one\n
        \n
      1. List item one\n
          \n
        1. List item one
        2. \n
        3. List item two
        4. \n
        5. List item three
        6. \n
        7. List item four
        8. \n
        \n
      2. \n
      3. List item two
      4. \n
      5. List item three
      6. \n
      7. List item four
      8. \n
      \n
    2. \n
    3. List item two
    4. \n
    5. List item three
    6. \n
    7. List item four
    8. \n
    \n

    HTML Tags

    \nThese supported tags come from the WordPress.com code FAQ.\n\nAddress Tag\n\n
    1 Infinite Loop\nCupertino, CA 95014\nUnited States
    Anchor Tag (aka. Link)\n\nThis is an example of a link.\n\nAbbreviation Tag\n\nThe abbreviation srsly stands for \"seriously\".\n\nAcronym Tag (deprecated in HTML5)\n\nThe acronym ftw stands for \"for the win\".\n\nBig Tag (deprecated in HTML5)\n\nThese tests are a big deal, but this tag is no longer supported in HTML5.\n\nCite Tag\n\n\"Code is poetry.\" --Automattic\n\nCode Tag\n\nYou will learn later on in these tests that word-wrap: break-word; will be your best friend.\n\nDelete Tag\n\nThis tag will let you strikeout text, but this tag is no longer supported in HTML5 (use the <strike> instead).\n\nEmphasize Tag\n\nThe emphasize tag should italicize text.\n\nInsert Tag\n\nThis tag should denote inserted text.\n\nKeyboard Tag\n\nThis scarcely known tag emulates keyboard text, which is usually styled like the <code> tag.\n\nPreformatted Tag\n\nThis tag styles large blocks of code.\n
    .post-title {\n	margin: 0 0 5px;\n	font-weight: bold;\n	font-size: 38px;\n	line-height: 1.2;\n	and here\'s a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;\n}
    \nQuote Tag\n\nDevelopers, developers, developers... --Steve Ballmer\n\nStrike Tag (deprecated in HTML5)\n\nThis tag shows strike-through text\n\nStrong Tag\n\nThis tag shows bold text.\n\nSubscript Tag\n\nGetting our science styling on with H2O, which should push the \"2\" down.\n\nSuperscript Tag\n\nStill sticking with science and Isaac Newton\'s E = MC2, which should lift the 2 up.\n\nTeletype Tag (deprecated in HTML5)\n\nThis rarely used tag emulates teletype text, which is usually styled like the <code> tag.\n\nVariable Tag\n\nThis allows you to denote variables.', 'Gutenberg: Classic Block', '', 'private', 'open', 'open', '', 'gutenberg-classic-block', '', '', '2021-02-17 23:57:07', '2021-02-17 23:57:07', '', 0, 'https://chrisrunnells.wordpress.com/?p=114', 0, 'post', '', 0), (116, 4, '2018-10-24 10:59:26', '2018-10-24 20:59:26', '\n

    Imgur Embed

    \n\n\n\n
    \nhttps://i.imgur.com/nlG3C7A.jpg\n
    \n\n\n\n

    Embed Embed

    \n\n\n\n
    \nhttps://google.com\n
    \n\n\n\n

    Twitter Embed

    \n\n\n\n
    \nhttps://twitter.com/wordpressdotcom\n
    \n\n\n\n

    YouTube Embed

    \n\n\n\n
    \nhttps://www.youtube.com/watch?v=xifhQyopjZM\n
    \n\n\n\n

    Facebook Embed

    \n\n\n\n
    \nhttps://www.facebook.com/WordPresscom/\n
    \n\n\n\n

    Instagram Embed

    \n\n\n\n
    \nhttps://www.instagram.com/rei/\n
    \n\n\n\n

    WordPress Embed

    \n\n\n\n
    \nhttps://automattic.design/\n
    \n\n\n\n

    Soundcloud Embed

    \n\n\n\n
    \nhttps://soundcloud.com/monstercat/rameses-b-something-real\n
    \n\n\n\n

    Spotify Embed

    \n\n\n\n
    \nhttps://open.spotify.com/album/3qg7pFyj6gbNVDtbi9aZHY\n
    \n\n\n\n

    Flickr Embed

    \n\n\n\n
    \nhttps://www.flickr.com/photos/tom_hall_nz/17004434418/in/gallery-134864050@N04-72157656707819872/\n
    \n\n\n\n

    Vimeo Embed

    \n\n\n\n
    \nhttps://vimeo.com/22439234\n
    \n', 'Gutenberg: Embed Blocks', '', 'private', 'open', 'open', '', 'gutenberg-embed-blocks', '', '', '2021-02-17 23:57:07', '2021-02-17 23:57:07', '', 0, 'https://chrisrunnells.wordpress.com/?p=116', 0, 'post', '', 0), -(122, 4, '2018-10-24 11:24:22', '2018-10-24 21:24:22', '\n

    Code Block

    \n\n\n\n
    .codeblock {\n    right: 100% !important;\n    position: absolute;\n}
    \n\n\n\n

    Classic Block

    \n\n\n

    This is the classic block.

    \n

    It\'s using the regular editor.

    \n\n\n

    HTML Block

    \n\n\n\n

    \n My HTML block.\n

    \n\n\n\n

    Preformatted Block

    \n\n\n\n
    This is a preformatted block.
    It is the best block.
    Amazing.
    \n\n\n\n

    Pullquote Block

    \n\n\n\n

    This is a pullquote. It\'s pretty awesome.

    Laurel Fulford
    \n\n\n\n

    Table Block

    \n\n\n\n
    Header 1Header 2Header 3
    BobSmith36
    JaneDoe25
    SusanSmithers34
    \n\n\n\n

    Verse Block

    \n\n\n\n
    This is a verse.
    It apparently has no styles?
    Amazing.
    \n', 'Gutenberg: Formatting Blocks', '', 'private', 'open', 'open', '', 'gutenberg-formatting-blocks', '', '', '2021-02-17 23:57:06', '2021-02-17 23:57:06', '', 0, 'https://chrisrunnells.wordpress.com/?p=122', 0, 'post', '', 0), -(125, 4, '2018-10-24 11:34:02', '2018-10-24 21:34:02', '\n

    Button Blocks

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Spacer Block

    \n\n\n\n
    \n\n\n\n

    Separator Block

    \n\n\n\n

    The following separators should be a short line, a long line, and some dots.

    \n\n\n\n
    \n\n\n\n
    \n\n\n\n
    \n', 'Gutenberg: Layout Element Blocks', '', 'private', 'open', 'open', '', 'gutenberg-layout-element-blocks', '', '', '2021-02-17 23:57:06', '2021-02-17 23:57:06', '', 0, 'https://chrisrunnells.wordpress.com/?p=125', 0, 'post', '', 0), -(128, 4, '2018-10-24 11:54:34', '2018-10-24 21:54:34', '\n

    2 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a 2-column layout, just trying some things out to see how it goes. Each column should have enough padding to breathe a little bit. Don\'t forget to consider how columns will look on smaller screens. #mobilefirst

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    3 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a typical 3-column layout with images on top and some text below.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    You\'ll find this layout on web sites all over the internet.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Gutenberg makes this kind of layout easy to build. The future is now!

    \n
    \n
    \n\n\n\n
    \n\n\n\n
    \n
    \n
    \n
    \n

    second level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    third level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    fourth level columns

    \n
    \n\n\n\n
    \n
    \n
    \n
    \n\n\n\n

    \n
    \n
    \n\n\n\n

    \n
    \n\n\n\n
    \n

    first level block

    \n
    \n
    \n\n\n\n

    4 columns

    \n\n\n\n
    \n
    \n

    This is the first column, and it\'s amazing.

    \n
    \n\n\n\n
    \n

    This is the second column, and it\'s also amazing.

    \n
    \n\n\n\n
    \n

    The third column, as they say, is like a charm.

    \n
    \n\n\n\n
    \n

    This is the fourth column, and it\'s possibly the best.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    5 columns

    \n\n\n\n
    \n
    \n

    5 columns of text in the post, 5 columns of text. Take one down, move it around, 4 columns of text in the post.

    \n
    \n\n\n\n
    \n

    4 columns of text in the post, 4 columns of text. Take one down, move it around, 3 columns of text in the post.

    \n
    \n\n\n\n
    \n

    3 columns of text in the post, 3 columns of text. Take one down, move it around, 2 columns of text in the post.

    \n
    \n\n\n\n
    \n

    2 columns of text in the post, 2 columns of text. Take one down, move it around, 1 columns of text in the post.

    \n
    \n\n\n\n
    \n

    1 column of text in the post, 1 column of text. Take one down, move it around, no columns of text in the post.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    6 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n

    \n', 'Gutenberg: Columns', '', 'private', 'open', 'open', '', 'gutenberg-columns', '', '', '2021-02-17 23:57:06', '2021-02-17 23:57:06', '', 0, 'https://chrisrunnells.wordpress.com/?p=128', 0, 'post', '', 0), +(122, 4, '2018-10-24 11:24:22', '2018-10-24 21:24:22', '\n

    Code Block

    \n\n\n\n
    .codeblock {\n    right: 100% !important;\n    position: absolute;\n}
    \n\n\n\n

    Classic Block

    \n\n\n

    This is the classic block.

    \n

    It\'s using the regular editor.

    \n\n\n

    HTML Block

    \n\n\n\n

    \n My HTML block.\n

    \n\n\n\n

    Preformatted Block

    \n\n\n\n
    This is a preformatted block.
    It is the best block.
    Amazing.
    \n\n\n\n

    Pullquote Block

    \n\n\n\n

    This is a pullquote. It\'s pretty awesome.

    Laurel Fulford
    \n\n\n\n

    Table Block

    \n\n\n\n
    Header 1Header 2Header 3
    BobSmith36
    JaneDoe25
    SusanSmithers34
    \n\n\n\n

    Verse Block

    \n\n\n\n
    This is a verse.
    It apparently has no styles?
    Amazing.
    \n', 'Gutenberg: Formatting Blocks', '', 'publish', 'open', 'open', '', 'gutenberg-formatting-blocks', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'https://chrisrunnells.wordpress.com/?p=122', 0, 'post', '', 0), +(125, 4, '2018-10-24 11:34:02', '2018-10-24 21:34:02', '\n

    Button Blocks

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Spacer Block

    \n\n\n\n
    \n\n\n\n

    Separator Block

    \n\n\n\n

    The following separators should be a short line, a long line, and some dots.

    \n\n\n\n
    \n\n\n\n
    \n\n\n\n
    \n', 'Gutenberg: Layout Element Blocks', '', 'publish', 'open', 'open', '', 'gutenberg-layout-element-blocks', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'https://chrisrunnells.wordpress.com/?p=125', 0, 'post', '', 0), +(128, 4, '2018-10-24 11:54:34', '2018-10-24 21:54:34', '\n

    2 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a 2-column layout, just trying some things out to see how it goes. Each column should have enough padding to breathe a little bit. Don\'t forget to consider how columns will look on smaller screens. #mobilefirst

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    3 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a typical 3-column layout with images on top and some text below.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    You\'ll find this layout on web sites all over the internet.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Gutenberg makes this kind of layout easy to build. The future is now!

    \n
    \n
    \n\n\n\n
    \n\n\n\n
    \n
    \n
    \n
    \n

    second level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    third level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    fourth level columns

    \n
    \n\n\n\n
    \n
    \n
    \n
    \n\n\n\n

    \n
    \n
    \n\n\n\n

    \n
    \n\n\n\n
    \n

    first level block

    \n
    \n
    \n\n\n\n

    4 columns

    \n\n\n\n
    \n
    \n

    This is the first column, and it\'s amazing.

    \n
    \n\n\n\n
    \n

    This is the second column, and it\'s also amazing.

    \n
    \n\n\n\n
    \n

    The third column, as they say, is like a charm.

    \n
    \n\n\n\n
    \n

    This is the fourth column, and it\'s possibly the best.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    5 columns

    \n\n\n\n
    \n
    \n

    5 columns of text in the post, 5 columns of text. Take one down, move it around, 4 columns of text in the post.

    \n
    \n\n\n\n
    \n

    4 columns of text in the post, 4 columns of text. Take one down, move it around, 3 columns of text in the post.

    \n
    \n\n\n\n
    \n

    3 columns of text in the post, 3 columns of text. Take one down, move it around, 2 columns of text in the post.

    \n
    \n\n\n\n
    \n

    2 columns of text in the post, 2 columns of text. Take one down, move it around, 1 columns of text in the post.

    \n
    \n\n\n\n
    \n

    1 column of text in the post, 1 column of text. Take one down, move it around, no columns of text in the post.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    6 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n

    \n', 'Gutenberg: Columns', '', 'publish', 'open', 'open', '', 'gutenberg-columns', '', '', '2021-05-03 23:52:13', '2021-05-03 23:52:13', '', 0, 'https://chrisrunnells.wordpress.com/?p=128', 0, 'post', '', 0), (155, 4, '2020-03-02 21:00:47', '2020-03-02 21:00:47', 'a:7:{s:4:\"type\";s:4:\"link\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:15:\"show_in_graphql\";i:1;s:13:\"return_format\";s:5:\"array\";}', 'twitter link', 'twitterlink', 'publish', 'closed', 'closed', '', 'field_5e5d73f3f4d05', '', '', '2020-03-03 00:35:33', '2020-03-03 00:35:33', '', 74, 'http://localhost:8001/?post_type=acf-field&p=155', 3, 'acf-field', '', 0), (162, 4, '2020-03-02 21:01:08', '2020-03-02 21:01:08', 'a:7:{s:4:\"type\";s:4:\"link\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:15:\"show_in_graphql\";i:1;s:13:\"return_format\";s:5:\"array\";}', 'web site', 'web_site', 'publish', 'closed', 'closed', '', 'field_5e5d740688701', '', '', '2020-03-03 00:35:34', '2020-03-03 00:35:34', '', 74, 'http://localhost:8001/?post_type=acf-field&p=162', 4, 'acf-field', '', 0), (172, 4, '2020-03-02 22:17:12', '2020-03-02 22:17:12', '', 'WPGraphQL', '', 'publish', 'closed', 'closed', '', 'wpgraphql', '', '', '2020-03-02 22:24:24', '2020-03-02 22:24:24', '', 0, 'http://localhost:8001/?post_type=project&p=172', 0, 'project', '', 0), @@ -2976,7 +3177,7 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (7813, 4, '2020-08-27 21:55:44', '2020-08-27 21:55:44', 'a:10:{s:4:\"type\";s:16:\"flexible_content\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:15:\"show_in_graphql\";i:1;s:7:\"layouts\";a:2:{s:20:\"layout_5f4829f48a2ed\";a:6:{s:3:\"key\";s:20:\"layout_5f4829f48a2ed\";s:5:\"label\";s:26:\"repeater flex title layout\";s:4:\"name\";s:26:\"repeater_flex_title_layout\";s:7:\"display\";s:5:\"block\";s:3:\"min\";s:0:\"\";s:3:\"max\";s:0:\"\";}s:20:\"layout_5f482a17401ab\";a:6:{s:3:\"key\";s:20:\"layout_5f482a17401ab\";s:5:\"label\";s:33:\"Repeater flex relationship layout\";s:4:\"name\";s:33:\"repeater_flex_relationship_layout\";s:7:\"display\";s:5:\"block\";s:3:\"min\";s:0:\"\";s:3:\"max\";s:0:\"\";}}s:12:\"button_label\";s:7:\"Add Row\";s:3:\"min\";s:0:\"\";s:3:\"max\";s:0:\"\";}', 'repeater flex', 'repeater_flex', 'publish', 'closed', 'closed', '', 'field_5f4829ed401a9', '', '', '2020-08-27 21:55:44', '2020-08-27 21:55:44', '', 7690, 'http://localhost:8001/?post_type=acf-field&p=7813', 0, 'acf-field', '', 0), (7816, 4, '2020-08-27 21:55:44', '2020-08-27 21:55:44', 'a:12:{s:4:\"type\";s:4:\"text\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:13:\"parent_layout\";s:20:\"layout_5f4829f48a2ed\";s:15:\"show_in_graphql\";i:1;s:13:\"default_value\";s:0:\"\";s:11:\"placeholder\";s:0:\"\";s:7:\"prepend\";s:0:\"\";s:6:\"append\";s:0:\"\";s:9:\"maxlength\";s:0:\"\";}', 'repeater flex title', 'repeater_flex_title', 'publish', 'closed', 'closed', '', 'field_5f482a05401aa', '', '', '2020-08-27 21:55:44', '2020-08-27 21:55:44', '', 7813, 'http://localhost:8001/?post_type=acf-field&p=7816', 0, 'acf-field', '', 0), (7818, 4, '2020-08-27 21:55:44', '2020-08-27 21:55:44', 'a:14:{s:4:\"type\";s:12:\"relationship\";s:12:\"instructions\";s:0:\"\";s:8:\"required\";i:0;s:17:\"conditional_logic\";i:0;s:7:\"wrapper\";a:3:{s:5:\"width\";s:0:\"\";s:5:\"class\";s:0:\"\";s:2:\"id\";s:0:\"\";}s:13:\"parent_layout\";s:20:\"layout_5f482a17401ab\";s:15:\"show_in_graphql\";i:1;s:9:\"post_type\";s:0:\"\";s:8:\"taxonomy\";s:0:\"\";s:7:\"filters\";a:3:{i:0;s:6:\"search\";i:1;s:9:\"post_type\";i:2;s:8:\"taxonomy\";}s:8:\"elements\";s:0:\"\";s:3:\"min\";s:0:\"\";s:3:\"max\";s:0:\"\";s:13:\"return_format\";s:6:\"object\";}', 'Repeater flex relationship', 'repeater_flex_relationship', 'publish', 'closed', 'closed', '', 'field_5f482a24401ac', '', '', '2020-08-27 21:55:44', '2020-08-27 21:55:44', '', 7813, 'http://localhost:8001/?post_type=acf-field&p=7818', 0, 'acf-field', '', 0), -(7868, 4, '2020-08-27 23:36:34', '2020-08-27 23:36:34', '\n

    some content

    \n', 'Yoast SEO', '', 'private', 'closed', 'closed', '', 'beautiful_slug', '', '', '2021-02-17 23:54:36', '2021-02-17 23:54:36', '', 0, 'http://localhost:8001/?page_id=7868', 0, 'page', '', 0), +(7868, 4, '2020-08-27 23:36:34', '2020-08-27 23:36:34', '\n

    some content

    \n', 'Yoast SEO', '', 'publish', 'closed', 'closed', '', 'beautiful_slug', '', '', '2021-05-03 23:25:38', '2021-05-03 23:25:38', '', 0, 'http://localhost:8001/?page_id=7868', 0, 'page', '', 0), (7961, 4, '2020-09-16 23:29:31', '2020-09-16 23:29:31', '{{unknown}}', '', '', 'publish', 'closed', 'closed', '', '97d51471f7360f20742f81dd9a3904ef', '', '', '2020-09-16 23:29:31', '2020-09-16 23:29:31', '', 0, 'http://localhost:8001/2020/09/16/97d51471f7360f20742f81dd9a3904ef/', 0, 'oembed_cache', '', 0), (7981, 4, '2018-10-23 10:35:07', '2018-10-23 20:35:07', '', 'daniel-leone-197357-unsplash', '', 'inherit', 'open', 'closed', '', 'daniel-leone-197357-unsplash', '', '', '2018-10-23 10:35:07', '2018-10-23 20:35:07', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/daniel-leone-197357-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), (7985, 4, '2018-10-23 10:35:08', '2018-10-23 20:35:08', '', 'daniel-olah-495967-unsplash', '', 'inherit', 'open', 'closed', '', 'daniel-olah-495967-unsplash', '', '', '2018-10-23 10:35:08', '2018-10-23 20:35:08', '', 94, 'http://localhost:8001/wp-content/uploads/2018/10/daniel-olah-495967-unsplash.jpg', 0, 'attachment', 'image/jpeg', 0), @@ -3094,14 +3295,14 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (11755, 4, '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 'Activity', '', 'inherit', 'closed', 'closed', '', '16-revision-v1', '', '', '2021-04-21 19:56:01', '2021-04-21 19:56:01', '', 16, 'http://localhost:8001/2021/04/21/16-revision-v1/', 0, 'revision', '', 0), (11756, 4, '2021-04-30 22:29:09', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'open', 'open', '', '', '', '', '2021-04-30 22:29:09', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?p=11756', 0, 'post', '', 0), (11757, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:34:12', '2021-04-30 22:34:12', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), -(11758, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"Hello world! DELTA SYNC\",\"node_id\":1,\"relay_id\":\"cG9zdDox\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Hello world! DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'hello-world-1619822052', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/hello-world-1619822052/', 0, 'action_monitor', '', 0), +(11758, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"Hello world! DELTA SYNC\",\"node_id\":1,\"relay_id\":\"cG9zdDox\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Hello world! DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'hello-world-1619822052', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 0, 'http://localhost:8001/action_monitor/hello-world-1619822052/', 0, 'action_monitor', '', 0), (11759, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:34:12', '2021-04-30 22:34:12', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), -(11760, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"admin\",\"node_id\":4,\"relay_id\":\"dXNlcjo0\",\"graphql_single_name\":\"user\",\"graphql_plural_name\":\"users\",\"status\":\"publish\"}', 'admin', '', 'publish', 'closed', 'closed', '', 'admin-1619822052', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/admin-1619822052/', 0, 'action_monitor', '', 0), +(11760, 4, '2021-04-30 22:34:12', '2021-04-30 22:34:12', '{\"action_type\":\"UPDATE\",\"title\":\"admin\",\"node_id\":4,\"relay_id\":\"dXNlcjo0\",\"graphql_single_name\":\"user\",\"graphql_plural_name\":\"users\",\"status\":\"publish\"}', 'admin', '', 'publish', 'closed', 'closed', '', 'admin-1619822052', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 0, 'http://localhost:8001/action_monitor/admin-1619822052/', 0, 'action_monitor', '', 0), (11761, 4, '2021-04-30 22:36:45', '2021-04-30 22:36:45', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:36:45', '2021-04-30 22:36:45', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), (11762, 4, '2021-04-30 22:36:45', '2021-04-30 22:36:45', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:36:45', '2021-04-30 22:36:45', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), (11763, 4, '2021-04-30 22:51:22', '2021-04-30 22:51:22', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 22:51:22', '2021-04-30 22:51:22', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), (11764, 4, '2021-04-30 22:51:22', '2021-04-30 22:51:22', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 22:51:22', '2021-04-30 22:51:22', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), -(11765, 4, '2021-04-30 23:05:08', '2021-04-30 23:05:08', '{\"action_type\":\"UPDATE\",\"title\":\"Sample Page DELTA SYNC\",\"node_id\":2,\"relay_id\":\"cG9zdDoy\",\"graphql_single_name\":\"page\",\"graphql_plural_name\":\"pages\",\"status\":\"publish\"}', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'sample-page-1619823908', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 0, 'http://localhost:8001/action_monitor/sample-page-1619823908/', 0, 'action_monitor', '', 0), +(11765, 4, '2021-04-30 23:05:08', '2021-04-30 23:05:08', '{\"action_type\":\"UPDATE\",\"title\":\"Sample Page DELTA SYNC\",\"node_id\":2,\"relay_id\":\"cG9zdDoy\",\"graphql_single_name\":\"page\",\"graphql_plural_name\":\"pages\",\"status\":\"publish\"}', 'Sample Page DELTA SYNC', '', 'publish', 'closed', 'closed', '', 'sample-page-1619823908', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 0, 'http://localhost:8001/action_monitor/sample-page-1619823908/', 0, 'action_monitor', '', 0), (11766, 4, '2021-04-30 23:15:42', '2021-04-30 23:15:42', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:15:42', '2021-04-30 23:15:42', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), (11767, 4, '2021-04-30 23:15:42', '2021-04-30 23:15:42', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:15:42', '2021-04-30 23:15:42', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), (11768, 4, '2021-04-30 23:19:45', '2021-04-30 23:19:45', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:19:45', '2021-04-30 23:19:45', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), @@ -3119,7 +3320,46 @@ INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post (11780, 4, '2021-04-30 23:30:32', '2021-04-30 23:30:32', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:30:32', '2021-04-30 23:30:32', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), (11781, 4, '2021-04-30 23:30:32', '2021-04-30 23:30:32', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:30:32', '2021-04-30 23:30:32', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), (11782, 4, '2021-04-30 23:30:54', '2021-04-30 23:30:54', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 2, 'http://localhost:8001/2021/04/30/2-revision-v1/', 0, 'revision', '', 0), -(11783, 4, '2021-04-30 23:30:54', '2021-04-30 23:30:54', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0); +(11783, 4, '2021-04-30 23:30:54', '2021-04-30 23:30:54', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-04-30 23:30:54', '2021-04-30 23:30:54', '', 1, 'http://localhost:8001/2021/04/30/1-revision-v1/', 0, 'revision', '', 0), +(11784, 0, '2021-05-03 23:24:14', '2021-05-03 23:24:14', '{\"action_type\":\"NON_NODE_ROOT_FIELDS\",\"title\":\"Update Setting: active_plugins\",\"node_id\":\"update_non_node_root_field\",\"relay_id\":\"update_non_node_root_field\",\"graphql_single_name\":\"update_non_node_root_field\",\"graphql_plural_name\":\"update_non_node_root_field\",\"status\":\"update_non_node_root_field\"}', 'Update Setting: active_plugins', '', 'publish', 'closed', 'closed', '', 'update-setting-active_plugins-1620084254', '', '', '2021-05-04 00:04:15', '2021-05-04 00:04:15', '', 0, 'http://localhost:8001/action_monitor/update-setting-active_plugins-1620084254/', 0, 'action_monitor', '', 0), +(11785, 4, '2021-05-03 23:25:37', '2021-05-03 23:25:37', '{\"action_type\":\"UPDATE\",\"title\":\"Yoast SEO\",\"node_id\":7868,\"relay_id\":\"cG9zdDo3ODY4\",\"graphql_single_name\":\"page\",\"graphql_plural_name\":\"pages\",\"status\":\"publish\"}', 'Yoast SEO', '', 'publish', 'closed', 'closed', '', 'yoast-seo-1620084337', '', '', '2021-05-03 23:25:38', '2021-05-03 23:25:38', '', 0, 'http://localhost:8001/action_monitor/yoast-seo-1620084337/', 0, 'action_monitor', '', 0), +(11786, 4, '2021-05-03 23:25:37', '2021-05-03 23:25:37', '\n

    some content

    \n', 'Yoast SEO', '', 'inherit', 'closed', 'closed', '', '7868-revision-v1', '', '', '2021-05-03 23:25:37', '2021-05-03 23:25:37', '', 7868, 'http://localhost:8001/2021/05/03/7868-revision-v1/', 0, 'revision', '', 0), +(11787, 4, '2021-05-03 23:27:46', '2021-05-03 23:27:46', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-03 23:27:46', '2021-05-03 23:27:46', '', 2, 'http://localhost:8001/2021/05/03/2-revision-v1/', 0, 'revision', '', 0), +(11788, 4, '2021-05-03 23:27:46', '2021-05-03 23:27:46', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-03 23:27:46', '2021-05-03 23:27:46', '', 1, 'http://localhost:8001/2021/05/03/1-revision-v1/', 0, 'revision', '', 0), +(11789, 4, '2021-05-03 23:45:28', '2021-05-03 23:45:28', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-03 23:45:28', '2021-05-03 23:45:28', '', 2, 'http://localhost:8001/2021/05/03/2-revision-v1/', 0, 'revision', '', 0), +(11790, 4, '2021-05-03 23:45:28', '2021-05-03 23:45:28', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-03 23:45:28', '2021-05-03 23:45:28', '', 1, 'http://localhost:8001/2021/05/03/1-revision-v1/', 0, 'revision', '', 0), +(11791, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '{\"action_type\":\"CREATE\",\"title\":\"Gutenberg: Columns\",\"node_id\":128,\"relay_id\":\"cG9zdDoxMjg=\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Gutenberg: Columns', '', 'publish', 'closed', 'closed', '', 'gutenberg-columns-1620085934', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'http://localhost:8001/action_monitor/gutenberg-columns-1620085934/', 0, 'action_monitor', '', 0), +(11792, 4, '2021-05-03 23:52:13', '2021-05-03 23:52:13', '\n

    2 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a 2-column layout, just trying some things out to see how it goes. Each column should have enough padding to breathe a little bit. Don\'t forget to consider how columns will look on smaller screens. #mobilefirst

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    3 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    This is a typical 3-column layout with images on top and some text below.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    You\'ll find this layout on web sites all over the internet.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Gutenberg makes this kind of layout easy to build. The future is now!

    \n
    \n
    \n\n\n\n
    \n\n\n\n
    \n
    \n
    \n
    \n

    second level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    third level columns

    \n
    \n\n\n\n
    \n
    \n
    \n

    fourth level columns

    \n
    \n\n\n\n
    \n
    \n
    \n
    \n\n\n\n

    \n
    \n
    \n\n\n\n

    \n
    \n\n\n\n
    \n

    first level block

    \n
    \n
    \n\n\n\n

    4 columns

    \n\n\n\n
    \n
    \n

    This is the first column, and it\'s amazing.

    \n
    \n\n\n\n
    \n

    This is the second column, and it\'s also amazing.

    \n
    \n\n\n\n
    \n

    The third column, as they say, is like a charm.

    \n
    \n\n\n\n
    \n

    This is the fourth column, and it\'s possibly the best.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    5 columns

    \n\n\n\n
    \n
    \n

    5 columns of text in the post, 5 columns of text. Take one down, move it around, 4 columns of text in the post.

    \n
    \n\n\n\n
    \n

    4 columns of text in the post, 4 columns of text. Take one down, move it around, 3 columns of text in the post.

    \n
    \n\n\n\n
    \n

    3 columns of text in the post, 3 columns of text. Take one down, move it around, 2 columns of text in the post.

    \n
    \n\n\n\n
    \n

    2 columns of text in the post, 2 columns of text. Take one down, move it around, 1 columns of text in the post.

    \n
    \n\n\n\n
    \n

    1 column of text in the post, 1 column of text. Take one down, move it around, no columns of text in the post.

    \n
    \n
    \n\n\n\n
    \n\n\n\n

    6 columns

    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n
    \n
    \n
    \"\"
    \n\n\n\n

    One column.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Two columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Three columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Four columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Five columns.

    \n
    \n\n\n\n
    \n
    \"\"
    \n\n\n\n

    Six columns.

    \n
    \n
    \n\n\n\n

    \n', 'Gutenberg: Columns', '', 'inherit', 'closed', 'closed', '', '128-revision-v1', '', '', '2021-05-03 23:52:13', '2021-05-03 23:52:13', '', 128, 'http://localhost:8001/2021/05/03/128-revision-v1/', 0, 'revision', '', 0), +(11793, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '{\"action_type\":\"CREATE\",\"title\":\"Gutenberg: Layout Element Blocks\",\"node_id\":125,\"relay_id\":\"cG9zdDoxMjU=\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Gutenberg: Layout Element Blocks', '', 'publish', 'closed', 'closed', '', 'gutenberg-layout-element-blocks-1620085934', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'http://localhost:8001/action_monitor/gutenberg-layout-element-blocks-1620085934/', 0, 'action_monitor', '', 0), +(11794, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '\n

    Button Blocks

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Spacer Block

    \n\n\n\n
    \n\n\n\n

    Separator Block

    \n\n\n\n

    The following separators should be a short line, a long line, and some dots.

    \n\n\n\n
    \n\n\n\n
    \n\n\n\n
    \n', 'Gutenberg: Layout Element Blocks', '', 'inherit', 'closed', 'closed', '', '125-revision-v1', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 125, 'http://localhost:8001/2021/05/03/125-revision-v1/', 0, 'revision', '', 0), +(11795, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '{\"action_type\":\"CREATE\",\"title\":\"Gutenberg: Formatting Blocks\",\"node_id\":122,\"relay_id\":\"cG9zdDoxMjI=\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Gutenberg: Formatting Blocks', '', 'publish', 'closed', 'closed', '', 'gutenberg-formatting-blocks-1620085934', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'http://localhost:8001/action_monitor/gutenberg-formatting-blocks-1620085934/', 0, 'action_monitor', '', 0), +(11796, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '\n

    Code Block

    \n\n\n\n
    .codeblock {\n    right: 100% !important;\n    position: absolute;\n}
    \n\n\n\n

    Classic Block

    \n\n\n

    This is the classic block.

    \n

    It\'s using the regular editor.

    \n\n\n

    HTML Block

    \n\n\n\n

    \n My HTML block.\n

    \n\n\n\n

    Preformatted Block

    \n\n\n\n
    This is a preformatted block.
    It is the best block.
    Amazing.
    \n\n\n\n

    Pullquote Block

    \n\n\n\n

    This is a pullquote. It\'s pretty awesome.

    Laurel Fulford
    \n\n\n\n

    Table Block

    \n\n\n\n
    Header 1Header 2Header 3
    BobSmith36
    JaneDoe25
    SusanSmithers34
    \n\n\n\n

    Verse Block

    \n\n\n\n
    This is a verse.
    It apparently has no styles?
    Amazing.
    \n', 'Gutenberg: Formatting Blocks', '', 'inherit', 'closed', 'closed', '', '122-revision-v1', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 122, 'http://localhost:8001/2021/05/03/122-revision-v1/', 0, 'revision', '', 0), +(11797, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '{\"action_type\":\"CREATE\",\"title\":\"Gutenberg: Common Blocks\",\"node_id\":94,\"relay_id\":\"cG9zdDo5NA==\",\"graphql_single_name\":\"post\",\"graphql_plural_name\":\"posts\",\"status\":\"publish\"}', 'Gutenberg: Common Blocks', '', 'publish', 'closed', 'closed', '', 'gutenberg-common-blocks-1620085934', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 0, 'http://localhost:8001/action_monitor/gutenberg-common-blocks-1620085934/', 0, 'action_monitor', '', 0), +(11798, 4, '2021-05-03 23:52:14', '2021-05-03 23:52:14', '\n

    Paragraph Block

    \n\n\n\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris purus urna, vulputate at convallis hendrerit, mattis id mi. Nulla mauris justo, sodales vitae sodales nec, fermentum at elit. Proin condimentum risus sed venenatis mollis. Donec auctor euismod sodales. Donec sodales congue metus, sit amet tempor odio maximus in. Ut vestibulum nisl a maximus scelerisque. Donec aliquam eleifend metus, eget iaculis ante vestibulum id. Nulla facilisi. Nullam interdum sagittis accumsan. Phasellus egestas elementum enim nec condimentum. Sed mattis purus odio. Curabitur vehicula rutrum porttitor. Phasellus tempus dui id turpis fermentum, auctor dictum mauris mollis.

    \n\n\n\n

    Header 1

    \n\n\n\n

    Header 2

    \n\n\n\n

    Header 3

    \n\n\n\n

    Header 4

    \n\n\n\n
    Header 5
    \n\n\n\n
    Header 6
    \n\n\n\n

    Image Block

    \n\n\n\n
    \"\"
    A pretty unicorn
    \n\n\n\n

    List Block

    \n\n\n\n
    • List Item One
    • List Item Two
    • List Item Three
    \n\n\n\n
    1. List Item One
    2. List Item Two
    3. List Item Three
    \n\n\n\n

    Quote Block

    \n\n\n\n

    This is a quote block. It\'s aligned to the side at least in the default styles. Pretty darn amazing.

    Laurel Fulford
    \n\n\n\n

    Large Quote Block

    \n\n\n\n

    Use the force, Luke.

    Obi-Wan Kenobi
    \n\n\n\n

    Audio Block

    \n\n\n\n
    Tom Raftery interviews Matt Mullenweg and Donncha Ó Caoimh
    \n\n\n\n

    Cover Image Block

    \n\n\n\n
    \n

    This is a cover image block.

    \n
    \n\n\n\n

    File Block

    \n\n\n\n\n\n\n\n

    Video Block

    \n\n\n\n
    Now that\'s a fun animation!
    \n', 'Gutenberg: Common Blocks', '', 'inherit', 'closed', 'closed', '', '94-revision-v1', '', '', '2021-05-03 23:52:14', '2021-05-03 23:52:14', '', 94, 'http://localhost:8001/2021/05/03/94-revision-v1/', 0, 'revision', '', 0), +(11799, 4, '2021-05-03 23:53:08', '2021-05-03 23:53:08', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-03 23:53:08', '2021-05-03 23:53:08', '', 2, 'http://localhost:8001/2021/05/03/2-revision-v1/', 0, 'revision', '', 0), +(11800, 4, '2021-05-03 23:53:08', '2021-05-03 23:53:08', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-03 23:53:08', '2021-05-03 23:53:08', '', 1, 'http://localhost:8001/2021/05/03/1-revision-v1/', 0, 'revision', '', 0), +(11801, 4, '2021-05-03 23:59:25', '2021-05-03 23:59:25', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-03 23:59:25', '2021-05-03 23:59:25', '', 2, 'http://localhost:8001/2021/05/03/2-revision-v1/', 0, 'revision', '', 0), +(11802, 4, '2021-05-03 23:59:26', '2021-05-03 23:59:26', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-03 23:59:26', '2021-05-03 23:59:26', '', 1, 'http://localhost:8001/2021/05/03/1-revision-v1/', 0, 'revision', '', 0), +(11803, 4, '2021-05-04 00:00:28', '2021-05-04 00:00:28', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 00:00:28', '2021-05-04 00:00:28', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11804, 4, '2021-05-04 00:00:28', '2021-05-04 00:00:28', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 00:00:28', '2021-05-04 00:00:28', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11806, 4, '2021-05-04 00:02:28', '2021-05-04 00:02:28', '{\"action_type\":\"DELETE\",\"title\":\"wp-graphql-gutenberg-0.3.8 (1).zip\",\"status\":\"trash\",\"node_id\":11805,\"relay_id\":\"cG9zdDoxMTgwNQ==\",\"graphql_single_name\":\"mediaItem\",\"graphql_plural_name\":\"mediaItems\",\"skip_webhook\":true}', 'wp-graphql-gutenberg-0.3.8 (1).zip', '', 'publish', 'closed', 'closed', '', 'wp-graphql-gutenberg-0-3-8-1-zip-1620086548', '', '', '2021-05-04 00:02:29', '2021-05-04 00:02:29', '', 0, 'http://localhost:8001/action_monitor/wp-graphql-gutenberg-0-3-8-1-zip-1620086548/', 0, 'action_monitor', '', 0), +(11807, 4, '2021-05-04 00:02:36', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'closed', 'closed', '', '', '', '', '2021-05-04 00:02:36', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?post_type=wgg_preview&p=11807', 0, 'wgg_preview', '', 0), +(11809, 4, '2021-05-04 00:04:11', '2021-05-04 00:04:11', '{\"action_type\":\"DELETE\",\"title\":\"wp-graphql-gutenberg-0.3.8 (1).zip\",\"status\":\"trash\",\"node_id\":11808,\"relay_id\":\"cG9zdDoxMTgwOA==\",\"graphql_single_name\":\"mediaItem\",\"graphql_plural_name\":\"mediaItems\",\"skip_webhook\":true}', 'wp-graphql-gutenberg-0.3.8 (1).zip', '', 'publish', 'closed', 'closed', '', 'wp-graphql-gutenberg-0-3-8-1-zip-1620086651', '', '', '2021-05-04 00:04:12', '2021-05-04 00:04:12', '', 0, 'http://localhost:8001/action_monitor/wp-graphql-gutenberg-0-3-8-1-zip-1620086651/', 0, 'action_monitor', '', 0), +(11810, 4, '2021-05-04 00:04:20', '0000-00-00 00:00:00', '', 'Auto Draft', '', 'auto-draft', 'closed', 'closed', '', '', '', '', '2021-05-04 00:04:20', '0000-00-00 00:00:00', '', 0, 'http://localhost:8001/?post_type=wgg_preview&p=11810', 0, 'wgg_preview', '', 0), +(11811, 4, '2021-05-04 00:18:29', '2021-05-04 00:18:29', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 00:18:29', '2021-05-04 00:18:29', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11812, 4, '2021-05-04 00:18:29', '2021-05-04 00:18:29', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 00:18:29', '2021-05-04 00:18:29', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11813, 4, '2021-05-04 00:19:57', '2021-05-04 00:19:57', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 00:19:57', '2021-05-04 00:19:57', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11814, 4, '2021-05-04 00:19:57', '2021-05-04 00:19:57', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 00:19:57', '2021-05-04 00:19:57', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11815, 4, '2021-05-04 00:20:23', '2021-05-04 00:20:23', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 00:20:23', '2021-05-04 00:20:23', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11816, 4, '2021-05-04 00:20:23', '2021-05-04 00:20:23', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 00:20:23', '2021-05-04 00:20:23', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11817, 4, '2021-05-04 17:14:44', '2021-05-04 17:14:44', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 17:14:44', '2021-05-04 17:14:44', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11818, 4, '2021-05-04 17:14:44', '2021-05-04 17:14:44', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 17:14:44', '2021-05-04 17:14:44', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11819, 4, '2021-05-04 17:15:12', '2021-05-04 17:15:12', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 17:15:12', '2021-05-04 17:15:12', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11820, 4, '2021-05-04 17:15:12', '2021-05-04 17:15:12', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 17:15:12', '2021-05-04 17:15:12', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11821, 4, '2021-05-04 17:17:40', '2021-05-04 17:17:40', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 17:17:40', '2021-05-04 17:17:40', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11822, 4, '2021-05-04 17:17:40', '2021-05-04 17:17:40', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world!', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 17:17:40', '2021-05-04 17:17:40', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0), +(11823, 4, '2021-05-04 17:18:10', '2021-05-04 17:18:10', '\n

    This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

    \n\n\n\n

    Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

    \n\n\n\n

    ...or something like this:

    \n\n\n\n

    The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

    \n\n\n\n

    As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

    \n', 'Sample Page DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '2-revision-v1', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 2, 'http://localhost:8001/2021/05/04/2-revision-v1/', 0, 'revision', '', 0), +(11824, 4, '2021-05-04 17:18:10', '2021-05-04 17:18:10', '\n

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

    \n', 'Hello world! DELTA SYNC', '', 'inherit', 'closed', 'closed', '', '1-revision-v1', '', '', '2021-05-04 17:18:10', '2021-05-04 17:18:10', '', 1, 'http://localhost:8001/2021/05/04/1-revision-v1/', 0, 'revision', '', 0); INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_order`) VALUES (1, 19, 0), @@ -3363,7 +3603,47 @@ INSERT INTO `wp_term_relationships` (`object_id`, `term_taxonomy_id`, `term_orde (11765, 94, 0), (11765, 113, 0), (11765, 139, 0), -(11765, 140, 0); +(11765, 140, 0), +(11784, 77, 0), +(11784, 78, 0), +(11784, 79, 0), +(11784, 80, 0), +(11784, 81, 0), +(11785, 81, 0), +(11785, 94, 0), +(11785, 113, 0), +(11785, 145, 0), +(11785, 146, 0), +(11791, 81, 0), +(11791, 89, 0), +(11791, 96, 0), +(11791, 98, 0), +(11791, 99, 0), +(11793, 81, 0), +(11793, 89, 0), +(11793, 96, 0), +(11793, 100, 0), +(11793, 101, 0), +(11795, 81, 0), +(11795, 89, 0), +(11795, 96, 0), +(11795, 102, 0), +(11795, 103, 0), +(11797, 81, 0), +(11797, 89, 0), +(11797, 96, 0), +(11797, 154, 0), +(11797, 155, 0), +(11806, 81, 0), +(11806, 87, 0), +(11806, 90, 0), +(11806, 160, 0), +(11806, 161, 0), +(11809, 81, 0), +(11809, 87, 0), +(11809, 90, 0), +(11809, 162, 0), +(11809, 163, 0); INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `description`, `parent`, `count`) VALUES (1, 1, 'category', '', 0, 0), @@ -3399,7 +3679,7 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (32, 32, 'term_translations', 'a:1:{s:2:\"en\";i:31;}', 0, 1), (33, 33, 'category', '', 0, 0), (34, 34, 'term_translations', 'a:1:{s:2:\"en\";i:33;}', 0, 1), -(35, 35, 'category', '', 0, 0), +(35, 35, 'category', '', 0, 4), (36, 36, 'term_translations', 'a:1:{s:2:\"en\";i:35;}', 0, 1), (37, 37, 'nav_menu', '', 0, 0), (38, 38, 'nav_menu', '', 0, 0), @@ -3445,22 +3725,22 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (78, 78, 'gatsby_action_ref_node_type', '', 0, 1), (79, 79, 'gatsby_action_ref_node_id', '', 0, 1), (80, 80, 'gatsby_action_type', '', 0, 1), -(81, 81, 'gatsby_action_stream_type', '', 0, 3), +(81, 81, 'gatsby_action_stream_type', '', 0, 11), (82, 82, 'gatsby_action_ref_node_dbid', '', 0, 1), (83, 83, 'gatsby_action_ref_node_type', '', 0, 1), (84, 84, 'gatsby_action_ref_node_id', '', 0, 1), (85, 85, 'gatsby_action_type', '', 0, 1), (86, 86, 'gatsby_action_ref_node_dbid', '', 0, 1), -(87, 87, 'gatsby_action_ref_node_type', '', 0, 1), +(87, 87, 'gatsby_action_ref_node_type', '', 0, 2), (88, 88, 'gatsby_action_ref_node_id', '', 0, 1), -(89, 89, 'gatsby_action_type', '', 0, 0), -(90, 90, 'gatsby_action_type', '', 0, 1), +(89, 89, 'gatsby_action_type', '', 0, 4), +(90, 90, 'gatsby_action_type', '', 0, 2), (91, 91, 'gatsby_action_ref_node_dbid', '', 0, 1), (92, 92, 'gatsby_action_ref_node_type', '', 0, 1), (93, 93, 'gatsby_action_ref_node_id', '', 0, 1), -(94, 94, 'gatsby_action_type', '', 0, 3), +(94, 94, 'gatsby_action_type', '', 0, 4), (95, 95, 'gatsby_action_ref_node_dbid', '', 0, 1), -(96, 96, 'gatsby_action_ref_node_type', '', 0, 1), +(96, 96, 'gatsby_action_ref_node_type', '', 0, 5), (97, 97, 'gatsby_action_ref_node_id', '', 0, 1), (98, 98, 'gatsby_action_ref_node_dbid', '', 0, 1), (99, 99, 'gatsby_action_ref_node_id', '', 0, 1), @@ -3477,7 +3757,7 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (110, 110, 'gatsby_action_ref_node_dbid', '', 0, 1), (111, 111, 'gatsby_action_ref_node_id', '', 0, 1), (112, 112, 'gatsby_action_ref_node_dbid', '', 0, 1), -(113, 113, 'gatsby_action_ref_node_type', '', 0, 1), +(113, 113, 'gatsby_action_ref_node_type', '', 0, 2), (114, 114, 'gatsby_action_ref_node_id', '', 0, 1), (115, 115, 'gatsby_action_ref_node_dbid', '', 0, 1), (116, 116, 'gatsby_action_ref_node_id', '', 0, 1), @@ -3523,7 +3803,11 @@ INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `taxonomy`, `desc (156, 156, 'gatsby_action_ref_node_dbid', '', 0, 1), (157, 157, 'gatsby_action_ref_node_id', '', 0, 1), (158, 158, 'gatsby_action_ref_node_dbid', '', 0, 1), -(159, 159, 'gatsby_action_ref_node_id', '', 0, 1); +(159, 159, 'gatsby_action_ref_node_id', '', 0, 1), +(160, 160, 'gatsby_action_ref_node_dbid', '', 0, 1), +(161, 161, 'gatsby_action_ref_node_id', '', 0, 1), +(162, 162, 'gatsby_action_ref_node_dbid', '', 0, 1), +(163, 163, 'gatsby_action_ref_node_id', '', 0, 1); INSERT INTO `wp_termmeta` (`meta_id`, `term_id`, `meta_key`, `meta_value`) VALUES (1, 56, 'product_count_product_cat', '0'), @@ -3706,7 +3990,11 @@ INSERT INTO `wp_terms` (`term_id`, `name`, `slug`, `term_group`) VALUES (156, '11749', '11749', 0), (157, 'cG9zdDoxMTc0OQ==', 'cg9zddoxmtc0oq', 0), (158, '4', '4', 0), -(159, 'dXNlcjo0', 'dxnlcjo0', 0); +(159, 'dXNlcjo0', 'dxnlcjo0', 0), +(160, '11805', '11805', 0), +(161, 'cG9zdDoxMTgwNQ==', 'cg9zddoxmtgwnq', 0), +(162, '11808', '11808', 0), +(163, 'cG9zdDoxMTgwOA==', 'cg9zddoxmtgwoa', 0); INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (135, 4, 'nickname', 'admin'), @@ -3723,13 +4011,279 @@ INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALU (146, 4, 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}'), (147, 4, 'wp_user_level', '10'), (148, 4, 'dismissed_wp_pointers', ''), -(149, 4, 'session_tokens', 'a:1:{s:64:\"995bb9115ce8c72d954f89d058ea34ae462bac483854c600b49ff2fb03b84d2b\";a:4:{s:10:\"expiration\";i:1619994548;s:2:\"ip\";s:10:\"172.30.0.1\";s:2:\"ua\";s:120:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36\";s:5:\"login\";i:1619821748;}}'), +(149, 4, 'session_tokens', 'a:1:{s:64:\"ddd1911e1ccdc156f3da6a9be37b21dd169b6f1a79c17208e66ba1b248d6fe9b\";a:4:{s:10:\"expiration\";i:1620257056;s:2:\"ip\";s:10:\"172.31.0.1\";s:2:\"ua\";s:120:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36\";s:5:\"login\";i:1620084256;}}'), (150, 4, 'wp_dashboard_quick_press_last_post_id', '11756'), -(151, 4, 'community-events-location', 'a:1:{s:2:\"ip\";s:10:\"172.30.0.0\";}'); +(151, 4, 'community-events-location', 'a:1:{s:2:\"ip\";s:10:\"172.30.0.0\";}'), +(152, 4, 'wp_yoast_notifications', 'a:1:{i:0;a:2:{s:7:\"message\";s:349:\"

    You can speed up your site and get insight into your internal linking structure by letting us perform a few optimizations to the way SEO data is stored.

    We estimate this will take less than a minute.

    Start SEO data optimization\";s:7:\"options\";a:10:{s:4:\"type\";s:7:\"warning\";s:2:\"id\";s:13:\"wpseo-reindex\";s:4:\"user\";O:7:\"WP_User\":8:{s:4:\"data\";O:8:\"stdClass\":10:{s:2:\"ID\";s:1:\"4\";s:10:\"user_login\";s:5:\"admin\";s:9:\"user_pass\";s:34:\"$P$BNuBcDnhTx/NRkAlAJYuE9mniwabEC0\";s:13:\"user_nicename\";s:5:\"admin\";s:10:\"user_email\";s:17:\"admin@example.com\";s:8:\"user_url\";s:0:\"\";s:15:\"user_registered\";s:19:\"2021-04-21 19:22:59\";s:19:\"user_activation_key\";s:0:\"\";s:11:\"user_status\";s:1:\"0\";s:12:\"display_name\";s:5:\"admin\";}s:2:\"ID\";i:4;s:4:\"caps\";a:1:{s:13:\"administrator\";b:1;}s:7:\"cap_key\";s:15:\"wp_capabilities\";s:5:\"roles\";a:1:{i:0;s:13:\"administrator\";}s:7:\"allcaps\";a:117:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;s:12:\"manage_polls\";b:1;s:18:\"manage_woocommerce\";b:1;s:24:\"view_woocommerce_reports\";b:1;s:12:\"edit_product\";b:1;s:12:\"read_product\";b:1;s:14:\"delete_product\";b:1;s:13:\"edit_products\";b:1;s:20:\"edit_others_products\";b:1;s:16:\"publish_products\";b:1;s:21:\"read_private_products\";b:1;s:15:\"delete_products\";b:1;s:23:\"delete_private_products\";b:1;s:25:\"delete_published_products\";b:1;s:22:\"delete_others_products\";b:1;s:21:\"edit_private_products\";b:1;s:23:\"edit_published_products\";b:1;s:20:\"manage_product_terms\";b:1;s:18:\"edit_product_terms\";b:1;s:20:\"delete_product_terms\";b:1;s:20:\"assign_product_terms\";b:1;s:15:\"edit_shop_order\";b:1;s:15:\"read_shop_order\";b:1;s:17:\"delete_shop_order\";b:1;s:16:\"edit_shop_orders\";b:1;s:23:\"edit_others_shop_orders\";b:1;s:19:\"publish_shop_orders\";b:1;s:24:\"read_private_shop_orders\";b:1;s:18:\"delete_shop_orders\";b:1;s:26:\"delete_private_shop_orders\";b:1;s:28:\"delete_published_shop_orders\";b:1;s:25:\"delete_others_shop_orders\";b:1;s:24:\"edit_private_shop_orders\";b:1;s:26:\"edit_published_shop_orders\";b:1;s:23:\"manage_shop_order_terms\";b:1;s:21:\"edit_shop_order_terms\";b:1;s:23:\"delete_shop_order_terms\";b:1;s:23:\"assign_shop_order_terms\";b:1;s:16:\"edit_shop_coupon\";b:1;s:16:\"read_shop_coupon\";b:1;s:18:\"delete_shop_coupon\";b:1;s:17:\"edit_shop_coupons\";b:1;s:24:\"edit_others_shop_coupons\";b:1;s:20:\"publish_shop_coupons\";b:1;s:25:\"read_private_shop_coupons\";b:1;s:19:\"delete_shop_coupons\";b:1;s:27:\"delete_private_shop_coupons\";b:1;s:29:\"delete_published_shop_coupons\";b:1;s:26:\"delete_others_shop_coupons\";b:1;s:25:\"edit_private_shop_coupons\";b:1;s:27:\"edit_published_shop_coupons\";b:1;s:24:\"manage_shop_coupon_terms\";b:1;s:22:\"edit_shop_coupon_terms\";b:1;s:24:\"delete_shop_coupon_terms\";b:1;s:24:\"assign_shop_coupon_terms\";b:1;s:20:\"wpseo_manage_options\";b:1;s:13:\"administrator\";b:1;}s:6:\"filter\";N;s:16:\"\0WP_User\0site_id\";i:1;}s:5:\"nonce\";N;s:8:\"priority\";d:0.8;s:9:\"data_json\";a:0:{}s:13:\"dismissal_key\";N;s:12:\"capabilities\";s:20:\"wpseo_manage_options\";s:16:\"capability_check\";s:3:\"all\";s:14:\"yoast_branding\";b:0;}}}'); INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES (4, 'admin', '$P$BNuBcDnhTx/NRkAlAJYuE9mniwabEC0', 'admin', 'admin@example.com', '', '2021-04-21 19:22:59', '', 0, 'admin'); +INSERT INTO `wp_yoast_indexable` (`id`, `permalink`, `permalink_hash`, `object_id`, `object_type`, `object_sub_type`, `author_id`, `post_parent`, `title`, `description`, `breadcrumb_title`, `post_status`, `is_public`, `is_protected`, `has_public_posts`, `number_of_pages`, `canonical`, `primary_focus_keyword`, `primary_focus_keyword_score`, `readability_score`, `is_cornerstone`, `is_robots_noindex`, `is_robots_nofollow`, `is_robots_noarchive`, `is_robots_noimageindex`, `is_robots_nosnippet`, `twitter_title`, `twitter_image`, `twitter_description`, `twitter_image_id`, `twitter_image_source`, `open_graph_title`, `open_graph_description`, `open_graph_image`, `open_graph_image_id`, `open_graph_image_source`, `open_graph_image_meta`, `link_count`, `incoming_link_count`, `prominent_words_version`, `created_at`, `updated_at`, `blog_id`, `language`, `region`, `schema_page_type`, `schema_article_type`, `has_ancestors`, `estimated_reading_time_minutes`) VALUES +(1, 'http://localhost:8001/author/', '29:2a3020be33c6683ac8e1c51365f77a30', 0, 'user', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 'https://2.gravatar.com/avatar/?s=500&d=mm&r=g', NULL, NULL, 'gravatar-image', NULL, NULL, 'https://2.gravatar.com/avatar/?s=500&d=mm&r=g', NULL, 'gravatar-image', NULL, NULL, NULL, NULL, '2021-05-03 23:24:15', '2021-05-04 00:04:15', 1, NULL, NULL, NULL, NULL, 0, NULL), +(2, 'http://localhost:8001/action_monitor/update-setting-active_plugins-1620084254/', '78:c43855347852616abcb572cefe52fa45', 11784, 'post', 'action_monitor', 0, 0, NULL, NULL, 'Update Setting: active_plugins', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:24:15', '2021-05-04 00:04:15', 1, NULL, NULL, NULL, NULL, 0, NULL), +(3, 'http://localhost:8001/author/admin/', '35:ba510755ba7b9e58022e6576e55f449b', 4, 'user', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 'https://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=500&d=mm&r=g', NULL, NULL, 'gravatar-image', NULL, NULL, 'https://2.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=500&d=mm&r=g', NULL, 'gravatar-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(4, 'http://localhost:8001/acf-field-test/', '37:3a63ecaffe07acfb9fbfb93e062555e9', 7646, 'post', 'page', 4, 0, NULL, NULL, 'ACF Field Test', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(5, 'http://localhost:8001/activity/', '31:8a40ae39dc28c29e749141bdb355d92d', 16, 'post', 'page', 4, 0, NULL, NULL, 'Activity', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(6, 'http://localhost:8001/cart/', '27:3a3abb8bea262ae3696785b7b4f8431b', 8457, 'post', 'page', 4, 0, NULL, NULL, 'Cart', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(7, 'http://localhost:8001/checkout/', '31:b1b98a39913932fe6fd54b627b46aec1', 8460, 'post', 'page', 4, 0, NULL, NULL, 'Checkout', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(8, 'http://localhost:8001/edited-inline-html-image-test/', '52:ac3d211e9b217272033a5501ba71457e', 9208, 'post', 'page', 4, 0, NULL, NULL, 'Edited inline html image test', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/windows-W1N58KDE8r0-unsplash-scaled-e1600819062167-1024x683.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/windows-W1N58KDE8r0-unsplash-scaled-e1600819062167-1024x683.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(9, 'http://localhost:8001/french-home-page/', '39:2b0db8a49cf996f3f3da55200fa61d92', 1276, 'post', 'page', 4, 0, NULL, NULL, 'French home page', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', NULL, '362', 'featured-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', '362', 'featured-image', '{\n \"width\": 1000,\n \"height\": 1000,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"size\": \"full\",\n \"id\": 362,\n \"alt\": \"\",\n \"pixels\": 1000000,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(10, 'http://localhost:8001/image-test-1/', '35:dbfff94ab2e64f7d39364822598164a0', 9620, 'post', 'page', 4, 0, NULL, NULL, 'Image test 1', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(11, 'http://localhost:8001/image-test-1-duplicate/', '45:a26c47bda59bc513374124a7510c5da8', 9634, 'post', 'page', 4, 0, NULL, NULL, 'Image test 1 duplicate', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(12, 'http://localhost:8001/image-test-1-french/', '42:aa997174752938b45b902b6c49bf1fd2', 9646, 'post', 'page', 4, 0, NULL, NULL, 'Image test 1 french', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/imagename-300x163-1.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(13, 'http://localhost:8001/inline-gatsby-image-test/', '47:a6f771f58da5c6e97c2a55069ade4d00', 8964, 'post', 'page', 4, 0, NULL, NULL, 'Inline gatsby-image Gutenberg test', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/aperture-vintage-346923-unsplash-1024x683.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/aperture-vintage-346923-unsplash-1024x683.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(14, 'http://localhost:8001/inline-html-image-edited-after-this-post-was-saved/', '73:fc8ed8e76e1c1c0d6f3e0106ebf00c89', 9219, 'post', 'page', 4, 0, NULL, NULL, 'inline html image edited after this post was saved', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/windows-W1N58KDE8r0-unsplash-1-683x1024.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/09/windows-W1N58KDE8r0-unsplash-1-683x1024.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(15, 'http://localhost:8001/inline-html-non-image-media-items/', '56:b2b36c60c20446826fb322359fad61b5', 10465, 'post', 'page', 4, 0, NULL, NULL, 'Inline html non-image media items', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(16, 'http://localhost:8001/inline-image-with-http-protocol/', '54:d89461c265fc58da81d52a874813e2b1', 10513, 'post', 'page', 4, 0, NULL, NULL, 'Inline image with http protocol', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/10/jessie-mccall-a9_8YKoqIYo-unsplash-683x1024.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/10/jessie-mccall-a9_8YKoqIYo-unsplash-683x1024.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(17, 'http://localhost:8001/', '22:48d237737fbe265e0fa4e7a5aa068bbe', 17, 'post', 'page', 4, 0, NULL, NULL, 'Members', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', NULL, '362', 'featured-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', '362', 'featured-image', '{\n \"width\": 1000,\n \"height\": 1000,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"size\": \"full\",\n \"id\": 362,\n \"alt\": \"\",\n \"pixels\": 1000000,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:11', 1, NULL, NULL, NULL, NULL, 0, NULL), +(18, 'http://localhost:8001/my-account/', '33:258c201076c475afdf59d9ebc3ad1db9', 8463, 'post', 'page', 4, 0, NULL, NULL, 'My account', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(19, 'http://localhost:8001/privacy-policy/', '37:9a8e0f58c2b8d13e761d8978e5c6c1e0', 3, 'post', 'page', 4, 0, NULL, NULL, 'Privacy Policy', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(20, 'http://localhost:8001/relative-image-path/', '42:2889d468a66035a2b41f21ae6afc6f33', 9818, 'post', 'page', 4, 0, NULL, NULL, 'Relative image path', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, '/wp-content/uploads/2020/09/5642fae96ade14100be5.jpg', NULL, NULL, 'first-content-image', NULL, NULL, '/wp-content/uploads/2020/09/5642fae96ade14100be5.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(21, 'http://localhost:8001/sample-page/', '34:d1a20d858d1f94a76b8726d261964bcc', 2, 'post', 'page', 4, 0, NULL, NULL, 'Sample Page DELTA SYNC', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 90, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2021-05-03 23:25:02', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(22, 'http://localhost:8001/sample-page/child-page/', '45:349b01c125027bc843678a05f84adda3', 586, 'post', 'page', 4, 2, NULL, NULL, 'Child page', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/1024x1024-300x300-1.png', NULL, '195', 'featured-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/1024x1024-300x300-1.png', '195', 'featured-image', '{\n \"width\": 300,\n \"height\": 300,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/03/1024x1024-300x300-1.png\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/03/1024x1024-300x300-1.png\",\n \"size\": \"full\",\n \"id\": 195,\n \"alt\": \"\",\n \"pixels\": 90000,\n \"type\": \"image/png\"\n}', NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(23, 'http://localhost:8001/shop/', '27:9fd92d8a8d7aa4134920ad182df24cee', 8454, 'post', 'page', 4, 0, NULL, NULL, 'Shop', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:02', '2021-05-03 23:25:59', 1, NULL, NULL, NULL, NULL, 0, NULL), +(24, 'http://localhost:8001/beautiful_slug/', '37:cb58efe9805f6c5f4f5e070e4b5656ea', 7868, 'post', 'page', 4, 0, NULL, 'My meta description', 'Yoast SEO', 'publish', NULL, 0, NULL, NULL, NULL, 'My keyphrase', 27, 60, 0, NULL, 0, NULL, NULL, NULL, 'My twitter title', 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', 'My twitter description', '362', 'set-by-user', 'my facebook title', 'my facebook description', 'http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg', '7760', 'set-by-user', '{\n \"width\": 2500,\n \"height\": 1667,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/08/10-2500x1667-1.jpg\",\n \"size\": \"full\",\n \"id\": \"7760\",\n \"alt\": \"\",\n \"pixels\": 4167500,\n \"type\": \"image/jpeg\"\n}', 0, NULL, NULL, '2021-05-03 23:25:08', '2021-05-03 23:25:38', 1, NULL, NULL, NULL, NULL, 0, 1), +(25, 'http://localhost:8001/', '22:48d237737fbe265e0fa4e7a5aa068bbe', NULL, 'home-page', NULL, NULL, NULL, '%%sitename%% %%page%% %%sep%% %%sitedesc%%', 'Just another WordPress site', 'Home', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, '', '', '', '', NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:11', '2021-05-03 23:25:11', 1, NULL, NULL, NULL, NULL, 0, NULL), +(26, 'http://localhost:8001/team/', '27:e308baa3142f59d4d88da11e4ed80a14', NULL, 'post-type-archive', 'team_member', NULL, NULL, '%%pt_plural%% Archive %%page%% %%sep%% %%sitename%%', '', 'Team Members', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:25:11', '2021-05-03 23:25:11', 1, NULL, NULL, NULL, NULL, 0, NULL), +(27, 'http://localhost:8001/action_monitor/admin-1619822052/', '54:41e04d1304aea6dc1c28dc87396aa5e3', 11760, 'post', 'action_monitor', 4, 0, NULL, NULL, 'admin', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:25:37', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(28, 'http://localhost:8001/action_monitor/yoast-seo-1620084337/', '58:773c0d186c273fd669cc65fee05b00dd', 11785, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Yoast SEO', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:25:37', '2021-05-03 23:25:38', 1, NULL, NULL, NULL, NULL, 0, NULL), +(29, 'http://localhost:8001/category/gutenberg/', '41:91d8be48d5a79e397a05af7710a0cc07', 35, 'term', 'category', NULL, NULL, NULL, NULL, 'Gutenberg', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(30, 'http://localhost:8001/category/h1/', '34:56f7b0df264b96b9d091baff54fc4e89', 71, 'term', 'category', NULL, NULL, NULL, NULL, 'h1', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(31, 'http://localhost:8001/category/h1/h2/', '37:99033a3ca66df37c8fd51318bce5ff1c', 72, 'term', 'category', NULL, NULL, NULL, NULL, 'h2', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(32, 'http://localhost:8001/', '22:48d237737fbe265e0fa4e7a5aa068bbe', NULL, 'post-type-archive', 'post', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(33, '', NULL, NULL, 'post-type-archive', 'page', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(34, 'http://localhost:8001/category/h1/h2/h3/', '40:524d47d4420ba7a9e68dcd3ca6850850', 73, 'term', 'category', NULL, NULL, NULL, NULL, 'h3', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(35, '', NULL, NULL, 'post-type-archive', 'attachment', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-04 00:04:11', 1, NULL, NULL, NULL, NULL, 0, NULL), +(36, '', NULL, NULL, 'post-type-archive', 'type_limit_test', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(37, '', NULL, NULL, 'post-type-archive', 'type_limit_0_test', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(38, 'http://localhost:8001/category/h1/h2/h3/h4/', '43:7fbb43d95c644ad3e270adfc8411092f', 74, 'term', 'category', NULL, NULL, NULL, NULL, 'h4', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(39, '', NULL, NULL, 'post-type-archive', 'translation_filter_t', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(40, '', NULL, NULL, 'post-type-archive', 'action_monitor', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-04 00:04:11', 1, NULL, NULL, NULL, NULL, 0, NULL), +(41, 'http://localhost:8001/category/h1/h2/h3/h4/h5/', '46:ea8040cbf2e3f66a2ebd439f43a90edf', 75, 'term', 'category', NULL, NULL, NULL, NULL, 'h5', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(42, 'http://localhost:8001/category/test-category/', '45:958217459592396a42fa5ff38e4c34a4', 33, 'term', 'category', NULL, NULL, NULL, NULL, 'Test Category', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(43, 'http://localhost:8001/category/uncategorized/', '45:b0dbd26366e98afae4bc2fe2da2284b0', 1, 'term', 'category', NULL, NULL, NULL, NULL, 'Uncategorized', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(44, 'http://localhost:8001/category/uncategorized-en/', '48:bc63e6e0f1acc74fc80bcfb0333f3cfe', 23, 'term', 'category', NULL, NULL, NULL, NULL, 'Uncategorized', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(45, 'http://localhost:8001/tag/1/', '28:643cc5e39df81ab6eb1c7a693f8d5f96', 27, 'term', 'post_tag', NULL, NULL, NULL, NULL, '1', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(46, 'http://localhost:8001/2020/02/25/hello-world/', '45:0cc04cd6cc9795d5d98f5d7d0f207b85', 1, 'post', 'post', 4, 0, NULL, NULL, 'Hello world! DELTA SYNC', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 90, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', NULL, '362', 'featured-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', '362', 'featured-image', '{\n \"width\": 1000,\n \"height\": 1000,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"size\": \"full\",\n \"id\": 362,\n \"alt\": \"\",\n \"pixels\": 1000000,\n \"type\": \"image/jpeg\"\n}', 0, NULL, NULL, '2021-05-03 23:27:32', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(47, 'http://localhost:8001/tag/2/', '28:4f3f643262d73e50fd0a3b2b3db825fb', 29, 'term', 'post_tag', NULL, NULL, NULL, NULL, '2', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(48, 'http://localhost:8001/tag/3/', '28:177e5c866dea93d609a4541316407fd8', 31, 'term', 'post_tag', NULL, NULL, NULL, NULL, '3', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(49, 'http://localhost:8001/tag/alignments/', '37:f63f63e8d153c75f9e41265d7933cdb3', 39, 'term', 'post_tag', NULL, NULL, NULL, NULL, 'alignments', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(50, 'http://localhost:8001/tag/widgets/', '34:e395a9620f35bfc6e68f7257cac4e35e', 41, 'term', 'post_tag', NULL, NULL, NULL, NULL, 'widgets', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:32', '2021-05-03 23:27:32', 1, NULL, NULL, NULL, NULL, 0, NULL), +(51, 'http://localhost:8001/type_limit_0_test/2/', '42:155efbb07681d30146074f419e369c67', 1068, 'post', 'type_limit_0_test', 4, 0, NULL, NULL, '2', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(52, 'http://localhost:8001/translation_filter_t/english-page/', '56:47f758536bc7f715824b99fdb744c1f1', 1335, 'post', 'translation_filter_t', 4, 0, NULL, NULL, 'English page', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(53, 'http://localhost:8001/type_limit_test/11/', '41:347b5418406795a2d79c03ebf92f379a', 1167, 'post', 'type_limit_test', 4, 0, NULL, NULL, '11', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(54, 'http://localhost:8001/translation_filter_t/french-page/', '55:4f118be33535fccdf409740c46e00614', 1311, 'post', 'translation_filter_t', 4, 0, NULL, NULL, 'French page', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(55, 'http://localhost:8001/type_limit_0_test/1/', '42:6a35aee166233d266aae778c6ecd50f1', 1057, 'post', 'type_limit_0_test', 4, 0, NULL, NULL, '1', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(56, 'http://localhost:8001/type_limit_test/10/', '41:27c88b8dbdd7090ad87b733872f5448a', 1156, 'post', 'type_limit_test', 4, 0, NULL, NULL, '10', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(57, 'http://localhost:8001/type_limit_test/9/', '40:aac9c70aefeb24f953fa33e7653ee326', 1145, 'post', 'type_limit_test', 4, 0, NULL, NULL, '9', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(58, 'http://localhost:8001/type_limit_test/8/', '40:8efc0b6a3ebbc3e4cf810289c447b5af', 1134, 'post', 'type_limit_test', 4, 0, NULL, NULL, '8', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(59, 'http://localhost:8001/type_limit_test/7/', '40:5f3deb952d3ce0f67e4de4c398db1af0', 1123, 'post', 'type_limit_test', 4, 0, NULL, NULL, '7', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(60, 'http://localhost:8001/type_limit_test/6/', '40:05bba6d47c42788f9eb7be5c7fad85c0', 1112, 'post', 'type_limit_test', 4, 0, NULL, NULL, '6', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(61, 'http://localhost:8001/type_limit_test/5/', '40:271b7d3a30f95b30c141a0d730830cca', 1101, 'post', 'type_limit_test', 4, 0, NULL, NULL, '5', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(62, 'http://localhost:8001/type_limit_test/4/', '40:80872b95da94f7fb09e15bf27f8624ea', 1090, 'post', 'type_limit_test', 4, 0, NULL, NULL, '4', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(63, 'http://localhost:8001/type_limit_test/3/', '40:32a36d3634476520ee618babaaa5d3e7', 1079, 'post', 'type_limit_test', 4, 0, NULL, NULL, '3', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(64, 'http://localhost:8001/type_limit_test/2/', '40:f3190861d19c435691671daf75c50eb8', 1046, 'post', 'type_limit_test', 4, 0, NULL, NULL, '2', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(65, 'http://localhost:8001/type_limit_test/1/', '40:968f5368dcd21ae5537838b8b12d316b', 1035, 'post', 'type_limit_test', 4, 0, NULL, NULL, '1', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(66, 'http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg', '67:e0f05583759f76f848872dfc20010e63', 7760, 'post', 'attachment', 4, 7646, NULL, NULL, '10-2500×1667', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg', NULL, '7760', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg', '7760', 'attachment-image', '{\n \"width\": 2500,\n \"height\": 1667,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/08/10-2500x1667-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/08/10-2500x1667-1.jpg\",\n \"size\": \"full\",\n \"id\": 7760,\n \"alt\": \"\",\n \"pixels\": 4167500,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(67, 'http://localhost:8001/wp-content/uploads/2020/08/1001-5616x3744-1-scaled.jpg', '76:161e0774d049a7a5445055c12e056c2b', 7756, 'post', 'attachment', 4, 7646, NULL, NULL, '1001-5616×3744', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1001-5616x3744-1-scaled.jpg', NULL, '7756', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1001-5616x3744-1-scaled.jpg', '7756', 'attachment-image', '{\n \"width\": 2560,\n \"height\": 1707,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/08/1001-5616x3744-1-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/08/1001-5616x3744-1-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 7756,\n \"alt\": \"\",\n \"pixels\": 4369920,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(68, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', '67:847c7d38c482baa4c88b89b8539f5078', 362, 'post', 'attachment', 4, 17, NULL, NULL, '84-1000×1000', 'inherit', NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', NULL, '362', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg', '362', 'attachment-image', '{\n \"width\": 1000,\n \"height\": 1000,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/03/84-1000x1000-1.jpg\",\n \"size\": \"full\",\n \"id\": 362,\n \"alt\": \"\",\n \"pixels\": 1000000,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(69, 'http://localhost:8001/wp-content/uploads/2020/08/1003-1181x1772-1.jpg', '69:f72e8d919b2f622d2022ea09d1503517', 7752, 'post', 'attachment', 4, 7646, NULL, NULL, '1003-1181×1772', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1003-1181x1772-1.jpg', NULL, '7752', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1003-1181x1772-1.jpg', '7752', 'attachment-image', '{\n \"width\": 1181,\n \"height\": 1772,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/08/1003-1181x1772-1.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/08/1003-1181x1772-1.jpg\",\n \"size\": \"full\",\n \"id\": 7752,\n \"alt\": \"\",\n \"pixels\": 2092732,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:27:33', '2021-05-03 23:27:33', 1, NULL, NULL, NULL, NULL, 0, NULL), +(70, 'http://localhost:8001/wp-content/uploads/2020/10/sample.doc', '59:15ad230d60e059f1d66cb387d687630a', 10445, 'post', 'attachment', 4, 7646, NULL, NULL, 'sample', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(71, 'http://localhost:8001/wp-content/uploads/2020/08/file-sample_1MB.doc', '68:81b40b4a2c10f95af210ed1c319240b7', 7740, 'post', 'attachment', 4, 7646, NULL, NULL, 'file-sample_1MB', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(72, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-scaled.jpg', '76:eefdb6ef80cbda079cc2a6dd0dd575e2', 7748, 'post', 'attachment', 4, 7646, NULL, NULL, '1002-4312×2868', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-scaled.jpg', NULL, '7748', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-scaled.jpg', '7748', 'attachment-image', '{\n \"width\": 2560,\n \"height\": 1703,\n \"url\": \"http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2020/08/1002-4312x2868-1-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 7748,\n \"alt\": \"\",\n \"pixels\": 4359680,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(73, 'http://localhost:8001/wp-content/uploads/2020/10/sample-mov-file.mov', '68:fe0518271ad339830a61eb52b2b8a084', 10453, 'post', 'attachment', 4, 7646, NULL, NULL, 'sample-mov-file', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(74, 'http://localhost:8001/wp-content/uploads/2020/10/sample-mp4-file.mp4', '68:9b8dffdd72bb82937cee74a8fc7b4454', 10449, 'post', 'attachment', 4, 7646, NULL, NULL, 'sample-mp4-file', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(75, 'http://localhost:8001/wp-content/uploads/2020/10/sample.pdf', '59:d46977aef259a7c0f3767f86efa47ad8', 10439, 'post', 'attachment', 4, 7646, NULL, NULL, 'sample', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:27:34', '2021-05-03 23:27:34', 1, NULL, NULL, NULL, NULL, 0, NULL), +(76, 'http://localhost:8001/action_monitor/sample-page-1619823908/', '60:bf3fded0fe5415476ca7ba81e647a250', 11765, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Sample Page DELTA SYNC', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:27:46', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(77, 'http://localhost:8001/action_monitor/hello-world-1619822052/', '60:dd60753373479d8d4e4b528a81c212de', 11758, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Hello world! DELTA SYNC', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:27:46', '2021-05-04 17:18:10', 1, NULL, NULL, NULL, NULL, 0, NULL), +(78, 'http://localhost:8001/2020/09/24/hierarchical-category-test/', '60:73e9be657d1a26ff7a498f419225cf6e', 9361, 'post', 'post', 4, 0, NULL, NULL, 'hierarchical category test', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1, NULL, NULL, NULL, NULL, 0, NULL), +(79, 'http://localhost:8001/2018/10/24/gutenberg-columns/', '51:4509c434ee4e2a528fc3a39b71eef76a', 128, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Columns', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 90, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash.jpg', NULL, 'first-content-image', NULL, 0, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(80, 'http://localhost:8001/2018/10/24/gutenberg-layout-element-blocks/', '65:513bbce8010d474a2767f0adb649e187', 125, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Layout Element Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(81, 'http://localhost:8001/2018/10/24/gutenberg-formatting-blocks/', '61:8835f27894bd939f47f30565c5175036', 122, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Formatting Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(82, 'http://localhost:8001/2018/10/24/gutenberg-embed-blocks/', '56:d47db54da360692330b64d59965f91ce', 116, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Embed Blocks', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1, NULL, NULL, NULL, NULL, 0, NULL), +(83, 'http://localhost:8001/2018/10/24/gutenberg-classic-block/', '57:c21061a8d16381f9d06578be912f4a43', 114, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Classic Block', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1, NULL, NULL, NULL, NULL, 0, NULL), +(84, 'http://localhost:8001/2018/10/23/gutenberg-common-blocks/', '57:13e2fe50e67d7fc4f97ce7f583f42a15', 94, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Common Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-1024x681.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-1024x681.jpg', NULL, 'first-content-image', NULL, 2, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(85, 'http://localhost:8001/2018/10/23/gutenberg-widget-blocks/', '57:b5871316886f2bbf8242e87bb66ecfa9', 90, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Widget Blocks', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 60, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1, NULL, NULL, NULL, NULL, 0, NULL), +(86, 'http://localhost:8001/2018/10/23/gutenberg-image-alignment/', '59:f478b8ee0b69d8deabf34368cd44c0b4', 79, 'post', 'post', 4, 0, NULL, NULL, 'Gutenberg: Image Alignment', 'private', 0, 0, NULL, NULL, NULL, NULL, NULL, 30, 0, NULL, 0, NULL, NULL, NULL, NULL, 'https://chrisrunnells.files.wordpress.com/2018/10/image-alignment-580x300.jpg', NULL, NULL, 'first-content-image', NULL, NULL, 'https://chrisrunnells.files.wordpress.com/2018/10/image-alignment-580x300.jpg', NULL, 'first-content-image', NULL, NULL, NULL, NULL, '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1, NULL, NULL, NULL, NULL, 0, NULL), +(87, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', '80:61cd8052693b41a3d5efbb0f57c4cf55', 104, 'post', 'attachment', 4, 94, NULL, NULL, 'WordPress-logotype-standard', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2021-05-03 23:51:44', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(88, 'http://localhost:8001/action_monitor/gutenberg-columns-1620085934/', '66:39db372ea1187771fa4a3aebed60c067', 11791, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Gutenberg: Columns', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:52:14', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(89, 'http://localhost:8001/action_monitor/gutenberg-layout-element-blocks-1620085934/', '80:36237b722e5cec3baf620d65d46cc1a5', 11793, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Gutenberg: Layout Element Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:52:14', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(90, 'http://localhost:8001/action_monitor/gutenberg-formatting-blocks-1620085934/', '76:47cc8ae1e09d336ab891e21eddb31920', 11795, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Gutenberg: Formatting Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:52:14', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(91, 'http://localhost:8001/action_monitor/gutenberg-common-blocks-1620085934/', '72:e1bb6ffdcf90a021c788333eef691c94', 11797, 'post', 'action_monitor', 4, 0, NULL, NULL, 'Gutenberg: Common Blocks', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-03 23:52:14', '2021-05-03 23:52:14', 1, NULL, NULL, NULL, NULL, 0, NULL), +(92, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg', '87:9e7e2c5187348be83a2b9b430366bc0f', 103, 'post', 'attachment', 4, 94, NULL, NULL, 'zoltan-tasi-482489-unsplash', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg', NULL, '103', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg', '103', 'attachment-image', '{\n \"width\": 2560,\n \"height\": 1721,\n \"url\": \"http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 103,\n \"alt\": \"\",\n \"pixels\": 4405760,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:52:55', '2021-05-03 23:52:55', 1, NULL, NULL, NULL, NULL, 0, NULL), +(93, 'http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg', '91:b7c009613a00bb7de0faa978c3560440', 101, 'post', 'attachment', 4, 94, NULL, NULL, 'jordan-steranka-504707-unsplash', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg', NULL, '101', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg', '101', 'attachment-image', '{\n \"width\": 1707,\n \"height\": 2560,\n \"url\": \"http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 101,\n \"alt\": \"\",\n \"pixels\": 4369920,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:52:55', '2021-05-03 23:52:55', 1, NULL, NULL, NULL, NULL, 0, NULL), +(94, 'http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg', '87:0d8c48fa8ec49f485a1ffc8fffbcd199', 96, 'post', 'attachment', 4, 94, NULL, NULL, 'brandon-siu-608784-unsplash', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg', NULL, '96', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg', '96', 'attachment-image', '{\n \"width\": 2560,\n \"height\": 1709,\n \"url\": \"http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2018/10/brandon-siu-608784-unsplash-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 96,\n \"alt\": \"\",\n \"pixels\": 4375040,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:52:55', '2021-05-03 23:52:55', 1, NULL, NULL, NULL, NULL, 0, NULL), +(95, 'http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg', '93:06f01a203cb639f9ce4cf184804e9fee', 102, 'post', 'attachment', 4, 94, NULL, NULL, 'kristopher-roller-110203-unsplash', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg', NULL, '102', 'attachment-image', NULL, NULL, 'http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg', '102', 'attachment-image', '{\n \"width\": 2560,\n \"height\": 1707,\n \"url\": \"http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg\",\n \"path\": \"/var/www/html/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash-scaled.jpg\",\n \"size\": \"full\",\n \"id\": 102,\n \"alt\": \"\",\n \"pixels\": 4369920,\n \"type\": \"image/jpeg\"\n}', NULL, NULL, NULL, '2021-05-03 23:52:55', '2021-05-03 23:52:55', 1, NULL, NULL, NULL, NULL, 0, NULL), +(96, 'http://localhost:8001/wp-content/uploads/2020/10/mattmullenweg-interview.mp3', '76:c4c053696ecaddad6641508398ff2ea7', 10621, 'post', 'attachment', 4, 94, NULL, NULL, 'mattmullenweg-interview', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:52:56', '2021-05-03 23:52:56', 1, NULL, NULL, NULL, NULL, 0, NULL), +(97, 'http://localhost:8001/wp-content/uploads/2020/10/giphy.mp4', '58:5aca161db34c9b3c8d36adfd087f5e86', 10627, 'post', 'attachment', 4, 94, NULL, NULL, 'giphy', 'inherit', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-03 23:52:56', '2021-05-03 23:52:56', 1, NULL, NULL, NULL, NULL, 0, NULL), +(98, 'http://localhost:8001/action_monitor/wp-graphql-gutenberg-0-3-8-1-zip-1620086548/', '81:32f132321ac1f31a1586426824dcab05', 11806, 'post', 'action_monitor', 4, 0, NULL, NULL, 'wp-graphql-gutenberg-0.3.8 (1).zip', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-04 00:02:28', '2021-05-04 00:02:30', 1, NULL, NULL, NULL, NULL, 0, NULL), +(100, '', NULL, NULL, 'post-type-archive', 'wp_block', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-04 00:02:35', '2021-05-04 00:02:35', 1, NULL, NULL, NULL, NULL, 0, NULL), +(101, '', NULL, NULL, 'post-type-archive', 'wgg_preview', NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2021-05-04 00:02:35', '2021-05-04 00:02:35', 1, NULL, NULL, NULL, NULL, 0, NULL), +(102, 'http://localhost:8001/action_monitor/wp-graphql-gutenberg-0-3-8-1-zip-1620086651/', '81:2c0d7f7ab66e6d5c54b5b9329c7ee3eb', 11809, 'post', 'action_monitor', 4, 0, NULL, NULL, 'wp-graphql-gutenberg-0.3.8 (1).zip', 'publish', NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '2021-05-04 00:04:11', '2021-05-04 00:04:12', 1, NULL, NULL, NULL, NULL, 0, NULL); + +INSERT INTO `wp_yoast_indexable_hierarchy` (`indexable_id`, `ancestor_id`, `depth`, `blog_id`) VALUES +(2, 0, 0, 1), +(3, 0, 0, 1), +(4, 0, 0, 1), +(5, 0, 0, 1), +(6, 0, 0, 1), +(7, 0, 0, 1), +(8, 0, 0, 1), +(9, 0, 0, 1), +(10, 0, 0, 1), +(11, 0, 0, 1), +(12, 0, 0, 1), +(13, 0, 0, 1), +(14, 0, 0, 1), +(15, 0, 0, 1), +(16, 0, 0, 1), +(17, 0, 0, 1), +(18, 0, 0, 1), +(19, 0, 0, 1), +(20, 0, 0, 1), +(21, 0, 0, 1), +(22, 21, 1, 1), +(23, 0, 0, 1), +(24, 0, 0, 1), +(25, 0, 0, 1), +(26, 0, 0, 1), +(27, 0, 0, 1), +(28, 0, 0, 1), +(29, 0, 0, 1), +(30, 0, 0, 1), +(31, 30, 1, 1), +(32, 0, 0, 1), +(33, 0, 0, 1), +(34, 30, 2, 1), +(34, 31, 1, 1), +(35, 0, 0, 1), +(36, 0, 0, 1), +(37, 0, 0, 1), +(38, 30, 3, 1), +(38, 31, 2, 1), +(38, 34, 1, 1), +(39, 0, 0, 1), +(40, 0, 0, 1), +(41, 30, 4, 1), +(41, 31, 3, 1), +(41, 34, 2, 1), +(41, 38, 1, 1), +(42, 0, 0, 1), +(43, 0, 0, 1), +(44, 0, 0, 1), +(45, 0, 0, 1), +(46, 0, 0, 1), +(47, 0, 0, 1), +(48, 0, 0, 1), +(49, 0, 0, 1), +(50, 0, 0, 1), +(51, 0, 0, 1), +(52, 0, 0, 1), +(53, 0, 0, 1), +(54, 0, 0, 1), +(55, 0, 0, 1), +(56, 0, 0, 1), +(57, 0, 0, 1), +(58, 0, 0, 1), +(59, 0, 0, 1), +(60, 0, 0, 1), +(61, 0, 0, 1), +(62, 0, 0, 1), +(63, 0, 0, 1), +(64, 0, 0, 1), +(65, 0, 0, 1), +(66, 4, 1, 1), +(67, 4, 1, 1), +(68, 17, 1, 1), +(69, 4, 1, 1), +(70, 4, 1, 1), +(71, 4, 1, 1), +(72, 4, 1, 1), +(73, 4, 1, 1), +(74, 4, 1, 1), +(75, 4, 1, 1), +(76, 0, 0, 1), +(77, 0, 0, 1), +(78, 0, 0, 1), +(79, 0, 0, 1), +(80, 0, 0, 1), +(81, 0, 0, 1), +(82, 0, 0, 1), +(83, 0, 0, 1), +(84, 0, 0, 1), +(85, 0, 0, 1), +(86, 0, 0, 1), +(87, 84, 1, 1), +(88, 0, 0, 1), +(89, 0, 0, 1), +(90, 0, 0, 1), +(91, 0, 0, 1), +(92, 84, 1, 1), +(93, 84, 1, 1), +(94, 84, 1, 1), +(95, 84, 1, 1), +(96, 84, 1, 1), +(97, 84, 1, 1), +(98, 0, 0, 1), +(100, 0, 0, 1), +(101, 0, 0, 1), +(102, 0, 0, 1); + +INSERT INTO `wp_yoast_migrations` (`id`, `version`) VALUES +(1, '20171228151840'), +(2, '20171228151841'), +(3, '20190529075038'), +(4, '20191011111109'), +(5, '20200408101900'), +(6, '20200420073606'), +(7, '20200428123747'), +(8, '20200428194858'), +(9, '20200429105310'), +(10, '20200430075614'), +(11, '20200430150130'), +(12, '20200507054848'), +(13, '20200513133401'), +(14, '20200609154515'), +(15, '20200616130143'), +(16, '20200617122511'), +(17, '20200702141921'), +(18, '20200728095334'), +(19, '20201202144329'), +(20, '20201216124002'), +(21, '20201216141134'); + +INSERT INTO `wp_yoast_primary_term` (`id`, `post_id`, `term_id`, `taxonomy`, `created_at`, `updated_at`, `blog_id`) VALUES +(1, 9361, 71, 'category', '2021-05-03 23:51:37', '2021-05-03 23:51:37', 1); + +INSERT INTO `wp_yoast_seo_links` (`id`, `url`, `post_id`, `target_post_id`, `type`, `indexable_id`, `target_indexable_id`, `height`, `width`, `size`, `language`, `region`) VALUES +(9, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash.jpg', 128, NULL, 'image-in', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(10, 'http://localhost:8001/wp-content/uploads/2018/10/jordan-steranka-504707-unsplash.jpg', 128, NULL, 'image-in', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(11, 'http://localhost:8001/wp-content/uploads/2018/10/zoltan-tasi-482489-unsplash.jpg', 128, NULL, 'image-in', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(12, 'http://localhost:8001/wp-content/uploads/2018/10/brandon-siu-608784-unsplash.jpg', 128, NULL, 'image-in', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(13, 'http://localhost:8001/wp-content/uploads/2018/10/kristopher-roller-110203-unsplash.jpg', 128, NULL, 'image-in', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(14, 'https://chrisrunnells.files.wordpress.com/2018/10/akismet-logo.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(15, 'https://chrisrunnells.files.wordpress.com/2018/10/gravatar.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(16, 'https://chrisrunnells.files.wordpress.com/2018/10/jetpack.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(17, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-cloudup-1.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(18, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-crowdsignal.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(19, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-longreads1.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(20, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-simplenote.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(21, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-vaultpress.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(22, 'https://chrisrunnells.files.wordpress.com/2018/10/logo-woocommerce-black.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(23, 'https://chrisrunnells.files.wordpress.com/2018/10/wordpressdotcom_wbadgevert-blk.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(24, 'https://chrisrunnells.files.wordpress.com/2018/10/wpcom-vip-logo-2017.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(25, 'https://chrisrunnells.files.wordpress.com/2018/10/wpcom-wmark-blk.png', 128, NULL, 'image-ex', 79, NULL, NULL, NULL, NULL, NULL, NULL), +(26, 'https://www.wordpress.com', 125, NULL, 'external', 80, NULL, NULL, NULL, NULL, NULL, NULL), +(27, 'https://www.wordpress.com', 125, NULL, 'external', 80, NULL, NULL, NULL, NULL, NULL, NULL), +(28, 'https://www.wordpress.com', 125, NULL, 'external', 80, NULL, NULL, NULL, NULL, NULL, NULL), +(29, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', 125, 104, 'internal', 80, 87, NULL, NULL, NULL, NULL, NULL), +(30, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', 125, 104, 'internal', 80, 87, NULL, NULL, NULL, NULL, NULL), +(31, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', 94, 104, 'internal', 84, 87, NULL, NULL, NULL, NULL, NULL), +(32, 'http://localhost:8001/wp-content/uploads/2018/10/wordpress-logotype-standard.pdf', 94, 104, 'internal', 84, 87, NULL, NULL, NULL, NULL, NULL), +(33, 'http://localhost:8001/wp-content/uploads/2020/08/1002-4312x2868-1-1024x681.jpg', 94, NULL, 'image-in', 84, NULL, NULL, NULL, NULL, NULL, NULL), +(49, 'http://localhost:8001/wp-admin/', 2, NULL, 'internal', 21, NULL, NULL, NULL, NULL, NULL, NULL); + /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; diff --git a/integration-tests/gatsby-source-wordpress/docker/wordpress/install-wp-graphql-plugins.sh b/integration-tests/gatsby-source-wordpress/docker/wordpress/install-wp-graphql-plugins.sh index 1ea5d080635a4..83e4e1492935e 100755 --- a/integration-tests/gatsby-source-wordpress/docker/wordpress/install-wp-graphql-plugins.sh +++ b/integration-tests/gatsby-source-wordpress/docker/wordpress/install-wp-graphql-plugins.sh @@ -3,21 +3,30 @@ WP_CONTENT_DIR=/usr/src/wordpress/wp-content PLUGIN_DIR=${WP_CONTENT_DIR}/plugins mkdir -p ${PLUGIN_DIR} && \ + # WP GraphQL from GitHub release git clone --depth 1 -b ${WPGRAPHQL_VERSION} https://github.com/wp-graphql/wp-graphql.git ${PLUGIN_DIR}/wp-graphql && \ +composer install --working-dir=${PLUGIN_DIR}/wp-graphql && \ + # Install wp-gatsby using git, and apply a diff git clone --depth 1 -b ${WPGATSBY_VERSION} https://github.com/gatsbyjs/wp-gatsby.git ${PLUGIN_DIR}/wp-gatsby && \ # WP GraphQL ACF from GitHub release install-plugin wp-graphql-acf wp-graphql/wp-graphql-acf ${WPGRAPHQL_ACF_VERSION} && \ +# wp-graphql-gutenberg from Github release +install-plugin wp-graphql-gutenberg pristas-peter/wp-graphql-gutenberg ${WPGRAPHQL_GUTENBERG_VERSION} && \ + # CPTUI from Github release install-plugin custom-post-type-ui WebDevStudios/custom-post-type-ui ${CPT_UI_VERSION} && \ # WP GraphQL CPTUI from GitHub release install-plugin wp-graphql-custom-post-type-ui wp-graphql/wp-graphql-custom-post-type-ui ${WPGRAPHQL_CPT_UI_VERSION} && \ +# WP GraphQL Yoast from GitHub release +install-plugin wp-graphql-yoast-seo ashhitch/wp-graphql-yoast-seo ${WPGRAPHQL_YOAST_VERSION} && \ + git clone --depth 1 -b ${ACF_VERSION} https://github.com/wp-premium/advanced-custom-fields-pro.git ${PLUGIN_DIR}/advanced-custom-fields-pro && \ git clone --depth 1 https://github.com/WP-API/Basic-Auth.git ${PLUGIN_DIR}/basic-auth diff --git a/integration-tests/gatsby-source-wordpress/docker/wp-cli/start.sh b/integration-tests/gatsby-source-wordpress/docker/wp-cli/start.sh index 29dbe8ea6706c..74ba7ed750089 100755 --- a/integration-tests/gatsby-source-wordpress/docker/wp-cli/start.sh +++ b/integration-tests/gatsby-source-wordpress/docker/wp-cli/start.sh @@ -4,8 +4,10 @@ set -e # Delete unwanted plugins wp plugin delete akismet hello +wp plugin install wordpress-seo + # activate plugins -wp plugin activate wp-graphql custom-post-type-ui wp-graphql-custom-post-type-ui advanced-custom-fields-pro basic-auth wp-graphql-acf wp-gatsby +wp plugin activate --all # this seems to be needed now wp core update-db diff --git a/integration-tests/gatsby-source-wordpress/gatsby-config.js b/integration-tests/gatsby-source-wordpress/gatsby-config.js index b2a323b857d4c..118dcd93d0b1d 100644 --- a/integration-tests/gatsby-source-wordpress/gatsby-config.js +++ b/integration-tests/gatsby-source-wordpress/gatsby-config.js @@ -59,11 +59,15 @@ const wpPluginOptions = !process.env.DEFAULT_PLUGIN_OPTIONS : // and we don't actually need more than 1000 in production 1000, }, + // excluding this because it causes Gatsby to throw errors + BlockEditorContentNode: { exclude: true }, }, } : { type: { MediaItem: mediaItemTypeSettings, + // excluding this because it causes Gatsby to throw errors + BlockEditorContentNode: { exclude: true }, }, } @@ -83,7 +87,7 @@ module.exports = { options: { url: process.env.WPGRAPHQL_URL, schema: { - requestConcurrency: 10, + requestConcurrency: 7, }, production: { hardCacheMediaFiles: true, diff --git a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js index ee3f510f84f6d..47bd048ce8b93 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/data-resolution.js @@ -25,12 +25,12 @@ describe(`data resolution`, () => { expect(data[`allWpMediaItem`].nodes).toBeTruthy() expect(data[`allWpMediaItem`].nodes).toMatchSnapshot() - expect(data[`allWpMediaItem`].totalCount).toBe(7) + expect(data[`allWpMediaItem`].totalCount).toBe(15) expect(data[`allWpTag`].totalCount).toBe(5) expect(data[`allWpUser`].totalCount).toBe(1) - expect(data[`allWpPage`].totalCount).toBe(3) - expect(data[`allWpPost`].totalCount).toBe(1) + expect(data[`allWpPage`].totalCount).toBe(4) + expect(data[`allWpPost`].totalCount).toBe(5) expect(data[`allWpComment`].totalCount).toBe(1) expect(data[`allWpTaxonomy`].totalCount).toBe(3) expect(data[`allWpCategory`].totalCount).toBe(9) @@ -78,7 +78,7 @@ describe(`data resolution`, () => { }) expect(gatsbyResult.data.allWpTermNode.nodes.length).toBe(14) - expect(gatsbyResult.data.allWpContentNode.nodes.length).toBe(14) + expect(gatsbyResult.data.allWpContentNode.nodes.length).toBe(27) }) it(`resolves interface fields which are a mix of Gatsby nodes and regular object data with no node`, async () => { @@ -214,4 +214,98 @@ describe(`data resolution`, () => { expect(result).toMatchSnapshot() }) + + testResolvedData({ + url, + title: `resolves wp-graphql-gutenberg columns`, + gatsbyQuery: queries.gutenbergColumns, + queryReplace: { + from: `wpPost(title: { eq: "Gutenberg: Columns" }) {`, + to: `post(id: "cG9zdDoxMjg=") {`, + }, + fields: { + gatsby: `wpPost`, + wpgql: `post`, + }, + }) + + testResolvedData({ + url, + title: `resolves wp-graphql-gutenberg layout elements`, + gatsbyQuery: queries.gutenbergLayoutElements, + queryReplace: { + from: `wpPost(id: { eq: "cG9zdDoxMjU=" }) {`, + to: `post(id: "cG9zdDoxMjU=") {`, + }, + fields: { + gatsby: `wpPost`, + wpgql: `post`, + }, + }) + + testResolvedData({ + url, + title: `resolves wp-graphql-gutenberg formatting blocks`, + gatsbyQuery: queries.gutenbergFormattingBlocks, + queryReplace: { + from: `wpPost(id: { eq: "cG9zdDoxMjI=" }) {`, + to: `post(id: "cG9zdDoxMjI=") {`, + }, + fields: { + gatsby: `wpPost`, + wpgql: `post`, + }, + }) + + testResolvedData({ + url, + title: `resolves wp-graphql-gutenberg common blocks`, + gatsbyQuery: queries.gutenbergCommonBlocks, + queryReplace: { + from: `wpPost(id: { eq: "cG9zdDo5NA==" }) {`, + to: `post(id: "cG9zdDo5NA==") {`, + }, + fields: { + gatsby: `wpPost`, + wpgql: `post`, + }, + }) + + it(`resolves Yoast SEO data`, async () => { + const gatsbyResult = await fetchGraphql({ + url, + query: /* GraphQL */ ` + { + wp { + ${queries.yoastRootFields} + } + wpPage(title: {eq: "Yoast SEO"}) { + ${queries.pageYoastFields} + } + } + `, + }) + + const { data: WPGraphQLData } = await fetchGraphql({ + url: process.env.WPGRAPHQL_URL, + query: /* GraphQL */ ` + { + ${queries.yoastRootFields} + page(id: "cG9zdDo3ODY4") { + ${queries.pageYoastFields} + } + } + `, + }) + + const wpGraphQLPageNormalizedPaths = JSON.parse( + JSON.stringify(WPGraphQLData.page).replace( + /http:\/\/localhost:8001/gm, + `` + ) + ) + + expect(gatsbyResult.data.wpPage).toStrictEqual(wpGraphQLPageNormalizedPaths) + expect(gatsbyResult.data.wp.seo).toStrictEqual(WPGraphQLData.seo) + }) }) diff --git a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js index 002a2cf4e774c..a8e1c3b7d2fff 100644 --- a/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js +++ b/integration-tests/gatsby-source-wordpress/test-fns/test-utils/queries.js @@ -187,18 +187,21 @@ exports.queries = { isDynamic order originalContent - parentNode { - id - ... on WpPost { - title - } - } + # @todo this connection isn't working + # parentNode { + # id + # ... on WpPost { + # title + # } + # } parentNodeDatabaseId dynamicContent attributes { - className - verticalAlignment - width + ... on WpCoreColumnBlockAttributes { + className + verticalAlignment + width + } } } @@ -206,12 +209,13 @@ exports.queries = { name order originalContent - parentNode { - id - ... on WpPost { - title - } - } + # @todo this connection isn't working + # parentNode { + # id + # ... on WpPost { + # title + # } + # } parentNodeDatabaseId dynamicContent attributes { @@ -223,7 +227,6 @@ exports.queries = { verticalAlignment } } - # saveContent } fragment InnerBlocks on WpBlock { From 27f54d7268fcc95717301933a530c7963fab27df Mon Sep 17 00:00:00 2001 From: LekoArts Date: Wed, 5 May 2021 08:36:10 +0200 Subject: [PATCH 16/45] chore(release): Publish next - gatsby-admin@0.15.0-next.4 - gatsby-cli@3.5.0-next.1 - gatsby-plugin-image@1.5.0-next.1 - gatsby-plugin-mdx@2.5.0-next.1 - gatsby-plugin-netlify-cms@5.5.0-next.2 - gatsby-plugin-page-creator@3.5.0-next.1 - gatsby-plugin-sharp@3.5.0-next.2 - gatsby-recipes@0.16.0-next.1 - gatsby-telemetry@2.5.0-next.1 - gatsby-transformer-sqip@3.5.0-next.2 - gatsby@3.5.0-next.4 --- packages/gatsby-admin/CHANGELOG.md | 4 ++++ packages/gatsby-admin/package.json | 4 ++-- packages/gatsby-cli/CHANGELOG.md | 6 ++++++ packages/gatsby-cli/package.json | 6 +++--- packages/gatsby-plugin-image/CHANGELOG.md | 6 ++++++ packages/gatsby-plugin-image/package.json | 2 +- packages/gatsby-plugin-mdx/CHANGELOG.md | 6 ++++++ packages/gatsby-plugin-mdx/package.json | 2 +- packages/gatsby-plugin-netlify-cms/CHANGELOG.md | 6 ++++++ packages/gatsby-plugin-netlify-cms/package.json | 2 +- packages/gatsby-plugin-page-creator/CHANGELOG.md | 4 ++++ packages/gatsby-plugin-page-creator/package.json | 4 ++-- packages/gatsby-plugin-sharp/CHANGELOG.md | 4 ++++ packages/gatsby-plugin-sharp/package.json | 6 +++--- packages/gatsby-recipes/CHANGELOG.md | 4 ++++ packages/gatsby-recipes/package.json | 4 ++-- packages/gatsby-telemetry/CHANGELOG.md | 6 ++++++ packages/gatsby-telemetry/package.json | 2 +- packages/gatsby-transformer-sqip/CHANGELOG.md | 4 ++++ packages/gatsby-transformer-sqip/package.json | 4 ++-- packages/gatsby/CHANGELOG.md | 12 ++++++++++++ packages/gatsby/package.json | 8 ++++---- 22 files changed, 84 insertions(+), 22 deletions(-) diff --git a/packages/gatsby-admin/CHANGELOG.md b/packages/gatsby-admin/CHANGELOG.md index 1bb897f13a98a..fc128f259e44d 100644 --- a/packages/gatsby-admin/CHANGELOG.md +++ b/packages/gatsby-admin/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.15.0-next.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-admin@0.15.0-next.3...gatsby-admin@0.15.0-next.4) (2021-05-05) + +**Note:** Version bump only for package gatsby-admin + # [0.15.0-next.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-admin@0.15.0-next.2...gatsby-admin@0.15.0-next.3) (2021-05-01) **Note:** Version bump only for package gatsby-admin diff --git a/packages/gatsby-admin/package.json b/packages/gatsby-admin/package.json index 37c7e5ff9c517..d57b042b01f16 100644 --- a/packages/gatsby-admin/package.json +++ b/packages/gatsby-admin/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-admin", - "version": "0.15.0-next.3", + "version": "0.15.0-next.4", "main": "index.js", "author": "Max Stoiber", "license": "MIT", @@ -20,7 +20,7 @@ "@typescript-eslint/parser": "^4.14.2", "csstype": "^2.6.14", "formik": "^2.2.6", - "gatsby": "^3.5.0-next.3", + "gatsby": "^3.5.0-next.4", "gatsby-interface": "^0.0.244", "gatsby-plugin-typescript": "^3.5.0-next.0", "gatsby-plugin-webfonts": "^1.1.4", diff --git a/packages/gatsby-cli/CHANGELOG.md b/packages/gatsby-cli/CHANGELOG.md index 51bc91f48707f..3557f030d2a9f 100644 --- a/packages/gatsby-cli/CHANGELOG.md +++ b/packages/gatsby-cli/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-cli@3.5.0-next.0...gatsby-cli@3.5.0-next.1) (2021-05-05) + +### Features + +- **gatsby:** speedup cli startup by lazily requiring modules ([#31134](https://github.com/gatsbyjs/gatsby/issues/31134)) ([5105390](https://github.com/gatsbyjs/gatsby/commit/51053902082608e1effe824e66d7b68468dcf06c)) + # [3.5.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-cli@3.4.0-next.4...gatsby-cli@3.5.0-next.0) (2021-04-23) **Note:** Version bump only for package gatsby-cli diff --git a/packages/gatsby-cli/package.json b/packages/gatsby-cli/package.json index 602d4b945a5a9..3a2b1f22b2307 100644 --- a/packages/gatsby-cli/package.json +++ b/packages/gatsby-cli/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-cli", "description": "Gatsby command-line interface for creating new sites and running Gatsby commands", - "version": "3.5.0-next.0", + "version": "3.5.0-next.1", "author": "Kyle Mathews ", "bin": { "gatsby": "cli.js" @@ -24,8 +24,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.5.0-next.0", - "gatsby-recipes": "^0.16.0-next.0", - "gatsby-telemetry": "^2.5.0-next.0", + "gatsby-recipes": "^0.16.0-next.1", + "gatsby-telemetry": "^2.5.0-next.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", diff --git a/packages/gatsby-plugin-image/CHANGELOG.md b/packages/gatsby-plugin-image/CHANGELOG.md index 46366efcb52ac..6936a76cdbb97 100644 --- a/packages/gatsby-plugin-image/CHANGELOG.md +++ b/packages/gatsby-plugin-image/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-image@1.5.0-next.0...gatsby-plugin-image@1.5.0-next.1) (2021-05-05) + +### Bug Fixes + +- **gatsby-plugin-image:** add @babel/core peer dependency ([#31188](https://github.com/gatsbyjs/gatsby/issues/31188)) ([f4c1130](https://github.com/gatsbyjs/gatsby/commit/f4c1130f7ee93a07dc74c78eaa282b40c424a8ee)) + # [1.5.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-image@1.4.0-next.3...gatsby-plugin-image@1.5.0-next.0) (2021-04-23) **Note:** Version bump only for package gatsby-plugin-image diff --git a/packages/gatsby-plugin-image/package.json b/packages/gatsby-plugin-image/package.json index 58a611a8c0fe2..86b54c6d128b4 100644 --- a/packages/gatsby-plugin-image/package.json +++ b/packages/gatsby-plugin-image/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-image", - "version": "1.5.0-next.0", + "version": "1.5.0-next.1", "scripts": { "build": "npm-run-all -s clean -p build:*", "build:gatsby-node": "tsc --jsx react --downlevelIteration true --skipLibCheck true --esModuleInterop true --outDir dist/ src/gatsby-node.ts src/babel-plugin-parse-static-images.ts src/resolver-utils.ts src/types.d.ts -d --declarationDir dist/src", diff --git a/packages/gatsby-plugin-mdx/CHANGELOG.md b/packages/gatsby-plugin-mdx/CHANGELOG.md index caf8e919813fd..c8c5e8fe65054 100644 --- a/packages/gatsby-plugin-mdx/CHANGELOG.md +++ b/packages/gatsby-plugin-mdx/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-mdx@2.5.0-next.0...gatsby-plugin-mdx@2.5.0-next.1) (2021-05-05) + +### Bug Fixes + +- **gatsby-plugin-mdx:** Img w/ lessBabel option in src/pages not working ([#31210](https://github.com/gatsbyjs/gatsby/issues/31210)) ([b2ae4da](https://github.com/gatsbyjs/gatsby/commit/b2ae4da089d2783dc83738224f362e6f8fb44d0c)) + # [2.5.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-mdx@2.4.0-next.3...gatsby-plugin-mdx@2.5.0-next.0) (2021-04-23) ### Bug Fixes diff --git a/packages/gatsby-plugin-mdx/package.json b/packages/gatsby-plugin-mdx/package.json index 9273ed57bb8e5..b0af4ec837425 100644 --- a/packages/gatsby-plugin-mdx/package.json +++ b/packages/gatsby-plugin-mdx/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-mdx", - "version": "2.5.0-next.0", + "version": "2.5.0-next.1", "description": "MDX integration for Gatsby", "main": "index.js", "license": "MIT", diff --git a/packages/gatsby-plugin-netlify-cms/CHANGELOG.md b/packages/gatsby-plugin-netlify-cms/CHANGELOG.md index 196648f8eb948..f8cf39e390b49 100644 --- a/packages/gatsby-plugin-netlify-cms/CHANGELOG.md +++ b/packages/gatsby-plugin-netlify-cms/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.5.0-next.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-netlify-cms@5.5.0-next.1...gatsby-plugin-netlify-cms@5.5.0-next.2) (2021-05-05) + +### Bug Fixes + +- **gatsby-plugin-netlify-cms:** Fix typo in semver ([#31177](https://github.com/gatsbyjs/gatsby/issues/31177)) ([6a9b2a4](https://github.com/gatsbyjs/gatsby/commit/6a9b2a45d3c60d40d427c8d6517264fa6671bc80)) + # [5.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-netlify-cms@5.5.0-next.0...gatsby-plugin-netlify-cms@5.5.0-next.1) (2021-04-29) **Note:** Version bump only for package gatsby-plugin-netlify-cms diff --git a/packages/gatsby-plugin-netlify-cms/package.json b/packages/gatsby-plugin-netlify-cms/package.json index 362a42e083b33..11688fd5f9a34 100644 --- a/packages/gatsby-plugin-netlify-cms/package.json +++ b/packages/gatsby-plugin-netlify-cms/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-netlify-cms", "description": "A Gatsby plugin which generates the Netlify CMS single page app", - "version": "5.5.0-next.1", + "version": "5.5.0-next.2", "author": "Shawn Erquhart ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" diff --git a/packages/gatsby-plugin-page-creator/CHANGELOG.md b/packages/gatsby-plugin-page-creator/CHANGELOG.md index a2202e82ce8f4..5c99bed441bf1 100644 --- a/packages/gatsby-plugin-page-creator/CHANGELOG.md +++ b/packages/gatsby-plugin-page-creator/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-page-creator@3.5.0-next.0...gatsby-plugin-page-creator@3.5.0-next.1) (2021-05-05) + +**Note:** Version bump only for package gatsby-plugin-page-creator + # [3.5.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-page-creator@3.4.0-next.3...gatsby-plugin-page-creator@3.5.0-next.0) (2021-04-23) ### Bug Fixes diff --git a/packages/gatsby-plugin-page-creator/package.json b/packages/gatsby-plugin-page-creator/package.json index 236037a647342..0100b97912d6c 100644 --- a/packages/gatsby-plugin-page-creator/package.json +++ b/packages/gatsby-plugin-page-creator/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-page-creator", - "version": "3.5.0-next.0", + "version": "3.5.0-next.1", "description": "Gatsby plugin that automatically creates pages from React components in specified directories", "main": "index.js", "scripts": { @@ -30,7 +30,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.5.0-next.0", "gatsby-page-utils": "^1.5.0-next.0", - "gatsby-telemetry": "^2.5.0-next.0", + "gatsby-telemetry": "^2.5.0-next.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, diff --git a/packages/gatsby-plugin-sharp/CHANGELOG.md b/packages/gatsby-plugin-sharp/CHANGELOG.md index fb61f61c8a5cd..8793a286529d9 100644 --- a/packages/gatsby-plugin-sharp/CHANGELOG.md +++ b/packages/gatsby-plugin-sharp/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.5.0-next.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-sharp@3.5.0-next.1...gatsby-plugin-sharp@3.5.0-next.2) (2021-05-05) + +**Note:** Version bump only for package gatsby-plugin-sharp + # [3.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-plugin-sharp@3.5.0-next.0...gatsby-plugin-sharp@3.5.0-next.1) (2021-04-28) ### Bug Fixes diff --git a/packages/gatsby-plugin-sharp/package.json b/packages/gatsby-plugin-sharp/package.json index f292fd3b0ab33..894ceb83a11ee 100644 --- a/packages/gatsby-plugin-sharp/package.json +++ b/packages/gatsby-plugin-sharp/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-plugin-sharp", "description": "Wrapper of the Sharp image manipulation library for Gatsby plugins", - "version": "3.5.0-next.1", + "version": "3.5.0-next.2", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -13,7 +13,7 @@ "filenamify": "^4.2.0", "fs-extra": "^9.1.0", "gatsby-core-utils": "^2.5.0-next.0", - "gatsby-telemetry": "^2.5.0-next.0", + "gatsby-telemetry": "^2.5.0-next.1", "got": "^10.7.0", "imagemin": "^7.0.1", "imagemin-mozjpeg": "^9.0.0", @@ -34,7 +34,7 @@ "@types/sharp": "^0.27.1", "babel-preset-gatsby-package": "^1.5.0-next.0", "cross-env": "^7.0.3", - "gatsby-plugin-image": "^1.5.0-next.0", + "gatsby-plugin-image": "^1.5.0-next.1", "gatsby-plugin-utils": "^1.5.0-next.0" }, "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-sharp#readme", diff --git a/packages/gatsby-recipes/CHANGELOG.md b/packages/gatsby-recipes/CHANGELOG.md index 165b0041ebcaf..2a7621826fbc8 100644 --- a/packages/gatsby-recipes/CHANGELOG.md +++ b/packages/gatsby-recipes/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.16.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-recipes@0.16.0-next.0...gatsby-recipes@0.16.0-next.1) (2021-05-05) + +**Note:** Version bump only for package gatsby-recipes + # [0.16.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-recipes@0.15.0-next.3...gatsby-recipes@0.16.0-next.0) (2021-04-23) **Note:** Version bump only for package gatsby-recipes diff --git a/packages/gatsby-recipes/package.json b/packages/gatsby-recipes/package.json index b00edf000efc7..9f269d1af3fc7 100644 --- a/packages/gatsby-recipes/package.json +++ b/packages/gatsby-recipes/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-recipes", "description": "Core functionality for Gatsby Recipes", - "version": "0.16.0-next.0", + "version": "0.16.0-next.1", "author": "Kyle Mathews ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -31,7 +31,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.5.0-next.0", - "gatsby-telemetry": "^2.5.0-next.0", + "gatsby-telemetry": "^2.5.0-next.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", diff --git a/packages/gatsby-telemetry/CHANGELOG.md b/packages/gatsby-telemetry/CHANGELOG.md index 31f84af68cd01..42b0b1b6275ec 100644 --- a/packages/gatsby-telemetry/CHANGELOG.md +++ b/packages/gatsby-telemetry/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-telemetry@2.5.0-next.0...gatsby-telemetry@2.5.0-next.1) (2021-05-05) + +### Bug Fixes + +- **gatsby-telemetry:** Read installedGatsbyVersion correctly for workspaces ([#31196](https://github.com/gatsbyjs/gatsby/issues/31196)) ([af12b66](https://github.com/gatsbyjs/gatsby/commit/af12b660f1c4c6f8da2abc537bd07973b8bfd21a)) + # [2.5.0-next.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-telemetry@2.4.0-next.3...gatsby-telemetry@2.5.0-next.0) (2021-04-23) **Note:** Version bump only for package gatsby-telemetry diff --git a/packages/gatsby-telemetry/package.json b/packages/gatsby-telemetry/package.json index 9a9ffed4936d8..08ed3c5bca54d 100644 --- a/packages/gatsby-telemetry/package.json +++ b/packages/gatsby-telemetry/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-telemetry", "description": "Gatsby Telemetry", - "version": "2.5.0-next.0", + "version": "2.5.0-next.1", "author": "Jarmo Isotalo ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" diff --git a/packages/gatsby-transformer-sqip/CHANGELOG.md b/packages/gatsby-transformer-sqip/CHANGELOG.md index 769d59125c5ce..7cdb3cb2bf538 100644 --- a/packages/gatsby-transformer-sqip/CHANGELOG.md +++ b/packages/gatsby-transformer-sqip/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.5.0-next.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-sqip@3.5.0-next.1...gatsby-transformer-sqip@3.5.0-next.2) (2021-05-05) + +**Note:** Version bump only for package gatsby-transformer-sqip + # [3.5.0-next.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-sqip@3.5.0-next.0...gatsby-transformer-sqip@3.5.0-next.1) (2021-04-28) **Note:** Version bump only for package gatsby-transformer-sqip diff --git a/packages/gatsby-transformer-sqip/package.json b/packages/gatsby-transformer-sqip/package.json index f52db8e395bde..c4919d306f867 100644 --- a/packages/gatsby-transformer-sqip/package.json +++ b/packages/gatsby-transformer-sqip/package.json @@ -1,7 +1,7 @@ { "name": "gatsby-transformer-sqip", "description": "Generates geometric primitive version of images", - "version": "3.5.0-next.1", + "version": "3.5.0-next.2", "author": "Benedikt Rötsch ", "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" @@ -9,7 +9,7 @@ "dependencies": { "@babel/runtime": "^7.12.5", "fs-extra": "^8.1.0", - "gatsby-plugin-sharp": "^3.5.0-next.1", + "gatsby-plugin-sharp": "^3.5.0-next.2", "md5-file": "^5.0.0", "mini-svg-data-uri": "^1.2.3", "p-queue": "^6.6.2", diff --git a/packages/gatsby/CHANGELOG.md b/packages/gatsby/CHANGELOG.md index 7931bcf738619..c759ccac9535e 100644 --- a/packages/gatsby/CHANGELOG.md +++ b/packages/gatsby/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.5.0-next.4](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.5.0-next.3...gatsby@3.5.0-next.4) (2021-05-05) + +### Bug Fixes + +- **gatsby:** add generic type to GatsbyFunctionResponse ([#31182](https://github.com/gatsbyjs/gatsby/issues/31182)) ([4b9d0d4](https://github.com/gatsbyjs/gatsby/commit/4b9d0d4d4757d006ec385bb80f1db415a9636f63)) +- **gatsby:** rehydration issue in Dev404Page with DEV_SSR ([#30581](https://github.com/gatsbyjs/gatsby/issues/30581)) ([5005588](https://github.com/gatsbyjs/gatsby/commit/5005588c92101d8be19c23d9404bdd952ac3ed73)) +- **gatsby:** upgrade css-minimizer-webpack-plugin to v2 ([#31176](https://github.com/gatsbyjs/gatsby/issues/31176)) ([257de93](https://github.com/gatsbyjs/gatsby/commit/257de93a6e1caf46cbad4172ef342e928aa4b97e)) + +### Performance Improvements + +- **gatsby:** Create page object & SitePage node in same action creator ([#31104](https://github.com/gatsbyjs/gatsby/issues/31104)) ([d1005fa](https://github.com/gatsbyjs/gatsby/commit/d1005fae2fe273f26cc650137426369c4c84b067)), closes [#31236](https://github.com/gatsbyjs/gatsby/issues/31236) + # [3.5.0-next.3](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.5.0-next.2...gatsby@3.5.0-next.3) (2021-05-01) ### Bug Fixes diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 045507e40a248..5e46d79a64e62 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -1,7 +1,7 @@ { "name": "gatsby", "description": "Blazing fast modern site generator for React", - "version": "3.5.0-next.3", + "version": "3.5.0-next.4", "author": "Kyle Mathews ", "bin": { "gatsby": "./cli.js" @@ -78,16 +78,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.5.0-next.0", + "gatsby-cli": "^3.5.0-next.1", "gatsby-core-utils": "^2.5.0-next.0", "gatsby-graphiql-explorer": "^1.5.0-next.0", "gatsby-legacy-polyfills": "^1.5.0-next.0", "gatsby-link": "^3.5.0-next.0", - "gatsby-plugin-page-creator": "^3.5.0-next.0", + "gatsby-plugin-page-creator": "^3.5.0-next.1", "gatsby-plugin-typescript": "^3.5.0-next.0", "gatsby-plugin-utils": "^1.5.0-next.0", "gatsby-react-router-scroll": "^4.5.0-next.1", - "gatsby-telemetry": "^2.5.0-next.0", + "gatsby-telemetry": "^2.5.0-next.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", From 0c3e38642f693e3324e1711562e70d737eea2bd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 May 2021 11:12:06 +0200 Subject: [PATCH 17/45] fix(deps): update starters and examples - gatsby (#31238) Co-authored-by: Renovate Bot --- starters/blog/package-lock.json | 3082 ++++++---------- starters/blog/package.json | 4 +- starters/default/package-lock.json | 3100 ++++++----------- starters/default/package.json | 4 +- .../package-lock.json | 1932 ++-------- .../package.json | 2 +- .../package-lock.json | 1932 ++-------- .../gatsby-starter-blog-theme/package.json | 2 +- .../package-lock.json | 1003 +++--- .../gatsby-starter-mdx-basic/package.json | 4 +- starters/gatsby-starter-minimal/package.json | 2 +- .../package-lock.json | 2323 +++--------- .../gatsby-starter-notes-theme/package.json | 2 +- .../example/package.json | 2 +- .../gatsby-starter-theme/package-lock.json | 1932 ++-------- starters/gatsby-starter-theme/package.json | 2 +- .../package-lock.json | 1420 ++++---- .../package.json | 4 +- starters/hello-world/package-lock.json | 2645 ++++---------- starters/hello-world/package.json | 2 +- 20 files changed, 5601 insertions(+), 13798 deletions(-) diff --git a/starters/blog/package-lock.json b/starters/blog/package-lock.json index a4c797f11ecde..2931a259df74a 100644 --- a/starters/blog/package-lock.json +++ b/starters/blog/package-lock.json @@ -28,24 +28,24 @@ } }, "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" }, "@babel/core": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", - "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", + "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.0", "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -54,6 +54,50 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -144,14 +188,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz", + "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13" } }, @@ -246,18 +291,77 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", + "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/helper-optimise-call-expression": { @@ -340,13 +444,72 @@ } }, "@babel/helpers": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", - "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.17", - "@babel/types": "^7.13.17" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/highlight": { @@ -405,6 +568,15 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz", + "integrity": "sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.13.8", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", @@ -499,6 +671,17 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -524,6 +707,14 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -604,6 +795,14 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -647,9 +846,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "requires": { "@babel/helper-plugin-utils": "^7.13.0" } @@ -744,23 +943,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", + "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -777,11 +976,11 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" } }, @@ -968,17 +1167,18 @@ } }, "@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-class-static-block": "^7.13.11", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.13.8", @@ -989,9 +1189,11 @@ "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1001,14 +1203,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.17", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -1016,10 +1219,10 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.0", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", @@ -1035,7 +1238,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1043,6 +1246,20 @@ "semver": "^6.3.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -1094,18 +1311,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1151,366 +1368,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - } - } - }, "@endemolshinegroup/cosmiconfig-typescript-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", @@ -1600,20 +1457,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1628,23 +1485,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1669,9 +1526,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1693,12 +1550,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1707,9 +1564,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1723,9 +1580,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1763,9 +1620,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1798,9 +1655,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1815,19 +1672,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1842,23 +1699,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -1866,9 +1725,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1916,21 +1775,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2367,41 +2226,16 @@ "regenerator-runtime": "^0.13.3" } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/util": { "version": "2.0.0-next.8", "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -2713,11 +2547,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -2752,11 +2581,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -2781,9 +2605,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2821,11 +2645,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", @@ -2881,12 +2700,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -2906,26 +2725,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -2940,26 +2759,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -2978,18 +2797,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3134,6 +2953,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3199,17 +3026,17 @@ "integrity": "sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ==" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -3217,20 +3044,13 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" + "strip-ansi": "^5.1.0" } } } @@ -3451,9 +3271,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -3804,11 +3624,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -3840,14 +3655,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -3904,6 +3711,16 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3913,6 +3730,14 @@ "yallist": "^2.1.2" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -3953,6 +3778,16 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3962,6 +3797,14 @@ "yallist": "^2.1.2" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -3999,6 +3842,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -4073,6 +3929,11 @@ "trim-repeated": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", @@ -4100,6 +3961,11 @@ "requires": { "p-timeout": "^2.0.1" } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -4185,107 +4051,68 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "execa": "^0.7.0" + "has-flag": "^4.0.0" } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -4306,22 +4133,14 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "requires": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" } @@ -4375,11 +4194,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -4432,13 +4270,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -4584,19 +4415,18 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" } } }, @@ -4612,9 +4442,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001219", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", - "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==" + "version": "1.0.30001222", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz", + "integrity": "sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==" }, "caw": { "version": "2.0.1", @@ -4887,11 +4717,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4901,9 +4726,9 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", @@ -4960,6 +4785,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -4983,11 +4821,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5276,9 +5109,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -5364,16 +5197,16 @@ } }, "core-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", - "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", + "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==" }, "core-js-compat": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.1.tgz", - "integrity": "sha512-aZ0e4tmlG/aOBHj92/TuOuZwp6jFvn1WNabU5VOVixzhu5t5Ao+JZkQOPlgNXu6ynwLrwJxklT4Gw1G1VGEh+g==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz", + "integrity": "sha512-gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==", "requires": { - "browserslist": "^4.16.5", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -5385,9 +5218,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -5974,32 +5807,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6028,9 +5835,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -6045,22 +5852,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -6095,11 +5886,6 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6135,6 +5921,11 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6194,6 +5985,11 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6211,6 +6007,11 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6238,11 +6039,6 @@ "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6304,17 +6100,22 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -6362,11 +6163,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -6444,11 +6240,6 @@ "repeat-string": "^1.5.4" } }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -6560,11 +6351,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -6675,9 +6485,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -6712,6 +6522,11 @@ "trim-repeated": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "got": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", @@ -6733,6 +6548,16 @@ "url-to-options": "^1.0.1" } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -6798,9 +6623,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", - "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==" + "version": "1.3.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz", + "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==" }, "emoji-regex": { "version": "8.0.0", @@ -7123,9 +6948,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -7333,102 +7158,27 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" + "ms": "2.0.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "p-limit": "^1.1.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "p-try": { + "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "read-pkg-up": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -7535,11 +7285,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7650,14 +7395,19 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "events": { "version": "3.3.0", @@ -7698,27 +7448,6 @@ "which": "^2.0.1" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -7753,13 +7482,6 @@ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "requires": { "pify": "^2.2.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "exif-parser": { @@ -7990,11 +7712,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -8293,15 +8010,6 @@ "semver-regex": "^2.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -8429,11 +8137,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -8541,11 +8244,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -8601,9 +8299,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -8673,16 +8371,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -8704,7 +8402,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -8818,9 +8516,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -8836,8 +8534,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -8896,14 +8594,6 @@ "xdg-basedir": "^4.0.0" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "hosted-git-info": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", @@ -8912,19 +8602,6 @@ "lru-cache": "^6.0.0" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -9263,9 +8940,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -9273,7 +8950,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, @@ -9304,9 +8981,9 @@ } }, "gatsby-plugin-sharp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.4.0.tgz", - "integrity": "sha512-qIdW+5p0wv+Tr8lv87tRh39H8WZFyaR2yyXVrDDde7HUWUbfUbbR7+WzXzHC9X5VEWnZDC4g/66CLpKzOnV2tQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.4.1.tgz", + "integrity": "sha512-zPVe3s0NivQ8MwmujUUGZwyX1MhgBn3Zm0x8CtvLWEPGN9lqoqt+xKglkeRr7qmBEZJOMyge+viKPQyJPQOyDg==", "requires": { "@babel/runtime": "^7.12.5", "async": "^3.2.0", @@ -9314,7 +8991,7 @@ "filenamify": "^4.2.0", "fs-extra": "^9.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "got": "^10.7.0", "imagemin": "^7.0.1", "imagemin-mozjpeg": "^9.0.0", @@ -9426,14 +9103,6 @@ } } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "got": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", @@ -9494,9 +9163,9 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "p-cancelable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz", - "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "responselike": { "version": "2.0.0", @@ -9554,9 +9223,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -9582,7 +9251,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -9619,9 +9288,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -9908,9 +9577,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -9928,86 +9597,6 @@ "uuid": "3.4.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, "gatsby-core-utils": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.4.0.tgz", @@ -10022,32 +9611,6 @@ "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -10358,9 +9921,12 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } }, "get-value": { "version": "2.0.6", @@ -10550,6 +10116,11 @@ } } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", @@ -10605,11 +10176,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -10679,41 +10245,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -10733,6 +10268,13 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } } }, "handle-thing": { @@ -10740,11 +10282,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10814,13 +10351,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -10877,13 +10407,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "hast-to-hyperscript": { @@ -11167,6 +10690,13 @@ "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } } }, "http-proxy-middleware": { @@ -11251,11 +10781,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11287,11 +10812,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -11385,14 +10905,7 @@ "is-png": "^2.0.0", "is-stream": "^2.0.0", "ow": "^0.17.0", - "pngquant-bin": "^6.0.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } + "pngquant-bin": "^6.0.0" } }, "immer": { @@ -11690,9 +11203,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" }, "is-binary-path": { "version": "2.1.0", @@ -11948,9 +11461,9 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, "is-plain-object": { "version": "2.0.4", @@ -11958,13 +11471,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -12038,23 +11544,15 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -12133,9 +11631,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -12480,25 +11978,9 @@ "requires": { "error-ex": "^1.2.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -12630,11 +12112,6 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -12750,29 +12227,6 @@ "meow": "^3.3.0" }, "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -12780,120 +12234,6 @@ "requires": { "repeating": "^2.0.0" } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" } } }, @@ -12954,9 +12294,9 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "map-visit": { "version": "1.0.0", @@ -13249,40 +12589,94 @@ } }, "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" } } } @@ -13302,6 +12696,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13382,9 +12781,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -13449,9 +12848,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -13503,16 +12902,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -13578,11 +12967,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -13621,50 +13005,14 @@ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" } }, "multicast-dns": { @@ -13910,11 +13258,18 @@ } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + } } }, "npmlog": { @@ -14040,13 +13395,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -14098,13 +13446,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -14225,11 +13566,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "ow": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", @@ -14273,21 +13609,6 @@ } } }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -14653,9 +13974,9 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -16493,52 +15814,6 @@ "tunnel-agent": "^0.6.0" } }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -16764,11 +16039,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17088,42 +16358,77 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "readable-stream": { @@ -17162,12 +16467,30 @@ } }, "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + } } }, "redux": { @@ -18136,9 +17459,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -18491,109 +17814,9 @@ } }, "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.1.tgz", + "integrity": "sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==" }, "snapdragon": { "version": "0.8.2", @@ -18689,11 +17912,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -18824,6 +18042,13 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "requires": { "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + } } }, "sort-keys-length": { @@ -18834,6 +18059,11 @@ "sort-keys": "^1.0.0" }, "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -18892,41 +18122,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -19065,11 +18260,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -19158,14 +18348,6 @@ } } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -19479,6 +18661,28 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -19535,6 +18739,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -19907,9 +19116,9 @@ "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==" }, "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "trim-repeated": { "version": "1.0.0", @@ -19986,129 +19195,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -20249,13 +19335,6 @@ "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - } } }, "union-value": { @@ -20478,11 +19557,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -20517,26 +19591,6 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, "boxen": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", @@ -20552,33 +19606,10 @@ "wrap-ansi": "^7.0.0" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -20735,12 +19766,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -20794,23 +19822,15 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -20838,9 +19858,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -21233,11 +20253,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -21285,6 +20300,11 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -21562,15 +20582,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -21609,40 +20620,11 @@ } }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.0.0" } }, "wildcard": { diff --git a/starters/blog/package.json b/starters/blog/package.json index 28f015da7c587..3b9bc059e84de 100644 --- a/starters/blog/package.json +++ b/starters/blog/package.json @@ -8,7 +8,7 @@ "url": "https://github.com/gatsbyjs/gatsby/issues" }, "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-plugin-feed": "^3.4.0", "gatsby-plugin-gatsby-cloud": "^2.4.1", "gatsby-plugin-google-analytics": "^3.4.0", @@ -16,7 +16,7 @@ "gatsby-plugin-manifest": "^3.4.0", "gatsby-plugin-offline": "^4.4.0", "gatsby-plugin-react-helmet": "^4.4.0", - "gatsby-plugin-sharp": "^3.4.0", + "gatsby-plugin-sharp": "^3.4.1", "gatsby-remark-copy-linked-files": "^3.2.0", "gatsby-remark-images": "^4.2.0", "gatsby-remark-prismjs": "^4.2.0", diff --git a/starters/default/package-lock.json b/starters/default/package-lock.json index f4b064dac868a..890588f1f2390 100644 --- a/starters/default/package-lock.json +++ b/starters/default/package-lock.json @@ -28,24 +28,24 @@ } }, "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" }, "@babel/core": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", - "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", + "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.0", "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -54,6 +54,50 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -144,14 +188,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz", + "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13" } }, @@ -246,18 +291,77 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", + "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/helper-optimise-call-expression": { @@ -340,13 +444,72 @@ } }, "@babel/helpers": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", - "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.17", - "@babel/types": "^7.13.17" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/parser": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, "@babel/highlight": { @@ -405,6 +568,15 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz", + "integrity": "sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.13.8", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", @@ -499,6 +671,17 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -524,6 +707,14 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -604,6 +795,14 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -647,9 +846,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "requires": { "@babel/helper-plugin-utils": "^7.13.0" } @@ -744,23 +943,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", + "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -777,11 +976,11 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" } }, @@ -968,17 +1167,18 @@ } }, "@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-class-static-block": "^7.13.11", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.13.8", @@ -989,9 +1189,11 @@ "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1001,14 +1203,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.17", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -1016,10 +1219,10 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.0", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", @@ -1035,7 +1238,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1043,6 +1246,20 @@ "semver": "^6.3.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/types": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -1094,18 +1311,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1151,366 +1368,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - } - } - }, "@endemolshinegroup/cosmiconfig-typescript-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", @@ -1600,20 +1457,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1628,23 +1485,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1669,9 +1526,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1693,12 +1550,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1707,9 +1564,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1723,9 +1580,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1763,9 +1620,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1798,9 +1655,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1815,19 +1672,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1842,23 +1699,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -1866,9 +1725,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1916,21 +1775,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2367,41 +2226,16 @@ "regenerator-runtime": "^0.13.3" } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/util": { "version": "2.0.0-next.8", "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -2705,11 +2539,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -2744,11 +2573,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -2773,9 +2597,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2813,11 +2637,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", @@ -2855,12 +2674,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -2880,26 +2699,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -2914,26 +2733,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -2952,18 +2771,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3108,6 +2927,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3173,17 +3000,17 @@ "integrity": "sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ==" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -3191,20 +3018,13 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" + "strip-ansi": "^5.1.0" } } } @@ -3420,9 +3240,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -3756,11 +3576,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -3792,14 +3607,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -3856,6 +3663,16 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3865,6 +3682,14 @@ "yallist": "^2.1.2" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -3905,6 +3730,16 @@ "strip-eof": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -3914,6 +3749,14 @@ "yallist": "^2.1.2" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -3951,6 +3794,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -4025,6 +3881,11 @@ "trim-repeated": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", @@ -4052,6 +3913,11 @@ "requires": { "p-timeout": "^2.0.1" } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -4138,106 +4004,67 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "execa": "^0.7.0" + "has-flag": "^4.0.0" } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -4258,22 +4085,14 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "requires": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" } @@ -4327,11 +4146,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -4384,13 +4222,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -4536,19 +4367,18 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" } } }, @@ -4564,9 +4394,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001219", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", - "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==" + "version": "1.0.30001222", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz", + "integrity": "sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==" }, "caw": { "version": "2.0.1", @@ -4833,11 +4663,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4847,9 +4672,9 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", @@ -4895,6 +4720,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -4918,11 +4756,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5206,9 +5039,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -5294,16 +5127,16 @@ } }, "core-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", - "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", + "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==" }, "core-js-compat": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.1.tgz", - "integrity": "sha512-aZ0e4tmlG/aOBHj92/TuOuZwp6jFvn1WNabU5VOVixzhu5t5Ao+JZkQOPlgNXu6ynwLrwJxklT4Gw1G1VGEh+g==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz", + "integrity": "sha512-gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==", "requires": { - "browserslist": "^4.16.5", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -5315,9 +5148,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -5899,32 +5732,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -5953,9 +5760,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -5970,22 +5777,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -6020,11 +5811,6 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6060,6 +5846,11 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6119,6 +5910,11 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6136,6 +5932,11 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" } } }, @@ -6163,11 +5964,6 @@ "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -6229,17 +6025,22 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -6287,11 +6088,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -6355,11 +6151,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -6471,11 +6262,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -6586,9 +6396,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -6623,6 +6433,11 @@ "trim-repeated": "^1.0.0" } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "got": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", @@ -6644,6 +6459,16 @@ "url-to-options": "^1.0.1" } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -6709,9 +6534,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", - "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==" + "version": "1.3.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz", + "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==" }, "emoji-regex": { "version": "8.0.0", @@ -7034,9 +6859,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -7238,108 +7063,33 @@ "resolve": "^1.17.0", "tsconfig-paths": "^3.9.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "p-limit": "^1.1.0" + "ms": "2.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "pify": "^2.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "read-pkg-up": { + "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -7446,11 +7196,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7561,14 +7306,19 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "events": { "version": "3.3.0", @@ -7609,27 +7359,6 @@ "which": "^2.0.1" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -7664,13 +7393,6 @@ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "requires": { "pify": "^2.2.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "exif-parser": { @@ -7901,11 +7623,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -8204,15 +7921,6 @@ "semver-regex": "^2.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -8340,11 +8048,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -8452,11 +8155,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -8512,9 +8210,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -8584,16 +8282,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -8615,7 +8313,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -8729,9 +8427,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -8747,8 +8445,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -8792,14 +8490,6 @@ } } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "hosted-git-info": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", @@ -8808,19 +8498,6 @@ "lru-cache": "^6.0.0" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -9043,9 +8720,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -9053,7 +8730,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" } @@ -9067,9 +8744,9 @@ } }, "gatsby-plugin-sharp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.4.0.tgz", - "integrity": "sha512-qIdW+5p0wv+Tr8lv87tRh39H8WZFyaR2yyXVrDDde7HUWUbfUbbR7+WzXzHC9X5VEWnZDC4g/66CLpKzOnV2tQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-3.4.1.tgz", + "integrity": "sha512-zPVe3s0NivQ8MwmujUUGZwyX1MhgBn3Zm0x8CtvLWEPGN9lqoqt+xKglkeRr7qmBEZJOMyge+viKPQyJPQOyDg==", "requires": { "@babel/runtime": "^7.12.5", "async": "^3.2.0", @@ -9077,7 +8754,7 @@ "filenamify": "^4.2.0", "fs-extra": "^9.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "got": "^10.7.0", "imagemin": "^7.0.1", "imagemin-mozjpeg": "^9.0.0", @@ -9149,14 +8826,6 @@ "universalify": "^2.0.0" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "got": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", @@ -9217,9 +8886,9 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "p-cancelable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz", - "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "responselike": { "version": "2.0.0", @@ -9277,9 +8946,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -9305,7 +8974,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -9342,9 +9011,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -9428,9 +9097,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -9446,114 +9115,6 @@ "lodash": "^4.17.21", "node-fetch": "^2.6.1", "uuid": "3.4.0" - }, - "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - } } }, "gatsby-transformer-sharp": { @@ -9690,9 +9251,12 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } }, "get-value": { "version": "2.0.6", @@ -9858,6 +9422,11 @@ } } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", @@ -9913,11 +9482,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -9987,41 +9551,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gzip-size": { "version": "5.1.1", @@ -10030,6 +9563,13 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } } }, "handle-thing": { @@ -10037,11 +9577,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10111,13 +9646,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -10174,13 +9702,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "hex-color-regex": { @@ -10324,6 +9845,13 @@ "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } } }, "http-proxy-middleware": { @@ -10408,11 +9936,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -10444,11 +9967,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -10543,13 +10061,6 @@ "is-stream": "^2.0.0", "ow": "^0.17.0", "pngquant-bin": "^6.0.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "immer": { @@ -10847,9 +10358,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" }, "is-binary-path": { "version": "2.1.0", @@ -11105,9 +10616,9 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, "is-plain-object": { "version": "2.0.4", @@ -11115,13 +10626,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -11195,23 +10699,15 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -11290,9 +10786,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -11637,25 +11133,9 @@ "requires": { "error-ex": "^1.2.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -11782,11 +11262,6 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -11902,29 +11377,6 @@ "meow": "^3.3.0" }, "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -11932,120 +11384,6 @@ "requires": { "repeating": "^2.0.0" } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" } } }, @@ -12106,9 +11444,9 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "map-visit": { "version": "1.0.0", @@ -12299,40 +11637,94 @@ } }, "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" } } } @@ -12352,6 +11744,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -12432,9 +11829,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -12499,9 +11896,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -12553,16 +11950,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -12628,11 +12015,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -12667,54 +12049,18 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" } }, "multicast-dns": { @@ -12955,11 +12301,18 @@ } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + } } }, "npmlog": { @@ -13085,13 +12438,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -13143,13 +12489,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -13270,11 +12609,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "ow": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", @@ -13318,21 +12652,6 @@ } } }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -13667,9 +12986,9 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -15507,52 +14826,6 @@ "tunnel-agent": "^0.6.0" } }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -15762,11 +15035,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -16086,42 +15354,77 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "readable-stream": { @@ -16160,12 +15463,30 @@ } }, "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + } } }, "redux": { @@ -16695,9 +16016,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -17050,109 +16371,9 @@ } }, "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.1.tgz", + "integrity": "sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==" }, "snapdragon": { "version": "0.8.2", @@ -17248,11 +16469,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -17296,9 +16512,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.43.tgz", - "integrity": "sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ==" + "version": "14.14.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.44.tgz", + "integrity": "sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==" }, "debug": { "version": "4.3.1", @@ -17388,6 +16604,13 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "requires": { "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + } } }, "sort-keys-length": { @@ -17398,6 +16621,11 @@ "sort-keys": "^1.0.0" }, "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -17451,41 +16679,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -17624,11 +16817,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -17717,14 +16905,6 @@ } } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -18033,6 +17213,28 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -18089,6 +17291,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -18450,9 +17657,9 @@ "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "trim-repeated": { "version": "1.0.0", @@ -18529,129 +17736,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -18773,13 +17857,6 @@ "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - } } }, "union-value": { @@ -18946,11 +18023,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -18985,26 +18057,6 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, "boxen": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", @@ -19020,33 +18072,10 @@ "wrap-ansi": "^7.0.0" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -19203,12 +18232,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -19262,18 +18288,10 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -19301,9 +18319,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -19696,11 +18714,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -19748,6 +18761,11 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -20025,15 +19043,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -20072,40 +19081,11 @@ } }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.0.0" } }, "wildcard": { diff --git a/starters/default/package.json b/starters/default/package.json index f486dfe50dc02..579ba4104becb 100644 --- a/starters/default/package.json +++ b/starters/default/package.json @@ -5,13 +5,13 @@ "version": "0.1.0", "author": "Kyle Mathews ", "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-plugin-gatsby-cloud": "^2.4.1", "gatsby-plugin-image": "^1.4.0", "gatsby-plugin-manifest": "^3.4.0", "gatsby-plugin-offline": "^4.4.0", "gatsby-plugin-react-helmet": "^4.4.0", - "gatsby-plugin-sharp": "^3.4.0", + "gatsby-plugin-sharp": "^3.4.1", "gatsby-source-filesystem": "^3.4.0", "gatsby-transformer-sharp": "^3.4.0", "prop-types": "^15.7.2", diff --git a/starters/gatsby-starter-blog-theme-core/package-lock.json b/starters/gatsby-starter-blog-theme-core/package-lock.json index 0331651b41586..e8e38e75abb85 100644 --- a/starters/gatsby-starter-blog-theme-core/package-lock.json +++ b/starters/gatsby-starter-blog-theme-core/package-lock.json @@ -1094,18 +1094,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1152,564 +1152,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - } - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, - "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "requires": { - "string-width": "^2.1.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "@endemolshinegroup/cosmiconfig-typescript-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", @@ -1799,20 +1241,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1827,23 +1269,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1868,9 +1310,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1892,12 +1334,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1906,9 +1348,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1922,9 +1364,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1962,9 +1404,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1997,9 +1439,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2014,19 +1456,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2041,23 +1483,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -2065,9 +1509,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2115,21 +1559,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2566,36 +2010,6 @@ "regenerator-runtime": "^0.13.3" } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -2769,6 +2183,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -3088,11 +2507,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -3127,11 +2541,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -3161,9 +2570,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3201,11 +2610,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", @@ -3261,12 +2665,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -3286,26 +2690,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -3320,26 +2724,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3358,18 +2762,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3514,6 +2918,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3824,9 +3236,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -4165,11 +3577,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4201,14 +3608,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -4687,14 +4086,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz", @@ -4756,11 +4147,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -4813,13 +4223,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -5321,11 +4724,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5419,11 +4817,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5721,9 +5114,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -5830,9 +5223,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -6419,32 +5812,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6473,9 +5840,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -6490,15 +5857,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -6713,14 +6071,6 @@ } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -6768,11 +6118,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -6844,11 +6189,6 @@ "repeat-string": "^1.5.4" } }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -6960,11 +6300,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -7098,9 +6457,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -7561,9 +6920,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -7783,85 +7142,15 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -7968,11 +7257,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8091,9 +7375,14 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -8403,11 +7692,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -8706,15 +7990,6 @@ "semver-regex": "^2.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -8842,11 +8117,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -8954,11 +8224,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9014,9 +8279,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -9086,16 +8351,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -9117,7 +8382,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -9236,9 +8501,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -9254,8 +8519,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -9315,9 +8580,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -9636,9 +8901,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -9646,7 +8911,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, @@ -9667,9 +8932,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -9899,9 +9164,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -9927,7 +9192,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -9964,9 +9229,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -9997,9 +9262,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10017,11 +9282,6 @@ "uuid": "3.4.0" } }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -10739,11 +9999,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -10813,41 +10068,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -10881,11 +10105,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10955,13 +10174,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -11354,11 +10566,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11390,11 +10597,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -12064,13 +11266,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -12148,14 +11343,6 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -12242,9 +11429,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -12584,24 +11771,6 @@ } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -12750,11 +11919,6 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -13328,6 +12492,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13408,9 +12577,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -13475,9 +12644,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -13529,23 +12698,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -13611,11 +12763,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -13662,42 +12809,6 @@ "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } } }, "multicast-dns": { @@ -14080,13 +13191,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -14138,13 +13242,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -14265,11 +13362,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "ow": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", @@ -14313,21 +13405,6 @@ } } }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -16588,52 +15665,6 @@ "tunnel-agent": "^0.6.0" } }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -16645,9 +15676,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" }, "pretty-bytes": { "version": "5.6.0", @@ -16851,11 +15882,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17154,48 +16180,76 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -18123,9 +17177,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -18475,47 +17529,7 @@ "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -18526,21 +17540,6 @@ "color-convert": "^2.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -18553,59 +17552,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, + "slugify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", + "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -18723,11 +17677,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -18938,41 +17887,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -19111,11 +18025,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -19237,14 +18146,6 @@ } } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -19532,6 +18433,33 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -19604,6 +18532,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -20120,129 +19053,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -20600,11 +19410,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -20827,12 +19632,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -20886,23 +19688,15 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -20930,9 +19724,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -21294,11 +20088,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -21628,15 +20417,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/starters/gatsby-starter-blog-theme-core/package.json b/starters/gatsby-starter-blog-theme-core/package.json index fd0f0f26cd7f8..d51bf13b66ff1 100644 --- a/starters/gatsby-starter-blog-theme-core/package.json +++ b/starters/gatsby-starter-blog-theme-core/package.json @@ -11,7 +11,7 @@ "license": "0BSD", "dependencies": { "@mdx-js/react": "^1.6.22", - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-theme-blog-core": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-blog-theme/package-lock.json b/starters/gatsby-starter-blog-theme/package-lock.json index f336cb1769bb1..658056c00b675 100644 --- a/starters/gatsby-starter-blog-theme/package-lock.json +++ b/starters/gatsby-starter-blog-theme/package-lock.json @@ -1094,18 +1094,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1152,564 +1152,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - } - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, - "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "requires": { - "string-width": "^2.1.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "@emotion/babel-plugin": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz", @@ -1937,20 +1379,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1965,23 +1407,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2006,9 +1448,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2030,12 +1472,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -2044,9 +1486,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2060,9 +1502,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2100,9 +1542,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2135,9 +1577,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2152,19 +1594,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2179,23 +1621,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -2203,9 +1647,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2253,21 +1697,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2704,36 +2148,6 @@ "regenerator-runtime": "^0.13.3" } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -2907,6 +2321,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -3473,11 +2892,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -3512,11 +2926,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -3546,9 +2955,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3586,11 +2995,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/styled-system": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.11.tgz", @@ -3654,12 +3058,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -3679,26 +3083,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -3713,26 +3117,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3751,18 +3155,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3907,6 +3311,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -4217,9 +3629,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -4558,11 +3970,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4594,14 +4001,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -5080,14 +4479,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz", @@ -5149,11 +4540,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -5206,13 +4616,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -5714,11 +5117,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5812,11 +5210,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -6114,9 +5507,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -6223,9 +5616,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -6812,32 +6205,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6866,9 +6233,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -6883,15 +6250,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -7106,14 +6464,6 @@ } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -7161,11 +6511,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -7237,11 +6582,6 @@ "repeat-string": "^1.5.4" } }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -7353,11 +6693,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -7491,9 +6850,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -7954,9 +7313,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -8176,85 +7535,15 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -8361,11 +7650,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8484,9 +7768,14 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -8796,11 +8085,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -9104,15 +8388,6 @@ "semver-regex": "^2.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -9240,11 +8515,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9352,11 +8622,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9412,9 +8677,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -9484,16 +8749,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -9515,7 +8780,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -9634,9 +8899,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -9652,8 +8917,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -9721,9 +8986,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10092,9 +9357,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -10102,7 +9367,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, @@ -10123,9 +9388,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10376,9 +9641,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -10404,7 +9669,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -10441,9 +9706,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -10474,9 +9739,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10494,11 +9759,6 @@ "uuid": "3.4.0" } }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -11255,11 +10515,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -11329,41 +10584,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -11397,11 +10621,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -11471,13 +10690,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -11878,11 +11090,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11914,11 +11121,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -12588,13 +11790,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -12672,14 +11867,6 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -12766,9 +11953,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -13108,24 +12295,6 @@ } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -13274,11 +12443,6 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -13857,6 +13021,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13937,9 +13106,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -14004,9 +13173,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -14058,23 +13227,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -14140,11 +13292,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -14191,42 +13338,6 @@ "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } } }, "multicast-dns": { @@ -14609,13 +13720,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -14667,13 +13771,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -14794,11 +13891,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "ow": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", @@ -14842,21 +13934,6 @@ } } }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -17117,52 +16194,6 @@ "tunnel-agent": "^0.6.0" } }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17174,9 +16205,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" }, "pretty-bytes": { "version": "5.6.0", @@ -17385,11 +16416,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17709,48 +16735,76 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -18702,9 +17756,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -19054,47 +18108,7 @@ "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -19105,21 +18119,6 @@ "color-convert": "^2.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -19132,59 +18131,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, + "slugify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", + "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -19302,11 +18256,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -19517,41 +18466,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -19690,11 +18604,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -19816,14 +18725,6 @@ } } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -20136,6 +19037,33 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -20208,6 +19136,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -20822,129 +19755,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -21302,11 +20112,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -21529,12 +20334,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -21588,23 +20390,15 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -21632,9 +20426,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -21996,11 +20790,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -22330,15 +21119,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/starters/gatsby-starter-blog-theme/package.json b/starters/gatsby-starter-blog-theme/package.json index af7552684c25d..ed6fb861792a5 100644 --- a/starters/gatsby-starter-blog-theme/package.json +++ b/starters/gatsby-starter-blog-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-theme-blog": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/starters/gatsby-starter-mdx-basic/package-lock.json b/starters/gatsby-starter-mdx-basic/package-lock.json index 87d739fc15980..b9d21fb80004e 100644 --- a/starters/gatsby-starter-mdx-basic/package-lock.json +++ b/starters/gatsby-starter-mdx-basic/package-lock.json @@ -1801,9 +1801,9 @@ }, "dependencies": { "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" }, "@babel/helper-define-polyfill-provider": { "version": "0.2.0", @@ -1834,17 +1834,16 @@ "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -1875,12 +1874,29 @@ "@babel/helper-define-polyfill-provider": "^0.2.0" } }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "caniuse-lite": { + "version": "1.0.30001222", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz", + "integrity": "sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==" + }, "core-js-compat": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", - "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz", + "integrity": "sha512-gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==", "requires": { - "browserslist": "^4.16.3", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -1891,6 +1907,11 @@ } } }, + "electron-to-chromium": { + "version": "1.3.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz", + "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==" + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -2181,18 +2202,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", - "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.15.tgz", - "integrity": "sha512-gKEx9cfMLJegKYYVnI1/4swITcWQa2/e0HlAU9S/+h94xGdyXtoYVQiz8gcXabQ/8MMlOwGclkRoTL3cAxplZg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.10.4", @@ -2332,62 +2353,55 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz", - "integrity": "sha512-Yb4QRpHZqDk24+T4K3ARk/KFU26Dyl30XcbYeVvIrgIKcmeON/p3DfSeiB0+MaxYlsv+liQKvlxNbeC2hD31pA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", - "is-promise": "4.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/delegate": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.2.tgz", - "integrity": "sha512-XvmIod9ZYKMLk2vV5ulbUyo1Va4SCvvp/VNq4RTae2SEvYwNewc1xs1Klmz8khV+c2V30xKSccNWGA6BWyTTog==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.0", - "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", - "is-promise": "4.0.0", - "tslib": "~2.2.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "tslib": "~2.2.0" } }, "tslib": { @@ -2408,13 +2422,20 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + } } }, "tslib": { @@ -2425,12 +2446,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -2439,9 +2460,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2455,19 +2476,19 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2479,35 +2500,35 @@ } }, "@graphql-tools/load": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz", - "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz", + "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==", "requires": { - "@graphql-tools/merge": "^6.2.9", + "@graphql-tools/merge": "^6.2.12", "@graphql-tools/utils": "^7.5.0", - "globby": "11.0.2", + "globby": "11.0.3", "import-from": "3.0.0", "is-glob": "4.0.1", "p-limit": "3.1.0", - "tslib": "~2.1.0", + "tslib": "~2.2.0", "unixify": "1.0.0", "valid-url": "1.0.9" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2526,103 +2547,111 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/merge": { - "version": "6.2.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.11.tgz", - "integrity": "sha512-temQABWkDTZb/qJwcIdrEbyJ5WkhaWZQeYxiuxGqZWlIOoFkYfqzfAP2qKl2Ry+ZkN+Q/Yozr1/ap//xjpwAlA==", + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.13.tgz", + "integrity": "sha512-Qjlki0fp+bBQPinhdv7rv24eurvThZ5oIFvGMpLxMZplbw/ovJ2c6llwXr5PCuWAk9HGZsyM9NxxDgtTRfq3dQ==", "requires": { "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.7.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/schema": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", - "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/url-loader": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz", - "integrity": "sha512-YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", - "cross-fetch": "3.1.1", - "eventsource": "1.1.0", + "abort-controller": "3.0.0", + "cross-fetch": "3.1.4", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", - "graphql-ws": "4.2.2", + "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", - "tslib": "~2.1.0", + "tslib": "~2.2.0", "valid-url": "1.0.9", - "ws": "7.4.4" + "ws": "7.4.5" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2660,38 +2689,31 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz", - "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.0.7", - "@graphql-tools/schema": "^7.1.2", - "@graphql-tools/utils": "^7.2.1", - "is-promise": "4.0.0", - "tslib": "~2.0.1" + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -3299,6 +3321,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -3415,9 +3442,9 @@ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@sindresorhus/slugify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz", - "integrity": "sha512-ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", "requires": { "@sindresorhus/transliterate": "^0.1.1", "escape-string-regexp": "^4.0.0" @@ -3580,6 +3607,11 @@ "@types/istanbul-lib-report": "*" } }, + "@types/json-patch": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/json-patch/-/json-patch-0.0.30.tgz", + "integrity": "sha512-MhCUjojzDhVLnZnxwPwa+rETFRDQ0ffjxYdrqOP6TBO2O0/Z64PV5tNeYApo4bc4y4frbWOrRwv/eEkXlI13Rw==" + }, "@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -3612,9 +3644,9 @@ } }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, "@types/mkdirp": { "version": "0.5.2", @@ -3630,9 +3662,9 @@ "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==" }, "@types/node-fetch": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz", - "integrity": "sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==", + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.10.tgz", + "integrity": "sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -3679,9 +3711,9 @@ } }, "@types/react": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.3.tgz", - "integrity": "sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3997,6 +4029,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -4442,9 +4482,9 @@ } }, "axe-core": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.4.tgz", - "integrity": "sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.0.tgz", + "integrity": "sha512-1uIESzroqpaTzt9uX48HO+6gfnKu3RwvWdCcWSrX4csMInJfCo1yvKPNXCwXFRpJqRW25tiASb6No0YH57PXqg==" }, "axios": { "version": "0.21.1", @@ -4768,11 +4808,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5284,9 +5319,9 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5495,14 +5530,6 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, - "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "requires": { - "dicer": "0.3.0" - } - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -5570,13 +5597,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -6052,11 +6072,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -6455,10 +6470,11 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.14.0.tgz", - "integrity": "sha512-6i3lDp+1S+DZc7nv+dYGKqZ/GbhbiJakp4fS0zqCtuaQb+80k9+9a/DO1/M3QmS7t7urITYiwTVgQl8hvqAFFg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { + "@types/json-patch": "0.0.30", "axios": "^0.21.0", "contentful-sdk-core": "^6.7.0", "fast-copy": "^2.1.0", @@ -6586,9 +6602,9 @@ } }, "core-js-pure": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz", - "integrity": "sha512-PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -6685,9 +6701,9 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "cross-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz", - "integrity": "sha512-eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { "node-fetch": "2.6.1" } @@ -6954,9 +6970,9 @@ }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -6975,9 +6991,9 @@ } }, "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, "currently-unhandled": { "version": "0.4.1", @@ -7012,9 +7028,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.20.1.tgz", - "integrity": "sha512-8P5M8Kxbnovd0zfvOs7ipkiVJ3/zZQ0F/nrBW4x5E+I0uAZVZ80h6CKd24fSXQ5TLK5hXMtI4yb2O5rEZdUt2A==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "4.1.1", @@ -7340,11 +7356,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -7513,14 +7524,6 @@ } } }, - "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "requires": { - "streamsearch": "0.1.2" - } - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -7674,9 +7677,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -8052,24 +8055,33 @@ } }, "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + } } }, "es-to-primitive": { @@ -8596,9 +8608,14 @@ } }, "event-source-polyfill": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.22.tgz", - "integrity": "sha512-Fnk9E2p4rkZ3eJGBn2HDeZoBTpyjPxj8RX/whdr4Pm5622xYgYo1k48SUD649Xlo6nnoKRr2WwcUlneil/AZ8g==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -8611,11 +8628,11 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "requires": { - "original": "^1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -9128,9 +9145,9 @@ "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" }, "filenamify": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz", - "integrity": "sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "requires": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -9275,9 +9292,9 @@ } }, "follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", + "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==" }, "for-each": { "version": "0.3.3", @@ -9358,11 +9375,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9424,9 +9436,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "2.32.12", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.32.12.tgz", - "integrity": "sha512-CfaNIIoKbBVD+4Sao+PDnxc3nN02M//Jh8cK2rLqRtzFZ09dboUOmjsRW79gf4/zc4CV1gMV59TVrYfKolU5bA==", + "version": "2.32.13", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.32.13.tgz", + "integrity": "sha512-BYfiI/k+t8m/IzSkWZH8Cc0v7rJw6giSjG5sX25LWdfkQMqUvg/Gn6OC8BWwRPXnEwe7x0n5jbH+peO0p34ZHQ==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -9496,16 +9508,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^2.19.2", + "gatsby-cli": "^2.19.3", "gatsby-core-utils": "^1.10.1", "gatsby-graphiql-explorer": "^0.11.0", "gatsby-legacy-polyfills": "^0.7.1", "gatsby-link": "^2.11.0", - "gatsby-plugin-page-creator": "^2.10.1", + "gatsby-plugin-page-creator": "^2.10.2", "gatsby-plugin-typescript": "^2.12.1", "gatsby-plugin-utils": "^0.9.0", "gatsby-react-router-scroll": "^3.7.0", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^14.6.0", @@ -9585,22 +9597,21 @@ }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" }, "@babel/parser": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", - "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -9618,9 +9629,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9678,9 +9689,9 @@ } }, "gatsby-cli": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.19.2.tgz", - "integrity": "sha512-Z6y0MgYC07uLF1jBtcLoFJfD9iX+CeaNMbpet7qrolNjig8v5ukyttvn5GUAliwC4ifwCJpbURkXKPFicr0KrA==", + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.19.3.tgz", + "integrity": "sha512-3xXe4y6DazWNYE2JFyErI7BGlgQjY4rRL5OTFWHvs6ULw7fu0xgoWXxKsoAp6S2xosKSS4zRVA6O7dDHAdidiw==", "requires": { "@babel/code-frame": "^7.10.4", "@hapi/joi": "^15.1.1", @@ -9697,8 +9708,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-recipes": "^0.9.2", - "gatsby-telemetry": "^1.10.1", + "gatsby-recipes": "^0.9.3", + "gatsby-telemetry": "^1.10.2", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "lodash": "^4.17.20", @@ -10166,16 +10177,16 @@ } }, "gatsby-plugin-page-creator": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.1.tgz", - "integrity": "sha512-hNckbeemjTm0SFpellmwkgw5RkjaEiw31ekSesZgRkh+IrlB3HXfRtXRCXtEkVPbrnbOpHrSLgWrNmyM8KcI4w==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.2.tgz", + "integrity": "sha512-XkHSOgI4ZPA4XgadjGGFSp4eu51G8HXEVKG5gaef1/w0bcktw+aEwgEyb8VtL61NfIH2zXquyvrmwsil89nVCw==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.0", "chokidar": "^3.5.1", "fs-exists-cached": "^1.0.0", "gatsby-page-utils": "^0.9.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "globby": "^11.0.2", "lodash": "^4.17.20" }, @@ -10204,9 +10215,9 @@ } }, "gatsby-plugin-sharp": { - "version": "2.14.3", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.14.3.tgz", - "integrity": "sha512-cUzaRA9DE6VzUREStNIy3gFujUefwlPmqumHm8YJGJspW9x8jxNBTXh2kc7tR8GqINFXneoEY4ywnR1WiWB7fA==", + "version": "2.14.4", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.14.4.tgz", + "integrity": "sha512-Q4C+mKbF/sJv1oTEyPO5CLOS+cwziZoAxH35lSWVONRLinlv752QKR8gqVxfnON2HMjWw4OZ+hGQ0CmvFrj5Yg==", "requires": { "@babel/runtime": "^7.12.5", "async": "^3.2.0", @@ -10214,7 +10225,7 @@ "filenamify": "^4.2.0", "fs-extra": "^9.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "got": "^10.7.0", "imagemin": "^7.0.1", "imagemin-mozjpeg": "^9.0.0", @@ -10346,9 +10357,9 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "responselike": { "version": "2.0.0", @@ -10359,9 +10370,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } @@ -10414,9 +10425,9 @@ } }, "gatsby-recipes": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.2.tgz", - "integrity": "sha512-+jcVzYh7RUxvU1yxdUdUfp06nrwl8y/G9FUWC7izho/t65R3IYTJo2danTwxiva6jPRWLfjfolNwD7m1rQ1KRA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.3.tgz", + "integrity": "sha512-ToYeGCica4390QFWsW6+3DM6hhkpKifUEFoKDUdsQGw4rmD8aYndj5oASKIsvPAU0GUbxe8IDsDnP3V5iMtyEQ==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -10442,7 +10453,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "glob": "^7.1.6", "graphql": "^14.6.0", "graphql-compose": "^6.3.8", @@ -10479,28 +10490,27 @@ }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "ansi-regex": { @@ -10588,9 +10598,9 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" }, "unified": { "version": "8.4.2", @@ -10702,9 +10712,9 @@ } }, "gatsby-telemetry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.1.tgz", - "integrity": "sha512-iIXWHD6CSePzL77ZeBnWVRHKh9MxB8QaEf1eRUODH8uqK7GnyV34zJclSD4EIGVFWwd419MhrWqI1oE9iouskA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.2.tgz", + "integrity": "sha512-LwMtRIdcNuI25D+yU7RO+UcmF+3uPz0Zrefa+/rkTmxZuz54bOGSYqmzJJt1L1gRz7Jdl+DmYRqVgmiW/dsr/g==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -11189,41 +11199,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz", - "integrity": "sha512-b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -11277,6 +11256,11 @@ } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, "has-cors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", @@ -11318,13 +11302,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -11570,9 +11547,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, "hpack.js": { "version": "2.1.6", @@ -11803,11 +11780,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11937,9 +11909,9 @@ } }, "imagemin-pngquant": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz", - "integrity": "sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz", + "integrity": "sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==", "requires": { "execa": "^4.0.0", "is-png": "^2.0.0", @@ -12148,9 +12120,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12323,6 +12295,11 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -12331,6 +12308,14 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-buffer": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", @@ -12363,9 +12348,9 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", "requires": { "has": "^1.0.3" } @@ -12426,9 +12411,9 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extendable": { "version": "0.1.1", @@ -12540,6 +12525,11 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -12589,13 +12579,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -12757,9 +12740,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -13882,6 +13865,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13947,9 +13935,9 @@ }, "dependencies": { "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -13964,12 +13952,19 @@ } }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" + }, + "dependencies": { + "picomatch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" + } } }, "miller-rabin": { @@ -13994,16 +13989,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "requires": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" } }, "mimic-fn": { @@ -14672,9 +14667,9 @@ "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==" }, "object-is": { "version": "1.1.5", @@ -14701,13 +14696,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -14759,13 +14747,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -15247,9 +15228,12 @@ }, "dependencies": { "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } } } }, @@ -16117,13 +16101,11 @@ } }, "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", + "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", "requires": { "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", "util-deprecate": "^1.0.2" } }, @@ -16453,9 +16435,9 @@ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "query-string": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.0.tgz", - "integrity": "sha512-In3o+lUxlgejoVJgwEdYtdxrmlL0cQWJXj0+kkI7RWVo7hg5AhFtybeKlC9Dpgbr8eOC4ydpEh8017WwyfzqVQ==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", "requires": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -16479,9 +16461,9 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "randombytes": { "version": "2.1.0", @@ -17058,12 +17040,11 @@ } }, "redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz", + "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==", "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" + "@babel/runtime": "^7.9.2" } }, "redux-thunk": { @@ -17949,9 +17930,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -18445,11 +18426,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -18582,14 +18558,6 @@ "ms": "2.0.0" } }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "requires": { - "original": ">=0.0.5" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -18826,11 +18794,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", @@ -19041,11 +19004,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -19292,6 +19250,33 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -19325,24 +19310,6 @@ "util.promisify": "~1.0.0" }, "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, "util.promisify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", @@ -19889,6 +19856,24 @@ "is-typedarray": "^1.0.0" } }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + } + } + }, "unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -20158,11 +20143,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -20231,9 +20211,9 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -20473,6 +20453,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-promise": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -20709,12 +20694,6 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -20956,11 +20935,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -21280,6 +21254,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "requires": { + "original": "^1.0.0" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -21394,11 +21376,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -21758,6 +21735,18 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -21795,9 +21784,9 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -22064,9 +22053,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==" }, "x-is-string": { "version": "0.1.0", diff --git a/starters/gatsby-starter-mdx-basic/package.json b/starters/gatsby-starter-mdx-basic/package.json index cd516b9c31e2e..91f9ad420c33e 100644 --- a/starters/gatsby-starter-mdx-basic/package.json +++ b/starters/gatsby-starter-mdx-basic/package.json @@ -6,13 +6,13 @@ "dependencies": { "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", - "gatsby": "^2.32.12", + "gatsby": "^2.32.13", "gatsby-image": "^2.11.0", "gatsby-plugin-manifest": "^2.12.1", "gatsby-plugin-mdx": "^1.10.1", "gatsby-plugin-offline": "^3.10.2", "gatsby-plugin-react-helmet": "^3.10.0", - "gatsby-plugin-sharp": "^2.14.3", + "gatsby-plugin-sharp": "^2.14.4", "gatsby-source-filesystem": "^2.11.1", "gatsby-transformer-sharp": "^2.12.1", "prop-types": "^15.7.2", diff --git a/starters/gatsby-starter-minimal/package.json b/starters/gatsby-starter-minimal/package.json index 6eaf34890bef8..c2f3eb334ff27 100644 --- a/starters/gatsby-starter-minimal/package.json +++ b/starters/gatsby-starter-minimal/package.json @@ -16,7 +16,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "react": "^17.0.1", "react-dom": "^17.0.1" } diff --git a/starters/gatsby-starter-notes-theme/package-lock.json b/starters/gatsby-starter-notes-theme/package-lock.json index a104343f32f94..d4b572a986b82 100644 --- a/starters/gatsby-starter-notes-theme/package-lock.json +++ b/starters/gatsby-starter-notes-theme/package-lock.json @@ -1094,18 +1094,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1152,356 +1152,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "@emotion/babel-plugin": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz", @@ -1729,20 +1379,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1757,23 +1407,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1798,9 +1448,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1822,12 +1472,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1836,9 +1486,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1852,9 +1502,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1892,9 +1542,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1927,9 +1577,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1944,19 +1594,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1971,23 +1621,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -1995,9 +1647,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2045,21 +1697,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2168,36 +1820,6 @@ } } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -2371,6 +1993,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -2873,11 +2500,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -2912,11 +2534,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -2946,9 +2563,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2978,11 +2595,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/styled-system": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.11.tgz", @@ -3046,12 +2658,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -3071,26 +2683,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -3105,26 +2717,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3143,18 +2755,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3299,6 +2911,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -3364,17 +2984,17 @@ "integrity": "sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ==" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -3382,20 +3002,13 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" + "strip-ansi": "^5.1.0" } } } @@ -3548,9 +3161,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -3879,11 +3492,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -3915,14 +3523,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -4021,111 +3621,67 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "color-convert": "^2.0.1" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "get-stream": { + "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "execa": "^0.7.0" + "has-flag": "^4.0.0" } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -4146,14 +3702,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz", @@ -4186,11 +3734,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -4243,13 +3810,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -4367,23 +3927,6 @@ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -4645,11 +4188,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4659,9 +4197,9 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", @@ -4707,6 +4245,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -4730,11 +4281,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -5001,9 +4547,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -5110,9 +4656,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -5694,32 +5240,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -5740,9 +5260,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -5757,22 +5277,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -5844,17 +5348,22 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -5902,11 +5411,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5973,11 +5477,6 @@ "repeat-string": "^1.5.4" } }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-newline": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz", @@ -6084,11 +5583,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -6217,9 +5735,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "duplexer": { "version": "0.1.2", @@ -6562,9 +6080,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -6784,90 +6302,15 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -6974,11 +6417,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7097,9 +6535,14 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -7145,19 +6588,6 @@ "which": "^2.0.1" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -7387,11 +6817,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -7664,15 +7089,6 @@ "path-exists": "^4.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -7800,11 +7216,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7912,11 +7323,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", @@ -7967,9 +7373,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -8039,16 +7445,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -8070,7 +7476,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -8184,9 +7590,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -8202,8 +7608,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -8270,19 +7676,6 @@ "lru-cache": "^6.0.0" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -8579,9 +7972,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -8589,7 +7982,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, @@ -8655,9 +8048,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -8683,7 +8076,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -8720,9 +8113,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -8752,11 +8145,6 @@ "xdg-basedir": "^4.0.0" } }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -8826,9 +8214,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -8846,86 +8234,6 @@ "uuid": "3.4.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, "gatsby-core-utils": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.4.0.tgz", @@ -8940,32 +8248,6 @@ "tmp": "^0.2.1", "xdg-basedir": "^4.0.0" } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -9247,11 +8529,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -9321,41 +8598,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -9375,6 +8621,13 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } } }, "handle-thing": { @@ -9382,11 +8635,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9436,13 +8684,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -9499,13 +8740,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "hast-to-hyperscript": { @@ -9850,11 +9084,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9886,11 +9115,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -10214,9 +9438,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" }, "is-binary-path": { "version": "2.1.0", @@ -10491,13 +9715,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-present": { @@ -10569,23 +9786,15 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -10672,9 +9881,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -10967,25 +10176,9 @@ "requires": { "error-ex": "^1.2.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -11134,11 +10327,6 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -11263,11 +10451,6 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -11549,45 +10732,6 @@ } } }, - "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -11603,6 +10747,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -11683,9 +10832,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -11742,9 +10891,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -11791,23 +10940,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -11873,11 +11005,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -11887,64 +11014,28 @@ } }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" } }, "multicast-dns": { @@ -12134,11 +11225,18 @@ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + } } }, "nth-check": { @@ -12248,13 +11346,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -12306,13 +11397,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -12415,11 +11499,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -12430,21 +11509,6 @@ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -12800,9 +11864,9 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -14587,52 +13651,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -14644,9 +13662,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" }, "pretty-bytes": { "version": "5.6.0", @@ -14830,11 +13848,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -15141,42 +14154,77 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "readable-stream": { @@ -15214,15 +14262,6 @@ "minimatch": "3.0.4" } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, "redux": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz", @@ -15923,9 +14962,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -16218,129 +15257,29 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "color-convert": "^2.0.1" } }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, + "slugify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", + "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -16458,11 +15397,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -16650,41 +15584,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -16776,11 +15675,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -16879,14 +15773,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -17183,6 +16069,33 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -17255,6 +16168,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -17593,11 +16511,6 @@ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" - }, "trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", @@ -17665,129 +16578,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -18103,11 +16893,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -18142,26 +16927,6 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, "boxen": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", @@ -18177,33 +16942,10 @@ "wrap-ansi": "^7.0.0" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -18365,12 +17107,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -18424,23 +17163,15 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -18468,9 +17199,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -18832,11 +17563,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -18884,6 +17610,11 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -19161,50 +17892,12 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.0.0" } }, "wildcard": { diff --git a/starters/gatsby-starter-notes-theme/package.json b/starters/gatsby-starter-notes-theme/package.json index 1bcc084c9e179..f3b979d05185f 100644 --- a/starters/gatsby-starter-notes-theme/package.json +++ b/starters/gatsby-starter-notes-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-theme-notes": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-theme-workspace/example/package.json b/starters/gatsby-starter-theme-workspace/example/package.json index e2377a7a2ab7c..d57b0626a46af 100644 --- a/starters/gatsby-starter-theme-workspace/example/package.json +++ b/starters/gatsby-starter-theme-workspace/example/package.json @@ -9,7 +9,7 @@ "build": "gatsby build" }, "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-theme-minimal": "^1.0.0", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/starters/gatsby-starter-theme/package-lock.json b/starters/gatsby-starter-theme/package-lock.json index 0f2c167c6fee1..bba63d3512991 100644 --- a/starters/gatsby-starter-theme/package-lock.json +++ b/starters/gatsby-starter-theme/package-lock.json @@ -1094,18 +1094,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1152,564 +1152,6 @@ "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - } - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, - "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "requires": { - "string-width": "^2.1.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, "@emotion/babel-plugin": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz", @@ -1937,20 +1379,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1965,23 +1407,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2006,9 +1448,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2030,12 +1472,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -2044,9 +1486,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2060,9 +1502,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2100,9 +1542,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2135,9 +1577,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2152,19 +1594,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2179,23 +1621,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -2203,9 +1647,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2253,21 +1697,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2704,36 +2148,6 @@ "regenerator-runtime": "^0.13.3" } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -2907,6 +2321,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -3473,11 +2892,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -3512,11 +2926,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -3546,9 +2955,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3586,11 +2995,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/styled-system": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.11.tgz", @@ -3654,12 +3058,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -3679,26 +3083,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -3713,26 +3117,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3751,18 +3155,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -3907,6 +3311,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -4217,9 +3629,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -4558,11 +3970,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -4594,14 +4001,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -5080,14 +4479,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { "version": "4.16.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz", @@ -5149,11 +4540,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -5206,13 +4616,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -5714,11 +5117,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5812,11 +5210,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -6114,9 +5507,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -6223,9 +5616,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -6812,32 +6205,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6866,9 +6233,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -6883,15 +6250,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -7106,14 +6464,6 @@ } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -7161,11 +6511,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -7237,11 +6582,6 @@ "repeat-string": "^1.5.4" } }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -7353,11 +6693,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -7491,9 +6850,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -7954,9 +7313,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -8176,85 +7535,15 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -8361,11 +7650,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8484,9 +7768,14 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -8796,11 +8085,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -9104,15 +8388,6 @@ "semver-regex": "^2.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -9240,11 +8515,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -9352,11 +8622,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9412,9 +8677,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -9484,16 +8749,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -9515,7 +8780,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -9634,9 +8899,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -9652,8 +8917,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -9721,9 +8986,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10112,9 +9377,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -10122,7 +9387,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" }, @@ -10143,9 +9408,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10404,9 +9669,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -10432,7 +9697,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -10469,9 +9734,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -10502,9 +9767,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -10522,11 +9787,6 @@ "uuid": "3.4.0" } }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -11287,11 +10547,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -11361,41 +10616,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gray-matter": { "version": "4.0.2", @@ -11429,11 +10653,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -11503,13 +10722,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -11910,11 +11122,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11946,11 +11153,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -12634,13 +11836,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -12726,14 +11921,6 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -12825,9 +12012,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -13167,24 +12354,6 @@ } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -13333,11 +12502,6 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -13916,6 +13080,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -13996,9 +13165,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -14063,9 +13232,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -14117,23 +13286,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -14199,11 +13351,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -14250,42 +13397,6 @@ "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } } }, "multicast-dns": { @@ -14668,13 +13779,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -14726,13 +13830,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -14853,11 +13950,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "ow": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/ow/-/ow-0.17.0.tgz", @@ -14901,21 +13993,6 @@ } } }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -17176,52 +16253,6 @@ "tunnel-agent": "^0.6.0" } }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17233,9 +16264,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" }, "pretty-bytes": { "version": "5.6.0", @@ -17444,11 +16475,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -17776,48 +16802,76 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -18769,9 +17823,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -19121,47 +18175,7 @@ "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -19172,21 +18186,6 @@ "color-convert": "^2.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -19199,59 +18198,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, + "slugify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", + "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -19369,11 +18323,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -19584,41 +18533,6 @@ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -19757,11 +18671,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -19883,14 +18792,6 @@ } } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -20203,6 +19104,33 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -20275,6 +19203,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -20809,129 +19742,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -21289,11 +20099,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -21516,12 +20321,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -21575,23 +20377,15 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -21619,9 +20413,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -21983,11 +20777,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -22317,15 +21106,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", diff --git a/starters/gatsby-starter-theme/package.json b/starters/gatsby-starter-theme/package.json index 8396c2c41f574..d2771172150dc 100644 --- a/starters/gatsby-starter-theme/package.json +++ b/starters/gatsby-starter-theme/package.json @@ -10,7 +10,7 @@ }, "license": "0BSD", "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "gatsby-theme-blog": "^3.0.0", "gatsby-theme-notes": "^3.0.0", "react": "^17.0.2", diff --git a/starters/gatsby-starter-wordpress-blog/package-lock.json b/starters/gatsby-starter-wordpress-blog/package-lock.json index 2d4f6e8033d0a..3712b57bae32c 100644 --- a/starters/gatsby-starter-wordpress-blog/package-lock.json +++ b/starters/gatsby-starter-wordpress-blog/package-lock.json @@ -28,24 +28,24 @@ } }, "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" }, "@babel/core": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz", - "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", + "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.13", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.15", + "@babel/generator": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.14", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -62,23 +62,27 @@ "@babel/highlight": "^7.12.13" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -98,22 +102,26 @@ } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.14.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -127,13 +135,17 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -148,24 +160,28 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } } }, "@babel/helper-compilation-targets": { - "version": "7.13.13", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", - "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", "requires": { - "@babel/compat-data": "^7.13.12", + "@babel/compat-data": "^7.13.15", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -179,14 +195,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz", + "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13" } }, @@ -222,13 +239,17 @@ "@babel/types": "^7.13.12" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -255,13 +276,17 @@ "@babel/types": "^7.13.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -277,13 +302,17 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -297,34 +326,42 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } } }, "@babel/helper-hoist-variables": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", - "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", + "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", "requires": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -338,13 +375,17 @@ "@babel/types": "^7.13.12" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -359,18 +400,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", + "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" }, "dependencies": { "@babel/helper-module-imports": { @@ -381,13 +422,17 @@ "@babel/types": "^7.13.12" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -401,13 +446,17 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -428,13 +477,17 @@ "@babel/types": "^7.13.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -451,13 +504,17 @@ "@babel/types": "^7.13.12" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -471,13 +528,17 @@ "@babel/types": "^7.13.12" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -499,13 +560,17 @@ "@babel/types": "^7.12.13" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -532,35 +597,43 @@ "@babel/types": "^7.13.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } } }, "@babel/helpers": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", - "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -577,9 +650,9 @@ } }, "@babel/parser": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", - "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.13.12", @@ -610,6 +683,15 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz", + "integrity": "sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.13.8", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", @@ -704,6 +786,17 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -729,6 +822,14 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -809,6 +910,14 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -851,13 +960,17 @@ "@babel/types": "^7.13.12" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -872,11 +985,11 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", - "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-classes": { @@ -902,9 +1015,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", - "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", + "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", "requires": { "@babel/helper-plugin-utils": "^7.13.0" } @@ -969,23 +1082,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", + "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -1002,11 +1115,11 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" } }, @@ -1079,13 +1192,17 @@ "@babel/types": "^7.13.12" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } @@ -1145,13 +1262,17 @@ "@babel/types": "^7.13.12" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -1231,17 +1352,18 @@ } }, "@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-class-static-block": "^7.13.11", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.13.8", @@ -1252,9 +1374,11 @@ "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1264,14 +1388,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.17", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -1279,10 +1404,10 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.0", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", @@ -1298,7 +1423,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1306,13 +1431,17 @@ "semver": "^6.3.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -1367,18 +1496,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", - "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.15.tgz", - "integrity": "sha512-gKEx9cfMLJegKYYVnI1/4swITcWQa2/e0HlAU9S/+h94xGdyXtoYVQiz8gcXabQ/8MMlOwGclkRoTL3cAxplZg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1398,39 +1527,43 @@ "@babel/highlight": "^7.12.13" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } } } }, "@babel/traverse": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", - "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", + "@babel/generator": "^7.14.0", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.15", - "@babel/types": "^7.13.14", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1443,23 +1576,27 @@ "@babel/highlight": "^7.12.13" } }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -1642,62 +1779,55 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz", - "integrity": "sha512-Yb4QRpHZqDk24+T4K3ARk/KFU26Dyl30XcbYeVvIrgIKcmeON/p3DfSeiB0+MaxYlsv+liQKvlxNbeC2hD31pA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", - "is-promise": "4.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/delegate": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.2.tgz", - "integrity": "sha512-XvmIod9ZYKMLk2vV5ulbUyo1Va4SCvvp/VNq4RTae2SEvYwNewc1xs1Klmz8khV+c2V30xKSccNWGA6BWyTTog==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.0", - "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", - "is-promise": "4.0.0", - "tslib": "~2.2.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "tslib": "~2.2.0" } }, "tslib": { @@ -1718,13 +1848,20 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" + }, + "dependencies": { + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + } } }, "tslib": { @@ -1735,12 +1872,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1749,9 +1886,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1765,19 +1902,19 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1789,35 +1926,35 @@ } }, "@graphql-tools/load": { - "version": "6.2.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz", - "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz", + "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==", "requires": { - "@graphql-tools/merge": "^6.2.9", + "@graphql-tools/merge": "^6.2.12", "@graphql-tools/utils": "^7.5.0", - "globby": "11.0.2", + "globby": "11.0.3", "import-from": "3.0.0", "is-glob": "4.0.1", "p-limit": "3.1.0", - "tslib": "~2.1.0", + "tslib": "~2.2.0", "unixify": "1.0.0", "valid-url": "1.0.9" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -1836,108 +1973,111 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/merge": { - "version": "6.2.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.11.tgz", - "integrity": "sha512-temQABWkDTZb/qJwcIdrEbyJ5WkhaWZQeYxiuxGqZWlIOoFkYfqzfAP2qKl2Ry+ZkN+Q/Yozr1/ap//xjpwAlA==", + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.13.tgz", + "integrity": "sha512-Qjlki0fp+bBQPinhdv7rv24eurvThZ5oIFvGMpLxMZplbw/ovJ2c6llwXr5PCuWAk9HGZsyM9NxxDgtTRfq3dQ==", "requires": { "@graphql-tools/schema": "^7.0.0", "@graphql-tools/utils": "^7.7.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/schema": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", - "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, "@graphql-tools/url-loader": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz", - "integrity": "sha512-YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", - "cross-fetch": "3.1.1", - "eventsource": "1.1.0", + "abort-controller": "3.0.0", + "cross-fetch": "3.1.4", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", - "graphql-ws": "4.2.2", + "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", - "tslib": "~2.1.0", + "tslib": "~2.2.0", "valid-url": "1.0.9", - "ws": "7.4.4" + "ws": "7.4.5" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==" } } }, @@ -1975,38 +2115,31 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz", - "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.0.7", - "@graphql-tools/schema": "^7.1.2", - "@graphql-tools/utils": "^7.2.1", - "is-promise": "4.0.0", - "tslib": "~2.0.1" + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", + "tslib": "~2.2.0", + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "tslib": "~2.2.0" } }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -2443,6 +2576,11 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -2606,9 +2744,9 @@ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@sindresorhus/slugify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz", - "integrity": "sha512-ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", "requires": { "@sindresorhus/transliterate": "^0.1.1", "escape-string-regexp": "^4.0.0" @@ -2826,6 +2964,11 @@ "@types/istanbul-lib-report": "*" } }, + "@types/json-patch": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/json-patch/-/json-patch-0.0.30.tgz", + "integrity": "sha512-MhCUjojzDhVLnZnxwPwa+rETFRDQ0ffjxYdrqOP6TBO2O0/Z64PV5tNeYApo4bc4y4frbWOrRwv/eEkXlI13Rw==" + }, "@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -2850,9 +2993,9 @@ "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, "@types/mkdirp": { "version": "0.5.2", @@ -2868,9 +3011,9 @@ "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==" }, "@types/node-fetch": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz", - "integrity": "sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==", + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.10.tgz", + "integrity": "sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -4297,6 +4440,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -4944,9 +5095,9 @@ "integrity": "sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA==" }, "axe-core": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.4.tgz", - "integrity": "sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.0.tgz", + "integrity": "sha512-1uIESzroqpaTzt9uX48HO+6gfnKu3RwvWdCcWSrX4csMInJfCo1yvKPNXCwXFRpJqRW25tiASb6No0YH57PXqg==" }, "axios": { "version": "0.21.1", @@ -5296,11 +5447,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5839,9 +5985,9 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5981,15 +6127,15 @@ } }, "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "node-releases": "^1.1.71" } }, "btoa": { @@ -6055,14 +6201,6 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, - "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "requires": { - "dicer": "0.3.0" - } - }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -6130,13 +6268,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -6322,9 +6453,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001208", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", - "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==" + "version": "1.0.30001222", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz", + "integrity": "sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==" }, "caw": { "version": "2.0.1", @@ -6571,11 +6702,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -7080,10 +7206,11 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.14.0.tgz", - "integrity": "sha512-6i3lDp+1S+DZc7nv+dYGKqZ/GbhbiJakp4fS0zqCtuaQb+80k9+9a/DO1/M3QmS7t7urITYiwTVgQl8hvqAFFg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { + "@types/json-patch": "0.0.30", "axios": "^0.21.0", "contentful-sdk-core": "^6.7.0", "fast-copy": "^2.1.0", @@ -7308,16 +7435,16 @@ } }, "core-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.10.1.tgz", - "integrity": "sha512-pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", + "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==" }, "core-js-compat": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", - "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz", + "integrity": "sha512-gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==", "requires": { - "browserslist": "^4.16.3", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -7329,9 +7456,9 @@ } }, "core-js-pure": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz", - "integrity": "sha512-PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -7439,9 +7566,9 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "cross-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz", - "integrity": "sha512-eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { "node-fetch": "2.6.1" } @@ -7811,9 +7938,9 @@ }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -7874,9 +8001,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.20.1.tgz", - "integrity": "sha512-8P5M8Kxbnovd0zfvOs7ipkiVJ3/zZQ0F/nrBW4x5E+I0uAZVZ80h6CKd24fSXQ5TLK5hXMtI4yb2O5rEZdUt2A==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -8216,11 +8343,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -8378,14 +8500,6 @@ } } }, - "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "requires": { - "streamsearch": "0.1.2" - } - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -8534,9 +8648,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "download": { "version": "6.2.5", @@ -8754,9 +8868,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.711", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.711.tgz", - "integrity": "sha512-XbklBVCDiUeho0PZQCjC25Ha6uBwqqJeyDhPLwLwfWRAo4x+FZFsmu1pPPkXT+B4MQMQoQULfyaMltDopfeiHQ==" + "version": "1.3.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz", + "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==" }, "elliptic": { "version": "6.5.4", @@ -9599,9 +9713,14 @@ } }, "event-source-polyfill": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.22.tgz", - "integrity": "sha512-Fnk9E2p4rkZ3eJGBn2HDeZoBTpyjPxj8RX/whdr4Pm5622xYgYo1k48SUD649Xlo6nnoKRr2WwcUlneil/AZ8g==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { "version": "4.0.7", @@ -9614,11 +9733,11 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "requires": { - "original": "^1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -10175,9 +10294,9 @@ "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" }, "filenamify": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz", - "integrity": "sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "requires": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", @@ -10440,11 +10559,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -10580,9 +10694,9 @@ "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==" }, "gatsby": { - "version": "2.32.12", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.32.12.tgz", - "integrity": "sha512-CfaNIIoKbBVD+4Sao+PDnxc3nN02M//Jh8cK2rLqRtzFZ09dboUOmjsRW79gf4/zc4CV1gMV59TVrYfKolU5bA==", + "version": "2.32.13", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.32.13.tgz", + "integrity": "sha512-BYfiI/k+t8m/IzSkWZH8Cc0v7rJw6giSjG5sX25LWdfkQMqUvg/Gn6OC8BWwRPXnEwe7x0n5jbH+peO0p34ZHQ==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -10652,16 +10766,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^2.19.2", + "gatsby-cli": "^2.19.3", "gatsby-core-utils": "^1.10.1", "gatsby-graphiql-explorer": "^0.11.0", "gatsby-legacy-polyfills": "^0.7.1", "gatsby-link": "^2.11.0", - "gatsby-plugin-page-creator": "^2.10.1", + "gatsby-plugin-page-creator": "^2.10.2", "gatsby-plugin-typescript": "^2.12.1", "gatsby-plugin-utils": "^0.9.0", "gatsby-react-router-scroll": "^3.7.0", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^14.6.0", @@ -10754,9 +10868,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10820,9 +10934,9 @@ } }, "gatsby-cli": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.19.2.tgz", - "integrity": "sha512-Z6y0MgYC07uLF1jBtcLoFJfD9iX+CeaNMbpet7qrolNjig8v5ukyttvn5GUAliwC4ifwCJpbURkXKPFicr0KrA==", + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.19.3.tgz", + "integrity": "sha512-3xXe4y6DazWNYE2JFyErI7BGlgQjY4rRL5OTFWHvs6ULw7fu0xgoWXxKsoAp6S2xosKSS4zRVA6O7dDHAdidiw==", "requires": { "@babel/code-frame": "^7.10.4", "@hapi/joi": "^15.1.1", @@ -10839,8 +10953,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-recipes": "^0.9.2", - "gatsby-telemetry": "^1.10.1", + "gatsby-recipes": "^0.9.3", + "gatsby-telemetry": "^1.10.2", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "lodash": "^4.17.20", @@ -11208,16 +11322,16 @@ } }, "gatsby-plugin-page-creator": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.1.tgz", - "integrity": "sha512-hNckbeemjTm0SFpellmwkgw5RkjaEiw31ekSesZgRkh+IrlB3HXfRtXRCXtEkVPbrnbOpHrSLgWrNmyM8KcI4w==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.10.2.tgz", + "integrity": "sha512-XkHSOgI4ZPA4XgadjGGFSp4eu51G8HXEVKG5gaef1/w0bcktw+aEwgEyb8VtL61NfIH2zXquyvrmwsil89nVCw==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.0", "chokidar": "^3.5.1", "fs-exists-cached": "^1.0.0", "gatsby-page-utils": "^0.9.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "globby": "^11.0.2", "lodash": "^4.17.20" }, @@ -11246,9 +11360,9 @@ } }, "gatsby-plugin-sharp": { - "version": "2.14.3", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.14.3.tgz", - "integrity": "sha512-cUzaRA9DE6VzUREStNIy3gFujUefwlPmqumHm8YJGJspW9x8jxNBTXh2kc7tR8GqINFXneoEY4ywnR1WiWB7fA==", + "version": "2.14.4", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.14.4.tgz", + "integrity": "sha512-Q4C+mKbF/sJv1oTEyPO5CLOS+cwziZoAxH35lSWVONRLinlv752QKR8gqVxfnON2HMjWw4OZ+hGQ0CmvFrj5Yg==", "requires": { "@babel/runtime": "^7.12.5", "async": "^3.2.0", @@ -11256,7 +11370,7 @@ "filenamify": "^4.2.0", "fs-extra": "^9.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "got": "^10.7.0", "imagemin": "^7.0.1", "imagemin-mozjpeg": "^9.0.0", @@ -11427,9 +11541,9 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "responselike": { "version": "2.0.0", @@ -11492,9 +11606,9 @@ } }, "gatsby-recipes": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.2.tgz", - "integrity": "sha512-+jcVzYh7RUxvU1yxdUdUfp06nrwl8y/G9FUWC7izho/t65R3IYTJo2danTwxiva6jPRWLfjfolNwD7m1rQ1KRA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.3.tgz", + "integrity": "sha512-ToYeGCica4390QFWsW6+3DM6hhkpKifUEFoKDUdsQGw4rmD8aYndj5oASKIsvPAU0GUbxe8IDsDnP3V5iMtyEQ==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -11520,7 +11634,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^1.10.1", - "gatsby-telemetry": "^1.10.1", + "gatsby-telemetry": "^1.10.2", "glob": "^7.1.6", "graphql": "^14.6.0", "graphql-compose": "^6.3.8", @@ -11557,13 +11671,13 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-SFT4/dTfrwWer1wSOLU+jqgv3oa/xTR8q+MiNbE9nCH2FXyMsqIOaXKm9wHfKIWFWHozqBdcnwFkQZrdD7H2TQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", - "tslib": "~2.1.0" + "tslib": "~2.2.0" } }, "ansi-regex": { @@ -11612,9 +11726,9 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" }, "uuid": { "version": "3.4.0", @@ -11967,9 +12081,9 @@ } }, "gatsby-telemetry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.1.tgz", - "integrity": "sha512-iIXWHD6CSePzL77ZeBnWVRHKh9MxB8QaEf1eRUODH8uqK7GnyV34zJclSD4EIGVFWwd419MhrWqI1oE9iouskA==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.10.2.tgz", + "integrity": "sha512-LwMtRIdcNuI25D+yU7RO+UcmF+3uPz0Zrefa+/rkTmxZuz54bOGSYqmzJJt1L1gRz7Jdl+DmYRqVgmiW/dsr/g==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -12491,41 +12605,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz", - "integrity": "sha512-b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gud": { "version": "1.0.0", @@ -12614,13 +12697,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -12787,9 +12863,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, "hpack.js": { "version": "2.1.6", @@ -13041,11 +13117,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -13167,9 +13238,9 @@ } }, "imagemin-pngquant": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.1.tgz", - "integrity": "sha512-PYyo9G/xwddf+Qqlqe3onz5ZH7p6vHYVVkiuuczUjxZmfekyY77RXaOA/AR6FnVoeQxGa/pDtEK5xUKOcVo+sA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz", + "integrity": "sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg==", "requires": { "execa": "^4.0.0", "is-png": "^2.0.0", @@ -13515,9 +13586,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -13964,13 +14035,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-png": { @@ -14129,9 +14193,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -15117,6 +15181,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -15192,9 +15261,9 @@ }, "dependencies": { "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -15209,12 +15278,19 @@ } }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" + }, + "dependencies": { + "picomatch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" + } } }, "miller-rabin": { @@ -15239,16 +15315,16 @@ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==" }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "requires": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" } }, "mimic-fn": { @@ -15978,13 +16054,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -16112,24 +16181,59 @@ }, "dependencies": { "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } } } @@ -16140,13 +16244,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -16612,9 +16709,12 @@ }, "dependencies": { "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } } } }, @@ -17988,13 +18088,11 @@ } }, "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", + "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", "requires": { "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", "util-deprecate": "^1.0.2" } }, @@ -18368,9 +18466,9 @@ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "query-string": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.0.tgz", - "integrity": "sha512-In3o+lUxlgejoVJgwEdYtdxrmlL0cQWJXj0+kkI7RWVo7hg5AhFtybeKlC9Dpgbr8eOC4ydpEh8017WwyfzqVQ==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", "requires": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -18394,9 +18492,9 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-lru": { "version": "5.1.1", @@ -19853,9 +19951,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -20224,9 +20322,9 @@ } }, "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.1.tgz", + "integrity": "sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==" }, "snapdragon": { "version": "0.8.2", @@ -20317,11 +20415,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -20461,14 +20554,6 @@ "ms": "2.0.0" } }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "requires": { - "original": ">=0.0.5" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -20713,11 +20798,6 @@ } } }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", @@ -20925,11 +21005,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, "strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", @@ -21274,6 +21349,33 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -22102,11 +22204,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -22175,9 +22272,9 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -22451,6 +22548,11 @@ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, + "value-or-promise": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -22686,12 +22788,6 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "optional": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -22931,11 +23027,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -23211,6 +23302,14 @@ "rimraf": "^2.6.3" } }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "requires": { + "original": "^1.0.0" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -23317,11 +23416,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", diff --git a/starters/gatsby-starter-wordpress-blog/package.json b/starters/gatsby-starter-wordpress-blog/package.json index dcfa394b36270..9ebf91b0b576f 100644 --- a/starters/gatsby-starter-wordpress-blog/package.json +++ b/starters/gatsby-starter-wordpress-blog/package.json @@ -9,12 +9,12 @@ }, "dependencies": { "@wordpress/block-library": "^2.29.2", - "gatsby": "^2.32.12", + "gatsby": "^2.32.13", "gatsby-image": "^2.11.0", "gatsby-plugin-manifest": "^2.12.1", "gatsby-plugin-offline": "^3.10.2", "gatsby-plugin-react-helmet": "^3.10.0", - "gatsby-plugin-sharp": "^2.14.3", + "gatsby-plugin-sharp": "^2.14.4", "gatsby-source-wordpress-experimental": "^7.0.6", "gatsby-transformer-sharp": "^2.12.1", "html-react-parser": "^0.14.3", diff --git a/starters/hello-world/package-lock.json b/starters/hello-world/package-lock.json index ac2c62bc814d4..fc2d490de6ca3 100644 --- a/starters/hello-world/package-lock.json +++ b/starters/hello-world/package-lock.json @@ -28,24 +28,24 @@ } }, "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" }, "@babel/core": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", - "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", + "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.0", "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -92,11 +92,11 @@ } }, "@babel/generator": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", - "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", "requires": { - "@babel/types": "^7.13.16", + "@babel/types": "^7.14.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -144,14 +144,15 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz", + "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==", "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13" } }, @@ -246,18 +247,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", + "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" } }, "@babel/helper-optimise-call-expression": { @@ -319,9 +320,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" }, "@babel/helper-validator-option": { "version": "7.12.17", @@ -340,21 +341,21 @@ } }, "@babel/helpers": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", - "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.17", - "@babel/types": "^7.13.17" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -372,9 +373,9 @@ } }, "@babel/parser": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", - "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", + "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.13.12", @@ -405,6 +406,15 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz", + "integrity": "sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.13.8", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", @@ -499,6 +509,17 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -524,6 +545,14 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -604,6 +633,14 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -647,9 +684,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", + "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", "requires": { "@babel/helper-plugin-utils": "^7.13.0" } @@ -744,23 +781,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", + "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -777,11 +814,11 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" } }, @@ -968,17 +1005,18 @@ } }, "@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", + "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-class-static-block": "^7.13.11", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", "@babel/plugin-proposal-json-strings": "^7.13.8", @@ -989,9 +1027,11 @@ "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1001,14 +1041,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.14.1", "@babel/plugin-transform-classes": "^7.13.0", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.17", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -1016,10 +1057,10 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.0", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", @@ -1035,7 +1076,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.1", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1086,26 +1127,26 @@ } }, "@babel/runtime": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz", - "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz", - "integrity": "sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/standalone": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz", - "integrity": "sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==" + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.14.1.tgz", + "integrity": "sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw==" }, "@babel/template": { "version": "7.12.13", @@ -1118,16 +1159,16 @@ } }, "@babel/traverse": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz", - "integrity": "sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.0", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.16", - "@babel/types": "^7.13.17", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1143,374 +1184,14 @@ } }, "@babel/types": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz", - "integrity": "sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==", + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", + "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, - "@changesets/apply-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-5.0.0.tgz", - "integrity": "sha512-SE+5nPNSKUyUociPnAvnjYSVF+diciEhX9ZHSqKWMlydswCDjiaq9gz67qwWCmwgEgEOz0TS7VrQBoOlzbitvA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/config": "^1.6.0", - "@changesets/get-version-range-type": "^0.3.2", - "@changesets/git": "^1.1.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "detect-indent": "^6.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^1.19.1", - "resolve-from": "^5.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/assemble-release-plan": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.0.0.tgz", - "integrity": "sha512-LElDXTCBUkPSmdXlCisoUWw2paX48snatBmw/hKnGiSvnyZqdTIylLojAGQWG0/vOO9v3s/DvJ4hdagIquxJjg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/cli": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.16.0.tgz", - "integrity": "sha512-VFkXSyyk/WRjjUoBI7g7cDy09qBjPbBQOloPMEshTzMo/NY9muWHl2yB/FSSkV/6PxGimPtJ7aEJPYfk8HCfXw==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/apply-release-plan": "^5.0.0", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/get-release-plan": "^3.0.0", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@changesets/write": "^0.1.4", - "@manypkg/get-packages": "^1.0.1", - "@types/semver": "^6.0.0", - "boxen": "^1.3.0", - "chalk": "^2.1.0", - "enquirer": "^2.3.0", - "external-editor": "^3.1.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "is-ci": "^2.0.0", - "meow": "^6.0.0", - "outdent": "^0.5.0", - "p-limit": "^2.2.0", - "preferred-pm": "^3.0.0", - "semver": "^5.4.1", - "spawndamnit": "^2.0.0", - "term-size": "^2.1.0", - "tty-table": "^2.8.10" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/config": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-1.6.0.tgz", - "integrity": "sha512-vMY/OpMFSDC2crDKb5Nq2kMX9hozcXL4dY5Rr+a1JQ044Rz+jqjJPpdTP2yQ+j7qmeGcUTvwjJoEMeekYwfqhg==", - "requires": { - "@changesets/errors": "^0.1.4", - "@changesets/get-dependents-graph": "^1.2.1", - "@changesets/logger": "^0.0.5", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1", - "micromatch": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/errors": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", - "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", - "requires": { - "extendable-error": "^0.1.5" - } - }, - "@changesets/get-dependents-graph": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.2.1.tgz", - "integrity": "sha512-vJOibo9SkqhVbgfq5AHIlQ7tzkYQIXh3tPAnlNLy2bPZsU+SByd74GaxHYWt1zOBlncU25WKrIM6J7XBB+GVUg==", - "requires": { - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "semver": "^5.4.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@changesets/get-release-plan": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.0.tgz", - "integrity": "sha512-7VLiqpcWZyjwIXYgkubBC/9cdwqUJEhLMRT9/Y9+ctHqrpsXmJg15QQPTOh3HT9yGN5fJPL1WwuZkc1HXUhK0g==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/assemble-release-plan": "^5.0.0", - "@changesets/config": "^1.6.0", - "@changesets/pre": "^1.0.6", - "@changesets/read": "^0.4.7", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1" - } - }, - "@changesets/get-version-range-type": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", - "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" - }, - "@changesets/git": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-1.1.1.tgz", - "integrity": "sha512-Z12TcKwgU33YE3r76cyU+X81RchOXljDZ5s3G2u0Zd+ODyrwlDb91IO55+6R0Ha6ouPz8ioont0gA70c1RFngg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "is-subdir": "^1.1.1", - "spawndamnit": "^2.0.0" - } - }, - "@changesets/logger": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", - "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", - "requires": { - "chalk": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@changesets/parse": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.8.tgz", - "integrity": "sha512-0S7Dc7XbMOKamBtd48vVuWL2aFZyaglw6lJsXNddn9forFf8oMKMmdyJ/HQPyeEChDDOhDF1/ya7m/zpt4Dk4w==", - "requires": { - "@changesets/types": "^4.0.0", - "js-yaml": "^3.13.1" - } - }, - "@changesets/pre": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.6.tgz", - "integrity": "sha512-ZwFFQLjhTmA4hj8+Cf9pm6nD9Tp+AiBz1wJLaGum4Ae1fPXMwDnJfHknFUTytqZBlC0gHkiGSj6QkUuetWvckg==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/errors": "^0.1.4", - "@changesets/types": "^4.0.0", - "@manypkg/get-packages": "^1.0.1", - "fs-extra": "^7.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/read": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.4.7.tgz", - "integrity": "sha512-E70QrYQpSCMF0nC0dlPU7i6A9zht+8zkQczrKMbOUwDVrfidcvgojxfuJSQbzptYSb9OKYh8GOLd+bsq9+uO9Q==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/git": "^1.1.1", - "@changesets/logger": "^0.0.5", - "@changesets/parse": "^0.3.8", - "@changesets/types": "^4.0.0", - "chalk": "^2.1.0", - "fs-extra": "^7.0.1", - "p-filter": "^2.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "@changesets/types": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.0.0.tgz", - "integrity": "sha512-whLmPx2wgJRoOtxVZop+DJ71z1gTSkij7osiHgN+pe//FiE6bb4ffvBBb0rACs2cUPfAkWxgSPzqkECgKS1jvQ==" - }, - "@changesets/write": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.1.4.tgz", - "integrity": "sha512-uco+vS3mo2JqflLciIU707har+6AEFOeP8pgu3vVC1M2WcKukQgR1KylHFqZJxKQWahf8mQnuUSbgR4yJQuhmA==", - "requires": { - "@babel/runtime": "^7.10.4", - "@changesets/types": "^4.0.0", - "fs-extra": "^7.0.1", - "human-id": "^1.0.2", - "prettier": "^1.19.1" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" - } - } - }, "@endemolshinegroup/cosmiconfig-typescript-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", @@ -1600,20 +1281,20 @@ } }, "@graphql-tools/batch-execute": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.1.tgz", - "integrity": "sha512-KzchuEi/WuWVwpWRs2VXVxpqu1TUm6Ol9eE3xstQFOW6Kl35BYhIjQ7TPhJTmN7XOi6anekjFBLEnRAKKjwqog==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz", + "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==", "requires": { "@graphql-tools/utils": "^7.7.0", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1628,23 +1309,23 @@ } }, "@graphql-tools/delegate": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.4.tgz", - "integrity": "sha512-KyX63ZkIyTA6WoylAoyUEUj+nTjEwl5n1c8AIuK4F3KzcoHnQtKDrE7s/M9QxQAWgC/HbJjzWZXF+Ghs7hhbyw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz", + "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==", "requires": { "@ardatan/aggregate-error": "0.0.6", - "@graphql-tools/batch-execute": "^7.1.1", - "@graphql-tools/schema": "^7.1.4", + "@graphql-tools/batch-execute": "^7.1.2", + "@graphql-tools/schema": "^7.1.5", "@graphql-tools/utils": "^7.7.1", "dataloader": "2.0.0", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1669,9 +1350,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1693,12 +1374,12 @@ } }, "@graphql-tools/import": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", - "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz", + "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==", "requires": { "resolve-from": "5.0.0", - "tslib": "~2.1.0" + "tslib": "~2.2.0" }, "dependencies": { "resolve-from": { @@ -1707,9 +1388,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" } } }, @@ -1723,9 +1404,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1763,9 +1444,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1798,9 +1479,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1815,19 +1496,19 @@ } }, "@graphql-tools/schema": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.4.tgz", - "integrity": "sha512-kkDLbCIMwGRUZAPdeRcnUFXu6wSaMWXNmDigWsIsepzhVx0nLQ2k58Ec7pBylKaut5xWi0344GctQ3qDhBUHDA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz", + "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==", "requires": { "@graphql-tools/utils": "^7.1.2", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1842,23 +1523,25 @@ } }, "@graphql-tools/url-loader": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz", - "integrity": "sha512-X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.0.tgz", + "integrity": "sha512-xHkcRNMsMvdXCS0oN0lTqAZOyeiBOz14+kLUu3sVHuCacgH2mn8avd49uLETbnwPok7UOTP0sll77o9p7clw8g==", "requires": { "@graphql-tools/delegate": "^7.0.1", - "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/utils": "^7.9.0", "@graphql-tools/wrap": "^7.0.4", + "@microsoft/fetch-event-source": "2.0.1", "@types/websocket": "1.0.2", + "abort-controller": "3.0.0", "cross-fetch": "3.1.4", - "eventsource": "1.1.0", "extract-files": "9.0.0", "form-data": "4.0.0", - "graphql-upload": "^11.0.0", "graphql-ws": "^4.4.1", "is-promise": "4.0.0", "isomorphic-ws": "4.0.1", - "sse-z": "0.3.0", + "lodash": "4.17.21", + "meros": "1.1.4", + "subscriptions-transport-ws": "^0.9.18", "sync-fetch": "0.3.0", "tslib": "~2.2.0", "valid-url": "1.0.9", @@ -1866,9 +1549,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -1916,21 +1599,21 @@ } }, "@graphql-tools/wrap": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.6.tgz", - "integrity": "sha512-f3jPAHp4taSFIrv3rRsZvdKDrECoYLxdoP5KTrJDDLl2+xiTaiex+wXlNEm3tOnYvxgSQnXPf8iDSdqyd6Q1pg==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz", + "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==", "requires": { - "@graphql-tools/delegate": "^7.1.4", - "@graphql-tools/schema": "^7.1.4", - "@graphql-tools/utils": "^7.2.1", + "@graphql-tools/delegate": "^7.1.5", + "@graphql-tools/schema": "^7.1.5", + "@graphql-tools/utils": "^7.8.1", "tslib": "~2.2.0", - "value-or-promise": "~1.0.5" + "value-or-promise": "1.0.6" }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -2039,41 +1722,16 @@ } } }, - "@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "@types/node": { - "version": "12.20.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.11.tgz", - "integrity": "sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ==" - } - } - }, - "@manypkg/get-packages": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.1.tgz", - "integrity": "sha512-J6VClfQSVgR6958eIDTGjfdCrELy1eT+SHeoSMomnvRQVktZMnEA5edIr5ovRFNw5y+Bk/jyoevPzGYod96mhw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, "@mdx-js/util": { "version": "2.0.0-next.8", "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz", "integrity": "sha512-T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==" }, + "@microsoft/fetch-event-source": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz", + "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==" + }, "@mikaelkristiansson/domready": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.11.tgz", @@ -2353,11 +2011,6 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" - }, "@types/mkdirp": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", @@ -2367,9 +2020,9 @@ } }, "@types/node": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", - "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==" + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz", + "integrity": "sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==" }, "@types/node-fetch": { "version": "2.5.10", @@ -2392,11 +2045,6 @@ } } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -2421,9 +2069,9 @@ } }, "@types/react": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", - "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", + "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2453,11 +2101,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, - "@types/semver": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.2.tgz", - "integrity": "sha512-RxAwYt4rGwK5GyoRwuP0jT6ZHAVTdz2EqgsHmX0PYNjGsko+OeT4WFXXTs/lM3teJUJodM+SNtAL5/pXIJ61IQ==" - }, "@types/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", @@ -2495,12 +2138,12 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz", - "integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", + "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", "requires": { - "@typescript-eslint/experimental-utils": "4.22.0", - "@typescript-eslint/scope-manager": "4.22.0", + "@typescript-eslint/experimental-utils": "4.22.1", + "@typescript-eslint/scope-manager": "4.22.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -2520,26 +2163,26 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz", - "integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", + "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz", - "integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", + "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", "requires": { - "@typescript-eslint/scope-manager": "4.22.0", - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/typescript-estree": "4.22.0", + "@typescript-eslint/scope-manager": "4.22.1", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/typescript-estree": "4.22.1", "debug": "^4.1.1" }, "dependencies": { @@ -2554,26 +2197,26 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz", - "integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", + "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0" + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1" } }, "@typescript-eslint/types": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz", - "integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", + "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==" }, "@typescript-eslint/typescript-estree": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz", - "integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", + "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", "requires": { - "@typescript-eslint/types": "4.22.0", - "@typescript-eslint/visitor-keys": "4.22.0", + "@typescript-eslint/types": "4.22.1", + "@typescript-eslint/visitor-keys": "4.22.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -2592,18 +2235,18 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz", - "integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", + "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", "requires": { - "@typescript-eslint/types": "4.22.0", + "@typescript-eslint/types": "4.22.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, @@ -2748,6 +2391,14 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -2813,17 +2464,17 @@ "integrity": "sha512-4g5Np4CVD3c5c/36Mj0jllEA5bQcuXF0dqakZcuHGeubBzw93EAhwRuQCzgFm4/ZwvyBMzFdtn9BcihOjnxIdQ==" }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -2831,20 +2482,13 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" + "strip-ansi": "^5.1.0" } } } @@ -2992,9 +2636,9 @@ } }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "assign-symbols": { "version": "1.0.0", @@ -3270,11 +2914,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -3306,14 +2945,6 @@ "open": "^7.0.3" } }, - "better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "requires": { - "is-windows": "^1.0.0" - } - }, "better-queue": { "version": "3.8.10", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", @@ -3412,106 +3043,67 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-name": "~1.1.4" } }, - "strip-ansi": { + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "execa": "^0.7.0" + "has-flag": "^4.0.0" } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, @@ -3532,22 +3124,14 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "requires": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" } @@ -3572,11 +3156,30 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", "requires": { - "dicer": "0.3.0" + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "bytes": { @@ -3629,13 +3232,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "cache-manager": { @@ -3678,14 +3274,6 @@ "responselike": "^1.0.2" }, "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -3756,23 +3344,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -3785,9 +3356,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001219", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", - "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==" + "version": "1.0.30001222", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz", + "integrity": "sha512-rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==" }, "ccount": { "version": "1.1.0", @@ -3912,11 +3483,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -3926,9 +3492,9 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", @@ -3974,6 +3540,19 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, @@ -3997,11 +3576,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4254,9 +3828,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "contentful-management": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.2.tgz", - "integrity": "sha512-Uxa1sZRcfX5/gE+VrX8JYTr/EDERSXliJ+c65U7sJFqopGR4PCIDW0Dx9GhxBKC2j7olvpi4L1KsNgWFjQtu9Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.7.tgz", + "integrity": "sha512-QuNigkSHk1PG+GfuH4BZ1De4UrGaeeIH25ydM3rVfy+vMT7Dsax3j6Es1FFR6xT3Obm8QiBalJRepI1VdN5wpw==", "requires": { "@types/json-patch": "0.0.30", "axios": "^0.21.0", @@ -4342,16 +3916,16 @@ } }, "core-js": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", - "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", + "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==" }, "core-js-compat": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.1.tgz", - "integrity": "sha512-aZ0e4tmlG/aOBHj92/TuOuZwp6jFvn1WNabU5VOVixzhu5t5Ao+JZkQOPlgNXu6ynwLrwJxklT4Gw1G1VGEh+g==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz", + "integrity": "sha512-gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==", "requires": { - "browserslist": "^4.16.5", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -4363,9 +3937,9 @@ } }, "core-js-pure": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.1.tgz", - "integrity": "sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg==" + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.2.tgz", + "integrity": "sha512-DQxdEKm+zFsnON7ZGOgUAQXBt1UJJ01tOzN/HgQ7cNf0oEHW1tcBLfCQQd1q6otdLu5gAdvKYxKHAoXGwE/kiQ==" }, "core-util-is": { "version": "1.0.2", @@ -4947,32 +4521,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -4993,9 +4541,9 @@ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==" }, "date-fns": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz", - "integrity": "sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==" + "version": "2.21.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.2.tgz", + "integrity": "sha512-FMkG7pIPx64mGIpS2LOb3Wp3O606H/hatoiz7G0oiYWai1izdM4tF1dd7QABv2NogkIDI4wxsfLLFQSuVvDHgA==" }, "debug": { "version": "3.2.7", @@ -5010,22 +4558,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -5092,17 +4624,22 @@ "requires": { "pump": "^3.0.0" } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -5150,11 +4687,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -5213,11 +4745,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, "detect-newline": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz", @@ -5324,11 +4851,30 @@ } }, "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", "requires": { + "readable-stream": "1.1.x", "streamsearch": "0.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } } }, "diff": { @@ -5434,9 +4980,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.5.1.tgz", + "integrity": "sha512-qC1FbhCH7UH7B+BcRNUDhAk04d/n+tnGGB1ctwndZkVFeehYJOn39pRWWzmdzpFqImyX1KB8tO0DCHLf8yRaYQ==" }, "duplexer": { "version": "0.1.2", @@ -5454,9 +5000,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", - "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==" + "version": "1.3.726", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz", + "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==" }, "emoji-regex": { "version": "8.0.0", @@ -5779,9 +5325,9 @@ } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "globals": { "version": "13.8.0", @@ -6001,90 +5547,15 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } } } }, @@ -6191,11 +5662,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6306,14 +5772,19 @@ } }, "event-source-polyfill": { - "version": "1.0.23", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.23.tgz", - "integrity": "sha512-S1F4Rlm7uQLLAvyQvekTuL8+9NvRyaNGkWgbwV5luAKnJWGosUZ4yaz+hWYabxi3HaGBlGdBo2sIqTMpaC3EBA==" + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz", + "integrity": "sha512-aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "events": { "version": "3.3.0", @@ -6354,27 +5825,6 @@ "which": "^2.0.1" } }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -6604,11 +6054,6 @@ } } }, - "extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -6876,15 +6321,6 @@ "path-exists": "^4.0.0" } }, - "find-yarn-workspace-root2": { - "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", - "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", - "requires": { - "micromatch": "^4.0.2", - "pkg-dir": "^4.2.0" - } - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -7012,11 +6448,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7124,11 +6555,6 @@ } } }, - "fs-capacitor": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", - "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==" - }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", @@ -7179,9 +6605,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.0.tgz", - "integrity": "sha512-gqfJn1gvcNgVfhn1L0EWgW3To2tHZM9hdoxUweZVOtA9HdXeOONEV5xob2aDOl+fl3CLUmvSPSsb9PnqQEikuw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-3.4.1.tgz", + "integrity": "sha512-LV6D2n7hyXmQyv96yU9kUsbXxzcxa1uN3H2fswi7NbZfSfM9snnoBdTi9s67sArQTw7WQSO8GRtvRm1YTNt84w==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/core": "^7.12.3", @@ -7251,16 +6677,16 @@ "find-cache-dir": "^3.3.1", "fs-exists-cached": "1.0.0", "fs-extra": "^8.1.0", - "gatsby-cli": "^3.4.0", + "gatsby-cli": "^3.4.1", "gatsby-core-utils": "^2.4.0", "gatsby-graphiql-explorer": "^1.4.0", "gatsby-legacy-polyfills": "^1.4.0", "gatsby-link": "^3.4.0", - "gatsby-plugin-page-creator": "^3.4.0", + "gatsby-plugin-page-creator": "^3.4.1", "gatsby-plugin-typescript": "^3.4.0", "gatsby-plugin-utils": "^1.4.0", "gatsby-react-router-scroll": "^4.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "got": "8.3.2", "graphql": "^15.4.0", @@ -7282,7 +6708,7 @@ "memoizee": "^0.4.15", "micromatch": "^4.0.2", "mime": "^2.4.6", - "mini-css-extract-plugin": "1.3.9", + "mini-css-extract-plugin": "1.5.1", "mitt": "^1.2.0", "mkdirp": "^0.5.1", "moment": "^2.27.0", @@ -7396,9 +6822,9 @@ } }, "gatsby-cli": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.0.tgz", - "integrity": "sha512-mqf8SbaY0ZEQBUedkchnGwLlBR64HQSXJ/KA1kciDwWyHpOlipXByYpXNpakolA9VDKBfHYTu1tofPxcfM+0fA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.4.1.tgz", + "integrity": "sha512-w93IcAL/Zl1x9oD6pw/iJ0DkAC1V78NhL9K0QvIjwa5Rx/EOhZ0cx3+bX9/l1v1aDX8YSUk09Ac4QhAizeGBUA==", "requires": { "@babel/code-frame": "^7.10.4", "@types/common-tags": "^1.8.0", @@ -7414,8 +6840,8 @@ "fs-exists-cached": "^1.0.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-recipes": "^0.15.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-recipes": "^0.15.1", + "gatsby-telemetry": "^2.4.1", "hosted-git-info": "^3.0.6", "is-valid-path": "^0.1.1", "joi": "^17.4.0", @@ -7453,18 +6879,10 @@ "npm-run-path": "^4.0.0", "onetime": "^5.1.0", "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - } - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + } } }, "hosted-git-info": { @@ -7475,19 +6893,6 @@ "lru-cache": "^6.0.0" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "p-finally": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", @@ -7646,9 +7051,9 @@ } }, "gatsby-plugin-page-creator": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.0.tgz", - "integrity": "sha512-H+UaS/XFalUUIIvaLXWKLeBdqLwp3gkGOYNoNfcmIsd82PHQWvcaVmCNmzaA+ji6ByOA043rNB2tOcAz84s+jw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-3.4.1.tgz", + "integrity": "sha512-/nDtxG2Bq5SMpvg0MONHJ5m+r2fPzXtiap+XXvLO7tsc08E7YdckrpJZ5OQ5NlEjcN3iPPHmYpLoUd9wSgttXA==", "requires": { "@babel/traverse": "^7.12.5", "@sindresorhus/slugify": "^1.1.2", @@ -7656,7 +7061,7 @@ "fs-exists-cached": "^1.0.0", "gatsby-core-utils": "^2.4.0", "gatsby-page-utils": "^1.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "globby": "^11.0.3", "lodash": "^4.17.21" } @@ -7692,9 +7097,9 @@ } }, "gatsby-recipes": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz", - "integrity": "sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz", + "integrity": "sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==", "requires": { "@babel/core": "^7.12.3", "@babel/generator": "^7.12.5", @@ -7720,7 +7125,7 @@ "express-graphql": "^0.9.0", "fs-extra": "^8.1.0", "gatsby-core-utils": "^2.4.0", - "gatsby-telemetry": "^2.4.0", + "gatsby-telemetry": "^2.4.1", "glob": "^7.1.6", "graphql": "^15.4.0", "graphql-compose": "~7.25.0", @@ -7757,9 +7162,9 @@ }, "dependencies": { "@graphql-tools/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-nORIltDwBdsc3Ew+vuXISTZw6gpRd3UkK+6HNY3knNca6apTDj7ygcJmgsFKjSyUf7xtukddTcF6Js9kPuJr6g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-WaYfdKmYFw7Rw5BmFehwo5zqoHNlO1soKVSdrh4qN0X1U34g4aqESAMYogtlp2yWDb2b3qKShiByCvRWNypbVA==", "requires": { "@ardatan/aggregate-error": "0.0.6", "camel-case": "4.1.2", @@ -7795,9 +7200,9 @@ } }, "gatsby-telemetry": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.0.tgz", - "integrity": "sha512-OF4Qj1bn+BeBn0DQ9wwbOxaFFz6IPyYIoZW7nxdb65wwotBlWNBkL2LhwpEpvQ6U4tydxVNGYEZSJ7TSVS/+Gg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.4.1.tgz", + "integrity": "sha512-VLlZvFCdpCCT0mxnSK1UE/uD7NY/7Sj5vwvv09WRDlIGw6qaUJFWLIav99WXocbIN0FvYKKGIbmIUlmBnhxzVA==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -7813,114 +7218,6 @@ "lodash": "^4.17.21", "node-fetch": "^2.6.1", "uuid": "3.4.0" - }, - "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - } } }, "gensync": { @@ -7954,9 +7251,12 @@ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } }, "get-value": { "version": "2.0.6", @@ -8099,6 +7399,11 @@ } } }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", @@ -8154,11 +7459,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", @@ -8228,41 +7528,10 @@ "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" }, - "graphql-upload": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", - "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.1.0", - "http-errors": "^1.7.3", - "isobject": "^4.0.0", - "object-path": "^0.11.4" - }, - "dependencies": { - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, "graphql-ws": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.4.tgz", - "integrity": "sha512-GuKIn9PlSC5a1G7wEkLEsFmNGWXiPOXo7MfSk35fMEEJhJSKRa3dMW1JWaNvDZNXF2lLrZ6fal8+kOyDuBHpcg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.5.0.tgz", + "integrity": "sha512-J3PuSfOKX2y9ryOtWxOcKlizkFWyhCvPAc3hhMKMVSTcPxtWiv9oNzvAZp1HKfuQng32YQduHeX+lRDy2+F6VQ==" }, "gzip-size": { "version": "5.1.1", @@ -8271,6 +7540,13 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } } }, "handle-thing": { @@ -8278,11 +7554,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -8332,13 +7603,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "has-values": { @@ -8395,13 +7659,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } } }, "hex-color-regex": { @@ -8545,6 +7802,13 @@ "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } } }, "http-proxy-middleware": { @@ -8629,11 +7893,6 @@ } } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -8665,11 +7924,6 @@ } } }, - "human-id": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", - "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" - }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -8993,9 +8247,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" }, "is-binary-path": { "version": "2.1.0", @@ -9231,9 +8485,9 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, "is-plain-object": { "version": "2.0.4", @@ -9241,13 +8495,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-promise": { @@ -9311,23 +8558,15 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, - "is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "requires": { - "better-path-resolve": "1.0.0" - } - }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -9401,9 +8640,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isomorphic-ws": { "version": "4.0.1", @@ -9696,25 +8935,9 @@ "requires": { "error-ex": "^1.2.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, - "load-yaml-file": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", - "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", - "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.13.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -9818,11 +9041,6 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg=" - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -9932,11 +9150,6 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==" - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -10125,45 +9338,6 @@ } } }, - "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -10179,6 +9353,11 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, + "meros": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", + "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -10259,9 +9438,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" } } }, @@ -10318,9 +9497,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.5.1.tgz", + "integrity": "sha512-wEpr0XooH6rw/Mlf+9KTJoMBLT3HujzdTrmohPjAzF47N4Q6yAeczQLpRD/WxvAtXvskcXbily7TAdCfi2M4Dg==", "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", @@ -10367,16 +9546,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", @@ -10442,11 +9611,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -10455,65 +9619,29 @@ "minimist": "^1.2.5" } }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" } }, "multicast-dns": { @@ -10698,11 +9826,18 @@ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + } } }, "nth-check": { @@ -10812,13 +9947,6 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.assign": { @@ -10870,13 +9998,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "object.values": { @@ -10979,11 +10100,6 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -10994,21 +10110,6 @@ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - } - } - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -11273,9 +10374,9 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -13060,52 +12161,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, - "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", - "requires": { - "find-up": "^5.0.0", - "find-yarn-workspace-root2": "1.2.16", - "path-exists": "^4.0.0", - "which-pm": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -13290,11 +12345,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13593,42 +12643,77 @@ } }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } } } }, "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } } }, "readable-stream": { @@ -13666,15 +12751,6 @@ "minimatch": "3.0.4" } }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, "redux": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz", @@ -14181,9 +13257,9 @@ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "requires": { "node-forge": "^0.10.0" } @@ -14456,125 +13532,25 @@ } }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" - }, - "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, + "slugify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.1.tgz", + "integrity": "sha512-54gP60qIkxaUCFXORn/u+tNPqdTsqvqonB2nxjQV52wWTCuJJ4kbfU7URkpn8646Lr2T3CSh8ecDzzBK/dD9jA==" + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -14669,11 +13645,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -14717,9 +13688,9 @@ }, "dependencies": { "@types/node": { - "version": "14.14.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.43.tgz", - "integrity": "sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ==" + "version": "14.14.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.44.tgz", + "integrity": "sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA==" }, "debug": { "version": "4.3.1", @@ -14809,6 +13780,13 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "requires": { "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + } } }, "source-list-map": { @@ -14854,41 +13832,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, - "spawndamnit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", - "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", - "requires": { - "cross-spawn": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -14980,11 +13923,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sse-z": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", - "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==" - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -15050,14 +13988,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -15324,6 +14254,28 @@ } } }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "sudo-prompt": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", @@ -15380,6 +14332,11 @@ } } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "sync-fetch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", @@ -15681,11 +14638,6 @@ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==" - }, "trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", @@ -15753,129 +14705,6 @@ "tslib": "^1.8.1" } }, - "tty-table": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.13.tgz", - "integrity": "sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.1", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -15980,13 +14809,6 @@ "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - } } }, "union-value": { @@ -16153,11 +14975,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, @@ -16192,26 +15009,6 @@ "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, "boxen": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", @@ -16227,33 +15024,10 @@ "wrap-ansi": "^7.0.0" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } } } }, @@ -16402,12 +15176,9 @@ } }, "value-or-promise": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.5.tgz", - "integrity": "sha512-9ZmqlFSp5ihOF8jh8zykx3wGJG83jz1jiXmSxm0onPIlt9Vak4FTyHrvTVaL5Ykj3UpSPvbCbnuYxnzUQyLBHA==", - "requires": { - "@changesets/cli": "^2.16.0" - } + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz", + "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==" }, "vary": { "version": "1.1.2", @@ -16461,18 +15232,10 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz", + "integrity": "sha512-XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==", "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.47", @@ -16500,9 +15263,9 @@ }, "dependencies": { "acorn": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==" + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" }, "schema-utils": { "version": "3.0.0", @@ -16864,11 +15627,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -16916,6 +15674,11 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -17193,50 +15956,12 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-pm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", - "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", - "requires": { - "load-yaml-file": "^0.2.0", - "path-exists": "^4.0.0" - } - }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^4.0.0" } }, "wildcard": { @@ -17339,9 +16064,9 @@ } }, "xstate": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.18.0.tgz", - "integrity": "sha512-cjj22XXxTWIkMrghyoUWjUlDFcd7MQGeKYy8bkdtcIeogZjF98mep9CHv8xLO3j4PZQF5qgcAGGT8FUn99mF1Q==" + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.19.1.tgz", + "integrity": "sha512-tnBh6ue9MiyoMkE2+w1IqfvJm4nBe3S4Ky/RLvlo9vka8FdO4WyyT3M7PA0pQoM/FZ9aJVWFOlsNw0Nc7E+4Bw==" }, "xtend": { "version": "4.0.2", diff --git a/starters/hello-world/package.json b/starters/hello-world/package.json index cc7dfc71924cf..c44538d5458e6 100644 --- a/starters/hello-world/package.json +++ b/starters/hello-world/package.json @@ -14,7 +14,7 @@ "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }, "dependencies": { - "gatsby": "^3.4.0", + "gatsby": "^3.4.1", "react": "^17.0.1", "react-dom": "^17.0.1" }, From f39b153e585343823f7becd082ec495c08b436ad Mon Sep 17 00:00:00 2001 From: Lennart Date: Wed, 5 May 2021 12:06:41 +0200 Subject: [PATCH 18/45] test: Conditionally test ESLint rules (#31258) --- e2e-tests/development-runtime/.eslintignore | 2 + .../limited-exports-page-templates.js | 34 +++++++++++-- .../no-anonymous-exports-page-templates.js | 50 +++++++++++++++++++ .../limited-exports-page-templates.js | 6 +-- ...onymous-exports-page-templates-function.js | 2 +- .../no-anonymous-exports-page-templates.js | 4 +- 6 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 e2e-tests/development-runtime/.eslintignore diff --git a/e2e-tests/development-runtime/.eslintignore b/e2e-tests/development-runtime/.eslintignore new file mode 100644 index 0000000000000..8a51cd1377973 --- /dev/null +++ b/e2e-tests/development-runtime/.eslintignore @@ -0,0 +1,2 @@ +src/pages/anonymous-arrow.js +src/pages/anonymous-arrow-two.js diff --git a/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js b/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js index fa86741f6bd91..accc4d9b40222 100644 --- a/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js +++ b/e2e-tests/development-runtime/cypress/integration/eslint-rules/limited-exports-page-templates.js @@ -1,16 +1,44 @@ +before(() => { + cy.exec( + `npm run update -- --file src/pages/eslint-rules/limited-exports-page-templates.js --restore` + ) +}) + +after(() => { + cy.exec( + `npm run update -- --file src/pages/eslint-rules/limited-exports-page-templates.js --restore` + ) +}) + +const errorPlaceholder = `// export function notAllowed() {}` +const errorReplacement = `export function notAllowed() {}` + describe(`limited-exports-page-templates`, () => { - it(`should log warning to console for invalid export`, () => { + beforeEach(() => { cy.visit( `/eslint-rules/limited-exports-page-templates` ).waitForRouteChange() + }) + + it(`should initially not log to console`, () => { + cy.get(`@hmrConsoleLog`).should( + `not.be.calledWithMatch`, + /13:1 {2}warning {2}In page templates only a default export of a valid React component and the named export of a page query is allowed./i + ) + }) + it(`should log warning to console for invalid export`, () => { + cy.exec( + `npm run update -- --file src/pages/eslint-rules/limited-exports-page-templates.js --replacements "${errorPlaceholder}:${errorReplacement}" --exact` + ) + cy.reload() cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, - /15:1 warning In page templates only a default export of a valid React component and the named export of a page query is allowed./i + /13:1 {2}warning {2}In page templates only a default export of a valid React component and the named export of a page query is allowed./i ) cy.get(`@hmrConsoleLog`).should( `not.be.calledWithMatch`, - /17:1 warning In page templates only a default export of a valid React component and the named export of a page query is allowed./i + /15:1 {2}warning {2}In page templates only a default export of a valid React component and the named export of a page query is allowed./i ) }) }) diff --git a/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js b/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js index 2772841ff9a48..0aefb8f56a9cb 100644 --- a/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js +++ b/e2e-tests/development-runtime/cypress/integration/eslint-rules/no-anonymous-exports-page-templates.js @@ -1,9 +1,53 @@ +before(() => { + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates.js --restore` + ) + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js --restore` + ) +}) + +after(() => { + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates.js --restore` + ) + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js --restore` + ) +}) + +const errorPlaceholderAnonExport01 = `const Named = () =>` +const errorReplacementAnonExport01 = `export default () =>` +const errorPlaceholderAnonExport02 = `export default Named` +const errorReplacementAnonExport02 = `// named-default-export` +const errorPlaceholderAnonFunction = `export default function Named()` +const errorReplacementAnonFunction = `export default function ()` + describe(`no-anonymous-exports-page-templates`, () => { + it(`should initially not log to console`, () => { + cy.visit( + `/eslint-rules/no-anonymous-exports-page-templates` + ).waitForRouteChange() + cy.get(`@hmrConsoleLog`).should( + `not.be.calledWithMatch`, + /Anonymous arrow functions cause Fast Refresh to not preserve local component state./i + ) + cy.get(`@hmrConsoleLog`).should( + `not.be.calledWithMatch`, + /Anonymous function declarations cause Fast Refresh to not preserve local component state./i + ) + }) it(`should log warning to console for arrow functions`, () => { cy.visit( `/eslint-rules/no-anonymous-exports-page-templates` ).waitForRouteChange() + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates.js --replacements "${errorPlaceholderAnonExport01}:${errorReplacementAnonExport01}" --replacements "${errorPlaceholderAnonExport02}:${errorReplacementAnonExport02}" --exact` + ) + + cy.reload() + cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, /Anonymous arrow functions cause Fast Refresh to not preserve local component state./i @@ -14,6 +58,12 @@ describe(`no-anonymous-exports-page-templates`, () => { `/eslint-rules/no-anonymous-exports-page-templates-function` ).waitForRouteChange() + cy.exec( + `npm run update -- --file src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js --replacements "${errorPlaceholderAnonFunction}:${errorReplacementAnonFunction}" --exact` + ) + + cy.reload() + cy.get(`@hmrConsoleLog`).should( `be.calledWithMatch`, /Anonymous function declarations cause Fast Refresh to not preserve local component state./i diff --git a/e2e-tests/development-runtime/src/pages/eslint-rules/limited-exports-page-templates.js b/e2e-tests/development-runtime/src/pages/eslint-rules/limited-exports-page-templates.js index 75a40504bb908..2234ea7049c41 100644 --- a/e2e-tests/development-runtime/src/pages/eslint-rules/limited-exports-page-templates.js +++ b/e2e-tests/development-runtime/src/pages/eslint-rules/limited-exports-page-templates.js @@ -5,14 +5,12 @@ function PageQuery({ data }) { return (

    Limited Exports Page Templates. ESLint Rule

    -

    - {data.site.siteMetadata.title} -

    +

    {data.site.siteMetadata.title}

    ) } -export function notAllowed() {} +// export function notAllowed() {} export const query = graphql` { diff --git a/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js b/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js index e7ef2e9fbd5a1..67734e9314153 100644 --- a/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js +++ b/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates-function.js @@ -2,7 +2,7 @@ import React from "react" import Layout from "../../components/layout" -export default function () { +export default function Named() { return (

    Anonymous Arrow Function. ESLint Rule

    diff --git a/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates.js b/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates.js index 4378c7bbcb324..3871780d0a40c 100644 --- a/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates.js +++ b/e2e-tests/development-runtime/src/pages/eslint-rules/no-anonymous-exports-page-templates.js @@ -2,8 +2,10 @@ import React from "react" import Layout from "../../components/layout" -export default () => ( +const Named = () => (

    Anonymous Arrow Function. ESLint Rule

    ) + +export default Named From 3c7931fae5ac38c096ecad324da7364d7a9ff5e4 Mon Sep 17 00:00:00 2001 From: Vladimir Razuvaev Date: Wed, 5 May 2021 21:00:02 +0700 Subject: [PATCH 19/45] feat(benchmarks): add filters and sorting benchmark (#31261) --- benchmarks/query-filters-sort/README.md | 43 +++++++++ .../query-filters-sort/gatsby-config.js | 8 ++ benchmarks/query-filters-sort/gatsby-node.js | 87 +++++++++++++++++++ benchmarks/query-filters-sort/package.json | 21 +++++ .../query-filters-sort/src/pages/index.js | 3 + .../src/templates/elemMatch-eq.js | 26 ++++++ .../query-filters-sort/src/templates/eq.js | 20 +++++ .../query-filters-sort/src/templates/gt-lt.js | 24 +++++ .../query-filters-sort/src/templates/gt.js | 20 +++++ .../query-filters-sort/src/templates/in.js | 20 +++++ .../query-filters-sort/src/templates/lt.js | 24 +++++ .../query-filters-sort/src/templates/ne.js | 20 +++++ .../query-filters-sort/src/templates/nin.js | 20 +++++ .../query-filters-sort/src/templates/regex.js | 20 +++++ 14 files changed, 356 insertions(+) create mode 100644 benchmarks/query-filters-sort/README.md create mode 100644 benchmarks/query-filters-sort/gatsby-config.js create mode 100644 benchmarks/query-filters-sort/gatsby-node.js create mode 100644 benchmarks/query-filters-sort/package.json create mode 100644 benchmarks/query-filters-sort/src/pages/index.js create mode 100644 benchmarks/query-filters-sort/src/templates/elemMatch-eq.js create mode 100644 benchmarks/query-filters-sort/src/templates/eq.js create mode 100644 benchmarks/query-filters-sort/src/templates/gt-lt.js create mode 100644 benchmarks/query-filters-sort/src/templates/gt.js create mode 100644 benchmarks/query-filters-sort/src/templates/in.js create mode 100644 benchmarks/query-filters-sort/src/templates/lt.js create mode 100644 benchmarks/query-filters-sort/src/templates/ne.js create mode 100644 benchmarks/query-filters-sort/src/templates/nin.js create mode 100644 benchmarks/query-filters-sort/src/templates/regex.js diff --git a/benchmarks/query-filters-sort/README.md b/benchmarks/query-filters-sort/README.md new file mode 100644 index 0000000000000..364016b6cedef --- /dev/null +++ b/benchmarks/query-filters-sort/README.md @@ -0,0 +1,43 @@ +# Filters and sort benchmark + +Stress tests various query filters (with and without sorting by random value). + +# Usage + +```shell +NUM_NODES=1000 NUM_PAGES=1000 FILTER=eq SORT=1 TEXT=1 yarn bench +``` + +Explanation: + +- `FILTER`: one of `eq`, `gt`, `gt-lt`, `in`, `lt`, `ne`, `nin`, `regex`, `elemMatch-eq` (default: `eq`). + See `src/templates` for specific queries. +- `SORT`: when set, the benchmark will also add sorting to the query (by random integer value) +- `TEXT`: all nodes are lightweight by default (just 5 fields with numeric values or short strings).\ + When settings this env variable - each node will get additional field with 4k of text + (useful for memory usage measurements) +- `NUM_NODES`: the number of nodes created (1000 by default) +- `NUM_PAGES`: the number of pages created (1000 by default, must be >= `NUM_NODES`) + +# Example + +Let's figure out time complexity of `gt` filter. To make this happen - let's run the benchmark +3 times with the same number of pages but growing number of nodes: + +### run 1: + +```shell +NUM_NODES=1000 FILTER=gt yarn bench +``` + +### run 2: + +```shell +NUM_NODES=10000 FILTER=gt yarn bench +``` + +### run 3: + +```shell +NUM_NODES=100000 FILTER=gt yarn bench +``` diff --git a/benchmarks/query-filters-sort/gatsby-config.js b/benchmarks/query-filters-sort/gatsby-config.js new file mode 100644 index 0000000000000..5f727d9f74cd5 --- /dev/null +++ b/benchmarks/query-filters-sort/gatsby-config.js @@ -0,0 +1,8 @@ +module.exports = { + siteMetadata: { + title: `Gatsby Benchmark Filters & Sort`, + description: `The filters and sort benchmark`, + author: `@gatsbyjs`, + }, + // plugins: [`gatsby-plugin-benchmark-reporting`], +} diff --git a/benchmarks/query-filters-sort/gatsby-node.js b/benchmarks/query-filters-sort/gatsby-node.js new file mode 100644 index 0000000000000..4450f5da8702f --- /dev/null +++ b/benchmarks/query-filters-sort/gatsby-node.js @@ -0,0 +1,87 @@ +const NUM_PAGES = parseInt(process.env.NUM_PAGES || 1000, 10) +const NUM_NODES = parseInt(process.env.NUM_NODES || NUM_PAGES, 10) +const SORT = process.env.SORT +const FILTER = process.env.FILTER || `eq` +const TEXT = Boolean(process.env.TEXT) + +if (NUM_NODES < NUM_PAGES) { + throw new Error("Expecting NUM_NODES >= NUM_PAGES") +} + +const nodesPerPage = Math.max(1, Math.round(NUM_NODES / NUM_PAGES)) +const ptop = require(`process-top`)() + +exports.sourceNodes = async ({ actions: { createNode } }) => { + console.log(`Creating ${NUM_NODES} nodes`) + for (let nodeNum = 0; nodeNum < NUM_NODES; nodeNum++) { + const pageNum = Math.floor(nodeNum / nodesPerPage) + createNode({ + id: String(nodeNum), + nodeNum, + pageNum, + nodeNumReversed: NUM_NODES - nodeNum, + testEq: String(nodeNum), + testIn: [`foo`, `bar`, `baz`, `foobar`][nodeNum % 4], + testElemMatch: [ + { testIn: [`foo`, `bar`, `baz`, `foobar`][nodeNum % 4] }, + { testEq: String(nodeNum) }, + ], + text: `${TEXT ? new Array(4128).join("*") : ``}${nodeNum}`, + sortRandom: Math.random() * NUM_NODES, + internal: { + type: `Test`, + contentDigest: String(nodeNum), + }, + }) + if (nodeNum % 50 === 0) { + await new Promise(resolve => setTimeout(resolve, 3)) + } + } + if (global.gc) { + global.gc() + } + console.log(ptop.toString()) +} + +const pageTemplate = require.resolve(`./src/templates/${FILTER}.js`) +exports.createPages = async ({ actions: { createPage } }) => { + console.log(`Creating ${NUM_PAGES} pages for filter: ${FILTER}`) + for (let pageNum = 0; pageNum < NUM_PAGES; pageNum++) { + createPage({ + path: `/path/${pageNum}/`, + component: pageTemplate, + context: { + pageNumAsStr: String(pageNum), + fooBarValues: [ + [`foo`, `bar`, `baz`, `foobar`][pageNum % 4], + [`foo`, `bar`, `baz`, `foobar`][(pageNum + 1) % 4], + ], + intValue: pageNum, + pageNum: pageNum, + pagesLeft: NUM_PAGES - pageNum, + limit: nodesPerPage, + skip: nodesPerPage * pageNum, + nodesTotal: NUM_NODES, + pagesTotal: NUM_PAGES, + sort: SORT + ? { fields: ["sortRandom"], order: SORT === `1` ? `ASC` : `DESC` } + : undefined, + regex: `/^${String(pageNum).slice(0, 1)}/`, // node id starts with the same number as page id + }, + }) + if (pageNum % 50 === 0) { + await new Promise(resolve => setTimeout(resolve, 3)) + } + } + if (global.gc) { + global.gc() + } + console.log(ptop.toString()) +} + +exports.onPostBuild = () => { + if (global.gc) { + global.gc() + } + console.log(ptop.toString()) +} diff --git a/benchmarks/query-filters-sort/package.json b/benchmarks/query-filters-sort/package.json new file mode 100644 index 0000000000000..475db08a16498 --- /dev/null +++ b/benchmarks/query-filters-sort/package.json @@ -0,0 +1,21 @@ +{ + "name": "gatsby-starter-hello-world", + "description": "Gatsby hello world starter", + "license": "MIT", + "scripts": { + "bench": "gatsby clean && rimraf .data && node --max_old_space_size=16384 --expose-gc node_modules/gatsby/dist/bin/gatsby.js build", + "develop": "gatsby develop", + "build": "gatsby build", + "serve": "gatsby serve" + }, + "dependencies": { + "gatsby": "^3.4.1", + "process-top": "^1.2.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "rimraf": "^3.0.2" + }, + "devDependencies": { + "gatsby-plugin-benchmark-reporting": "*" + } +} diff --git a/benchmarks/query-filters-sort/src/pages/index.js b/benchmarks/query-filters-sort/src/pages/index.js new file mode 100644 index 0000000000000..92b25c10168f8 --- /dev/null +++ b/benchmarks/query-filters-sort/src/pages/index.js @@ -0,0 +1,3 @@ +import React from "react" + +export default () =>
    Hello world!
    diff --git a/benchmarks/query-filters-sort/src/templates/elemMatch-eq.js b/benchmarks/query-filters-sort/src/templates/elemMatch-eq.js new file mode 100644 index 0000000000000..3bea8177a728a --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/elemMatch-eq.js @@ -0,0 +1,26 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pageNumAsStr: String, $sort: TestSortInput) { + allTest( + filter: { + testElemMatch: { elemMatch: { testEq: { eq: $pageNumAsStr } } } + } + sort: $sort + limit: 5 + ) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/eq.js b/benchmarks/query-filters-sort/src/templates/eq.js new file mode 100644 index 0000000000000..b7feac4676131 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/eq.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Bad query result") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pageNumAsStr: String!, $sort: TestSortInput) { + allTest(filter: { testEq: { eq: $pageNumAsStr } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/gt-lt.js b/benchmarks/query-filters-sort/src/templates/gt-lt.js new file mode 100644 index 0000000000000..743d2a823bbb3 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/gt-lt.js @@ -0,0 +1,24 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pageNum: Int, $pagesTotal: Int, $sort: TestSortInput) { + allTest( + filter: { nodeNum: { gt: $pageNum, lt: $pagesTotal } } + sort: $sort + limit: 5 + ) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/gt.js b/benchmarks/query-filters-sort/src/templates/gt.js new file mode 100644 index 0000000000000..8a145a2068d00 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/gt.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pagesLeft: Int, $sort: TestSortInput) { + allTest(filter: { nodeNum: { gt: $pagesLeft } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/in.js b/benchmarks/query-filters-sort/src/templates/in.js new file mode 100644 index 0000000000000..f0a107ef4f75a --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/in.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes?.length) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($fooBarValues: [String!], $sort: TestSortInput) { + allTest(filter: { testIn: { in: $fooBarValues } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/lt.js b/benchmarks/query-filters-sort/src/templates/lt.js new file mode 100644 index 0000000000000..390059c191db7 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/lt.js @@ -0,0 +1,24 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pageNum: Int, $sort: TestSortInput) { + allTest( + filter: { nodeNumReversed: { lt: $pageNum } } + sort: $sort + limit: 5 + ) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/ne.js b/benchmarks/query-filters-sort/src/templates/ne.js new file mode 100644 index 0000000000000..62f75cd832f63 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/ne.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Invalid data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($pageNumAsStr: String!, $sort: TestSortInput) { + allTest(filter: { testEq: { ne: $pageNumAsStr } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/nin.js b/benchmarks/query-filters-sort/src/templates/nin.js new file mode 100644 index 0000000000000..053e8412962b7 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/nin.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes) { + throw new Error("Invalid data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($fooBarValues: [String!], $sort: TestSortInput) { + allTest(filter: { testIn: { nin: $fooBarValues } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` diff --git a/benchmarks/query-filters-sort/src/templates/regex.js b/benchmarks/query-filters-sort/src/templates/regex.js new file mode 100644 index 0000000000000..8f2d556d733e6 --- /dev/null +++ b/benchmarks/query-filters-sort/src/templates/regex.js @@ -0,0 +1,20 @@ +import React from "react" +import { graphql } from "gatsby" + +export default ({ data }) => { + if (!data?.allTest?.nodes?.length) { + throw new Error("Wrong data") + } + return
    {JSON.stringify(data)}
    +} + +export const query = graphql` + query($regex: String, $sort: TestSortInput) { + allTest(filter: { id: { regex: $regex } }, sort: $sort, limit: 5) { + nodes { + nodeNum + text + } + } + } +` From f6575fd1cb07f31524e15b0794491c853ea47f3f Mon Sep 17 00:00:00 2001 From: Szymon <57555560+dev-szymon@users.noreply.github.com> Date: Wed, 5 May 2021 18:15:13 +0200 Subject: [PATCH 20/45] added breakpoints to sharp_attributes set in babel-helpers (#30451) Co-authored-by: gatsbybot --- packages/gatsby-plugin-image/src/babel-helpers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/gatsby-plugin-image/src/babel-helpers.ts b/packages/gatsby-plugin-image/src/babel-helpers.ts index 9880cb575b77c..c519d0c7e2250 100644 --- a/packages/gatsby-plugin-image/src/babel-helpers.ts +++ b/packages/gatsby-plugin-image/src/babel-helpers.ts @@ -22,6 +22,7 @@ export const SHARP_ATTRIBUTES = new Set([ `tracedSVGOptions`, `sizes`, `backgroundColor`, + `breakpoints`, ]) export function normalizeProps( From d9c78a052d2187ad6808b584185f731c0988d610 Mon Sep 17 00:00:00 2001 From: Kyle Mathews Date: Wed, 5 May 2021 11:00:49 -0700 Subject: [PATCH 21/45] feat(gatsby): Don't send error for function errors if headers are already sent (#31265) * feat(gatsby): Don't send error for function errors if headers are already sent * Use boolean on res object to see if headersSent --- integration-tests/functions/package.json | 8 +++----- .../functions/src/api/error-send-function-twice.js | 4 ++++ integration-tests/functions/test-helpers.js | 9 +++++++++ packages/gatsby/src/commands/serve.ts | 5 ++++- .../src/internal-plugins/functions/gatsby-node.ts | 13 ++++++++----- 5 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 integration-tests/functions/src/api/error-send-function-twice.js diff --git a/integration-tests/functions/package.json b/integration-tests/functions/package.json index df81171e3c2b4..7251e1c578ece 100644 --- a/integration-tests/functions/package.json +++ b/integration-tests/functions/package.json @@ -4,9 +4,7 @@ "private": true, "description": "functions", "author": "Kyle Mathews", - "keywords": [ - "gatsby" - ], + "keywords": ["gatsby"], "scripts": { "build": "gatsby build", "develop": "gatsby develop", @@ -25,9 +23,9 @@ "start-server-and-test": "^1.11.3" }, "dependencies": { - "gatsby": "^3.5.0-next.0", + "gatsby": "next", "gatsby-plugin-gatsby-cloud": "^2.5.0-next.0", "react": "^17.0.1", "react-dom": "^17.0.1" } -} \ No newline at end of file +} diff --git a/integration-tests/functions/src/api/error-send-function-twice.js b/integration-tests/functions/src/api/error-send-function-twice.js new file mode 100644 index 0000000000000..8e5b258245bab --- /dev/null +++ b/integration-tests/functions/src/api/error-send-function-twice.js @@ -0,0 +1,4 @@ +export default function handler(req, res) { + res.send(`hi`) + res.json({ willCauseError: true }) +} diff --git a/integration-tests/functions/test-helpers.js b/integration-tests/functions/test-helpers.js index 1ea7908ad6a37..b6e92a009dd39 100644 --- a/integration-tests/functions/test-helpers.js +++ b/integration-tests/functions/test-helpers.js @@ -85,6 +85,15 @@ export function runTests(env, host) { }) }) + describe(`function errors don't crash the server`, () => { + // This test mainly just shows that the server doesn't crash. + test(`normal`, async () => { + const result = await fetch(`${host}/api/error-send-function-twice`) + + expect(result.status).toEqual(200) + }) + }) + describe(`response formats`, () => { test(`returns json correctly`, async () => { const res = await fetch(`${host}/api/i-am-json`) diff --git a/packages/gatsby/src/commands/serve.ts b/packages/gatsby/src/commands/serve.ts index 132d7c51013d8..093d988d8c2d3 100644 --- a/packages/gatsby/src/commands/serve.ts +++ b/packages/gatsby/src/commands/serve.ts @@ -194,7 +194,10 @@ module.exports = async (program: IServeProgram): Promise => { await Promise.resolve(fnToExecute(req, res)) } catch (e) { console.error(e) - res.sendStatus(500) + // Don't send the error if that would cause another error. + if (!res.headersSent) { + res.sendStatus(500) + } } const end = Date.now() diff --git a/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts b/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts index f6f27d7aae575..7c11342c90888 100644 --- a/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts +++ b/packages/gatsby/src/internal-plugins/functions/gatsby-node.ts @@ -364,11 +364,14 @@ export async function onCreateDevServer({ await Promise.resolve(fnToExecute(req, res)) } catch (e) { reporter.error(e) - res - .status(500) - .send( - `Error when executing function "${functionObj.originalFilePath}": "${e.message}"` - ) + // Don't send the error if that would cause another error. + if (!res.headersSent) { + res + .status(500) + .send( + `Error when executing function "${functionObj.originalFilePath}": "${e.message}"` + ) + } } const end = Date.now() From 4ecf00a68b76d758f45020a8500c73c4577d9de1 Mon Sep 17 00:00:00 2001 From: Lennart Date: Wed, 5 May 2021 20:25:54 +0200 Subject: [PATCH 22/45] chore(docs): Add Plugin updates discussion to "maintaining a plugin" (#31257) --- docs/docs/how-to/plugins-and-themes/maintaining-a-plugin.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/docs/how-to/plugins-and-themes/maintaining-a-plugin.md b/docs/docs/how-to/plugins-and-themes/maintaining-a-plugin.md index 6f8c32d8a1de6..443bb802a585d 100644 --- a/docs/docs/how-to/plugins-and-themes/maintaining-a-plugin.md +++ b/docs/docs/how-to/plugins-and-themes/maintaining-a-plugin.md @@ -36,6 +36,10 @@ It would be great for users to be able to reference several versions of the plug - Try not to push every iterative change from Git live +## Subscribe to updates from the Gatsby team + +Please subscribe to the [For Community Plugin Authors and Maintainers](https://github.com/gatsbyjs/gatsby/discussions/30955) discussion on GitHub. This is where the Gatsby Core team will be communicating information regarding upcoming / in-process changes to Gatsby that may require updates to the plugins you maintain. + ## Tools for dependency version maintenance There are a couple of useful tools that can help with keeping dependencies up to date. From 9abd34eb485d48fe80cb62ef5c62aabb8c08d89b Mon Sep 17 00:00:00 2001 From: Toby Glei Date: Thu, 6 May 2021 17:05:40 +0800 Subject: [PATCH 23/45] chore(docs): Update 21yunbox guide (#28848) --- docs/docs/deploying-to-21yunbox.md | 8 ++++---- docs/docs/preparing-for-deployment.md | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/docs/deploying-to-21yunbox.md b/docs/docs/deploying-to-21yunbox.md index 8350d9b0311f1..d8f41682e5c40 100644 --- a/docs/docs/deploying-to-21yunbox.md +++ b/docs/docs/deploying-to-21yunbox.md @@ -2,14 +2,14 @@ title: Deploying to 21YunBox --- -[21YunBox](https://www.21yunbox.com) provides blazing fast Chinese CDN, [continuous deployment](/docs/glossary/continuous-deployment), one-click HTTPS and [other services like managed databases and backend web services](https://www.21yunbox.com/docs/v2/index.html), providing an avenue to launch web projects in China. +[21YunBox](https://www.21yunbox.com) provides blazing fast Chinese CDN, [continuous deployment](/docs/glossary/continuous-deployment), one-click HTTPS and [other services like managed databases and backend web services](https://www.21yunbox.com/docs/), providing an avenue to launch web projects in China. 21YunBox includes the following features: - Continuous, automatic builds & deploys from GitHub and Gitee - Automatic SSL certificates through [Let's Encrypt](https://letsencrypt.org) - Instant cache invalidation with a blazing fast, Chinese CDN -- Unlimited [custom domains](https://www.21yunbox.com/docs/v2/custom-domains.html) +- Unlimited [custom domains](https://www.21yunbox.com/docs/#/custom-domains) - Automatic [Brotli compression](https://en.wikipedia.org/wiki/Brotli) for faster sites - Native HTTP/2 support - Automatic HTTP → HTTPS redirects @@ -17,7 +17,7 @@ title: Deploying to 21YunBox ## Prerequisites -This guide assumes you already have a Gatsby project to deploy. If you need a project, use the [quick Start](/docs/quick-start) to get started or fork 21YunBox's [Gatsby Example](https://github.com/tobyglei/gatsby) before continuing. +This guide assumes you already have a Gatsby project to deploy. If you need a project, use the [Quick Start](/docs/quick-start) to get started or fork 21YunBox's [Gatsby Example](https://gitee.com/eryiyunbox-examples/gatsby) before continuing. ## Setup @@ -46,4 +46,4 @@ Every deploy automatically and instantly invalidates the CDN cache, so your user ## Custom domains -Add your own domains to your site easily using 21YunBox's [custom domains](https://www.21yunbox.com/docs/v2/custom-domains.html) guide. +Add your own domains to your site easily using 21YunBox's [custom domains](https://www.21yunbox.com/docs/#/custom-domains) guide. diff --git a/docs/docs/preparing-for-deployment.md b/docs/docs/preparing-for-deployment.md index aad946e649535..b00229e719551 100644 --- a/docs/docs/preparing-for-deployment.md +++ b/docs/docs/preparing-for-deployment.md @@ -56,5 +56,6 @@ If you have a server from one of the following providers, you should read the in - [Microsoft Internet Information Server (IIS)](/docs/deploying-to-iis) - [Firebase Hosting](/docs/how-to/previews-deploys-hosting/deploying-to-firebase) - [KintoHub](/docs/deploying-to-kintohub) +- [21YunBox](/docs/how-to/previews-deploys-hosting/deploying-to-21yunbox) If you don't see the hosting you are interested, it's possible to add other hosting providers through [contributions to the docs](/contributing/docs-contributions). From 3ecc9d8f6d18189474c976f77510ee914b1c485c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulina=20Gavil=C3=A1n?= <32859437+pvpg@users.noreply.github.com> Date: Thu, 6 May 2021 04:08:27 -0500 Subject: [PATCH 24/45] chore(docs): Update sourcing-from-prismic (#29237) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Paulina Gavilán <32859437+PaulinaVPG@users.noreply.github.com> Co-authored-by: gatsbybot --- .../sourcing-data/sourcing-from-prismic.md | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md b/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md index 3ff61a23d02fe..b154b4e783635 100644 --- a/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md +++ b/docs/docs/how-to/sourcing-data/sourcing-from-prismic.md @@ -10,7 +10,7 @@ Moreover, their [Content Slices](https://prismic.io/feature/dynamic-layout-conte In addition to written instructions, this guide also includes videos for more complex steps. You can find all of them in a [YouTube playlist](https://www.youtube.com/playlist?list=PLB-cmN3u7PHJCG-phPyiydhHfiosyd0VC). -_Note: This guide uses the Gatsby Hello World starter to provide a very basic understanding of how Prismic can work with your Gatsby site. If you'd like to start with a full blown template, check out [gatsby-starter-prismic](https://github.com/LekoArts/gatsby-starter-prismic). If you're not familiar with Prismic and its functionalities yet, check out [Prismic's official documentation](https://prismic.io/docs) which also includes user guides and tutorials. This guide assumes that you have basic knowledge of Prismic & Gatsby (See [Gatsby's official tutorial](/tutorial))._ +_Note: This guide uses the Gatsby Hello World starter to provide a very basic understanding of how Prismic can work with your Gatsby site. If you'd like to start with a full blown template, check out [gatsby-starter-prismic](https://github.com/LekoArts/gatsby-starter-prismic). If you're not familiar with Prismic and its functionalities yet, check out [Prismic's official documentation](https://prismic.io/docs/technologies/gatsby) which also includes user guides and tutorials. This guide assumes that you have basic knowledge of Prismic & Gatsby (See [Gatsby's official tutorial](/tutorial))._ ## Setup @@ -56,9 +56,9 @@ API_KEY=paste-your-secret-access-token-here-wou7evoh0eexuf _Note: If you want to locally build your project you'll also have to create a `.env.production` file with the same content._ -Now you need to configure the plugin (See all [available options](https://www.npmjs.com/package/gatsby-source-prismic#how-to-use)). The `repositoryName` is the name you have entered at the creation of the repository (you'll also find it as the subdomain in the URL). The `linkResolver` function is used to process links in your content. Fields with rich text formatting or links to internal content use this function to generate the correct link URL. The document node, field key (i.e. API ID), and field value are provided to the function. This allows you to use different [link resolver logic](https://prismic.io/docs/javascript/query-the-api/link-resolving) for each field if necessary. +Now you need to configure the plugin (See all [available options](https://prismic.io/docs/technologies/configure-the-plugin-gatsby)). The `repositoryName` is the name you have entered at the creation of the repository (you'll also find it as the subdomain in the URL). The `linkResolver` function is used to process links in your content. Fields with rich text formatting or links to internal content use this function to generate the correct link URL. The document node, field key (i.e. API ID), and field value are provided to the function. This allows you to use different [link resolver logic](https://prismic.io/docs/technologies/link-resolver-gatsby) for each field if necessary. -Remember also to add an object of Prismic custom type JSON schemas. You can copy it from Prismic's JSON editor tab in your custom type page. It's important to keep the name of JSON file **the same** as your custom type's API ID. More information can be found in the [Prismic documentation](https://user-guides.prismic.io/en/articles/380227-introduction-to-custom-type-building) and [Source Plugin README](/plugins/gatsby-source-prismic/#providing-json-schemas). +Remember also to add an object of Prismic custom type JSON schemas. You can copy it from Prismic's JSON editor tab in your custom type page. It's important to keep the name of JSON file **the same** as your custom type's API ID. More information can be found in the [Prismic documentation](https://prismic.io/docs/technologies/configure-the-plugin-gatsby) and [Source Plugin README](/plugins/gatsby-source-prismic/#providing-json-schemas). Add the following to register the plugin: @@ -75,7 +75,9 @@ module.exports = { repositoryName: `your-repository-name`, accessToken: `${process.env.API_KEY}`, linkResolver: ({ node, key, value }) => post => `/${post.uid}`, - page: require("./src/schemas/page.json"), + schemas: { + post: require("./custom_types/post.json"), + }, }, }, ], @@ -99,11 +101,10 @@ exports.createPages = async ({ graphql, actions }) => { const pages = await graphql(` { allPrismicPost { - edges { - node { - id - uid - } + nodes { + id + uid + url } } } @@ -111,12 +112,12 @@ exports.createPages = async ({ graphql, actions }) => { const template = path.resolve("src/templates/post.jsx") - pages.data.allPrismicPost.edges.forEach(edge => { + pages.data.allPrismicPost.nodes.forEach(post => { createPage({ - path: `/${edge.node.uid}`, + path: `/${post.url}`, component: template, context: { - uid: edge.node.uid, + uid: post.uid, }, }) }) @@ -127,12 +128,14 @@ exports.createPages = async ({ graphql, actions }) => { import React from "react" import { graphql } from "gatsby" -const Post = ({ data: { prismicPost } }) => { - const { data } = prismicPost +const Post = ({ data }) => { + if (!data) return null + const post = data.prismicPost + return ( -

    {data.title.text}

    -
    +

    {post.data.title.text}

    +
    ) } @@ -188,14 +191,17 @@ Single pages (like your homepage, privacy policy page etc.) don't need [GraphQL import React from "react" import { graphql, Link } from "gatsby" -const Index = ({ data: { prismicHomepage } }) => ( - -

    {prismicHomepage.data.title.text}

    -
    - -) +const Index = ({ data }) => { + if (!data) return null + const home = data.prismicHomepage + + return ( + +

    {home.data.title.text}

    +
    + + ) +} export default Index @@ -228,3 +234,8 @@ This was an example meant to help you understand how Prismic works with Gatsby. As mentioned in the beginning of this guide, if you got stuck, you can compare your code to the [gatsby-starter-prismic](https://github.com/LekoArts/gatsby-starter-prismic) which is the project set up in the videos. A working example created by following this guide is available in the [commit history](https://github.com/LekoArts/gatsby-starter-prismic/tree/4aa5d52e79a0b4d90f0a671c24eb8289eb15a42b) of the aforementioned starter. More advanced usages of Prismic in Gatsby would be [Slices](https://intercom.help/prismicio/content-modeling-and-custom-types/field-reference/slices) and [Labels](https://intercom.help/prismicio/content-modeling-and-custom-types/structure-your-content/add-custom-styles-to-rich-text). + +## Interesting reads: + +1. [Official Prismic + Gatsby documentation](https://prismic.io/docs/technologies/gatsby) +2. [Prismic & Gatsby step by step guide](https://prismic.io/docs/technologies/step-by-step-guide-gatsby) From fc65c91d854f40fe0988f1d807c8806d895b3e1b Mon Sep 17 00:00:00 2001 From: Gabriel Rojas <35940919+gabo2192@users.noreply.github.com> Date: Thu, 6 May 2021 04:21:20 -0500 Subject: [PATCH 25/45] docs: Update example to apollo-client v3 (#29737) --- .../plugins-and-themes/creating-a-source-plugin.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md b/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md index 94e5fceb1c68a..0135a237c11ea 100644 --- a/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md +++ b/docs/docs/how-to/plugins-and-themes/creating-a-source-plugin.md @@ -201,7 +201,7 @@ You can query data from any location to source at build time using functions and You'll use several modules from npm to making fetching data with GraphQL easier. Install them in the `source-plugin` project with: ```shell:title=source-plugin -npm install apollo-cache-inmemory apollo-client apollo-link apollo-link-http apollo-link-ws apollo-utilities graphql graphql-tag node-fetch ws subscriptions-transport-ws +npm install @apollo-client graphql subscriptions-transport-ws ws ``` _Note: The libraries used here are specifically chosen so that the source plugin can support [GraphQL subscriptions](https://www.apollographql.com/docs/react/data/subscriptions/). You can fetch data the same way you would in any other Node.js app or however you are most comfortable._ @@ -214,15 +214,11 @@ Import the handful of Apollo packages that you installed to help set up an Apoll ```javascript:title=source-plugin/gatsby-node.js // highlight-start -const { ApolloClient } = require("apollo-client") -const { InMemoryCache } = require("apollo-cache-inmemory") -const { split } = require("apollo-link") -const { HttpLink } = require("apollo-link-http") -const { WebSocketLink } = require("apollo-link-ws") -const { getMainDefinition } = require("apollo-utilities") -const fetch = require("node-fetch") -const gql = require("graphql-tag") +const { ApolloClient, InMemoryCache, gql, split, HttpLink } = require("@apollo-client") +const { WebSocketLink } = require("@apollo/client/link/ws") +const { getMainDefinition } = require("@apollo/client/utilities") const WebSocket = require("ws") +const fetch = require("node-fetch") // highlight-end const POST_NODE_TYPE = `Post` From aa09e6fb2f525242680d53d77b5ce7f76b5b63a8 Mon Sep 17 00:00:00 2001 From: Jeremy Albright <1935258+Js-Brecht@users.noreply.github.com> Date: Wed, 5 May 2021 23:46:01 -1000 Subject: [PATCH 26/45] fix(gatsby): update plugin api types (#30819) Co-authored-by: gatsbybot --- packages/gatsby/index.d.ts | 277 ++++++++++++++++--------------------- 1 file changed, 120 insertions(+), 157 deletions(-) diff --git a/packages/gatsby/index.d.ts b/packages/gatsby/index.d.ts index 0bf5ad6530db9..23531e72f0ee2 100644 --- a/packages/gatsby/index.d.ts +++ b/packages/gatsby/index.d.ts @@ -207,7 +207,10 @@ export interface GatsbyConfig { * * @see https://www.gatsbyjs.org/docs/node-apis/ */ -export interface GatsbyNode { +export interface GatsbyNode< + TNode extends Record = Record, + TContext = Record +> { /** * Tell plugins to add pages. This extension point is called only after the initial * sourcing and transformation of nodes plus creation of the GraphQL schema are @@ -219,9 +222,9 @@ export interface GatsbyNode { args: CreatePagesArgs & { traceId: "initial-createPages" }, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Like `createPages` but for plugins who want to manage creating and removing @@ -241,9 +244,9 @@ export interface GatsbyNode { args: CreatePagesArgs & { traceId: "initial-createPagesStatefully" }, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Let plugins extend/mutate the site's Babel configuration. @@ -252,9 +255,9 @@ export interface GatsbyNode { */ onCreateBabelConfig?( args: CreateBabelConfigArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Run when gatsby develop server is started, its useful to add proxy and middleware @@ -272,9 +275,9 @@ export interface GatsbyNode { */ onCreateDevServer?( args: CreateDevServerArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + calllback: PluginCallback + ): void | Promise /** * Called when a new node is created. Plugins wishing to extend or @@ -289,11 +292,11 @@ export interface GatsbyNode { * // create a new node field. * } */ - onCreateNode?( + onCreateNode?( args: CreateNodeArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Called before scheduling a `onCreateNode` callback for a plugin. If it returns falsy @@ -304,9 +307,9 @@ export interface GatsbyNode { * @example * exports.unstable_shouldOnCreateNode = ({node}, pluginOptions) => node.internal.type === 'Image' */ - unstable_shouldOnCreateNode?( + unstable_shouldOnCreateNode?( args: { node: TNode }, - options?: PluginOptions + options: PluginOptions ): boolean /** @@ -317,11 +320,11 @@ export interface GatsbyNode { * See the guide [Creating and Modifying Pages](https://www.gatsbyjs.org/docs/creating-and-modifying-pages/) * for more on this API. */ - onCreatePage?>( + onCreatePage?( args: CreatePageArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Let plugins extend/mutate the site's webpack configuration. @@ -329,51 +332,51 @@ export interface GatsbyNode { */ onCreateWebpackConfig?( args: CreateWebpackConfigArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** Called at the end of the bootstrap process after all other extension APIs have been called. */ onPostBootstrap?( args: ParentSpanPluginArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** The last extension point called after all other parts of the build process are complete. */ onPostBuild?( args: BuildArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** Called at the end of the bootstrap process after all other extension APIs have been called. */ onPreBootstrap?( args: ParentSpanPluginArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** The first extension point called during the build process. Called after the bootstrap has completed but before the build steps start. */ onPreBuild?( args: BuildArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** Called once Gatsby has initialized itself and is ready to bootstrap your site. */ onPreExtractQueries?( args: ParentSpanPluginArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** The first API called during Gatsby execution, runs as soon as plugins are loaded, before cache initialization and bootstrap preparation. */ onPreInit?( args: ParentSpanPluginArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Ask compile-to-js plugins to process source to JavaScript so the query @@ -381,9 +384,9 @@ export interface GatsbyNode { */ preprocessSource?( args: PreprocessSourceArgs, - options?: PluginOptions, - callback?: PluginCallback - ): void + options: PluginOptions, + callback: PluginCallback + ): void | Promise /** * Lets plugins implementing support for other compile-to-js add to the list of "resolvable" file extensions. Gatsby supports `.js` and `.jsx` by default. @@ -391,8 +394,8 @@ export interface GatsbyNode { resolvableExtensions?( args: ResolvableExtensionsArgs, options: PluginOptions, - callback: PluginCallback - ): any[] | Promise + callback: PluginCallback> + ): Array | Promise> /** * Called during the creation of the GraphQL schema. Allows plugins @@ -413,19 +416,11 @@ export interface GatsbyNode { * * @see https://www.gatsbyjs.org/docs/node-apis/#setFieldsOnGraphQLNodeType */ - setFieldsOnGraphQLNodeType?( - args: SetFieldsOnGraphQLNodeTypeArgs, - options: PluginOptions - ): any - setFieldsOnGraphQLNodeType?( - args: SetFieldsOnGraphQLNodeTypeArgs, - options: PluginOptions - ): Promise setFieldsOnGraphQLNodeType?( args: SetFieldsOnGraphQLNodeTypeArgs, options: PluginOptions, - callback: PluginCallback - ): void + callback: PluginCallback + ): any /** * Extension point to tell plugins to source nodes. This API is called during @@ -437,13 +432,11 @@ export interface GatsbyNode { * * @see https://www.gatsbyjs.org/docs/node-apis/#sourceNodes */ - sourceNodes?(args: SourceNodesArgs, options: PluginOptions): any - sourceNodes?(args: SourceNodesArgs, options: PluginOptions): Promise sourceNodes?( args: SourceNodesArgs, options: PluginOptions, - callback: PluginCallback - ): void + callback: PluginCallback + ): void | Promise /** * Add custom field resolvers to the GraphQL schema. @@ -482,16 +475,11 @@ export interface GatsbyNode { * * @see https://www.gatsbyjs.org/docs/node-apis/#createResolvers */ - createResolvers?(args: CreateResolversArgs, options: PluginOptions): any - createResolvers?( - args: CreateResolversArgs, - options: PluginOptions - ): Promise createResolvers?( args: CreateResolversArgs, options: PluginOptions, - callback: PluginCallback - ): void + callback: PluginCallback + ): void | Promise /** * Customize Gatsby’s GraphQL schema by creating type definitions, field extensions or adding third-party schemas. @@ -503,19 +491,11 @@ export interface GatsbyNode { * to customize added third-party types, use the createResolvers API. * @see https://www.gatsbyjs.org/docs/node-apis/#createSchemaCustomization */ - createSchemaCustomization?( - args: CreateSchemaCustomizationArgs, - options: PluginOptions - ): any - createSchemaCustomization?( - args: CreateSchemaCustomizationArgs, - options: PluginOptions - ): Promise createSchemaCustomization?( args: CreateSchemaCustomizationArgs, options: PluginOptions, - callback: PluginCallback - ): void + callback: PluginCallback + ): void | Promise /** * Add a Joi schema for the possible options of your plugin. @@ -529,52 +509,65 @@ export interface GatsbyNode { * * @see https://www.gatsbyjs.org/docs/browser-apis/ */ -export interface GatsbyBrowser { - disableCorePrefetching?(args: BrowserPluginArgs, options: PluginOptions): any - onClientEntry?(args: BrowserPluginArgs, options: PluginOptions): any - onInitialClientRender?(args: BrowserPluginArgs, options: PluginOptions): any +export interface GatsbyBrowser< + DataType = Record, + PageContext = Record, + LocationState = WindowLocation["state"] +> { + disableCorePrefetching?( + args: BrowserPluginArgs, + options: PluginOptions + ): boolean + onClientEntry?(args: BrowserPluginArgs, options: PluginOptions): void + onInitialClientRender?(args: BrowserPluginArgs, options: PluginOptions): void onPostPrefetchPathname?( args: PrefetchPathnameArgs, options: PluginOptions - ): any - onPreRouteUpdate?(args: RouteUpdateArgs, options: PluginOptions): any - onPrefetchPathname?(args: PrefetchPathnameArgs, options: PluginOptions): any - onRouteUpdate?(args: RouteUpdateArgs, options: PluginOptions): any + ): void + onPreRouteUpdate?(args: RouteUpdateArgs, options: PluginOptions): void + onPrefetchPathname?(args: PrefetchPathnameArgs, options: PluginOptions): void + onRouteUpdate?(args: RouteUpdateArgs, options: PluginOptions): void onRouteUpdateDelayed?( args: RouteUpdateDelayedArgs, options: PluginOptions - ): any - onServiceWorkerActive?(args: ServiceWorkerArgs, options: PluginOptions): any + ): void + onServiceWorkerActive?(args: ServiceWorkerArgs, options: PluginOptions): void onServiceWorkerInstalled?( args: ServiceWorkerArgs, options: PluginOptions - ): any + ): void onServiceWorkerRedundant?( args: ServiceWorkerArgs, options: PluginOptions - ): any + ): void onServiceWorkerUpdateFound?( args: ServiceWorkerArgs, options: PluginOptions - ): any + ): void onServiceWorkerUpdateReady?( args: ServiceWorkerArgs, options: PluginOptions - ): any - registerServiceWorker?(args: BrowserPluginArgs, options: PluginOptions): any + ): void + registerServiceWorker?( + args: BrowserPluginArgs, + options: PluginOptions + ): boolean replaceHydrateFunction?( args: BrowserPluginArgs, options: PluginOptions ): Renderer - shouldUpdateScroll?(args: ShouldUpdateScrollArgs, options: PluginOptions): any + shouldUpdateScroll?( + args: ShouldUpdateScrollArgs, + options: PluginOptions + ): boolean | [number, number] | string wrapPageElement?( - args: WrapPageElementBrowserArgs, + args: WrapPageElementBrowserArgs, options: PluginOptions - ): any + ): React.ReactElement wrapRootElement?( args: WrapRootElementBrowserArgs, options: PluginOptions - ): any + ): React.ReactElement } /** @@ -582,7 +575,10 @@ export interface GatsbyBrowser { * * @see https://www.gatsbyjs.org/docs/ssr-apis/ */ -export interface GatsbySSR { +export interface GatsbySSR< + DataSet = Record, + PageContext = Record +> { /** * Called after every page Gatsby server renders while building HTML so you can * replace head components to be rendered in your `html.js`. This is useful if @@ -602,16 +598,7 @@ export interface GatsbySSR { * replaceHeadComponents(headComponents) * } */ - onPreRenderHTML?(args: PreRenderHTMLArgs, options: PluginOptions): any - onPreRenderHTML?( - args: PreRenderHTMLArgs, - options: PluginOptions - ): Promise - onPreRenderHTML?( - args: PreRenderHTMLArgs, - options: PluginOptions, - callback: PluginCallback - ): void + onPreRenderHTML?(args: PreRenderHTMLArgs, options: PluginOptions): void /** * Called after every page Gatsby server renders while building HTML so you can @@ -650,13 +637,7 @@ export interface GatsbySSR { * ]) * } */ - onRenderBody?(args: RenderBodyArgs, options: PluginOptions): any - onRenderBody?(args: RenderBodyArgs, options: PluginOptions): Promise - onRenderBody?( - args: RenderBodyArgs, - options: PluginOptions, - callback: PluginCallback - ): void + onRenderBody?(args: RenderBodyArgs, options: PluginOptions): void /** * Replace the default server renderer. This is useful for integration with @@ -674,16 +655,7 @@ export interface GatsbySSR { * replaceBodyHTMLString(inlinedHTML) * } */ - replaceRenderer?(args: ReplaceRendererArgs, options: PluginOptions): any - replaceRenderer?( - args: ReplaceRendererArgs, - options: PluginOptions - ): Promise - replaceRenderer?( - args: ReplaceRendererArgs, - options: PluginOptions, - callback: PluginCallback - ): void + replaceRenderer?(args: ReplaceRendererArgs, options: PluginOptions): void /** * Allow a plugin to wrap the page element. @@ -702,16 +674,11 @@ export interface GatsbySSR { * return {element} * } */ - wrapPageElement?(args: WrapPageElementNodeArgs, options: PluginOptions): any wrapPageElement?( - args: WrapPageElementNodeArgs, + args: WrapPageElementNodeArgs, options: PluginOptions - ): Promise - wrapPageElement?( - args: WrapPageElementNodeArgs, - options: PluginOptions, - callback: PluginCallback - ): void + ): React.ReactElement + /** * Allow a plugin to wrap the root element. * @@ -734,16 +701,10 @@ export interface GatsbySSR { * ) * } */ - wrapRootElement?(args: WrapRootElementNodeArgs, options: PluginOptions): any wrapRootElement?( args: WrapRootElementNodeArgs, options: PluginOptions - ): Promise - wrapRootElement?( - args: WrapRootElementNodeArgs, - options: PluginOptions, - callback: PluginCallback - ): void + ): React.ReactElement } export interface PluginOptions { @@ -751,7 +712,7 @@ export interface PluginOptions { [key: string]: unknown } -export type PluginCallback = (err: Error | null, result?: any) => void +export type PluginCallback = (err: Error | null, result?: R) => void export interface CreatePagesArgs extends ParentSpanPluginArgs { graphql( @@ -779,9 +740,10 @@ export interface CreateDevServerArgs extends ParentSpanPluginArgs { app: any } -export interface CreateNodeArgs - extends ParentSpanPluginArgs { - node: Node & TNode +export interface CreateNodeArgs< + TNode extends Record = Record +> extends ParentSpanPluginArgs { + node: Node traceId: string traceTags: { nodeId: string @@ -925,16 +887,16 @@ export interface ReplaceRendererArgs extends NodePluginArgs { } export interface WrapPageElementNodeArgs< - DataType = object, - PageContextType = object + DataType = Record, + PageContextType = Record > extends NodePluginArgs { - element: object + element: React.ReactElement props: PageProps pathname: string } export interface WrapRootElementNodeArgs extends NodePluginArgs { - element: object + element: React.ReactElement } export interface ParentSpanPluginArgs extends NodePluginArgs { @@ -1121,8 +1083,8 @@ export interface Actions { deleteNode(node: NodeInput, plugin?: ActionPlugin): void /** @see https://www.gatsbyjs.org/docs/actions/#createNode */ - createNode( - node: NodeInput, + createNode>( + node: NodeInput & TNode, plugin?: ActionPlugin, options?: ActionOptions ): void @@ -1450,15 +1412,16 @@ export interface ShouldUpdateScrollArgs extends BrowserPluginArgs { } export interface WrapPageElementBrowserArgs< - DataType = object, - PageContextType = object + DataType = Record, + PageContextType = Record, + LocationState = WindowLocation["state"] > extends BrowserPluginArgs { - element: object - props: PageProps + element: React.ReactElement + props: PageProps } export interface WrapRootElementBrowserArgs extends BrowserPluginArgs { - element: object + element: React.ReactElement pathname: string } From dad0032db4ea24f6923033906e3b29552f05c7ed Mon Sep 17 00:00:00 2001 From: "Simen A. W. Olsen" Date: Thu, 6 May 2021 11:46:50 +0200 Subject: [PATCH 27/45] feat(gatsby-plugin-image): Export ImageDataLike type (#30590) Co-authored-by: gatsbybot --- packages/gatsby-plugin-image/src/components/hooks.ts | 2 +- packages/gatsby-plugin-image/src/index.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/gatsby-plugin-image/src/components/hooks.ts b/packages/gatsby-plugin-image/src/components/hooks.ts index 54f9afd3a9e4f..1cb84c2ccebbe 100644 --- a/packages/gatsby-plugin-image/src/components/hooks.ts +++ b/packages/gatsby-plugin-image/src/components/hooks.ts @@ -61,7 +61,7 @@ const isGatsbyImageDataParent = ( node: IGatsbyImageDataParent | any ): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData) -type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData +export type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData export const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => { if (isGatsbyImageData(node)) { return node diff --git a/packages/gatsby-plugin-image/src/index.ts b/packages/gatsby-plugin-image/src/index.ts index eb6ee653dd5e2..5961811df1506 100644 --- a/packages/gatsby-plugin-image/src/index.ts +++ b/packages/gatsby-plugin-image/src/index.ts @@ -15,6 +15,7 @@ export { IArtDirectedImage, IGetImageDataArgs, IUrlBuilderArgs, + ImageDataLike, } from "./components/hooks" export { generateImageData, From fef8d6ba5fdb1386fd7716dc59423c65fa9fd402 Mon Sep 17 00:00:00 2001 From: Vladimir Razuvaev Date: Thu, 6 May 2021 17:46:31 +0700 Subject: [PATCH 28/45] perf(gatsby): use fastq instead of better-queue + refactor (#31269) * perf(gatsby): refactor query queueing and use fastq instead of better-queue * restore graphql-runner * remove "better-queue" dependency --- packages/gatsby/package.json | 1 - .../__tests__/better-queue-custom-store.ts | 195 ----------------- .../src/query/better-queue-custom-store.ts | 202 ------------------ packages/gatsby/src/query/index.js | 166 ++++++++++---- packages/gatsby/src/query/queue.ts | 169 --------------- 5 files changed, 125 insertions(+), 608 deletions(-) delete mode 100644 packages/gatsby/src/query/__tests__/better-queue-custom-store.ts delete mode 100644 packages/gatsby/src/query/better-queue-custom-store.ts delete mode 100644 packages/gatsby/src/query/queue.ts diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 5e46d79a64e62..cf9e7c9ec9d8a 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -37,7 +37,6 @@ "babel-plugin-remove-graphql-queries": "^3.5.0-next.0", "babel-preset-gatsby": "^1.5.0-next.0", "better-opn": "^2.0.0", - "better-queue": "^3.8.10", "bluebird": "^3.7.2", "body-parser": "^1.19.0", "browserslist": "^4.12.2", diff --git a/packages/gatsby/src/query/__tests__/better-queue-custom-store.ts b/packages/gatsby/src/query/__tests__/better-queue-custom-store.ts deleted file mode 100644 index 7b3171001ed33..0000000000000 --- a/packages/gatsby/src/query/__tests__/better-queue-custom-store.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { memoryStoreWithPriorityBuckets } from "../better-queue-custom-store" -import pify from "pify" - -// those are tests copied from https://github.com/diamondio/better-queue-store-test/blob/master/tester.js -// and converted from mocha to jest + used pify to make it nicer to read than callback chain -describe(`Custom better-queue memory store`, () => { - let store - - const functions = [ - `connect`, - `getTask`, - `putTask`, - `deleteTask`, - `takeFirstN`, - `takeLastN`, - `getLock`, - `getRunningTasks`, - `releaseLock`, - ] - beforeEach(() => { - store = memoryStoreWithPriorityBuckets() - functions.forEach(fnName => { - if (store[fnName]) { - store[fnName] = pify(store[fnName]) - } - }) - }) - - it(`all required functions exist`, () => { - functions.forEach(fnName => { - expect(typeof store[fnName]).toBe(`function`) - }) - }) - - it(`connect starts empty`, async () => { - const len = await store.connect() - expect(len).toBe(0) - }) - - it(`put and get`, async () => { - await store.connect() - await store.putTask(`test`, { value: `secret` }, 1) - - const task = await store.getTask(`test`) - expect(task.value).toBe(`secret`) - }) - - it(`put 3, take last 2, take last 2`, async () => { - await store.connect() - await store.putTask(`task1`, { value: `secret 1` }, 1) - await store.putTask(`task2`, { value: `secret 2` }, 1) - await store.putTask(`task3`, { value: `secret 3` }, 1) - - let lockId: string = await store.takeLastN(2) - let tasks: any = await store.getLock(lockId) - - // should get the third task - expect(tasks.task3.value).toBe(`secret 3`) - // should get the second task - expect(tasks.task2.value).toBe(`secret 2`) - // should not get the first task - expect(tasks.task1).toBeUndefined() - - lockId = await store.takeLastN(2) - tasks = await store.getLock(lockId) - - // should not get the third task - expect(tasks.task3).toBeUndefined() - // should not get the second task - expect(tasks.task2).toBeUndefined() - // should get the first task - expect(tasks.task1.value).toBe(`secret 1`) - }) - - it(`put 3, take first 2, take first 2`, async () => { - await store.connect() - await store.putTask(`task1`, { value: `secret 1` }, 1) - await store.putTask(`task2`, { value: `secret 2` }, 1) - await store.putTask(`task3`, { value: `secret 3` }, 1) - - let lockId = await store.takeFirstN(2) - let tasks = await store.getLock(lockId) - - // should get the first task - expect(tasks.task1.value).toBe(`secret 1`) - // should get the second task - expect(tasks.task2.value).toBe(`secret 2`) - // should not get the third task - expect(tasks.task3).toBeUndefined() - - lockId = await store.takeFirstN(2) - tasks = await store.getLock(lockId) - - // should not get the first task - expect(tasks.task1).toBeUndefined() - // should not get the second task - expect(tasks.task2).toBeUndefined() - // should get the third task - expect(tasks.task3.value).toBe(`secret 3`) - }) - - it(`get and release workers`, async () => { - await store.connect() - await store.putTask(`task1`, { value: `secret 1` }, 1) - await store.putTask(`task2`, { value: `secret 2` }, 1) - await store.putTask(`task3`, { value: `secret 3` }, 1) - - const lock1: string = await store.takeFirstN(1) - const lock2: string = await store.takeLastN(1) - - let workers = await store.getRunningTasks() - - // should have first lock - expect(workers[lock1]).toBeDefined() - // should have second lock - expect(workers[lock2]).toBeDefined() - // should have two workers - expect(Object.keys(workers).length).toBe(2) - // should have task1 - expect(workers[lock1].task1.value).toBe(`secret 1`) - // should have task3 - expect(workers[lock2].task3.value).toBe(`secret 3`) - - await store.releaseLock(lock1) - await store.releaseLock(lock2) - - workers = await store.getRunningTasks() - - // should not have lock 1 - expect(workers[lock1]).toBeUndefined() - // should not have lock 2 - expect(workers[lock2]).toBeUndefined() - // should have no workers - expect(Object.keys(workers).length).toBe(0) - }) - - it(`put 4, delete 1, take first 2`, async () => { - await store.connect() - await store.putTask(`task1`, { value: `secret 1` }, 1) - await store.putTask(`task2`, { value: `secret 2` }, 1) - await store.putTask(`task3`, { value: `secret 3` }, 1) - await store.putTask(`task4`, { value: `secret 4` }, 1) - - // Remove the second - await store.deleteTask(`task2`) - - // take 2 - const lockId: string = await store.takeFirstN(2) - const tasks = await store.getLock(lockId) - - // should get the first task - expect(tasks.task1.value).toBe(`secret 1`) - // should not get the second task - expect(tasks.task2).toBeUndefined() - // should get the third task - expect(tasks.task3.value).toBe(`secret 3`) - // should not get the fourth task - expect(tasks.task4).toBeUndefined() - }) - - // extra tests to cover priority - it(`handles priority`, async () => { - await store.connect() - await store.putTask(`task1`, { value: `secret 1` }, 1) - await store.putTask(`task2`, { value: `secret 2` }, 3) - await store.putTask(`task3`, { value: `secret 3` }, 4) - await store.putTask(`task4`, { value: `secret 4` }, 2) - - // take first 2 - let lockId: string = await store.takeFirstN(2) - let tasks = await store.getLock(lockId) - - // should get the third task - expect(tasks.task3.value).toBe(`secret 3`) - // should get the second task - expect(tasks.task2.value).toBe(`secret 2`) - // should not get first task - expect(tasks.task1).toBeUndefined() - // should not get the fourth task - expect(tasks.task4).toBeUndefined() - - // take last 1 - lockId = await store.takeLastN(1) - tasks = await store.getLock(lockId) - - // should get the first task - expect(tasks.task1.value).toBe(`secret 1`) - // should not get second task - expect(tasks.task2).toBeUndefined() - // should not get third task - expect(tasks.task3).toBeUndefined() - // should not get the fourth task - expect(tasks.task4).toBeUndefined() - }) -}) diff --git a/packages/gatsby/src/query/better-queue-custom-store.ts b/packages/gatsby/src/query/better-queue-custom-store.ts deleted file mode 100644 index 4b90626f65061..0000000000000 --- a/packages/gatsby/src/query/better-queue-custom-store.ts +++ /dev/null @@ -1,202 +0,0 @@ -import { Store } from "better-queue" - -export function memoryStoreWithPriorityBuckets(): Store { - type RunningTasks = Record - let uuid = 0 - - /** - * Task ids grouped by priority - */ - const queueMap = new Map>() - - /** - * Task id to task lookup - */ - const tasks = new Map() - - /** - * Task id to priority lookup - */ - const taskIdToPriority = new Map() - - /** - * Lock to running tasks object - */ - const running: Record = {} - - let priorityKeys: Array = [] - const updatePriorityKeys = (): void => { - priorityKeys = Array.from(queueMap.keys()).sort((a, b) => b - a) - } - - const addTaskWithPriority = (taskId: string, priority: number): boolean => { - let needToUpdatePriorityKeys = false - let priorityTasks = queueMap.get(priority) - if (!priorityTasks) { - priorityTasks = [] - queueMap.set(priority, priorityTasks) - needToUpdatePriorityKeys = true - } - - taskIdToPriority.set(taskId, priority) - priorityTasks.push(taskId) - return needToUpdatePriorityKeys - } - - return { - connect: function (cb): void { - cb(null, tasks.size) - }, - getTask: function (taskId, cb): void { - // @ts-ignore - cb(null, tasks.get(taskId)) - }, - deleteTask: function (taskId, cb): void { - if (tasks.get(taskId)) { - tasks.delete(taskId) - const priority = taskIdToPriority.get(taskId) - if (priority) { - const priorityTasks = queueMap.get(priority) ?? [] - priorityTasks.splice(priorityTasks.indexOf(taskId), 1) - taskIdToPriority.delete(taskId) - } - } - cb() - }, - putTask: function (taskId, task, priority = 0, cb): void { - const oldTask = tasks.get(taskId) - tasks.set(taskId, task) - let needToUpdatePriorityKeys = false - if (oldTask) { - const oldPriority = taskIdToPriority.get(taskId) - - if (oldPriority && oldPriority !== priority) { - const oldPriorityTasks = queueMap.get(oldPriority) ?? [] - oldPriorityTasks.splice(oldPriorityTasks.indexOf(taskId), 1) - - if ( - addTaskWithPriority(taskId, priority) // || - // oldPriorityTasks.length === 0 - ) { - needToUpdatePriorityKeys = true - } - } - } else { - needToUpdatePriorityKeys = addTaskWithPriority(taskId, priority) - } - - if (needToUpdatePriorityKeys) { - updatePriorityKeys() - } - cb(null) - }, - takeFirstN: function (n, cb): void { - const lockId = String(uuid++) - let remainingTasks = n - let needToUpdatePriorityKeys = false - let haveSomeTasks = false - const tasksToRun: RunningTasks = {} - - for (const priority of priorityKeys) { - const tasksWithSamePriority = queueMap.get(priority) - const grabbedTaskIds = - tasksWithSamePriority?.splice(0, remainingTasks) ?? [] - grabbedTaskIds.forEach(taskId => { - // add task to task that will run - // and remove it from waiting list - const task = tasks.get(taskId) - if (task) { - tasksToRun[taskId] = task - tasks.delete(taskId) - taskIdToPriority.delete(taskId) - haveSomeTasks = true - } - }) - - remainingTasks -= grabbedTaskIds.length - if (tasksWithSamePriority?.length === 0) { - queueMap.delete(priority) - needToUpdatePriorityKeys = true - } - if (remainingTasks <= 0) { - break - } - } - - if (needToUpdatePriorityKeys) { - updatePriorityKeys() - } - - if (haveSomeTasks) { - running[lockId] = tasksToRun - } - - cb(null, lockId) - }, - takeLastN: function (n, cb): void { - // This is not really used by Gatsby, but will be implemented for - // completion in easiest possible way (so not very performant). - // Mostly done so generic test suite used by other stores passes. - // This is mostly C&P from takeFirstN, with array reversal and different - // splice args - const lockId = String(uuid++) - let remainingTasks = n - let needToUpdatePriorityKeys = false - let haveSomeTasks = false - const tasksToRun = {} - - for (const priority of priorityKeys.reverse()) { - const tasksWithSamePriority = queueMap.get(priority) ?? [] - const deleteCount = Math.min( - remainingTasks, - tasksWithSamePriority.length - ) - const grabbedTaskIds = tasksWithSamePriority.splice( - tasksWithSamePriority.length - deleteCount, - deleteCount - ) - grabbedTaskIds.forEach(taskId => { - // add task to task that will run - // and remove it from waiting list - tasksToRun[taskId] = tasks.get(taskId) - tasks.delete(taskId) - taskIdToPriority.delete(taskId) - haveSomeTasks = true - }) - - remainingTasks -= grabbedTaskIds.length - if (tasksWithSamePriority.length === 0) { - queueMap.delete(priority) - needToUpdatePriorityKeys = true - } - if (remainingTasks <= 0) { - break - } - } - - if (needToUpdatePriorityKeys) { - updatePriorityKeys() - } - - if (haveSomeTasks) { - running[lockId] = tasksToRun - } - - cb(null, lockId) - }, - // @ts-ignore - // getRunningTasks is an extension to the interface, and is only used in the tests - getRunningTasks: function ( - cb: (err?: any, value?: Record) => void - ): void { - cb(null, running) - }, - getLock: function (lockId, cb): void { - cb(null, running[lockId]) - }, - releaseLock: function (lockId, cb): void { - delete running[lockId] - cb(null) - }, - } -} diff --git a/packages/gatsby/src/query/index.js b/packages/gatsby/src/query/index.js index 37f02cbd64968..ba66598bfef2b 100644 --- a/packages/gatsby/src/query/index.js +++ b/packages/gatsby/src/query/index.js @@ -1,7 +1,19 @@ const _ = require(`lodash`) +const fastq = require(`fastq`) const { store } = require(`../redux`) const { hasFlag, FLAG_ERROR_EXTRACTION } = require(`../redux/reducers/queries`) -const queryQueue = require(`./queue`) +const { queryRunner } = require(`./query-runner`) +const { websocketManager } = require(`../utils/websocket-manager`) +const { GraphQLRunner } = require(`./graphql-runner`) + +if (process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY) { + console.info( + `GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY: Running with concurrency set to \`${process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY}\`` + ) +} + +const concurrency = + Number(process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY) || 4 /** * Calculates the set of dirty query IDs (page.paths, or staticQuery.id's). @@ -9,7 +21,7 @@ const queryQueue = require(`./queue`) * Dirty state is tracked in `queries` reducer, here we simply filter * them from all tracked queries. */ -const calcDirtyQueryIds = state => { +function calcDirtyQueryIds(state) { const { trackedQueries, trackedComponents, deletedQueries } = state.queries const queriesWithBabelErrors = new Set() @@ -36,7 +48,7 @@ const calcDirtyQueryIds = state => { /** * groups queryIds by whether they are static or page queries. */ -const groupQueryIds = queryIds => { +function groupQueryIds(queryIds) { const grouped = _.groupBy(queryIds, p => p.slice(0, 4) === `sq--` ? `static` : `page` ) @@ -46,18 +58,83 @@ const groupQueryIds = queryIds => { } } -const processQueries = async ( - queryJobs, - { activity, graphqlRunner, graphqlTracing } -) => { - const queue = queryQueue.createAppropriateQueue(graphqlRunner, { - graphqlTracing, +function createQueue({ + createJobFn, + state, + activity, + graphqlRunner, + graphqlTracing, +}) { + if (!graphqlRunner) { + graphqlRunner = new GraphQLRunner(store, { graphqlTracing }) + } + state = state || store.getState() + + function worker(queryId, cb) { + const job = createJobFn(state, queryId) + if (!job) { + cb(null, undefined) + return + } + queryRunner(graphqlRunner, job, activity?.span) + .then(result => { + if (activity.tick) { + activity.tick() + } + cb(null, { job, result }) + }) + .catch(error => { + cb(error) + }) + } + // Note: fastq.promise version is much slower + return fastq(worker, concurrency) +} + +async function processQueries({ + queryIds, + createJobFn, + onQueryDone, + state, + activity, + graphqlRunner, + graphqlTracing, +}) { + return new Promise((resolve, reject) => { + const fastQueue = createQueue({ + createJobFn, + state, + activity, + graphqlRunner, + graphqlTracing, + }) + + queryIds.forEach(queryId => { + fastQueue.push(queryId, (err, res) => { + if (err) { + fastQueue.kill() + reject(err) + return + } + if (res && onQueryDone) { + onQueryDone(res) + } + }) + }) + + if (!fastQueue.idle()) { + fastQueue.drain = () => resolve() + } else { + resolve() + } }) - return queryQueue.processBatch(queue, queryJobs, activity) } -const createStaticQueryJob = (state, queryId) => { +function createStaticQueryJob(state, queryId) { const component = state.staticQueryComponents.get(queryId) + if (!component) { + return undefined + } const { hash, id, query, componentPath } = component return { id: queryId, @@ -68,48 +145,55 @@ const createStaticQueryJob = (state, queryId) => { } } -const processStaticQueries = async ( - queryIds, - { state, activity, graphqlRunner, graphqlTracing } -) => { - state = state || store.getState() - await processQueries( - queryIds.map(id => createStaticQueryJob(state, id)), - { - activity, - graphqlRunner, - graphqlTracing, - } - ) +function onDevelopStaticQueryDone({ job, result }) { + websocketManager.emitStaticQueryData({ + result, + id: job.hash, + }) } -const processPageQueries = async ( +async function processStaticQueries( queryIds, { state, activity, graphqlRunner, graphqlTracing } -) => { - state = state || store.getState() - // Make sure we filter out pages that don't exist. An example is - // /dev-404-page/, whose SitePage node is created via - // `internal-data-bridge`, but the actual page object is only - // created during `gatsby develop`. - - const jobs = [] - queryIds.forEach(id => { - const page = state.pages.get(id) - if (page) { - const job = createPageQueryJob(state, page) - jobs.push(job) - } +) { + return processQueries({ + queryIds, + createJobFn: createStaticQueryJob, + onQueryDone: + process.env.NODE_ENV === `production` + ? undefined + : onDevelopStaticQueryDone, + state, + activity, + graphqlRunner, + graphqlTracing, }) +} - await processQueries(jobs, { +async function processPageQueries( + queryIds, + { state, activity, graphqlRunner, graphqlTracing } +) { + return processQueries({ + queryIds, + createJobFn: createPageQueryJob, + state, activity, graphqlRunner, graphqlTracing, }) } -const createPageQueryJob = (state, page) => { +function createPageQueryJob(state, queryId) { + const page = state.pages.get(queryId) + + // Make sure we filter out pages that don't exist. An example is + // /dev-404-page/, whose SitePage node is created via + // `internal-data-bridge`, but the actual page object is only + // created during `gatsby develop`. + if (!page) { + return undefined + } const component = state.components.get(page.componentPath) const { path, componentPath, context } = page const { query } = component diff --git a/packages/gatsby/src/query/queue.ts b/packages/gatsby/src/query/queue.ts deleted file mode 100644 index 68152bae7602d..0000000000000 --- a/packages/gatsby/src/query/queue.ts +++ /dev/null @@ -1,169 +0,0 @@ -import Queue from "better-queue" -import { store } from "../redux" -import { memoryStoreWithPriorityBuckets } from "../query/better-queue-custom-store" -import { queryRunner } from "../query/query-runner" -import { websocketManager } from "../utils/websocket-manager" -import { GraphQLRunner, IGraphQLRunnerOptions } from "./graphql-runner" -import BetterQueue from "better-queue" -import { ProgressActivityTracker } from "../.." - -export type Task = any -type TaskResult = any - -if (process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY) { - console.info( - `GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY: Running with concurrency set to \`${process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY}\`` - ) -} - -const createBaseOptions = (): Pick< - BetterQueue.QueueOptions, - "concurrent" | "store" -> => { - return { - concurrent: Number(process.env.GATSBY_EXPERIMENTAL_QUERY_CONCURRENCY) || 4, - store: memoryStoreWithPriorityBuckets(), - } -} - -const createBuildQueue = ( - graphqlRunner: GraphQLRunner, - runnerOptions: IGraphQLRunnerOptions = {} -): Queue => { - if (!graphqlRunner) { - graphqlRunner = new GraphQLRunner(store, runnerOptions) - } - - const queueOptions: BetterQueue.QueueOptions = { - ...createBaseOptions(), - async process({ job, activity }, callback): Promise { - try { - const result = await queryRunner(graphqlRunner, job, activity?.span) - callback(null, result) - } catch (e) { - callback(e) - } - }, - } - return new Queue(queueOptions) -} - -const createDevelopQueue = (getRunner: () => GraphQLRunner): Queue => { - const queueOptions: BetterQueue.QueueOptions = { - ...createBaseOptions(), - priority: ({ job }, cb): void => { - if (job.id && websocketManager.activePaths.has(job.id)) { - cb(null, 10) - } else { - cb(null, 1) - } - }, - merge: ( - _oldTask: Task, - newTask: Task, - cb: (err?: unknown, newTask?: Task) => void - ): void => { - cb(null, newTask) - }, - async process({ job: queryJob, activity }, callback): Promise { - try { - const result = await queryRunner(getRunner(), queryJob, activity?.span) - if (!queryJob.isPage) { - websocketManager.emitStaticQueryData({ - result, - id: queryJob.hash, - }) - } - - callback(null, result) - } catch (e) { - callback(e) - } - }, - } - - return new Queue(queueOptions) -} - -const createAppropriateQueue = ( - graphqlRunner: GraphQLRunner, - runnerOptions: IGraphQLRunnerOptions = {} -): Queue => { - if (process.env.NODE_ENV === `production`) { - return createBuildQueue(graphqlRunner, runnerOptions) - } - if (!graphqlRunner) { - graphqlRunner = new GraphQLRunner(store, runnerOptions) - } - return createDevelopQueue(() => graphqlRunner) -} - -/** - * Returns a promise that pushes jobs onto queue and resolves onces - * they're all finished processing (or rejects if one or more jobs - * fail) - * Note: queue is reused in develop so make sure to thoroughly cleanup hooks - */ -const processBatch = async ( - queue: Queue, - jobs: Array, - activity: ProgressActivityTracker -): Promise => { - if (jobs.length === 0) { - return Promise.resolve() - } - - return new Promise((resolve, reject) => { - let taskFinishCallback - - const gc = (): void => { - // eslint-disable-next-line @typescript-eslint/no-use-before-define - queue.off(`task_failed`, taskFailedCallback) - // eslint-disable-next-line @typescript-eslint/no-use-before-define - queue.off(`drain`, drainCallback) - if (taskFinishCallback) { - queue.off(`task_finish`, taskFinishCallback) - } - // We don't want to allow the variable to be null any other time, - // just when marking it as eligible for garbage collection. - // @ts-ignore - queue = null - } - - if (activity.tick) { - taskFinishCallback = (): unknown => activity.tick() - queue.on(`task_finish`, taskFinishCallback) - } - - const taskFailedCallback = (...err: Array): void => { - gc() - reject(err) - } - - const drainCallback = (): void => { - gc() - resolve() - } - - queue - // Note: the first arg is the path, the second the error - .on(`task_failed`, taskFailedCallback) - // Note: `drain` fires when all tasks _finish_ - // `empty` fires when queue is empty (but tasks are still running) - .on(`drain`, drainCallback) - - jobs.forEach(job => - queue.push({ - job, - activity, - }) - ) - }) -} - -export { - createBuildQueue, - createDevelopQueue, - processBatch, - createAppropriateQueue, -} From 5658261a26a174be6911c2b6be3d3ca6c3cd4259 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Thu, 6 May 2021 12:16:24 +0100 Subject: [PATCH 29/45] docs: Add image plugin architecture doc (#31096) Co-authored-by: Michal Piechowiak Co-authored-by: Lennart --- .../conceptual/image-plugin-architecture.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 docs/docs/conceptual/image-plugin-architecture.md diff --git a/docs/docs/conceptual/image-plugin-architecture.md b/docs/docs/conceptual/image-plugin-architecture.md new file mode 100644 index 0000000000000..edf6ade97fb57 --- /dev/null +++ b/docs/docs/conceptual/image-plugin-architecture.md @@ -0,0 +1,113 @@ +# Architecture of Gatsby's image plugins + +This is a technical document for anyone who is interested in how images are implemented in Gatsby. This is not for learning [how to use images in Gatsby](/docs/how-to/images-and-media/using-gatsby-plugin-image/), or even [how to add image support to a plugin](/docs/how-to/plugins-and-themes/adding-gatsby-image-support/). This is for if you are working on Gatsby, or if you're curious about how it's implemented. + +## The image plugins + +Image processing in Gatsby has a large number of parts, with `gatsby-plugin-image` serving as a core, but using several other plugins in order to perform its job. We have tried to simplify this for end-users by documenting most of the features as if they were all part of `gatsby-plugin-image`, rather than trying to document the borders of responsibility between `gatsby-plugin-image`, `gatsby-plugin-sharp`, `gatsby-transformer-sharp` and `gatsby-source-filesystem`. Similarly, `StaticImage` is presented to the user as a React component, and they only need to interact with it as one. However it is in fact the front end to an image processing pipeline that includes three Gatsby plugins, two Babel plugins and several hooks into the Gatsby build process. This document will show exactly what each plugin does, and describe how the main parts are implemented. These are the plugins used for image processing and display. + +### `gatsby-plugin-image` + +This is the main plugin that users interact with. It includes two components for displaying images, as well as helper functions and a toolkit for plugin developers. + +#### The `GatsbyImage` component + +This is a React component, and is the actual component used to display all images. If somebody uses `StaticImage`, or an image component from a CMS provider, they all use `GatsbyImage` under the hood for the actual image display. + +#### The `StaticImage` component + +A a lightweight wrapper around `GatsbyImage`, this component is detected during the build process and the props are extracted to enable images to be downloaded, and processed by `gatsby-plugin-sharp` without needing GraphQL. + +#### Plugin toolkit + +`gatsby-plugin-image` includes several functions that are used by third-party source plugins to enable them to generate image data objects. This includes helpers in `gatsby-plugin-image/graphql-utils`, which help plugin authors create `gatsbyImageData` resolvers, as well as the `getImageData` function used to generate image data at runtime by plugins with URL-based image resizing APIs. It does not perform any actual image processing (and doesn't require sharp), but does ensure that the correct object is generated with all of the correct image sizes. It includes the `getLowResolutionImageURL` function which helps when generating blurred placeholders. + +#### Runtime helpers + +The plugin exports a number of other helper functions designed to help end-users work with image data objects at runtime. These include the `getImage`, `getSrc` and `getSrcSet` utilities, as well as the `withArtDirection` helper. + +### `gatsby-plugin-sharp` + +This includes the actual image processing functions from both sharp but also imagemin and potrace. It includes the functions that generate the image data object, including calculating which srcset sizes to generate. It exports `generateImageData`, which is used by `gatsby-transformer-sharp` and `gatsby-plugin-image`. It takes a `File` node and the image processing arguments, calculates which images to generate, processes these images and returns an image data object suitable for passing to `GatsbyImage`. It also exports helper functions for third party plugins to use, such as `traceSVG`. + +### `gatsby-transformer-sharp` + +This plugin attaches a `childImageSharp` node to all image `File` nodes. This includes the `gatsbyImageData` resolver, which uses `generateImageData` from `gatsby-plugin-sharp` to process images and return an image data object suitable for passing to `GatsbyImage`. The node also includes legacy `fixed` and `fluid` resolvers for the old `gatsby-image` component. + +### `gatsby-core-utils` + +Third party plugin authors can use the `fetchRemoteFile` function to download files and make use of Gatsby's caching without needing to create a file node. This is used for low-resolution placeholder images. + +### `gatsby-source-filesystem` + +The image plugin uses `createRemoteFileNode` when a `StaticImage` component has a remote URL as `src`. It does not currently use `fetchRemoteFile`, because `generateImageData` requires a `File` object. + +### Third-party plugins + +Many source plugins now support `GatsbyImage`. They do this by generating image data objects that can be passed to the `GatsbyImage` component, or by providing their own components that wrap it. This data is either returned from a custom `gatsbyImageData` resolver on the plugin's nodes, or via a runtime helper that accepts data from elsewhere. An example of the latter would be the new Shopify plugin, which includes a `getShopifyImage` function that can be used to generate images from the Shopify search or cart APIs. These plugins all use the plugin toolkit from `gatsby-plugin-image` to ensure that the object they create are compatible. These do not require sharp, as the CMS or CDN provider handles the resizing. The API for each plugin's `gatsbyImageData` resolver will depend on the individual plugin, but authors are encouraged to provide an API similar to the one from `gatsby-transformer-sharp`. + +## How `GatsbyImage` works + +`GatsbyImage` is a React component used to display performant, responsive images in Gatsby. It is used under the hood by all other compatible components such as `StaticImage` and components from CMS source plugins. It uses several performance tricks, and deserves most of the credit for improved performance scores when switching to the image plugin. + +### Anatomy of the component + +The `GatsbyImage` component wraps several other components, which are all exported by the plugin. It was originally designed to allow users to compose their own custom image components, but we have not documented this, so it should currently be considered unsupported. It is something that could be looked-at in future, but until that point `GatsbyImage` and `StaticImage` should be considered the only public components. + +#### Lazy hydration + +Throughout the component there are different versions delivered for browser and server. The reason for this is that the component performs lazy hydration: the image is loaded as soon as the SSR HTML is loaded in the browser, including blur-up and lazy-loaded images. Hydration is usually the slowest part of a React app's page load. `GatsbyImage` avoids this by skipping React for all initial image loads, leading to faster LCP. The plugin uses `onRenderBody` in `gatsby-ssr` to inject inline script and CSS tags to enable this. The JS attaches a `load` event listener to the body, which hides the placeholder and shows the main image when any `GatsbyImage` has loaded. It uses `