diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index f3633ecf9b..4dd6089316 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -12,17 +12,17 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/admin": "4.2.0-beta.0", - "@strapi/plugin-documentation": "4.2.0-beta.0", - "@strapi/plugin-graphql": "4.2.0-beta.0", - "@strapi/plugin-i18n": "4.2.0-beta.0", - "@strapi/plugin-sentry": "4.2.0-beta.0", - "@strapi/plugin-users-permissions": "4.2.0-beta.0", - "@strapi/provider-email-mailgun": "4.2.0-beta.0", - "@strapi/provider-upload-aws-s3": "4.2.0-beta.0", - "@strapi/provider-upload-cloudinary": "4.2.0-beta.0", - "@strapi/strapi": "4.2.0-beta.0", - "@strapi/utils": "4.2.0-beta.0", + "@strapi/admin": "4.1.4", + "@strapi/plugin-documentation": "4.1.4", + "@strapi/plugin-graphql": "4.1.4", + "@strapi/plugin-i18n": "4.1.4", + "@strapi/plugin-sentry": "4.1.4", + "@strapi/plugin-users-permissions": "4.1.4", + "@strapi/provider-email-mailgun": "4.1.4", + "@strapi/provider-upload-aws-s3": "4.1.4", + "@strapi/provider-upload-cloudinary": "4.1.4", + "@strapi/strapi": "4.1.4", + "@strapi/utils": "4.1.4", "lodash": "4.17.21", "mysql": "2.18.1", "passport-google-oauth2": "0.2.0", diff --git a/package.json b/package.json index 4996c42e0e..e86842532b 100644 --- a/package.json +++ b/package.json @@ -113,6 +113,7 @@ "request": "2.88.2", "request-promise-native": "1.0.9", "rimraf": "3.0.2", + "speed-measure-webpack-plugin": "1.5.0", "stylelint": "13.13.1", "stylelint-config-recommended": "3.0.0", "stylelint-config-styled-components": "0.1.1", diff --git a/packages/core/admin/index.js b/packages/core/admin/index.js index 03a237e909..cf76b298a6 100644 --- a/packages/core/admin/index.js +++ b/packages/core/admin/index.js @@ -41,7 +41,7 @@ async function build({ ceRoot: path.resolve(cacheDir, 'admin', 'src'), }; - const pluginsPath = Object.keys(plugins).map(pluginName => plugins[pluginName].appPathToPlugin ); + const pluginsPath = Object.keys(plugins).map(pluginName => plugins[pluginName].appPathToPlugin); const config = getCustomWebpackConfig(appDir, { appDir, diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index e6b0794099..4200b86850 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -27,7 +27,7 @@ "develop": "yarn create:plugin-file && yarn develop:webpack", "develop:webpack": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile", "prepublishOnly": "yarn build", - "build": "rimraf build && node ./scripts/build.js", + "builde": "rimraf build && node ./scripts/build.js", "test": "echo \"no tests yet\"", "test:unit": "jest --verbose", "test:front": "cross-env IS_EE=true jest --config ./jest.config.front.js", diff --git a/packages/core/admin/webpack.config.dev.js b/packages/core/admin/webpack.config.dev.js index c05aa54a3a..f3547565be 100644 --- a/packages/core/admin/webpack.config.dev.js +++ b/packages/core/admin/webpack.config.dev.js @@ -1,15 +1,40 @@ 'use strict'; const path = require('path'); +const fs = require('fs-extra'); + +// eslint-disable-next-line node/no-extraneous-require +const glob = require('glob'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const { DuplicateReporterPlugin } = require('duplicate-dependencies-webpack-plugin'); const webpackConfig = require('./webpack.config'); +const getPluginsPath = () => { + const rootPath = path.join('..', '..', '..', 'packages'); + const corePath = path.join(rootPath, 'core', '*'); + const pluginsPath = path.join(rootPath, 'plugins', '*'); + const corePackageDirs = glob.sync(corePath); + const pluginsPackageDirs = glob.sync(pluginsPath); + const packageDirs = [...corePackageDirs, ...pluginsPackageDirs].filter(dir => { + const isCoreAdmin = dir.includes('packages/core/admin/'); + const pathToEntryPoint = path.join(dir, 'admin', 'src', 'index.js'); + const doesAdminFolderExist = fs.pathExistsSync(pathToEntryPoint); + + return !isCoreAdmin && doesAdminFolderExist; + }); + + return packageDirs.map(dir => path.resolve(__dirname, path.join(dir, 'admin', 'src'))); +}; + module.exports = () => { const analyzeBundle = process.env.ANALYZE_BUNDLE; const analyzeDuplicateDependencies = process.env.ANALYZE_DEPS; - const entry = path.join(__dirname, 'admin', 'src'); + // Directly inject a polyfill in the webpack entry point before the entry point + // FIXME: I have noticed a bug regarding the helper-plugin and esbuild-loader + // The only I could fix it was to inject the babel polyfill + const babelPolyfill = '@babel/polyfill/dist/polyfill.min.js'; + const entry = [babelPolyfill, path.join(__dirname, 'admin', 'src')]; const dest = path.join(__dirname, 'build'); // When running the analyze:bundle command, it needs a production build @@ -23,7 +48,7 @@ module.exports = () => { const args = { entry, cacheDir: __dirname, - pluginsPath: [path.resolve(__dirname, '../../../packages')], + pluginsPath: getPluginsPath(), dest, env, options, @@ -41,27 +66,6 @@ module.exports = () => { return { ...config, - snapshot: { - managedPaths: [ - path.resolve(__dirname, '../content-type-builder'), - path.resolve(__dirname, '../upload'), - path.resolve(__dirname, '../helper-plugin'), - ], - buildDependencies: { - hash: true, - timestamp: true, - }, - module: { - timestamp: true, - }, - resolve: { - timestamp: true, - }, - resolveBuildDependencies: { - hash: true, - timestamp: true, - }, - }, devServer: { port: 4000, diff --git a/packages/core/admin/webpack.config.js b/packages/core/admin/webpack.config.js index 69557d58df..5f8d75f4bf 100644 --- a/packages/core/admin/webpack.config.js +++ b/packages/core/admin/webpack.config.js @@ -1,14 +1,14 @@ 'use strict'; const path = require('path'); +const fse = require('fs-extra'); const webpack = require('webpack'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const ForkTsCheckerPlugin = require('fork-ts-checker-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const TerserPlugin = require('terser-webpack-plugin'); +const { ESBuildMinifyPlugin } = require('esbuild-loader'); const WebpackBar = require('webpackbar'); const NodePolyfillPlugin = require('node-polyfill-webpack-plugin'); -const isWsl = require('is-wsl'); const alias = require('./webpack.alias'); const getClientEnvironment = require('./env'); @@ -79,6 +79,11 @@ module.exports = ({ }); } + // Directly inject a polyfill in the webpack entry point before the entry point + // FIXME: I have noticed a bug regarding the helper-plugin and esbuild-loader + // The only I could fix it was to inject the babel polyfill + const babelPolyfill = '@babel/polyfill/dist/polyfill.min.js'; + return { mode: isProduction ? 'production' : 'development', bail: isProduction ? true : false, @@ -86,7 +91,7 @@ module.exports = ({ experiments: { topLevelAwait: true, }, - entry, + entry: [babelPolyfill, entry], output: { path: dest, publicPath: options.adminPath, @@ -98,28 +103,9 @@ module.exports = ({ optimization: { minimize: optimize, minimizer: [ - // Copied from react-scripts - new TerserPlugin({ - terserOptions: { - parse: { - ecma: 8, - }, - compress: { - ecma: 5, - warnings: false, - comparisons: false, - inline: 2, - }, - mangle: { - safari10: true, - }, - output: { - ecma: 5, - comments: false, - ascii_only: true, - }, - }, - parallel: !isWsl, + new ESBuildMinifyPlugin({ + target: 'es2015', + css: true, // Apply minification to CSS assets }), ], runtimeChunk: true, @@ -128,41 +114,83 @@ module.exports = ({ rules: [ { test: /\.m?js$/, - // TODO remove when plugins are built separately - include: [cacheDir, ...pluginsPath], - use: { - loader: require.resolve('babel-loader'), - options: { - cacheDirectory: true, - cacheCompression: isProduction, - compact: isProduction, - presets: [ - require.resolve('@babel/preset-env'), - require.resolve('@babel/preset-react'), - ], - plugins: [ - [ - require.resolve('@strapi/babel-plugin-switch-ee-ce'), - { - // Imported this tells the custom plugin where to look for the ee folder - roots, - }, - ], - require.resolve('@babel/plugin-proposal-class-properties'), - require.resolve('@babel/plugin-syntax-dynamic-import'), - require.resolve('@babel/plugin-transform-modules-commonjs'), - require.resolve('@babel/plugin-proposal-async-generator-functions'), + include: cacheDir, + oneOf: [ + // Use babel-loader for files that distinct the ee and ce code + // These files have an import Something from 'ee_else_ce/ + { + test(filePath) { + if (!filePath) { + return false; + } - [ - require.resolve('@babel/plugin-transform-runtime'), - { - // absoluteRuntime: true,s - helpers: true, - regenerator: true, - }, - ], - [require.resolve('babel-plugin-styled-components'), { pure: true }], - ], + try { + const fileContent = fse.readFileSync(filePath).toString(); + + if (fileContent.match(/from.* ['"]ee_else_ce\//)) { + return true; + } + + return false; + } catch (e) { + return false; + } + }, + use: { + loader: require.resolve('babel-loader'), + options: { + cacheDirectory: true, + cacheCompression: isProduction, + compact: isProduction, + presets: [ + require.resolve('@babel/preset-env'), + require.resolve('@babel/preset-react'), + ], + plugins: [ + [ + require.resolve('@strapi/babel-plugin-switch-ee-ce'), + { + // Imported this tells the custom plugin where to look for the ee folder + roots, + }, + ], + require.resolve('@babel/plugin-proposal-class-properties'), + require.resolve('@babel/plugin-syntax-dynamic-import'), + require.resolve('@babel/plugin-transform-modules-commonjs'), + require.resolve('@babel/plugin-proposal-async-generator-functions'), + + [ + require.resolve('@babel/plugin-transform-runtime'), + { + helpers: true, + regenerator: true, + }, + ], + [require.resolve('babel-plugin-styled-components'), { pure: true }], + ], + }, + }, + }, + // Use esbuild-loader for the other files + { + use: { + loader: require.resolve('esbuild-loader'), + options: { + loader: 'jsx', + target: 'es2015', + }, + }, + }, + ], + }, + { + test: /\.m?js$/, + include: pluginsPath, + use: { + loader: require.resolve('esbuild-loader'), + options: { + loader: 'jsx', + target: 'es2015', }, }, }, @@ -212,8 +240,6 @@ module.exports = ({ new HtmlWebpackPlugin({ inject: true, template: path.resolve(__dirname, 'index.html'), - // FIXME - // favicon: path.resolve(__dirname, 'admin/src/favicon.ico'), }), new webpack.DefinePlugin(envVariables), diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index 86e54ab733..b987708c7a 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -21,7 +21,6 @@ } ], "main": "build/index.js", - "module": "lib/src/index.js", "files": [ "build" ], diff --git a/yarn.lock b/yarn.lock index bbed4cef75..93bec011c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4973,6 +4973,130 @@ resolve-from "^5.0.0" store2 "^2.12.0" +"@strapi/admin@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/admin/-/admin-4.2.0-beta.0.tgz#537a5d1dae20acb2c0881b4cd2847a264f0e2b0f" + integrity sha512-zNK5jopdnfpwWZ6qHFOSNXenrKIlW1oMzYM6H//SITFD5SH2sMINcJvlyejXGujxvb8Cxm6dKD9HQHlN8wotfw== + dependencies: + "@babel/core" "7.16.7" + "@babel/plugin-proposal-async-generator-functions" "7.16.7" + "@babel/plugin-proposal-class-properties" "7.16.7" + "@babel/plugin-syntax-dynamic-import" "7.8.3" + "@babel/plugin-transform-modules-commonjs" "7.16.7" + "@babel/plugin-transform-runtime" "7.16.7" + "@babel/preset-env" "7.16.7" + "@babel/preset-react" "7.16.7" + "@babel/runtime" "7.16.7" + "@casl/ability" "^5.4.3" + "@fingerprintjs/fingerprintjs" "3.3.2" + "@fortawesome/fontawesome-free" "^5.15.3" + "@fortawesome/fontawesome-svg-core" "^1.2.35" + "@fortawesome/free-brands-svg-icons" "^5.15.3" + "@fortawesome/free-solid-svg-icons" "^5.15.3" + "@fortawesome/react-fontawesome" "^0.1.14" + "@strapi/babel-plugin-switch-ee-ce" "4.2.0-beta.0" + "@strapi/design-system" "0.0.1-alpha.79" + "@strapi/helper-plugin" "4.2.0-beta.0" + "@strapi/icons" "0.0.1-alpha.79" + "@strapi/utils" "4.2.0-beta.0" + axios "0.24.0" + babel-loader "8.2.3" + babel-plugin-styled-components "2.0.2" + bcryptjs "2.4.3" + chalk "^4.1.1" + chokidar "^3.5.1" + codemirror "^5.61.0" + cross-env "^7.0.3" + css-loader "6.5.1" + date-fns "2.22.1" + dotenv "8.5.1" + esbuild-loader "2.18.0" + execa "^1.0.0" + fast-deep-equal "3.1.3" + font-awesome "^4.7.0" + fork-ts-checker-webpack-plugin "7.2.1" + formik "^2.2.6" + fs-extra "10.0.0" + highlight.js "^10.4.1" + history "^4.9.0" + hoist-non-react-statics "^3.3.0" + html-loader "3.0.1" + html-webpack-plugin "5.5.0" + immer "9.0.6" + invariant "^2.2.4" + is-wsl "2.2.0" + js-cookie "2.2.1" + jsonwebtoken "8.5.1" + koa-compose "4.1.0" + koa-passport "4.1.4" + koa-static "5.0.0" + lodash "4.17.21" + markdown-it "^12.3.2" + markdown-it-abbr "^1.0.4" + markdown-it-container "^3.0.0" + markdown-it-deflist "^2.1.0" + markdown-it-emoji "^2.0.0" + markdown-it-footnote "^3.0.3" + markdown-it-ins "^3.0.1" + markdown-it-mark "^3.0.1" + markdown-it-sub "^1.0.0" + markdown-it-sup "1.0.0" + match-sorter "^4.0.2" + mini-css-extract-plugin "2.4.4" + moment "^2.29.1" + node-polyfill-webpack-plugin "1.1.4" + p-map "4.0.0" + passport-local "1.0.0" + prop-types "^15.7.2" + qs "6.10.1" + react "^17.0.2" + react-copy-to-clipboard "^5.0.3" + react-dnd "^14.0.2" + react-dnd-html5-backend "^14.0.0" + react-dom "^17.0.2" + react-error-boundary "3.1.1" + react-fast-compare "^3.2.0" + react-helmet "^6.1.0" + react-intl "5.20.2" + react-query "3.24.3" + react-redux "7.2.3" + react-router "5.2.0" + react-router-dom "5.2.0" + react-select "^4.0.2" + react-virtualized "^9.22.3" + redux "^4.0.1" + redux-saga "^0.16.0" + reselect "^4.0.0" + rimraf "3.0.2" + sanitize-html "2.4.0" + semver "7.3.5" + sift "13.5.0" + style-loader "3.3.1" + styled-components "^5.2.3" + terser-webpack-plugin "5.3.0" + webpack "5.65.0" + webpack-cli "4.9.1" + webpack-dev-server "4.7.3" + webpackbar "5.0.0-3" + yup "^0.32.9" + +"@strapi/babel-plugin-switch-ee-ce@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/babel-plugin-switch-ee-ce/-/babel-plugin-switch-ee-ce-4.2.0-beta.0.tgz#4ae4f725bd39fc5bea89d78804541ed2f0809868" + integrity sha512-pWvsbGTcuCvpnUZhNpAUsbAZ0OShvVOgzub+le27PbscHuC244MpGwwtyjVmhNFGGXVd+wr6Hk5nKogA48wLmw== + +"@strapi/database@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/database/-/database-4.2.0-beta.0.tgz#518df716f96d4f3776567e3dccb19f05f8a1660b" + integrity sha512-HTVlQP3+e++pCnQviRHaL/xy60SEKuVV+BDDKorEvN6O5tqYPXkx1ZkZXhypL8vfP3JQd7j6ZSJm1RQ3uM+tCw== + dependencies: + date-fns "2.22.1" + debug "4.3.1" + fs-extra "10.0.0" + knex "0.95.6" + lodash "4.17.21" + umzug "2.3.0" + "@strapi/design-system@0.0.1-alpha.79": version "0.0.1-alpha.79" resolved "https://registry.yarnpkg.com/@strapi/design-system/-/design-system-0.0.1-alpha.79.tgz#23e6a7f73383b72148c926fa74ed0ba1acc32f0a" @@ -4982,6 +5106,64 @@ compute-scroll-into-view "^1.0.17" prop-types "^15.7.2" +"@strapi/generate-new@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/generate-new/-/generate-new-4.2.0-beta.0.tgz#86862d7713f54b56cb737856ffa0a6c3f55de53e" + integrity sha512-uiJrlUmYDX8461LJ/vIdLlEbRxYZuySPdwK3mGRXqtwqYBHZI7HgiHj/o5rWVkXXcWJywOZaoZNGLAu4p0uwTA== + dependencies: + "@sentry/node" "6.3.0" + chalk "^4.1.1" + execa "^1.0.0" + fs-extra "10.0.0" + inquirer "8.2.0" + lodash "4.17.21" + node-fetch "^2.6.1" + node-machine-id "^1.1.10" + ora "^5.4.0" + tar "6.1.11" + uuid "^3.3.2" + +"@strapi/generators@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/generators/-/generators-4.2.0-beta.0.tgz#4d35a1dcc00c6d7771a8509c7f0e777a0fdc587f" + integrity sha512-KePrXfpxJNzPFAAR3S/jdyVlsY4eVwMvwRmXVmhQmXBSIMJMzzdahgG0a7zRTkCcog4dQTPwC9VGADcQJD20pw== + dependencies: + "@sindresorhus/slugify" "1.1.0" + "@strapi/typescript-utils" "4.2.0-beta.0" + "@strapi/utils" "4.2.0-beta.0" + chalk "4.1.2" + fs-extra "10.0.0" + node-plop "0.26.3" + plop "2.7.6" + pluralize "8.0.0" + +"@strapi/helper-plugin@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/helper-plugin/-/helper-plugin-4.2.0-beta.0.tgz#787268de66956466fe3f0fbf77c491add3f495cc" + integrity sha512-tDn9ggXlLOLWFYKbW5j85p1wPNa7WH61c4TLAWwF16ouhcv/zx6jKe2jNSHWfpflKBKwUtQsh3eSh3c5RjmXqw== + dependencies: + "@fortawesome/fontawesome-free" "^5.15.2" + "@fortawesome/fontawesome-svg-core" "^1.2.35" + "@fortawesome/free-brands-svg-icons" "^5.15.2" + "@fortawesome/free-solid-svg-icons" "^5.15.3" + "@fortawesome/react-fontawesome" "^0.1.14" + axios "0.25.0" + babel-plugin-styled-components "2.0.2" + formik "2.2.9" + invariant "^2.2.1" + lodash "4.17.21" + match-sorter "^4.0.2" + mini-css-extract-plugin "2.4.4" + moment "^2.29.1" + react "^17.0.2" + react-dom "^17.0.2" + react-helmet "^6.1.0" + react-intl "5.20.2" + react-router "^5.2.0" + react-router-dom "5.2.0" + styled-components "^5.2.3" + whatwg-fetch "^3.6.2" + "@strapi/icons@0.0.1-alpha.79": version "0.0.1-alpha.79" resolved "https://registry.yarnpkg.com/@strapi/icons/-/icons-0.0.1-alpha.79.tgz#eff8790ea3897419489a61cbfd72a436661d1420" @@ -4989,6 +5171,195 @@ dependencies: rimraf "^3.0.2" +"@strapi/logger@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/logger/-/logger-4.2.0-beta.0.tgz#bdb6d08b90ee2a2199804d931e8a493222056972" + integrity sha512-yIJa9w2kbzLYMyU/NFB3Ss4bB9D+Z6LK+NVWGXdtaaPQ0pFXYOgaFY1t/kE3BY9xL6exB34gizwNLaQJ58dZqQ== + dependencies: + lodash "4.17.21" + winston "3.3.3" + +"@strapi/plugin-content-manager@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/plugin-content-manager/-/plugin-content-manager-4.2.0-beta.0.tgz#c9844b556df12c49654f3e8e3718b0df51014e38" + integrity sha512-zPXNxqpCYyDk1yNqRb3jIemWqWrlrtEOQ7CiBSGKzRC1PTbvidrVQroPRVTgEHBfNTQVTfq+LDLvOt0wGJpyig== + dependencies: + "@sindresorhus/slugify" "1.1.0" + "@strapi/utils" "4.2.0-beta.0" + lodash "4.17.21" + +"@strapi/plugin-content-type-builder@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/plugin-content-type-builder/-/plugin-content-type-builder-4.2.0-beta.0.tgz#5ce112f520b24b5b8152718341b489ed1689ac58" + integrity sha512-uiQZJgoTAKN3MCB9l4BXAkBjmM3TuwVXpwgcaQxS1ybHo2SGFX9w1cq4y2z3Xt3uFGjJT7gGXjOAuLvgriD15w== + dependencies: + "@sindresorhus/slugify" "1.1.0" + "@strapi/generators" "4.2.0-beta.0" + "@strapi/helper-plugin" "4.2.0-beta.0" + "@strapi/utils" "4.2.0-beta.0" + fs-extra "10.0.0" + lodash "4.17.21" + pluralize "^8.0.0" + react "^17.0.2" + react-dom "^17.0.2" + react-intl "5.20.2" + react-redux "7.2.3" + react-router "^5.2.0" + react-router-dom "5.2.0" + redux "^4.0.1" + reselect "^4.0.0" + yup "^0.32.9" + +"@strapi/plugin-email@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/plugin-email/-/plugin-email-4.2.0-beta.0.tgz#2fe0a40b02e72df04062831ec8d7ea9f4d9bb315" + integrity sha512-9iUO5stOiwfYQQXaK/acdMqJY0OxlZkRbR8F3UfWDeMXELCzCD/YLn3YsKw6qVvnlYg5RnI/9yqgP32oRhKx2A== + dependencies: + "@strapi/provider-email-sendmail" "4.2.0-beta.0" + "@strapi/utils" "4.2.0-beta.0" + lodash "4.17.21" + +"@strapi/plugin-upload@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/plugin-upload/-/plugin-upload-4.2.0-beta.0.tgz#d4f766491b43570c32159295918ed1ecd5786d76" + integrity sha512-eipDx3BASomnM8zE8bQoeI/x8bD+mJdKaZzQZcNz2I7gqXTX28ODOAdxDFfQnSq4+9JiL2teQfeLEvz6N2bf/g== + dependencies: + "@strapi/helper-plugin" "4.2.0-beta.0" + "@strapi/provider-upload-local" "4.2.0-beta.0" + "@strapi/utils" "4.2.0-beta.0" + byte-size "7.0.1" + cropperjs "1.5.11" + fs-extra "10.0.0" + immer "9.0.6" + koa-range "0.3.0" + koa-static "5.0.0" + lodash "4.17.21" + react "^17.0.2" + react-copy-to-clipboard "^5.0.3" + react-dom "^17.0.2" + react-intl "5.20.2" + react-redux "7.2.3" + react-router "^5.2.0" + react-router-dom "5.2.0" + sharp "0.30.1" + +"@strapi/provider-email-mailgun@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/provider-email-mailgun/-/provider-email-mailgun-4.2.0-beta.0.tgz#aef92ee50841300215e0cc79edfeba6d0b4e0dd4" + integrity sha512-OQ/k0hjxw2STlPPjK/uhmYiAU8aVEAn9zJMQo/5ehBpKXUO71fqQsSOIT6k/uUYBV6tmgZC/fkzObh/SgzaOEQ== + dependencies: + "@strapi/utils" "4.2.0-beta.0" + mailgun-js "0.22.0" + +"@strapi/provider-email-sendmail@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/provider-email-sendmail/-/provider-email-sendmail-4.2.0-beta.0.tgz#534e4a21e913e51c469be0e4739ba83b3045e345" + integrity sha512-HXhP/zPU/3e58SKiOkm30o/kmvhEsKjZrRr82j48JDbkgGxZWg29KqOFb2lq4GREXkl2xvVZQ2brwOVk+ZgN9A== + dependencies: + "@strapi/utils" "4.2.0-beta.0" + sendmail "^1.6.1" + +"@strapi/provider-upload-aws-s3@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/provider-upload-aws-s3/-/provider-upload-aws-s3-4.2.0-beta.0.tgz#4a1b73b09f59496f5b818cb19cfddd6990f64738" + integrity sha512-l4QvHb1mupnhNLmhQgujFzYbWYJoec0ifRLpKDXnzVfXSN/PH908h+6lNbiMCnXfbfCjKrVZpxlQCpGKZlgcmg== + dependencies: + aws-sdk "2.892.0" + lodash "4.17.21" + +"@strapi/provider-upload-cloudinary@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/provider-upload-cloudinary/-/provider-upload-cloudinary-4.2.0-beta.0.tgz#190728ddf3ad1f1e352d2734771779befa338a6d" + integrity sha512-GsUC6NzW7DbQCBcKy9FjiM5Ezj1ng3qKBqDV8EiEEXJUDigjiLJHGqUbquIJrP1OMSn1oGl3qxYcBHj1z31+7w== + dependencies: + "@strapi/utils" "4.2.0-beta.0" + cloudinary "^1.25.1" + into-stream "^5.1.0" + +"@strapi/provider-upload-local@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/provider-upload-local/-/provider-upload-local-4.2.0-beta.0.tgz#16e3e174543a617963e6110a9d0a78d7500f5a50" + integrity sha512-NQjbRtBaYX7jcgQoZo4/iIKwAjpGhSzQ+mpLDVf/C0eGeGO0S2cE1Zpf3FAybnt295pqmghCjm7XVL/euz+Ozg== + dependencies: + "@strapi/utils" "4.2.0-beta.0" + +"@strapi/strapi@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/strapi/-/strapi-4.2.0-beta.0.tgz#c44f7ad611ce1cef40532c3a6c406fb6b740e688" + integrity sha512-m1fEP8CfcyEnHvjFsikHmbtWeHw58dRIieVHdWTOfZyIZVaizmUyFqhGbRlfUcpQ8zR6c25wtLUoo0oJvM0l8Q== + dependencies: + "@koa/cors" "3.1.0" + "@koa/router" "10.1.1" + "@strapi/admin" "4.2.0-beta.0" + "@strapi/database" "4.2.0-beta.0" + "@strapi/generate-new" "4.2.0-beta.0" + "@strapi/generators" "4.2.0-beta.0" + "@strapi/logger" "4.2.0-beta.0" + "@strapi/plugin-content-manager" "4.2.0-beta.0" + "@strapi/plugin-content-type-builder" "4.2.0-beta.0" + "@strapi/plugin-email" "4.2.0-beta.0" + "@strapi/plugin-upload" "4.2.0-beta.0" + "@strapi/typescript-utils" "4.2.0-beta.0" + "@strapi/utils" "4.2.0-beta.0" + bcryptjs "2.4.3" + boxen "5.1.2" + chalk "4.1.2" + chokidar "3.5.2" + ci-info "3.2.0" + cli-table3 "0.6.1" + commander "8.2.0" + configstore "5.0.1" + debug "4.3.2" + delegates "1.0.0" + dotenv "10.0.0" + execa "5.1.1" + fs-extra "10.0.0" + glob "7.2.0" + http-errors "1.8.0" + inquirer "8.2.0" + is-docker "2.2.1" + koa "2.13.3" + koa-body "4.2.0" + koa-compose "4.1.0" + koa-compress "5.1.0" + koa-favicon "2.1.0" + koa-helmet "6.1.0" + koa-ip "2.1.0" + koa-session "6.2.0" + koa-static "5.0.0" + lodash "4.17.21" + node-fetch "2.6.7" + node-machine-id "1.1.12" + node-schedule "2.0.0" + open "8.2.1" + ora "5.4.1" + package-json "7.0.0" + qs "6.10.1" + resolve-cwd "3.0.0" + semver "7.3.5" + statuses "2.0.1" + uuid "^3.3.2" + +"@strapi/typescript-utils@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/typescript-utils/-/typescript-utils-4.2.0-beta.0.tgz#9e667bb370df396e2ee52a8588fa8b64724f42b9" + integrity sha512-bTk3F6UxmBMRFaNtX8COSii3kChZohN1A/Juq3kAR3nh7z2zClWfWUlfBvbVgx7N41Xl0mfg75WKSRnyCT3kHw== + dependencies: + fs-extra "10.0.1" + lodash "4.17.21" + typescript "4.6.2" + +"@strapi/utils@4.2.0-beta.0": + version "4.2.0-beta.0" + resolved "https://registry.yarnpkg.com/@strapi/utils/-/utils-4.2.0-beta.0.tgz#312bfb67aa895c1a11e1a7a9cbdb3275791cb760" + integrity sha512-si6xLONWeRZdayOAVNcLodbGJlv4KwC96XGUViQgdHx1fNh5+ar/BcH7DF9uG4U7t7RVS5LiPtr3rZfB9BlGzw== + dependencies: + "@sindresorhus/slugify" "1.1.0" + date-fns "2.24.0" + http-errors "1.8.0" + lodash "4.17.21" + yup "0.32.9" + "@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" @@ -20551,6 +20922,13 @@ specificity@^0.4.1: resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== +speed-measure-webpack-plugin@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.5.0.tgz#caf2c5bee24ab66c1c7c30e8daa7910497f7681a" + integrity sha512-Re0wX5CtM6gW7bZA64ONOfEPEhwbiSF/vz6e2GvadjuaPrQcHTQdRGsD8+BE7iUOysXH8tIenkPCQBEcspXsNg== + dependencies: + chalk "^4.1.0" + split-array-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/split-array-stream/-/split-array-stream-2.0.0.tgz#85a4f8bfe14421d7bca7f33a6d176d0c076a53b1"