diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdbe8df8cfccd..76648768e37b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,7 +134,7 @@ importers: projects/js-packages/connection: specifiers: - '@automattic/jetpack-api': workspace:^0.5.0 + '@automattic/jetpack-api': workspace:^0.5.1-alpha '@automattic/jetpack-components': workspace:^0.6.1-alpha '@wordpress/base-styles': 4.0.3 '@wordpress/browserslist-config': 4.1.0 @@ -186,7 +186,7 @@ importers: projects/js-packages/idc: specifiers: - '@automattic/jetpack-api': workspace:^0.5.0 + '@automattic/jetpack-api': workspace:^0.5.1-alpha '@automattic/jetpack-components': workspace:^0.6.1-alpha '@wordpress/base-styles': 4.0.3 '@wordpress/components': 19.0.1 @@ -345,7 +345,7 @@ importers: projects/packages/connection-ui: specifiers: - '@automattic/jetpack-api': workspace:^0.5.0 + '@automattic/jetpack-api': workspace:^0.5.1-alpha '@automattic/jetpack-connection': workspace:^0.9.2-alpha '@automattic/jetpack-idc': workspace:^0.4.3-alpha '@automattic/jetpack-webpack-config': workspace:^0.1.1-alpha @@ -443,7 +443,7 @@ importers: projects/plugins/backup: specifiers: - '@automattic/jetpack-api': workspace:^0.5.0 + '@automattic/jetpack-api': workspace:^0.5.1-alpha '@automattic/jetpack-components': workspace:^0.6.1-alpha '@automattic/jetpack-connection': workspace:^0.9.2-alpha '@automattic/jetpack-webpack-config': workspace:^0.1.1-alpha @@ -566,7 +566,7 @@ importers: '@automattic/components': 1.0.0-alpha.3 '@automattic/format-currency': 1.0.0-alpha.0 '@automattic/jetpack-analytics': workspace:^0.1.2 - '@automattic/jetpack-api': workspace:^0.5.0 + '@automattic/jetpack-api': workspace:^0.5.1-alpha '@automattic/jetpack-components': workspace:^0.6.1-alpha '@automattic/jetpack-connection': workspace:^0.9.2-alpha '@automattic/jetpack-webpack-config': workspace:^0.1.1-alpha @@ -666,7 +666,7 @@ importers: postcss-custom-properties: 10.0.0 postcss-loader: 6.2.0 preact: 10.5.15 - prettier: npm:wp-prettier@2.0.5 + prettier: npm:wp-prettier@^2.0.5 progress-event: 1.0.0 prop-types: 15.7.2 q-flat: 1.0.7 @@ -1055,7 +1055,7 @@ packages: autoprefixer: 10.4.0 babel-jest: 27.3.1_@babel+core@7.16.0 babel-loader: 8.2.3_e37f829d18a4aad48a8ffa9b9e6152c1 - browserslist: 4.17.6 + browserslist: 4.17.4 cache-loader: 4.1.0_webpack@5.51.1 css-loader: 5.2.7_webpack@5.51.1 css-minimizer-webpack-plugin: 1.3.0_webpack@5.51.1 @@ -1244,12 +1244,12 @@ packages: dependencies: '@babel/code-frame': 7.16.0 '@babel/generator': 7.16.0 - '@babel/helper-compilation-targets': 7.16.0_@babel+core@7.16.0 + '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 '@babel/helper-module-transforms': 7.16.0 - '@babel/helpers': 7.16.0 - '@babel/parser': 7.16.2 + '@babel/helpers': 7.16.3 + '@babel/parser': 7.16.3 '@babel/template': 7.16.0 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 convert-source-map: 1.8.0 debug: 4.3.2 @@ -1306,6 +1306,19 @@ packages: '@babel/helper-validator-option': 7.14.5 browserslist: 4.17.6 semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0: + resolution: {integrity: sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.16.0 + '@babel/core': 7.16.0 + '@babel/helper-validator-option': 7.14.5 + browserslist: 4.17.6 + semver: 6.3.0 /@babel/helper-create-class-features-plugin/7.16.0_@babel+core@7.16.0: resolution: {integrity: sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==} @@ -1357,10 +1370,10 @@ packages: '@babel/core': ^7.4.0-0 dependencies: '@babel/core': 7.16.0 - '@babel/helper-compilation-targets': 7.16.0_@babel+core@7.16.0 + '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 '@babel/helper-module-imports': 7.16.0 '@babel/helper-plugin-utils': 7.14.5 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 debug: 4.3.2 lodash.debounce: 4.0.8 resolve: 1.20.0 @@ -1416,7 +1429,7 @@ packages: '@babel/helper-split-export-declaration': 7.16.0 '@babel/helper-validator-identifier': 7.15.7 '@babel/template': 7.16.0 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 transitivePeerDependencies: - supports-color @@ -1451,7 +1464,7 @@ packages: dependencies: '@babel/helper-member-expression-to-functions': 7.16.0 '@babel/helper-optimise-call-expression': 7.16.0 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 transitivePeerDependencies: - supports-color @@ -1488,7 +1501,7 @@ packages: dependencies: '@babel/helper-function-name': 7.16.0 '@babel/template': 7.16.0 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 transitivePeerDependencies: - supports-color @@ -1503,6 +1516,16 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helpers/7.16.3: + resolution: {integrity: sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.0 + '@babel/traverse': 7.16.3 + '@babel/types': 7.16.0 + transitivePeerDependencies: + - supports-color + /@babel/highlight/7.16.0: resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} engines: {node: '>=6.9.0'} @@ -1516,6 +1539,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + /@babel/parser/7.16.3: + resolution: {integrity: sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==} + engines: {node: '>=6.0.0'} + hasBin: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.2_@babel+core@7.16.0: resolution: {integrity: sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==} engines: {node: '>=6.9.0'} @@ -1678,10 +1706,10 @@ packages: dependencies: '@babel/compat-data': 7.16.0 '@babel/core': 7.16.0 - '@babel/helper-compilation-targets': 7.16.0_@babel+core@7.16.0 + '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 '@babel/helper-plugin-utils': 7.14.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-transform-parameters': 7.16.0_@babel+core@7.16.0 + '@babel/plugin-transform-parameters': 7.16.3_@babel+core@7.16.0 /@babel/plugin-proposal-optional-catch-binding/7.16.0_@babel+core@7.16.0: resolution: {integrity: sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==} @@ -2200,6 +2228,16 @@ packages: dependencies: '@babel/core': 7.16.0 '@babel/helper-plugin-utils': 7.14.5 + dev: true + + /@babel/plugin-transform-parameters/7.16.3_@babel+core@7.16.0: + resolution: {integrity: sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.16.0 + '@babel/helper-plugin-utils': 7.14.5 /@babel/plugin-transform-property-literals/7.16.0_@babel+core@7.16.0: resolution: {integrity: sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==} @@ -2371,7 +2409,7 @@ packages: dependencies: '@babel/compat-data': 7.16.0 '@babel/core': 7.16.0 - '@babel/helper-compilation-targets': 7.16.0_@babel+core@7.16.0 + '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 '@babel/helper-plugin-utils': 7.14.5 '@babel/helper-validator-option': 7.14.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.2_@babel+core@7.16.0 @@ -2426,7 +2464,7 @@ packages: '@babel/plugin-transform-named-capturing-groups-regex': 7.16.0_@babel+core@7.16.0 '@babel/plugin-transform-new-target': 7.16.0_@babel+core@7.16.0 '@babel/plugin-transform-object-super': 7.16.0_@babel+core@7.16.0 - '@babel/plugin-transform-parameters': 7.16.0_@babel+core@7.16.0 + '@babel/plugin-transform-parameters': 7.16.3_@babel+core@7.16.0 '@babel/plugin-transform-property-literals': 7.16.0_@babel+core@7.16.0 '@babel/plugin-transform-regenerator': 7.16.0_@babel+core@7.16.0 '@babel/plugin-transform-reserved-words': 7.16.0_@babel+core@7.16.0 @@ -2519,12 +2557,13 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@babel/runtime/7.15.3: - resolution: {integrity: sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==} + /@babel/runtime-corejs3/7.16.3: + resolution: {integrity: sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==} engines: {node: '>=6.9.0'} dependencies: + core-js-pure: 3.19.1 regenerator-runtime: 0.13.9 - dev: false + dev: true /@babel/runtime/7.16.0: resolution: {integrity: sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw==} @@ -2543,7 +2582,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.0 - '@babel/parser': 7.16.2 + '@babel/parser': 7.16.3 '@babel/types': 7.16.0 /@babel/traverse/7.16.0: @@ -2562,6 +2601,22 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse/7.16.3: + resolution: {integrity: sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.0 + '@babel/generator': 7.16.0 + '@babel/helper-function-name': 7.16.0 + '@babel/helper-hoist-variables': 7.16.0 + '@babel/helper-split-export-declaration': 7.16.0 + '@babel/parser': 7.16.3 + '@babel/types': 7.16.0 + debug: 4.3.2 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + /@babel/types/7.16.0: resolution: {integrity: sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==} engines: {node: '>=6.9.0'} @@ -2603,7 +2658,7 @@ packages: dependencies: '@babel/helper-module-imports': 7.16.0 '@babel/plugin-syntax-jsx': 7.16.0 - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 '@emotion/serialize': 1.0.2 @@ -2623,7 +2678,7 @@ packages: '@babel/core': 7.16.0 '@babel/helper-module-imports': 7.16.0 '@babel/plugin-syntax-jsx': 7.16.0_@babel+core@7.16.0 - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 '@emotion/serialize': 1.0.2 @@ -3075,7 +3130,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.2 + debug: 4.3.1 espree: 7.3.1 globals: 13.12.0 ignore: 4.0.6 @@ -3113,7 +3168,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.2 + debug: 4.3.1 minimatch: 3.0.4 transitivePeerDependencies: - supports-color @@ -3146,8 +3201,8 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 jest-message-util: 27.3.1 jest-util: 27.3.1 slash: 3.0.0 @@ -3166,9 +3221,9 @@ packages: '@jest/test-result': 27.3.1 '@jest/transform': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 4.1.1 emittery: 0.8.1 exit: 0.1.2 graceful-fs: 4.2.8 @@ -3203,7 +3258,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-mock: 26.6.2 /@jest/environment/27.3.1: @@ -3212,7 +3267,7 @@ packages: dependencies: '@jest/fake-timers': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-mock: 27.3.0 /@jest/fake-timers/26.6.2: @@ -3221,7 +3276,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -3232,7 +3287,7 @@ packages: dependencies: '@jest/types': 27.2.5 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-message-util: 27.3.1 jest-mock: 27.3.0 jest-util: 27.3.1 @@ -3259,11 +3314,11 @@ packages: '@jest/test-result': 27.3.1 '@jest/transform': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 collect-v8-coverage: 1.0.1 exit: 0.1.2 - glob: 7.2.0 + glob: 7.1.6 graceful-fs: 4.2.8 istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 4.0.3 @@ -3341,7 +3396,7 @@ packages: '@babel/core': 7.16.0 '@jest/types': 27.2.5 babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 + chalk: 4.1.1 convert-source-map: 1.8.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.8 @@ -3362,9 +3417,9 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.11.6 + '@types/node': 16.11.7 '@types/yargs': 15.0.14 - chalk: 4.1.2 + chalk: 4.1.1 /@jest/types/27.2.5: resolution: {integrity: sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==} @@ -3372,9 +3427,9 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.11.6 + '@types/node': 16.11.7 '@types/yargs': 16.0.4 - chalk: 4.1.2 + chalk: 4.1.1 /@kwsites/file-exists/1.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -5031,7 +5086,7 @@ packages: '@babel/runtime': 7.16.0 '@types/aria-query': 4.2.2 aria-query: 4.2.2 - chalk: 4.1.2 + chalk: 4.1.1 dom-accessibility-api: 0.5.10 lz-string: 1.4.4 pretty-format: 26.6.2 @@ -5112,7 +5167,7 @@ packages: /@types/babel__core/7.1.16: resolution: {integrity: sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==} dependencies: - '@babel/parser': 7.16.2 + '@babel/parser': 7.16.3 '@babel/types': 7.16.0 '@types/babel__generator': 7.6.3 '@types/babel__template': 7.4.1 @@ -5126,7 +5181,7 @@ packages: /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.16.2 + '@babel/parser': 7.16.3 '@babel/types': 7.16.0 /@types/babel__traverse/7.14.2: @@ -5141,7 +5196,7 @@ packages: /@types/cheerio/0.22.30: resolution: {integrity: sha512-t7ZVArWZlq3dFa9Yt33qFBQIK4CQd1Q3UJp0V+UhP6vgLWLM6Qug7vZuRSGXg45zXeB1Fm5X2vmBkEX58LV2Tw==} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 /@types/color-convert/2.0.0: resolution: {integrity: sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==} @@ -5175,7 +5230,7 @@ packages: /@types/fs-extra/8.1.2: resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 dev: true /@types/glob-base/0.3.0: @@ -5186,13 +5241,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 3.0.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 dev: true /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 /@types/hast/2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} @@ -5228,7 +5283,7 @@ packages: /@types/jest/27.0.2: resolution: {integrity: sha512-4dRxkS/AFX0c5XW6IPMNOydLn2tEhNhJV7DnYK+0bjoJZ+QTmfucBlihX7aoEsh/ocYtkLC73UbnBXBXIxsULA==} dependencies: - jest-diff: 27.2.0 + jest-diff: 27.3.1 pretty-format: 27.3.1 dev: true @@ -5280,6 +5335,10 @@ packages: /@types/node/16.11.6: resolution: {integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==} + dev: true + + /@types/node/16.11.7: + resolution: {integrity: sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -5363,13 +5422,13 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 dev: true /@types/sass/1.43.0: resolution: {integrity: sha512-DPSXNJ1rYLo88GyF9tuB4bsYGfpKI1a4+wOQmc+LI1SUoocm9QLRSpz0GxxuyjmJsYFIQo/dDlRSSpIXngff+w==} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 dev: true /@types/scheduler/0.16.2: @@ -5441,7 +5500,7 @@ packages: resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} requiresBuild: true dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 dev: true optional: true @@ -6532,7 +6591,7 @@ packages: is-promise: 4.0.0 lodash: 4.17.21 memize: 1.1.0 - redux: 4.0.5 + redux: 4.1.2 turbo-combine-reducers: 1.0.2 use-memo-one: 1.1.2_react@17.0.2 transitivePeerDependencies: @@ -6612,16 +6671,16 @@ packages: dependencies: '@babel/runtime': 7.16.3 moment: 2.29.1 - moment-timezone: 0.5.33 + moment-timezone: 0.5.34 dev: false /@wordpress/date/4.2.2: resolution: {integrity: sha512-sYcMvFwrVoYv5lL9NsYLVd29hfuqgf1L1WsIjDV8hMna1eqr9f8xCrZSLgBKkDBmVWiIcleYGP5uDdrKpu6EiA==} engines: {node: '>=12'} dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 moment: 2.29.1 - moment-timezone: 0.5.33 + moment-timezone: 0.5.34 /@wordpress/dependency-extraction-webpack-plugin/3.2.1_webpack@5.51.1: resolution: {integrity: sha512-Ltd+1CJb7PMh6iN2Mse+3yN/oMORug5qXSj/3xmuZERzZO2SO6xNEJGml8yK9ev747cbHktEpitK4H+8VO3Ekg==} @@ -6636,7 +6695,7 @@ packages: /@wordpress/deprecated/2.12.3: resolution: {integrity: sha512-qr+yDfTQfI3M4h6oY6IeHWwoHr4jxbILjSlV+Ht6Jjto9Owap6OuzSqR13Ev4xqIoG4C7b5B3gZXVfwVDae1zg==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 '@wordpress/hooks': 2.12.3 dev: false @@ -6662,7 +6721,7 @@ packages: /@wordpress/dom/2.18.0: resolution: {integrity: sha512-tM2WeQuSObl3nzWjUTF0/dyLnA7sdl/MXaSe32D64OF89bjSyJvjUipI7gjKzI3kJ7ddGhwcTggGvSB06MOoCQ==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 lodash: 4.17.21 dev: false @@ -6739,7 +6798,7 @@ packages: /@wordpress/element/2.20.3: resolution: {integrity: sha512-f4ZPTDf9CxiiOXiMxc4v1K7jcBMT4dsiehVOpkKzCDKboNXp4qVf8oe5PE23VGZNEjcOj5Mkg9hB57R0nqvMTw==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 '@types/react': 16.14.20 '@types/react-dom': 16.9.14 '@wordpress/escape-html': 1.12.2 @@ -6752,7 +6811,7 @@ packages: resolution: {integrity: sha512-uFL8Xx0Uq/C+nCL5aM4Fb6YVub//1wuHyQK9VDtKwYg9UBELrexSCHo1XaesYRiGUqVW0o837qC7RCP2NLUBJw==} engines: {node: '>=12'} dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 '@types/react': 16.14.20 '@types/react-dom': 16.9.14 '@wordpress/escape-html': 2.2.2 @@ -6763,14 +6822,14 @@ packages: /@wordpress/escape-html/1.12.2: resolution: {integrity: sha512-FabgSwznhdaUwe6hr1CsGpgxQbzqEoGevv73WIL1B9GvlZ6csRWodgHfWh4P6fYqpzxFL4WYB8wPJ1PdO32XFA==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 dev: false /@wordpress/escape-html/2.2.2: resolution: {integrity: sha512-NuPury2dyaqF7zpDaUOKaoM0FrEuqaDE1c3j7rM6kceJ4ZFDHnCLf5NivwchOLo7Xs0oVtqBdDza/dcSQaLFGg==} engines: {node: '>=12'} dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 /@wordpress/eslint-plugin/9.2.0_eslint@7.32.0: resolution: {integrity: sha512-x0vI4EWeG20TyewXdiyUhGSJRqXR8vw47WZjzdmL8iuitDCoyWkKe73wtEs/mWLDrSNms8S0bTnp0dK6UAMXJw==} @@ -6789,13 +6848,13 @@ packages: cosmiconfig: 7.0.1 eslint: 7.32.0 eslint-config-prettier: 7.2.0_eslint@7.32.0 - eslint-plugin-import: 2.25.3_eslint@7.32.0 + eslint-plugin-import: 2.25.2_eslint@7.32.0 eslint-plugin-jest: 24.7.0_d3b4c2d4ac51f4275548d5d796aee5d5 eslint-plugin-jsdoc: 36.1.1_eslint@7.32.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 + eslint-plugin-jsx-a11y: 6.5.1_eslint@7.32.0 eslint-plugin-prettier: 3.4.1_34b707f3a53b0942f3919c1ff656ce36 - eslint-plugin-react: 7.26.1_eslint@7.32.0 - eslint-plugin-react-hooks: 4.2.0_eslint@7.32.0 + eslint-plugin-react: 7.27.0_eslint@7.32.0 + eslint-plugin-react-hooks: 4.3.0_eslint@7.32.0 globals: 12.4.0 prettier: /wp-prettier/2.2.1-beta-1 requireindex: 1.2.0 @@ -6819,13 +6878,13 @@ packages: babel-eslint: 10.1.0 cosmiconfig: 7.0.1 eslint-config-prettier: 7.2.0 - eslint-plugin-import: 2.25.3 + eslint-plugin-import: 2.25.2 eslint-plugin-jest: 24.7.0_efe5affc8557e7e9fa1c0569af222dcc eslint-plugin-jsdoc: 36.1.1 - eslint-plugin-jsx-a11y: 6.4.1 + eslint-plugin-jsx-a11y: 6.5.1 eslint-plugin-prettier: 3.4.1_4d43abc6352a457c49b6b94ed6df87af - eslint-plugin-react: 7.26.1 - eslint-plugin-react-hooks: 4.2.0 + eslint-plugin-react: 7.27.0 + eslint-plugin-react-hooks: 4.3.0 globals: 12.4.0 prettier: /wp-prettier/2.2.1-beta-1 requireindex: 1.2.0 @@ -6872,7 +6931,7 @@ packages: resolution: {integrity: sha512-yI8MHs6UsvgJdDsOnXGkY7/7hrOCEv/M7vwdEVA5r6nGzgJaJxf8pjBqzRkCq3nVaWqxoNZgCMHJSul6Q8RR2g==} engines: {node: '>=12'} dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 /@wordpress/html-entities/3.2.2: resolution: {integrity: sha512-MsmB1wtDMFfvNQiKMVMW+1ie2P3+tBZiHESkDPnXw34Dt4Tk0+QY7eYCR9krNcjJImWYJcxL+4n4M1OF9oQv0Q==} @@ -6898,7 +6957,7 @@ packages: engines: {node: '>=12'} hasBin: true dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 '@wordpress/hooks': 3.2.1 gettext-parser: 1.4.0 lodash: 4.17.21 @@ -6951,7 +7010,7 @@ packages: /@wordpress/is-shallow-equal/3.1.3: resolution: {integrity: sha512-eDLhfC4aaSgklzqwc6F/F4zmJVpTVTAvhqX+q0SP/8LPcP2HuKErPHVrEc75PMWqIutja2wJg98YSNPdewrj1w==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 dev: false /@wordpress/is-shallow-equal/4.2.0: @@ -6994,7 +7053,7 @@ packages: /@wordpress/keycodes/2.19.3: resolution: {integrity: sha512-8rNdmP5M1ifTgLIL0dt/N1uTGsq/Rx1ydCXy+gg24WdxBRhyu5sudNVCtascVXo26aIfOH9OJRdqRZZTEORhog==} dependencies: - '@babel/runtime': 7.15.3 + '@babel/runtime': 7.16.0 '@wordpress/i18n': 3.20.0 lodash: 4.17.21 dev: false @@ -7632,8 +7691,8 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.6.3: - resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==} + /ajv/8.7.1: + resolution: {integrity: sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -7815,7 +7874,7 @@ packages: engines: {node: '>=6.0'} dependencies: '@babel/runtime': 7.16.3 - '@babel/runtime-corejs3': 7.16.0 + '@babel/runtime-corejs3': 7.16.3 dev: true /arr-diff/1.1.0: @@ -8088,7 +8147,7 @@ packages: hasBin: true dependencies: browserslist: 4.17.6 - caniuse-lite: 1.0.30001278 + caniuse-lite: 1.0.30001279 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -8128,8 +8187,8 @@ packages: eslint: '>= 4.12.1' dependencies: '@babel/code-frame': 7.16.0 - '@babel/parser': 7.16.2 - '@babel/traverse': 7.16.0 + '@babel/parser': 7.16.3 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 eslint-visitor-keys: 1.3.0 resolve: 1.20.0 @@ -8145,8 +8204,8 @@ packages: eslint: '>= 4.12.1' dependencies: '@babel/code-frame': 7.16.0 - '@babel/parser': 7.16.2 - '@babel/traverse': 7.16.0 + '@babel/parser': 7.16.3 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 eslint: 7.32.0 eslint-visitor-keys: 1.3.0 @@ -8167,7 +8226,7 @@ packages: '@types/babel__core': 7.1.16 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 27.2.0_@babel+core@7.16.0 - chalk: 4.1.2 + chalk: 4.1.1 graceful-fs: 4.2.8 slash: 3.0.0 transitivePeerDependencies: @@ -8606,8 +8665,8 @@ packages: pako: 1.0.11 dev: true - /browserslist/4.17.6: - resolution: {integrity: sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==} + /browserslist/4.17.4: + resolution: {integrity: sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: @@ -8616,6 +8675,18 @@ packages: escalade: 3.1.1 node-releases: 2.0.1 picocolors: 1.0.0 + dev: false + + /browserslist/4.17.6: + resolution: {integrity: sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001279 + electron-to-chromium: 1.3.894 + escalade: 3.1.1 + node-releases: 2.0.1 + picocolors: 1.0.0 /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -8837,6 +8908,9 @@ packages: /caniuse-lite/1.0.30001278: resolution: {integrity: sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg==} + /caniuse-lite/1.0.30001279: + resolution: {integrity: sha512-VfEHpzHEXj6/CxggTwSFoZBBYGQfQv9Cf42KPlO79sWXCD1QNKWKsKzFeWL7QpZHJQYAvocqV6Rty1yJMkqWLQ==} + /capture-exit/2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} @@ -8905,6 +8979,13 @@ packages: supports-color: 7.2.0 dev: true + /chalk/4.1.1: + resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -9401,7 +9482,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true dependencies: - chalk: 4.1.2 + chalk: 4.1.1 date-fns: 2.25.0 lodash: 4.17.21 read-pkg: 5.2.0 @@ -10496,6 +10577,10 @@ packages: /electron-to-chromium/1.3.890: resolution: {integrity: sha512-VWlVXSkv0cA/OOehrEyqjUTHwV8YXCPTfPvbtoeU2aHR21vI4Ejh5aC4AxUwOmbLbBgb6Gd3URZahoCxtBqCYQ==} + dev: false + + /electron-to-chromium/1.3.894: + resolution: {integrity: sha512-WY8pA4irAZ4cm/Pr7YFPtPLVqj3nU6d0SbfoHF6M7HZNONfPdAnYAarumqQ75go2LuN72uO9wGuCEqnfya/ytg==} /elegant-spinner/1.0.1: resolution: {integrity: sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=} @@ -10902,7 +10987,7 @@ packages: eslint: 7.32.0 eslint-plugin-inclusive-language: 1.2.1 eslint-plugin-jsdoc: 36.1.1_eslint@7.32.0 - eslint-plugin-react-hooks: 4.3.0_eslint@7.32.0 + eslint-plugin-react-hooks: 4.2.0_eslint@7.32.0 eslint-plugin-wpcalypso: 5.0.0_eslint@7.32.0 dev: true @@ -10930,8 +11015,8 @@ packages: eslint: 7.32.0 dev: true - /eslint-plugin-import/2.25.3: - resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + /eslint-plugin-import/2.25.2: + resolution: {integrity: sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -10951,8 +11036,8 @@ packages: tsconfig-paths: 3.11.0 dev: true - /eslint-plugin-import/2.25.3_eslint@7.32.0: - resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + /eslint-plugin-import/2.25.2_eslint@7.32.0: + resolution: {integrity: sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 @@ -10973,6 +11058,27 @@ packages: tsconfig-paths: 3.11.0 dev: true + /eslint-plugin-import/2.25.3: + resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + dependencies: + array-includes: 3.1.4 + array.prototype.flat: 1.2.5 + debug: 2.6.9 + doctrine: 2.1.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.1 + has: 1.0.3 + is-core-module: 2.8.0 + is-glob: 4.0.3 + minimatch: 3.0.4 + object.values: 1.1.5 + resolve: 1.20.0 + tsconfig-paths: 3.11.0 + dev: true + /eslint-plugin-inclusive-language/1.2.1: resolution: {integrity: sha512-WFXME2g/rEm/ex9HCfptZXJVm6/IrBks4+0rZft24zve4RH196PPuCFvd36aidc2IaHrvVAZHeyahODc7ueoNw==} dev: true @@ -11068,30 +11174,11 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.4.1: - resolution: {integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - dependencies: - '@babel/runtime': 7.16.3 - aria-query: 4.2.2 - array-includes: 3.1.4 - ast-types-flow: 0.0.7 - axe-core: 4.3.5 - axobject-query: 2.2.0 - damerau-levenshtein: 1.0.7 - emoji-regex: 9.2.2 - has: 1.0.3 - jsx-ast-utils: 3.2.1 - language-tags: 1.0.5 - dev: true - - /eslint-plugin-jsx-a11y/6.4.1_eslint@7.32.0: - resolution: {integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==} + /eslint-plugin-jsx-a11y/6.5.1: + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: '@babel/runtime': 7.16.3 aria-query: 4.2.2 @@ -11101,10 +11188,10 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.7 emoji-regex: 9.2.2 - eslint: 7.32.0 has: 1.0.3 jsx-ast-utils: 3.2.1 language-tags: 1.0.5 + minimatch: 3.0.4 dev: true /eslint-plugin-jsx-a11y/6.5.1_eslint@7.32.0: @@ -11188,13 +11275,6 @@ packages: prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-react-hooks/4.2.0: - resolution: {integrity: sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - dev: true - /eslint-plugin-react-hooks/4.2.0_eslint@7.32.0: resolution: {integrity: sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==} engines: {node: '>=10'} @@ -11204,47 +11284,31 @@ packages: eslint: 7.32.0 dev: true - /eslint-plugin-react-hooks/4.3.0_eslint@7.32.0: + /eslint-plugin-react-hooks/4.3.0: resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 7.32.0 dev: true - /eslint-plugin-react/7.26.1: - resolution: {integrity: sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==} - engines: {node: '>=4'} + /eslint-plugin-react-hooks/4.3.0_eslint@7.32.0: + resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} + engines: {node: '>=10'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 - doctrine: 2.1.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.2.1 - minimatch: 3.0.4 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.0 - object.values: 1.1.5 - prop-types: 15.7.2 - resolve: 2.0.0-next.3 - semver: 6.3.0 - string.prototype.matchall: 4.0.6 + eslint: 7.32.0 dev: true - /eslint-plugin-react/7.26.1_eslint@7.32.0: - resolution: {integrity: sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==} + /eslint-plugin-react/7.27.0: + resolution: {integrity: sha512-0Ut+CkzpppgFtoIhdzi2LpdpxxBvgFf99eFqWxJnUrO7mMe0eOiNpou6rvNYeVVV6lWZvTah0BFne7k5xHjARg==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.4 array.prototype.flatmap: 1.2.5 doctrine: 2.1.0 - eslint: 7.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 minimatch: 3.0.4 @@ -11352,9 +11416,9 @@ packages: '@eslint/eslintrc': 0.4.3 '@humanwhocodes/config-array': 0.5.0 ajv: 6.12.6 - chalk: 4.1.2 + chalk: 4.1.1 cross-spawn: 7.0.3 - debug: 4.3.2 + debug: 4.3.1 doctrine: 3.0.0 enquirer: 2.3.6 escape-string-regexp: 4.0.0 @@ -12005,7 +12069,7 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.2 + flatted: 3.2.4 rimraf: 3.0.2 dev: true @@ -12013,8 +12077,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - /flatted/3.2.2: - resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==} + /flatted/3.2.4: + resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} dev: true /flush-write-stream/1.1.1: @@ -12108,7 +12172,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.33 + mime-types: 2.1.34 dev: false /form-data/3.0.1: @@ -12117,7 +12181,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.33 + mime-types: 2.1.34 /form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -12125,7 +12189,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.33 + mime-types: 2.1.34 dev: true /format/0.2.2: @@ -12494,7 +12558,7 @@ packages: engines: {node: '>= 0.10'} dependencies: extend: 3.0.2 - glob: 7.2.0 + glob: 7.1.6 glob-parent: 3.1.0 is-negated-glob: 1.0.0 ordered-read-streams: 1.0.1 @@ -12871,7 +12935,7 @@ packages: resolution: {integrity: sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==} engines: {node: '>=12'} dependencies: - chalk: 4.1.2 + chalk: 4.1.1 lodash: 4.17.21 plugin-error: 1.0.1 replace-ext: 2.0.0 @@ -13322,7 +13386,7 @@ packages: dependencies: '@tannin/sprintf': 1.2.0 '@wordpress/compose': 3.25.3_react@16.14.0 - debug: 4.3.2 + debug: 4.3.1 events: 3.3.0 hash.js: 1.1.7 interpolate-components: 1.1.1 @@ -13445,7 +13509,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 4.1.1 cli-cursor: 3.1.0 cli-width: 3.0.0 external-editor: 3.1.0 @@ -14050,7 +14114,7 @@ packages: engines: {node: '>=8'} dependencies: '@babel/core': 7.16.0 - '@babel/parser': 7.16.2 + '@babel/parser': 7.16.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -14125,8 +14189,8 @@ packages: '@jest/environment': 27.3.1 '@jest/test-result': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 co: 4.6.0 dedent: 0.7.0 expect: 27.3.1 @@ -14157,7 +14221,7 @@ packages: '@jest/core': 27.3.1 '@jest/test-result': 27.3.1 '@jest/types': 27.2.5 - chalk: 4.1.2 + chalk: 4.1.1 exit: 0.1.2 graceful-fs: 4.2.8 import-local: 3.0.3 @@ -14187,10 +14251,10 @@ packages: '@jest/test-sequencer': 27.3.1 '@jest/types': 27.2.5 babel-jest: 27.3.1_@babel+core@7.16.0 - chalk: 4.1.2 + chalk: 4.1.1 ci-info: 3.2.0 deepmerge: 4.2.2 - glob: 7.2.0 + glob: 7.1.6 graceful-fs: 4.2.8 jest-circus: 27.3.1 jest-environment-jsdom: 27.3.1 @@ -14210,21 +14274,11 @@ packages: - supports-color - utf-8-validate - /jest-diff/27.2.0: - resolution: {integrity: sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.0.6 - jest-get-type: 27.3.1 - pretty-format: 27.3.1 - dev: true - /jest-diff/27.3.1: resolution: {integrity: sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - chalk: 4.1.2 + chalk: 4.1.1 diff-sequences: 27.0.6 jest-get-type: 27.3.1 pretty-format: 27.3.1 @@ -14240,7 +14294,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.2.5 - chalk: 4.1.2 + chalk: 4.1.1 jest-get-type: 27.3.1 jest-util: 27.3.1 pretty-format: 27.3.1 @@ -14294,7 +14348,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -14311,7 +14365,7 @@ packages: '@jest/environment': 27.3.1 '@jest/fake-timers': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-mock: 27.3.0 jest-util: 27.3.1 jsdom: 16.7.0 @@ -14328,7 +14382,7 @@ packages: '@jest/environment': 27.3.1 '@jest/fake-timers': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 jest-mock: 27.3.0 jest-util: 27.3.1 @@ -14399,7 +14453,7 @@ packages: dependencies: '@jest/types': 27.2.5 '@types/graceful-fs': 4.1.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.8 @@ -14416,13 +14470,13 @@ packages: resolution: {integrity: sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@jest/environment': 27.3.1 '@jest/source-map': 27.0.6 '@jest/test-result': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 co: 4.6.0 expect: 27.3.1 is-generator-fn: 2.1.0 @@ -14448,7 +14502,7 @@ packages: resolution: {integrity: sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - chalk: 4.1.2 + chalk: 4.1.1 jest-diff: 27.3.1 jest-get-type: 27.3.1 pretty-format: 27.3.1 @@ -14460,7 +14514,7 @@ packages: '@babel/code-frame': 7.16.0 '@jest/types': 26.6.2 '@types/stack-utils': 2.0.1 - chalk: 4.1.2 + chalk: 4.1.1 graceful-fs: 4.2.8 micromatch: 4.0.4 pretty-format: 26.6.2 @@ -14474,7 +14528,7 @@ packages: '@babel/code-frame': 7.16.0 '@jest/types': 27.2.5 '@types/stack-utils': 2.0.1 - chalk: 4.1.2 + chalk: 4.1.1 graceful-fs: 4.2.8 micromatch: 4.0.4 pretty-format: 27.3.1 @@ -14486,14 +14540,14 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 16.11.6 + '@types/node': 16.11.7 /jest-mock/27.3.0: resolution: {integrity: sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 /jest-pnp-resolver/1.2.2_jest-resolve@27.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} @@ -14531,7 +14585,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.2.5 - chalk: 4.1.2 + chalk: 4.1.1 graceful-fs: 4.2.8 jest-haste-map: 27.3.1 jest-pnp-resolver: 1.2.2_jest-resolve@27.3.1 @@ -14550,8 +14604,8 @@ packages: '@jest/test-result': 27.3.1 '@jest/transform': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 emittery: 0.8.1 exit: 0.1.2 graceful-fs: 4.2.8 @@ -14585,12 +14639,12 @@ packages: '@jest/transform': 27.3.1 '@jest/types': 27.2.5 '@types/yargs': 16.0.4 - chalk: 4.1.2 + chalk: 4.1.1 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 execa: 5.1.1 exit: 0.1.2 - glob: 7.2.0 + glob: 7.1.6 graceful-fs: 4.2.8 jest-haste-map: 27.3.1 jest-message-util: 27.3.1 @@ -14618,7 +14672,7 @@ packages: resolution: {integrity: sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 graceful-fs: 4.2.8 /jest-snapshot/27.3.1: @@ -14627,16 +14681,16 @@ packages: dependencies: '@babel/core': 7.16.0 '@babel/generator': 7.16.0 - '@babel/parser': 7.16.2 + '@babel/parser': 7.16.3 '@babel/plugin-syntax-typescript': 7.16.0_@babel+core@7.16.0 - '@babel/traverse': 7.16.0 + '@babel/traverse': 7.16.3 '@babel/types': 7.16.0 '@jest/transform': 27.3.1 '@jest/types': 27.2.5 '@types/babel__traverse': 7.14.2 '@types/prettier': 2.4.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.0 - chalk: 4.1.2 + chalk: 4.1.1 expect: 27.3.1 graceful-fs: 4.2.8 jest-diff: 27.3.1 @@ -14657,8 +14711,8 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 graceful-fs: 4.2.8 is-ci: 2.0.0 micromatch: 4.0.4 @@ -14668,8 +14722,8 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.2.5 - '@types/node': 16.11.6 - chalk: 4.1.2 + '@types/node': 16.11.7 + chalk: 4.1.1 ci-info: 3.2.0 graceful-fs: 4.2.8 picomatch: 2.3.0 @@ -14680,7 +14734,7 @@ packages: dependencies: '@jest/types': 27.2.5 camelcase: 6.2.0 - chalk: 4.1.2 + chalk: 4.1.1 jest-get-type: 27.3.1 leven: 3.1.0 pretty-format: 27.3.1 @@ -14691,9 +14745,9 @@ packages: dependencies: '@jest/test-result': 27.3.1 '@jest/types': 27.2.5 - '@types/node': 16.11.6 + '@types/node': 16.11.7 ansi-escapes: 4.3.2 - chalk: 4.1.2 + chalk: 4.1.1 jest-util: 27.3.1 string-length: 4.0.2 dev: true @@ -14702,7 +14756,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -14710,7 +14764,7 @@ packages: resolution: {integrity: sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.11.6 + '@types/node': 16.11.7 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -15376,7 +15430,7 @@ packages: resolution: {integrity: sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==} engines: {node: '>=10'} dependencies: - chalk: 4.1.2 + chalk: 4.1.1 /log-update/2.3.0: resolution: {integrity: sha1-iDKP19HOeTiykoN0bwsbwSayRwg=} @@ -15724,12 +15778,24 @@ packages: /mime-db/1.50.0: resolution: {integrity: sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==} engines: {node: '>= 0.6'} + dev: true + + /mime-db/1.51.0: + resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} + engines: {node: '>= 0.6'} /mime-types/2.1.33: resolution: {integrity: sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.50.0 + dev: true + + /mime-types/2.1.34: + resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.51.0 /mime/1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -15904,8 +15970,8 @@ packages: resolution: {integrity: sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==} dev: true - /moment-timezone/0.5.33: - resolution: {integrity: sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==} + /moment-timezone/0.5.34: + resolution: {integrity: sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==} dependencies: moment: 2.29.1 @@ -16033,7 +16099,7 @@ packages: resolution: {integrity: sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.2 + debug: 4.3.1 json-stringify-safe: 5.0.1 lodash.set: 4.3.2 propagate: 2.0.1 @@ -16246,7 +16312,7 @@ packages: find-up: 4.1.0 foreground-child: 2.0.0 get-package-type: 0.1.0 - glob: 7.2.0 + glob: 7.1.6 istanbul-lib-coverage: 3.2.0 istanbul-lib-hook: 3.0.0 istanbul-lib-instrument: 4.0.3 @@ -18885,7 +18951,7 @@ packages: /regenerator-transform/0.14.5: resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} dependencies: - '@babel/runtime': 7.16.0 + '@babel/runtime': 7.16.3 /regex-not/1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -19103,7 +19169,7 @@ packages: is-typedarray: 1.0.0 isstream: 0.1.2 json-stringify-safe: 5.0.1 - mime-types: 2.1.33 + mime-types: 2.1.34 oauth-sign: 0.9.0 performance-now: 2.1.0 qs: 6.5.2 @@ -20602,7 +20668,7 @@ packages: resolution: {integrity: sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.6.3 + ajv: 8.7.1 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -20737,7 +20803,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 + glob: 7.1.6 minimatch: 3.0.4 /text-table/0.2.0: @@ -21351,7 +21417,7 @@ packages: dependencies: file-loader: 6.2.0_webpack@5.51.1 loader-utils: 2.0.2 - mime-types: 2.1.33 + mime-types: 2.1.34 schema-utils: 3.1.1 webpack: 5.51.1 dev: true @@ -21367,7 +21433,7 @@ packages: optional: true dependencies: loader-utils: 2.0.2 - mime-types: 2.1.33 + mime-types: 2.1.34 schema-utils: 3.1.1 webpack: 5.51.1_webpack-cli@4.8.0 dev: true @@ -21803,7 +21869,7 @@ packages: graceful-fs: 4.2.8 json-parse-better-errors: 1.0.2 loader-runner: 4.2.0 - mime-types: 2.1.33 + mime-types: 2.1.34 neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 @@ -21843,7 +21909,7 @@ packages: graceful-fs: 4.2.8 json-parse-better-errors: 1.0.2 loader-runner: 4.2.0 - mime-types: 2.1.33 + mime-types: 2.1.34 neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 diff --git a/projects/js-packages/api/changelog/update-user-license-counts b/projects/js-packages/api/changelog/update-user-license-counts new file mode 100644 index 0000000000000..89ca8f639c062 --- /dev/null +++ b/projects/js-packages/api/changelog/update-user-license-counts @@ -0,0 +1,4 @@ +Significance: patch +Type: added + +Add updateUserLicensesCounts API method \ No newline at end of file diff --git a/projects/js-packages/api/index.jsx b/projects/js-packages/api/index.jsx index 64a2538a27131..e2ff1e1226455 100644 --- a/projects/js-packages/api/index.jsx +++ b/projects/js-packages/api/index.jsx @@ -413,6 +413,18 @@ function JetpackRestApiClient( root, nonce ) { .then( checkStatus ) .then( parseJsonResponse ), + getUserLicensesCounts: () => + getRequest( `${ apiRoot }jetpack/v4/licensing/user/counts`, getParams ) + .then( checkStatus ) + .then( parseJsonResponse ), + + updateLicensingActivationNoticeDismiss: lastDetachedCount => + postRequest( `${ apiRoot }jetpack/v4/licensing/user/activation-notice-dismiss`, postParams, { + body: JSON.stringify( { last_detached_count: lastDetachedCount } ), + } ) + .then( checkStatus ) + .then( parseJsonResponse ), + updateRecommendationsStep: step => postRequest( `${ apiRoot }jetpack/v4/recommendations/step`, postParams, { body: JSON.stringify( { step } ), diff --git a/projects/js-packages/api/package.json b/projects/js-packages/api/package.json index dcad9a40b1ca6..8715d4b4ca934 100644 --- a/projects/js-packages/api/package.json +++ b/projects/js-packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@automattic/jetpack-api", - "version": "0.5.0", + "version": "0.5.1-alpha", "description": "Jetpack Api Package", "author": "Automattic", "license": "GPL-2.0-or-later", diff --git a/projects/js-packages/connection/changelog/add-user-license-activate-notice-2 b/projects/js-packages/connection/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/connection/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/connection/package.json b/projects/js-packages/connection/package.json index 8925afc1b5f82..a473580c60f49 100644 --- a/projects/js-packages/connection/package.json +++ b/projects/js-packages/connection/package.json @@ -5,7 +5,7 @@ "author": "Automattic", "license": "GPL-2.0-or-later", "dependencies": { - "@automattic/jetpack-api": "workspace:^0.5.0", + "@automattic/jetpack-api": "workspace:^0.5.1-alpha", "@automattic/jetpack-components": "workspace:^0.6.1-alpha", "@wordpress/base-styles": "4.0.3", "@wordpress/browserslist-config": "4.1.0", diff --git a/projects/js-packages/idc/changelog/add-user-license-activate-notice-2 b/projects/js-packages/idc/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/idc/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/idc/package.json b/projects/js-packages/idc/package.json index 041be94c52199..2f68231713f38 100644 --- a/projects/js-packages/idc/package.json +++ b/projects/js-packages/idc/package.json @@ -5,7 +5,7 @@ "author": "Automattic", "license": "GPL-2.0-or-later", "dependencies": { - "@automattic/jetpack-api": "workspace:^0.5.0", + "@automattic/jetpack-api": "workspace:^0.5.1-alpha", "@automattic/jetpack-components": "workspace:^0.6.1-alpha", "@wordpress/base-styles": "4.0.3", "@wordpress/components": "19.0.1", diff --git a/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2 b/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2#2 b/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/js-packages/storybook/changelog/add-user-license-activate-notice-2#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2 b/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2#2 b/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/packages/connection-ui/changelog/add-user-license-activate-notice-2#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/packages/connection-ui/package.json b/projects/packages/connection-ui/package.json index 87c4366600aa2..6997f16e26aa3 100644 --- a/projects/packages/connection-ui/package.json +++ b/projects/packages/connection-ui/package.json @@ -14,7 +14,7 @@ "watch": "pnpm run build && pnpx webpack watch" }, "dependencies": { - "@automattic/jetpack-api": "workspace:^0.5.0", + "@automattic/jetpack-api": "workspace:^0.5.1-alpha", "@automattic/jetpack-connection": "workspace:^0.9.2-alpha", "@automattic/jetpack-idc": "workspace:^0.4.3-alpha", "@wordpress/data": "6.1.3" diff --git a/projects/packages/licensing/changelog/add-user-license-activate-notice-2 b/projects/packages/licensing/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c871811e7b79c --- /dev/null +++ b/projects/packages/licensing/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Added get_license_activation_notice_dismiss() function. diff --git a/projects/packages/licensing/composer.json b/projects/packages/licensing/composer.json index 33fad300104d7..f3c1573209635 100644 --- a/projects/packages/licensing/composer.json +++ b/projects/packages/licensing/composer.json @@ -49,7 +49,7 @@ "link-template": "https://github.com/Automattic/jetpack-licensing/compare/v${old}...v${new}" }, "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.5.x-dev" } } } diff --git a/projects/packages/licensing/src/class-licensing.php b/projects/packages/licensing/src/class-licensing.php index 7263a35b972f4..49d06d6a6272b 100644 --- a/projects/packages/licensing/src/class-licensing.php +++ b/projects/packages/licensing/src/class-licensing.php @@ -249,4 +249,24 @@ public static function is_licensing_input_enabled() { */ return apply_filters( 'jetpack_licensing_ui_enabled', false ) && current_user_can( 'jetpack_connect_user' ); } + + /** + * Gets the user-licensing activation notice dismissal info. + * + * @since 10.4.0 + * @return array + */ + public function get_license_activation_notice_dismiss() { + + $default = array( + 'last_detached_count' => null, + 'last_dismissed_time' => null, + ); + + if ( $this->connection()->is_user_connected() && $this->connection()->is_connection_owner() ) { + return Jetpack_Options::get_option( 'licensing_activation_notice_dismiss', $default ); + } + + return $default; + } } diff --git a/projects/packages/options/changelog/add-user-license-activate-notice-2 b/projects/packages/options/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..1cb3fe232d9c4 --- /dev/null +++ b/projects/packages/options/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: added + +Added Jetpack Option 'licensing_activation_notice_dismiss'. diff --git a/projects/packages/options/legacy/class-jetpack-options.php b/projects/packages/options/legacy/class-jetpack-options.php index 0b9860c2c101c..270a289f7591f 100644 --- a/projects/packages/options/legacy/class-jetpack-options.php +++ b/projects/packages/options/legacy/class-jetpack-options.php @@ -92,34 +92,35 @@ public static function get_option_names( $type = 'compact' ) { } return array( - 'id', // (int) The Client ID/WP.com Blog ID of this site. - 'publicize_connections', // (array) An array of Publicize connections from WordPress.com. - 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com. - 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time. - 'old_version', // (string) Used to determine which modules are the most recently added. previous_version:time. - 'fallback_no_verify_ssl_certs', // (int) Flag for determining if this host must skip SSL Certificate verification due to misconfigured SSL. - 'time_diff', // (int) Offset between Jetpack server's clocks and this server's clocks. Jetpack Server Time = time() + (int) Jetpack_Options::get_option( 'time_diff' ) - 'public', // (int|bool) If we think this site is public or not (1, 0), false if we haven't yet tried to figure it out. - 'videopress', // (array) VideoPress options array. - 'is_network_site', // (int|bool) If we think this site is a network or a single blog (1, 0), false if we haven't yet tried to figue it out. - 'social_links', // (array) The specified links for each social networking site. - 'identity_crisis_whitelist', // (array) An array of options, each having an array of the values whitelisted for it. - 'gplus_authors', // (array) The Google+ authorship information for connected users. - 'last_heartbeat', // (int) The timestamp of the last heartbeat that fired. - 'hide_jitm', // (array) A list of just in time messages that we should not show because they have been dismissed by the user. - 'custom_css_4.7_migration', // (bool) Whether Custom CSS has scanned for and migrated any legacy CSS CPT entries to the new Core format. - 'image_widget_migration', // (bool) Whether any legacy Image Widgets have been converted to the new Core widget. - 'gallery_widget_migration', // (bool) Whether any legacy Gallery Widgets have been converted to the new Core widget. - 'sso_first_login', // (bool) Is this the first time the user logins via SSO. - 'dismissed_hints', // (array) Part of Plugin Search Hints. List of cards that have been dismissed. - 'first_admin_view', // (bool) Set to true the first time the user views the admin. Usually after the initial connection. - 'setup_wizard_questionnaire', // (array) (DEPRECATED) List of user choices from the setup wizard. - 'setup_wizard_status', // (string) (DEPRECATED) Status of the setup wizard. - 'licensing_error', // (string) Last error message occurred while attaching licenses that is yet to be surfaced to the user. - 'recommendations_banner_dismissed', // (bool) Determines if the recommendations dashboard banner is dismissed or not. - 'recommendations_banner_enabled', // (bool) Whether the recommendations are enabled or not. - 'recommendations_data', // (array) The user choice and other data for the recommendations. - 'recommendations_step', // (string) The current step of the recommendations. + 'id', // (int) The Client ID/WP.com Blog ID of this site. + 'publicize_connections', // (array) An array of Publicize connections from WordPress.com. + 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com. + 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time. + 'old_version', // (string) Used to determine which modules are the most recently added. previous_version:time. + 'fallback_no_verify_ssl_certs', // (int) Flag for determining if this host must skip SSL Certificate verification due to misconfigured SSL. + 'time_diff', // (int) Offset between Jetpack server's clocks and this server's clocks. Jetpack Server Time = time() + (int) Jetpack_Options::get_option( 'time_diff' ) + 'public', // (int|bool) If we think this site is public or not (1, 0), false if we haven't yet tried to figure it out. + 'videopress', // (array) VideoPress options array. + 'is_network_site', // (int|bool) If we think this site is a network or a single blog (1, 0), false if we haven't yet tried to figue it out. + 'social_links', // (array) The specified links for each social networking site. + 'identity_crisis_whitelist', // (array) An array of options, each having an array of the values whitelisted for it. + 'gplus_authors', // (array) The Google+ authorship information for connected users. + 'last_heartbeat', // (int) The timestamp of the last heartbeat that fired. + 'hide_jitm', // (array) A list of just in time messages that we should not show because they have been dismissed by the user. + 'custom_css_4.7_migration', // (bool) Whether Custom CSS has scanned for and migrated any legacy CSS CPT entries to the new Core format. + 'image_widget_migration', // (bool) Whether any legacy Image Widgets have been converted to the new Core widget. + 'gallery_widget_migration', // (bool) Whether any legacy Gallery Widgets have been converted to the new Core widget. + 'sso_first_login', // (bool) Is this the first time the user logins via SSO. + 'dismissed_hints', // (array) Part of Plugin Search Hints. List of cards that have been dismissed. + 'first_admin_view', // (bool) Set to true the first time the user views the admin. Usually after the initial connection. + 'setup_wizard_questionnaire', // (array) (DEPRECATED) List of user choices from the setup wizard. + 'setup_wizard_status', // (string) (DEPRECATED) Status of the setup wizard. + 'licensing_error', // (string) Last error message occurred while attaching licenses that is yet to be surfaced to the user. + 'recommendations_banner_dismissed', // (bool) Determines if the recommendations dashboard banner is dismissed or not. + 'recommendations_banner_enabled', // (bool) Whether the recommendations are enabled or not. + 'recommendations_data', // (array) The user choice and other data for the recommendations. + 'recommendations_step', // (string) The current step of the recommendations. + 'licensing_activation_notice_dismiss', // (array) The `last_detached_count` and the `last_dismissed_time` for the user-license activation notice. ); } diff --git a/projects/plugins/backup/changelog/add-user-license-activate-notice-2 b/projects/plugins/backup/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/backup/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/backup/changelog/add-user-license-activate-notice-2#2 b/projects/plugins/backup/changelog/add-user-license-activate-notice-2#2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/backup/changelog/add-user-license-activate-notice-2#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/backup/composer.lock b/projects/plugins/backup/composer.lock index faaf0892cadd8..1331327f84903 100644 --- a/projects/plugins/backup/composer.lock +++ b/projects/plugins/backup/composer.lock @@ -2159,20 +2159,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -2201,9 +2201,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "sebastian/cli-parser", diff --git a/projects/plugins/backup/package.json b/projects/plugins/backup/package.json index 0cef13c754903..1d6a7435e001c 100644 --- a/projects/plugins/backup/package.json +++ b/projects/plugins/backup/package.json @@ -27,7 +27,7 @@ "extends @wordpress/browserslist-config" ], "dependencies": { - "@automattic/jetpack-api": "workspace:^0.5.0", + "@automattic/jetpack-api": "workspace:^0.5.1-alpha", "@automattic/jetpack-components": "workspace:^0.6.1-alpha", "@automattic/jetpack-connection": "workspace:^0.9.2-alpha", "@wordpress/api-fetch": "5.2.5", diff --git a/projects/plugins/beta/changelog/add-user-license-activate-notice-2 b/projects/plugins/beta/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/beta/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/beta/composer.lock b/projects/plugins/beta/composer.lock index 7038593bf1595..a7f6afa766d37 100644 --- a/projects/plugins/beta/composer.lock +++ b/projects/plugins/beta/composer.lock @@ -268,20 +268,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -310,9 +310,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "symfony/console", diff --git a/projects/plugins/boost/changelog/add-user-license-activate-notice-2 b/projects/plugins/boost/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/boost/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/boost/composer.lock b/projects/plugins/boost/composer.lock index a167485e396a3..339b484363b25 100644 --- a/projects/plugins/boost/composer.lock +++ b/projects/plugins/boost/composer.lock @@ -2205,20 +2205,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -2247,9 +2247,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "roots/wordpress", diff --git a/projects/plugins/debug-helper/changelog/add-user-license-activate-notice-2 b/projects/plugins/debug-helper/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/debug-helper/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/debug-helper/composer.lock b/projects/plugins/debug-helper/composer.lock index 824579119d9a1..974f94ca3ae34 100644 --- a/projects/plugins/debug-helper/composer.lock +++ b/projects/plugins/debug-helper/composer.lock @@ -78,20 +78,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -120,9 +120,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "symfony/console", diff --git a/projects/plugins/jetpack/_inc/client/components/jetpack-notices/index.jsx b/projects/plugins/jetpack/_inc/client/components/jetpack-notices/index.jsx index a59e8f0ea10bd..04073f43aa0b1 100644 --- a/projects/plugins/jetpack/_inc/client/components/jetpack-notices/index.jsx +++ b/projects/plugins/jetpack/_inc/client/components/jetpack-notices/index.jsx @@ -18,6 +18,7 @@ import { getRedirectUrl } from '@automattic/jetpack-components'; */ import ConnectionBanner from 'components/connection-banner'; import DismissableNotices from './dismissable'; +import UserLicenseActivationNotice from './user-license-activation'; import { getSiteConnectionStatus, getSiteOfflineMode, @@ -276,6 +277,7 @@ class JetpackNotices extends React.Component { onDismissClick={ this.props.clearLicensingError } /> ) } + ); } diff --git a/projects/plugins/jetpack/_inc/client/components/jetpack-notices/user-license-activation.jsx b/projects/plugins/jetpack/_inc/client/components/jetpack-notices/user-license-activation.jsx new file mode 100644 index 0000000000000..baad13c7af923 --- /dev/null +++ b/projects/plugins/jetpack/_inc/client/components/jetpack-notices/user-license-activation.jsx @@ -0,0 +1,130 @@ +/** + * External dependencies + */ +import PropTypes from 'prop-types'; +import React, { createElement, useCallback, useEffect } from 'react'; +import { connect } from 'react-redux'; +import { createInterpolateElement } from '@wordpress/element'; +import { __ } from '@wordpress/i18n'; + +/** + * Internal dependencies + */ +import analytics from 'lib/analytics'; +import { getSiteAdminUrl } from 'state/initial-state'; +import { + getDetachedLicensesCount, + getActivationNoticeDismissInfo, + updateLicensingActivationNoticeDismiss as updateLicensingActivationNoticeDismissAction, +} from 'state/licensing'; +import SimpleNotice from 'components/notice'; + +/** + * Jetpack "user"-licenses activation notice. (a license key is available for activation) + * + * @param {object} props - The properties. + * @param {number} props.detachedLicensesCount - The user's number of "detached" licenses. + * @param {object} props.activationNoticeDismissInfo - Object containing `last_detached_count` and `last_dismissed_time`. + * @param {Function} props.updateLicensingActivationNoticeDismiss - Function to update the notification dismiss info. + * @returns {React.Component} The `UserLicenseActivationNotice` component. + */ +const UserLicenseActivationNotice = props => { + const DAY_IN_MILLISECONDS = 24 * 3600 * 1000; + const MAX_DAYS_DISMISSED = 14; + + const { + detachedLicensesCount, + activationNoticeDismissInfo, + updateLicensingActivationNoticeDismiss, + siteAdminUrl, + } = props; + + const { + last_detached_count: lastDetachedCount, + last_dismissed_time: lastDismissedDateTime, + } = activationNoticeDismissInfo; + + // TODO: Update this link to point to the user-license activation route. + const USER_LICENSE_ACTIVATION_ROUTE = `${ siteAdminUrl }admin.php?page=jetpack#/my-plan`; + + const userHasDetachedLicenses = !! detachedLicensesCount; + const userHasNewDetachedLicenses = detachedLicensesCount > ( lastDetachedCount || 0 ); + + const now = new Date(); + const lastDismissedTime = new Date( lastDismissedDateTime ? lastDismissedDateTime : new Date() ); + const daysNoticeHasBeenDismissed = ( now - lastDismissedTime ) / DAY_IN_MILLISECONDS; + + // Send Tracks event on notice 'view'. + // Only runs once on first render + useEffect( () => { + if ( + userHasDetachedLicenses && + ( userHasNewDetachedLicenses || daysNoticeHasBeenDismissed > MAX_DAYS_DISMISSED ) + ) { + analytics.tracks.recordEvent( 'jetpack_wpa_licensing_activation_notice_view' ); + } + }, [] ); // eslint-disable-line react-hooks/exhaustive-deps + + const trackClick = useCallback( () => { + analytics.tracks.recordJetpackClick( { + target: 'licensing_activation_notice', + path: 'licensing/activation', + } ); + }, [] ); + + const onNoticeDismiss = useCallback( () => { + analytics.tracks.recordEvent( 'jetpack_wpa_licensing_activation_notice_dismiss' ); + updateLicensingActivationNoticeDismiss(); + }, [ updateLicensingActivationNoticeDismiss ] ); + + // Show the notice when the user acquires a new license, Or when the user has an available + // license(s), but has dismissed the notice and it's been over 2 weeks without activating it. + if ( + userHasDetachedLicenses && + ( userHasNewDetachedLicenses || daysNoticeHasBeenDismissed > MAX_DAYS_DISMISSED ) + ) { + return ( + Activate now', 'jetpack' ), + { + a: createElement( 'a', { + href: USER_LICENSE_ACTIVATION_ROUTE, + onClick: trackClick, + } ), + } + ) } + /> + ); + } + return null; +}; + +UserLicenseActivationNotice.propTypes = { + detachedLicensesCount: PropTypes.number.isRequired, + activationNoticeDismissInfo: PropTypes.shape( { + last_detached_count: PropTypes.number.isRequired, + last_dismiss_time: PropTypes.string.isRequired, + } ), + siteAdminUrl: PropTypes.string.isRequired, +}; + +export default connect( + state => { + return { + detachedLicensesCount: getDetachedLicensesCount( state ), + activationNoticeDismissInfo: getActivationNoticeDismissInfo( state ), + siteAdminUrl: getSiteAdminUrl( state ), + }; + }, + dispatch => { + return { + updateLicensingActivationNoticeDismiss: () => { + return dispatch( updateLicensingActivationNoticeDismissAction() ); + }, + }; + } +)( UserLicenseActivationNotice ); diff --git a/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx b/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx index 2a6f3dc003ce3..4a864320b922a 100644 --- a/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx +++ b/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx @@ -15,8 +15,9 @@ import { errorNotice as errorNoticeAction, } from 'components/global-notices/state/notices/actions'; import restApi from '@automattic/jetpack-api'; +import { updateUserLicensesCounts as updateUserLicensesCountsAction } from 'state/licensing'; -const License = ( { errorNotice, successNotice } ) => { +const License = ( { errorNotice, successNotice, updateUserLicensesCounts } ) => { const [ isSaving, setIsSaving ] = useState( false ); const [ licenseKeyText, setLicenseKeyText ] = useState( '' ); @@ -34,6 +35,7 @@ const License = ( { errorNotice, successNotice } ) => { restApi .updateLicenseKey( licenseKeyText ) .then( () => { + updateUserLicensesCounts(); successNotice( __( 'Jetpack license key added. It may take a minute for the license to be processed.', @@ -48,7 +50,7 @@ const License = ( { errorNotice, successNotice } ) => { errorNotice( __( 'Error adding Jetpack license key.', 'jetpack' ) ); setIsSaving( false ); } ); - }, [ errorNotice, successNotice, isSaving, licenseKeyText ] ); + }, [ errorNotice, successNotice, isSaving, licenseKeyText, updateUserLicensesCounts ] ); return (
@@ -79,4 +81,5 @@ const License = ( { errorNotice, successNotice } ) => { export default connect( null, { errorNotice: errorNoticeAction, successNotice: successNoticeAction, + updateUserLicensesCounts: updateUserLicensesCountsAction, } )( License ); diff --git a/projects/plugins/jetpack/_inc/client/state/action-types.js b/projects/plugins/jetpack/_inc/client/state/action-types.js index 9726c5e75e449..c0f5b0a290622 100644 --- a/projects/plugins/jetpack/_inc/client/state/action-types.js +++ b/projects/plugins/jetpack/_inc/client/state/action-types.js @@ -214,3 +214,7 @@ export const JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL = 'JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL'; export const JETPACK_LICENSING_ERROR_UPDATE = 'JETPACK_LICENSING_ERROR_UPDATE'; +export const JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE = + 'JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE'; +export const JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE = + 'JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE'; diff --git a/projects/plugins/jetpack/_inc/client/state/licensing/actions.js b/projects/plugins/jetpack/_inc/client/state/licensing/actions.js index b0a48bed2537c..db8980f4286c2 100644 --- a/projects/plugins/jetpack/_inc/client/state/licensing/actions.js +++ b/projects/plugins/jetpack/_inc/client/state/licensing/actions.js @@ -1,7 +1,11 @@ /** * Internal dependencies */ -import { JETPACK_LICENSING_ERROR_UPDATE } from 'state/action-types'; +import { + JETPACK_LICENSING_ERROR_UPDATE, + JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE, + JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE, +} from 'state/action-types'; import restApi from '@automattic/jetpack-api'; export const clearLicensingError = () => { @@ -15,3 +19,42 @@ export const clearLicensingError = () => { return restApi.updateLicensingError( { error } ); }; }; + +export const updateUserLicensesCounts = () => { + return dispatch => { + return restApi + .getUserLicensesCounts() + .then( counts => { + dispatch( { + type: JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE, + counts, + } ); + } ) + .catch( error => { + dispatch( { + type: JETPACK_LICENSING_ERROR_UPDATE, + error, + } ); + } ); + }; +}; + +export const updateLicensingActivationNoticeDismiss = () => { + return ( dispatch, getState ) => { + const currentDetachedLicenseCount = getState().jetpack.licensing.userCounts?.detached; + return restApi + .updateLicensingActivationNoticeDismiss( currentDetachedLicenseCount ) + .then( dismissData => { + dispatch( { + type: JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE, + dismissData, + } ); + } ) + .catch( error => { + dispatch( { + type: JETPACK_LICENSING_ERROR_UPDATE, + error, + } ); + } ); + }; +}; diff --git a/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js b/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js index 991e5913f8bba..a81966363cd2c 100644 --- a/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js +++ b/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js @@ -1,13 +1,17 @@ /** * External dependencies */ -import { get } from 'lodash'; +import { assign, get } from 'lodash'; import { combineReducers } from 'redux'; /** * Internal dependencies */ -import { JETPACK_LICENSING_ERROR_UPDATE } from 'state/action-types'; +import { + JETPACK_LICENSING_ERROR_UPDATE, + JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE, + JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE, +} from 'state/action-types'; /** * Error reducer. @@ -26,20 +30,91 @@ export const error = ( state = window.Initial_State.licensing.error, action ) => } }; +/** + * "user" licenses counts reducer. + * + * @param {number} state - Global state tree + * @param {object} action - The action + * @returns {object} - The counts of user licenses + */ +export const userCounts = ( state = window.Initial_State.licensing.userCounts ?? {}, action ) => { + switch ( action.type ) { + case JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE: + return assign( {}, state, action.counts ); + + default: + return state; + } +}; + +/** + * "user"-licenses activation notice dismissal info. + * + * @param {number} state - Global state tree + * @param {object} action - The action + * @returns {object} - The 'last_detached_count' and 'last_dismissed_time' + */ +export const activationNoticeDismiss = ( + state = window.Initial_State.licensing.activationNoticeDismiss ?? { + last_detached_count: null, + last_dismissed_time: null, + }, + action +) => { + switch ( action.type ) { + case JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE: + return assign( {}, state, action.dismissData ); + + default: + return state; + } +}; + /** * Licensing combined reducer. */ export const reducer = combineReducers( { error, + userCounts, + activationNoticeDismiss, } ); /** * Get the latest licensing error, if any. * - * @param {Object} state Global state tree. - * - * @return {string} Error message or an empty string. + * @param {Object} state - Global state tree. + * @returns {string} - Error message or an empty string. */ export function getLicensingError( state ) { return get( state.jetpack.licensing, [ 'error' ], '' ); } + +/** + * Determines if the user has detached "user" licenses available for product activation. + * + * @param {object} state - Global state tree. + * @returns {boolean} - True if the user has detached user licenses, false otherwise. + */ +export function hasDetachedUserLicenses( state ) { + return !! get( state.jetpack.licensing.userCounts, [ 'detached' ], 0 ); +} + +/** + * Get the user's number of detached licenses. + * + * @param {object} state - Global state tree. + * @returns {number} - Number of detached licenses. + */ +export function getDetachedLicensesCount( state ) { + return get( state.jetpack.licensing.userCounts, [ 'detached' ], 0 ); +} + +/** + * Get the license activation notice dismiss info. + * + * @param {object} state - Global state tree. + * @returns {object} - An object containing last_detached_count and last_dismissed_time. + */ +export function getActivationNoticeDismissInfo( state ) { + return get( state.jetpack.licensing, [ 'activationNoticeDismiss' ], {} ); +} diff --git a/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php b/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php index 1591488061a44..f17c76fc7e6f4 100644 --- a/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php +++ b/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php @@ -175,8 +175,10 @@ public static function get_initial_state() { 'isSafari' => $is_safari || User_Agent_Info::is_opera_desktop(), // @todo Rename isSafari everywhere. 'doNotUseConnectionIframe' => Constants::is_true( 'JETPACK_SHOULD_NOT_USE_CONNECTION_IFRAME' ), 'licensing' => array( - 'error' => Licensing::instance()->last_error(), - 'showLicensingUi' => Licensing::instance()->is_licensing_input_enabled(), + 'error' => Licensing::instance()->last_error(), + 'showLicensingUi' => Licensing::instance()->is_licensing_input_enabled(), + 'userCounts' => Jetpack_Core_Json_Api_Endpoints::get_user_license_counts(), + 'activationNoticeDismiss' => Licensing::instance()->get_license_activation_notice_dismiss(), ), ); } diff --git a/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php b/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php index f061bcf364c30..9047e0e5a1339 100644 --- a/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php +++ b/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php @@ -723,6 +723,39 @@ public static function register_endpoints() { ) ); + /** + * Get Jetpack user license counts. + */ + register_rest_route( + 'jetpack/v4', + 'licensing/user/counts', + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => __CLASS__ . '::get_user_license_counts', + 'permission_callback' => __CLASS__ . '::user_licensing_permission_check', + ) + ); + + /** + * Update user-licensing activation notice dismiss info. + */ + register_rest_route( + 'jetpack/v4', + 'licensing/user/activation-notice-dismiss', + array( + 'methods' => WP_REST_Server::EDITABLE, + 'callback' => __CLASS__ . '::update_licensing_activation_notice_dismiss', + 'permission_callback' => __CLASS__ . '::user_licensing_permission_check', + 'args' => array( + 'last_detached_count' => array( + 'required' => true, + 'type' => 'integer', + 'validate_callback' => __CLASS__ . '::validate_non_neg_int', + ), + ), + ) + ); + /* * Manage the Jetpack CRM plugin's integration with Jetpack contact forms. */ @@ -1013,6 +1046,75 @@ public static function get_products( $request ) { } } + /** + * Gets the users licenses counts. + * + * @since 10.4.0 + * + * @return string|WP_Error A JSON object of user license counts if the request was successful, or a WP_Error otherwise. + */ + public static function get_user_license_counts() { + $wpcom_request = Client::wpcom_json_api_request_as_user( + '/jetpack-licensing/user/licenses/counts', + '2', + array( + 'method' => 'GET', + 'headers' => array( + 'Content-Type' => 'application/json', + 'X-Forwarded-For' => Jetpack::current_user_ip( true ), + ), + ) + ); + + $response_code = wp_remote_retrieve_response_code( $wpcom_request ); + if ( 200 === $response_code ) { + $license_counts = json_decode( wp_remote_retrieve_body( $wpcom_request ) ); + return $license_counts; + } else { + return new WP_Error( + 'failed_to_fetch_data', + esc_html__( 'Unable to fetch the requested data.', 'jetpack' ), + array( 'status' => $response_code ) + ); + } + } + + /** + * Update the user-licenses activation notice dismissal data. + * + * @since 10.4.0 + * + * @param WP_REST_Request $request The request sent to the WP REST API. + * + * @return array|WP_Error + */ + public static function update_licensing_activation_notice_dismiss( $request ) { + + if ( ! isset( $request['last_detached_count'] ) ) { + return new WP_Error( 'invalid_param', esc_html__( 'Missing parameter "last_detached_count".', 'jetpack' ), array( 'status' => 404 ) ); + } + + $default = array( + 'last_detached_count' => null, + 'last_dismissed_time' => null, + ); + $last_detached_count = ( '' === $request['last_detached_count'] ) + ? $default['last_detached_count'] + : $request['last_detached_count']; + $last_dismissed_time = ( '' === $request['last_detached_count'] ) + ? $default['last_dismissed_time'] + // Use UTC timezone and convert to ISO8601 format(DateTime::W3C) for best compatibility with JavaScript Date in all browsers. + : ( new DateTime( 'NOW', new DateTimeZone( 'UTC' ) ) )->format( DateTime::W3C ); + + $notice_data = array( + 'last_detached_count' => $last_detached_count, + 'last_dismissed_time' => $last_dismissed_time, + ); + + Jetpack_Options::update_option( 'licensing_activation_notice_dismiss', $notice_data, true ); + return rest_ensure_response( $notice_data ); + } + public static function submit_survey( $request ) { $wpcom_request = Client::wpcom_json_api_request_as_user( @@ -1333,6 +1435,21 @@ public static function purchase_token_permission_check() { return new WP_Error( 'invalid_permission_manage_purchase_token', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) ); } + /** + * Verify that user can view and update user-licensing data. + * + * @return bool Whether the user is currently connected and they are the connection owner. + */ + public static function user_licensing_permission_check() { + $connection_manager = new Connection_Manager( 'jetpack' ); + + if ( $connection_manager->is_user_connected() && $connection_manager->is_connection_owner() ) { + return true; + } + + return new WP_Error( 'invalid_permission_manage_user_licenses', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) ); + } + /** * Test connection status for this Jetpack site. * @@ -2840,6 +2957,28 @@ public static function validate_posint( $value, $request, $param ) { return true; } + /** + * Validates that the parameter is a non-negative integer (includes 0). + * + * @since 10.4.0 + * + * @param int $value Value to check. + * @param WP_REST_Request $request The request sent to the WP REST API. + * @param string $param Name of the parameter passed to endpoint holding $value. + * + * @return bool|WP_Error + */ + public static function validate_non_neg_int( $value, $request, $param ) { + if ( ! is_numeric( $value ) || $value < 0 ) { + return new WP_Error( + 'invalid_param', + /* translators: %s: The literal parameter name. Should not be translated. */ + sprintf( esc_html__( '%s must be a non-negative integer.', 'jetpack' ), $param ) + ); + } + return true; + } + /** * Validates that the parameter belongs to a list of admitted values. * diff --git a/projects/plugins/jetpack/changelog/add-license-activation-notice b/projects/plugins/jetpack/changelog/add-license-activation-notice new file mode 100644 index 0000000000000..7efc391be7875 --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-license-activation-notice @@ -0,0 +1,4 @@ +Significance: minor +Type: enhancement + +Display a notice when connection owner has an unactivated product licence key \ No newline at end of file diff --git a/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2 b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2 b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2 new file mode 100644 index 0000000000000..1eaea6a769e84 --- /dev/null +++ b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2 @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +Updated package dependencies. diff --git a/projects/plugins/jetpack/composer.json b/projects/plugins/jetpack/composer.json index 172019281a9d9..2632c83404e85 100644 --- a/projects/plugins/jetpack/composer.json +++ b/projects/plugins/jetpack/composer.json @@ -28,7 +28,7 @@ "automattic/jetpack-identity-crisis": "0.4.x-dev", "automattic/jetpack-jitm": "2.0.x-dev", "automattic/jetpack-lazy-images": "2.0.x-dev", - "automattic/jetpack-licensing": "1.4.x-dev", + "automattic/jetpack-licensing": "1.5.x-dev", "automattic/jetpack-logo": "1.5.x-dev", "automattic/jetpack-options": "1.13.x-dev", "automattic/jetpack-partner": "1.5.x-dev", diff --git a/projects/plugins/jetpack/composer.lock b/projects/plugins/jetpack/composer.lock index a67a5a916937e..3a0dd8784626e 100644 --- a/projects/plugins/jetpack/composer.lock +++ b/projects/plugins/jetpack/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a6d357598e7a4adf2079479ed0b08b6a", + "content-hash": "254cbae594ddbef3102737bc957f1c72", "packages": [ { "name": "automattic/jetpack-a8c-mc-stats", @@ -952,7 +952,7 @@ "dist": { "type": "path", "url": "../../packages/licensing", - "reference": "43c0b265f8f9f4456045d7c1f28133c98c60a219" + "reference": "ecf1135064fcdc825f8f91efc6d7ea149c5f5778" }, "require": { "automattic/jetpack-connection": "^1.30", @@ -971,7 +971,7 @@ "link-template": "https://github.com/Automattic/jetpack-licensing/compare/v${old}...v${new}" }, "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.5.x-dev" } }, "autoload": { @@ -2776,20 +2776,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -2818,9 +2818,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "sebastian/cli-parser", diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json index f09b74e0ce4db..bbf9dc1c22a61 100644 --- a/projects/plugins/jetpack/package.json +++ b/projects/plugins/jetpack/package.json @@ -63,7 +63,7 @@ "@automattic/components": "1.0.0-alpha.3", "@automattic/format-currency": "1.0.0-alpha.0", "@automattic/jetpack-analytics": "workspace:^0.1.2", - "@automattic/jetpack-api": "workspace:^0.5.0", + "@automattic/jetpack-api": "workspace:^0.5.1-alpha", "@automattic/jetpack-components": "workspace:^0.6.1-alpha", "@automattic/jetpack-connection": "workspace:^0.9.2-alpha", "@automattic/popup-monitor": "1.0.0", @@ -149,8 +149,8 @@ "webpack-cli": "4.8.0" }, "devDependencies": { - "@automattic/jetpack-webpack-config": "workspace:^0.1.1-alpha", "@automattic/color-studio": "2.5.0", + "@automattic/jetpack-webpack-config": "workspace:^0.1.1-alpha", "@babel/core": "7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator": "7.16.0", "@babel/plugin-transform-react-jsx": "7.16.0", @@ -195,7 +195,7 @@ "nyc": "15.1.0", "postcss": "8.3.11", "postcss-loader": "6.2.0", - "prettier": "npm:wp-prettier@2.0.5", + "prettier": "npm:wp-prettier@^2.0.5", "react-click-outside": "3.0.1", "react-test-renderer": "17.0.2", "sass-loader": "10.1.1", diff --git a/projects/plugins/search/changelog/add-user-license-activate-notice-2 b/projects/plugins/search/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/search/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/search/composer.lock b/projects/plugins/search/composer.lock index a4fb97a835eb8..5c040857edd11 100644 --- a/projects/plugins/search/composer.lock +++ b/projects/plugins/search/composer.lock @@ -1020,20 +1020,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -1062,9 +1062,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "sebastian/cli-parser", diff --git a/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2 b/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2 new file mode 100644 index 0000000000000..c47cb18e82997 --- /dev/null +++ b/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2 @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Updated package dependencies. diff --git a/projects/plugins/vaultpress/composer.lock b/projects/plugins/vaultpress/composer.lock index 97209591eb0b3..dffeb9b868dc9 100644 --- a/projects/plugins/vaultpress/composer.lock +++ b/projects/plugins/vaultpress/composer.lock @@ -1129,20 +1129,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -1171,9 +1171,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "sebastian/cli-parser",