Merge branch 'main' into feature/relations-main-view

This commit is contained in:
Pierre Noël 2022-09-22 17:46:04 +02:00
commit 8d36a07fc4
86 changed files with 1396 additions and 554 deletions

View File

@ -1,6 +1,6 @@
{
"name": "check-pr-status",
"version": "4.3.8",
"version": "4.3.9",
"main": "dist/index.js",
"license": "MIT",
"private": true,

View File

@ -1,7 +1,7 @@
{
"name": "getstarted",
"private": true,
"version": "4.3.8",
"version": "4.3.9",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -12,15 +12,15 @@
"strapi": "strapi"
},
"dependencies": {
"@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",
"@strapi/plugin-documentation": "4.3.9",
"@strapi/plugin-graphql": "4.3.9",
"@strapi/plugin-i18n": "4.3.9",
"@strapi/plugin-sentry": "4.3.9",
"@strapi/plugin-users-permissions": "4.3.9",
"@strapi/provider-email-mailgun": "4.3.9",
"@strapi/provider-upload-aws-s3": "4.3.9",
"@strapi/provider-upload-cloudinary": "4.3.9",
"@strapi/strapi": "4.3.9",
"@vscode/sqlite3": "5.0.8",
"better-sqlite3": "7.4.6",
"lodash": "4.17.21",

View File

@ -0,0 +1,7 @@
module.exports = {
beforeUpdate() {
const ctx = strapi.requestContext.get();
console.log('User info in service: ', ctx.state.user);
},
};

View File

@ -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'],

View File

@ -1,7 +1,7 @@
{
"name": "kitchensink-ts",
"private": true,
"version": "4.3.8",
"version": "4.3.9",
"description": "A Strapi application",
"scripts": {
"develop": "strapi develop",
@ -10,9 +10,9 @@
"strapi": "strapi"
},
"dependencies": {
"@strapi/plugin-i18n": "4.3.8",
"@strapi/plugin-users-permissions": "4.3.8",
"@strapi/strapi": "4.3.8",
"@strapi/plugin-i18n": "4.3.9",
"@strapi/plugin-users-permissions": "4.3.9",
"@strapi/strapi": "4.3.9",
"better-sqlite3": "7.4.6"
},
"author": {

View File

@ -1,7 +1,7 @@
{
"name": "kitchensink",
"private": true,
"version": "4.3.8",
"version": "4.3.9",
"description": "A Strapi application.",
"scripts": {
"develop": "strapi develop",
@ -12,10 +12,10 @@
"strapi": "strapi"
},
"dependencies": {
"@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",
"@strapi/provider-email-mailgun": "4.3.9",
"@strapi/provider-upload-aws-s3": "4.3.9",
"@strapi/provider-upload-cloudinary": "4.3.9",
"@strapi/strapi": "4.3.9",
"lodash": "4.17.21",
"mysql": "2.18.1",
"passport-google-oauth2": "0.2.0",

View File

@ -1,5 +1,5 @@
{
"version": "4.3.8",
"version": "4.3.9",
"packages": [
"packages/*",
"examples/*"

View File

@ -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",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/admin-test-utils",
"version": "4.3.8",
"version": "4.3.9",
"private": true,
"description": "Test utilities for the Strapi administration panel",
"license": "MIT",

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-app",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/generate-new": "4.3.9",
"commander": "6.1.0",
"inquirer": "8.2.4"
},

View File

@ -1,6 +1,6 @@
{
"name": "create-strapi-starter",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/generate-new": "4.3.9",
"chalk": "4.1.1",
"ci-info": "3.3.2",
"commander": "7.1.0",

View File

@ -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 }) {
@ -457,6 +458,7 @@ class StrapiApp {
href: this.configurations.head.favicon,
},
]}
htmlAttributes={{ lang: localStorage.getItem(localStorageKey) || 'en' }}
/>
<BrowserRouter basename={basename}>
<App store={store} />

View File

@ -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

View File

@ -130,6 +130,7 @@ describe('Admin | components | AuthenticatedApp', () => {
.c3 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c1 {
@ -175,8 +176,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(<App />);
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(<App />);

View File

@ -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) => {

View File

@ -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 (
<ThemeToggleContext.Provider value={{ currentTheme, onChangeTheme: handleChangeTheme, themes }}>
{children}
</ThemeToggleContext.Provider>
const handleChangeTheme = useCallback(
(nextTheme) => {
setCurrentTheme(nextTheme);
localStorage.setItem(THEME_KEY, nextTheme);
},
[setCurrentTheme]
);
const themeValues = useMemo(() => {
return {
currentTheme,
onChangeTheme: handleChangeTheme,
themes,
};
}, [currentTheme, handleChangeTheme, themes]);
return <ThemeToggleContext.Provider value={themeValues}>{children}</ThemeToggleContext.Provider>;
};
ThemeToggleProvider.propTypes = {

View File

@ -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 });

View File

@ -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 {

View File

@ -123,7 +123,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;

View File

@ -417,7 +417,7 @@ describe('SettingsPage || components || SettingsNav', () => {
</div>
</div>
<div
class="c16 sc-iuqRDJ c25"
class="c16 sc-eBTqsU c25"
>
<svg
class="c26"

View File

@ -853,7 +853,7 @@ exports[`ApplicationsInfosPage || LogoInput from computer should render upload m
border: 1px solid #4945ff;
}
.c29 .sc-iRFsWr {
.c29 .sc-eZhRLC {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -923,7 +923,7 @@ exports[`ApplicationsInfosPage || LogoInput from computer should render upload m
background: #ffffff;
}
.c37 .sc-iRFsWr {
.c37 .sc-eZhRLC {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -1980,7 +1980,7 @@ exports[`ApplicationsInfosPage || LogoInput from url should render upload modal
border: 1px solid #4945ff;
}
.c33 .sc-iRFsWr {
.c33 .sc-eZhRLC {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -2050,7 +2050,7 @@ exports[`ApplicationsInfosPage || LogoInput from url should render upload modal
background: #ffffff;
}
.c30 .sc-iRFsWr {
.c30 .sc-eZhRLC {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -102,7 +102,7 @@ exports[`<EditPage /> 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[`<EditPage /> 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[`<EditPage /> renders and matches the snapshot 1`] = `
.c46 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c10 {

View File

@ -466,7 +466,7 @@ exports[`DynamicTable renders and matches the snapshot 1`] = `
</div>
<nav
aria-label="pagination"
class="sc-icMgfS"
class="sc-cKVNtL"
>
<ul
class="c17 c18"

View File

@ -581,6 +581,7 @@ describe('ADMIN | Pages | USERS | ListPage', () => {
.c44 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c62 {

View File

@ -171,7 +171,7 @@ describe('Admin | UseCasePage', () => {
width: 100%;
}
.c35 .sc-ezHhwS {
.c35 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -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": "为空",

View File

@ -97,7 +97,7 @@ exports[`<CreatePage /> renders and matches the snapshot 1`] = `
background: #f0f0ff;
}
.c13 .sc-kBzgEd {
.c13 .sc-gJbFto {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -177,7 +177,7 @@ exports[`<CreatePage /> renders and matches the snapshot 1`] = `
border: 1px solid #4945ff;
}
.c16 .sc-kBzgEd {
.c16 .sc-gJbFto {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -286,6 +286,7 @@ exports[`<CreatePage /> renders and matches the snapshot 1`] = `
.c46 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c10 {

View File

@ -93,6 +93,7 @@ describe('<ListPage />', () => {
.c4 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c2 {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/admin",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/design-system": "1.2.2",
"@strapi/helper-plugin": "4.3.8",
"@strapi/icons": "1.2.2",
"@strapi/typescript-utils": "4.3.8",
"@strapi/utils": "4.3.8",
"@strapi/babel-plugin-switch-ee-ce": "4.3.9",
"@strapi/design-system": "1.2.3",
"@strapi/helper-plugin": "4.3.9",
"@strapi/icons": "1.2.3",
"@strapi/typescript-utils": "4.3.9",
"@strapi/utils": "4.3.9",
"axios": "0.27.2",
"babel-loader": "8.2.5",
"babel-plugin-styled-components": "2.0.2",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-content-manager",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.9",
"lodash": "4.17.21"
},
"engines": {

View File

@ -62,6 +62,17 @@ const createContentTypeSchema = (
return context.parent.singularName !== value;
},
})
.test({
name: 'pluralNameNotAllowed',
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: 'singularNameNotAllowed',
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']),

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-content-type-builder",
"version": "4.3.8",
"version": "4.3.9",
"description": "Strapi plugin to create content type",
"repository": {
"type": "git",
@ -28,9 +28,9 @@
},
"dependencies": {
"@sindresorhus/slugify": "1.1.0",
"@strapi/generators": "4.3.8",
"@strapi/helper-plugin": "4.3.8",
"@strapi/utils": "4.3.8",
"@strapi/generators": "4.3.9",
"@strapi/helper-plugin": "4.3.9",
"@strapi/utils": "4.3.9",
"fs-extra": "10.0.0",
"lodash": "4.17.21",
"pluralize": "^8.0.0",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/database",
"version": "4.3.8",
"version": "4.3.9",
"description": "Strapi's database layer",
"homepage": "https://strapi.io",
"bugs": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-email",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.8",
"@strapi/provider-email-sendmail": "4.3.9",
"@strapi/utils": "4.3.9",
"lodash": "4.17.21"
},
"devDependencies": {
"@strapi/helper-plugin": "4.3.8",
"@strapi/helper-plugin": "4.3.9",
"@testing-library/react": "12.1.4"
},
"engines": {

View File

@ -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',
},
{

View File

@ -171,7 +171,7 @@ exports[`<PaginationURLQuery /> should display the dots correctly 1`] = `
<nav
aria-label="pagination"
class="sc-iseIHH"
class="sc-ezHhwS"
>
<ul
class="c0 c1"
@ -544,7 +544,7 @@ exports[`<PaginationURLQuery /> should work when the pageCount is inferior or eq
<nav
aria-label="pagination"
class="sc-iseIHH"
class="sc-ezHhwS"
>
<ul
class="c0 c1"

View File

@ -190,7 +190,7 @@ describe('<PaginationURLQuery />', () => {
<nav
aria-label="pagination"
class="sc-iseIHH"
class="sc-ezHhwS"
>
<ul
class="c0 c1"

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/helper-plugin",
"version": "4.3.8",
"version": "4.3.9",
"description": "Helper for Strapi plugins development",
"repository": {
"type": "git",
@ -77,8 +77,8 @@
"@storybook/builder-webpack5": "6.5.9",
"@storybook/manager-webpack5": "6.4.10",
"@storybook/react": "^6.5.10",
"@strapi/design-system": "1.2.2",
"@strapi/icons": "1.2.2",
"@strapi/design-system": "1.2.3",
"@strapi/icons": "1.2.3",
"@testing-library/react": "11.2.7",
"@testing-library/react-hooks": "3.7.0",
"babel-loader": "^8.2.5",

View File

@ -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();
}

View File

@ -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));
}

View File

@ -0,0 +1,17 @@
'use strict';
const { AsyncLocalStorage } = require('async_hooks');
const storage = new AsyncLocalStorage();
const requestCtx = {
async run(store, cb) {
return storage.run(store, cb);
},
get() {
return storage.getStore();
},
};
module.exports = requestCtx;

View File

@ -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,8 @@ const createServer = (strapi) => {
keys: strapi.config.get('server.app.keys'),
});
app.use((ctx, next) => requestCtx.run(ctx, () => next()));
const router = new Router();
const routeManager = createRouteManager(strapi);

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/strapi",
"version": "4.3.8",
"version": "4.3.9",
"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.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",
"@strapi/admin": "4.3.9",
"@strapi/database": "4.3.9",
"@strapi/generate-new": "4.3.9",
"@strapi/generators": "4.3.9",
"@strapi/logger": "4.3.9",
"@strapi/plugin-content-manager": "4.3.9",
"@strapi/plugin-content-type-builder": "4.3.9",
"@strapi/plugin-email": "4.3.9",
"@strapi/plugin-upload": "4.3.9",
"@strapi/typescript-utils": "4.3.9",
"@strapi/utils": "4.3.9",
"bcryptjs": "2.4.3",
"boxen": "5.1.2",
"chalk": "4.1.2",

View File

@ -1451,7 +1451,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div>
<nav
aria-label="pagination"
class="sc-fMfAsl"
class="sc-ezDxBL"
>
<ul
class="c17 c74"

View File

@ -94,7 +94,7 @@ exports[`BulkMoveDialog renders and matches the snapshot 1`] = `
background: #ffffff;
}
.c25 .sc-ezHhwS {
.c25 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -164,7 +164,7 @@ exports[`BulkMoveDialog renders and matches the snapshot 1`] = `
border: 1px solid #4945ff;
}
.c28 .sc-ezHhwS {
.c28 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -110,7 +110,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
background: #ffffff;
}
.c49 .sc-ezHhwS {
.c49 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -182,7 +182,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
background: #f0f0ff;
}
.c52 .sc-ezHhwS {
.c52 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -262,7 +262,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
border: 1px solid #4945ff;
}
.c53 .sc-ezHhwS {
.c53 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -110,7 +110,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
background: #ffffff;
}
.c49 .sc-ezHhwS {
.c49 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -182,7 +182,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
background: #f0f0ff;
}
.c52 .sc-ezHhwS {
.c52 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -262,7 +262,7 @@ exports[`<EditAssetDialog /> renders and matches the snapshot 1`] = `
border: 1px solid #4945ff;
}
.c53 .sc-ezHhwS {
.c53 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -94,7 +94,7 @@ exports[`EditFolderDialog renders and matches the snapshot 1`] = `
background: #ffffff;
}
.c32 .sc-ezHhwS {
.c32 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -164,7 +164,7 @@ exports[`EditFolderDialog renders and matches the snapshot 1`] = `
border: 1px solid #4945ff;
}
.c37 .sc-ezHhwS {
.c37 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -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',
},
{

View File

@ -146,7 +146,7 @@ exports[`SelectTree renders 1`] = `
class=" css-1hb7zxy-IndicatorsContainer"
>
<button
class="sc-eBTqsU sc-ksDcAU sc-bJcRwn elEUJG hjqBQK ddQtUR"
class="sc-iseIHH sc-jgaZKu sc-chKlql iQNAGU kJneHl kQZEGc"
type="button"
>
<svg
@ -168,7 +168,7 @@ exports[`SelectTree renders 1`] = `
</div>
</div>
<div
class="sc-cxpSdN hEuJJy"
class="sc-llYSUQ PCyKi"
>
<p
aria-live="polite"

View File

@ -145,7 +145,7 @@ describe('FromComputerForm', () => {
border: 1px solid #4945ff;
}
.c13 .sc-ezHhwS {
.c13 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -215,7 +215,7 @@ describe('FromComputerForm', () => {
background: #ffffff;
}
.c21 .sc-ezHhwS {
.c21 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -92,7 +92,7 @@ exports[`PendingAssetStep snapshots the component with valid cards 1`] = `
border: 1px solid #4945ff;
}
.c15 .sc-ezHhwS {
.c15 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -162,7 +162,7 @@ exports[`PendingAssetStep snapshots the component with valid cards 1`] = `
background: #ffffff;
}
.c57 .sc-ezHhwS {
.c57 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -130,7 +130,7 @@ exports[`UploadAssetDialog from computer snapshots the component 1`] = `
border: 1px solid #4945ff;
}
.c32 .sc-ezHhwS {
.c32 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -200,7 +200,7 @@ exports[`UploadAssetDialog from computer snapshots the component 1`] = `
background: #ffffff;
}
.c38 .sc-ezHhwS {
.c38 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -922,7 +922,7 @@ exports[`UploadAssetDialog from url snapshots the component 1`] = `
border: 1px solid #4945ff;
}
.c34 .sc-ezHhwS {
.c34 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
@ -992,7 +992,7 @@ exports[`UploadAssetDialog from url snapshots the component 1`] = `
background: #ffffff;
}
.c31 .sc-ezHhwS {
.c31 .sc-kBzgEd {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;

View File

@ -147,7 +147,7 @@
"deprecated": false,
"required": true,
"schema": {
"type": "string"
"type": "number"
}
}
],

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-upload",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/provider-upload-local": "4.3.8",
"@strapi/utils": "4.3.8",
"@strapi/helper-plugin": "4.3.9",
"@strapi/provider-upload-local": "4.3.9",
"@strapi/utils": "4.3.9",
"byte-size": "7.0.1",
"cropperjs": "1.5.12",
"date-fns": "2.29.2",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/utils",
"version": "4.3.8",
"version": "4.3.9",
"description": "Shared utilities for the Strapi packages",
"keywords": [
"strapi",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/generate-new",
"version": "4.3.8",
"version": "4.3.9",
"description": "Generate a new Strapi application.",
"keywords": [
"generate",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/generators",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.8",
"@strapi/typescript-utils": "4.3.9",
"@strapi/utils": "4.3.9",
"chalk": "4.1.2",
"fs-extra": "10.0.0",
"node-plop": "0.26.3",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-documentation",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.8",
"@strapi/helper-plugin": "4.3.9",
"@strapi/utils": "4.3.9",
"bcryptjs": "2.4.3",
"cheerio": "^1.0.0-rc.12",
"fs-extra": "10.0.0",

View File

@ -46,7 +46,7 @@ const getPathParams = (routePath) => {
description: '',
deprecated: false,
required: true,
schema: { type: 'string' },
schema: { type: 'number' },
};
});
};

View File

@ -102,7 +102,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
[`${pascalCase(uniqueName)}LocalizationResponse`]: {
type: 'object',
properties: {
id: { type: 'string' },
id: { type: 'number' },
...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 }),
@ -172,7 +172,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
[`${pascalCase(uniqueName)}ResponseDataObject`]: {
type: 'object',
properties: {
id: { type: 'string' },
id: { type: 'number' },
attributes: {
type: 'object',
properties: cleanSchemaAttributes(attributes, {
@ -187,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 }),

View File

@ -97,7 +97,7 @@ const cleanSchemaAttributes = (
const rawComponentSchema = {
type: 'object',
properties: {
...(isRequest ? {} : { id: { type: 'string' } }),
...(isRequest ? {} : { id: { type: 'number' } }),
...cleanSchemaAttributes(componentAttributes, {
typeMap,
isRequest,
@ -128,7 +128,7 @@ const cleanSchemaAttributes = (
const rawComponentSchema = {
type: 'object',
properties: {
...(isRequest ? {} : { id: { type: 'string' } }),
...(isRequest ? {} : { id: { type: 'number' } }),
__component: { type: 'string' },
...cleanSchemaAttributes(componentAttributes, {
typeMap,

View File

@ -15,7 +15,7 @@ module.exports = (isListOfEntities, attributes) => {
items: {
type: 'object',
properties: {
id: { type: 'string' },
id: { type: 'number' },
attributes: { type: 'object', properties: attributes },
},
},
@ -25,7 +25,7 @@ module.exports = (isListOfEntities, attributes) => {
return {
type: 'object',
properties: {
id: { type: 'string' },
id: { type: 'number' },
attributes: { type: 'object', properties: attributes },
},
};

View File

@ -81,4 +81,15 @@ module.exports = [
type: 'string',
},
},
{
name: 'filters',
in: 'query',
description: 'Filters to apply',
deprecated: false,
required: false,
schema: {
type: 'object',
},
style: 'deepObject',
},
];

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-graphql",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.9",
"apollo-server-core": "3.1.2",
"apollo-server-koa": "3.10.0",
"glob": "^7.1.7",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-i18n",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.9",
"lodash": "4.17.21"
},
"devDependencies": {

View File

@ -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,6 +455,10 @@
"code":"en",
"name":"English (en)"
},
{
"code":"en-AI",
"name":"English (Anguilla) (en-AI)"
},
{
"code":"en-AS",
"name":"English (American Samoa) (en-AS)"
@ -455,6 +467,10 @@
"code":"en-AU",
"name":"English (Australia) (en-AU)"
},
{
"code":"en-AT",
"name":"English (Austria) (en-AT)"
},
{
"code":"en-BB",
"name":"English (Barbados) (en-BB)"
@ -475,6 +491,106 @@
"code":"en-BW",
"name":"English (Botswana) (en-BW)"
},
{
"code":"en-IO",
"name":"English (British Indian Ocean Territory) (en-IO)"
},
{
"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-CA",
"name":"English (Canada) (en-CA)"
@ -507,6 +623,50 @@
"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-MO",
"name":"English (Macao 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-JM",
"name":"English (Jamaica) (en-JM)"
@ -523,6 +683,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-NA",
"name":"English (Namibia) (en-NA)"
@ -535,10 +731,134 @@
"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)"
},
{
"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":"svc",
"name":"Vincentian Creole English"
},
{
"code":"vic",
"name":"Virgin Islands Creole English"
},
{
"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-TV",
"name":"English (Tuvalu) (en-TV)"
},
{
"code":"en-PH",
"name":"English (Philippines) (en-PH)"
@ -575,6 +895,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 +907,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)"
@ -1135,6 +1467,10 @@
"code":"lv-LV",
"name":"Latvian (Latvia) (lv-LV)"
},
{
"code":"lir",
"name":"Liberian English"
},
{
"code":"ln",
"name":"Lingala (ln)"
@ -1324,20 +1660,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",
@ -1867,6 +2203,10 @@
"code":"twq-NE",
"name":"Tasawaq (Niger) (twq-NE)"
},
{
"code":"mi",
"name":"Te Reo Māori (mi)"
},
{
"code":"te",
"name":"Telugu (te)"
@ -1939,6 +2279,10 @@
"code":"tr-TR",
"name":"Turkish (Turkey) (tr-TR)"
},
{
"code":"tch",
"name":"Turks And Caicos Creole English"
},
{
"code":"uk",
"name":"Ukrainian (uk)"
@ -1960,12 +2304,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",

View File

@ -46,6 +46,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "am-ET",
"name": "Amharic (Ethiopia) (am-ET)",
},
{
"code": "aig",
"name": "Antigua and Barbuda Creole English",
},
{
"code": "ar",
"name": "Arabic (ar)",
@ -174,6 +178,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "ksf-CM",
"name": "Bafia (Cameroon) (ksf-CM)",
},
{
"code": "bah",
"name": "Bahamas Creole English",
},
{
"code": "bm",
"name": "Bambara (bm)",
@ -450,6 +458,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "en",
"name": "English (en)",
},
{
"code": "en-AI",
"name": "English (Anguilla) (en-AI)",
},
{
"code": "en-AS",
"name": "English (American Samoa) (en-AS)",
@ -458,6 +470,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "en-AU",
"name": "English (Australia) (en-AU)",
},
{
"code": "en-AT",
"name": "English (Austria) (en-AT)",
},
{
"code": "en-BB",
"name": "English (Barbados) (en-BB)",
@ -478,6 +494,106 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "en-BW",
"name": "English (Botswana) (en-BW)",
},
{
"code": "en-IO",
"name": "English (British Indian Ocean Territory) (en-IO)",
},
{
"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-CA",
"name": "English (Canada) (en-CA)",
@ -510,6 +626,50 @@ exports[`ISO locales getIsoLocales 1`] = `
"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-MO",
"name": "English (Macao 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-JM",
"name": "English (Jamaica) (en-JM)",
@ -526,6 +686,42 @@ exports[`ISO locales getIsoLocales 1`] = `
"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-NA",
"name": "English (Namibia) (en-NA)",
@ -538,10 +734,134 @@ 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)",
},
{
"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": "svc",
"name": "Vincentian Creole English",
},
{
"code": "vic",
"name": "Virgin Islands Creole English",
},
{
"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-TV",
"name": "English (Tuvalu) (en-TV)",
},
{
"code": "en-PH",
"name": "English (Philippines) (en-PH)",
@ -578,6 +898,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"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)",
@ -586,6 +910,14 @@ exports[`ISO locales getIsoLocales 1`] = `
"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)",
@ -1138,6 +1470,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "lv-LV",
"name": "Latvian (Latvia) (lv-LV)",
},
{
"code": "lir",
"name": "Liberian English",
},
{
"code": "ln",
"name": "Lingala (ln)",
@ -1870,6 +2206,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "twq-NE",
"name": "Tasawaq (Niger) (twq-NE)",
},
{
"code": "mi",
"name": "Te Reo Māori (mi)",
},
{
"code": "te",
"name": "Telugu (te)",
@ -1942,6 +2282,10 @@ exports[`ISO locales getIsoLocales 1`] = `
"code": "tr-TR",
"name": "Turkish (Turkey) (tr-TR)",
},
{
"code": "tch",
"name": "Turks And Caicos Creole English",
},
{
"code": "uk",
"name": "Ukrainian (uk)",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-sentry",
"version": "4.3.8",
"version": "4.3.9",
"description": "Send Strapi error events to Sentry",
"repository": {
"type": "git",

View File

@ -88,6 +88,7 @@ describe('Admin | containers | ProvidersPage', () => {
.c11 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c9 {

View File

@ -783,7 +783,7 @@ describe('Admin | containers | RoleCreatePage', () => {
border: 1px solid #4945ff;
}
.c44:hover:not([aria-disabled='true']) .sc-OVzLa {
.c44:hover:not([aria-disabled='true']) .sc-dTBbbW {
color: #271fe0;
}
@ -1161,7 +1161,7 @@ describe('Admin | containers | RoleCreatePage', () => {
class="c55 c56"
>
<span
class="c55 sc-OVzLa c57"
class="c55 sc-dTBbbW c57"
id="accordion-label-accordion-1"
>
Address

View File

@ -851,7 +851,7 @@ describe('Admin | containers | RoleEditPage', () => {
border: 1px solid #4945ff;
}
.c49:hover:not([aria-disabled='true']) .sc-OVzLa {
.c49:hover:not([aria-disabled='true']) .sc-dTBbbW {
color: #271fe0;
}
@ -1263,7 +1263,7 @@ describe('Admin | containers | RoleEditPage', () => {
class="c60 c61"
>
<span
class="c60 sc-OVzLa c62"
class="c60 sc-dTBbbW c62"
id="accordion-label-accordion-1"
>
Address

View File

@ -382,6 +382,7 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
.c28 {
-webkit-animation: gzYjWD 1s infinite linear;
animation: gzYjWD 1s infinite linear;
will-change: transform;
}
.c26 {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/plugin-users-permissions",
"version": "4.3.8",
"version": "4.3.9",
"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.8",
"@strapi/utils": "4.3.8",
"@strapi/helper-plugin": "4.3.9",
"@strapi/utils": "4.3.9",
"bcryptjs": "2.4.3",
"grant-koa": "5.4.8",
"jsonwebtoken": "^8.1.0",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-email-amazon-ses",
"version": "4.3.8",
"version": "4.3.9",
"description": "Amazon SES provider for strapi email",
"keywords": [
"email",
@ -36,7 +36,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/utils": "4.3.8",
"@strapi/utils": "4.3.9",
"node-ses": "^3.0.3"
},
"engines": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-email-mailgun",
"version": "4.3.8",
"version": "4.3.9",
"description": "Mailgun provider for strapi email plugin",
"keywords": [
"email",
@ -36,7 +36,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/utils": "4.3.8",
"@strapi/utils": "4.3.9",
"form-data": "^4.0.0",
"mailgun.js": "5.2.2"
},

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-email-nodemailer",
"version": "4.3.8",
"version": "4.3.9",
"description": "Nodemailer provider for Strapi 3",
"keywords": [
"strapi",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-email-sendgrid",
"version": "4.3.8",
"version": "4.3.9",
"description": "Sendgrid provider for strapi email",
"keywords": [
"email",
@ -37,7 +37,7 @@
},
"dependencies": {
"@sendgrid/mail": "7.7.0",
"@strapi/utils": "4.3.8"
"@strapi/utils": "4.3.9"
},
"engines": {
"node": ">=14.19.1 <=18.x.x",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-email-sendmail",
"version": "4.3.8",
"version": "4.3.9",
"description": "Sendmail provider for strapi email",
"keywords": [
"email",
@ -35,7 +35,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/utils": "4.3.8",
"@strapi/utils": "4.3.9",
"sendmail": "^1.6.1"
},
"engines": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-upload-aws-s3",
"version": "4.3.8",
"version": "4.3.9",
"description": "AWS S3 provider for strapi upload",
"keywords": [
"upload",
@ -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": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-upload-cloudinary",
"version": "4.3.8",
"version": "4.3.9",
"description": "Cloudinary provider for strapi upload",
"keywords": [
"upload",
@ -36,7 +36,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/utils": "4.3.8",
"@strapi/utils": "4.3.9",
"cloudinary": "^1.30.1",
"into-stream": "^5.1.0"
},

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/provider-upload-local",
"version": "4.3.8",
"version": "4.3.9",
"description": "Local provider for strapi upload",
"keywords": [
"upload",
@ -35,7 +35,7 @@
"test": "echo \"no tests yet\""
},
"dependencies": {
"@strapi/utils": "4.3.8",
"@strapi/utils": "4.3.9",
"fs-extra": "10.0.0"
},
"engines": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/babel-plugin-switch-ee-ce",
"version": "4.3.8",
"version": "4.3.9",
"private": false,
"description": "Babel plugin to switch from CE to EE at runtime",
"repository": "git://github.com/strapi/strapi.git",

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/logger",
"version": "4.3.8",
"version": "4.3.9",
"description": "Strapi's logger",
"homepage": "https://strapi.io",
"bugs": {

View File

@ -1,6 +1,6 @@
{
"name": "@strapi/typescript-utils",
"version": "4.3.8",
"version": "4.3.9",
"description": "Typescript support for Strapi",
"keywords": [
"strapi",

788
yarn.lock

File diff suppressed because it is too large Load Diff