From aa4b387343b591fa5dc6112b1c7dea2ad716455f Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Sun, 21 Aug 2022 19:55:40 +0100 Subject: [PATCH 01/58] Update iso-locales.json Complete the English "en-" prefix with relevant locales based on https://www.localeplanet.com/icu/ --- .../i18n/server/constants/iso-locales.json | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) diff --git a/packages/plugins/i18n/server/constants/iso-locales.json b/packages/plugins/i18n/server/constants/iso-locales.json index b071ba61a0..ac1f8e18ea 100644 --- a/packages/plugins/i18n/server/constants/iso-locales.json +++ b/packages/plugins/i18n/server/constants/iso-locales.json @@ -451,10 +451,26 @@ "code":"en-AS", "name":"English (American Samoa) (en-AS)" }, + { + "code":"en-AI", + "name":"English (Anguilla) (en-AI)" + }, + { + "code":"en-AG", + "name":"English (Antigua & Barbuda) (en-AG)" + }, { "code":"en-AU", "name":"English (Australia) (en-AU)" }, + { + "code":"en-AT", + "name":"English (Austria) (en-AT)" + }, + { + "code":"en-BS", + "name":"English (Bahamas) (en-BS)" + }, { "code":"en-BB", "name":"English (Barbados) (en-BB)" @@ -475,22 +491,110 @@ "code":"en-BW", "name":"English (Botswana) (en-BW)" }, + { + "code":"en-IO", + "name":"English (British Indian Ocean Territory) (en-IO)" + }, + { + "code":"en-VG", + "name":"English (British Virgin Islands) (en-VG)" + }, + { + "code":"en-BI", + "name":"English (Burundi) (en-BI)" + }, + { + "code":"en-CM", + "name":"English (Cameroon) (en-CM)" + }, { "code":"en-CA", "name":"English (Canada) (en-CA)" }, + { + "code":"en-KY", + "name":"English (Cayman Islands) (en-KY)" + }, + { + "code":"en-CX", + "name":"English (Christmas Island) (en-CX)" + }, + { + "code":"en-CC", + "name":"English (Cocos [Keeling] Islands) (en-CC)" + }, + { + "code":"en-CK", + "name":"English (Cook Islands) (en-CK)" + }, + { + "code":"en-CY", + "name":"English (Cyprus) (en-CY)" + }, + { + "code":"en-DK", + "name":"English (Denmark) (en-DK)" + }, + { + "code":"en-DG", + "name":"English (Diego Garcia) (en-DG)" + }, + { + "code":"en-DM", + "name":"English (Dominica) (en-DM)" + }, { "code":"en-EG", "name":"English (Egypt) (en-EG)" }, + { + "code":"en-ER", + "name":"English (Eritrea) (en-ER)" + }, { "code":"en-EU", "name":"English (Europe) (en-EU)" }, + { + "code":"en-FK", + "name":"English (Falkland Islands) (en-FK)" + }, + { + "code":"en-FJ", + "name":"English (Fiji) (en-FJ)" + }, + { + "code":"en-FI", + "name":"English (Finland) (en-FI)" + }, + { + "code":"en-GM", + "name":"English (Gambia) (en-GM)" + }, + { + "code":"en-DE", + "name":"English (Germany) (en-DE)" + }, + { + "code":"en-GH", + "name":"English (Ghana) (en-GH)" + }, + { + "code":"en-GI", + "name":"English (Gibraltar) (en-GI)" + }, + { + "code":"en-GD", + "name":"English (Grenada) (en-GD)" + }, { "code":"en-GU", "name":"English (Guam) (en-GU)" }, + { + "code":"en-GG", + "name":"English (Guernsey) (en-GG)" + }, { "code":"en-GY", "name":"English (Guyana) (en-GY)" @@ -507,10 +611,54 @@ "code":"en-IE", "name":"English (Ireland) (en-IE)" }, + { + "code":"en-IM", + "name":"English (Isle of Man) (en-IM)" + }, + { + "code":"en-IL", + "name":"English (Israel) (en-IL)" + }, { "code":"en-JM", "name":"English (Jamaica) (en-JM)" }, + { + "code":"en-JE", + "name":"English (Jersey) (en-JE)" + }, + { + "code":"en-KE", + "name":"English (Kenya) (en-KE)" + }, + { + "code":"en-KI", + "name":"English (Kiribati) (en-KI)" + }, + { + "code":"en-LS", + "name":"English (Lesotho) (en-LS)" + }, + { + "code":"en-LR", + "name":"English (Liberia) (en-LR)" + }, + { + "code":"en-MO", + "name":"English (Macau SAR China) (en-MO)" + }, + { + "code":"en-MG", + "name":"English (Madagascar) (en-MG)" + }, + { + "code":"en-MW", + "name":"English (Malawi) (en-MW)" + }, + { + "code":"en-MY", + "name":"English (Malaysia) (en-MY)" + }, { "code":"en-MT", "name":"English (Malta) (en-MT)" @@ -523,14 +671,42 @@ "code":"en-MU", "name":"English (Mauritius) (en-MU)" }, + { + "code":"en-FM", + "name":"English (Micronesia) (en-FM)" + }, + { + "code":"en-MS", + "name":"English (Montserrat) (en-MS)" + }, { "code":"en-NA", "name":"English (Namibia) (en-NA)" }, + { + "code":"en-NR", + "name":"English (Nauru) (en-NR)" + }, + { + "code":"en-NL", + "name":"English (Netherlands) (en-NL)" + }, { "code":"en-NZ", "name":"English (New Zealand) (en-NZ)" }, + { + "code":"en-NG", + "name":"English (Nigeria) (en-NG)" + }, + { + "code":"en-NU", + "name":"English (Niue) (en-NU)" + }, + { + "code":"en-NF", + "name":"English (Norfolk Island) (en-NF)" + }, { "code":"en-MP", "name":"English (Northern Mariana Islands) (en-MP)" @@ -539,26 +715,126 @@ "code":"en-PK", "name":"English (Pakistan) (en-PK)" }, + { + "code":"en-PW", + "name":"English (Palau) (en-PW)" + }, + { + "code":"en-PG", + "name":"English (Papua New Guinea) (en-PG)" + }, { "code":"en-PH", "name":"English (Philippines) (en-PH)" }, + { + "code":"en-PN", + "name":"English (Pitcairn Islands) (en-PN)" + }, + { + "code":"en-PR", + "name":"English (Puerto Rico) (en-PR)" + }, + { + "code":"en-RW", + "name":"English (Rwanda) (en-RW)" + }, + { + "code":"en-WS", + "name":"English (Samoa) (en-WS)" + }, { "code":"en-SA", "name":"English (Saudi Arabia) (en-SA)" }, + { + "code":"en-SC", + "name":"English (Seychelles) (en-SC)" + }, + { + "code":"en-SL", + "name":"English (Sierra Leone) (en-SL)" + }, { "code":"en-SG", "name":"English (Singapore) (en-SG)" }, + { + "code":"en-SX", + "name":"English (Sint Maarten) (en-SX)" + }, + { + "code":"en-SI", + "name":"English (Slovenia) (en-SI)" + }, + { + "code":"en-SB", + "name":"English (Solomon Islands) (en-SB)" + }, { "code":"en-ZA", "name":"English (South Africa) (en-ZA)" }, + { + "code":"en-SS", + "name":"English (South Sudan) (en-SS)" + }, + { + "code":"en-SH", + "name":"English (St Helena) (en-SH)" + }, + { + "code":"en-KN", + "name":"English (St Kitts & Nevis) (en-KN)" + }, + { + "code":"en-LC", + "name":"English (St Lucia) (en-LC)" + }, + { + "code":"en-VC", + "name":"English (St Vincent & Grenadines) (en-VC)" + }, + { + "code":"en-SD", + "name":"English (Sudan) (en-SD)" + }, + { + "code":"en-SZ", + "name":"English (Swaziland) (en-SZ)" + }, + { + "code":"en-SE", + "name":"English (Sweden) (en-SE)" + }, + { + "code":"en-CH", + "name":"English (Switzerland) (en-CH)" + }, + { + "code":"en-TZ", + "name":"English (Tanzania) (en-TZ)" + }, + { + "code":"en-TK", + "name":"English (Tokelau) (en-TK)" + }, + { + "code":"en-TO", + "name":"English (Tonga) (en-TO)" + }, { "code":"en-TT", "name":"English (Trinidad and Tobago) (en-TT)" }, + { + "code":"en-TC", + "name":"English (Turks & Caicos Islands) (en-TC)" + }, + { + "code":"en-TV", + "name":"English (Tuvalu) (en-TV)" + }, { "code":"en-AE", "name":"English (U.A.E.) (en-AE)" @@ -575,6 +851,10 @@ "code":"en-US-POSIX", "name":"English (U.S., Computer) (en-US-POSIX)" }, + { + "code":"en-UG", + "name":"English (Uganda) (en-UG)" + }, { "code":"en-GB", "name":"English (United Kingdom) (en-GB)" @@ -583,6 +863,14 @@ "code":"en-US", "name":"English (United States) (en-US)" }, + { + "code":"en-VU", + "name":"English (Vanuatu) (en-VU)" + }, + { + "code":"en-ZM", + "name":"English (Zambia) (en-ZM)" + }, { "code":"en-ZW", "name":"English (Zimbabwe) (en-ZW)" From 0ad771e44d97a737e1f82210e2bc8732eaad6226 Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Sun, 21 Aug 2022 20:26:42 +0100 Subject: [PATCH 02/58] Update iso-locales.test.js.snap Complete the English "en-" prefix with relevant locales based on https://www.localeplanet.com/icu/ --- .../__snapshots__/iso-locales.test.js.snap | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) diff --git a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap index 679e2920a9..2879b73698 100644 --- a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap +++ b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap @@ -454,10 +454,26 @@ Array [ "code": "en-AS", "name": "English (American Samoa) (en-AS)", }, + Object { + "code": "en-AI", + "name": "English (Anguilla) (en-AI)", + }, + Object { + "code": "en-AG", + "name": "English (Antigua & Barbuda) (en-AG)", + }, Object { "code": "en-AU", "name": "English (Australia) (en-AU)", }, + Object { + "code": "en-AT", + "name": "English (Austria) (en-AT)", + }, + Object { + "code": "en-BS", + "name": "English (Bahamas) (en-BS)", + }, Object { "code": "en-BB", "name": "English (Barbados) (en-BB)", @@ -478,22 +494,110 @@ Array [ "code": "en-BW", "name": "English (Botswana) (en-BW)", }, + Object { + "code": "en-IO", + "name": "English (British Indian Ocean Territory) (en-IO)", + }, + Object { + "code": "en-VG", + "name": "English (British Virgin Islands) (en-VG)", + }, + Object { + "code": "en-BI", + "name": "English (Burundi) (en-BI)", + }, + Object { + "code": "en-CM", + "name": "English (Cameroon) (en-CM)", + }, Object { "code": "en-CA", "name": "English (Canada) (en-CA)", }, + Object { + "code": "en-KY", + "name": "English (Cayman Islands) (en-KY)", + }, + Object { + "code": "en-CX", + "name": "English (Christmas Island) (en-CX)", + }, + Object { + "code": "en-CC", + "name": "English (Cocos [Keeling] Islands) (en-CC)", + }, + Object { + "code": "en-CK", + "name": "English (Cook Islands) (en-CK)", + }, + Object { + "code": "en-CY", + "name": "English (Cyprus) (en-CY)", + }, + Object { + "code": "en-DK", + "name": "English (Denmark) (en-DK)", + }, + Object { + "code": "en-DG", + "name": "English (Diego Garcia) (en-DG)", + }, + Object { + "code": "en-DM", + "name": "English (Dominica) (en-DM)", + }, Object { "code": "en-EG", "name": "English (Egypt) (en-EG)", }, + Object { + "code": "en-ER", + "name": "English (Eritrea) (en-ER)", + }, Object { "code": "en-EU", "name": "English (Europe) (en-EU)", }, + Object { + "code": "en-FK", + "name": "English (Falkland Islands) (en-FK)", + }, + Object { + "code": "en-FJ", + "name": "English (Fiji) (en-FJ)", + }, + Object { + "code": "en-FI", + "name": "English (Finland) (en-FI)", + }, + Object { + "code": "en-GM", + "name": "English (Gambia) (en-GM)", + }, + Object { + "code": "en-DE", + "name": "English (Germany) (en-DE)", + }, + Object { + "code": "en-GH", + "name": "English (Ghana) (en-GH)", + }, + Object { + "code": "en-GI", + "name": "English (Gibraltar) (en-GI)", + }, + Object { + "code": "en-GD", + "name": "English (Grenada) (en-GD)", + }, Object { "code": "en-GU", "name": "English (Guam) (en-GU)", }, + Object { + "code": "en-GG", + "name": "English (Guernsey) (en-GG)", + }, Object { "code": "en-GY", "name": "English (Guyana) (en-GY)", @@ -510,10 +614,54 @@ Array [ "code": "en-IE", "name": "English (Ireland) (en-IE)", }, + Object { + "code": "en-IM", + "name": "English (Isle of Man) (en-IM)", + }, + Object { + "code": "en-IL", + "name": "English (Israel) (en-IL)", + }, Object { "code": "en-JM", "name": "English (Jamaica) (en-JM)", }, + Object { + "code": "en-JE", + "name": "English (Jersey) (en-JE)", + }, + Object { + "code": "en-KE", + "name": "English (Kenya) (en-KE)", + }, + Object { + "code": "en-KI", + "name": "English (Kiribati) (en-KI)", + }, + Object { + "code": "en-LS", + "name": "English (Lesotho) (en-LS)", + }, + Object { + "code": "en-LR", + "name": "English (Liberia) (en-LR)", + }, + Object { + "code": "en-MO", + "name": "English (Macau SAR China) (en-MO)", + }, + Object { + "code": "en-MG", + "name": "English (Madagascar) (en-MG)", + }, + Object { + "code": "en-MW", + "name": "English (Malawi) (en-MW)", + }, + Object { + "code": "en-MY", + "name": "English (Malaysia) (en-MY)", + }, Object { "code": "en-MT", "name": "English (Malta) (en-MT)", @@ -526,14 +674,42 @@ Array [ "code": "en-MU", "name": "English (Mauritius) (en-MU)", }, + Object { + "code": "en-FM", + "name": "English (Micronesia) (en-FM)", + }, + Object { + "code": "en-MS", + "name": "English (Montserrat) (en-MS)", + }, Object { "code": "en-NA", "name": "English (Namibia) (en-NA)", }, + Object { + "code": "en-NR", + "name": "English (Nauru) (en-NR)", + }, + Object { + "code": "en-NL", + "name": "English (Netherlands) (en-NL)", + }, Object { "code": "en-NZ", "name": "English (New Zealand) (en-NZ)", }, + Object { + "code": "en-NG", + "name": "English (Nigeria) (en-NG)", + }, + Object { + "code": "en-NU", + "name": "English (Niue) (en-NU)", + }, + Object { + "code": "en-NF", + "name": "English (Norfolk Island) (en-NF)", + }, Object { "code": "en-MP", "name": "English (Northern Mariana Islands) (en-MP)", @@ -542,26 +718,126 @@ Array [ "code": "en-PK", "name": "English (Pakistan) (en-PK)", }, + Object { + "code": "en-PW", + "name": "English (Palau) (en-PW)", + }, + Object { + "code": "en-PG", + "name": "English (Papua New Guinea) (en-PG)", + }, Object { "code": "en-PH", "name": "English (Philippines) (en-PH)", }, + Object { + "code": "en-PN", + "name": "English (Pitcairn Islands) (en-PN)", + }, + Object { + "code": "en-PR", + "name": "English (Puerto Rico) (en-PR)", + }, + Object { + "code": "en-RW", + "name": "English (Rwanda) (en-RW)", + }, + Object { + "code": "en-WS", + "name": "English (Samoa) (en-WS)", + }, Object { "code": "en-SA", "name": "English (Saudi Arabia) (en-SA)", }, + Object { + "code": "en-SC", + "name": "English (Seychelles) (en-SC)", + }, + Object { + "code": "en-SL", + "name": "English (Sierra Leone) (en-SL)", + }, Object { "code": "en-SG", "name": "English (Singapore) (en-SG)", }, + Object { + "code": "en-SX", + "name": "English (Sint Maarten) (en-SX)", + }, + Object { + "code": "en-SI", + "name": "English (Slovenia) (en-SI)", + }, + Object { + "code": "en-SB", + "name": "English (Solomon Islands) (en-SB)", + }, Object { "code": "en-ZA", "name": "English (South Africa) (en-ZA)", }, + Object { + "code": "en-SS", + "name": "English (South Sudan) (en-SS)", + }, + Object { + "code": "en-SH", + "name": "English (St Helena) (en-SH)", + }, + Object { + "code": "en-KN", + "name": "English (St Kitts & Nevis) (en-KN)", + }, + Object { + "code": "en-LC", + "name": "English (St Lucia) (en-LC)", + }, + Object { + "code": "en-VC", + "name": "English (St Vincent & Grenadines) (en-VC)", + }, + Object { + "code": "en-SD", + "name": "English (Sudan) (en-SD)", + }, + Object { + "code": "en-SZ", + "name": "English (Swaziland) (en-SZ)", + }, + Object { + "code": "en-SE", + "name": "English (Sweden) (en-SE)", + }, + Object { + "code": "en-CH", + "name": "English (Switzerland) (en-CH)", + }, + Object { + "code": "en-TZ", + "name": "English (Tanzania) (en-TZ)", + }, + Object { + "code": "en-TK", + "name": "English (Tokelau) (en-TK)", + }, + Object { + "code": "en-TO", + "name": "English (Tonga) (en-TO)", + }, Object { "code": "en-TT", "name": "English (Trinidad and Tobago) (en-TT)", }, + Object { + "code": "en-TC", + "name": "English (Turks & Caicos Islands) (en-TC)", + }, + Object { + "code": "en-TV", + "name": "English (Tuvalu) (en-TV)", + }, Object { "code": "en-AE", "name": "English (U.A.E.) (en-AE)", @@ -578,6 +854,10 @@ Array [ "code": "en-US-POSIX", "name": "English (U.S., Computer) (en-US-POSIX)", }, + Object { + "code": "en-UG", + "name": "English (Uganda) (en-UG)", + }, Object { "code": "en-GB", "name": "English (United Kingdom) (en-GB)", @@ -586,6 +866,14 @@ Array [ "code": "en-US", "name": "English (United States) (en-US)", }, + Object { + "code": "en-VU", + "name": "English (Vanuatu) (en-VU)", + }, + Object { + "code": "en-ZM", + "name": "English (Zambia) (en-ZM)", + }, Object { "code": "en-ZW", "name": "English (Zimbabwe) (en-ZW)", From a367a3df2d146c75f3b4320a24dd09d4333ea4be Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Tue, 30 Aug 2022 23:21:46 +0200 Subject: [PATCH 03/58] Exclude source maps when loading APIs --- packages/core/strapi/lib/core/loaders/apis.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/strapi/lib/core/loaders/apis.js b/packages/core/strapi/lib/core/loaders/apis.js index 91a2b53839..95314ce5b8 100644 --- a/packages/core/strapi/lib/core/loaders/apis.js +++ b/packages/core/strapi/lib/core/loaders/apis.js @@ -131,11 +131,12 @@ const loadDir = async (dir) => { const root = {}; for (const fd of fds) { - if (!fd.isFile()) { + if (!fd.isFile() || extname(fd.name) === '.map') { continue; } const key = basename(fd.name, extname(fd.name)); + root[normalizeName(key)] = await loadFile(join(dir, fd.name)); } From f40c1f517a2d018c5a0802251182c3025a4a5ead Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Wed, 31 Aug 2022 10:56:06 +0200 Subject: [PATCH 04/58] Allow USE RETURNING in SQLite --- packages/core/database/lib/dialects/sqlite/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/database/lib/dialects/sqlite/index.js b/packages/core/database/lib/dialects/sqlite/index.js index c3f10d21a3..1b91a6c214 100644 --- a/packages/core/database/lib/dialects/sqlite/index.js +++ b/packages/core/database/lib/dialects/sqlite/index.js @@ -24,6 +24,10 @@ class SqliteDialect extends Dialect { fse.ensureDirSync(dbDir); } + useReturning() { + return true; + } + async initialize() { await this.db.connection.raw('pragma foreign_keys = on'); } From 76ca2b788074b420e81c6c4b32b4ac55c3e403ad Mon Sep 17 00:00:00 2001 From: gitstart Date: Wed, 31 Aug 2022 10:40:25 +0000 Subject: [PATCH 05/58] ID in schema have type string From 1b6ccc76b6a3b199b204146f75497223b587210a Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Thu, 1 Sep 2022 22:45:23 +0200 Subject: [PATCH 06/58] Trim admin's first name when validating --- packages/core/admin/admin/src/pages/AuthPage/utils/forms.js | 4 ++-- .../pages/Users/ListPage/ModalForm/utils/schema.js | 2 +- .../pages/Users/utils/validations/users/profile.js | 4 ++-- packages/core/admin/server/validation/common-validators.js | 2 +- packages/core/strapi/lib/commands/admin-create.js | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js b/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js index 5349fc27cc..ec4239ee34 100644 --- a/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js +++ b/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js @@ -52,7 +52,7 @@ const forms = { fieldsToDisable: ['email'], fieldsToOmit: ['userInfo.confirmPassword', 'userInfo.news', 'userInfo.email'], schema: yup.object().shape({ - firstname: yup.string().required(translatedErrors.required), + firstname: yup.string().trim().required(translatedErrors.required), lastname: yup.string(), password: yup .string() @@ -76,7 +76,7 @@ const forms = { fieldsToDisable: [], fieldsToOmit: ['confirmPassword', 'news'], schema: yup.object().shape({ - firstname: yup.string().required(translatedErrors.required), + firstname: yup.string().trim().required(translatedErrors.required), lastname: yup.string(), password: yup .string() diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js index 9ae27dd2c5..adf046691b 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js @@ -2,7 +2,7 @@ import * as yup from 'yup'; import { translatedErrors } from '@strapi/helper-plugin'; const schema = yup.object().shape({ - firstname: yup.string().required(translatedErrors.required), + firstname: yup.string().trim().required(translatedErrors.required), lastname: yup.string(), email: yup.string().email(translatedErrors.email).required(translatedErrors.required), roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required), diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js index 3b241c1447..69b5a14668 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js @@ -2,8 +2,8 @@ import * as yup from 'yup'; import { translatedErrors } from '@strapi/helper-plugin'; export const commonUserSchema = { - firstname: yup.mixed().required(translatedErrors.required), - lastname: yup.mixed(), + firstname: yup.string().trim().required(translatedErrors.required), + lastname: yup.string(), email: yup.string().email(translatedErrors.email).lowercase().required(translatedErrors.required), username: yup.string().nullable(), password: yup diff --git a/packages/core/admin/server/validation/common-validators.js b/packages/core/admin/server/validation/common-validators.js index 64716bd0df..42193d7ced 100644 --- a/packages/core/admin/server/validation/common-validators.js +++ b/packages/core/admin/server/validation/common-validators.js @@ -16,7 +16,7 @@ const getActionFromProvider = (actionId) => { const email = yup.string().email().lowercase(); -const firstname = yup.string().min(1); +const firstname = yup.string().trim().min(1); const lastname = yup.string(); diff --git a/packages/core/strapi/lib/commands/admin-create.js b/packages/core/strapi/lib/commands/admin-create.js index 967a58cc69..754c8b156a 100644 --- a/packages/core/strapi/lib/commands/admin-create.js +++ b/packages/core/strapi/lib/commands/admin-create.js @@ -17,7 +17,7 @@ const passwordValidator = yup const adminCreateSchema = yup.object().shape({ email: emailValidator, password: passwordValidator, - firstname: yup.string().required('First name is required'), + firstname: yup.string().trim().required('First name is required'), lastname: yup.string(), }); From 2b8a9ba33a3c5d56397d251db45919778ac7cb42 Mon Sep 17 00:00:00 2001 From: Zharkan Date: Thu, 1 Sep 2022 23:06:23 +0200 Subject: [PATCH 07/58] fix some translations --- .../core/admin/admin/src/translations/fr.json | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/core/admin/admin/src/translations/fr.json b/packages/core/admin/admin/src/translations/fr.json index cbbad21d1a..52a58c3cf7 100644 --- a/packages/core/admin/admin/src/translations/fr.json +++ b/packages/core/admin/admin/src/translations/fr.json @@ -588,6 +588,38 @@ "content-manager.success.record.save": "Sauvegardé", "content-manager.success.record.unpublish": "Publication annulée", "content-manager.utils.data-loaded": "{number, plural, =1 {L'entrée a été chargée} other {Les entrées on été chargées} avec succès", + "content-manager.apiError.This attribute must be unique": "Le champ {field} doit être unique", + "form.button.continue": "Continuer", + "global.search": "Rechercher", + "global.actions": "Actions", + "global.back": "Retour", + "global.cancel": "Annuler", + "global.change-password": "Modifier le mot de passe", + "global.content-manager": "Gestion du contenu", + "global.continue": "Continuer", + "global.delete": "Supprimer", + "global.delete-target": "Supprimer {target}", + "global.description": "Description", + "global.details": "Détails", + "global.disabled": "Désactivé", + "global.documentation": "Documentation", + "global.enabled": "Activé", + "global.finish": "Terminer", + "global.marketplace": "Marketplace", + "global.name": "Nom", + "global.none": "Aucun", + "global.password": "Mot de passe", + "global.plugins": "Plugins", + "global.profile": "Profil", + "global.reset-password": "Réinitialiser le mot de passe", + "global.roles": "Rôles", + "global.save": "Enregistrer", + "global.see-more": "Voir plus", + "global.select": "Séléctionner", + "global.select-all-entries": "Sélectionner toutes les entrées", + "global.settings": "Paramètres", + "global.type": "Type", + "global.users": "Utilisateurs", "form.button.done": "Terminer", "global.prompt.unsaved": "Êtes-vous sûr de vouloir quitter cette page? Toutes vos modifications seront perdues", "notification.contentType.relations.conflict": "Le Type de Contenu à des relations qui rentrent en conflit", From d63c47b6e64fc977c3e8790eceb63a890af34fa7 Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Fri, 2 Sep 2022 13:18:07 +0200 Subject: [PATCH 08/58] Do not allow reserved names for singular/plural API names --- .../contentType/createContentTypeSchema.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js b/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js index c30a7b7ef6..b31c169cdc 100644 --- a/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js +++ b/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js @@ -62,6 +62,17 @@ const createContentTypeSchema = ( return context.parent.singularName !== value; }, }) + .test({ + name: 'nameNotAllowed', + message: getTrad('error.contentTypeName.reserved-name'), + test(value) { + if (!value) { + return false; + } + + return !reservedNames.includes(toLower(trim(value))); + }, + }) .required(errorsTrads.required), singularName: yup .string() @@ -87,6 +98,17 @@ const createContentTypeSchema = ( return context.parent.pluralName !== value; }, }) + .test({ + name: 'nameNotAllowed', + message: getTrad('error.contentTypeName.reserved-name'), + test(value) { + if (!value) { + return false; + } + + return !reservedNames.includes(toLower(trim(value))); + }, + }) .required(errorsTrads.required), draftAndPublish: yup.boolean(), kind: yup.string().oneOf(['singleType', 'collectionType']), From 55efd7b0344d70620dc097e7617f3f25d7ed79a5 Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Fri, 2 Sep 2022 14:46:31 +0200 Subject: [PATCH 09/58] Update `lang` attribute on locale change --- packages/core/admin/admin/src/StrapiApp.js | 4 ++++ .../core/admin/admin/src/components/LanguageProvider/index.js | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/core/admin/admin/src/StrapiApp.js b/packages/core/admin/admin/src/StrapiApp.js index cca63eb768..1e5e4494b5 100644 --- a/packages/core/admin/admin/src/StrapiApp.js +++ b/packages/core/admin/admin/src/StrapiApp.js @@ -22,6 +22,7 @@ import { } from './exposedHooks'; import injectionZones from './injectionZones'; import favicon from './favicon.ico'; +import localStorageKey from './components/LanguageProvider/utils/localStorageKey'; class StrapiApp { constructor({ adminConfig, appPlugins, library, middlewares, reducers }) { @@ -425,6 +426,8 @@ class StrapiApp { fields: { fields }, } = this.library; + console.log({ settings: this.settings }); + return ( diff --git a/packages/core/admin/admin/src/components/LanguageProvider/index.js b/packages/core/admin/admin/src/components/LanguageProvider/index.js index d94e792dc3..1825d57d0e 100644 --- a/packages/core/admin/admin/src/components/LanguageProvider/index.js +++ b/packages/core/admin/admin/src/components/LanguageProvider/index.js @@ -21,6 +21,7 @@ const LanguageProvider = ({ children, localeNames, messages }) => { useEffect(() => { // Set user language in local storage. window.localStorage.setItem(localStorageKey, locale); + document.documentElement.setAttribute('lang', locale); }, [locale]); const changeLocale = (locale) => { From 617ae0f3960286b8a388220b47ec29a674648124 Mon Sep 17 00:00:00 2001 From: WalkingPizza Date: Fri, 2 Sep 2022 15:04:30 +0200 Subject: [PATCH 10/58] Remove console.log --- packages/core/admin/admin/src/StrapiApp.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/admin/admin/src/StrapiApp.js b/packages/core/admin/admin/src/StrapiApp.js index 1e5e4494b5..ea82a02523 100644 --- a/packages/core/admin/admin/src/StrapiApp.js +++ b/packages/core/admin/admin/src/StrapiApp.js @@ -426,8 +426,6 @@ class StrapiApp { fields: { fields }, } = this.library; - console.log({ settings: this.settings }); - return ( Date: Fri, 2 Sep 2022 15:12:52 +0200 Subject: [PATCH 11/58] Prevent `InputJSON` from crashing when field value is `0` --- .../admin/src/content-manager/components/InputJSON/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/admin/admin/src/content-manager/components/InputJSON/index.js b/packages/core/admin/admin/src/content-manager/components/InputJSON/index.js index 182dc736a2..5806dc33cb 100644 --- a/packages/core/admin/admin/src/content-manager/components/InputJSON/index.js +++ b/packages/core/admin/admin/src/content-manager/components/InputJSON/index.js @@ -79,6 +79,8 @@ class InputJSON extends React.Component { try { if (value === null) return this.codeMirror.setValue(''); + if (value === 0) return this.codeMirror.setValue('0'); + return this.codeMirror.setValue(value); } catch (err) { return this.setState({ error: true }); From 93cddd8f9fc7490930d999ecda7664db5982e548 Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Sun, 4 Sep 2022 07:18:23 +0100 Subject: [PATCH 12/58] update locales - with specific code language - ensure to follow consistent name sorting --- .../i18n/server/constants/iso-locales.json | 46 +++++++++---------- .../__snapshots__/iso-locales.test.js.snap | 46 +++++++++---------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/plugins/i18n/server/constants/iso-locales.json b/packages/plugins/i18n/server/constants/iso-locales.json index ac1f8e18ea..c39c65855f 100644 --- a/packages/plugins/i18n/server/constants/iso-locales.json +++ b/packages/plugins/i18n/server/constants/iso-locales.json @@ -43,6 +43,10 @@ "code":"am-ET", "name":"Amharic (Ethiopia) (am-ET)" }, + { + "code":"aig", + "name":"Antigua and Barbuda Creole English" + }, { "code":"ar", "name":"Arabic (ar)" @@ -171,6 +175,10 @@ "code":"ksf-CM", "name":"Bafia (Cameroon) (ksf-CM)" }, + { + "code":"bah", + "name":"Bahamas Creole English" + }, { "code":"bm", "name":"Bambara (bm)" @@ -447,10 +455,6 @@ "code":"en", "name":"English (en)" }, - { - "code":"en-AS", - "name":"English (American Samoa) (en-AS)" - }, { "code":"en-AI", "name":"English (Anguilla) (en-AI)" @@ -467,10 +471,6 @@ "code":"en-AT", "name":"English (Austria) (en-AT)" }, - { - "code":"en-BS", - "name":"English (Bahamas) (en-BS)" - }, { "code":"en-BB", "name":"English (Barbados) (en-BB)" @@ -495,10 +495,6 @@ "code":"en-IO", "name":"English (British Indian Ocean Territory) (en-IO)" }, - { - "code":"en-VG", - "name":"English (British Virgin Islands) (en-VG)" - }, { "code":"en-BI", "name":"English (Burundi) (en-BI)" @@ -639,13 +635,9 @@ "code":"en-LS", "name":"English (Lesotho) (en-LS)" }, - { - "code":"en-LR", - "name":"English (Liberia) (en-LR)" - }, { "code":"en-MO", - "name":"English (Macau SAR China) (en-MO)" + "name":"English (Macao SAR China) (en-MO)" }, { "code":"en-MG", @@ -792,8 +784,12 @@ "name":"English (St Lucia) (en-LC)" }, { - "code":"en-VC", - "name":"English (St Vincent & Grenadines) (en-VC)" + "code":"svc", + "name":"Vincentian Creole English" + }, + { + "code":"vic", + "name":"Virgin Islands Creole English" }, { "code":"en-SD", @@ -827,10 +823,6 @@ "code":"en-TT", "name":"English (Trinidad and Tobago) (en-TT)" }, - { - "code":"en-TC", - "name":"English (Turks & Caicos Islands) (en-TC)" - }, { "code":"en-TV", "name":"English (Tuvalu) (en-TV)" @@ -1423,6 +1415,10 @@ "code":"lv-LV", "name":"Latvian (Latvia) (lv-LV)" }, + { + "code":"lir", + "name":"Liberian English" + }, { "code":"ln", "name":"Lingala (ln)" @@ -2227,6 +2223,10 @@ "code":"tr-TR", "name":"Turkish (Turkey) (tr-TR)" }, + { + "code":"tch", + "name":"Turks And Caicos Creole English" + }, { "code":"uk", "name":"Ukrainian (uk)" diff --git a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap index 2879b73698..b0ea44d17a 100644 --- a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap +++ b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap @@ -46,6 +46,10 @@ Array [ "code": "am-ET", "name": "Amharic (Ethiopia) (am-ET)", }, + Object { + "code": "aig", + "name": "Antigua and Barbuda Creole English", + }, Object { "code": "ar", "name": "Arabic (ar)", @@ -174,6 +178,10 @@ Array [ "code": "ksf-CM", "name": "Bafia (Cameroon) (ksf-CM)", }, + Object { + "code": "bah", + "name": "Bahamas Creole English", + }, Object { "code": "bm", "name": "Bambara (bm)", @@ -450,10 +458,6 @@ Array [ "code": "en", "name": "English (en)", }, - Object { - "code": "en-AS", - "name": "English (American Samoa) (en-AS)", - }, Object { "code": "en-AI", "name": "English (Anguilla) (en-AI)", @@ -470,10 +474,6 @@ Array [ "code": "en-AT", "name": "English (Austria) (en-AT)", }, - Object { - "code": "en-BS", - "name": "English (Bahamas) (en-BS)", - }, Object { "code": "en-BB", "name": "English (Barbados) (en-BB)", @@ -498,10 +498,6 @@ Array [ "code": "en-IO", "name": "English (British Indian Ocean Territory) (en-IO)", }, - Object { - "code": "en-VG", - "name": "English (British Virgin Islands) (en-VG)", - }, Object { "code": "en-BI", "name": "English (Burundi) (en-BI)", @@ -642,13 +638,9 @@ Array [ "code": "en-LS", "name": "English (Lesotho) (en-LS)", }, - Object { - "code": "en-LR", - "name": "English (Liberia) (en-LR)", - }, Object { "code": "en-MO", - "name": "English (Macau SAR China) (en-MO)", + "name": "English (Macao SAR China) (en-MO)", }, Object { "code": "en-MG", @@ -795,8 +787,12 @@ Array [ "name": "English (St Lucia) (en-LC)", }, Object { - "code": "en-VC", - "name": "English (St Vincent & Grenadines) (en-VC)", + "code": "svc", + "name": "Vincentian Creole English", + }, + Object { + "code": "vic", + "name": "Virgin Islands Creole English", }, Object { "code": "en-SD", @@ -830,10 +826,6 @@ Array [ "code": "en-TT", "name": "English (Trinidad and Tobago) (en-TT)", }, - Object { - "code": "en-TC", - "name": "English (Turks & Caicos Islands) (en-TC)", - }, Object { "code": "en-TV", "name": "English (Tuvalu) (en-TV)", @@ -1426,6 +1418,10 @@ Array [ "code": "lv-LV", "name": "Latvian (Latvia) (lv-LV)", }, + Object { + "code": "lir", + "name": "Liberian English", + }, Object { "code": "ln", "name": "Lingala (ln)", @@ -2230,6 +2226,10 @@ Array [ "code": "tr-TR", "name": "Turkish (Turkey) (tr-TR)", }, + Object { + "code": "tch", + "name": "Turks And Caicos Creole English", + }, Object { "code": "uk", "name": "Ukrainian (uk)", From 19cc297f748468724d7943aae9eb57e4e4731894 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:02:36 +0200 Subject: [PATCH 13/58] Update rules --- .eslintrc.back.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.eslintrc.back.js b/.eslintrc.back.js index 1efb19cb0e..802c3f651c 100644 --- a/.eslintrc.back.js +++ b/.eslintrc.back.js @@ -26,14 +26,10 @@ module.exports = { }, ], 'prefer-destructuring': ['error', { AssignmentExpression: { array: false } }], - eqeqeq: 'warn', - 'no-underscore-dangle': 'warn', - 'no-use-before-define': 'warn', - 'no-param-reassign': 'warn', + 'no-underscore-dangle': 'off', + 'no-use-before-define': 'off', 'no-continue': 'warn', 'no-process-exit': 'off', - 'no-plusplus': 'warn', - 'no-loop-func': 'warn', - 'guard-for-in': 'warn', + 'no-loop-func': 'off', }, }; From 3909b91efaabc1e5b105669a2ce35e8a3f990257 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:04:28 +0200 Subject: [PATCH 14/58] Fix eslint in scripts --- .../find-duplicated-translation.js | 4 ++-- scripts/front/merge-duplicated-translations/index.js | 4 ++-- scripts/open-api/serve.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/front/merge-duplicated-translations/find-duplicated-translation.js b/scripts/front/merge-duplicated-translations/find-duplicated-translation.js index fbdf2c79b9..5a366dcc39 100644 --- a/scripts/front/merge-duplicated-translations/find-duplicated-translation.js +++ b/scripts/front/merge-duplicated-translations/find-duplicated-translation.js @@ -13,10 +13,10 @@ const printResults = (results) => { Object.entries(pkgs).forEach(([packageName, keys]) => { keys.forEach((key) => { console.log(`"${chalk.yellow(value)}" ${packageName} ${chalk.blue(key)}`); - keysCount++; + keysCount += 1; }); }); - valuesCount++; + valuesCount += 1; console.log(); }); diff --git a/scripts/front/merge-duplicated-translations/index.js b/scripts/front/merge-duplicated-translations/index.js index 4adec42b2b..b2843bc674 100644 --- a/scripts/front/merge-duplicated-translations/index.js +++ b/scripts/front/merge-duplicated-translations/index.js @@ -137,10 +137,10 @@ const merge = async (valuesToMerge) => { valueGroup.forEach((keyGroup) => { updateTranslationFiles(keyGroup, targetKey); keyGroup.replaceAll(`id: '${targetKey}'`); - mergedCount++; + mergedCount += 1; }); } - current++; + current += 1; } console.log(`Merged ${mergedCount} keys`); diff --git a/scripts/open-api/serve.js b/scripts/open-api/serve.js index 05bb055b58..37657184e5 100644 --- a/scripts/open-api/serve.js +++ b/scripts/open-api/serve.js @@ -25,7 +25,7 @@ async function run() { } const server = http.createServer((req, res) => { - if (req.url == '/spec.yml') { + if (req.url === '/spec.yml') { return fse.createReadStream(openAPISpecPath).pipe(res); } From bba4c4c85a2e9da47666979f318c5cb6c7768ed5 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:05:26 +0200 Subject: [PATCH 15/58] Fix eslint in test utils --- test/unit.setup.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/unit.setup.js b/test/unit.setup.js index f8be50afb8..3ffa10c6f3 100644 --- a/test/unit.setup.js +++ b/test/unit.setup.js @@ -12,11 +12,11 @@ Object.defineProperty(global, 'strapi', { strapiInstance = value; strapiInstance.plugin = (name) => strapiInstance.plugins[name]; - _.mapValues(strapi.plugins, (plugin) => { - plugin.controller = (name) => plugin.controllers[name]; - plugin.service = (name) => plugin.services[name]; - plugin.contentType = (name) => plugin.contentTypes[name]; - plugin.policy = (name) => plugin.policies[name]; + _.mapValues(strapi.plugins, (acc) => { + acc.controller = (name) => acc.controllers[name]; + acc.service = (name) => acc.services[name]; + acc.contentType = (name) => acc.contentTypes[name]; + acc.policy = (name) => acc.policies[name]; }); strapiInstance.service = (name = '') => { From c563955d46914af0f5ac6e644c0f336254068aff Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:07:36 +0200 Subject: [PATCH 16/58] Lighten no-param-reassign --- .eslintrc.back.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.eslintrc.back.js b/.eslintrc.back.js index 802c3f651c..1c079b8326 100644 --- a/.eslintrc.back.js +++ b/.eslintrc.back.js @@ -31,5 +31,11 @@ module.exports = { 'no-continue': 'warn', 'no-process-exit': 'off', 'no-loop-func': 'off', + 'no-param-reassign': [ + 'error', + { + props: false, + }, + ], }, }; From e57f02d2d9491a4e2a9ffe5dcc418b2f909f599f Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:18:24 +0200 Subject: [PATCH 17/58] Fix eslint in plugins folder --- .../plugins/documentation/server/services/documentation.js | 5 +++-- .../server/controllers/content-manager-user.js | 4 ++-- .../plugins/users-permissions/server/controllers/user.js | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/plugins/documentation/server/services/documentation.js b/packages/plugins/documentation/server/services/documentation.js index bbc3383a7a..564b8f595f 100755 --- a/packages/plugins/documentation/server/services/documentation.js +++ b/packages/plugins/documentation/server/services/documentation.js @@ -15,12 +15,13 @@ module.exports = ({ strapi }) => { return { registerDoc(doc) { + let registeredDoc = doc; // parseYaml if (typeof doc === 'string') { - doc = require('yaml').parse(doc); + registeredDoc = require('yaml').parse(registeredDoc); } // receive an object we can register it directly - registeredDocs.push(doc); + registeredDocs.push(registeredDoc); }, getDocumentationVersion() { return _.get(config, 'info.version'); diff --git a/packages/plugins/users-permissions/server/controllers/content-manager-user.js b/packages/plugins/users-permissions/server/controllers/content-manager-user.js index be3cfd6aa3..b6e10cd428 100644 --- a/packages/plugins/users-permissions/server/controllers/content-manager-user.js +++ b/packages/plugins/users-permissions/server/controllers/content-manager-user.js @@ -147,7 +147,7 @@ module.exports = { .query('plugin::users-permissions.user') .findOne({ where: { username } }); - if (userWithSameUsername && userWithSameUsername.id != id) { + if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(id)) { throw new ApplicationError('Username already taken'); } } @@ -157,7 +157,7 @@ module.exports = { .query('plugin::users-permissions.user') .findOne({ where: { email: _.toLower(email) } }); - if (userWithSameEmail && userWithSameEmail.id != id) { + if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) { throw new ApplicationError('Email already taken'); } body.email = _.toLower(body.email); diff --git a/packages/plugins/users-permissions/server/controllers/user.js b/packages/plugins/users-permissions/server/controllers/user.js index 88e5b293d9..f096bd83ff 100644 --- a/packages/plugins/users-permissions/server/controllers/user.js +++ b/packages/plugins/users-permissions/server/controllers/user.js @@ -105,7 +105,7 @@ module.exports = { .query('plugin::users-permissions.user') .findOne({ where: { username } }); - if (userWithSameUsername && userWithSameUsername.id != id) { + if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(id)) { throw new ApplicationError('Username already taken'); } } @@ -115,7 +115,7 @@ module.exports = { .query('plugin::users-permissions.user') .findOne({ where: { email: email.toLowerCase() } }); - if (userWithSameEmail && userWithSameEmail.id != id) { + if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) { throw new ApplicationError('Email already taken'); } ctx.request.body.email = ctx.request.body.email.toLowerCase(); From 04f218346db2962d5766f4155410eb52ef753c93 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 15:19:02 +0200 Subject: [PATCH 18/58] Fix esint in generators folder --- packages/generators/app/lib/create-customized-project.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/generators/app/lib/create-customized-project.js b/packages/generators/app/lib/create-customized-project.js index b48aad4106..082466d2bd 100644 --- a/packages/generators/app/lib/create-customized-project.js +++ b/packages/generators/app/lib/create-customized-project.js @@ -61,7 +61,7 @@ async function askDbInfosAndTest(scope) { .then((result) => { if (result && result.shouldRetry === true && retries < MAX_RETRIES - 1) { console.log('Retrying...'); - retries++; + retries += 1; return loop(); } }) @@ -86,7 +86,7 @@ async function askDbInfosAndTest(scope) { } console.log('Retrying...'); - retries++; + retries += 1; return loop(); } From 4e989321e3241bda88787b83139de2660586413b Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 16:15:21 +0200 Subject: [PATCH 19/58] Fix eslint core/admin --- packages/core/admin/scripts/build.js | 6 ++---- packages/core/admin/server/services/__tests__/role.test.js | 6 +++++- .../permission/permissions-manager/query-builers.js | 5 +++-- packages/core/admin/server/services/permission/queries.js | 2 +- .../server/tests/admin-permissions-conditions.test.e2e.js | 2 +- packages/core/admin/server/tests/admin-user.test.e2e.js | 2 +- .../common-functions/check-fields-are-correctly-nested.js | 2 +- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/core/admin/scripts/build.js b/packages/core/admin/scripts/build.js index 3578b0c38e..4b2a00c5b3 100644 --- a/packages/core/admin/scripts/build.js +++ b/packages/core/admin/scripts/build.js @@ -80,12 +80,10 @@ const buildAdmin = async () => { new Error( messages.errors.reduce((acc, error) => { if (isObject(error)) { - acc += error.message; - } else { - acc += error.join('\n\n'); + return acc + error.message; } - return acc; + return acc + error.join('\n\n'); }, '') ) ); diff --git a/packages/core/admin/server/services/__tests__/role.test.js b/packages/core/admin/server/services/__tests__/role.test.js index 5e537d0d80..d6d0b055b0 100644 --- a/packages/core/admin/server/services/__tests__/role.test.js +++ b/packages/core/admin/server/services/__tests__/role.test.js @@ -426,7 +426,11 @@ describe('Role', () => { const count = jest.fn(() => Promise.resolve(0)); let id = 1; - const create = jest.fn(({ data }) => ({ ...data, id: id++ })); + const create = jest.fn(({ data }) => { + const res = { ...data, id }; + id += 1; + return res; + }); const values = jest.fn(() => actions); const createMany = jest.fn(); const assignARoleToAll = jest.fn(); diff --git a/packages/core/admin/server/services/permission/permissions-manager/query-builers.js b/packages/core/admin/server/services/permission/permissions-manager/query-builers.js index 3f984ee45d..aa6ac6ffc6 100644 --- a/packages/core/admin/server/services/permission/permissions-manager/query-builers.js +++ b/packages/core/admin/server/services/permission/permissions-manager/query-builers.js @@ -49,9 +49,10 @@ const unwrapDeep = (obj) => { if (_.isPlainObject(v)) { if ('$elemMatch' in v) { - v = v.$elemMatch; // removing this key + _.setWith(acc, key, unwrapDeep(v.$elemMatch)); + } else { + _.setWith(acc, key, unwrapDeep(v)); } - _.setWith(acc, key, unwrapDeep(v)); } else if (_.isArray(v)) { // prettier-ignore _.setWith(acc, key, v.map(v => unwrapDeep(v))); diff --git a/packages/core/admin/server/services/permission/queries.js b/packages/core/admin/server/services/permission/queries.js index dc3939ddd5..2dfd476340 100644 --- a/packages/core/admin/server/services/permission/queries.js +++ b/packages/core/admin/server/services/permission/queries.js @@ -144,7 +144,7 @@ const cleanPermissionsInDatabase = async () => { const total = await strapi.query('admin::permission').count(); const pageCount = Math.ceil(total / pageSize); - for (let page = 0; page < pageCount; page++) { + for (let page = 0; page < pageCount; page += 1) { // 1. Find invalid permissions and collect their ID to delete them later const results = await strapi .query('admin::permission') diff --git a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js index 909f72174d..3e08b4c92d 100644 --- a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js +++ b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js @@ -84,7 +84,7 @@ if (edition === 'EE') { // Create users with the new role & create associated auth requests const users = []; - for (let i = 0; i < localTestData.users.length; ++i) { + for (let i = 1; i < localTestData.users.length; i += 1) { const userFixture = localTestData.users[i]; const userAttributes = { ...userFixture, diff --git a/packages/core/admin/server/tests/admin-user.test.e2e.js b/packages/core/admin/server/tests/admin-user.test.e2e.js index f435c2c809..ba8c6d9c34 100644 --- a/packages/core/admin/server/tests/admin-user.test.e2e.js +++ b/packages/core/admin/server/tests/admin-user.test.e2e.js @@ -145,7 +145,7 @@ describe('Admin User CRUD (e2e)', () => { }; }; - for (let i = 0; i < 3; i++) { + for (let i = 0; i < 3; i += 1) { const res = await rq({ url: '/admin/users', method: 'POST', diff --git a/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js b/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js index cd95f534c8..6bc89f367e 100644 --- a/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js +++ b/packages/core/admin/server/validation/common-functions/check-fields-are-correctly-nested.js @@ -12,7 +12,7 @@ const checkFieldsAreCorrectlyNested = (fields) => { } let failed = false; - for (let indexA = 0; indexA < fields.length; indexA++) { + for (let indexA = 0; indexA < fields.length; indexA += 1) { failed = fields .slice(indexA + 1) .some( From f681c064c4213cfdd7629e64962eb986c6612857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Tue, 23 Aug 2022 10:56:36 +0200 Subject: [PATCH 20/58] Fix relation not correctly set when uploadinga new file to an entity --- packages/core/database/lib/entity-manager.js | 32 ++++++++++++ .../tests/content-api/upload.test.e2e.js | 50 ++++++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index 7d492e4b71..b4a8022861 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -402,6 +402,21 @@ const createEntityManager = (db) => { continue; } + // delete previous relations + const where = { $or: [] }; + + for (const { field, related_type: relatedType, related_id: relatedId } of rows) { + const isMorphOne = + db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; + if (isMorphOne) { + where.$or.push({ related_type: relatedType, field, related_id: relatedId }); + } + } + + if (!_.isEmpty(where.$or)) { + await this.createQueryBuilder(joinTable.name).delete().where(where).execute(); + } + await this.createQueryBuilder(joinTable.name).insert(rows).execute(); continue; @@ -503,6 +518,8 @@ const createEntityManager = (db) => { // set columns const { idColumn, typeColumn } = targetAttribute.morphColumn; + // update instead of deleting because the relation is directly on the entity table + // and not in a join table await this.createQueryBuilder(target) .update({ [idColumn.name]: null, [typeColumn.name]: null }) .where({ [idColumn.name]: id, [typeColumn.name]: uid }) @@ -581,6 +598,21 @@ const createEntityManager = (db) => { continue; } + // delete previous relations + const where = { $or: [] }; + + for (const { field, related_type: relatedType, related_id: relatedId } of rows) { + const isMorphOne = + db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; + if (isMorphOne) { + where.$or.push({ related_type: relatedType, field, related_id: relatedId }); + } + } + + if (!_.isEmpty(where.$or)) { + await this.createQueryBuilder(joinTable.name).delete().where(where).execute(); + } + await this.createQueryBuilder(joinTable.name).insert(rows).execute(); continue; diff --git a/packages/core/upload/tests/content-api/upload.test.e2e.js b/packages/core/upload/tests/content-api/upload.test.e2e.js index 0a1fedd7bc..5bbf81f5b9 100644 --- a/packages/core/upload/tests/content-api/upload.test.e2e.js +++ b/packages/core/upload/tests/content-api/upload.test.e2e.js @@ -9,6 +9,7 @@ const { createStrapiInstance } = require('../../../../../test/helpers/strapi'); const { createContentAPIRequest } = require('../../../../../test/helpers/request'); const builder = createTestBuilder(); +const data = { dogs: [] }; let strapi; let rq; @@ -24,7 +25,7 @@ const dogModel = { }, }; -describe('Upload plugin end to end tests', () => { +describe('Upload plugin', () => { beforeAll(async () => { await builder.addContentType(dogModel).build(); strapi = await createStrapiInstance(); @@ -155,6 +156,8 @@ describe('Upload plugin end to end tests', () => { id: expect.anything(), }, }); + + data.dogs.push(res.body); }); test('With a pdf', async () => { @@ -183,6 +186,51 @@ describe('Upload plugin end to end tests', () => { id: expect.anything(), }, }); + data.dogs.push(res.body); + }); + }); + + // see https://github.com/strapi/strapi/issues/14125 + describe('File relations are correctly removed', () => { + test('Update an entity with a file correctly removes the relation between the entity and its old file', async () => { + const res = await rq({ + method: 'PUT', + url: `/dogs/${data.dogs[0].data.id}?populate=*`, + formData: { + data: '{}', + 'files.profilePicture': fs.createReadStream(path.join(__dirname, '../utils/strapi.jpg')), + }, + }); + + expect(res.statusCode).toBe(200); + expect(res.body.data.attributes.profilePicture.data.id).not.toBe( + data.dogs[0].data.attributes.profilePicture.data.id + ); + + data.dogs[0] = res.body; + }); + + test('Update a file with an entity correctly removes the relation between the entity and its old file', async () => { + const fileId = data.dogs[1].data.attributes.profilePicture.data.id; + await strapi.entityService.update('plugin::upload.file', fileId, { + data: { + related: [ + { + id: data.dogs[0].data.id, + __type: 'api::dog.dog', + __pivot: { field: 'profilePicture' }, + }, + ], + }, + }); + + const res = await rq({ + method: 'GET', + url: `/dogs/${data.dogs[0].data.id}?populate=*`, + }); + expect(res.body.data.attributes.profilePicture.data.id).toBe(fileId); + + data.dogs[0] = res.body; }); }); }); From 8100cffb3d4727524802e01f2912e1b19e3fd64c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Thu, 25 Aug 2022 11:56:52 +0200 Subject: [PATCH 21/58] use a grouped approach for where --- packages/core/database/lib/entity-manager.js | 95 ++++++++++++-------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index b4a8022861..9b6d5b9478 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -1,6 +1,19 @@ 'use strict'; -const _ = require('lodash/fp'); +const _ = require('lodash'); +const { + isUndefined, + castArray, + isNil, + has, + isString, + isInteger, + pick, + isPlainObject, + isEmpty, + isArray, + isNull, +} = require('lodash/fp'); const types = require('./types'); const { createField } = require('./fields'); const { createQueryBuilder } = require('./query'); @@ -8,12 +21,12 @@ const { createRepository } = require('./entity-repository'); const { isBidirectional, isOneToAny } = require('./metadata/relations'); const toId = (value) => value.id || value; -const toIds = (value) => _.castArray(value || []).map(toId); +const toIds = (value) => castArray(value || []).map(toId); -const isValidId = (value) => _.isString(value) || _.isInteger(value); +const isValidId = (value) => isString(value) || isInteger(value); const toAssocs = (data) => { - return _.castArray(data) - .filter((datum) => !_.isNil(datum)) + return castArray(data) + .filter((datum) => !isNil(datum)) .map((datum) => { // if it is a string or an integer return an obj with id = to datum if (isValidId(datum)) { @@ -21,7 +34,7 @@ const toAssocs = (data) => { } // if it is an object check it has at least a valid id - if (!_.has('id', datum) || !isValidId(datum.id)) { + if (!has('id', datum) || !isValidId(datum.id)) { throw new Error(`Invalid id, expected a string or integer, got ${datum}`); } @@ -40,8 +53,8 @@ const processData = (metadata, data = {}, { withDefaults = false } = {}) => { if (types.isScalar(attribute.type)) { const field = createField(attribute); - if (_.isUndefined(data[attributeName])) { - if (!_.isUndefined(attribute.default) && withDefaults) { + if (isUndefined(data[attributeName])) { + if (!isUndefined(attribute.default) && withDefaults) { if (typeof attribute.default === 'function') { obj[attributeName] = attribute.default(); } else { @@ -66,11 +79,11 @@ const processData = (metadata, data = {}, { withDefaults = false } = {}) => { const joinColumnName = attribute.joinColumn.name; // allow setting to null - const attrValue = !_.isUndefined(data[attributeName]) + const attrValue = !isUndefined(data[attributeName]) ? data[attributeName] : data[joinColumnName]; - if (!_.isUndefined(attrValue)) { + if (!isUndefined(attrValue)) { obj[joinColumnName] = attrValue; } @@ -91,8 +104,8 @@ const processData = (metadata, data = {}, { withDefaults = false } = {}) => { continue; } - if (!_.isUndefined(value)) { - if (!_.has('id', value) || !_.has(typeField, value)) { + if (!isUndefined(value)) { + if (!has('id', value) || !has(typeField, value)) { throw new Error(`Expects properties ${typeField} an id to make a morph association`); } @@ -137,7 +150,7 @@ const createEntityManager = (db) => { const states = await db.lifecycles.run('beforeCount', uid, { params }); const res = await this.createQueryBuilder(uid) - .init(_.pick(['_q', 'where', 'filters'], params)) + .init(pick(['_q', 'where', 'filters'], params)) .count() .first() .execute(); @@ -155,7 +168,7 @@ const createEntityManager = (db) => { const metadata = db.metadata.get(uid); const { data } = params; - if (!_.isPlainObject(data)) { + if (!isPlainObject(data)) { throw new Error('Create expects a data object'); } @@ -187,7 +200,7 @@ const createEntityManager = (db) => { const metadata = db.metadata.get(uid); const { data } = params; - if (!_.isArray(data)) { + if (!isArray(data)) { throw new Error('CreateMany expects data to be an array'); } @@ -195,7 +208,7 @@ const createEntityManager = (db) => { processData(metadata, datum, { withDefaults: true }) ); - if (_.isEmpty(dataToInsert)) { + if (isEmpty(dataToInsert)) { throw new Error('Nothing to insert'); } @@ -214,11 +227,11 @@ const createEntityManager = (db) => { const metadata = db.metadata.get(uid); const { where, data } = params; - if (!_.isPlainObject(data)) { + if (!isPlainObject(data)) { throw new Error('Update requires a data object'); } - if (_.isEmpty(where)) { + if (isEmpty(where)) { throw new Error('Update requires a where parameter'); } @@ -232,7 +245,7 @@ const createEntityManager = (db) => { const dataToUpdate = processData(metadata, data); - if (!_.isEmpty(dataToUpdate)) { + if (!isEmpty(dataToUpdate)) { await this.createQueryBuilder(uid).where({ id }).update(dataToUpdate).execute(); } @@ -259,7 +272,7 @@ const createEntityManager = (db) => { const dataToUpdate = processData(metadata, data); - if (_.isEmpty(dataToUpdate)) { + if (isEmpty(dataToUpdate)) { throw new Error('Update requires data'); } @@ -280,7 +293,7 @@ const createEntityManager = (db) => { const { where, select, populate } = params; - if (_.isEmpty(where)) { + if (isEmpty(where)) { throw new Error('Delete requires a where parameter'); } @@ -336,7 +349,7 @@ const createEntityManager = (db) => { for (const attributeName in attributes) { const attribute = attributes[attributeName]; - const isValidLink = _.has(attributeName, data) && !_.isNil(data[attributeName]); + const isValidLink = has(attributeName, data) && !isNil(data[attributeName]); if (attribute.type !== 'relation' || !isValidLink) { continue; @@ -373,7 +386,7 @@ const createEntityManager = (db) => { }; }); - if (_.isEmpty(rows)) { + if (isEmpty(rows)) { continue; } @@ -398,23 +411,33 @@ const createEntityManager = (db) => { ...(data.__pivot || {}), })); - if (_.isEmpty(rows)) { + if (isEmpty(rows)) { continue; } // delete previous relations - const where = { $or: [] }; + const typeAndFieldIdsMap = {}; for (const { field, related_type: relatedType, related_id: relatedId } of rows) { const isMorphOne = db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; if (isMorphOne) { - where.$or.push({ related_type: relatedType, field, related_id: relatedId }); + const key = `${relatedType}+${field}`; + typeAndFieldIdsMap[key] = typeAndFieldIdsMap[key] || []; + typeAndFieldIdsMap[key].push(relatedId); } } - if (!_.isEmpty(where.$or)) { - await this.createQueryBuilder(joinTable.name).delete().where(where).execute(); + const orWhere = _.map(typeAndFieldIdsMap, (ids, typeAndField) => { + const [type, field] = typeAndField.split('+'); + return { related_type: type, field, related_id: { $in: ids } }; + }); + + if (!isEmpty(orWhere)) { + await this.createQueryBuilder(joinTable.name) + .delete() + .where({ $or: orWhere }) + .execute(); } await this.createQueryBuilder(joinTable.name).insert(rows).execute(); @@ -465,7 +488,7 @@ const createEntityManager = (db) => { if (isOneToAny(attribute) && isBidirectional(attribute)) { await this.createQueryBuilder(joinTable.name) .delete() - .where({ [inverseJoinColumn.name]: _.castArray(data[attributeName]) }) + .where({ [inverseJoinColumn.name]: castArray(data[attributeName]) }) .where(joinTable.on || {}) .execute(); } @@ -505,7 +528,7 @@ const createEntityManager = (db) => { for (const attributeName in attributes) { const attribute = attributes[attributeName]; - if (attribute.type !== 'relation' || !_.has(attributeName, data)) { + if (attribute.type !== 'relation' || !has(attributeName, data)) { continue; } @@ -525,7 +548,7 @@ const createEntityManager = (db) => { .where({ [idColumn.name]: id, [typeColumn.name]: uid }) .execute(); - if (!_.isNull(data[attributeName])) { + if (!isNull(data[attributeName])) { await this.createQueryBuilder(target) .update({ [idColumn.name]: id, [typeColumn.name]: uid }) .where({ id: toId(data[attributeName]) }) @@ -557,7 +580,7 @@ const createEntityManager = (db) => { field: attributeName, })); - if (_.isEmpty(rows)) { + if (isEmpty(rows)) { continue; } @@ -594,7 +617,7 @@ const createEntityManager = (db) => { ...(data.__pivot || {}), })); - if (_.isEmpty(rows)) { + if (isEmpty(rows)) { continue; } @@ -609,7 +632,7 @@ const createEntityManager = (db) => { } } - if (!_.isEmpty(where.$or)) { + if (!isEmpty(where.$or)) { await this.createQueryBuilder(joinTable.name).delete().where(where).execute(); } @@ -634,7 +657,7 @@ const createEntityManager = (db) => { .update({ [attribute.joinColumn.referencedColumn]: null }) .execute(); - if (!_.isNull(data[attributeName])) { + if (!isNull(data[attributeName])) { await this.createQueryBuilder(target) // NOTE: works if it is an array or a single id .where({ id: data[attributeName] }) @@ -665,7 +688,7 @@ const createEntityManager = (db) => { .execute(); } - if (!_.isNull(data[attributeName])) { + if (!isNull(data[attributeName])) { const insert = toAssocs(data[attributeName]).map((data) => { return { [joinColumn.name]: id, From a658c6cc0a83b4b3c4d25719551004fd0b4f3f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Fri, 26 Aug 2022 17:35:11 +0200 Subject: [PATCH 22/58] handle component use case --- packages/core/database/lib/entity-manager.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index 9b6d5b9478..0bfaa1d67e 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -346,7 +346,7 @@ const createEntityManager = (db) => { async attachRelations(uid, id, data) { const { attributes } = db.metadata.get(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; const isValidLink = has(attributeName, data) && !isNil(data[attributeName]); @@ -419,6 +419,8 @@ const createEntityManager = (db) => { const typeAndFieldIdsMap = {}; for (const { field, related_type: relatedType, related_id: relatedId } of rows) { + if (!relatedType) continue; // if !relatedType then it's a component. No need to handle that case + const isMorphOne = db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; if (isMorphOne) { @@ -525,7 +527,7 @@ const createEntityManager = (db) => { async updateRelations(uid, id, data) { const { attributes } = db.metadata.get(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (attribute.type !== 'relation' || !has(attributeName, data)) { @@ -625,6 +627,8 @@ const createEntityManager = (db) => { const where = { $or: [] }; for (const { field, related_type: relatedType, related_id: relatedId } of rows) { + if (!relatedType) continue; // if !relatedType then it's a component. No need to handle that case + const isMorphOne = db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; if (isMorphOne) { From aa53790bd521afb8b1c874019d08a5a0678aa7c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Fri, 2 Sep 2022 12:18:48 +0200 Subject: [PATCH 23/58] refactor with groupby --- packages/core/database/lib/entity-manager.js | 85 +++++++++++++------ .../database/lib/query/helpers/populate.js | 2 +- 2 files changed, 62 insertions(+), 25 deletions(-) diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index 0bfaa1d67e..d2382fa2e8 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -1,6 +1,5 @@ 'use strict'; -const _ = require('lodash'); const { isUndefined, castArray, @@ -13,6 +12,10 @@ const { isEmpty, isArray, isNull, + groupBy, + pipe, + mapValues, + map, } = require('lodash/fp'); const types = require('./types'); const { createField } = require('./fields'); @@ -416,25 +419,37 @@ const createEntityManager = (db) => { } // delete previous relations - const typeAndFieldIdsMap = {}; + const morphOneRows = rows.filter((row) => { + const relatedType = row[typeColumn.name]; + const field = row.field; - for (const { field, related_type: relatedType, related_id: relatedId } of rows) { - if (!relatedType) continue; // if !relatedType then it's a component. No need to handle that case + const targetAttribute = db.metadata.get(relatedType).attributes[field]; - const isMorphOne = - db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; - if (isMorphOne) { - const key = `${relatedType}+${field}`; - typeAndFieldIdsMap[key] = typeAndFieldIdsMap[key] || []; - typeAndFieldIdsMap[key].push(relatedId); + // ensure targeted field is the right one + check if it is a morphOne + return ( + targetAttribute?.target === uid && + targetAttribute?.morphBy === attributeName && + targetAttribute?.relation === 'morphOne' + ); + }); + + const groupByType = groupBy(typeColumn.name); + const groupByField = groupBy('field'); + + const typeAndFieldIdsGrouped = pipe(groupByType, mapValues(groupByField))(morphOneRows); + + const orWhere = []; + + for (const [type, v] of Object.entries(typeAndFieldIdsGrouped)) { + for (const [field, arr] of Object.entries(v)) { + orWhere.push({ + [typeColumn.name]: type, + field, + [idColumn.name]: { $in: map(idColumn.name, arr) }, + }); } } - const orWhere = _.map(typeAndFieldIdsMap, (ids, typeAndField) => { - const [type, field] = typeAndField.split('+'); - return { related_type: type, field, related_id: { $in: ids } }; - }); - if (!isEmpty(orWhere)) { await this.createQueryBuilder(joinTable.name) .delete() @@ -624,20 +639,42 @@ const createEntityManager = (db) => { } // delete previous relations - const where = { $or: [] }; + const morphOneRows = rows.filter((row) => { + const relatedType = row[typeColumn.name]; + const field = row.field; - for (const { field, related_type: relatedType, related_id: relatedId } of rows) { - if (!relatedType) continue; // if !relatedType then it's a component. No need to handle that case + const targetAttribute = db.metadata.get(relatedType).attributes[field]; - const isMorphOne = - db.metadata.get(relatedType).attributes[field].relation === 'morphOne'; - if (isMorphOne) { - where.$or.push({ related_type: relatedType, field, related_id: relatedId }); + // ensure targeted field is the right one + check if it is a morphOne + return ( + targetAttribute?.target === uid && + targetAttribute?.morphBy === attributeName && + targetAttribute?.relation === 'morphOne' + ); + }); + + const groupByType = groupBy(typeColumn.name); + const groupByField = groupBy('field'); + + const typeAndFieldIdsGrouped = pipe(groupByType, mapValues(groupByField))(morphOneRows); + + const orWhere = []; + + for (const [type, v] of Object.entries(typeAndFieldIdsGrouped)) { + for (const [field, arr] of Object.entries(v)) { + orWhere.push({ + [typeColumn.name]: type, + field, + [idColumn.name]: { $in: map(idColumn.name, arr) }, + }); } } - if (!isEmpty(where.$or)) { - await this.createQueryBuilder(joinTable.name).delete().where(where).execute(); + if (!isEmpty(orWhere)) { + await this.createQueryBuilder(joinTable.name) + .delete() + .where({ $or: orWhere }) + .execute(); } await this.createQueryBuilder(joinTable.name).insert(rows).execute(); diff --git a/packages/core/database/lib/query/helpers/populate.js b/packages/core/database/lib/query/helpers/populate.js index c5f01fabe2..1349e2dbfc 100644 --- a/packages/core/database/lib/query/helpers/populate.js +++ b/packages/core/database/lib/query/helpers/populate.js @@ -119,7 +119,7 @@ const applyPopulate = async (results, populate, ctx) => { return results; } - for (const key in populate) { + for (const key of Object.keys(populate)) { const attribute = meta.attributes[key]; const targetMeta = db.metadata.get(attribute.target); From 23657b7b5a215443a92fb7eb4dde4577e3ec8346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Mon, 5 Sep 2022 16:18:00 +0200 Subject: [PATCH 24/58] factorize code --- .../{ => entity-manager}/entity-repository.js | 0 .../index.js} | 95 +++---------------- .../lib/entity-manager/morph-relations.js | 59 ++++++++++++ 3 files changed, 74 insertions(+), 80 deletions(-) rename packages/core/database/lib/{ => entity-manager}/entity-repository.js (100%) rename packages/core/database/lib/{entity-manager.js => entity-manager/index.js} (90%) create mode 100644 packages/core/database/lib/entity-manager/morph-relations.js diff --git a/packages/core/database/lib/entity-repository.js b/packages/core/database/lib/entity-manager/entity-repository.js similarity index 100% rename from packages/core/database/lib/entity-repository.js rename to packages/core/database/lib/entity-manager/entity-repository.js diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager/index.js similarity index 90% rename from packages/core/database/lib/entity-manager.js rename to packages/core/database/lib/entity-manager/index.js index d2382fa2e8..fe0110999c 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager/index.js @@ -12,16 +12,13 @@ const { isEmpty, isArray, isNull, - groupBy, - pipe, - mapValues, - map, } = require('lodash/fp'); -const types = require('./types'); -const { createField } = require('./fields'); -const { createQueryBuilder } = require('./query'); +const types = require('../types'); +const { createField } = require('../fields'); +const { createQueryBuilder } = require('../query'); const { createRepository } = require('./entity-repository'); -const { isBidirectional, isOneToAny } = require('./metadata/relations'); +const { isBidirectional, isOneToAny } = require('../metadata/relations'); +const { deleteRelatedMorphOneRelationsAfterMorphToManyUpdate } = require('./morph-relations'); const toId = (value) => value.id || value; const toIds = (value) => castArray(value || []).map(toId); @@ -419,44 +416,13 @@ const createEntityManager = (db) => { } // delete previous relations - const morphOneRows = rows.filter((row) => { - const relatedType = row[typeColumn.name]; - const field = row.field; - - const targetAttribute = db.metadata.get(relatedType).attributes[field]; - - // ensure targeted field is the right one + check if it is a morphOne - return ( - targetAttribute?.target === uid && - targetAttribute?.morphBy === attributeName && - targetAttribute?.relation === 'morphOne' - ); + await deleteRelatedMorphOneRelationsAfterMorphToManyUpdate(rows, { + uid, + attributeName, + joinTable, + db, }); - const groupByType = groupBy(typeColumn.name); - const groupByField = groupBy('field'); - - const typeAndFieldIdsGrouped = pipe(groupByType, mapValues(groupByField))(morphOneRows); - - const orWhere = []; - - for (const [type, v] of Object.entries(typeAndFieldIdsGrouped)) { - for (const [field, arr] of Object.entries(v)) { - orWhere.push({ - [typeColumn.name]: type, - field, - [idColumn.name]: { $in: map(idColumn.name, arr) }, - }); - } - } - - if (!isEmpty(orWhere)) { - await this.createQueryBuilder(joinTable.name) - .delete() - .where({ $or: orWhere }) - .execute(); - } - await this.createQueryBuilder(joinTable.name).insert(rows).execute(); continue; @@ -639,44 +605,13 @@ const createEntityManager = (db) => { } // delete previous relations - const morphOneRows = rows.filter((row) => { - const relatedType = row[typeColumn.name]; - const field = row.field; - - const targetAttribute = db.metadata.get(relatedType).attributes[field]; - - // ensure targeted field is the right one + check if it is a morphOne - return ( - targetAttribute?.target === uid && - targetAttribute?.morphBy === attributeName && - targetAttribute?.relation === 'morphOne' - ); + await deleteRelatedMorphOneRelationsAfterMorphToManyUpdate(rows, { + uid, + attributeName, + joinTable, + db, }); - const groupByType = groupBy(typeColumn.name); - const groupByField = groupBy('field'); - - const typeAndFieldIdsGrouped = pipe(groupByType, mapValues(groupByField))(morphOneRows); - - const orWhere = []; - - for (const [type, v] of Object.entries(typeAndFieldIdsGrouped)) { - for (const [field, arr] of Object.entries(v)) { - orWhere.push({ - [typeColumn.name]: type, - field, - [idColumn.name]: { $in: map(idColumn.name, arr) }, - }); - } - } - - if (!isEmpty(orWhere)) { - await this.createQueryBuilder(joinTable.name) - .delete() - .where({ $or: orWhere }) - .execute(); - } - await this.createQueryBuilder(joinTable.name).insert(rows).execute(); continue; diff --git a/packages/core/database/lib/entity-manager/morph-relations.js b/packages/core/database/lib/entity-manager/morph-relations.js new file mode 100644 index 0000000000..eb2d7c4136 --- /dev/null +++ b/packages/core/database/lib/entity-manager/morph-relations.js @@ -0,0 +1,59 @@ +'use strict'; + +const { groupBy, pipe, mapValues, map, isEmpty } = require('lodash/fp'); +const { createQueryBuilder } = require('../query'); + +const getMorphToManyRowsLinkedToMorphOne = (rows, { uid, attributeName, typeColumn, db }) => + rows.filter((row) => { + const relatedType = row[typeColumn.name]; + const field = row.field; + + const targetAttribute = db.metadata.get(relatedType).attributes[field]; + + // ensure targeted field is the right one + check if it is a morphOne + return ( + targetAttribute?.target === uid && + targetAttribute?.morphBy === attributeName && + targetAttribute?.relation === 'morphOne' + ); + }); + +const deleteRelatedMorphOneRelationsAfterMorphToManyUpdate = async ( + rows, + { uid, attributeName, joinTable, db } +) => { + const { morphColumn } = joinTable; + const { idColumn, typeColumn } = morphColumn; + + const morphOneRows = getMorphToManyRowsLinkedToMorphOne(rows, { + uid, + attributeName, + typeColumn, + db, + }); + + const groupByType = groupBy(typeColumn.name); + const groupByField = groupBy('field'); + + const typeAndFieldIdsGrouped = pipe(groupByType, mapValues(groupByField))(morphOneRows); + + const orWhere = []; + + for (const [type, v] of Object.entries(typeAndFieldIdsGrouped)) { + for (const [field, arr] of Object.entries(v)) { + orWhere.push({ + [typeColumn.name]: type, + field, + [idColumn.name]: { $in: map(idColumn.name, arr) }, + }); + } + } + + if (!isEmpty(orWhere)) { + await createQueryBuilder(joinTable.name, db).delete().where({ $or: orWhere }).execute(); + } +}; + +module.exports = { + deleteRelatedMorphOneRelationsAfterMorphToManyUpdate, +}; From e3d92185f191d7085590e384a4e591ab8c2e8890 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 16:20:10 +0200 Subject: [PATCH 25/58] Fix eslint content-type-builder --- .../server/services/schema-builder/schema-handler.js | 2 +- .../core/content-type-builder/tests/single-type.test.e2e.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js index 22b23aff54..da057ed7ad 100644 --- a/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js +++ b/packages/core/content-type-builder/server/services/schema-builder/schema-handler.js @@ -130,7 +130,7 @@ module.exports = function createSchemaHandler(infos) { } // set new Attributes - for (const key in newAttributes) { + for (const key of Object.keys(newAttributes)) { this.setAttribute(key, newAttributes[key]); } diff --git a/packages/core/content-type-builder/tests/single-type.test.e2e.js b/packages/core/content-type-builder/tests/single-type.test.e2e.js index b6c9263bb8..dbc8c2e2ba 100644 --- a/packages/core/content-type-builder/tests/single-type.test.e2e.js +++ b/packages/core/content-type-builder/tests/single-type.test.e2e.js @@ -157,7 +157,7 @@ describe('Content Type Builder - Content types', () => { const { uid } = createRes.body.data; // create data - for (let i = 0; i < 2; i++) { + for (let i = 0; i < 2; i += 1) { await strapi.query(uid).create({ data: { title: 'Test' } }); } From eab835e301df7438438cc048339047a1b8851129 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 16:20:47 +0200 Subject: [PATCH 26/58] Fix eslint content-manager --- packages/core/content-manager/server/services/components.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/content-manager/server/services/components.js b/packages/core/content-manager/server/services/components.js index 2fde38ac95..0ab2b8bbed 100644 --- a/packages/core/content-manager/server/services/components.js +++ b/packages/core/content-manager/server/services/components.js @@ -69,7 +69,7 @@ module.exports = ({ strapi }) => ({ }); }; - for (const key in model.attributes) { + for (const key of Object.keys(model.attributes)) { const attribute = model.attributes[key]; if (attribute.type === 'component') { From 7b9866a77080b3ecd7d25fbee9277fb07c5f4d7f Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 16:23:18 +0200 Subject: [PATCH 27/58] Fix eslint utils --- packages/core/utils/lib/build-query.js | 2 +- packages/core/utils/lib/print-value.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/utils/lib/build-query.js b/packages/core/utils/lib/build-query.js index 8cff188f76..d16612af85 100644 --- a/packages/core/utils/lib/build-query.js +++ b/packages/core/utils/lib/build-query.js @@ -21,7 +21,7 @@ const getAssociationFromFieldKey = ({ model, field }) => { let association; let attribute; - for (let i = 0; i < fieldParts.length; i++) { + for (let i = 0; i < fieldParts.length; i += 1) { const part = fieldParts[i]; attribute = part; diff --git a/packages/core/utils/lib/print-value.js b/packages/core/utils/lib/print-value.js index 7a61bebc7c..4316205893 100644 --- a/packages/core/utils/lib/print-value.js +++ b/packages/core/utils/lib/print-value.js @@ -11,6 +11,7 @@ const symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString const SYMBOL_REGEXP = /^Symbol\((.*)\)(.*)$/; function printNumber(val) { + // eslint-disable-next-line eqeqeq if (val != +val) return 'NaN'; const isNegativeZero = val === 0 && 1 / val < 0; return isNegativeZero ? '-0' : `${val}`; From b68aa8fcc6a14a6cf87092141d6afe9e667e6ddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20No=C3=ABl?= Date: Mon, 5 Sep 2022 16:31:05 +0200 Subject: [PATCH 28/58] fix conflict --- packages/core/database/lib/entity-manager/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/database/lib/entity-manager/index.js b/packages/core/database/lib/entity-manager/index.js index fe0110999c..c1fc7b0164 100644 --- a/packages/core/database/lib/entity-manager/index.js +++ b/packages/core/database/lib/entity-manager/index.js @@ -822,7 +822,7 @@ const createEntityManager = (db) => { async load(uid, entity, fields, params) { const { attributes } = db.metadata.get(uid); - const fieldsArr = _.castArray(fields); + const fieldsArr = castArray(fields); fieldsArr.forEach((field) => { const attribute = attributes[field]; @@ -845,7 +845,7 @@ const createEntityManager = (db) => { } if (Array.isArray(fields)) { - return _.pick(fields, entry); + return pick(fields, entry); } return entry[fields]; From 22589cf0e11e69af3f13caf94afa57a940a97cf4 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 17:53:28 +0200 Subject: [PATCH 29/58] Fix eslint core strapi --- .../strapi/lib/commands/configurationDump.js | 4 +- .../lib/core-api/controller/transform.js | 2 +- packages/core/strapi/lib/core/loaders/apis.js | 2 +- .../loaders/plugins/get-enabled-plugins.js | 4 +- .../strapi/lib/core/loaders/plugins/index.js | 10 ++--- .../lib/core/registries/content-types.js | 4 +- .../strapi/lib/core/registries/controllers.js | 4 +- .../core/strapi/lib/core/registries/hooks.js | 2 +- .../strapi/lib/core/registries/middlewares.js | 2 +- .../strapi/lib/core/registries/policies.js | 2 +- .../strapi/lib/core/registries/services.js | 4 +- packages/core/strapi/lib/services/cron.js | 2 +- .../lib/services/entity-service/components.js | 6 +-- .../lib/services/entity-validator/index.js | 39 +++++++++++-------- .../metrics/__tests__/middleware.test.js | 2 +- .../strapi/lib/services/metrics/middleware.js | 2 +- .../lib/services/server/register-routes.js | 4 +- .../strapi/lib/services/utils/upload-files.js | 2 +- .../core/strapi/lib/services/worker-queue.js | 4 +- packages/core/strapi/lib/utils/addSlash.js | 11 +++--- 20 files changed, 60 insertions(+), 52 deletions(-) diff --git a/packages/core/strapi/lib/commands/configurationDump.js b/packages/core/strapi/lib/commands/configurationDump.js index ce0183a84e..4745b94282 100644 --- a/packages/core/strapi/lib/commands/configurationDump.js +++ b/packages/core/strapi/lib/commands/configurationDump.js @@ -9,7 +9,7 @@ const CHUNK_SIZE = 100; * Will dump configurations to a file or stdout * @param {string} file filepath to use as output */ -module.exports = async function ({ file: filePath, pretty }) { +module.exports = async ({ file: filePath, pretty }) => { const output = filePath ? fs.createWriteStream(filePath) : process.stdout; const appContext = await strapi.compile(); @@ -21,7 +21,7 @@ module.exports = async function ({ file: filePath, pretty }) { const pageCount = Math.ceil(count / CHUNK_SIZE); - for (let page = 0; page < pageCount; page++) { + for (let page = 0; page < pageCount; page += 1) { const results = await app .query('strapi::core-store') .findMany({ limit: CHUNK_SIZE, offset: page * CHUNK_SIZE, orderBy: 'key' }); diff --git a/packages/core/strapi/lib/core-api/controller/transform.js b/packages/core/strapi/lib/core-api/controller/transform.js index b7756bb64d..2ba4e2b155 100644 --- a/packages/core/strapi/lib/core-api/controller/transform.js +++ b/packages/core/strapi/lib/core-api/controller/transform.js @@ -56,7 +56,7 @@ const transformEntry = (entry, type) => { const attributeValues = {}; - for (const key in properties) { + for (const key of Object.keys(properties)) { const property = properties[key]; const attribute = type && type.attributes[key]; diff --git a/packages/core/strapi/lib/core/loaders/apis.js b/packages/core/strapi/lib/core/loaders/apis.js index 91a2b53839..72a0457cb3 100644 --- a/packages/core/strapi/lib/core/loaders/apis.js +++ b/packages/core/strapi/lib/core/loaders/apis.js @@ -40,7 +40,7 @@ module.exports = async (strapi) => { validateContentTypesUnicity(apis); - for (const apiName in apis) { + for (const apiName of Object.keys(apis)) { strapi.container.get('apis').add(apiName, apis[apiName]); } }; diff --git a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js index 682cdd6a33..83b997f5ff 100644 --- a/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js +++ b/packages/core/strapi/lib/core/loaders/plugins/get-enabled-plugins.js @@ -59,7 +59,9 @@ const getEnabledPlugins = async (strapi) => { } const installedPlugins = {}; - for (const dep in strapi.config.get('info.dependencies', {})) { + const dependencies = strapi.config.get('info.dependencies', {}); + + for (const dep of Object.keys(dependencies)) { const packagePath = join(dep, 'package.json'); let packageInfo; try { diff --git a/packages/core/strapi/lib/core/loaders/plugins/index.js b/packages/core/strapi/lib/core/loaders/plugins/index.js index c52fd9c0b3..d7b1b8e39b 100644 --- a/packages/core/strapi/lib/core/loaders/plugins/index.js +++ b/packages/core/strapi/lib/core/loaders/plugins/index.js @@ -34,10 +34,10 @@ const applyUserExtension = async (plugins) => { const extendedSchemas = await loadFiles(extensionsDir, '**/content-types/**/schema.json'); const strapiServers = await loadFiles(extensionsDir, '**/strapi-server.js'); - for (const pluginName in plugins) { + for (const pluginName of Object.keys(plugins)) { const plugin = plugins[pluginName]; // first: load json schema - for (const ctName in plugin.contentTypes) { + for (const ctName of Object.keys(plugin.contentTypes)) { const extendedSchema = get([pluginName, 'content-types', ctName, 'schema'], extendedSchemas); if (extendedSchema) { plugin.contentTypes[ctName].schema = { @@ -57,7 +57,7 @@ const applyUserExtension = async (plugins) => { const applyUserConfig = async (plugins) => { const userPluginsConfig = await getUserPluginsConfig(); - for (const pluginName in plugins) { + for (const pluginName of Object.keys(plugins)) { const plugin = plugins[pluginName]; const userPluginConfig = getOr({}, `${pluginName}.config`, userPluginsConfig); const defaultConfig = @@ -82,7 +82,7 @@ const loadPlugins = async (strapi) => { strapi.config.set('enabledPlugins', enabledPlugins); - for (const pluginName in enabledPlugins) { + for (const pluginName of Object.keys(enabledPlugins)) { const enabledPlugin = enabledPlugins[pluginName]; const serverEntrypointPath = join(enabledPlugin.pathToPlugin, 'strapi-server.js'); @@ -100,7 +100,7 @@ const loadPlugins = async (strapi) => { await applyUserConfig(plugins); await applyUserExtension(plugins); - for (const pluginName in plugins) { + for (const pluginName of Object.keys(plugins)) { strapi.container.get('plugins').add(pluginName, plugins[pluginName]); } }; diff --git a/packages/core/strapi/lib/core/registries/content-types.js b/packages/core/strapi/lib/core/registries/content-types.js index e1b5164fde..c523d50aa4 100644 --- a/packages/core/strapi/lib/core/registries/content-types.js +++ b/packages/core/strapi/lib/core/registries/content-types.js @@ -5,7 +5,7 @@ const { createContentType } = require('../domain/content-type'); const { addNamespace, hasNamespace } = require('../utils'); const validateKeySameToSingularName = (contentTypes) => { - for (const ctName in contentTypes) { + for (const ctName of Object.keys(contentTypes)) { const contentType = contentTypes[ctName]; if (ctName !== contentType.schema.info.singularName) { @@ -63,7 +63,7 @@ const contentTypesRegistry = () => { add(namespace, newContentTypes) { validateKeySameToSingularName(newContentTypes); - for (const rawCtName in newContentTypes) { + for (const rawCtName of Object.keys(newContentTypes)) { const uid = addNamespace(rawCtName, namespace); if (has(uid, contentTypes)) { diff --git a/packages/core/strapi/lib/core/registries/controllers.js b/packages/core/strapi/lib/core/registries/controllers.js index 47d965c1ae..f449ed8b35 100644 --- a/packages/core/strapi/lib/core/registries/controllers.js +++ b/packages/core/strapi/lib/core/registries/controllers.js @@ -48,7 +48,7 @@ const controllersRegistry = () => { const filteredControllers = pickBy((_, uid) => hasNamespace(uid, namespace))(controllers); const map = {}; - for (const uid in filteredControllers) { + for (const uid of Object.keys(filteredControllers)) { Object.defineProperty(map, uid, { enumerable: true, get: () => { @@ -78,7 +78,7 @@ const controllersRegistry = () => { * @returns */ add(namespace, newControllers) { - for (const controllerName in newControllers) { + for (const controllerName of Object.keys(newControllers)) { const controller = newControllers[controllerName]; const uid = addNamespace(controllerName, namespace); diff --git a/packages/core/strapi/lib/core/registries/hooks.js b/packages/core/strapi/lib/core/registries/hooks.js index 413e431b73..a62c68cf7f 100644 --- a/packages/core/strapi/lib/core/registries/hooks.js +++ b/packages/core/strapi/lib/core/registries/hooks.js @@ -54,7 +54,7 @@ const hooksRegistry = () => { * @returns */ add(namespace, hooks) { - for (const hookName in hooks) { + for (const hookName of Object.keys(hooks)) { const hook = hooks[hookName]; const uid = addNamespace(hookName, namespace); diff --git a/packages/core/strapi/lib/core/registries/middlewares.js b/packages/core/strapi/lib/core/registries/middlewares.js index 584dc57f4c..24097195a4 100644 --- a/packages/core/strapi/lib/core/registries/middlewares.js +++ b/packages/core/strapi/lib/core/registries/middlewares.js @@ -55,7 +55,7 @@ const middlewaresRegistry = () => { * @returns */ add(namespace, rawMiddlewares) { - for (const middlewareName in rawMiddlewares) { + for (const middlewareName of Object.keys(rawMiddlewares)) { const middleware = rawMiddlewares[middlewareName]; const uid = addNamespace(middlewareName, namespace); diff --git a/packages/core/strapi/lib/core/registries/policies.js b/packages/core/strapi/lib/core/registries/policies.js index bd7dc840a8..d185fb85b5 100644 --- a/packages/core/strapi/lib/core/registries/policies.js +++ b/packages/core/strapi/lib/core/registries/policies.js @@ -55,7 +55,7 @@ const policiesRegistry = () => { * @returns */ add(namespace, newPolicies) { - for (const policyName in newPolicies) { + for (const policyName of Object.keys(newPolicies)) { const policy = newPolicies[policyName]; const uid = addNamespace(policyName, namespace); diff --git a/packages/core/strapi/lib/core/registries/services.js b/packages/core/strapi/lib/core/registries/services.js index 4d0829eb14..4e8a8bd75c 100644 --- a/packages/core/strapi/lib/core/registries/services.js +++ b/packages/core/strapi/lib/core/registries/services.js @@ -48,7 +48,7 @@ const servicesRegistry = (strapi) => { // create lazy accessor to avoid instantiating the services; const map = {}; - for (const uid in filteredServices) { + for (const uid of Object.keys(filteredServices)) { Object.defineProperty(map, uid, { enumerable: true, get: () => { @@ -78,7 +78,7 @@ const servicesRegistry = (strapi) => { * @returns */ add(namespace, newServices) { - for (const serviceName in newServices) { + for (const serviceName of Object.keys(newServices)) { const service = newServices[serviceName]; const uid = addNamespace(serviceName, namespace); diff --git a/packages/core/strapi/lib/services/cron.js b/packages/core/strapi/lib/services/cron.js index 0364224b12..4b1f6136cd 100644 --- a/packages/core/strapi/lib/services/cron.js +++ b/packages/core/strapi/lib/services/cron.js @@ -9,7 +9,7 @@ const createCronService = () => { return { add(tasks = {}) { - for (const taskExpression in tasks) { + for (const taskExpression of Object.keys(tasks)) { const taskValue = tasks[taskExpression]; let fn; diff --git a/packages/core/strapi/lib/services/entity-service/components.js b/packages/core/strapi/lib/services/entity-service/components.js index 17cd90c823..0b29b897e9 100644 --- a/packages/core/strapi/lib/services/entity-service/components.js +++ b/packages/core/strapi/lib/services/entity-service/components.js @@ -22,7 +22,7 @@ const createComponents = async (uid, data) => { const componentBody = {}; - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (!has(attributeName, data) || !contentTypesUtils.isComponentAttribute(attribute)) { @@ -122,7 +122,7 @@ const updateComponents = async (uid, entityToUpdate, data) => { const componentBody = {}; - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (!has(attributeName, data)) { @@ -277,7 +277,7 @@ const deleteOldDZComponents = async (uid, entityToUpdate, attributeName, dynamic const deleteComponents = async (uid, entityToDelete) => { const { attributes } = strapi.getModel(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (attribute.type === 'component') { diff --git a/packages/core/strapi/lib/services/entity-validator/index.js b/packages/core/strapi/lib/services/entity-validator/index.js index ddd6eb6232..9473366198 100644 --- a/packages/core/strapi/lib/services/entity-validator/index.js +++ b/packages/core/strapi/lib/services/entity-validator/index.js @@ -14,51 +14,56 @@ const { isMediaAttribute, isScalarAttribute, getWritableAttributes } = strapiUti const { ValidationError } = strapiUtils.errors; const addMinMax = (validator, { attr, updatedAttribute }) => { + let nextValidator = validator; + if ( Number.isInteger(attr.min) && (attr.required || (Array.isArray(updatedAttribute.value) && updatedAttribute.value.length > 0)) ) { - validator = validator.min(attr.min); + nextValidator = nextValidator.min(attr.min); } if (Number.isInteger(attr.max)) { - validator = validator.max(attr.max); + nextValidator = nextValidator.max(attr.max); } - return validator; + return nextValidator; }; -const addRequiredValidation = - (createOrUpdate) => - (validator, { attr: { required } }) => { +const addRequiredValidation = (createOrUpdate) => { + return (validator, { attr: { required } }) => { + let nextValidator = validator; if (required) { if (createOrUpdate === 'creation') { - validator = validator.notNil(); + nextValidator = nextValidator.notNil(); } else if (createOrUpdate === 'update') { - validator = validator.notNull(); + nextValidator = nextValidator.notNull(); } } else { - validator = validator.nullable(); + nextValidator = nextValidator.nullable(); } - return validator; + return nextValidator; }; +}; + +const addDefault = (createOrUpdate) => { + return (validator, { attr }) => { + let nextValidator = validator; -const addDefault = - (createOrUpdate) => - (validator, { attr }) => { if (createOrUpdate === 'creation') { if ( ((attr.type === 'component' && attr.repeatable) || attr.type === 'dynamiczone') && !attr.required ) { - validator = validator.default([]); + nextValidator = nextValidator.default([]); } else { - validator = validator.default(attr.default); + nextValidator = nextValidator.default(attr.default); } } else { - validator = validator.default(undefined); + nextValidator = nextValidator.default(undefined); } - return validator; + return nextValidator; }; +}; const preventCast = (validator) => validator.transform((val, originalVal) => originalVal); diff --git a/packages/core/strapi/lib/services/metrics/__tests__/middleware.test.js b/packages/core/strapi/lib/services/metrics/__tests__/middleware.test.js index 35f6a7321f..7ae9744de8 100644 --- a/packages/core/strapi/lib/services/metrics/__tests__/middleware.test.js +++ b/packages/core/strapi/lib/services/metrics/__tests__/middleware.test.js @@ -43,7 +43,7 @@ describe('Metrics middleware', () => { const sendEvent = jest.fn(); const middleware = createMiddleware({ sendEvent }); - for (let i = 0; i < 2000; i++) { + for (let i = 0; i < 2000; i += 1) { await middleware( { request: { diff --git a/packages/core/strapi/lib/services/metrics/middleware.js b/packages/core/strapi/lib/services/metrics/middleware.js index a8c6d1519f..7d9e7047e8 100644 --- a/packages/core/strapi/lib/services/metrics/middleware.js +++ b/packages/core/strapi/lib/services/metrics/middleware.js @@ -22,7 +22,7 @@ const createMiddleware = ({ sendEvent }) => { sendEvent('didReceiveRequest', { url: ctx.request.url }); // Increase counter. - _state.counter++; + _state.counter += 1; } } diff --git a/packages/core/strapi/lib/services/server/register-routes.js b/packages/core/strapi/lib/services/server/register-routes.js index 75c6f8f75d..06a14a2262 100644 --- a/packages/core/strapi/lib/services/server/register-routes.js +++ b/packages/core/strapi/lib/services/server/register-routes.js @@ -50,7 +50,7 @@ const registerAdminRoutes = (strapi) => { * @param {import('../../').Strapi} strapi */ const registerPluginRoutes = (strapi) => { - for (const pluginName in strapi.plugins) { + for (const pluginName of Object.keys(strapi.plugins)) { const plugin = strapi.plugins[pluginName]; const generateRouteScope = createRouteScopeGenerator(`plugin::${pluginName}`); @@ -86,7 +86,7 @@ const registerPluginRoutes = (strapi) => { * @param {import('../../').Strapi} strapi */ const registerAPIRoutes = (strapi) => { - for (const apiName in strapi.api) { + for (const apiName of Object.keys(strapi.api)) { const api = strapi.api[apiName]; const generateRouteScope = createRouteScopeGenerator(`api::${apiName}`); diff --git a/packages/core/strapi/lib/services/utils/upload-files.js b/packages/core/strapi/lib/services/utils/upload-files.js index aab1a1f8df..f199c80f45 100644 --- a/packages/core/strapi/lib/services/utils/upload-files.js +++ b/packages/core/strapi/lib/services/utils/upload-files.js @@ -27,7 +27,7 @@ module.exports = async (uid, entity, files) => { let tmpModel = modelDef; let modelUID = uid; - for (let i = 0; i < path.length; i++) { + for (let i = 0; i < path.length; i += 1) { if (!tmpModel) return {}; const part = path[i]; const attr = tmpModel.attributes[part]; diff --git a/packages/core/strapi/lib/services/worker-queue.js b/packages/core/strapi/lib/services/worker-queue.js index bece4f70b8..2a0a2bc45e 100644 --- a/packages/core/strapi/lib/services/worker-queue.js +++ b/packages/core/strapi/lib/services/worker-queue.js @@ -26,7 +26,7 @@ module.exports = class WorkerQueue { enqueue(payload) { debug('Enqueue event in worker queue'); if (this.running < this.concurrency) { - this.running++; + this.running += 1; this.execute(payload); } else { this.queue.unshift(payload); @@ -40,7 +40,7 @@ module.exports = class WorkerQueue { if (payload) { this.execute(payload); } else { - this.running--; + this.running -= 1; } } diff --git a/packages/core/strapi/lib/utils/addSlash.js b/packages/core/strapi/lib/utils/addSlash.js index a25acbc256..e3ef826d86 100644 --- a/packages/core/strapi/lib/utils/addSlash.js +++ b/packages/core/strapi/lib/utils/addSlash.js @@ -1,10 +1,11 @@ 'use strict'; module.exports = (path) => { - if (typeof path !== 'string') throw new Error('admin.url must be a string'); - if (path === '' || path === '/') return '/'; + let tmpPath = path; + if (typeof tmpPath !== 'string') throw new Error('admin.url must be a string'); + if (tmpPath === '' || tmpPath === '/') return '/'; - if (path[0] != '/') path = `/${path}`; - if (path[path.length - 1] != '/') path += '/'; - return path; + if (tmpPath[0] !== '/') tmpPath = `/${tmpPath}`; + if (tmpPath[tmpPath.length - 1] !== '/') tmpPath += '/'; + return tmpPath; }; From 70b6966458753de17bba8696550c3b4df928898a Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 5 Sep 2022 19:44:58 +0200 Subject: [PATCH 30/58] Fix eslint database --- packages/core/database/lib/entity-manager.js | 8 ++++---- packages/core/database/lib/lifecycles/index.js | 2 +- packages/core/database/lib/query/helpers/join.js | 2 +- packages/core/database/lib/query/helpers/populate.js | 10 +++++----- packages/core/database/lib/query/helpers/transform.js | 2 +- packages/core/database/lib/query/helpers/where.js | 4 ++-- packages/core/database/lib/query/query-builder.js | 8 +++++++- packages/core/database/lib/schema/schema.js | 2 +- 8 files changed, 22 insertions(+), 16 deletions(-) diff --git a/packages/core/database/lib/entity-manager.js b/packages/core/database/lib/entity-manager.js index 7d492e4b71..13ab1564b4 100644 --- a/packages/core/database/lib/entity-manager.js +++ b/packages/core/database/lib/entity-manager.js @@ -34,7 +34,7 @@ const processData = (metadata, data = {}, { withDefaults = false } = {}) => { const obj = {}; - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (types.isScalar(attribute.type)) { @@ -333,7 +333,7 @@ const createEntityManager = (db) => { async attachRelations(uid, id, data) { const { attributes } = db.metadata.get(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; const isValidLink = _.has(attributeName, data) && !_.isNil(data[attributeName]); @@ -487,7 +487,7 @@ const createEntityManager = (db) => { async updateRelations(uid, id, data) { const { attributes } = db.metadata.get(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (attribute.type !== 'relation' || !_.has(attributeName, data)) { @@ -667,7 +667,7 @@ const createEntityManager = (db) => { async deleteRelations(uid, id) { const { attributes } = db.metadata.get(uid); - for (const attributeName in attributes) { + for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; if (attribute.type !== 'relation') { diff --git a/packages/core/database/lib/lifecycles/index.js b/packages/core/database/lib/lifecycles/index.js index ce3a836ad3..b4f2061ec6 100644 --- a/packages/core/database/lib/lifecycles/index.js +++ b/packages/core/database/lib/lifecycles/index.js @@ -54,7 +54,7 @@ const createLifecyclesProvider = (db) => { * @param {Map} states */ async run(action, uid, properties, states = new Map()) { - for (let i = 0; i < subscribers.length; i++) { + for (let i = 0; i < subscribers.length; i += 1) { const subscriber = subscribers[i]; if (typeof subscriber === 'function') { const state = states.get(subscriber) || {}; diff --git a/packages/core/database/lib/query/helpers/join.js b/packages/core/database/lib/query/helpers/join.js index daf0f075a3..d8f32d75ac 100644 --- a/packages/core/database/lib/query/helpers/join.js +++ b/packages/core/database/lib/query/helpers/join.js @@ -71,7 +71,7 @@ const applyJoin = (qb, join) => { inner.on(`${rootTable}.${rootColumn}`, `${alias}.${referencedColumn}`); if (on) { - for (const key in on) { + for (const key of Object.keys(on)) { inner.onVal(`${alias}.${key}`, on[key]); } } diff --git a/packages/core/database/lib/query/helpers/populate.js b/packages/core/database/lib/query/helpers/populate.js index c5f01fabe2..4c4f23cf9a 100644 --- a/packages/core/database/lib/query/helpers/populate.js +++ b/packages/core/database/lib/query/helpers/populate.js @@ -8,7 +8,7 @@ const { fromRow } = require('./transform'); const getRootLevelPopulate = (meta) => { const populate = {}; - for (const attributeName in meta.attributes) { + for (const attributeName of Object.keys(meta.attributes)) { const attribute = meta.attributes[attributeName]; if (attribute.type === 'relation') { populate[attributeName] = true; @@ -72,7 +72,7 @@ const processPopulate = (populate, ctx) => { } const finalPopulate = {}; - for (const key in populateMap) { + for (const key of Object.keys(populateMap)) { const attribute = meta.attributes[key]; if (!attribute) { @@ -119,7 +119,7 @@ const applyPopulate = async (results, populate, ctx) => { return results; } - for (const key in populate) { + for (const key of Object.keys(populate)) { const attribute = meta.attributes[key]; const targetMeta = db.metadata.get(attribute.target); @@ -540,7 +540,7 @@ const applyPopulate = async (results, populate, ctx) => { }, {}); const map = {}; - for (const type in idsByType) { + for (const type of Object.keys(idsByType)) { const ids = idsByType[type]; // type was removed but still in morph relation @@ -604,7 +604,7 @@ const applyPopulate = async (results, populate, ctx) => { }, {}); const map = {}; - for (const type in idsByType) { + for (const type of Object.keys(idsByType)) { const ids = idsByType[type]; // type was removed but still in morph relation diff --git a/packages/core/database/lib/query/helpers/transform.js b/packages/core/database/lib/query/helpers/transform.js index ceef64762a..4ac27a62e5 100644 --- a/packages/core/database/lib/query/helpers/transform.js +++ b/packages/core/database/lib/query/helpers/transform.js @@ -53,7 +53,7 @@ const toRow = (meta, data = {}) => { const { attributes } = meta; - for (const key in data) { + for (const key of Object.keys(data)) { const attribute = attributes[key]; if (!attribute || attribute.columnName === key) { diff --git a/packages/core/database/lib/query/helpers/where.js b/packages/core/database/lib/query/helpers/where.js index e0b74c48df..70a7d5b96e 100644 --- a/packages/core/database/lib/query/helpers/where.js +++ b/packages/core/database/lib/query/helpers/where.js @@ -76,7 +76,7 @@ const processAttributeWhere = (attribute, where, operator = '$eq') => { const filters = {}; - for (const key in where) { + for (const key of Object.keys(where)) { const value = where[key]; if (!isOperator(key)) { @@ -119,7 +119,7 @@ const processWhere = (where, ctx) => { const filters = {}; // for each key in where - for (const key in where) { + for (const key of Object.keys(where)) { const value = where[key]; // if operator $and $or then loop over them diff --git a/packages/core/database/lib/query/query-builder.js b/packages/core/database/lib/query/query-builder.js index c7bb9e13fd..b94e6da506 100644 --- a/packages/core/database/lib/query/query-builder.js +++ b/packages/core/database/lib/query/query-builder.js @@ -27,7 +27,13 @@ const createQueryBuilder = (uid, db) => { }; let counter = 0; - const getAlias = () => `t${counter++}`; + const getAlias = () => { + const alias = `t${counter}`; + + counter += 1; + + return alias; + }; return { alias: getAlias(), diff --git a/packages/core/database/lib/schema/schema.js b/packages/core/database/lib/schema/schema.js index be8ee5728a..643d7b7e8a 100644 --- a/packages/core/database/lib/schema/schema.js +++ b/packages/core/database/lib/schema/schema.js @@ -25,7 +25,7 @@ const createTable = (meta) => { columns: [], }; - for (const key in meta.attributes) { + for (const key of Object.keys(meta.attributes)) { const attribute = meta.attributes[key]; if (types.isRelation(attribute.type)) { From 9175297519a6a13c1ff5724a17ef9639e0fa09e7 Mon Sep 17 00:00:00 2001 From: gitstart Date: Tue, 6 Sep 2022 05:35:56 +0000 Subject: [PATCH 31/58] ID in schema have type string --- .../helpers/build-component-schema.js | 19 +++++------------ .../helpers/utils/clean-schema-attributes.js | 21 +------------------ 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/packages/plugins/documentation/server/services/helpers/build-component-schema.js b/packages/plugins/documentation/server/services/helpers/build-component-schema.js index 41d55281eb..2a4d22067f 100644 --- a/packages/plugins/documentation/server/services/helpers/build-component-schema.js +++ b/packages/plugins/documentation/server/services/helpers/build-component-schema.js @@ -103,7 +103,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { type: 'object', properties: { id: { type: 'number' }, - ...cleanSchemaAttributes(attributes), + ...cleanSchemaAttributes(attributes, { addComponentSchema }), }, }, }; @@ -118,7 +118,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { [`${pascalCase(uniqueName)}ListResponseDataItem`]: { type: 'object', properties: { - id: { type: 'string' }, + id: { type: 'number' }, attributes: { type: 'object', properties: cleanSchemaAttributes(attributes, { @@ -133,7 +133,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { [`${pascalCase(uniqueName)}ListResponseDataItemLocalized`]: { type: 'object', properties: { - id: { type: 'string' }, + id: { type: 'number' }, attributes: { type: 'object', properties: cleanSchemaAttributes(attributes, { addComponentSchema }), @@ -145,11 +145,6 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { data: { type: 'array', items: { - type: 'object', - properties: { - id: { type: 'number' }, - attributes: { type: 'object', properties: cleanSchemaAttributes(attributes) }, - }, $ref: `#/components/schemas/${pascalCase(uniqueName)}ListResponseDataItem`, }, }, @@ -177,13 +172,9 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { [`${pascalCase(uniqueName)}ResponseDataObject`]: { type: 'object', properties: { - id: { type: 'string' }, + id: { type: 'number' }, attributes: { type: 'object', - properties: { - id: { type: 'number' }, - attributes: { type: 'object', properties: cleanSchemaAttributes(attributes) }, - }, properties: cleanSchemaAttributes(attributes, { addComponentSchema, componentSchemaRefName: `#/components/schemas/${pascalCase( @@ -196,7 +187,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => { [`${pascalCase(uniqueName)}ResponseDataObjectLocalized`]: { type: 'object', properties: { - id: { type: 'string' }, + id: { type: 'number' }, attributes: { type: 'object', properties: cleanSchemaAttributes(attributes, { addComponentSchema }), diff --git a/packages/plugins/documentation/server/services/helpers/utils/clean-schema-attributes.js b/packages/plugins/documentation/server/services/helpers/utils/clean-schema-attributes.js index 31d1ebc6e8..2913b59be8 100644 --- a/packages/plugins/documentation/server/services/helpers/utils/clean-schema-attributes.js +++ b/packages/plugins/documentation/server/services/helpers/utils/clean-schema-attributes.js @@ -97,7 +97,7 @@ const cleanSchemaAttributes = ( const rawComponentSchema = { type: 'object', properties: { - ...(isRequest ? {} : { id: { type: 'string' } }), + ...(isRequest ? {} : { id: { type: 'number' } }), ...cleanSchemaAttributes(componentAttributes, { typeMap, isRequest, @@ -115,25 +115,6 @@ const cleanSchemaAttributes = ( if (attribute.repeatable) { attributesCopy[prop] = { type: 'array', - items: { - type: 'object', - properties: { - ...(isRequest ? {} : { id: { type: 'number' } }), - ...cleanSchemaAttributes(componentAttributes, { typeMap, isRequest }), - }, - }, - }; - } else { - attributesCopy[prop] = { - type: 'object', - properties: { - ...(isRequest ? {} : { id: { type: 'number' } }), - ...cleanSchemaAttributes(componentAttributes, { - typeMap, - isRequest, - }), - }, - }; items: finalComponentSchema, }; } else { From 6fb223b1e6f4dfd895a2cf36fdc880782951de06 Mon Sep 17 00:00:00 2001 From: Zharkan Date: Tue, 6 Sep 2022 11:36:34 +0200 Subject: [PATCH 32/58] fix typo --- packages/core/admin/admin/src/translations/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/admin/admin/src/translations/fr.json b/packages/core/admin/admin/src/translations/fr.json index 52a58c3cf7..43c40de4a3 100644 --- a/packages/core/admin/admin/src/translations/fr.json +++ b/packages/core/admin/admin/src/translations/fr.json @@ -615,7 +615,7 @@ "global.roles": "Rôles", "global.save": "Enregistrer", "global.see-more": "Voir plus", - "global.select": "Séléctionner", + "global.select": "Sélectionner", "global.select-all-entries": "Sélectionner toutes les entrées", "global.settings": "Paramètres", "global.type": "Type", From 73b97a1d26567a7bd51481e239aad2eb6d11804b Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Tue, 6 Sep 2022 10:50:31 +0100 Subject: [PATCH 33/58] update Antigua --- packages/plugins/i18n/server/constants/iso-locales.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/plugins/i18n/server/constants/iso-locales.json b/packages/plugins/i18n/server/constants/iso-locales.json index c39c65855f..ba60ad309b 100644 --- a/packages/plugins/i18n/server/constants/iso-locales.json +++ b/packages/plugins/i18n/server/constants/iso-locales.json @@ -459,10 +459,6 @@ "code":"en-AI", "name":"English (Anguilla) (en-AI)" }, - { - "code":"en-AG", - "name":"English (Antigua & Barbuda) (en-AG)" - }, { "code":"en-AU", "name":"English (Australia) (en-AU)" From e803830a88442454752956a7a486522c93f99871 Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Tue, 6 Sep 2022 10:51:18 +0100 Subject: [PATCH 34/58] update Antigua --- .../services/__tests__/__snapshots__/iso-locales.test.js.snap | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap index d4b5b6b2b5..14e1a9da32 100644 --- a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap +++ b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap @@ -462,10 +462,6 @@ exports[`ISO locales getIsoLocales 1`] = ` "code": "en-AI", "name": "English (Anguilla) (en-AI)", }, - { - "code": "en-AG", - "name": "English (Antigua & Barbuda) (en-AG)", - }, { "code": "en-AS", "name": "English (American Samoa) (en-AS)", From b36327cae7e9f0259ba183af424c71865f860ad4 Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Tue, 6 Sep 2022 14:48:54 +0200 Subject: [PATCH 35/58] SelectMany/ SelectOne: Fix loadingMessage prop-types --- .../admin/src/content-manager/components/SelectMany/index.js | 2 +- .../admin/src/content-manager/components/SelectOne/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/admin/admin/src/content-manager/components/SelectMany/index.js b/packages/core/admin/admin/src/content-manager/components/SelectMany/index.js index a599f6161f..0b7088a9ce 100644 --- a/packages/core/admin/admin/src/content-manager/components/SelectMany/index.js +++ b/packages/core/admin/admin/src/content-manager/components/SelectMany/index.js @@ -121,7 +121,7 @@ SelectMany.propTypes = { displayNavigationLink: PropTypes.bool.isRequired, isDisabled: PropTypes.bool.isRequired, isLoading: PropTypes.bool.isRequired, - loadingMessage: PropTypes.string.isRequired, + loadingMessage: PropTypes.func.isRequired, mainField: PropTypes.shape({ name: PropTypes.string.isRequired, schema: PropTypes.shape({ diff --git a/packages/core/admin/admin/src/content-manager/components/SelectOne/index.js b/packages/core/admin/admin/src/content-manager/components/SelectOne/index.js index b5986e4697..ebc17ba87d 100644 --- a/packages/core/admin/admin/src/content-manager/components/SelectOne/index.js +++ b/packages/core/admin/admin/src/content-manager/components/SelectOne/index.js @@ -72,7 +72,7 @@ SelectOne.propTypes = { components: PropTypes.object, isDisabled: PropTypes.bool.isRequired, isLoading: PropTypes.bool.isRequired, - loadingMessage: PropTypes.string.isRequired, + loadingMessage: PropTypes.func.isRequired, mainField: PropTypes.shape({ name: PropTypes.string.isRequired, schema: PropTypes.shape({ From 961d535ea98dfa837e06d2e5d37c1a3045a918dc Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Tue, 6 Sep 2022 09:07:01 +0200 Subject: [PATCH 36/58] Fix for in working with undefined --- .../server/tests/admin-permissions-conditions.test.e2e.js | 2 +- packages/core/strapi/lib/core/registries/middlewares.js | 2 +- .../core/strapi/lib/services/entity-service/components.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js index 3e08b4c92d..fcdfd12560 100644 --- a/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js +++ b/packages/core/admin/server/tests/admin-permissions-conditions.test.e2e.js @@ -84,7 +84,7 @@ if (edition === 'EE') { // Create users with the new role & create associated auth requests const users = []; - for (let i = 1; i < localTestData.users.length; i += 1) { + for (let i = 0; i < localTestData.users.length; i += 1) { const userFixture = localTestData.users[i]; const userAttributes = { ...userFixture, diff --git a/packages/core/strapi/lib/core/registries/middlewares.js b/packages/core/strapi/lib/core/registries/middlewares.js index 24097195a4..5b47561220 100644 --- a/packages/core/strapi/lib/core/registries/middlewares.js +++ b/packages/core/strapi/lib/core/registries/middlewares.js @@ -54,7 +54,7 @@ const middlewaresRegistry = () => { * @param {{ [key: string]: Middleware }} newMiddlewares * @returns */ - add(namespace, rawMiddlewares) { + add(namespace, rawMiddlewares = {}) { for (const middlewareName of Object.keys(rawMiddlewares)) { const middleware = rawMiddlewares[middlewareName]; const uid = addNamespace(middlewareName, namespace); diff --git a/packages/core/strapi/lib/services/entity-service/components.js b/packages/core/strapi/lib/services/entity-service/components.js index 0b29b897e9..4244feaa95 100644 --- a/packages/core/strapi/lib/services/entity-service/components.js +++ b/packages/core/strapi/lib/services/entity-service/components.js @@ -18,7 +18,7 @@ const omitComponentData = (contentType, data) => { // NOTE: we could generalize the logic to allow CRUD of relation directly in the DB layer const createComponents = async (uid, data) => { - const { attributes } = strapi.getModel(uid); + const { attributes = {} } = strapi.getModel(uid); const componentBody = {}; @@ -118,7 +118,7 @@ const getComponents = async (uid, entity) => { create or update */ const updateComponents = async (uid, entityToUpdate, data) => { - const { attributes } = strapi.getModel(uid); + const { attributes = {} } = strapi.getModel(uid); const componentBody = {}; @@ -275,7 +275,7 @@ const deleteOldDZComponents = async (uid, entityToUpdate, attributeName, dynamic }; const deleteComponents = async (uid, entityToDelete) => { - const { attributes } = strapi.getModel(uid); + const { attributes = {} } = strapi.getModel(uid); for (const attributeName of Object.keys(attributes)) { const attribute = attributes[attributeName]; From 019e13d8e91706ba5d60260c6d79aa5c167fffe1 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 7 Sep 2022 09:11:50 +0200 Subject: [PATCH 37/58] Improve pk management in schema builder --- packages/core/database/lib/schema/builder.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/core/database/lib/schema/builder.js b/packages/core/database/lib/schema/builder.js index 661ca8075e..6dd78ce4fe 100644 --- a/packages/core/database/lib/schema/builder.js +++ b/packages/core/database/lib/schema/builder.js @@ -295,7 +295,11 @@ const createHelpers = (db) => { const { object } = updatedColumn; - createColumn(tableBuilder, object).alter(); + if (object.type === 'increments') { + createColumn(tableBuilder, { ...object, type: 'integer' }).alter(); + } else { + createColumn(tableBuilder, object).alter(); + } } for (const updatedForeignKey of table.foreignKeys.updated) { @@ -312,7 +316,7 @@ const createHelpers = (db) => { debug(`Creating column ${addedColumn.name}`); if (addedColumn.type === 'increments' && !db.dialect.canAddIncrements()) { - tableBuilder.integer(addedColumn.name).unsigned(); + tableBuilder.integer(addedColumn.name).unsigned().notNullable(); tableBuilder.primary(addedColumn.name); } else { createColumn(tableBuilder, addedColumn); From 73f523b98322cea8992c72977b94a73a624d2e79 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 7 Sep 2022 14:24:30 +0200 Subject: [PATCH 38/58] v4.3.7 --- .github/actions/check-pr-status/package.json | 2 +- examples/getstarted/package.json | 20 ++++++++-------- examples/kitchensink-ts/package.json | 8 +++---- examples/kitchensink/package.json | 10 ++++---- lerna.json | 2 +- packages/admin-test-utils/package.json | 2 +- packages/cli/create-strapi-app/package.json | 4 ++-- .../cli/create-strapi-starter/package.json | 4 ++-- packages/core/admin/package.json | 10 ++++---- packages/core/content-manager/package.json | 4 ++-- .../core/content-type-builder/package.json | 8 +++---- packages/core/database/package.json | 2 +- packages/core/email/package.json | 8 +++---- packages/core/helper-plugin/package.json | 2 +- packages/core/strapi/package.json | 24 +++++++++---------- packages/core/upload/package.json | 8 +++---- packages/core/utils/package.json | 2 +- packages/generators/app/package.json | 2 +- packages/generators/generators/package.json | 6 ++--- packages/plugins/documentation/package.json | 6 ++--- packages/plugins/graphql/package.json | 4 ++-- packages/plugins/i18n/package.json | 4 ++-- packages/plugins/sentry/package.json | 2 +- .../plugins/users-permissions/package.json | 6 ++--- .../providers/email-amazon-ses/package.json | 4 ++-- packages/providers/email-mailgun/package.json | 4 ++-- .../providers/email-nodemailer/package.json | 2 +- .../providers/email-sendgrid/package.json | 4 ++-- .../providers/email-sendmail/package.json | 4 ++-- packages/providers/upload-aws-s3/package.json | 2 +- .../providers/upload-cloudinary/package.json | 4 ++-- packages/providers/upload-local/package.json | 4 ++-- .../babel-plugin-switch-ee-ce/package.json | 2 +- packages/utils/logger/package.json | 2 +- packages/utils/typescript/package.json | 2 +- 35 files changed, 92 insertions(+), 92 deletions(-) diff --git a/.github/actions/check-pr-status/package.json b/.github/actions/check-pr-status/package.json index 270d021325..adc5cfdd60 100644 --- a/.github/actions/check-pr-status/package.json +++ b/.github/actions/check-pr-status/package.json @@ -1,6 +1,6 @@ { "name": "check-pr-status", - "version": "4.3.6", + "version": "4.3.7", "main": "dist/index.js", "license": "MIT", "private": true, diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index 991c757f80..eb67303df0 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -1,7 +1,7 @@ { "name": "getstarted", "private": true, - "version": "4.3.6", + "version": "4.3.7", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,15 +12,15 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/plugin-documentation": "4.3.6", - "@strapi/plugin-graphql": "4.3.6", - "@strapi/plugin-i18n": "4.3.6", - "@strapi/plugin-sentry": "4.3.6", - "@strapi/plugin-users-permissions": "4.3.6", - "@strapi/provider-email-mailgun": "4.3.6", - "@strapi/provider-upload-aws-s3": "4.3.6", - "@strapi/provider-upload-cloudinary": "4.3.6", - "@strapi/strapi": "4.3.6", + "@strapi/plugin-documentation": "4.3.7", + "@strapi/plugin-graphql": "4.3.7", + "@strapi/plugin-i18n": "4.3.7", + "@strapi/plugin-sentry": "4.3.7", + "@strapi/plugin-users-permissions": "4.3.7", + "@strapi/provider-email-mailgun": "4.3.7", + "@strapi/provider-upload-aws-s3": "4.3.7", + "@strapi/provider-upload-cloudinary": "4.3.7", + "@strapi/strapi": "4.3.7", "@vscode/sqlite3": "5.0.8", "better-sqlite3": "7.4.6", "lodash": "4.17.21", diff --git a/examples/kitchensink-ts/package.json b/examples/kitchensink-ts/package.json index 1c3233272b..5a5f1895e1 100644 --- a/examples/kitchensink-ts/package.json +++ b/examples/kitchensink-ts/package.json @@ -1,7 +1,7 @@ { "name": "kitchensink-ts", "private": true, - "version": "4.3.6", + "version": "4.3.7", "description": "A Strapi application", "scripts": { "develop": "strapi develop", @@ -10,9 +10,9 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/plugin-i18n": "4.3.6", - "@strapi/plugin-users-permissions": "4.3.6", - "@strapi/strapi": "4.3.6", + "@strapi/plugin-i18n": "4.3.7", + "@strapi/plugin-users-permissions": "4.3.7", + "@strapi/strapi": "4.3.7", "better-sqlite3": "7.4.6" }, "author": { diff --git a/examples/kitchensink/package.json b/examples/kitchensink/package.json index 2a647dcfd4..b4ea8b750c 100644 --- a/examples/kitchensink/package.json +++ b/examples/kitchensink/package.json @@ -1,7 +1,7 @@ { "name": "kitchensink", "private": true, - "version": "4.3.6", + "version": "4.3.7", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,10 +12,10 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/provider-email-mailgun": "4.3.6", - "@strapi/provider-upload-aws-s3": "4.3.6", - "@strapi/provider-upload-cloudinary": "4.3.6", - "@strapi/strapi": "4.3.6", + "@strapi/provider-email-mailgun": "4.3.7", + "@strapi/provider-upload-aws-s3": "4.3.7", + "@strapi/provider-upload-cloudinary": "4.3.7", + "@strapi/strapi": "4.3.7", "lodash": "4.17.21", "mysql": "2.18.1", "passport-google-oauth2": "0.2.0", diff --git a/lerna.json b/lerna.json index 4df6de58e1..28c0973256 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.3.6", + "version": "4.3.7", "packages": [ "packages/*", "examples/*" diff --git a/packages/admin-test-utils/package.json b/packages/admin-test-utils/package.json index 2f14ec8b85..f926e898ce 100644 --- a/packages/admin-test-utils/package.json +++ b/packages/admin-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin-test-utils", - "version": "4.3.6", + "version": "4.3.7", "private": true, "description": "Test utilities for the Strapi administration panel", "license": "MIT", diff --git a/packages/cli/create-strapi-app/package.json b/packages/cli/create-strapi-app/package.json index e359b9afbe..05e0a87003 100644 --- a/packages/cli/create-strapi-app/package.json +++ b/packages/cli/create-strapi-app/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-app", - "version": "4.3.6", + "version": "4.3.7", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-app", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.3.6", + "@strapi/generate-new": "4.3.7", "commander": "6.1.0", "inquirer": "8.2.4" }, diff --git a/packages/cli/create-strapi-starter/package.json b/packages/cli/create-strapi-starter/package.json index 3c55819456..ac080f0827 100644 --- a/packages/cli/create-strapi-starter/package.json +++ b/packages/cli/create-strapi-starter/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-starter", - "version": "4.3.6", + "version": "4.3.7", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-starter", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.3.6", + "@strapi/generate-new": "4.3.7", "chalk": "4.1.1", "ci-info": "3.3.2", "commander": "7.1.0", diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index e53bc1e933..ea461e17a9 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin", - "version": "4.3.6", + "version": "4.3.7", "description": "Strapi Admin", "repository": { "type": "git", @@ -51,12 +51,12 @@ "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/react-fontawesome": "^0.2.0", "@pmmmwh/react-refresh-webpack-plugin": "0.5.7", - "@strapi/babel-plugin-switch-ee-ce": "4.3.6", + "@strapi/babel-plugin-switch-ee-ce": "4.3.7", "@strapi/design-system": "1.2.2", - "@strapi/helper-plugin": "4.3.6", + "@strapi/helper-plugin": "4.3.7", "@strapi/icons": "1.2.2", - "@strapi/typescript-utils": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/typescript-utils": "4.3.7", + "@strapi/utils": "4.3.7", "axios": "0.27.2", "babel-loader": "8.2.5", "babel-plugin-styled-components": "2.0.2", diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index 85f632a0ab..14bee0ebb0 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-manager", - "version": "4.3.6", + "version": "4.3.7", "description": "A powerful UI to easily manage your data.", "repository": { "type": "git", @@ -24,7 +24,7 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "lodash": "4.17.21" }, "engines": { diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 54b898fa51..617c670f98 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-type-builder", - "version": "4.3.6", + "version": "4.3.7", "description": "Strapi plugin to create content type", "repository": { "type": "git", @@ -28,9 +28,9 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/generators": "4.3.6", - "@strapi/helper-plugin": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/generators": "4.3.7", + "@strapi/helper-plugin": "4.3.7", + "@strapi/utils": "4.3.7", "fs-extra": "10.0.0", "lodash": "4.17.21", "pluralize": "^8.0.0", diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 224ca3d1c7..350fdb729f 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/database", - "version": "4.3.6", + "version": "4.3.7", "description": "Strapi's database layer", "homepage": "https://strapi.io", "bugs": { diff --git a/packages/core/email/package.json b/packages/core/email/package.json index 55345b198e..433315962f 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-email", - "version": "4.3.6", + "version": "4.3.7", "description": "Easily configure your Strapi application to send emails.", "repository": { "type": "git", @@ -26,12 +26,12 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/provider-email-sendmail": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/provider-email-sendmail": "4.3.7", + "@strapi/utils": "4.3.7", "lodash": "4.17.21" }, "devDependencies": { - "@strapi/helper-plugin": "4.3.6", + "@strapi/helper-plugin": "4.3.7", "@testing-library/react": "12.1.4" }, "engines": { diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index 4f5d38a04e..5b9f243122 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/helper-plugin", - "version": "4.3.6", + "version": "4.3.7", "description": "Helper for Strapi plugins development", "repository": { "type": "git", diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index e794ff627d..b0545b55ab 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/strapi", - "version": "4.3.6", + "version": "4.3.7", "description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite", "keywords": [ "strapi", @@ -80,17 +80,17 @@ "dependencies": { "@koa/cors": "3.4.1", "@koa/router": "10.1.1", - "@strapi/admin": "4.3.6", - "@strapi/database": "4.3.6", - "@strapi/generate-new": "4.3.6", - "@strapi/generators": "4.3.6", - "@strapi/logger": "4.3.6", - "@strapi/plugin-content-manager": "4.3.6", - "@strapi/plugin-content-type-builder": "4.3.6", - "@strapi/plugin-email": "4.3.6", - "@strapi/plugin-upload": "4.3.6", - "@strapi/typescript-utils": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/admin": "4.3.7", + "@strapi/database": "4.3.7", + "@strapi/generate-new": "4.3.7", + "@strapi/generators": "4.3.7", + "@strapi/logger": "4.3.7", + "@strapi/plugin-content-manager": "4.3.7", + "@strapi/plugin-content-type-builder": "4.3.7", + "@strapi/plugin-email": "4.3.7", + "@strapi/plugin-upload": "4.3.7", + "@strapi/typescript-utils": "4.3.7", + "@strapi/utils": "4.3.7", "bcryptjs": "2.4.3", "boxen": "5.1.2", "chalk": "4.1.2", diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index 17b1e79622..f4dd47f263 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-upload", - "version": "4.3.6", + "version": "4.3.7", "description": "Makes it easy to upload images and files to your Strapi Application.", "license": "SEE LICENSE IN LICENSE", "author": { @@ -23,9 +23,9 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.3.6", - "@strapi/provider-upload-local": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/helper-plugin": "4.3.7", + "@strapi/provider-upload-local": "4.3.7", + "@strapi/utils": "4.3.7", "byte-size": "7.0.1", "cropperjs": "1.5.12", "date-fns": "2.29.2", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 8883039fcd..ac837a6bf8 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/utils", - "version": "4.3.6", + "version": "4.3.7", "description": "Shared utilities for the Strapi packages", "keywords": [ "strapi", diff --git a/packages/generators/app/package.json b/packages/generators/app/package.json index 097386afe0..72e41abff1 100644 --- a/packages/generators/app/package.json +++ b/packages/generators/app/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generate-new", - "version": "4.3.6", + "version": "4.3.7", "description": "Generate a new Strapi application.", "keywords": [ "generate", diff --git a/packages/generators/generators/package.json b/packages/generators/generators/package.json index cf75d2732c..1e54ee6f2f 100644 --- a/packages/generators/generators/package.json +++ b/packages/generators/generators/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generators", - "version": "4.3.6", + "version": "4.3.7", "description": "Interactive API generator.", "keywords": [ "strapi", @@ -30,8 +30,8 @@ "main": "lib/index.js", "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/typescript-utils": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/typescript-utils": "4.3.7", + "@strapi/utils": "4.3.7", "chalk": "4.1.2", "fs-extra": "10.0.0", "node-plop": "0.26.3", diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index d59914b0f4..5be94c91b6 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-documentation", - "version": "4.3.6", + "version": "4.3.7", "description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.", "repository": { "type": "git", @@ -24,8 +24,8 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/helper-plugin": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/helper-plugin": "4.3.7", + "@strapi/utils": "4.3.7", "bcryptjs": "2.4.3", "cheerio": "^1.0.0-rc.12", "fs-extra": "10.0.0", diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index 6f30cacb62..2827e9b302 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-graphql", - "version": "4.3.6", + "version": "4.3.7", "description": "Adds GraphQL endpoint with default API methods.", "repository": { "type": "git", @@ -29,7 +29,7 @@ "dependencies": { "@graphql-tools/schema": "8.1.2", "@graphql-tools/utils": "^8.10.0", - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "apollo-server-core": "3.1.2", "apollo-server-koa": "3.10.0", "glob": "^7.1.7", diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index 84832afc36..34ddf3f47f 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-i18n", - "version": "4.3.6", + "version": "4.3.7", "description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API", "repository": { "type": "git", @@ -24,7 +24,7 @@ "test:unit": "jest --verbose" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "lodash": "4.17.21" }, "devDependencies": { diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index 1bf3813a36..ff80a77c6e 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-sentry", - "version": "4.3.6", + "version": "4.3.7", "description": "Send Strapi error events to Sentry", "repository": { "type": "git", diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index 325ba50def..7da79c03ba 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-users-permissions", - "version": "4.3.6", + "version": "4.3.7", "description": "Protect your API with a full-authentication process based on JWT", "repository": { "type": "git", @@ -27,8 +27,8 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.3.6", - "@strapi/utils": "4.3.6", + "@strapi/helper-plugin": "4.3.7", + "@strapi/utils": "4.3.7", "bcryptjs": "2.4.3", "grant-koa": "5.4.8", "jsonwebtoken": "^8.1.0", diff --git a/packages/providers/email-amazon-ses/package.json b/packages/providers/email-amazon-ses/package.json index 2b7e7ea1b6..3df91c8f97 100644 --- a/packages/providers/email-amazon-ses/package.json +++ b/packages/providers/email-amazon-ses/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-amazon-ses", - "version": "4.3.6", + "version": "4.3.7", "description": "Amazon SES provider for strapi email", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "node-ses": "^3.0.3" }, "engines": { diff --git a/packages/providers/email-mailgun/package.json b/packages/providers/email-mailgun/package.json index 7f2212def2..41f0614cc8 100644 --- a/packages/providers/email-mailgun/package.json +++ b/packages/providers/email-mailgun/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-mailgun", - "version": "4.3.6", + "version": "4.3.7", "description": "Mailgun provider for strapi email plugin", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "form-data": "^4.0.0", "mailgun.js": "5.2.2" }, diff --git a/packages/providers/email-nodemailer/package.json b/packages/providers/email-nodemailer/package.json index de37162420..fdc69a152b 100644 --- a/packages/providers/email-nodemailer/package.json +++ b/packages/providers/email-nodemailer/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-nodemailer", - "version": "4.3.6", + "version": "4.3.7", "description": "Nodemailer provider for Strapi 3", "keywords": [ "strapi", diff --git a/packages/providers/email-sendgrid/package.json b/packages/providers/email-sendgrid/package.json index d226d93216..8153801c7c 100644 --- a/packages/providers/email-sendgrid/package.json +++ b/packages/providers/email-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendgrid", - "version": "4.3.6", + "version": "4.3.7", "description": "Sendgrid provider for strapi email", "keywords": [ "email", @@ -37,7 +37,7 @@ }, "dependencies": { "@sendgrid/mail": "7.7.0", - "@strapi/utils": "4.3.6" + "@strapi/utils": "4.3.7" }, "engines": { "node": ">=14.19.1 <=16.x.x", diff --git a/packages/providers/email-sendmail/package.json b/packages/providers/email-sendmail/package.json index b811a09a72..e2ba2e4b3c 100644 --- a/packages/providers/email-sendmail/package.json +++ b/packages/providers/email-sendmail/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendmail", - "version": "4.3.6", + "version": "4.3.7", "description": "Sendmail provider for strapi email", "keywords": [ "email", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "sendmail": "^1.6.1" }, "engines": { diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index 58538968ae..b289d6edf3 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-aws-s3", - "version": "4.3.6", + "version": "4.3.7", "description": "AWS S3 provider for strapi upload", "keywords": [ "upload", diff --git a/packages/providers/upload-cloudinary/package.json b/packages/providers/upload-cloudinary/package.json index f9b1dc4e8a..0d8c557aad 100644 --- a/packages/providers/upload-cloudinary/package.json +++ b/packages/providers/upload-cloudinary/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-cloudinary", - "version": "4.3.6", + "version": "4.3.7", "description": "Cloudinary provider for strapi upload", "keywords": [ "upload", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "cloudinary": "^1.30.1", "into-stream": "^5.1.0" }, diff --git a/packages/providers/upload-local/package.json b/packages/providers/upload-local/package.json index 43fd619a2f..4dce9198b6 100644 --- a/packages/providers/upload-local/package.json +++ b/packages/providers/upload-local/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-local", - "version": "4.3.6", + "version": "4.3.7", "description": "Local provider for strapi upload", "keywords": [ "upload", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.6", + "@strapi/utils": "4.3.7", "fs-extra": "10.0.0" }, "engines": { diff --git a/packages/utils/babel-plugin-switch-ee-ce/package.json b/packages/utils/babel-plugin-switch-ee-ce/package.json index 90c6fbd8f1..6de704a947 100644 --- a/packages/utils/babel-plugin-switch-ee-ce/package.json +++ b/packages/utils/babel-plugin-switch-ee-ce/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/babel-plugin-switch-ee-ce", - "version": "4.3.6", + "version": "4.3.7", "private": false, "description": "Babel plugin to switch from CE to EE at runtime", "repository": "git://github.com/strapi/strapi.git", diff --git a/packages/utils/logger/package.json b/packages/utils/logger/package.json index 4cd22bae28..2fc761fee8 100644 --- a/packages/utils/logger/package.json +++ b/packages/utils/logger/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/logger", - "version": "4.3.6", + "version": "4.3.7", "description": "Strapi's logger", "homepage": "https://strapi.io", "bugs": { diff --git a/packages/utils/typescript/package.json b/packages/utils/typescript/package.json index 186094d6cf..2faaa2fb67 100644 --- a/packages/utils/typescript/package.json +++ b/packages/utils/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/typescript-utils", - "version": "4.3.6", + "version": "4.3.7", "description": "Typescript support for Strapi", "keywords": [ "strapi", From 886fcc015d10e9a8067ea6c35371c7ecd361d71d Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 7 Sep 2022 15:59:07 +0200 Subject: [PATCH 39/58] Create id column as nullable to avoid conflict with default null values --- packages/core/database/lib/schema/builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/database/lib/schema/builder.js b/packages/core/database/lib/schema/builder.js index 6dd78ce4fe..83fa028fc4 100644 --- a/packages/core/database/lib/schema/builder.js +++ b/packages/core/database/lib/schema/builder.js @@ -316,7 +316,7 @@ const createHelpers = (db) => { debug(`Creating column ${addedColumn.name}`); if (addedColumn.type === 'increments' && !db.dialect.canAddIncrements()) { - tableBuilder.integer(addedColumn.name).unsigned().notNullable(); + tableBuilder.integer(addedColumn.name).unsigned(); tableBuilder.primary(addedColumn.name); } else { createColumn(tableBuilder, addedColumn); From c44f21d5ba95d3f2fbba239cf241081dddd54dd7 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Wed, 7 Sep 2022 16:47:41 +0200 Subject: [PATCH 40/58] v4.3.8 --- .github/actions/check-pr-status/package.json | 2 +- examples/getstarted/package.json | 20 ++++++++-------- examples/kitchensink-ts/package.json | 8 +++---- examples/kitchensink/package.json | 10 ++++---- lerna.json | 2 +- packages/admin-test-utils/package.json | 2 +- packages/cli/create-strapi-app/package.json | 4 ++-- .../cli/create-strapi-starter/package.json | 4 ++-- packages/core/admin/package.json | 10 ++++---- packages/core/content-manager/package.json | 4 ++-- .../core/content-type-builder/package.json | 8 +++---- packages/core/database/package.json | 2 +- packages/core/email/package.json | 8 +++---- packages/core/helper-plugin/package.json | 2 +- packages/core/strapi/package.json | 24 +++++++++---------- packages/core/upload/package.json | 8 +++---- packages/core/utils/package.json | 2 +- packages/generators/app/package.json | 2 +- packages/generators/generators/package.json | 6 ++--- packages/plugins/documentation/package.json | 6 ++--- packages/plugins/graphql/package.json | 4 ++-- packages/plugins/i18n/package.json | 4 ++-- packages/plugins/sentry/package.json | 2 +- .../plugins/users-permissions/package.json | 6 ++--- .../providers/email-amazon-ses/package.json | 4 ++-- packages/providers/email-mailgun/package.json | 4 ++-- .../providers/email-nodemailer/package.json | 2 +- .../providers/email-sendgrid/package.json | 4 ++-- .../providers/email-sendmail/package.json | 4 ++-- packages/providers/upload-aws-s3/package.json | 2 +- .../providers/upload-cloudinary/package.json | 4 ++-- packages/providers/upload-local/package.json | 4 ++-- .../babel-plugin-switch-ee-ce/package.json | 2 +- packages/utils/logger/package.json | 2 +- packages/utils/typescript/package.json | 2 +- 35 files changed, 92 insertions(+), 92 deletions(-) diff --git a/.github/actions/check-pr-status/package.json b/.github/actions/check-pr-status/package.json index adc5cfdd60..4cac7955a7 100644 --- a/.github/actions/check-pr-status/package.json +++ b/.github/actions/check-pr-status/package.json @@ -1,6 +1,6 @@ { "name": "check-pr-status", - "version": "4.3.7", + "version": "4.3.8", "main": "dist/index.js", "license": "MIT", "private": true, diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index eb67303df0..115ea21e6e 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -1,7 +1,7 @@ { "name": "getstarted", "private": true, - "version": "4.3.7", + "version": "4.3.8", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,15 +12,15 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/plugin-documentation": "4.3.7", - "@strapi/plugin-graphql": "4.3.7", - "@strapi/plugin-i18n": "4.3.7", - "@strapi/plugin-sentry": "4.3.7", - "@strapi/plugin-users-permissions": "4.3.7", - "@strapi/provider-email-mailgun": "4.3.7", - "@strapi/provider-upload-aws-s3": "4.3.7", - "@strapi/provider-upload-cloudinary": "4.3.7", - "@strapi/strapi": "4.3.7", + "@strapi/plugin-documentation": "4.3.8", + "@strapi/plugin-graphql": "4.3.8", + "@strapi/plugin-i18n": "4.3.8", + "@strapi/plugin-sentry": "4.3.8", + "@strapi/plugin-users-permissions": "4.3.8", + "@strapi/provider-email-mailgun": "4.3.8", + "@strapi/provider-upload-aws-s3": "4.3.8", + "@strapi/provider-upload-cloudinary": "4.3.8", + "@strapi/strapi": "4.3.8", "@vscode/sqlite3": "5.0.8", "better-sqlite3": "7.4.6", "lodash": "4.17.21", diff --git a/examples/kitchensink-ts/package.json b/examples/kitchensink-ts/package.json index 5a5f1895e1..5f508d1433 100644 --- a/examples/kitchensink-ts/package.json +++ b/examples/kitchensink-ts/package.json @@ -1,7 +1,7 @@ { "name": "kitchensink-ts", "private": true, - "version": "4.3.7", + "version": "4.3.8", "description": "A Strapi application", "scripts": { "develop": "strapi develop", @@ -10,9 +10,9 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/plugin-i18n": "4.3.7", - "@strapi/plugin-users-permissions": "4.3.7", - "@strapi/strapi": "4.3.7", + "@strapi/plugin-i18n": "4.3.8", + "@strapi/plugin-users-permissions": "4.3.8", + "@strapi/strapi": "4.3.8", "better-sqlite3": "7.4.6" }, "author": { diff --git a/examples/kitchensink/package.json b/examples/kitchensink/package.json index b4ea8b750c..74310197d3 100644 --- a/examples/kitchensink/package.json +++ b/examples/kitchensink/package.json @@ -1,7 +1,7 @@ { "name": "kitchensink", "private": true, - "version": "4.3.7", + "version": "4.3.8", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,10 +12,10 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/provider-email-mailgun": "4.3.7", - "@strapi/provider-upload-aws-s3": "4.3.7", - "@strapi/provider-upload-cloudinary": "4.3.7", - "@strapi/strapi": "4.3.7", + "@strapi/provider-email-mailgun": "4.3.8", + "@strapi/provider-upload-aws-s3": "4.3.8", + "@strapi/provider-upload-cloudinary": "4.3.8", + "@strapi/strapi": "4.3.8", "lodash": "4.17.21", "mysql": "2.18.1", "passport-google-oauth2": "0.2.0", diff --git a/lerna.json b/lerna.json index 28c0973256..2aa14d2555 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.3.7", + "version": "4.3.8", "packages": [ "packages/*", "examples/*" diff --git a/packages/admin-test-utils/package.json b/packages/admin-test-utils/package.json index f926e898ce..0e52899439 100644 --- a/packages/admin-test-utils/package.json +++ b/packages/admin-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin-test-utils", - "version": "4.3.7", + "version": "4.3.8", "private": true, "description": "Test utilities for the Strapi administration panel", "license": "MIT", diff --git a/packages/cli/create-strapi-app/package.json b/packages/cli/create-strapi-app/package.json index 05e0a87003..9f75355603 100644 --- a/packages/cli/create-strapi-app/package.json +++ b/packages/cli/create-strapi-app/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-app", - "version": "4.3.7", + "version": "4.3.8", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-app", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.3.7", + "@strapi/generate-new": "4.3.8", "commander": "6.1.0", "inquirer": "8.2.4" }, diff --git a/packages/cli/create-strapi-starter/package.json b/packages/cli/create-strapi-starter/package.json index ac080f0827..9ee7dbdc84 100644 --- a/packages/cli/create-strapi-starter/package.json +++ b/packages/cli/create-strapi-starter/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-starter", - "version": "4.3.7", + "version": "4.3.8", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-starter", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.3.7", + "@strapi/generate-new": "4.3.8", "chalk": "4.1.1", "ci-info": "3.3.2", "commander": "7.1.0", diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index ea461e17a9..5796b20852 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin", - "version": "4.3.7", + "version": "4.3.8", "description": "Strapi Admin", "repository": { "type": "git", @@ -51,12 +51,12 @@ "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/react-fontawesome": "^0.2.0", "@pmmmwh/react-refresh-webpack-plugin": "0.5.7", - "@strapi/babel-plugin-switch-ee-ce": "4.3.7", + "@strapi/babel-plugin-switch-ee-ce": "4.3.8", "@strapi/design-system": "1.2.2", - "@strapi/helper-plugin": "4.3.7", + "@strapi/helper-plugin": "4.3.8", "@strapi/icons": "1.2.2", - "@strapi/typescript-utils": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/typescript-utils": "4.3.8", + "@strapi/utils": "4.3.8", "axios": "0.27.2", "babel-loader": "8.2.5", "babel-plugin-styled-components": "2.0.2", diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index 14bee0ebb0..84e6481009 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-manager", - "version": "4.3.7", + "version": "4.3.8", "description": "A powerful UI to easily manage your data.", "repository": { "type": "git", @@ -24,7 +24,7 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "lodash": "4.17.21" }, "engines": { diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 617c670f98..0ad5f80883 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-type-builder", - "version": "4.3.7", + "version": "4.3.8", "description": "Strapi plugin to create content type", "repository": { "type": "git", @@ -28,9 +28,9 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/generators": "4.3.7", - "@strapi/helper-plugin": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/generators": "4.3.8", + "@strapi/helper-plugin": "4.3.8", + "@strapi/utils": "4.3.8", "fs-extra": "10.0.0", "lodash": "4.17.21", "pluralize": "^8.0.0", diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 350fdb729f..ea015d15e9 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/database", - "version": "4.3.7", + "version": "4.3.8", "description": "Strapi's database layer", "homepage": "https://strapi.io", "bugs": { diff --git a/packages/core/email/package.json b/packages/core/email/package.json index 433315962f..bdfec0140e 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-email", - "version": "4.3.7", + "version": "4.3.8", "description": "Easily configure your Strapi application to send emails.", "repository": { "type": "git", @@ -26,12 +26,12 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/provider-email-sendmail": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/provider-email-sendmail": "4.3.8", + "@strapi/utils": "4.3.8", "lodash": "4.17.21" }, "devDependencies": { - "@strapi/helper-plugin": "4.3.7", + "@strapi/helper-plugin": "4.3.8", "@testing-library/react": "12.1.4" }, "engines": { diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index 5b9f243122..c58e2bf771 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/helper-plugin", - "version": "4.3.7", + "version": "4.3.8", "description": "Helper for Strapi plugins development", "repository": { "type": "git", diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index b0545b55ab..f461c58754 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/strapi", - "version": "4.3.7", + "version": "4.3.8", "description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite", "keywords": [ "strapi", @@ -80,17 +80,17 @@ "dependencies": { "@koa/cors": "3.4.1", "@koa/router": "10.1.1", - "@strapi/admin": "4.3.7", - "@strapi/database": "4.3.7", - "@strapi/generate-new": "4.3.7", - "@strapi/generators": "4.3.7", - "@strapi/logger": "4.3.7", - "@strapi/plugin-content-manager": "4.3.7", - "@strapi/plugin-content-type-builder": "4.3.7", - "@strapi/plugin-email": "4.3.7", - "@strapi/plugin-upload": "4.3.7", - "@strapi/typescript-utils": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/admin": "4.3.8", + "@strapi/database": "4.3.8", + "@strapi/generate-new": "4.3.8", + "@strapi/generators": "4.3.8", + "@strapi/logger": "4.3.8", + "@strapi/plugin-content-manager": "4.3.8", + "@strapi/plugin-content-type-builder": "4.3.8", + "@strapi/plugin-email": "4.3.8", + "@strapi/plugin-upload": "4.3.8", + "@strapi/typescript-utils": "4.3.8", + "@strapi/utils": "4.3.8", "bcryptjs": "2.4.3", "boxen": "5.1.2", "chalk": "4.1.2", diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index f4dd47f263..19f9bfd0ee 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-upload", - "version": "4.3.7", + "version": "4.3.8", "description": "Makes it easy to upload images and files to your Strapi Application.", "license": "SEE LICENSE IN LICENSE", "author": { @@ -23,9 +23,9 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.3.7", - "@strapi/provider-upload-local": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/helper-plugin": "4.3.8", + "@strapi/provider-upload-local": "4.3.8", + "@strapi/utils": "4.3.8", "byte-size": "7.0.1", "cropperjs": "1.5.12", "date-fns": "2.29.2", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index ac837a6bf8..c9d719119a 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/utils", - "version": "4.3.7", + "version": "4.3.8", "description": "Shared utilities for the Strapi packages", "keywords": [ "strapi", diff --git a/packages/generators/app/package.json b/packages/generators/app/package.json index 72e41abff1..e737e035b4 100644 --- a/packages/generators/app/package.json +++ b/packages/generators/app/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generate-new", - "version": "4.3.7", + "version": "4.3.8", "description": "Generate a new Strapi application.", "keywords": [ "generate", diff --git a/packages/generators/generators/package.json b/packages/generators/generators/package.json index 1e54ee6f2f..a9cd0bb59c 100644 --- a/packages/generators/generators/package.json +++ b/packages/generators/generators/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generators", - "version": "4.3.7", + "version": "4.3.8", "description": "Interactive API generator.", "keywords": [ "strapi", @@ -30,8 +30,8 @@ "main": "lib/index.js", "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/typescript-utils": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/typescript-utils": "4.3.8", + "@strapi/utils": "4.3.8", "chalk": "4.1.2", "fs-extra": "10.0.0", "node-plop": "0.26.3", diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index 5be94c91b6..33adf8b87f 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-documentation", - "version": "4.3.7", + "version": "4.3.8", "description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.", "repository": { "type": "git", @@ -24,8 +24,8 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/helper-plugin": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/helper-plugin": "4.3.8", + "@strapi/utils": "4.3.8", "bcryptjs": "2.4.3", "cheerio": "^1.0.0-rc.12", "fs-extra": "10.0.0", diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index 2827e9b302..e31c3ac3b5 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-graphql", - "version": "4.3.7", + "version": "4.3.8", "description": "Adds GraphQL endpoint with default API methods.", "repository": { "type": "git", @@ -29,7 +29,7 @@ "dependencies": { "@graphql-tools/schema": "8.1.2", "@graphql-tools/utils": "^8.10.0", - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "apollo-server-core": "3.1.2", "apollo-server-koa": "3.10.0", "glob": "^7.1.7", diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index 34ddf3f47f..ab2906814a 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-i18n", - "version": "4.3.7", + "version": "4.3.8", "description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API", "repository": { "type": "git", @@ -24,7 +24,7 @@ "test:unit": "jest --verbose" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "lodash": "4.17.21" }, "devDependencies": { diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index ff80a77c6e..38d1fab6b5 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-sentry", - "version": "4.3.7", + "version": "4.3.8", "description": "Send Strapi error events to Sentry", "repository": { "type": "git", diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index 7da79c03ba..8901babdc5 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-users-permissions", - "version": "4.3.7", + "version": "4.3.8", "description": "Protect your API with a full-authentication process based on JWT", "repository": { "type": "git", @@ -27,8 +27,8 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.3.7", - "@strapi/utils": "4.3.7", + "@strapi/helper-plugin": "4.3.8", + "@strapi/utils": "4.3.8", "bcryptjs": "2.4.3", "grant-koa": "5.4.8", "jsonwebtoken": "^8.1.0", diff --git a/packages/providers/email-amazon-ses/package.json b/packages/providers/email-amazon-ses/package.json index 3df91c8f97..fe26a89ba5 100644 --- a/packages/providers/email-amazon-ses/package.json +++ b/packages/providers/email-amazon-ses/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-amazon-ses", - "version": "4.3.7", + "version": "4.3.8", "description": "Amazon SES provider for strapi email", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "node-ses": "^3.0.3" }, "engines": { diff --git a/packages/providers/email-mailgun/package.json b/packages/providers/email-mailgun/package.json index 41f0614cc8..daeaea6066 100644 --- a/packages/providers/email-mailgun/package.json +++ b/packages/providers/email-mailgun/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-mailgun", - "version": "4.3.7", + "version": "4.3.8", "description": "Mailgun provider for strapi email plugin", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "form-data": "^4.0.0", "mailgun.js": "5.2.2" }, diff --git a/packages/providers/email-nodemailer/package.json b/packages/providers/email-nodemailer/package.json index fdc69a152b..d0cee82ee1 100644 --- a/packages/providers/email-nodemailer/package.json +++ b/packages/providers/email-nodemailer/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-nodemailer", - "version": "4.3.7", + "version": "4.3.8", "description": "Nodemailer provider for Strapi 3", "keywords": [ "strapi", diff --git a/packages/providers/email-sendgrid/package.json b/packages/providers/email-sendgrid/package.json index 8153801c7c..4af7407d3c 100644 --- a/packages/providers/email-sendgrid/package.json +++ b/packages/providers/email-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendgrid", - "version": "4.3.7", + "version": "4.3.8", "description": "Sendgrid provider for strapi email", "keywords": [ "email", @@ -37,7 +37,7 @@ }, "dependencies": { "@sendgrid/mail": "7.7.0", - "@strapi/utils": "4.3.7" + "@strapi/utils": "4.3.8" }, "engines": { "node": ">=14.19.1 <=16.x.x", diff --git a/packages/providers/email-sendmail/package.json b/packages/providers/email-sendmail/package.json index e2ba2e4b3c..685221c5ff 100644 --- a/packages/providers/email-sendmail/package.json +++ b/packages/providers/email-sendmail/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendmail", - "version": "4.3.7", + "version": "4.3.8", "description": "Sendmail provider for strapi email", "keywords": [ "email", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "sendmail": "^1.6.1" }, "engines": { diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index b289d6edf3..a373f1bb25 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-aws-s3", - "version": "4.3.7", + "version": "4.3.8", "description": "AWS S3 provider for strapi upload", "keywords": [ "upload", diff --git a/packages/providers/upload-cloudinary/package.json b/packages/providers/upload-cloudinary/package.json index 0d8c557aad..ab55dbbc72 100644 --- a/packages/providers/upload-cloudinary/package.json +++ b/packages/providers/upload-cloudinary/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-cloudinary", - "version": "4.3.7", + "version": "4.3.8", "description": "Cloudinary provider for strapi upload", "keywords": [ "upload", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "cloudinary": "^1.30.1", "into-stream": "^5.1.0" }, diff --git a/packages/providers/upload-local/package.json b/packages/providers/upload-local/package.json index 4dce9198b6..b19349c83e 100644 --- a/packages/providers/upload-local/package.json +++ b/packages/providers/upload-local/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-local", - "version": "4.3.7", + "version": "4.3.8", "description": "Local provider for strapi upload", "keywords": [ "upload", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.3.7", + "@strapi/utils": "4.3.8", "fs-extra": "10.0.0" }, "engines": { diff --git a/packages/utils/babel-plugin-switch-ee-ce/package.json b/packages/utils/babel-plugin-switch-ee-ce/package.json index 6de704a947..2fed23a82e 100644 --- a/packages/utils/babel-plugin-switch-ee-ce/package.json +++ b/packages/utils/babel-plugin-switch-ee-ce/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/babel-plugin-switch-ee-ce", - "version": "4.3.7", + "version": "4.3.8", "private": false, "description": "Babel plugin to switch from CE to EE at runtime", "repository": "git://github.com/strapi/strapi.git", diff --git a/packages/utils/logger/package.json b/packages/utils/logger/package.json index 2fc761fee8..9951389987 100644 --- a/packages/utils/logger/package.json +++ b/packages/utils/logger/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/logger", - "version": "4.3.7", + "version": "4.3.8", "description": "Strapi's logger", "homepage": "https://strapi.io", "bugs": { diff --git a/packages/utils/typescript/package.json b/packages/utils/typescript/package.json index 2faaa2fb67..f318800d2a 100644 --- a/packages/utils/typescript/package.json +++ b/packages/utils/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/typescript-utils", - "version": "4.3.7", + "version": "4.3.8", "description": "Typescript support for Strapi", "keywords": [ "strapi", From 6654ad35287b6702b21d47a294d187fbc5e1db09 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Thu, 8 Sep 2022 08:44:27 +0200 Subject: [PATCH 41/58] Add node 18 --- .github/workflows/tests.yml | 20 +++++++++---------- examples/getstarted/package.json | 2 +- examples/kitchensink-ts/package.json | 2 +- examples/kitchensink/package.json | 2 +- package.json | 2 +- packages/admin-test-utils/package.json | 2 +- packages/cli/create-strapi-app/package.json | 2 +- .../cli/create-strapi-starter/package.json | 2 +- packages/core/admin/package.json | 2 +- packages/core/content-manager/package.json | 2 +- .../core/content-type-builder/package.json | 2 +- packages/core/database/package.json | 2 +- packages/core/email/package.json | 2 +- packages/core/helper-plugin/package.json | 2 +- packages/core/strapi/package.json | 2 +- packages/core/upload/package.json | 2 +- packages/core/utils/package.json | 2 +- .../lib/resources/json/common/package.json.js | 2 +- packages/generators/app/package.json | 2 +- .../lib/templates/js/plugin-package.json.hbs | 2 +- .../lib/templates/ts/plugin-package.json.hbs | 2 +- packages/generators/generators/package.json | 2 +- packages/plugins/documentation/package.json | 2 +- packages/plugins/graphql/package.json | 2 +- packages/plugins/i18n/package.json | 2 +- packages/plugins/sentry/package.json | 2 +- .../plugins/users-permissions/package.json | 2 +- .../providers/email-amazon-ses/package.json | 2 +- packages/providers/email-mailgun/package.json | 2 +- .../providers/email-nodemailer/package.json | 2 +- .../providers/email-sendgrid/package.json | 2 +- .../providers/email-sendmail/package.json | 2 +- packages/providers/upload-aws-s3/package.json | 2 +- .../providers/upload-cloudinary/package.json | 2 +- packages/providers/upload-local/package.json | 2 +- packages/utils/logger/package.json | 2 +- packages/utils/typescript/package.json | 2 +- 37 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 52b4693ccb..dea2b900e5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [14, 16] + node: [14, 16, 18] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 @@ -38,7 +38,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.codecov }} strategy: matrix: - node: [14, 16] + node: [14, 16, 18] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 @@ -59,7 +59,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.codecov }} strategy: matrix: - node: [14, 16] + node: [14, 16, 18] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 @@ -80,7 +80,7 @@ jobs: name: '[CE] E2E (postgres, node: ${{ matrix.node }})' strategy: matrix: - node: [14, 16] + node: [14, 16, 18] services: postgres: # Docker Hub image @@ -116,7 +116,7 @@ jobs: name: '[CE] E2E (mysql, node: ${{ matrix.node }})' strategy: matrix: - node: [14, 16] + node: [14, 16, 18] services: mysql: image: mysql @@ -151,7 +151,7 @@ jobs: name: '[CE] E2E (mysql:5 , node: ${{ matrix.node }})' strategy: matrix: - node: [14, 16] + node: [14, 16, 18] services: mysql: image: mysql:5 @@ -186,7 +186,7 @@ jobs: name: '[CE] E2E (sqlite: ${{ matrix.sqlite_pkg }}, node: ${{ matrix.node }})' strategy: matrix: - node: [14, 16] + node: [14, 16, 18] sqlite_pkg: ['better-sqlite3', 'sqlite3', '@vscode/sqlite3'] steps: - uses: actions/checkout@v2 @@ -210,7 +210,7 @@ jobs: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: - node: [14, 16] + node: [14, 16, 18] services: postgres: # Docker Hub image @@ -250,7 +250,7 @@ jobs: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: - node: [14, 16] + node: [14, 16, 18] services: mysql: image: mysql @@ -289,7 +289,7 @@ jobs: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: - node: [14, 16] + node: [14, 16, 18] sqlite_pkg: ['better-sqlite3', 'sqlite3', '@vscode/sqlite3'] steps: - uses: actions/checkout@v2 diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index 115ea21e6e..7eabe95497 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -33,7 +33,7 @@ "uuid": "getstarted" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "license": "SEE LICENSE IN LICENSE" diff --git a/examples/kitchensink-ts/package.json b/examples/kitchensink-ts/package.json index 5f508d1433..31d8f455b4 100644 --- a/examples/kitchensink-ts/package.json +++ b/examples/kitchensink-ts/package.json @@ -22,7 +22,7 @@ "uuid": "getstarted" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "license": "MIT" diff --git a/examples/kitchensink/package.json b/examples/kitchensink/package.json index 74310197d3..ad526f7443 100644 --- a/examples/kitchensink/package.json +++ b/examples/kitchensink/package.json @@ -26,7 +26,7 @@ "uuid": "getstarted" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "license": "SEE LICENSE IN LICENSE" diff --git a/package.json b/package.json index 50cf473223..aa4c40f7e3 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "yargs": "13.3.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/admin-test-utils/package.json b/packages/admin-test-utils/package.json index 0e52899439..f03a3ec53b 100644 --- a/packages/admin-test-utils/package.json +++ b/packages/admin-test-utils/package.json @@ -33,6 +33,6 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "engines": { - "node": ">=14.19.1 <=16.x.x" + "node": ">=14.19.1 <=18.x.x" } } diff --git a/packages/cli/create-strapi-app/package.json b/packages/cli/create-strapi-app/package.json index 9f75355603..7077de9c6c 100644 --- a/packages/cli/create-strapi-app/package.json +++ b/packages/cli/create-strapi-app/package.json @@ -43,7 +43,7 @@ "inquirer": "8.2.4" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/cli/create-strapi-starter/package.json b/packages/cli/create-strapi-starter/package.json index 9ee7dbdc84..c3e1e972d6 100644 --- a/packages/cli/create-strapi-starter/package.json +++ b/packages/cli/create-strapi-starter/package.json @@ -48,7 +48,7 @@ "ora": "5.4.1" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index 5796b20852..a7ed5ed272 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -151,7 +151,7 @@ "@strapi/strapi": "^4.3.4" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "nx": { diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index 84e6481009..0b34e12bd5 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -28,7 +28,7 @@ "lodash": "4.17.21" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 0ad5f80883..ee783fcfa1 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -48,7 +48,7 @@ "@testing-library/react": "12.1.4" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/core/database/package.json b/packages/core/database/package.json index ea015d15e9..8f138d3f58 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -39,7 +39,7 @@ "umzug": "3.1.1" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/core/email/package.json b/packages/core/email/package.json index bdfec0140e..3235422d03 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -35,7 +35,7 @@ "@testing-library/react": "12.1.4" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index c58e2bf771..fb2a1be042 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -89,7 +89,7 @@ "typescript": "4.6.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "nx": { diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index f461c58754..2465f456bc 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -136,7 +136,7 @@ "typescript": "4.6.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index 19f9bfd0ee..f45625f887 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -53,7 +53,7 @@ "react-test-renderer": "^17.0.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index c9d719119a..d58f89e71e 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -42,7 +42,7 @@ "yup": "0.32.9" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/generators/app/lib/resources/json/common/package.json.js b/packages/generators/app/lib/resources/json/common/package.json.js index fda022a85c..c2016153a7 100644 --- a/packages/generators/app/lib/resources/json/common/package.json.js +++ b/packages/generators/app/lib/resources/json/common/package.json.js @@ -43,7 +43,7 @@ module.exports = (opts) => { ...packageJsonStrapi, }, engines: { - node: '>=14.19.1 <=16.x.x', + node: '>=14.19.1 <=18.x.x', npm: '>=6.0.0', }, license: 'MIT', diff --git a/packages/generators/app/package.json b/packages/generators/app/package.json index e737e035b4..d642740474 100644 --- a/packages/generators/app/package.json +++ b/packages/generators/app/package.json @@ -50,7 +50,7 @@ "uuid": "^8.3.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/generators/generators/lib/templates/js/plugin-package.json.hbs b/packages/generators/generators/lib/templates/js/plugin-package.json.hbs index 5235b7dfdd..ef694efa20 100644 --- a/packages/generators/generators/lib/templates/js/plugin-package.json.hbs +++ b/packages/generators/generators/lib/templates/js/plugin-package.json.hbs @@ -18,7 +18,7 @@ } ], "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "license": "MIT" diff --git a/packages/generators/generators/lib/templates/ts/plugin-package.json.hbs b/packages/generators/generators/lib/templates/ts/plugin-package.json.hbs index 013521a68f..f1a46c9668 100644 --- a/packages/generators/generators/lib/templates/ts/plugin-package.json.hbs +++ b/packages/generators/generators/lib/templates/ts/plugin-package.json.hbs @@ -20,7 +20,7 @@ } ], "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "scripts": { diff --git a/packages/generators/generators/package.json b/packages/generators/generators/package.json index a9cd0bb59c..db0e11cd0b 100644 --- a/packages/generators/generators/package.json +++ b/packages/generators/generators/package.json @@ -39,7 +39,7 @@ "pluralize": "8.0.0" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index 33adf8b87f..5ba3fcb367 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -53,7 +53,7 @@ "msw": "0.42.3" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index e31c3ac3b5..061befebb0 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -52,7 +52,7 @@ "@strapi/strapi": "^4.0.0" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index ab2906814a..b8a01fb4ac 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -32,7 +32,7 @@ "msw": "0.42.3" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index 38d1fab6b5..e646662950 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -30,7 +30,7 @@ "@strapi/strapi": "^4.0.0" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index 8901babdc5..1edf0d181d 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -54,7 +54,7 @@ "react-test-renderer": "^17.0.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" }, "strapi": { diff --git a/packages/providers/email-amazon-ses/package.json b/packages/providers/email-amazon-ses/package.json index fe26a89ba5..0ab895f143 100644 --- a/packages/providers/email-amazon-ses/package.json +++ b/packages/providers/email-amazon-ses/package.json @@ -40,7 +40,7 @@ "node-ses": "^3.0.3" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/email-mailgun/package.json b/packages/providers/email-mailgun/package.json index daeaea6066..c5d47ea58c 100644 --- a/packages/providers/email-mailgun/package.json +++ b/packages/providers/email-mailgun/package.json @@ -41,7 +41,7 @@ "mailgun.js": "5.2.2" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/email-nodemailer/package.json b/packages/providers/email-nodemailer/package.json index d0cee82ee1..069544ae99 100644 --- a/packages/providers/email-nodemailer/package.json +++ b/packages/providers/email-nodemailer/package.json @@ -53,7 +53,7 @@ "nodemailer": "6.7.7" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/email-sendgrid/package.json b/packages/providers/email-sendgrid/package.json index 4af7407d3c..96ffd0a325 100644 --- a/packages/providers/email-sendgrid/package.json +++ b/packages/providers/email-sendgrid/package.json @@ -40,7 +40,7 @@ "@strapi/utils": "4.3.8" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/email-sendmail/package.json b/packages/providers/email-sendmail/package.json index 685221c5ff..27c64076b2 100644 --- a/packages/providers/email-sendmail/package.json +++ b/packages/providers/email-sendmail/package.json @@ -39,7 +39,7 @@ "sendmail": "^1.6.1" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index a373f1bb25..3cb2677ad1 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -41,7 +41,7 @@ "lodash": "4.17.21" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/upload-cloudinary/package.json b/packages/providers/upload-cloudinary/package.json index ab55dbbc72..41205afd84 100644 --- a/packages/providers/upload-cloudinary/package.json +++ b/packages/providers/upload-cloudinary/package.json @@ -41,7 +41,7 @@ "into-stream": "^5.1.0" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/providers/upload-local/package.json b/packages/providers/upload-local/package.json index b19349c83e..6a465e7e35 100644 --- a/packages/providers/upload-local/package.json +++ b/packages/providers/upload-local/package.json @@ -39,7 +39,7 @@ "fs-extra": "10.0.0" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/utils/logger/package.json b/packages/utils/logger/package.json index 9951389987..9ac944808f 100644 --- a/packages/utils/logger/package.json +++ b/packages/utils/logger/package.json @@ -35,7 +35,7 @@ "winston": "3.3.3" }, "engines": { - "node": ">=14.19.1 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } diff --git a/packages/utils/typescript/package.json b/packages/utils/typescript/package.json index f318800d2a..2489555eec 100644 --- a/packages/utils/typescript/package.json +++ b/packages/utils/typescript/package.json @@ -32,7 +32,7 @@ "typescript": "4.6.2" }, "engines": { - "node": ">=12.22.0 <=16.x.x", + "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" } } From d0404ffa7afcab5389d2e63fa6417448409a7373 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Thu, 8 Sep 2022 16:38:57 +0200 Subject: [PATCH 42/58] Update readme with node 18 support --- .github/ISSUE_TEMPLATE/BUG_REPORT.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 2 +- packages/core/strapi/README.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md index 27383512e7..c885c0a3f3 100644 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -20,7 +20,7 @@ https://github.com/strapi/strapi/blob/main/CONTRIBUTING.md#reporting-an-issue ### Required System information - + - Node.js version: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4816948fde..b0384d5aaa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,7 +46,7 @@ The Strapi core team will review your pull request and either merge it, request ## Contribution Prerequisites -- You have [Node.js](https://nodejs.org/en/) at version >= v14 and <= v16 and [Yarn](https://yarnpkg.com/en/) at v1.2.0+ installed. +- You have [Node.js](https://nodejs.org/en/) at version >= v14 and <= v18 and [Yarn](https://yarnpkg.com/en/) at v1.2.0+ installed. - You are familiar with [Git](https://git-scm.com). **Before submitting your pull request** make sure the following requirements are fulfilled: diff --git a/README.md b/README.md index cd4316975b..ceb5c86f35 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Complete installation requirements can be found in the documentation under = 14 <= 16 +- NodeJS >= 14 <= 18 - NPM >= 6.x **Database:** diff --git a/packages/core/strapi/README.md b/packages/core/strapi/README.md index cd4316975b..ceb5c86f35 100644 --- a/packages/core/strapi/README.md +++ b/packages/core/strapi/README.md @@ -86,7 +86,7 @@ Complete installation requirements can be found in the documentation under = 14 <= 16 +- NodeJS >= 14 <= 18 - NPM >= 6.x **Database:** From 14821c6ac59a62983b89160cb20f3443c9d9d8aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20L=C3=BCder?= Date: Thu, 8 Sep 2022 15:00:08 +0000 Subject: [PATCH 43/58] Fix intlLabel for $ne-Filter for correct translations --- .../FilterPopoverURLQuery/utils/getFilterList.js | 10 +++++----- .../components/FilterPopover/utils/getFilterList.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core/helper-plugin/lib/src/components/FilterPopoverURLQuery/utils/getFilterList.js b/packages/core/helper-plugin/lib/src/components/FilterPopoverURLQuery/utils/getFilterList.js index 7a4f89e0a2..b638570648 100644 --- a/packages/core/helper-plugin/lib/src/components/FilterPopoverURLQuery/utils/getFilterList.js +++ b/packages/core/helper-plugin/lib/src/components/FilterPopoverURLQuery/utils/getFilterList.js @@ -17,7 +17,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { @@ -75,7 +75,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { @@ -130,7 +130,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { @@ -199,7 +199,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { @@ -254,7 +254,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { diff --git a/packages/core/upload/admin/src/components/FilterPopover/utils/getFilterList.js b/packages/core/upload/admin/src/components/FilterPopover/utils/getFilterList.js index ae98ebfa92..edcdcc5894 100644 --- a/packages/core/upload/admin/src/components/FilterPopover/utils/getFilterList.js +++ b/packages/core/upload/admin/src/components/FilterPopover/utils/getFilterList.js @@ -33,7 +33,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { @@ -74,7 +74,7 @@ const getFilterList = ({ fieldSchema: { type: fieldType, mainField } }) => { value: '$eq', }, { - intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$neq', defaultMessage: 'is not' }, + intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' }, value: '$ne', }, { From f0769a591659e5cada5ea38c10daa4bba7d5c577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20L=C3=BCder?= Date: Thu, 8 Sep 2022 15:00:49 +0000 Subject: [PATCH 44/58] Remove duplicate $ne/$neq-Translation in zh-Hans --- packages/core/admin/admin/src/translations/zh-Hans.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/admin/admin/src/translations/zh-Hans.json b/packages/core/admin/admin/src/translations/zh-Hans.json index 58ac394cd1..d97eb00037 100644 --- a/packages/core/admin/admin/src/translations/zh-Hans.json +++ b/packages/core/admin/admin/src/translations/zh-Hans.json @@ -356,7 +356,6 @@ "components.FilterOptions.FILTER_TYPES.$lt": "小于", "components.FilterOptions.FILTER_TYPES.$lte": "小于或等于", "components.FilterOptions.FILTER_TYPES.$ne": "不等于", - "components.FilterOptions.FILTER_TYPES.$neq": "不等于", "components.FilterOptions.FILTER_TYPES.$notContains": "不包含 (区分大小写)", "components.FilterOptions.FILTER_TYPES.$notNull": "不为空", "components.FilterOptions.FILTER_TYPES.$null": "为空", From 067b1a2987e0f7b3b910ec83d059cd4cee61e366 Mon Sep 17 00:00:00 2001 From: Julie Plantey Date: Fri, 9 Sep 2022 17:43:05 +0200 Subject: [PATCH 45/58] if no stored theme, store OS theme in local storage --- .../components/ThemeToggleProvider/index.js | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/core/admin/admin/src/components/ThemeToggleProvider/index.js b/packages/core/admin/admin/src/components/ThemeToggleProvider/index.js index b056ee090e..65482a77a0 100644 --- a/packages/core/admin/admin/src/components/ThemeToggleProvider/index.js +++ b/packages/core/admin/admin/src/components/ThemeToggleProvider/index.js @@ -4,7 +4,7 @@ * */ -import React, { useState } from 'react'; +import React, { useState, useMemo, useCallback } from 'react'; import PropTypes from 'prop-types'; import { ThemeToggleContext } from '../../contexts'; @@ -14,22 +14,33 @@ const getDefaultTheme = () => { const browserTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; const persistedTheme = localStorage.getItem(THEME_KEY); + if (!persistedTheme) { + localStorage.setItem(THEME_KEY, browserTheme); + } + return persistedTheme || browserTheme; }; const ThemeToggleProvider = ({ children, themes }) => { const [currentTheme, setCurrentTheme] = useState(getDefaultTheme()); - const handleChangeTheme = (nextTheme) => { - setCurrentTheme(nextTheme); - localStorage.setItem(THEME_KEY, nextTheme); - }; - - return ( - - {children} - + const handleChangeTheme = useCallback( + (nextTheme) => { + setCurrentTheme(nextTheme); + localStorage.setItem(THEME_KEY, nextTheme); + }, + [setCurrentTheme] ); + + const themeValues = useMemo(() => { + return { + currentTheme, + onChangeTheme: handleChangeTheme, + themes, + }; + }, [currentTheme, handleChangeTheme, themes]); + + return {children}; }; ThemeToggleProvider.propTypes = { From 49ec8a1527969dddb1c8144517df7d3b2f9f8a62 Mon Sep 17 00:00:00 2001 From: benjamingeets Date: Sat, 10 Sep 2022 08:48:15 +0200 Subject: [PATCH 46/58] Remove outdated Docker-Repo from README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ceb5c86f35..8b9d5e6281 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ Complete installation requirements can be found in the documentation under Date: Sat, 10 Sep 2022 15:02:11 +0200 Subject: [PATCH 47/58] update sharp in upload package --- packages/core/upload/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index f45625f887..a71ac8281a 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -42,7 +42,7 @@ "react-redux": "7.2.8", "react-router": "^5.2.0", "react-router-dom": "5.2.0", - "sharp": "0.30.7" + "sharp": "0.31.0" }, "devDependencies": { "@testing-library/dom": "8.17.1", From 150f697bc81a496ea586954636a4df964127c29c Mon Sep 17 00:00:00 2001 From: Julie Plantey Date: Tue, 13 Sep 2022 10:53:33 +0200 Subject: [PATCH 48/58] use custom label for CM LV headers --- .../src/content-manager/components/DynamicTable/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/index.js index 8636a937d8..c71cb4b9d3 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/index.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/index.js @@ -47,7 +47,7 @@ const DynamicTable = ({ ...metadatas, label: formatMessage({ id: getTrad(`containers.ListPage.table-headers.${header.name}`), - defaultMessage: header.name, + defaultMessage: metadatas.label, }), }, name: sortFieldValue, @@ -60,7 +60,7 @@ const DynamicTable = ({ ...metadatas, label: formatMessage({ id: getTrad(`containers.ListPage.table-headers.${header.name}`), - defaultMessage: header.name, + defaultMessage: metadatas.label, }), }, }; From 950d460ce767d2a4786bac621cb4f64bbfe6401b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 09:25:11 +0000 Subject: [PATCH 49/58] Bump aws-sdk from 2.1208.0 to 2.1215.0 Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.1208.0 to 2.1215.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.1208.0...v2.1215.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- packages/providers/upload-aws-s3/package.json | 2 +- yarn.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index 3cb2677ad1..42ce8105b5 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -37,7 +37,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "aws-sdk": "2.1208.0", + "aws-sdk": "2.1215.0", "lodash": "4.17.21" }, "engines": { diff --git a/yarn.lock b/yarn.lock index d452568320..7a7e6d380c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7493,10 +7493,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk@2.1208.0: - version "2.1208.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1208.0.tgz#7dc8c877652d2b1ea126a3c256157c1cbd2e20e2" - integrity sha512-Wyq9TJyvRZMcHmcGwmOJag5/94m+Gq3BHcK2klwFvgUf1OWWJc4OYqmi90d7qJ09ydTeGGMeodNJildQdkOrYQ== +aws-sdk@2.1215.0: + version "2.1215.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1215.0.tgz#dafc339c2f9039a8f9de30d863a8665716df2ec0" + integrity sha512-btOexIY0O2F+HhjytToaYuub2HEdLqccZSM8rbT3nrbXo7U4k4Gqi6SbMGi2a+vEpj8lY8dAuMR2lvvVs4Ib9Q== dependencies: buffer "4.9.2" events "1.1.1" @@ -20184,10 +20184,10 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -sharp@0.30.7: - version "0.30.7" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.30.7.tgz#7862bda98804fdd1f0d5659c85e3324b90d94c7c" - integrity sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig== +sharp@0.31.0: + version "0.31.0" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.0.tgz#ce9b5202a5667486721cf07fd5b52360b1c2275a" + integrity sha512-ft96f8WzGxavg0rkLpMw90MTPMUZDyf0tHjPPh8Ob59xt6KzX8EqtotcqZGUm7kwqpX2pmYiyYX2LL0IZ/FDEw== dependencies: color "^4.2.3" detect-libc "^2.0.1" From af852629310a67e5e7f355d4106b3991df50435e Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Thu, 15 Sep 2022 14:21:41 +0200 Subject: [PATCH 50/58] Chore: Upgrade jest to 29.0.3 and jest-watch-typeahead to 2.x --- package.json | 10 +- yarn.lock | 754 +++++++++++++++++++++++++++------------------------ 2 files changed, 409 insertions(+), 355 deletions(-) diff --git a/package.json b/package.json index aa4c40f7e3..9df48d54c4 100644 --- a/package.json +++ b/package.json @@ -87,11 +87,11 @@ "husky": "3.1.0", "inquirer": "8.2.4", "istanbul": "~0.4.2", - "jest": "29.0.0", - "jest-circus": "29.0.0", - "jest-cli": "29.0.0", - "jest-environment-jsdom": "29.0.0", - "jest-watch-typeahead": "0.6.5", + "jest": "29.0.3", + "jest-circus": "29.0.3", + "jest-cli": "29.0.3", + "jest-environment-jsdom": "29.0.3", + "jest-watch-typeahead": "2.2.0", "lerna": "5.4.3", "lint-staged": "10.5.4", "lodash": "4.17.21", diff --git a/yarn.lock b/yarn.lock index 7a7e6d380c..7a7de02012 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2114,18 +2114,6 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - "@jest/console@^29.0.0": version "29.0.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.0.tgz#1e49fcbff7d20c88a6747f27e2fec0e759e405ca" @@ -2138,16 +2126,28 @@ jest-util "^29.0.0" slash "^3.0.0" -"@jest/core@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.0.tgz#6e9213014895bd91117f500bc9e8865d66f981fb" - integrity sha512-9qljprspjQwbmnq3Wv9d/M6/ejMdWs1uAAljQAX9QsjJ1SlSByXw1mRA9UpR2BP9TxLLwEembbm0ykrT//2STg== +"@jest/console@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" + integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== dependencies: - "@jest/console" "^29.0.0" - "@jest/reporters" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + slash "^3.0.0" + +"@jest/core@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" + integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== + dependencies: + "@jest/console" "^29.0.3" + "@jest/reporters" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -2155,20 +2155,20 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.0" - jest-haste-map "^29.0.0" - jest-message-util "^29.0.0" + jest-config "^29.0.3" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-resolve-dependencies "^29.0.0" - jest-runner "^29.0.0" - jest-runtime "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" - jest-watcher "^29.0.0" + jest-resolve "^29.0.3" + jest-resolve-dependencies "^29.0.3" + jest-runner "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" + jest-watcher "^29.0.3" micromatch "^4.0.4" - pretty-format "^29.0.0" + pretty-format "^29.0.3" slash "^3.0.0" strip-ansi "^6.0.0" @@ -2179,63 +2179,63 @@ dependencies: "@jest/types" "^27.5.1" -"@jest/environment@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.0.tgz#069758196cae8458d8b7a7778d0877f2ec04da83" - integrity sha512-ZHLvUENMAnwXowtyhmPRS0QLCXM4TS0ZfuiSR4QfRsJVN5lG4KdBDvI9kHJe/21vrgzPVOkvI7IBnkyPFCbV7g== +"@jest/environment@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" + integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== dependencies: - "@jest/fake-timers" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" - jest-mock "^29.0.0" + jest-mock "^29.0.3" -"@jest/expect-utils@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.0.tgz#aa3a2cbe4630ac2095cd2bcd3040fe42015fe9ed" - integrity sha512-odQ+cjUpui6++a9Ua/oWn7CG0Af+EZe9weWZbfUQHTg7C3K9PCb0AnD4X7nyAe4WjfeZmVVyG5SJELMQaUbCtg== +"@jest/expect-utils@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" + integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.0.tgz#e4586136c27aa460afa427db2cd494d890d07b48" - integrity sha512-X2S5NpZOeXXDGBLvU/4K1nAD5iIz6/9Gs041wToI0FiX3glh/aEGGsVv3+SxKddYIb6Ei+ZbqzJmfRzQ7nwPlQ== +"@jest/expect@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" + integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== dependencies: - expect "^29.0.0" - jest-snapshot "^29.0.0" + expect "^29.0.3" + jest-snapshot "^29.0.3" -"@jest/fake-timers@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.0.tgz#6f9a3a6318af5fd6cbac52e20aa868f5643aba23" - integrity sha512-4tqH5fT9H0+Ms3Z1HLZ/JfpzJluep2Zo3uuj0KPyu6IIyYSHCDfkXuiBQNWUGvumZDLQ2Si03cC7Gq0r73VgVg== +"@jest/fake-timers@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" + integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.0" - jest-mock "^29.0.0" - jest-util "^29.0.0" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" + jest-util "^29.0.3" -"@jest/globals@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.0.tgz#8a65b224e2eb1458d3780652d4ad832611d16066" - integrity sha512-ZHQMh6BZtabbikh9wkuPpVQmPHEpc4EgOaY/UJNM6hHHA5HRmiP5rH54M8267nkGscuqM5KpWP+zAZ4XEOXZag== +"@jest/globals@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" + integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== dependencies: - "@jest/environment" "^29.0.0" - "@jest/expect" "^29.0.0" - "@jest/types" "^29.0.0" - jest-mock "^29.0.0" + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/types" "^29.0.3" + jest-mock "^29.0.3" -"@jest/reporters@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.0.tgz#2bcdee6c8a347acdc93421fffc441a2c282a8b0f" - integrity sha512-6ZFLlHQwncULTucAKWeGJLGPvzjgC/0gFmxJi/LgU9G1v498r/RcWQiZBPqhJcSvpWGTCaqjvUGmPCLtrUpubw== +"@jest/reporters@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" + integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/console" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -2248,9 +2248,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.0" - jest-util "^29.0.0" - jest-worker "^29.0.0" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + jest-worker "^29.0.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -2280,16 +2280,6 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - "@jest/test-result@^29.0.0": version "29.0.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.0.tgz#592f556b94a9d9aed951dd43c310370239c9cb56" @@ -2300,14 +2290,24 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.0.tgz#32da68bec6f83f5f2c7936946eac54d80ba96d0e" - integrity sha512-uL6yX//SUME1c/ucbY365obdsrPjvSoNBwB80WTe+drYL4jf7A87vA2+w4hYwXJEIGQspv5skg3iB/sJSys7ew== +"@jest/test-result@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" + integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== dependencies: - "@jest/test-result" "^29.0.0" + "@jest/console" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" + integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== + dependencies: + "@jest/test-result" "^29.0.3" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.3" slash "^3.0.0" "@jest/transform@^26.6.2": @@ -2331,22 +2331,22 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.0.tgz#a19c6af7724786ac286dde2037d077372ce8c76e" - integrity sha512-hwyBt8UR5o8GGaphmRqNQwVCctiOR8ncugCp/RlInEZvQ+ysKkS5TFfe5RgeQ0KtKdWByQqn5yA574LLOp3OWw== +"@jest/transform@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" + integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.3" jest-regex-util "^29.0.0" - jest-util "^29.0.0" + jest-util "^29.0.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -2386,6 +2386,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" + integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@josephg/resolvable@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" @@ -6962,13 +6974,20 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" + ansi-html-community@0.0.8, ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -6989,6 +7008,11 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -7561,15 +7585,15 @@ babel-eslint@10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.0.tgz#abf783ce6eb999cfb6764915bd86d3055a8ae3be" - integrity sha512-EJM2dqxz9+uWJLLucZLPYAmRsHHt1IMkitAHGqjDlIP2IQXzkIMO3ATbBWk0lU6VwX4rNeVN04t/DDB8U5C2rg== +babel-jest@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" + integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== dependencies: - "@jest/transform" "^29.0.0" + "@jest/transform" "^29.0.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.0" + babel-preset-jest "^29.0.2" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -7638,10 +7662,10 @@ babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.0.tgz#ae4873399a199ede93697a15919d3d0f614a2eb1" - integrity sha512-B9oaXrlxXHFWeWqhDPg03iqQd2UN/mg/VdZOsLaqAVBkztru3ctTryAI4zisxLEEgmcUnLTKewqx0gGifoXD3A== +babel-plugin-jest-hoist@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" + integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -7756,12 +7780,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.0.tgz#52d7f1afe3a15d14a3c5ab4349cbd388d98d330b" - integrity sha512-B5Ke47Xcs8rDF3p1korT3LoilpADCwbG93ALqtvqu6Xpf4d8alKkrCBTExbNzdHJcIuEPpfYvEaFFRGee2kUgQ== +babel-preset-jest@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" + integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== dependencies: - babel-plugin-jest-hoist "^29.0.0" + babel-plugin-jest-hoist "^29.0.2" babel-preset-current-node-syntax "^1.0.0" backo2@^1.0.2: @@ -8580,6 +8604,11 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +char-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" + integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -11259,16 +11288,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.0.tgz#e4af58cf4343683ffeca875d75d5c790f2712565" - integrity sha512-OKAHGwaBqZ6I7bas0cnrrvomEL2d0yp2XXYQhhnVHfaqDaKStUBxjWtlGu/uI2tBqwb9sBMvaS41DSJFsRRJHQ== +expect@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" + integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== dependencies: - "@jest/expect-utils" "^29.0.0" + "@jest/expect-utils" "^29.0.3" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-util "^29.0.0" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" express@^4.17.1, express@^4.17.3: version "4.18.1" @@ -14090,74 +14119,74 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@29.0.0, jest-circus@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.0.tgz#086e825159edf711c504cfc0ca0816bc756e5494" - integrity sha512-6EX70/+ZdzPLShBeokMVIpUaq5cQpOsO4OCDiV1drKUHht0hmUOWvY6LE4pBSFdepB0Sukw4Y0ajRqtvLBO9/A== +jest-circus@29.0.3, jest-circus@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" + integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== dependencies: - "@jest/environment" "^29.0.0" - "@jest/expect" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-runtime "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" + jest-each "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" p-limit "^3.1.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@29.0.0, jest-cli@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.0.tgz#ea38f017f5ad8f435f9b2910a7e8e18607ebc644" - integrity sha512-VZUPQjWJKL8QABFiBk1tHeJ3czBodjU9r22ceQmeL7X8/M73FYxTte0RkYPHI2SiLPWy99GZNWA+oOu9x0xKOA== +jest-cli@29.0.3, jest-cli@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" + integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== dependencies: - "@jest/core" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/core" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-config "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.0.tgz#fb2408b447ff9479a2aed7f0ee6f1888665ff8ca" - integrity sha512-RbcUgQBJDS0O8OThWUwm5UCfzo0zOymUX/cJzUNlYB1ZWqe3M8MFEcgwqgZSifYuYTi46xWu5cmkMiyRQAdnMw== +jest-config@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" + integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.0" - "@jest/types" "^29.0.0" - babel-jest "^29.0.0" + "@jest/test-sequencer" "^29.0.3" + "@jest/types" "^29.0.3" + babel-jest "^29.0.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.0.0" - jest-environment-node "^29.0.0" + jest-circus "^29.0.3" + jest-environment-node "^29.0.3" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-runner "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-resolve "^29.0.3" + jest-runner "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -14171,15 +14200,15 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-diff@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.0.tgz#24a3dd5846ae0e48cba0194b1397178b06b123ad" - integrity sha512-erkuYf1dQBHow3XJmS+bH6t9TZ0GwrSdQGauN8sTqyZlFByOjRadmHgTTcAHINeeSwxzGHN2ob3PXVvZphD7XQ== +jest-diff@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" + integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" jest-docblock@^29.0.0: version "29.0.0" @@ -14188,42 +14217,42 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.0.tgz#1aff8fae85ed2094ca3b64ae9ab61225dbf20c6a" - integrity sha512-ACKRvqdo7Bc0YrjQbrQtokpQ2NZxdXA63OklJht7a9UarCJXlZeWh51wEUe0ORqbnu15nAnX1YFQHmVpS1+ZXA== +jest-each@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" + integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.0" - pretty-format "^29.0.0" + jest-util "^29.0.3" + pretty-format "^29.0.3" -jest-environment-jsdom@29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.0.0.tgz#b48d6a62307661d26746243f9e79484315db5731" - integrity sha512-NVBXMAEbNrgln2of0OtDhfT18Ohl9DZKkjsNgGKWOWmo3TZwHSG6MRw7XE3RQh/SH69a8vVlf4g2cQHgXdQFBg== +jest-environment-jsdom@29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.0.3.tgz#0c6ee841133dd6acbe957bceaceea93b7ec60ca9" + integrity sha512-KIGvpm12c71hoYTjL4wC2c8K6KfhOHJqJtaHc1IApu5rG047YWZoEP13BlbucWfzGISBrmli8KFqdhdQEa8Wnw== dependencies: - "@jest/environment" "^29.0.0" - "@jest/fake-timers" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.0.0" - jest-util "^29.0.0" + jest-mock "^29.0.3" + jest-util "^29.0.3" jsdom "^20.0.0" -jest-environment-node@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.0.tgz#849fc1c0b149cf7e6f9513715a0ec6b775ee3506" - integrity sha512-Cns21Vgu0z7LjtssL0SWkxmjclHdwXeECFAP3ONit5NPnGCbv+0Rqby8w9vK7NpFlUaFgMmLYYBsUjSmIhwpvg== +jest-environment-node@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" + integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== dependencies: - "@jest/environment" "^29.0.0" - "@jest/fake-timers" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" - jest-mock "^29.0.0" - jest-util "^29.0.0" + jest-mock "^29.0.3" + jest-util "^29.0.3" jest-get-type@^28.0.2: version "28.0.2" @@ -14256,32 +14285,32 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.0.tgz#52078a615aaa8a3ef017903e43cd413894fca768" - integrity sha512-mLyDt2WyNU0DZ64s7kRFkFJzrHEuXIxG+OKOs9/P5s1W7NzXE+P7SvLbxjz2Cg63cJjuglYRrD6fZcYf19T8Lw== +jest-haste-map@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" + integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.0" - jest-worker "^29.0.0" + jest-util "^29.0.3" + jest-worker "^29.0.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.0.tgz#7a6791cf61513550a8fc4a95f907f77db899204f" - integrity sha512-kBjNS0/z2+ZV/3N7R+ot5fKD2W1fHkoxC3kH/fkb2z24YSPfR9RGwiNX+YLRG9r0gWsxQx16boxzHT23G6rFBw== +jest-leak-detector@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" + integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" jest-matcher-utils@^28.0.0: version "28.1.3" @@ -14293,30 +14322,15 @@ jest-matcher-utils@^28.0.0: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-matcher-utils@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.0.tgz#7e79d5d43ccbe4fe2b27f812986f196e7a98746c" - integrity sha512-HtCxFHI8lQSbN1RppFjtl6DIrS+x4d3lOhpJljVxFEXob4lxlKon3FunW0XoGxNSvIoD00AfTFspnufpOqszrg== +jest-matcher-utils@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" + integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== dependencies: chalk "^4.0.0" - jest-diff "^29.0.0" + jest-diff "^29.0.3" jest-get-type "^29.0.0" - pretty-format "^29.0.0" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" + pretty-format "^29.0.3" jest-message-util@^29.0.0: version "29.0.0" @@ -14333,12 +14347,27 @@ jest-message-util@^29.0.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.0.tgz#dff9e2a9caa9c813115db24e78d00a0cba9f0019" - integrity sha512-0AWznVt415KMCxcJPaE2+tWaruw0w8aRrKH1Y/NZUx3+Pd9f20jQjUR82iHqGSuYS4EOHL9uI8SjAhJk+ET91g== +jest-message-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" + integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== dependencies: - "@jest/types" "^29.0.0" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" + integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== + dependencies: + "@jest/types" "^29.0.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -14351,91 +14380,86 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-regex-util@^27.0.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - jest-regex-util@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.0.tgz#6c7886caa63838acb207f2caa7eb8f64930fb1e7" - integrity sha512-1TYUMcLZcUqa2fdUQ3leYtiXWXfNmimPvnJ34YDLLf0nyJ/aEeqlHJM9Ji2jw9Qxdh7nUypanjUlUV87yRHBFQ== +jest-resolve-dependencies@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" + integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.0" + jest-snapshot "^29.0.3" -jest-resolve@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.0.tgz#63d8e0b5cae115203da65cc8331722a315069351" - integrity sha512-MN19maPUXzibBshYg/cSrDWqiJwEBur6gbQb2lwOL4+6k14wdNW8Xh0uNPPxUntb7cpTi07uql/bUO5TVwiJbA== +jest-resolve@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" + integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-util "^29.0.3" + jest-validate "^29.0.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.0.tgz#8fff8a248b912e8be033a0b61d477a323b349397" - integrity sha512-OpTpRIBOIn9RXuMMrpS+h9ZoK+nZHaOuNOceUiDbDoOJ6pmeGu0zst7VR22xXT3fOCwWqg5qe0fZ23G+ve5P0Q== +jest-runner@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" + integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== dependencies: - "@jest/console" "^29.0.0" - "@jest/environment" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/console" "^29.0.3" + "@jest/environment" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.0" - jest-haste-map "^29.0.0" - jest-leak-detector "^29.0.0" - jest-message-util "^29.0.0" - jest-resolve "^29.0.0" - jest-runtime "^29.0.0" - jest-util "^29.0.0" - jest-watcher "^29.0.0" - jest-worker "^29.0.0" + jest-environment-node "^29.0.3" + jest-haste-map "^29.0.3" + jest-leak-detector "^29.0.3" + jest-message-util "^29.0.3" + jest-resolve "^29.0.3" + jest-runtime "^29.0.3" + jest-util "^29.0.3" + jest-watcher "^29.0.3" + jest-worker "^29.0.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.0.tgz#544e610ca0e55748819a31c18e3166abff7302f4" - integrity sha512-dU0qFpTRWZY7Rur7yBgpz4g67mITSozBZ1jlhoG4ER/P/NiTFyZ/W8nMd5floeAMafmbrOc/5A9SlCu7SQCoBA== +jest-runtime@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" + integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== dependencies: - "@jest/environment" "^29.0.0" - "@jest/fake-timers" "^29.0.0" - "@jest/globals" "^29.0.0" + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/globals" "^29.0.3" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" - jest-message-util "^29.0.0" - jest-mock "^29.0.0" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" + jest-resolve "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" slash "^3.0.0" strip-bom "^4.0.0" @@ -14447,10 +14471,10 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.0.tgz#5a349608cb7fa12dbdafad999cd5a3ed571bfd90" - integrity sha512-rR3B8GInk/IibF0M/sQCukSM8xX8bPI3Q0kjoAw4HT9Mx0Q3bS0MmF74rsreBOnVJgzN0Iwrc7YY56Yp8KQ7kA== +jest-snapshot@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" + integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -14458,23 +14482,23 @@ jest-snapshot@^29.0.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/expect-utils" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.0" + expect "^29.0.3" graceful-fs "^4.2.9" - jest-diff "^29.0.0" + jest-diff "^29.0.3" jest-get-type "^29.0.0" - jest-haste-map "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-util "^29.0.0" + jest-haste-map "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" natural-compare "^1.4.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" semver "^7.3.5" jest-styled-components@7.0.2: @@ -14496,18 +14520,6 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - jest-util@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.0.tgz#54dfddf25fb011a2ff93fe8d11738dee8ff7f663" @@ -14520,43 +14532,42 @@ jest-util@^29.0.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.0.tgz#714f9f013e7dc4cb3a20b098170fbed3fbad4252" - integrity sha512-UhgDKmahJnv5s5MK6a8kQ397YNS9euvL7gWTvUf7y0OO7vZeafUItlq3tguvfFVazQJ+kBGUm/XCJes7V61l8g== +jest-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" + integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" + integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== + dependencies: + "@jest/types" "^29.0.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.0" + pretty-format "^29.0.3" -jest-watch-typeahead@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.5.tgz#b809f79eed106b6cf832e59a5fe54481f2d1918e" - integrity sha512-GIbV6h37/isatMDtqZlA8Q5vC6T3w+5qdvtF+3LIkPc58zEWzbKmTHvlUIp3wvBm400RzrQWcVPcsAJqKWu7XQ== +jest-watch-typeahead@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-2.2.0.tgz#b8e4cf57c25ec85b98058f8fa413bd841344de4a" + integrity sha512-cM3Qbw9P+jUYxqUSt53KdDDFRVBG96XA6bsIAG0zffl/gUkNK/kjWcCX7R559BgPWs2/UDrsJHPIw2f6b0qZCw== dependencies: - ansi-escapes "^4.3.1" + ansi-escapes "^5.0.0" chalk "^4.0.0" - jest-regex-util "^27.0.0" - jest-watcher "^27.0.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - -jest-watcher@^27.0.0: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" + jest-regex-util "^29.0.0" + jest-watcher "^29.0.0" + slash "^4.0.0" + string-length "^5.0.1" + strip-ansi "^7.0.1" jest-watcher@^29.0.0: version "29.0.0" @@ -14572,6 +14583,20 @@ jest-watcher@^29.0.0: jest-util "^29.0.0" string-length "^4.0.1" +jest-watcher@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" + integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== + dependencies: + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^29.0.3" + string-length "^4.0.1" + jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -14590,24 +14615,24 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.0.tgz#a1c7b67b2d9ce057383999b32d8b71794efcd0b9" - integrity sha512-2t9Panx3F9N1wAvRuZT7xLEptRFc1C5G90DOHniIGz1JIgF9uhd5u8jNBsc7wN63lhnaiLeVLnNx21wT7OVFEQ== +jest-worker@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" + integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.0.tgz#0614bce40ffd3a1a19a30c8a2c66d19103712001" - integrity sha512-9uz4Tclskb8WrfRXqu66FsFCFoyYctwWXpruKwnD95FZqkyoEAA1oGH53HUn7nQx7uEgZTKdNl/Yo6DqqU+XMg== +jest@29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" + integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== dependencies: - "@jest/core" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/core" "^29.0.3" + "@jest/types" "^29.0.3" import-local "^3.0.2" - jest-cli "^29.0.0" + jest-cli "^29.0.3" jmespath@0.16.0: version "0.16.0" @@ -18373,7 +18398,7 @@ pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.2, pretty-format@^27.5.1: +pretty-format@^27.0.2: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -18401,6 +18426,15 @@ pretty-format@^29.0.0: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" + integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -20291,6 +20325,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -20767,6 +20806,14 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-length@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" + integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== + dependencies: + char-regex "^2.0.0" + strip-ansi "^7.0.1" + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -20884,6 +20931,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -21737,7 +21791,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.2.2: +type-fest@^1.0.2, type-fest@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== From e142ac65b659b7420d5bc85bb43c41c55502cd25 Mon Sep 17 00:00:00 2001 From: Gustav Hansen Date: Thu, 15 Sep 2022 16:50:13 +0200 Subject: [PATCH 51/58] CTB: Improve test names for singular/ plural fields --- .../FormModal/contentType/createContentTypeSchema.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js b/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js index b31c169cdc..725bbc5199 100644 --- a/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js +++ b/packages/core/content-type-builder/admin/src/components/FormModal/contentType/createContentTypeSchema.js @@ -63,7 +63,7 @@ const createContentTypeSchema = ( }, }) .test({ - name: 'nameNotAllowed', + name: 'pluralNameNotAllowed', message: getTrad('error.contentTypeName.reserved-name'), test(value) { if (!value) { @@ -99,7 +99,7 @@ const createContentTypeSchema = ( }, }) .test({ - name: 'nameNotAllowed', + name: 'singularNameNotAllowed', message: getTrad('error.contentTypeName.reserved-name'), test(value) { if (!value) { From de2ed2bfa4ba5384193979512fd952d1bcb6ee70 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Fri, 9 Sep 2022 17:46:43 +0200 Subject: [PATCH 52/58] Wip --- .../address/content-types/address/lifecycles.js | 9 +++++++++ .../getstarted/src/api/address/routes/address.js | 2 +- packages/core/strapi/lib/index.js | 1 + packages/core/strapi/lib/services/auth/index.js | 4 ++++ .../core/strapi/lib/services/request-context.js | 5 +++++ packages/core/strapi/lib/services/server/index.js | 15 +++++++++++++++ 6 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 examples/getstarted/src/api/address/content-types/address/lifecycles.js create mode 100644 packages/core/strapi/lib/services/request-context.js diff --git a/examples/getstarted/src/api/address/content-types/address/lifecycles.js b/examples/getstarted/src/api/address/content-types/address/lifecycles.js new file mode 100644 index 0000000000..85b67425c5 --- /dev/null +++ b/examples/getstarted/src/api/address/content-types/address/lifecycles.js @@ -0,0 +1,9 @@ +const { requestContext } = require('@strapi/strapi'); + +module.exports = { + beforeCreate() { + const store = requestContext.getStore(); + + console.log('User info in service: ', store.auth); + }, +}; diff --git a/examples/getstarted/src/api/address/routes/address.js b/examples/getstarted/src/api/address/routes/address.js index c9da1c88db..549918452d 100755 --- a/examples/getstarted/src/api/address/routes/address.js +++ b/examples/getstarted/src/api/address/routes/address.js @@ -5,7 +5,7 @@ const { createCoreRouter } = require('@strapi/strapi').factories; module.exports = createCoreRouter('api::address.address', { config: { find: { - auth: false, + // auth: false, }, }, only: ['find', 'findOne'], diff --git a/packages/core/strapi/lib/index.js b/packages/core/strapi/lib/index.js index 0c7a6afbeb..9e8f257169 100644 --- a/packages/core/strapi/lib/index.js +++ b/packages/core/strapi/lib/index.js @@ -3,6 +3,7 @@ const Strapi = require('./Strapi'); Strapi.factories = require('./factories'); +Strapi.requestContext = require('./services/request-context'); Strapi.compile = require('./compile'); module.exports = Strapi; diff --git a/packages/core/strapi/lib/services/auth/index.js b/packages/core/strapi/lib/services/auth/index.js index c42f45efd4..eab4c078e8 100644 --- a/packages/core/strapi/lib/services/auth/index.js +++ b/packages/core/strapi/lib/services/auth/index.js @@ -4,6 +4,7 @@ const { strict: assert } = require('assert'); const { has, prop } = require('lodash/fp'); const { UnauthorizedError } = require('@strapi/utils').errors; +const requestCtx = require('../request-context'); const INVALID_STRATEGY_MSG = 'Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}'; @@ -60,6 +61,9 @@ const createAuthentication = () => { credentials, }; + const store = requestCtx.getStore(); + store.auth = ctx.state.auth; + return next(); } } diff --git a/packages/core/strapi/lib/services/request-context.js b/packages/core/strapi/lib/services/request-context.js new file mode 100644 index 0000000000..d58c626fcd --- /dev/null +++ b/packages/core/strapi/lib/services/request-context.js @@ -0,0 +1,5 @@ +'use strict'; + +const { AsyncLocalStorage } = require('async_hooks'); + +module.exports = new AsyncLocalStorage(); diff --git a/packages/core/strapi/lib/services/server/index.js b/packages/core/strapi/lib/services/server/index.js index 633f6da812..a84e16e054 100644 --- a/packages/core/strapi/lib/services/server/index.js +++ b/packages/core/strapi/lib/services/server/index.js @@ -9,6 +9,7 @@ const { createContentAPI } = require('./content-api'); const registerAllRoutes = require('./register-routes'); const registerApplicationMiddlewares = require('./register-middlewares'); const createKoaApp = require('./koa'); +const requestCtx = require('../request-context'); const healthCheck = async (ctx) => { ctx.set('strapi', 'You are so French!'); @@ -33,6 +34,20 @@ const createServer = (strapi) => { keys: strapi.config.get('server.app.keys'), }); + app.use(async (ctx, next) => { + const store = { + foo: 'bar', + }; + + // TODO: handle errors + await new Promise((res) => { + requestCtx.run(store, async () => { + await next(); + res(); + }); + }); + }); + const router = new Router(); const routeManager = createRouteManager(strapi); From 621259f5b06cacac8ae9b9a5d6a625f42573ebf2 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Fri, 9 Sep 2022 19:45:07 +0200 Subject: [PATCH 53/58] Proof of Concept for request context --- .../address/content-types/address/lifecycles.js | 6 +++--- packages/core/strapi/lib/services/auth/index.js | 4 ---- .../core/strapi/lib/services/request-context.js | 14 +++++++++++++- packages/core/strapi/lib/services/server/index.js | 14 +------------- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/examples/getstarted/src/api/address/content-types/address/lifecycles.js b/examples/getstarted/src/api/address/content-types/address/lifecycles.js index 85b67425c5..829ed0693c 100644 --- a/examples/getstarted/src/api/address/content-types/address/lifecycles.js +++ b/examples/getstarted/src/api/address/content-types/address/lifecycles.js @@ -1,9 +1,9 @@ const { requestContext } = require('@strapi/strapi'); module.exports = { - beforeCreate() { - const store = requestContext.getStore(); + beforeUpdate() { + const ctx = requestContext.get(); - console.log('User info in service: ', store.auth); + console.log('User info in service: ', ctx.state.user); }, }; diff --git a/packages/core/strapi/lib/services/auth/index.js b/packages/core/strapi/lib/services/auth/index.js index eab4c078e8..c42f45efd4 100644 --- a/packages/core/strapi/lib/services/auth/index.js +++ b/packages/core/strapi/lib/services/auth/index.js @@ -4,7 +4,6 @@ const { strict: assert } = require('assert'); const { has, prop } = require('lodash/fp'); const { UnauthorizedError } = require('@strapi/utils').errors; -const requestCtx = require('../request-context'); const INVALID_STRATEGY_MSG = 'Invalid auth strategy. Expecting an object with properties {name: string, authenticate: function, verify: function}'; @@ -61,9 +60,6 @@ const createAuthentication = () => { credentials, }; - const store = requestCtx.getStore(); - store.auth = ctx.state.auth; - return next(); } } diff --git a/packages/core/strapi/lib/services/request-context.js b/packages/core/strapi/lib/services/request-context.js index d58c626fcd..c4be3882a2 100644 --- a/packages/core/strapi/lib/services/request-context.js +++ b/packages/core/strapi/lib/services/request-context.js @@ -2,4 +2,16 @@ const { AsyncLocalStorage } = require('async_hooks'); -module.exports = new AsyncLocalStorage(); +const storage = new AsyncLocalStorage(); + +const requestCtx = { + async run(store, cb) { + return storage.run(store, cb); + }, + + get() { + return storage.getStore(); + }, +}; + +module.exports = requestCtx; diff --git a/packages/core/strapi/lib/services/server/index.js b/packages/core/strapi/lib/services/server/index.js index a84e16e054..7ea9eb6ed1 100644 --- a/packages/core/strapi/lib/services/server/index.js +++ b/packages/core/strapi/lib/services/server/index.js @@ -34,19 +34,7 @@ const createServer = (strapi) => { keys: strapi.config.get('server.app.keys'), }); - app.use(async (ctx, next) => { - const store = { - foo: 'bar', - }; - - // TODO: handle errors - await new Promise((res) => { - requestCtx.run(store, async () => { - await next(); - res(); - }); - }); - }); + app.use((ctx, next) => requestCtx.run(ctx, () => next())); const router = new Router(); From ac1294410e43284ea96e3c90952ba99c08e8a147 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Mon, 12 Sep 2022 20:51:28 +0200 Subject: [PATCH 54/58] Expose with the strpai global --- .../src/api/address/content-types/address/lifecycles.js | 4 +--- packages/core/strapi/lib/Strapi.js | 2 ++ packages/core/strapi/lib/index.js | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/getstarted/src/api/address/content-types/address/lifecycles.js b/examples/getstarted/src/api/address/content-types/address/lifecycles.js index 829ed0693c..0b8555b065 100644 --- a/examples/getstarted/src/api/address/content-types/address/lifecycles.js +++ b/examples/getstarted/src/api/address/content-types/address/lifecycles.js @@ -1,8 +1,6 @@ -const { requestContext } = require('@strapi/strapi'); - module.exports = { beforeUpdate() { - const ctx = requestContext.get(); + const ctx = strapi.requestContext.get(); console.log('User info in service: ', ctx.state.user); }, diff --git a/packages/core/strapi/lib/Strapi.js b/packages/core/strapi/lib/Strapi.js index 6e375c2827..450a0927aa 100644 --- a/packages/core/strapi/lib/Strapi.js +++ b/packages/core/strapi/lib/Strapi.js @@ -21,6 +21,7 @@ const createEntityService = require('./services/entity-service'); const createCronService = require('./services/cron'); const entityValidator = require('./services/entity-validator'); const createTelemetry = require('./services/metrics'); +const requestContext = require('./services/request-context'); const createAuth = require('./services/auth'); const createUpdateNotifier = require('./utils/update-notifier'); const createStartupLogger = require('./utils/startup-logger'); @@ -108,6 +109,7 @@ class Strapi { this.log = createLogger(this.config.get('logger', {})); this.cron = createCronService(); this.telemetry = createTelemetry(this); + this.requestContext = requestContext; createUpdateNotifier(this).notify(); } diff --git a/packages/core/strapi/lib/index.js b/packages/core/strapi/lib/index.js index 9e8f257169..0c7a6afbeb 100644 --- a/packages/core/strapi/lib/index.js +++ b/packages/core/strapi/lib/index.js @@ -3,7 +3,6 @@ const Strapi = require('./Strapi'); Strapi.factories = require('./factories'); -Strapi.requestContext = require('./services/request-context'); Strapi.compile = require('./compile'); module.exports = Strapi; From 44c0d004bf96d6d5008c994a7f78d38e6e73eb14 Mon Sep 17 00:00:00 2001 From: Adedoyin Akande Date: Fri, 16 Sep 2022 20:17:25 +0100 Subject: [PATCH 55/58] update locales to match snap --- .../i18n/server/constants/iso-locales.json | 76 ++++++++++++++++--- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/packages/plugins/i18n/server/constants/iso-locales.json b/packages/plugins/i18n/server/constants/iso-locales.json index ba60ad309b..f045080809 100644 --- a/packages/plugins/i18n/server/constants/iso-locales.json +++ b/packages/plugins/i18n/server/constants/iso-locales.json @@ -459,6 +459,10 @@ "code":"en-AI", "name":"English (Anguilla) (en-AI)" }, + { + "code":"en-AS", + "name":"English (American Samoa) (en-AS)" + }, { "code":"en-AU", "name":"English (Australia) (en-AU)" @@ -587,6 +591,22 @@ "code":"en-GG", "name":"English (Guernsey) (en-GG)" }, + { + "code":"en-CA", + "name":"English (Canada) (en-CA)" + }, + { + "code":"en-EG", + "name":"English (Egypt) (en-EG)" + }, + { + "code":"en-EU", + "name":"English (Europe) (en-EU)" + }, + { + "code":"en-GU", + "name":"English (Guam) (en-GU)" + }, { "code":"en-GY", "name":"English (Guyana) (en-GY)" @@ -647,6 +667,10 @@ "code":"en-MY", "name":"English (Malaysia) (en-MY)" }, + { + "code":"en-JM", + "name":"English (Jamaica) (en-JM)" + }, { "code":"en-MT", "name":"English (Malta) (en-MT)" @@ -695,6 +719,14 @@ "code":"en-NF", "name":"English (Norfolk Island) (en-NF)" }, + { + "code":"en-NA", + "name":"English (Namibia) (en-NA)" + }, + { + "code":"en-NZ", + "name":"English (New Zealand) (en-NZ)" + }, { "code":"en-MP", "name":"English (Northern Mariana Islands) (en-MP)" @@ -823,6 +855,26 @@ "code":"en-TV", "name":"English (Tuvalu) (en-TV)" }, + { + "code":"en-PH", + "name":"English (Philippines) (en-PH)" + }, + { + "code":"en-SA", + "name":"English (Saudi Arabia) (en-SA)" + }, + { + "code":"en-SG", + "name":"English (Singapore) (en-SG)" + }, + { + "code":"en-ZA", + "name":"English (South Africa) (en-ZA)" + }, + { + "code":"en-TT", + "name":"English (Trinidad and Tobago) (en-TT)" + }, { "code":"en-AE", "name":"English (U.A.E.) (en-AE)" @@ -1604,20 +1656,20 @@ "name":"Nepali (Nepal) (ne-NP)" }, { - "code": "se", - "name": "Northern Sami" + "code":"se", + "name":"Northern Sami" }, { - "code": "se-FI", - "name": "Northern Sami (Finland)" + "code":"se-FI", + "name":"Northern Sami (Finland)" }, { - "code": "se-NO", - "name": "Northern Sami (Norway)" + "code":"se-NO", + "name":"Northern Sami (Norway)" }, { - "code": "se-SE", - "name": "Northern Sami (Sweden)" + "code":"se-SE", + "name":"Northern Sami (Sweden)" }, { "code":"nd", @@ -2244,12 +2296,12 @@ "name":"Urdu (Pakistan) (ur-PK)" }, { - "code": "ug", - "name": "Uyghur" + "code":"ug", + "name":"Uyghur" }, { - "code": "ug-CN", - "name": "Uyghur (China)" + "code":"ug-CN", + "name":"Uyghur (China)" }, { "code":"uz", From c05035a0df08d50fe0e85187763436029514341f Mon Sep 17 00:00:00 2001 From: Julie Plantey Date: Mon, 19 Sep 2022 15:57:55 +0200 Subject: [PATCH 56/58] fixed guided tour visible on production mode --- .../admin/src/components/AuthenticatedApp/index.js | 4 ++-- .../AuthenticatedApp/tests/index.test.js | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/core/admin/admin/src/components/AuthenticatedApp/index.js b/packages/core/admin/admin/src/components/AuthenticatedApp/index.js index 143260812c..efddc5765f 100644 --- a/packages/core/admin/admin/src/components/AuthenticatedApp/index.js +++ b/packages/core/admin/admin/src/components/AuthenticatedApp/index.js @@ -65,11 +65,11 @@ const AuthenticatedApp = () => { if (userRoles) { const isUserSuperAdmin = userRoles.find(({ code }) => code === 'strapi-super-admin'); - if (isUserSuperAdmin) { + if (isUserSuperAdmin && appInfos?.autoReload) { setGuidedTourVisibilityRef.current(true); } } - }, [userRoles]); + }, [userRoles, appInfos]); // We don't need to wait for the release query to be fetched before rendering the plugins // however, we need the appInfos and the permissions diff --git a/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js b/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js index 7f185a7207..ac497821f8 100644 --- a/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js +++ b/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js @@ -175,8 +175,20 @@ describe('Admin | components | AuthenticatedApp', () => { await waitFor(() => expect(setGuidedTourVisibility).not.toHaveBeenCalled()); }); - it('should call setGuidedTourVisibility when user is super admin', async () => { + it('should not setGuidedTourVisibility when user is a super admin and autoReload is false ', async () => { fetchUserRoles.mockImplementationOnce(() => [{ code: 'strapi-super-admin' }]); + fetchAppInfo.mockImplementationOnce(() => ({ autoReload: false })); + const setGuidedTourVisibility = jest.fn(); + useGuidedTour.mockImplementation(() => ({ setGuidedTourVisibility })); + + render(); + + await waitFor(() => expect(setGuidedTourVisibility).not.toHaveBeenCalled()); + }); + + it('should call setGuidedTourVisibility when user is super admin and autoReload is true', async () => { + fetchUserRoles.mockImplementationOnce(() => [{ code: 'strapi-super-admin' }]); + fetchAppInfo.mockImplementationOnce(() => ({ autoReload: true })); const setGuidedTourVisibility = jest.fn(); useGuidedTour.mockImplementation(() => ({ setGuidedTourVisibility })); render(); From c3f17f897f7ad0585c1d081851284636d6530b43 Mon Sep 17 00:00:00 2001 From: Julie Plantey Date: Mon, 19 Sep 2022 16:15:33 +0200 Subject: [PATCH 57/58] added en-PA locale --- packages/plugins/i18n/server/constants/iso-locales.json | 4 ++++ .../services/__tests__/__snapshots__/iso-locales.test.js.snap | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/plugins/i18n/server/constants/iso-locales.json b/packages/plugins/i18n/server/constants/iso-locales.json index b071ba61a0..086e51d5dc 100644 --- a/packages/plugins/i18n/server/constants/iso-locales.json +++ b/packages/plugins/i18n/server/constants/iso-locales.json @@ -535,6 +535,10 @@ "code":"en-MP", "name":"English (Northern Mariana Islands) (en-MP)" }, + { + "code":"en-PA", + "name":"English (Panama) (en-PA)" + }, { "code":"en-PK", "name":"English (Pakistan) (en-PK)" diff --git a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap index 7e4f08c944..b92c2b5a26 100644 --- a/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap +++ b/packages/plugins/i18n/server/services/__tests__/__snapshots__/iso-locales.test.js.snap @@ -538,6 +538,10 @@ exports[`ISO locales getIsoLocales 1`] = ` "code": "en-MP", "name": "English (Northern Mariana Islands) (en-MP)", }, + { + "code": "en-PA", + "name": "English (Panama) (en-PA)", + }, { "code": "en-PK", "name": "English (Pakistan) (en-PK)", From c0dc795586e129fc105fa590762455bf996bf7fc Mon Sep 17 00:00:00 2001 From: Julie Plantey Date: Tue, 20 Sep 2022 17:18:24 +0200 Subject: [PATCH 58/58] updated DS version and snapshots --- .../AuthenticatedApp/tests/index.test.js | 1 + .../pages/App/tests/index.test.js | 1 + .../pages/EditView/Header/tests/index.test.js | 2 +- .../components/SettingsNav/tests/index.test.js | 2 +- .../tests/__snapshots__/index.test.js.snap | 8 ++++---- .../tests/__snapshots__/index.test.js.snap | 5 +++-- .../tests/__snapshots__/index.test.js.snap | 2 +- .../pages/Users/ListPage/tests/index.test.js | 1 + .../src/pages/UseCasePage/tests/index.test.js | 2 +- .../tests/__snapshots__/index.test.js.snap | 5 +++-- .../pages/Roles/ListPage/tests/index.test.js | 1 + packages/core/admin/package.json | 4 ++-- .../tests/__snapshots__/index.test.js.snap | 4 ++-- .../PaginationURLQuery/tests/index.test.js | 2 +- packages/core/helper-plugin/package.json | 4 ++-- .../tests/__snapshots__/index.test.js.snap | 2 +- .../__snapshots__/BulkMoveDialog.test.js.snap | 4 ++-- .../__snapshots__/EditAssetDialog.test.js.snap | 6 +++--- .../tests/__snapshots__/index.test.js.snap | 6 +++--- .../EditFolderDialog.test.js.snap | 4 ++-- .../__snapshots__/SelectTree.test.js.snap | 4 ++-- .../tests/FromComputerForm.test.js | 4 ++-- .../PendingAssetStep.test.js.snap | 4 ++-- .../UploadAssetDialog.test.js.snap | 8 ++++---- .../src/pages/Providers/tests/index.test.js | 1 + .../pages/Roles/CreatePage/tests/index.test.js | 4 ++-- .../pages/Roles/EditPage/tests/index.test.js | 4 ++-- .../pages/Roles/ListPage/tests/index.test.js | 1 + yarn.lock | 18 ++++++++++-------- 29 files changed, 62 insertions(+), 52 deletions(-) diff --git a/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js b/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js index ac497821f8..b966821a2c 100644 --- a/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js +++ b/packages/core/admin/admin/src/components/AuthenticatedApp/tests/index.test.js @@ -130,6 +130,7 @@ describe('Admin | components | AuthenticatedApp', () => { .c3 { -webkit-animation: gzYjWD 1s infinite linear; animation: gzYjWD 1s infinite linear; + will-change: transform; } .c1 { diff --git a/packages/core/admin/admin/src/content-manager/pages/App/tests/index.test.js b/packages/core/admin/admin/src/content-manager/pages/App/tests/index.test.js index d364ab2129..4423695662 100644 --- a/packages/core/admin/admin/src/content-manager/pages/App/tests/index.test.js +++ b/packages/core/admin/admin/src/content-manager/pages/App/tests/index.test.js @@ -151,6 +151,7 @@ describe('Content manager | App | main', () => { .c35 { -webkit-animation: gzYjWD 1s infinite linear; animation: gzYjWD 1s infinite linear; + will-change: transform; } .c33 { diff --git a/packages/core/admin/admin/src/content-manager/pages/EditView/Header/tests/index.test.js b/packages/core/admin/admin/src/content-manager/pages/EditView/Header/tests/index.test.js index aab5569696..741cb9b9bd 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditView/Header/tests/index.test.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditView/Header/tests/index.test.js @@ -125,7 +125,7 @@ describe('CONTENT MANAGER | EditView | Header', () => { border: 1px solid #4945ff; } - .c12 .sc-kBzgEd { + .c12 .sc-gJbFto { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; diff --git a/packages/core/admin/admin/src/pages/SettingsPage/components/SettingsNav/tests/index.test.js b/packages/core/admin/admin/src/pages/SettingsPage/components/SettingsNav/tests/index.test.js index 7481467ace..ff08add494 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/components/SettingsNav/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/components/SettingsNav/tests/index.test.js @@ -417,7 +417,7 @@ describe('SettingsPage || components || SettingsNav', () => {
renders and matches the snapshot 1`] = ` border: 1px solid #4945ff; } -.c13 .sc-kBzgEd { +.c13 .sc-gJbFto { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -172,7 +172,7 @@ exports[` renders and matches the snapshot 1`] = ` background: #f0f0ff; } -.c25 .sc-kBzgEd { +.c25 .sc-gJbFto { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -293,6 +293,7 @@ exports[` renders and matches the snapshot 1`] = ` .c46 { -webkit-animation: gzYjWD 1s infinite linear; animation: gzYjWD 1s infinite linear; + will-change: transform; } .c10 { diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/tests/__snapshots__/index.test.js.snap b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/tests/__snapshots__/index.test.js.snap index cfa97e4698..55cc3330b5 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/tests/__snapshots__/index.test.js.snap +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/PaginationFooter/tests/__snapshots__/index.test.js.snap @@ -466,7 +466,7 @@ exports[`DynamicTable renders and matches the snapshot 1`] = `