From 6e44e2e274d2b3b22b7ac66fb8f84beb703058ab Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 12 Jan 2018 15:20:13 +0100 Subject: [PATCH 01/24] Add provider connection --- .../environments/development/request.json | 2 +- .../config/functions/bootstrap.js | 39 +++++ .../config/grant.json | 27 +++ .../config/routes.json | 9 + .../controllers/Auth.js | 7 +- .../middlewares/provider/index.js | 33 ++++ .../middlewares/users-permissions/index.js | 7 + .../models/User.settings.json | 3 +- .../package.json | 4 + .../services/Providers.js | 158 ++++++++++++++++++ 10 files changed, 284 insertions(+), 5 deletions(-) create mode 100644 packages/strapi-plugin-users-permissions/config/grant.json create mode 100644 packages/strapi-plugin-users-permissions/middlewares/provider/index.js create mode 100644 packages/strapi-plugin-users-permissions/services/Providers.js diff --git a/packages/strapi-generate-new/files/config/environments/development/request.json b/packages/strapi-generate-new/files/config/environments/development/request.json index 2c18a3099b..b826f5ac0d 100755 --- a/packages/strapi-generate-new/files/config/environments/development/request.json +++ b/packages/strapi-generate-new/files/config/environments/development/request.json @@ -1,6 +1,6 @@ { "session": { - "enabled": false, + "enabled": true, "client": "cookie", "key": "strapi.sid", "prefix": "strapi:sess:", diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index e72719317b..5b38aa6e55 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -27,6 +27,45 @@ module.exports = cb => { } } + if (!_.get(strapi.plugins['users-permissions'], 'config.grant')) { + try { + const jwtSecret = uuid(); + fs.writeFileSync(path.join(strapi.config.appPath, 'plugins', 'users-permissions', 'config', 'grant.json'), JSON.stringify({ + grant: { + facebook: { + key: '', + secret: '', + callback: '/auth/facebook/callback', + scope: ['email'] + }, + google: { + key: '', + secret: '', + callback: '/auth/google/callback', + scope: ['email'] + }, + github: { + key: '', + secret: '', + callback: '/auth/github/callback' + }, + linkedin2: { + key: '', + secret: '', + callback: '/auth/linkedin2/callback', + custom_params: { + 'state': '' + } + } + } + }, null, 2), 'utf8'); + + _.set(strapi.plugins['users-permissions'], 'config.grant', grant); + } catch(err) { + strapi.log.error(err); + } + } + strapi.plugins['users-permissions'].services.userspermissions.syncSchema(() => { strapi.plugins['users-permissions'].services.userspermissions.updatePermissions(cb); }); diff --git a/packages/strapi-plugin-users-permissions/config/grant.json b/packages/strapi-plugin-users-permissions/config/grant.json new file mode 100644 index 0000000000..7228ff50b1 --- /dev/null +++ b/packages/strapi-plugin-users-permissions/config/grant.json @@ -0,0 +1,27 @@ +{ + "grant": { + "facebook": { + "key": "", + "secret": "", + "callback": "/auth/facebook/callback", + "scope": ["email"] + }, + "google": { + "key": "", + "secret": "", + "callback": "/auth/google/callback", + "scope": ["email"] + }, + "github": { + "key": "", + "secret": "", + "callback": "/auth/github/callback" + }, + "linkedin2": { + "key": "", + "secret": "", + "callback": "/auth/linkedin2/callback", + "custom_params": {"state": ""} + } + } +} diff --git a/packages/strapi-plugin-users-permissions/config/routes.json b/packages/strapi-plugin-users-permissions/config/routes.json index 47f79bbffd..95b5c0e1ee 100644 --- a/packages/strapi-plugin-users-permissions/config/routes.json +++ b/packages/strapi-plugin-users-permissions/config/routes.json @@ -116,6 +116,15 @@ "prefix": "" } }, + { + "method": "GET", + "path": "/auth/:provider/callback", + "handler": "Auth.callback", + "config": { + "policies": [], + "prefix": "" + } + }, { "method": "POST", "path": "/auth/forgot-password", diff --git a/packages/strapi-plugin-users-permissions/controllers/Auth.js b/packages/strapi-plugin-users-permissions/controllers/Auth.js index 5ab1d66e73..896f125937 100644 --- a/packages/strapi-plugin-users-permissions/controllers/Auth.js +++ b/packages/strapi-plugin-users-permissions/controllers/Auth.js @@ -62,9 +62,12 @@ module.exports = { } } else { // Connect the user thanks to the third-party provider. - const user = await strapi.api.user.services.grant.connect(provider, access_token); + const user = await strapi.plugins['users-permissions'].services.providers.connect(provider, access_token); - ctx.redirect(strapi.config.frontendUrl || strapi.config.url + '?jwt=' + strapi.api.user.services.jwt.issue(user) + '&user=' + JSON.stringify(user)); + ctx.send({ + jwt: strapi.plugins['users-permissions'].services.jwt.issue(user), + user: _.omit(user.toJSON ? user.toJSON() : user, ['password', 'resetPasswordToken']) + }); } }, diff --git a/packages/strapi-plugin-users-permissions/middlewares/provider/index.js b/packages/strapi-plugin-users-permissions/middlewares/provider/index.js new file mode 100644 index 0000000000..25b518f413 --- /dev/null +++ b/packages/strapi-plugin-users-permissions/middlewares/provider/index.js @@ -0,0 +1,33 @@ +'use strict'; + +/** + * Module dependencies + */ + +// Public node modules. +const _ = require('lodash'); +const Grant = require('grant-koa'); +const mount = require('koa-mount'); + +module.exports = strapi => { + return { + beforeInitialize: function() { + strapi.config.middleware.load.after.push('provider'); + }, + + initialize: function(cb) { + _.defaultsDeep(strapi.plugins['users-permissions'].config.grant, { + server: { + protocol: 'http', + host: 'localhost:1337' + } + }); + + const grant = new Grant(strapi.plugins['users-permissions'].config.grant); + + strapi.app.use(mount(grant)); + + cb(); + } + }; +}; diff --git a/packages/strapi-plugin-users-permissions/middlewares/users-permissions/index.js b/packages/strapi-plugin-users-permissions/middlewares/users-permissions/index.js index 3bf420b536..7e9d41dd19 100644 --- a/packages/strapi-plugin-users-permissions/middlewares/users-permissions/index.js +++ b/packages/strapi-plugin-users-permissions/middlewares/users-permissions/index.js @@ -1,3 +1,10 @@ +'use strict'; + +/** + * Module dependencies + */ + +// Public node modules. const _ = require('lodash'); module.exports = strapi => { diff --git a/packages/strapi-plugin-users-permissions/models/User.settings.json b/packages/strapi-plugin-users-permissions/models/User.settings.json index bbd8bb545f..6ae2794ddf 100644 --- a/packages/strapi-plugin-users-permissions/models/User.settings.json +++ b/packages/strapi-plugin-users-permissions/models/User.settings.json @@ -26,8 +26,7 @@ "password": { "type": "password", "minLength": 6, - "configurable": false, - "required": true + "configurable": false }, "resetPasswordToken": { "type": "string", diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 4fc8ead557..1fc45890f5 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -25,7 +25,11 @@ }, "dependencies": { "bcryptjs": "^2.4.3", + "grant-koa": "^3.8.1", "jsonwebtoken": "^8.1.0", + "koa": "^2.1.0", + "koa-mount": "^3.0.0", + "purest": "^2.0.1", "request": "^2.83.0", "uuid": "^3.1.0" }, diff --git a/packages/strapi-plugin-users-permissions/services/Providers.js b/packages/strapi-plugin-users-permissions/services/Providers.js new file mode 100644 index 0000000000..5d3d3a2219 --- /dev/null +++ b/packages/strapi-plugin-users-permissions/services/Providers.js @@ -0,0 +1,158 @@ +'use strict'; + +/** + * Module dependencies. + */ + +// Public node modules. +const _ = require('lodash'); + +// Purest strategies. +const Purest = require('purest'); + +const facebook = new Purest({ + provider: 'facebook' +}); + +const github = new Purest({ + provider: 'github', + defaults: { + headers: { + 'user-agent': 'strapi' + } + } +}); + +const google = new Purest({ + provider: 'google' +}); + +const linkedin = new Purest({ + provider: 'linkedin' +}); + +/** + * Connect thanks to a third-party provider. + * + * + * @param {String} provider + * @param {String} access_token + * + * @return {*} + */ + +exports.connect = (provider, access_token) => { + return new Promise((resolve, reject) => { + if (!access_token) { + reject({ + message: 'No access_token.' + }); + } else { + // Get the profile. + getProfile(provider, access_token, (err, profile) => { + if (err) { + reject(err); + } else { + // We need at least the mail. + if (!profile.email) { + reject({ + message: 'Email was not available.' + }); + } else { + strapi.query('user', 'users-permissions').findOne({email: profile.email}) + .then(user => { + if (!user) { + // Create the new user. + const params = _.assign(profile, { + provider: provider + }); + + strapi.query('user', 'users-permissions').create(params) + .then(user => { + resolve(user); + }) + .catch(err => { + reject(err); + }); + } else { + resolve(user); + } + }) + .catch(err => { + reject(err); + }); + } + } + }); + } + }); +}; + +/** + * Helper to get profiles + * + * @param {String} provider + * @param {Function} callback + */ + +const getProfile = (provider, access_token, callback) => { + let fields; + switch (provider) { + case 'facebook': + facebook.query().get('me?fields=name,email').auth(access_token).request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: body.name, + email: body.email + }); + } + }); + break; + case 'google': + google.query('plus').get('people/me').auth(access_token).request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: body.displayName, + email: body.emails[0].value + }); + } + }); + break; + case 'github': + github.query().get('user').auth(access_token).request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: body.login, + email: body.email + }); + } + }); + break; + case 'linkedin2': + fields = [ + 'public-profile-url', 'email-address' + ]; + linkedin.query().select('people/~:(' + fields.join() + ')?format=json').auth(access_token).request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: substr(body.publicProfileUrl.lastIndexOf('/') + 1), + email: body.emailAddress + }); + } + }); + break; + default: + callback({ + message: 'Unknown provider.' + }); + break; + } +} From aa9b1214a5a23a05a50dc2bd15c66637ce389b40 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 12 Jan 2018 15:48:14 +0100 Subject: [PATCH 02/24] Add documentation --- docs/3.x.x/en/guides/authentification.md | 28 +++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/3.x.x/en/guides/authentification.md b/docs/3.x.x/en/guides/authentification.md index aec12ce4ea..4e8061b2a2 100644 --- a/docs/3.x.x/en/guides/authentification.md +++ b/docs/3.x.x/en/guides/authentification.md @@ -30,7 +30,7 @@ $.ajax({ This route lets you log your users in by getting an authentication token. -#### Usage +#### Local - The `identifier` param can either be an email or a username. @@ -53,6 +53,32 @@ $.ajax({ }); ``` +## Providers + +Thanks to [Grant](https://github.com/simov/grant) and [Purest](https://github.com/simov/purest), you can easily use OAuth and OAuth2 +providers to enable authentication in your application. By default, +Strapi comes with four providers: +- Facebook +- Google +- Github +- Linkedin2 (Oauth2 Provider for Linkedin) + +To use the providers authentication, set your credentials in +`./plugins/users-permissions/config/environments/development/grant.json`. + +Redirect your user to: `GET /connect/:provider`. eg: `GET /connect/facebook` + +After his approval, he will be redirected to `/auth/:provider/callback`. The `jwt` and `user` data will be available in the body response. + +Response payload: + +```js +{ + "user": {}, + "jwt": "" +} +``` + ## Use your token to be identify as user. By default, each API request is identified as `guest` role (see permissions of `guest`'s role in your admin dashboard). To make a request as a user, you have to set the `Authorization` token in your request headers. You receive a 401 error if you are not authorized to make this request or if your authorization header is not correct. From 1eb7b12934952a6e38b39f2a65f9403ba0add111 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 12 Jan 2018 16:04:01 +0100 Subject: [PATCH 03/24] Omit grant.json config file --- .../.gitignore | 1 + .../config/grant.json | 27 ------------------- 2 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 packages/strapi-plugin-users-permissions/config/grant.json diff --git a/packages/strapi-plugin-users-permissions/.gitignore b/packages/strapi-plugin-users-permissions/.gitignore index 8e4fe6e310..7ea1136652 100755 --- a/packages/strapi-plugin-users-permissions/.gitignore +++ b/packages/strapi-plugin-users-permissions/.gitignore @@ -5,6 +5,7 @@ node_modules stats.json roles.json jwt.json +grant.json # Cruft .DS_Store diff --git a/packages/strapi-plugin-users-permissions/config/grant.json b/packages/strapi-plugin-users-permissions/config/grant.json deleted file mode 100644 index 7228ff50b1..0000000000 --- a/packages/strapi-plugin-users-permissions/config/grant.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "grant": { - "facebook": { - "key": "", - "secret": "", - "callback": "/auth/facebook/callback", - "scope": ["email"] - }, - "google": { - "key": "", - "secret": "", - "callback": "/auth/google/callback", - "scope": ["email"] - }, - "github": { - "key": "", - "secret": "", - "callback": "/auth/github/callback" - }, - "linkedin2": { - "key": "", - "secret": "", - "callback": "/auth/linkedin2/callback", - "custom_params": {"state": ""} - } - } -} From 82d85d781c1b3a636aa61a5a6c85f0182416bbf5 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 12 Jan 2018 16:07:21 +0100 Subject: [PATCH 04/24] Fix grant file creation --- .../config/functions/bootstrap.js | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index 5b38aa6e55..36d416a654 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -29,35 +29,36 @@ module.exports = cb => { if (!_.get(strapi.plugins['users-permissions'], 'config.grant')) { try { - const jwtSecret = uuid(); - fs.writeFileSync(path.join(strapi.config.appPath, 'plugins', 'users-permissions', 'config', 'grant.json'), JSON.stringify({ - grant: { - facebook: { - key: '', - secret: '', - callback: '/auth/facebook/callback', - scope: ['email'] - }, - google: { - key: '', - secret: '', - callback: '/auth/google/callback', - scope: ['email'] - }, - github: { - key: '', - secret: '', - callback: '/auth/github/callback' - }, - linkedin2: { - key: '', - secret: '', - callback: '/auth/linkedin2/callback', - custom_params: { - 'state': '' - } + const grant = { + facebook: { + key: '', + secret: '', + callback: '/auth/facebook/callback', + scope: ['email'] + }, + google: { + key: '', + secret: '', + callback: '/auth/google/callback', + scope: ['email'] + }, + github: { + key: '', + secret: '', + callback: '/auth/github/callback' + }, + linkedin2: { + key: '', + secret: '', + callback: '/auth/linkedin2/callback', + custom_params: { + 'state': '' } } + }; + + fs.writeFileSync(path.join(strapi.config.appPath, 'plugins', 'users-permissions', 'config', 'grant.json'), JSON.stringify({ + grant }, null, 2), 'utf8'); _.set(strapi.plugins['users-permissions'], 'config.grant', grant); From e50a56d230acda5bbf98e0da25f602238bd30fe8 Mon Sep 17 00:00:00 2001 From: cyril lopez Date: Wed, 17 Jan 2018 16:47:13 +0100 Subject: [PATCH 05/24] Fix list-plugins plugin icon css --- .../admin/src/components/Row/styles.scss | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/components/Row/styles.scss b/packages/strapi-admin/admin/src/components/Row/styles.scss index 99b6bf3862..7da9479530 100644 --- a/packages/strapi-admin/admin/src/components/Row/styles.scss +++ b/packages/strapi-admin/admin/src/components/Row/styles.scss @@ -5,12 +5,25 @@ .icoContainer { width: 70px; height: 36px; + position: relative; margin: auto 0; - line-height: 36px; text-align: center; border: 1px solid rgba(28,93,231,0.1); border-radius: 3px; font-size: 20px; + + > img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + } } .pluginContent { From 6da09af50165cf6eae5f21bdd307e9e794c63885 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Thu, 18 Jan 2018 14:53:25 +0100 Subject: [PATCH 06/24] Fix plugin multi middleware --- .../middlewares/provider/defaults.json | 5 +++++ packages/strapi/lib/core/middlewares.js | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 packages/strapi-plugin-users-permissions/middlewares/provider/defaults.json diff --git a/packages/strapi-plugin-users-permissions/middlewares/provider/defaults.json b/packages/strapi-plugin-users-permissions/middlewares/provider/defaults.json new file mode 100644 index 0000000000..621bacef88 --- /dev/null +++ b/packages/strapi-plugin-users-permissions/middlewares/provider/defaults.json @@ -0,0 +1,5 @@ +{ + "provider": { + "enabled": true + } +} diff --git a/packages/strapi/lib/core/middlewares.js b/packages/strapi/lib/core/middlewares.js index e9fa4ac7e3..62904d4e10 100755 --- a/packages/strapi/lib/core/middlewares.js +++ b/packages/strapi/lib/core/middlewares.js @@ -158,8 +158,9 @@ const mountMiddlewares = function (files, cwd) { return (resolve, reject) => parallel( files.map(p => cb => { - const name = p.replace(/^.\/node_modules\/strapi-middleware-/, './') - .split('/')[1]; + const folders = p.replace(/^.\/node_modules\/strapi-middleware-/, './') + .split('/'); + const name = folders[folders.length - 2]; this.middleware[name] = this.middleware[name] || { loaded: false From ed80aa4c868d0069db5f75b546f997f80ca32cc1 Mon Sep 17 00:00:00 2001 From: Nicolas Bondoux Date: Thu, 18 Jan 2018 16:02:32 +0100 Subject: [PATCH 07/24] Fix generate new package on windows --- packages/strapi-generate-new/lib/before.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index cd76b000e3..8f53267dae 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -207,7 +207,11 @@ module.exports = (scope, cb) => { try { require(path.resolve(`${scope.rootPath}/node_modules/${scope.client.connector}/lib/utils/connectivity.js`))(scope, cb.success, connectionValidation); } catch(err) { - execSync(`rm -r ${scope.rootPath}`); + if(/^win/.test(process.platform)){ + execSync(`rmdir ${scope.rootPath} /s /q`); + } else { + execSync(`rm -r ${scope.rootPath}`); + } logger.info('Copying the dashboard...'); From 5accaf30e3609329bdedc90f59123a852637eb15 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Thu, 18 Jan 2018 17:34:38 +0100 Subject: [PATCH 08/24] Hot fix permission detection --- .../config/policies/permissions.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/config/policies/permissions.js b/packages/strapi-plugin-users-permissions/config/policies/permissions.js index f8efa2f5a3..138d69d0c7 100644 --- a/packages/strapi-plugin-users-permissions/config/policies/permissions.js +++ b/packages/strapi-plugin-users-permissions/config/policies/permissions.js @@ -25,10 +25,13 @@ module.exports = async (ctx, next) => { } } - const permission = _.get(strapi.plugins['users-permissions'].config, ['roles', role.toString(), 'permissions', route.plugin || 'application', 'controllers', route.controller, route.action]); + const actions = _.get(strapi.plugins['users-permissions'].config, ['roles', role.toString(), 'permissions', route.plugin || 'application', 'controllers', route.controller], {}); + const permission = _.find(actions, (config, name) => { + return name.toLowerCase() === route.action.toLowerCase(); + }); if (!permission) { - return await next(); + return ctx.unauthorized('Access restricted for this action.'); } if (permission.enabled && permission.policy) { From 7b0a106cb2651bccf1f9f99ce9116f6fca06756b Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 19 Jan 2018 08:52:34 +0100 Subject: [PATCH 09/24] 3.0.0-alpha.8.2 --- package.json | 2 +- packages/strapi-admin/package.json | 6 +++--- packages/strapi-bookshelf/package.json | 6 +++--- packages/strapi-ejs/package.json | 2 +- packages/strapi-generate-admin/package.json | 4 ++-- packages/strapi-generate-api/package.json | 2 +- .../strapi-generate-controller/package.json | 2 +- packages/strapi-generate-model/package.json | 2 +- packages/strapi-generate-new/package.json | 4 ++-- packages/strapi-generate-plugin/package.json | 2 +- packages/strapi-generate-policy/package.json | 2 +- packages/strapi-generate-service/package.json | 2 +- packages/strapi-generate/package.json | 4 ++-- packages/strapi-helper-plugin/package.json | 2 +- packages/strapi-knex/package.json | 2 +- packages/strapi-middleware-views/package.json | 2 +- packages/strapi-mongoose/package.json | 4 ++-- .../strapi-plugin-content-manager/package.json | 4 ++-- .../package.json | 8 ++++---- packages/strapi-plugin-email/package.json | 4 ++-- .../package.json | 4 ++-- .../package.json | 4 ++-- packages/strapi-redis/package.json | 4 ++-- packages/strapi-utils/package.json | 2 +- packages/strapi/package.json | 18 +++++++++--------- 25 files changed, 49 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index 79ca7e1265..ae619a818c 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "devDependencies": { "assert": "~1.3.0", "babel-eslint": "^6.1.2", diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index b6e2f044cb..600c883b92 100755 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-admin", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Strapi Admin", "repository": { "type": "git", @@ -28,8 +28,8 @@ }, "devDependencies": { "sanitize.css": "^4.1.0", - "strapi-helper-plugin": "3.0.0-alpha.8", - "strapi-utils": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2", + "strapi-utils": "3.0.0-alpha.8.2" }, "author": { "name": "Strapi", diff --git a/packages/strapi-bookshelf/package.json b/packages/strapi-bookshelf/package.json index 9a31585199..cb5bf36f95 100755 --- a/packages/strapi-bookshelf/package.json +++ b/packages/strapi-bookshelf/package.json @@ -1,6 +1,6 @@ { "name": "strapi-bookshelf", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Bookshelf hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -19,8 +19,8 @@ "bookshelf": "^0.10.3", "lodash": "^4.17.4", "pluralize": "^6.0.0", - "strapi-knex": "3.0.0-alpha.8", - "strapi-utils": "3.0.0-alpha.8" + "strapi-knex": "3.0.0-alpha.8.2", + "strapi-utils": "3.0.0-alpha.8.2" }, "strapi": { "isHook": true, diff --git a/packages/strapi-ejs/package.json b/packages/strapi-ejs/package.json index 8c9d8efb43..b09c640600 100755 --- a/packages/strapi-ejs/package.json +++ b/packages/strapi-ejs/package.json @@ -1,6 +1,6 @@ { "name": "strapi-ejs", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "EJS hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-admin/package.json b/packages/strapi-generate-admin/package.json index dd030cfb44..c86bd9bed0 100755 --- a/packages/strapi-generate-admin/package.json +++ b/packages/strapi-generate-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-admin", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate the default admin panel for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ "dependencies": { "fs-extra": "^4.0.1", "lodash": "^4.17.4", - "strapi-admin": "3.0.0-alpha.8" + "strapi-admin": "3.0.0-alpha.8.2" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-generate-api/package.json b/packages/strapi-generate-api/package.json index 303e75ad76..73909da32b 100755 --- a/packages/strapi-generate-api/package.json +++ b/packages/strapi-generate-api/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-api", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate an API for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-controller/package.json b/packages/strapi-generate-controller/package.json index eb182bc7aa..1299fd6d59 100755 --- a/packages/strapi-generate-controller/package.json +++ b/packages/strapi-generate-controller/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-controller", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate a controller for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-model/package.json b/packages/strapi-generate-model/package.json index 0726b313a5..386cbb1558 100755 --- a/packages/strapi-generate-model/package.json +++ b/packages/strapi-generate-model/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-model", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate a model for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json index 39a38e605b..b2cfbd5ef1 100755 --- a/packages/strapi-generate-new/package.json +++ b/packages/strapi-generate-new/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-new", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate a new Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -18,7 +18,7 @@ "get-installed-path": "^3.0.1", "inquirer": "^4.0.2", "lodash": "^4.17.4", - "strapi-utils": "3.0.0-alpha.8", + "strapi-utils": "3.0.0-alpha.8.2", "uuid": "^3.1.0" }, "scripts": { diff --git a/packages/strapi-generate-plugin/package.json b/packages/strapi-generate-plugin/package.json index 88b8492eef..9b1d93fcd5 100755 --- a/packages/strapi-generate-plugin/package.json +++ b/packages/strapi-generate-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-plugin", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate an plugin for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-policy/package.json b/packages/strapi-generate-policy/package.json index d5dab53482..e21eb69f66 100755 --- a/packages/strapi-generate-policy/package.json +++ b/packages/strapi-generate-policy/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-policy", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate a policy for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-service/package.json b/packages/strapi-generate-service/package.json index 0b20284196..7e10ae5768 100755 --- a/packages/strapi-generate-service/package.json +++ b/packages/strapi-generate-service/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-service", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Generate a service for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate/package.json b/packages/strapi-generate/package.json index 4f887f1a4b..7f3fff8d6c 100755 --- a/packages/strapi-generate/package.json +++ b/packages/strapi-generate/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Master of ceremonies for the Strapi generators.", "homepage": "http://strapi.io", "keywords": [ @@ -17,7 +17,7 @@ "fs-extra": "^4.0.0", "lodash": "^4.17.4", "reportback": "^2.0.1", - "strapi-utils": "3.0.0-alpha.8" + "strapi-utils": "3.0.0-alpha.8.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index 5c49d86861..ef0a02d850 100755 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-helper-plugin", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Helper for Strapi plugins development", "engines": { "node": ">= 8.0.0", diff --git a/packages/strapi-knex/package.json b/packages/strapi-knex/package.json index 5a0bffcc43..d1a96cd75c 100755 --- a/packages/strapi-knex/package.json +++ b/packages/strapi-knex/package.json @@ -1,6 +1,6 @@ { "name": "strapi-knex", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Knex hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-middleware-views/package.json b/packages/strapi-middleware-views/package.json index 1eb8a27bed..7e3539f7b8 100755 --- a/packages/strapi-middleware-views/package.json +++ b/packages/strapi-middleware-views/package.json @@ -1,6 +1,6 @@ { "name": "strapi-middleware-views", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Views hook to enable server-side rendering for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-mongoose/package.json b/packages/strapi-mongoose/package.json index f324b92402..85e87bd9b6 100755 --- a/packages/strapi-mongoose/package.json +++ b/packages/strapi-mongoose/package.json @@ -1,6 +1,6 @@ { "name": "strapi-mongoose", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Mongoose hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -19,7 +19,7 @@ "mongoose": "^5.0.0-rc1", "mongoose-float": "^1.0.2", "pluralize": "^6.0.0", - "strapi-utils": "3.0.0-alpha.8" + "strapi-utils": "3.0.0-alpha.8.2" }, "strapi": { "isHook": true diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index da50c5e2bc..c28f8acc51 100755 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-manager", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "A powerful UI to easily manage your data.", "engines": { "node": ">= 8.0.0", @@ -46,6 +46,6 @@ }, "devDependencies": { "react-select": "^1.0.0-rc.5", - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2" } } \ No newline at end of file diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 86c496211d..81f0489df1 100755 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-type-builder", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Strapi plugin to create content type (API).", "strapi": { "name": "Content Type Builder", @@ -25,11 +25,11 @@ }, "dependencies": { "pluralize": "^7.0.0", - "strapi-generate": "3.0.0-alpha.8", - "strapi-generate-api": "3.0.0-alpha.8" + "strapi-generate": "3.0.0-alpha.8.2", + "strapi-generate-api": "3.0.0-alpha.8.2" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 44a04b84e9..a425fae535 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-email", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "This is the description of the plugin.", "strapi": { "name": "Email", @@ -27,7 +27,7 @@ "sendmail": "^1.2.0" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2" }, "author": { "name": "A Strapi developer", diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 859440e5b3..35402fbb12 100755 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-settings-manager", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Strapi plugin to manage settings.", "strapi": { "name": "Settings Manager", @@ -26,7 +26,7 @@ "devDependencies": { "flag-icon-css": "^2.8.0", "react-select": "^1.0.0-rc.5", - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 34a5113726..c18ecc1323 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-users-permissions", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "This is the description of the plugin.", "strapi": { "name": "Auth & Permissions", @@ -30,7 +30,7 @@ "uuid": "^3.1.0" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-redis/package.json b/packages/strapi-redis/package.json index 0f48699749..272abcc899 100755 --- a/packages/strapi-redis/package.json +++ b/packages/strapi-redis/package.json @@ -1,6 +1,6 @@ { "name": "strapi-redis", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Redis hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -18,7 +18,7 @@ "ioredis": "^3.1.2", "lodash": "^4.17.4", "stack-trace": "0.0.10", - "strapi-utils": "3.0.0-alpha.8" + "strapi-utils": "3.0.0-alpha.8.2" }, "strapi": { "isHook": true diff --git a/packages/strapi-utils/package.json b/packages/strapi-utils/package.json index 2b673bf5cb..2efe28e126 100755 --- a/packages/strapi-utils/package.json +++ b/packages/strapi-utils/package.json @@ -1,6 +1,6 @@ { "name": "strapi-utils", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "Shared utilities for the Strapi packages", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi/package.json b/packages/strapi/package.json index 45ba4aa186..58efe27642 100755 --- a/packages/strapi/package.json +++ b/packages/strapi/package.json @@ -1,6 +1,6 @@ { "name": "strapi", - "version": "3.0.0-alpha.8", + "version": "3.0.0-alpha.8.2", "description": "An open source solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier.", "homepage": "http://strapi.io", "keywords": [ @@ -55,14 +55,14 @@ "rimraf": "^2.6.2", "semver": "^5.4.1", "stack-trace": "0.0.10", - "strapi-generate": "3.0.0-alpha.8", - "strapi-generate-admin": "3.0.0-alpha.8", - "strapi-generate-api": "3.0.0-alpha.8", - "strapi-generate-new": "3.0.0-alpha.8", - "strapi-generate-plugin": "3.0.0-alpha.8", - "strapi-generate-policy": "3.0.0-alpha.8", - "strapi-generate-service": "3.0.0-alpha.8", - "strapi-utils": "3.0.0-alpha.8" + "strapi-generate": "3.0.0-alpha.8.2", + "strapi-generate-admin": "3.0.0-alpha.8.2", + "strapi-generate-api": "3.0.0-alpha.8.2", + "strapi-generate-new": "3.0.0-alpha.8.2", + "strapi-generate-plugin": "3.0.0-alpha.8.2", + "strapi-generate-policy": "3.0.0-alpha.8.2", + "strapi-generate-service": "3.0.0-alpha.8.2", + "strapi-utils": "3.0.0-alpha.8.2" }, "author": { "email": "hi@strapi.io", From 1413069d6bc76970bcf69629cd31c8c7c64dd4ce Mon Sep 17 00:00:00 2001 From: acifer Date: Fri, 19 Jan 2018 09:08:52 +0100 Subject: [PATCH 10/24] Updates the Summary.md to refer to correct Authentication page Reference to authentication was broken when its name was updated. Its fixed with correcting the filename. --- docs/3.x.x/en/SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/3.x.x/en/SUMMARY.md b/docs/3.x.x/en/SUMMARY.md index 07b1c3d99a..3e989ef5bb 100644 --- a/docs/3.x.x/en/SUMMARY.md +++ b/docs/3.x.x/en/SUMMARY.md @@ -16,7 +16,7 @@ * [Table of contents](concepts/concepts.md) ### Guides -* [Authentification](guides/authentification.md) +* [Authentication](guides/authentication.md) * [Configurations](configurations/configurations.md) * [Controllers](guides/controllers.md) * [Deployment](guides/deployment.md) From 19ee51376bfb245f7066b58366eb03170045f80d Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 19 Jan 2018 12:06:08 +0100 Subject: [PATCH 11/24] Add repo location in plugins package --- .../package.json | 44 +++++++++---------- .../package.json | 4 ++ packages/strapi-plugin-email/package.json | 4 ++ .../package.json | 4 ++ .../package.json | 8 +++- 5 files changed, 40 insertions(+), 24 deletions(-) diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index da50c5e2bc..97366da1fd 100755 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -2,27 +2,6 @@ "name": "strapi-plugin-content-manager", "version": "3.0.0-alpha.8", "description": "A powerful UI to easily manage your data.", - "engines": { - "node": ">= 8.0.0", - "npm": ">= 5.3.0" - }, - "author": { - "email": "hi@strapi.io", - "name": "Strapi team", - "url": "http://strapi.io" - }, - "maintainers": [ - { - "name": "Strapi team", - "email": "hi@strapi.io", - "url": "http://strapi.io" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/strapi/strapi.git" - }, - "license": "MIT", "strapi": { "name": "Content Manager", "icon": "plug", @@ -47,5 +26,26 @@ "devDependencies": { "react-select": "^1.0.0-rc.5", "strapi-helper-plugin": "3.0.0-alpha.8" - } + }, + "author": { + "name": "Strapi team", + "email": "hi@strapi.io", + "url": "http://strapi.io" + }, + "maintainers": [ + { + "name": "Strapi team", + "email": "hi@strapi.io", + "url": "http://strapi.io" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/strapi/strapi.git" + }, + "engines": { + "node": ">= 8.0.0", + "npm": ">= 3.0.0" + }, + "license": "MIT" } \ No newline at end of file diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 86c496211d..d17d48a4dd 100755 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -43,6 +43,10 @@ "url": "http://strapi.io" } ], + "repository": { + "type": "git", + "url": "git://github.com/strapi/strapi.git" + }, "engines": { "node": ">= 8.0.0", "npm": ">= 3.0.0" diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 44a04b84e9..a2c7f8e918 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -41,6 +41,10 @@ "url": "" } ], + "repository": { + "type": "git", + "url": "git://github.com/strapi/strapi.git" + }, "engines": { "node": ">= 7.0.0", "npm": ">= 3.0.0" diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 859440e5b3..3e2a90030d 100755 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -40,6 +40,10 @@ "url": "http://strapi.io" } ], + "repository": { + "type": "git", + "url": "git://github.com/strapi/strapi.git" + }, "engines": { "node": ">= 8.0.0", "npm": ">= 3.0.0" diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 34a5113726..05ee0265a5 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -1,7 +1,7 @@ { "name": "strapi-plugin-users-permissions", "version": "3.0.0-alpha.8", - "description": "This is the description of the plugin.", + "description": "Protect your API with a full-authentication process based on JWT", "strapi": { "name": "Auth & Permissions", "icon": "users", @@ -44,9 +44,13 @@ "url": "http://strapi.io" } ], + "repository": { + "type": "git", + "url": "git://github.com/strapi/strapi.git" + }, "engines": { "node": ">= 7.0.0", "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} From c66e2b382af16e96ebc09c97c30de8c744ecc4f6 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 19 Jan 2018 13:38:33 +0100 Subject: [PATCH 12/24] update strapi plugin email package --- packages/strapi-plugin-email/package.json | 14 +++++++------- .../strapi-plugin-settings-manager/package.json | 2 +- .../strapi-plugin-users-permissions/package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index a2c7f8e918..586f56c120 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -30,15 +30,15 @@ "strapi-helper-plugin": "3.0.0-alpha.8" }, "author": { - "name": "A Strapi developer", - "email": "", - "url": "" + "name": "Strapi team", + "email": "hi@strapi.io", + "url": "http://strapi.io" }, "maintainers": [ { - "name": "A Strapi developer", - "email": "", - "url": "" + "name": "Strapi team", + "email": "hi@strapi.io", + "url": "http://strapi.io" } ], "repository": { @@ -50,4 +50,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 3e2a90030d..94aaccf528 100755 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -49,4 +49,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 05ee0265a5..f6c89a0494 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -53,4 +53,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file From 086b42f07938ee7035f3f718f0d321708dee7ee0 Mon Sep 17 00:00:00 2001 From: Aurelsicoko Date: Fri, 19 Jan 2018 14:50:34 +0100 Subject: [PATCH 13/24] Improve deployment workflow and fix setup --- .travis.yml | 2 +- packages/strapi-admin/.gitignore | 1 + packages/strapi-admin/admin/.gitignore | 1 - packages/strapi-admin/package.json | 7 +-- packages/strapi-admin/scripts/setup.js | 16 +++-- .../json/package.json.js | 5 +- .../templates/gitignore | 1 - .../internals/webpack/webpack.base.babel.js | 6 +- .../internals/webpack/webpack.dll.babel.js | 48 ++++++--------- .../internals/webpack/webpack.prod.babel.js | 56 +++++++----------- .../internals/webpack/webpack.test.babel.js | 1 + packages/strapi-helper-plugin/package.json | 5 +- .../strapi-plugin-content-manager/.gitignore | 1 - .../package.json | 7 +-- .../.gitignore | 1 - .../package.json | 7 +-- packages/strapi-plugin-email/.gitignore | 1 - packages/strapi-plugin-email/package.json | 7 +-- .../package.json | 7 +-- .../package.json | 7 +-- packages/strapi/lib/utils/post-install.js | 54 ++++++++++------- scripts/setup.js | 58 +++++++++++-------- 22 files changed, 145 insertions(+), 154 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6678f29e51..f39693ef60 100755 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ before_install: - rm -rf node_modules/ install: - - npm run setup + - npm run setup --debug script: - npm run doc diff --git a/packages/strapi-admin/.gitignore b/packages/strapi-admin/.gitignore index afe256bf30..e8ce0a0883 100644 --- a/packages/strapi-admin/.gitignore +++ b/packages/strapi-admin/.gitignore @@ -8,3 +8,4 @@ package-lock.json .DS_Store npm-debug.log .idea +manifest.json diff --git a/packages/strapi-admin/admin/.gitignore b/packages/strapi-admin/admin/.gitignore index 8f9cf76d0b..e7039d8a78 100644 --- a/packages/strapi-admin/admin/.gitignore +++ b/packages/strapi-admin/admin/.gitignore @@ -1,7 +1,6 @@ # Don't check auto-generated stuff into git coverage node_modules -build plugins.json stats.json package-lock.json diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index 600c883b92..c01b1d6ac9 100755 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -16,10 +16,9 @@ "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development PORT=4000 IS_ADMIN=true node ./node_modules/strapi-helper-plugin/lib/server", "generate": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/plop --plopfile ./node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path ./admin/.gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path ./admin/.gitignore --ignore-pattern build --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build", "setup": "node ./scripts/setup.js" }, @@ -48,4 +47,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-admin/scripts/setup.js b/packages/strapi-admin/scripts/setup.js index 273de88628..c60587a03c 100644 --- a/packages/strapi-admin/scripts/setup.js +++ b/packages/strapi-admin/scripts/setup.js @@ -61,12 +61,20 @@ if (process.env.npm_config_plugins === 'true') { shell.exec(`cd ${path.resolve(plugins, plugin)} && npm install`, { silent }); - shell.exec(`cd ${path.resolve(plugins, plugin, 'node_modules', 'strapi-helper-plugin')} && npm install`, { - silent - }); + + if (isDevelopmentMode) { + shell.exec(`cd ${path.resolve(plugins, plugin)} && npm link strapi-helper-plugin`, { + silent + }); + } else { + shell.exec(`cd ${path.resolve(plugins, plugin, 'node_modules', 'strapi-helper-plugin')} && npm install`, { + silent + }); + } + shell.echo('🏗 Building...'); - const build = shell.exec(`cd ${path.resolve(plugins, plugin)} && APP_PATH=${appPath} npm run build`, { + const build = shell.exec(`cd ${path.resolve(plugins, plugin)} && APP_PATH=${appPath} npm run build`, { silent }); diff --git a/packages/strapi-generate-plugin/json/package.json.js b/packages/strapi-generate-plugin/json/package.json.js index 82eb92b5f1..f2b16f94e7 100755 --- a/packages/strapi-generate-plugin/json/package.json.js +++ b/packages/strapi-generate-plugin/json/package.json.js @@ -35,10 +35,9 @@ module.exports = scope => { 'build:clean': 'node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build', 'start': 'node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/lib/server', 'generate': 'node ./node_modules/plop/plop.js --plopfile node_modules/strapi-helper-plugin/lib/internals/generators/index.js', - 'lint': 'node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin', - 'pretest': 'npm run lint', + 'lint': 'node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern \'/admin/build/\' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin', 'prettier': 'node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write "{admin,__{tests,mocks}__}/**/*.js"', - 'test': 'echo Tests are not implemented.', + 'test': 'npm run lint', 'prepublishOnly': 'npm run build' }, 'dependencies': {}, diff --git a/packages/strapi-generate-plugin/templates/gitignore b/packages/strapi-generate-plugin/templates/gitignore index 76c6eb04d9..afe256bf30 100644 --- a/packages/strapi-generate-plugin/templates/gitignore +++ b/packages/strapi-generate-plugin/templates/gitignore @@ -1,6 +1,5 @@ # Don't check auto-generated stuff into git coverage -build node_modules stats.json package-lock.json diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.base.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.base.babel.js index f93d17a415..48ca3d94ca 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.base.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.base.babel.js @@ -20,11 +20,11 @@ const appPath = (() => { })(); const isSetup = path.resolve(process.env.PWD, '..', '..') === path.resolve(process.env.INIT_CWD); const adminPath = (() => { - if (isSetup) { - return isAdmin ? path.resolve(appPath, 'strapi-admin') : path.resolve(process.env.PWD); + if (isAdmin && isSetup) { + return path.resolve(appPath, 'strapi-admin'); } - return path.resolve(appPath, 'admin'); + return path.resolve(process.env.PWD); })(); if (!isSetup) { diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js index 7740ac1c9a..4717980053 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js @@ -21,6 +21,14 @@ const appPath = (() => { })(); const isSetup = path.resolve(process.env.PWD, '..', '..') === path.resolve(process.env.INIT_CWD); +const rootAdminpath = (() => { + if (isSetup) { + return isAdmin ? path.resolve(appPath, 'strapi-admin') : path.resolve(appPath, 'packages', 'strapi-admin'); + } + + return path.resolve(appPath, 'admin'); +})(); + module.exports = { context: appPath, entry: { @@ -29,9 +37,7 @@ module.exports = { devtool: 'cheap-module-source-map', output: { filename: '[name].dll.js', - path: isSetup ? - path.join(__dirname, 'dist'): - path.join(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'lib', 'internals', 'webpack', 'dist'), + path: path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'lib', 'internals', 'webpack', 'dist'), // The name of the global variable which the library's // require() function will be assigned to @@ -40,9 +46,7 @@ module.exports = { plugins: [ new webpack.DllPlugin({ name: '[name]_lib', - path: isSetup ? - path.join(__dirname, 'manifest.json'): - path.join(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'lib', 'internals', 'webpack', 'manifest.json'), + path: path.resolve(rootAdminpath, 'admin', 'src', 'config', 'manifest.json'), }) ], resolve: { @@ -54,30 +58,14 @@ module.exports = { ], alias: { moment: 'moment/moment.js', - 'babel-polyfill': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'babel-polyfill'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), - 'lodash': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'lodash'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), - 'immutable': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'immutable'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), - 'react-intl': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-intl'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), - 'react': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), - 'react-dom': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-dom'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), - 'react-transition-group': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-transition-group'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), - 'reactstrap': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'reactstrap'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') + 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill') + 'lodash': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), + 'immutable': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), + 'react-intl': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), + 'react': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), + 'react-dom': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), + 'react-transition-group': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), + 'reactstrap': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') }, symlinks: false, extensions: [ diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js index 410f2d2e0c..13fd2a9280 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js @@ -35,12 +35,16 @@ const adminPath = (() => { return path.resolve(appPath, 'admin'); })(); +const rootAdminpath = (() => { + if (isSetup) { + return isAdmin ? path.resolve(appPath, 'strapi-admin') : path.resolve(appPath, 'packages', 'strapi-admin'); + } + return path.resolve(appPath, 'admin'); +})(); + const plugins = [ new webpack.DllReferencePlugin({ - manifest: require(isSetup ? - path.join(__dirname, 'manifest.json'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'lib', 'internals', 'webpack', 'manifest.json') - ), + manifest: require(path.resolve(rootAdminpath, 'admin', 'src', 'config', 'manifest.json')) }), // Minify and optimize the JavaScript new webpack.optimize.UglifyJsPlugin({ @@ -79,13 +83,6 @@ if (isAdmin && !isSetup) { } catch (e) { throw new Error(`Impossible to access to ${serverConfig}`); } - - // Note: Travis failed with it. - plugins.push(new CopyWebpackPlugin([{ - from: 'config/plugins.json', - context: path.resolve(adminPath, 'admin', 'src'), - to: 'config/plugins.json' - }])); } // Build the `index.html file` @@ -112,6 +109,11 @@ if (isAdmin) { plugins.push(new AddAssetHtmlPlugin({ filepath: path.resolve(__dirname, 'dist/*.dll.js') })); + plugins.push(new CopyWebpackPlugin([{ + from: 'config/plugins.json', + context: path.resolve(adminPath, 'admin', 'src'), + to: 'config/plugins.json' + }])); } const main = (() => { @@ -167,30 +169,14 @@ module.exports = base({ alias: { moment: 'moment/moment.js', - 'babel-polyfill': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'babel-polyfill'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), - 'lodash': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'lodash'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), - 'immutable': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'immutable'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), - 'react-intl': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-intl'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), - 'react': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), - 'react-dom': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-dom'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), - 'react-transition-group': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-transition-group'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), - 'reactstrap': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'reactstrap'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') + 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill') + 'lodash': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), + 'immutable': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), + 'react-intl': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), + 'react': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), + 'react-dom': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), + 'react-transition-group': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), + 'reactstrap': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') }, devtool: 'cheap-module-source-map', diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js index 9e51519e60..203fae1203 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js @@ -24,6 +24,7 @@ module.exports = { // Some libraries don't like being run through babel. // If they gripe, put them here. noParse: [ + /build/ /node_modules(\\|\/)sinon/, /node_modules(\\|\/)acorn/, ], diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index ef0a02d850..09558764d3 100755 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -21,9 +21,8 @@ "license": "MIT", "scripts": { "lint": "cross-env IS_HELPER=true ./node_modules/eslint/bin/eslint.js --ignore-path .gitignore --config ./lib/internals/eslint/eslint-config.js .", - "pretest": "npm run lint", "prettier": "prettier --single-quote --trailing-comma es5 --write \"{lib,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented." + "test": "npm run lint" }, "pre-commit": [ "lint:admin" @@ -111,4 +110,4 @@ "webpack-hot-middleware": "^2.18.2", "whatwg-fetch": "^2.0.3" } -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-content-manager/.gitignore b/packages/strapi-plugin-content-manager/.gitignore index 76c6eb04d9..afe256bf30 100755 --- a/packages/strapi-plugin-content-manager/.gitignore +++ b/packages/strapi-plugin-content-manager/.gitignore @@ -1,6 +1,5 @@ # Don't check auto-generated stuff into git coverage -build node_modules stats.json package-lock.json diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index c28f8acc51..af7c6f9076 100755 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -38,14 +38,13 @@ "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development PLUGIN=true node ./node_modules/strapi-helper-plugin/lib/server", "generate": "node ./node_modules/plop/plop.js --plopfile ./node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build" }, "devDependencies": { "react-select": "^1.0.0-rc.5", "strapi-helper-plugin": "3.0.0-alpha.8.2" } -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-content-type-builder/.gitignore b/packages/strapi-plugin-content-type-builder/.gitignore index 6a37080b59..e41314d2e9 100755 --- a/packages/strapi-plugin-content-type-builder/.gitignore +++ b/packages/strapi-plugin-content-type-builder/.gitignore @@ -1,6 +1,5 @@ # Don’t check auto-generated stuff into git coverage -build node_modules stats.json diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 81f0489df1..1e8a1ca6ac 100755 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -17,10 +17,9 @@ "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/lib/server", "generate": "node ./node_modules/plop/plop.js --plopfile node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build" }, "dependencies": { @@ -48,4 +47,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-email/.gitignore b/packages/strapi-plugin-email/.gitignore index 5d06c054ed..ee5654a215 100755 --- a/packages/strapi-plugin-email/.gitignore +++ b/packages/strapi-plugin-email/.gitignore @@ -1,6 +1,5 @@ # Don't check auto-generated stuff into git coverage -build node_modules stats.json diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index a425fae535..45a60c0adb 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -17,10 +17,9 @@ "build:clean": "node node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node node_modules/strapi-helper-plugin/lib/server", "generate": "node node_modules/plop/plop.js --plopfile node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build" }, "dependencies": { @@ -46,4 +45,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 35402fbb12..60d4d179dd 100755 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -17,10 +17,9 @@ "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/lib/server", "generate": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/plop --plopfile ./node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build" }, "devDependencies": { @@ -45,4 +44,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index c18ecc1323..3da320d85d 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -17,10 +17,9 @@ "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/lib/server", "generate": "node ./node_modules/plop/plop.js --plopfile node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "pretest": "npm run lint", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", - "test": "echo Tests are not implemented.", + "test": "npm run lint", "prepublishOnly": "npm run build" }, "dependencies": { @@ -49,4 +48,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi/lib/utils/post-install.js b/packages/strapi/lib/utils/post-install.js index 0b9fb49f7f..ebc8548135 100644 --- a/packages/strapi/lib/utils/post-install.js +++ b/packages/strapi/lib/utils/post-install.js @@ -17,36 +17,46 @@ const pluginsDirPath = path.join(process.cwd(), 'plugins'); const adminDirPath = path.join(process.cwd(), 'admin'); const plugins = fs.readdirSync(pluginsDirPath).filter(x => x[0] !== '.'); -// Install dependencies for each plugins -_.forEach(plugins, plugin => { - const pluginPath = path.join(pluginsDirPath, plugin); - - console.log(`📦 Installing ${_.upperFirst(plugin)} (plugin) packages...`); - - try { - const install = exec(`cd ${pluginPath} && npm install --prod --ignore-scripts`, { - silent: true - }); - - if (install.stderr) { - console.error(install.stderr); - } - } catch (err) { - console.log(err); - } -}); - // Install admin dependencies -console.log(`📦 Installing admin packages...`); +console.log(`🔸 Administration Panel`); +console.log('📦 Installing packages...'); try { const install = exec(`cd ${adminDirPath} && npm install --prod --ignore-scripts`, { silent: true }); - if (install.stderr) { - console.error(build.stderr); + if (install.stderr && install.code !== 0) { + console.error(install.stderr); + process.exit(1); } + + console.log('✅ Success'); + console.log(''); } catch (err) { console.log(err); } + +// Install dependencies for each plugins +_.forEach(plugins, plugin => { + const pluginPath = path.join(pluginsDirPath, plugin); + + console.log(`🔸 Plugin - ${_.upperFirst(plugin)}`); + console.log('📦 Installing packages...'); + + try { + const install = exec(`cd ${pluginPath} && npm install --prod --ignore-scripts`, { + silent: true + }); + + if (install.stderr && install.code !== 0) { + console.error(install.stderr); + process.exit(1); + } + + console.log('✅ Success'); + console.log(''); + } catch (err) { + console.log(err); + } +}); diff --git a/scripts/setup.js b/scripts/setup.js index aecb18753e..b465f045c4 100755 --- a/scripts/setup.js +++ b/scripts/setup.js @@ -1,14 +1,15 @@ const shell = require('shelljs'); // Store installation start date. +const silent = process.env.npm_config_debug !== 'true'; const installationStartDate = new Date(); const watcher = (label, cmd, withSuccess = true) => { if (label.length > 0) { - shell.echo(`📦 ${label}`); + shell.echo(label); } const data = shell.exec(cmd, { - silent: true + silent }); if (data.stderr && data.code !== 0) { @@ -30,75 +31,84 @@ shell.echo(''); shell.rm('-f', '/usr/local/bin/strapi.js'); shell.cd('packages/strapi-utils'); -watcher('Linking strapi-utils...', 'npm link'); +watcher('📦 Linking strapi-utils...', 'npm link'); shell.cd('../strapi-generate'); watcher('', 'npm install ../strapi-utils'); -watcher('Linking strapi-generate...', 'npm link'); +watcher('📦 Linking strapi-generate...', 'npm link'); shell.cd('../strapi-generate-api'); -watcher('Linking strapi-generate-api...', 'npm link'); +watcher('📦 Linking strapi-generate-api...', 'npm link'); shell.cd('../strapi-helper-plugin'); -watcher('Linking strapi-helper-plugin...', 'npm link'); +watcher('📦 Linking strapi-helper-plugin...', 'npm link'); shell.cd('../strapi-admin'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); watcher('', 'npm install ../strapi-utils --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-admin', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); + +// Without these line Travis failed. +if (shell.test('-e', 'admin/src/config/plugins.json') === false) { + shell.config.silent = silent; + shell.cd('admin/src/config/'); + shell.ShellString('[]').to('plugins.json'); + shell.cd('../../../'); +} + +watcher('📦 Linking strapi-admin', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); shell.cd('../strapi-generate-admin'); watcher('', 'npm install ../strapi-admin'); -watcher('Linking strapi-generate-admin...', 'npm link'); +watcher('📦 Linking strapi-generate-admin...', 'npm link'); shell.cd('../strapi-generate-new'); watcher('', 'npm install ../strapi-utils'); -watcher('Linking strapi-generate-new', 'npm link'); +watcher('📦 Linking strapi-generate-new', 'npm link'); shell.cd('../strapi-mongoose'); watcher('', 'npm install ../strapi-utils'); -watcher('Linking strapi-mongoose...', 'npm link'); +watcher('📦 Linking strapi-mongoose...', 'npm link'); shell.cd('../strapi'); watcher('', 'npm install ../strapi-generate ../strapi-generate-admin ../strapi-generate-api ../strapi-generate-new ../strapi-generate-plugin ../strapi-generate-policy ../strapi-generate-service ../strapi-utils'); -watcher('Linking strapi...', 'npm link'); +watcher('📦 Linking strapi...', 'npm link'); shell.cd('../strapi-plugin-email'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-plugin-email...', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); +watcher('📦 Linking strapi-plugin-email...', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); shell.cd('../strapi-plugin-users-permissions'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-plugin-users-permissions...', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); +watcher('📦 Linking strapi-plugin-users-permissions...', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); shell.cd('../strapi-plugin-content-manager'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-plugin-content-manager...', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); +watcher('📦 Linking strapi-plugin-content-manager...', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); shell.cd('../strapi-plugin-settings-manager'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-plugin-settings-manager...', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); +watcher('📦 Linking strapi-plugin-settings-manager...', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); shell.cd('../strapi-plugin-content-type-builder'); watcher('', 'npm install ../strapi-helper-plugin --no-optional'); watcher('', 'npm install ../strapi-generate --no-optional'); watcher('', 'npm install ../strapi-generate-api --no-optional'); shell.rm('-f', 'package-lock.json'); -watcher('Linking strapi-plugin-content-type-builder...', 'npm link --no-optional', false); -watcher('Building...', 'npm run build'); +watcher('📦 Linking strapi-plugin-content-type-builder...', 'npm link --no-optional', false); +watcher('🏗 Building...', 'npm run build'); // Log installation duration. const installationEndDate = new Date(); const duration = (installationEndDate.getTime() - installationStartDate.getTime()) / 1000; -shell.echo('Strapi has been succesfully installed.'); -shell.echo(`Installation took ${Math.floor(duration / 60) > 0 ? `${Math.floor(duration / 60)} minutes and ` : ''}${Math.floor(duration % 60)} seconds.`); +shell.echo('✅ Strapi has been succesfully installed.'); +shell.echo(`⏳ The installation took ${Math.floor(duration / 60) > 0 ? `${Math.floor(duration / 60)} minutes and ` : ''}${Math.floor(duration % 60)} seconds.`); From e60876fe0dd217aa414f99fe70122f19d8afba95 Mon Sep 17 00:00:00 2001 From: Nicolas Bondoux Date: Fri, 19 Jan 2018 15:41:01 +0100 Subject: [PATCH 14/24] Fix use ShellJS --- packages/strapi-generate-new/lib/before.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index 8f53267dae..70042d4c40 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -13,6 +13,7 @@ const execSync = require('child_process').execSync; const _ = require('lodash'); const fs = require('fs-extra'); const inquirer = require('inquirer'); +const shell = require('shelljs'); // Logger. const logger = require('strapi-utils').logger; @@ -207,14 +208,8 @@ module.exports = (scope, cb) => { try { require(path.resolve(`${scope.rootPath}/node_modules/${scope.client.connector}/lib/utils/connectivity.js`))(scope, cb.success, connectionValidation); } catch(err) { - if(/^win/.test(process.platform)){ - execSync(`rmdir ${scope.rootPath} /s /q`); - } else { - execSync(`rm -r ${scope.rootPath}`); - } - + shell.rm('-r', scope.rootPath); logger.info('Copying the dashboard...'); - cb.success(); } }); From 3c9e18564de3879b38137d6c78c429144f19dcd7 Mon Sep 17 00:00:00 2001 From: Aurelsicoko Date: Fri, 19 Jan 2018 15:58:29 +0100 Subject: [PATCH 15/24] Report changes from branch hotfix/deploy --- packages/strapi-admin/package.json | 2 +- .../internals/webpack/webpack.dev.babel.js | 32 +++++-------------- .../internals/webpack/webpack.dll.babel.js | 2 +- .../internals/webpack/webpack.prod.babel.js | 2 +- .../internals/webpack/webpack.test.babel.js | 2 +- packages/strapi-helper-plugin/package.json | 2 +- packages/strapi-plugin-email/package.json | 18 +++++------ 7 files changed, 22 insertions(+), 38 deletions(-) diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index c01b1d6ac9..e5fcefe608 100755 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -47,4 +47,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js index 68dc81192e..96b3427fea 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js @@ -117,30 +117,14 @@ module.exports = require('./webpack.base.babel')({ ], alias: { moment: 'moment/moment.js', - 'babel-polyfill': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'babel-polyfill'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), - 'lodash': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'lodash'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), - 'immutable': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'immutable'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), - 'react-intl': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-intl'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), - 'react': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), - 'react-dom': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-dom'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), - 'react-transition-group': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'react-transition-group'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), - 'reactstrap': isSetup ? - path.resolve(__dirname, '..', '..', '..', 'node_modules', 'reactstrap'): - path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') + 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), + 'lodash': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), + 'immutable': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), + 'react-intl': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), + 'react': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react'), + 'react-dom': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-dom'), + 'react-transition-group': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-transition-group'), + 'reactstrap': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'reactstrap') }, // Emit a source map for easier debugging diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js index 4717980053..9c5e688595 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js @@ -58,7 +58,7 @@ module.exports = { ], alias: { moment: 'moment/moment.js', - 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill') + 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), 'lodash': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), 'immutable': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), 'react-intl': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js index 13fd2a9280..b3d811e9dc 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js @@ -169,7 +169,7 @@ module.exports = base({ alias: { moment: 'moment/moment.js', - 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill') + 'babel-polyfill': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'babel-polyfill'), 'lodash': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'lodash'), 'immutable': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'immutable'), 'react-intl': path.resolve(rootAdminpath, 'node_modules', 'strapi-helper-plugin', 'node_modules', 'react-intl'), diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js index 203fae1203..2bd10c0e44 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js @@ -24,7 +24,7 @@ module.exports = { // Some libraries don't like being run through babel. // If they gripe, put them here. noParse: [ - /build/ + /build/, /node_modules(\\|\/)sinon/, /node_modules(\\|\/)acorn/, ], diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index 09558764d3..7d2481c1c1 100755 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -110,4 +110,4 @@ "webpack-hot-middleware": "^2.18.2", "whatwg-fetch": "^2.0.3" } -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 45a60c0adb..51f5a083c6 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -8,17 +8,17 @@ "description": "email.plugin.description" }, "scripts": { - "analyze:clean": "node node_modules/strapi-helper-plugin/node_modules/.bin/rimraf stats.json", + "analyze:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf stats.json", "preanalyze": "npm run analyze:clean", - "analyze": "node node_modules/strapi-helper-plugin/lib/internals/scripts/analyze.js", + "analyze": "node ./node_modules/strapi-helper-plugin/lib/internals/scripts/analyze.js", "prebuild": "npm run build:clean && npm run test", - "build:dev": "node node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node node_modules/strapi-helper-plugin/node_modules/.bin/webpack --config node_modules/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js --color -p --progress", - "build": "node node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=production node node_modules/strapi-helper-plugin/node_modules/.bin/webpack --config node_modules/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js --color -p --progress", - "build:clean": "node node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", - "start": "node node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node node_modules/strapi-helper-plugin/lib/server", - "generate": "node node_modules/plop/plop.js --plopfile node_modules/strapi-helper-plugin/lib/internals/generators/index.js", - "lint": "node node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", - "prettier": "node node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", + "build:dev": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/node_modules/.bin/webpack --config node_modules/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js --color -p --progress", + "build": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=production node node_modules/strapi-helper-plugin/node_modules/.bin/webpack --config node_modules/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js --color -p --progress", + "build:clean": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/rimraf admin/build", + "start": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/cross-env NODE_ENV=development node ./node_modules/strapi-helper-plugin/lib/server", + "generate": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/plop --plopfile ./node_modules/strapi-helper-plugin/lib/internals/generators/index.js", + "lint": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/eslint --ignore-path .gitignore --ignore-pattern '/admin/build/' --config ./node_modules/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json admin", + "prettier": "node ./node_modules/strapi-helper-plugin/node_modules/.bin/prettier --single-quote --trailing-comma es5 --write \"{admin,__{tests,mocks}__}/**/*.js\"", "test": "npm run lint", "prepublishOnly": "npm run build" }, From 5b93cc5242a11b217c5a4a8890d2d545d4fff9d7 Mon Sep 17 00:00:00 2001 From: Aurelsicoko Date: Fri, 19 Jan 2018 16:49:57 +0100 Subject: [PATCH 16/24] 3.0.0-alpha.8.3 --- package.json | 2 +- packages/strapi-admin/package.json | 6 +++--- packages/strapi-bookshelf/package.json | 8 ++++---- packages/strapi-ejs/package.json | 4 ++-- packages/strapi-generate-admin/package.json | 4 ++-- packages/strapi-generate-api/package.json | 4 ++-- .../strapi-generate-controller/package.json | 4 ++-- packages/strapi-generate-model/package.json | 4 ++-- packages/strapi-generate-new/package.json | 6 +++--- packages/strapi-generate-plugin/package.json | 4 ++-- packages/strapi-generate-policy/package.json | 4 ++-- packages/strapi-generate-service/package.json | 4 ++-- packages/strapi-generate/package.json | 4 ++-- packages/strapi-helper-plugin/package.json | 2 +- packages/strapi-knex/package.json | 2 +- packages/strapi-middleware-views/package.json | 2 +- packages/strapi-mongoose/package.json | 4 ++-- .../strapi-plugin-content-manager/package.json | 6 +++--- .../package.json | 10 +++++----- packages/strapi-plugin-email/package.json | 6 +++--- .../package.json | 6 +++--- .../package.json | 6 +++--- packages/strapi-redis/package.json | 4 ++-- packages/strapi-utils/package.json | 2 +- packages/strapi/package.json | 18 +++++++++--------- 25 files changed, 63 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index ae619a818c..dd9e0906d2 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "devDependencies": { "assert": "~1.3.0", "babel-eslint": "^6.1.2", diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index e5fcefe608..2f8dcbc9dc 100755 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-admin", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Strapi Admin", "repository": { "type": "git", @@ -27,8 +27,8 @@ }, "devDependencies": { "sanitize.css": "^4.1.0", - "strapi-helper-plugin": "3.0.0-alpha.8.2", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3", + "strapi-utils": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi", diff --git a/packages/strapi-bookshelf/package.json b/packages/strapi-bookshelf/package.json index cb5bf36f95..dc107668b0 100755 --- a/packages/strapi-bookshelf/package.json +++ b/packages/strapi-bookshelf/package.json @@ -1,6 +1,6 @@ { "name": "strapi-bookshelf", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Bookshelf hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -19,8 +19,8 @@ "bookshelf": "^0.10.3", "lodash": "^4.17.4", "pluralize": "^6.0.0", - "strapi-knex": "3.0.0-alpha.8.2", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-knex": "3.0.0-alpha.8.3", + "strapi-utils": "3.0.0-alpha.8.3" }, "strapi": { "isHook": true, @@ -55,4 +55,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-ejs/package.json b/packages/strapi-ejs/package.json index b09c640600..8221d0f30d 100755 --- a/packages/strapi-ejs/package.json +++ b/packages/strapi-ejs/package.json @@ -1,6 +1,6 @@ { "name": "strapi-ejs", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "EJS hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -46,4 +46,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-admin/package.json b/packages/strapi-generate-admin/package.json index c86bd9bed0..8864226cc2 100755 --- a/packages/strapi-generate-admin/package.json +++ b/packages/strapi-generate-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-admin", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate the default admin panel for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -15,7 +15,7 @@ "dependencies": { "fs-extra": "^4.0.1", "lodash": "^4.17.4", - "strapi-admin": "3.0.0-alpha.8.2" + "strapi-admin": "3.0.0-alpha.8.3" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-generate-api/package.json b/packages/strapi-generate-api/package.json index 73909da32b..0bbaa2a21f 100755 --- a/packages/strapi-generate-api/package.json +++ b/packages/strapi-generate-api/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-api", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate an API for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -43,4 +43,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-controller/package.json b/packages/strapi-generate-controller/package.json index 1299fd6d59..6f38e7de43 100755 --- a/packages/strapi-generate-controller/package.json +++ b/packages/strapi-generate-controller/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-controller", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate a controller for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ @@ -43,4 +43,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-model/package.json b/packages/strapi-generate-model/package.json index 386cbb1558..5c098933e9 100755 --- a/packages/strapi-generate-model/package.json +++ b/packages/strapi-generate-model/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-model", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate a model for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ @@ -43,4 +43,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json index b2cfbd5ef1..b84b986c04 100755 --- a/packages/strapi-generate-new/package.json +++ b/packages/strapi-generate-new/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-new", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate a new Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -18,7 +18,7 @@ "get-installed-path": "^3.0.1", "inquirer": "^4.0.2", "lodash": "^4.17.4", - "strapi-utils": "3.0.0-alpha.8.2", + "strapi-utils": "3.0.0-alpha.8.3", "uuid": "^3.1.0" }, "scripts": { @@ -48,4 +48,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-plugin/package.json b/packages/strapi-generate-plugin/package.json index 9b1d93fcd5..0588cc1024 100755 --- a/packages/strapi-generate-plugin/package.json +++ b/packages/strapi-generate-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-plugin", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate an plugin for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -44,4 +44,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-policy/package.json b/packages/strapi-generate-policy/package.json index e21eb69f66..33fa26b59f 100755 --- a/packages/strapi-generate-policy/package.json +++ b/packages/strapi-generate-policy/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-policy", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate a policy for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ @@ -43,4 +43,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate-service/package.json b/packages/strapi-generate-service/package.json index 7e10ae5768..005be9e8cd 100755 --- a/packages/strapi-generate-service/package.json +++ b/packages/strapi-generate-service/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate-service", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Generate a service for a Strapi API.", "homepage": "http://strapi.io", "keywords": [ @@ -43,4 +43,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/strapi-generate/package.json b/packages/strapi-generate/package.json index 7f3fff8d6c..4a9ec72b6a 100755 --- a/packages/strapi-generate/package.json +++ b/packages/strapi-generate/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Master of ceremonies for the Strapi generators.", "homepage": "http://strapi.io", "keywords": [ @@ -17,7 +17,7 @@ "fs-extra": "^4.0.0", "lodash": "^4.17.4", "reportback": "^2.0.1", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-utils": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index 7d2481c1c1..123d604cff 100755 --- a/packages/strapi-helper-plugin/package.json +++ b/packages/strapi-helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-helper-plugin", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Helper for Strapi plugins development", "engines": { "node": ">= 8.0.0", diff --git a/packages/strapi-knex/package.json b/packages/strapi-knex/package.json index d1a96cd75c..72f001c722 100755 --- a/packages/strapi-knex/package.json +++ b/packages/strapi-knex/package.json @@ -1,6 +1,6 @@ { "name": "strapi-knex", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Knex hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-middleware-views/package.json b/packages/strapi-middleware-views/package.json index 7e3539f7b8..3381ee0cd2 100755 --- a/packages/strapi-middleware-views/package.json +++ b/packages/strapi-middleware-views/package.json @@ -1,6 +1,6 @@ { "name": "strapi-middleware-views", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Views hook to enable server-side rendering for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-mongoose/package.json b/packages/strapi-mongoose/package.json index 85e87bd9b6..b918361543 100755 --- a/packages/strapi-mongoose/package.json +++ b/packages/strapi-mongoose/package.json @@ -1,6 +1,6 @@ { "name": "strapi-mongoose", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Mongoose hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -19,7 +19,7 @@ "mongoose": "^5.0.0-rc1", "mongoose-float": "^1.0.2", "pluralize": "^6.0.0", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-utils": "3.0.0-alpha.8.3" }, "strapi": { "isHook": true diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index af7c6f9076..c8eeda7340 100755 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-manager", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "A powerful UI to easily manage your data.", "engines": { "node": ">= 8.0.0", @@ -45,6 +45,6 @@ }, "devDependencies": { "react-select": "^1.0.0-rc.5", - "strapi-helper-plugin": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3" } -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 1e8a1ca6ac..396d57eea0 100755 --- a/packages/strapi-plugin-content-type-builder/package.json +++ b/packages/strapi-plugin-content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-content-type-builder", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Strapi plugin to create content type (API).", "strapi": { "name": "Content Type Builder", @@ -24,11 +24,11 @@ }, "dependencies": { "pluralize": "^7.0.0", - "strapi-generate": "3.0.0-alpha.8.2", - "strapi-generate-api": "3.0.0-alpha.8.2" + "strapi-generate": "3.0.0-alpha.8.3", + "strapi-generate-api": "3.0.0-alpha.8.3" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi team", @@ -47,4 +47,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 51f5a083c6..b1fa8c429e 100644 --- a/packages/strapi-plugin-email/package.json +++ b/packages/strapi-plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-email", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "This is the description of the plugin.", "strapi": { "name": "Email", @@ -26,7 +26,7 @@ "sendmail": "^1.2.0" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3" }, "author": { "name": "A Strapi developer", @@ -45,4 +45,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json index 60d4d179dd..fe9e2d0fa0 100755 --- a/packages/strapi-plugin-settings-manager/package.json +++ b/packages/strapi-plugin-settings-manager/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-settings-manager", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Strapi plugin to manage settings.", "strapi": { "name": "Settings Manager", @@ -25,7 +25,7 @@ "devDependencies": { "flag-icon-css": "^2.8.0", "react-select": "^1.0.0-rc.5", - "strapi-helper-plugin": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi team", @@ -44,4 +44,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 3da320d85d..d49795f256 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-users-permissions", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "This is the description of the plugin.", "strapi": { "name": "Auth & Permissions", @@ -29,7 +29,7 @@ "uuid": "^3.1.0" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.8.2" + "strapi-helper-plugin": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi team", @@ -48,4 +48,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/strapi-redis/package.json b/packages/strapi-redis/package.json index 272abcc899..4081698a66 100755 --- a/packages/strapi-redis/package.json +++ b/packages/strapi-redis/package.json @@ -1,6 +1,6 @@ { "name": "strapi-redis", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Redis hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -18,7 +18,7 @@ "ioredis": "^3.1.2", "lodash": "^4.17.4", "stack-trace": "0.0.10", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-utils": "3.0.0-alpha.8.3" }, "strapi": { "isHook": true diff --git a/packages/strapi-utils/package.json b/packages/strapi-utils/package.json index 2efe28e126..c6440f409b 100755 --- a/packages/strapi-utils/package.json +++ b/packages/strapi-utils/package.json @@ -1,6 +1,6 @@ { "name": "strapi-utils", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "Shared utilities for the Strapi packages", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi/package.json b/packages/strapi/package.json index 58efe27642..e14701564b 100755 --- a/packages/strapi/package.json +++ b/packages/strapi/package.json @@ -1,6 +1,6 @@ { "name": "strapi", - "version": "3.0.0-alpha.8.2", + "version": "3.0.0-alpha.8.3", "description": "An open source solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier.", "homepage": "http://strapi.io", "keywords": [ @@ -55,14 +55,14 @@ "rimraf": "^2.6.2", "semver": "^5.4.1", "stack-trace": "0.0.10", - "strapi-generate": "3.0.0-alpha.8.2", - "strapi-generate-admin": "3.0.0-alpha.8.2", - "strapi-generate-api": "3.0.0-alpha.8.2", - "strapi-generate-new": "3.0.0-alpha.8.2", - "strapi-generate-plugin": "3.0.0-alpha.8.2", - "strapi-generate-policy": "3.0.0-alpha.8.2", - "strapi-generate-service": "3.0.0-alpha.8.2", - "strapi-utils": "3.0.0-alpha.8.2" + "strapi-generate": "3.0.0-alpha.8.3", + "strapi-generate-admin": "3.0.0-alpha.8.3", + "strapi-generate-api": "3.0.0-alpha.8.3", + "strapi-generate-new": "3.0.0-alpha.8.3", + "strapi-generate-plugin": "3.0.0-alpha.8.3", + "strapi-generate-policy": "3.0.0-alpha.8.3", + "strapi-generate-service": "3.0.0-alpha.8.3", + "strapi-utils": "3.0.0-alpha.8.3" }, "author": { "email": "hi@strapi.io", From 7f2fcd7c943f87c891261e3b8a97f82e31cc6c3f Mon Sep 17 00:00:00 2001 From: Satrio Wisnugroho Date: Mon, 22 Jan 2018 10:41:31 +0700 Subject: [PATCH 17/24] Fix missing comma --- docs/3.x.x/en/advanced/middlewares.md | 4 ++-- docs/3.x.x/en/guides/authentication.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/3.x.x/en/advanced/middlewares.md b/docs/3.x.x/en/advanced/middlewares.md index 5ab502e0ea..787ed7a683 100644 --- a/docs/3.x.x/en/advanced/middlewares.md +++ b/docs/3.x.x/en/advanced/middlewares.md @@ -176,7 +176,7 @@ The `gzip` middleware will be loaded after the `p3p` middleware. All the others ], "order": [], "after": [ - "parser" + "parser", "router" ] } @@ -216,7 +216,7 @@ We assume that we set the `./config/middleware.json` file like this: "gzip" ], "after": [ - "parser" + "parser", "router" ] } diff --git a/docs/3.x.x/en/guides/authentication.md b/docs/3.x.x/en/guides/authentication.md index 11a1397be0..3bf2928450 100644 --- a/docs/3.x.x/en/guides/authentication.md +++ b/docs/3.x.x/en/guides/authentication.md @@ -11,7 +11,7 @@ $.ajax({ type: 'POST', url: 'http://localhost:1337/auth/local/register', data: { - username: 'Strapi user' + username: 'Strapi user', email: 'user@strapi.io', password: 'strapiPassword' }, @@ -91,7 +91,7 @@ $.ajax({ type: 'POST', url: 'http://localhost:1337/auth/forgot-password', data: { - email: 'user@strapi.io' + email: 'user@strapi.io', url: 'http://mon-site.com/rest-password' }, done: function() { @@ -118,8 +118,8 @@ $.ajax({ type: 'POST', url: 'http://localhost:1337/auth/reset-password', data: { - code: 'privateCode' - password: 'myNewPassword' + code: 'privateCode', + password: 'myNewPassword', passwordConfirmation: 'myNewPassword' }, done: function() { From ec1c278618b19561873aabee2f9e5ef6f21cee15 Mon Sep 17 00:00:00 2001 From: Satrio Wisnugroho Date: Mon, 22 Jan 2018 11:08:05 +0700 Subject: [PATCH 18/24] Fix indentation --- docs/3.x.x/en/guides/i18n.md | 4 +- docs/3.x.x/en/guides/requests.md | 18 +-- docs/3.x.x/en/guides/responses.md | 220 +++++++++++++++--------------- 3 files changed, 121 insertions(+), 121 deletions(-) diff --git a/docs/3.x.x/en/guides/i18n.md b/docs/3.x.x/en/guides/i18n.md index d7bdf0d0ce..19998eaf00 100644 --- a/docs/3.x.x/en/guides/i18n.md +++ b/docs/3.x.x/en/guides/i18n.md @@ -48,14 +48,14 @@ You need to define the english and french translation for this key. **Path —** `./config/locales/en_US.json`. ```json { - "Hello %s": "Hello %s" + "Hello %s": "Hello %s" } ``` **Path —** `./config/locales/fr_FR.json`. ```json { - "Hello %s": "Bonjour %s" + "Hello %s": "Bonjour %s" } ``` diff --git a/docs/3.x.x/en/guides/requests.md b/docs/3.x.x/en/guides/requests.md index c62f34bb3a..408b195383 100644 --- a/docs/3.x.x/en/guides/requests.md +++ b/docs/3.x.x/en/guides/requests.md @@ -137,8 +137,8 @@ For example "color=blue&size=small": ```js { -color: 'blue', -size: 'small' + color: 'blue', + size: 'small' } ``` @@ -163,8 +163,8 @@ ctx.set('ETag', '123'); // cache is ok if (ctx.fresh) { -ctx.status = 304; -return; + ctx.status = 304; + return; } // cache is stale @@ -238,7 +238,7 @@ only images are sent to a given route: if (ctx.is('image/*')) { // process } else { -ctx.throw(415, 'images only!'); + ctx.throw(415, 'images only!'); } ``` @@ -300,10 +300,10 @@ or use a switch: ```js switch (ctx.accepts('json', 'html', 'text')) { -case 'json': break; -case 'html': break; -case 'text': break; -default: ctx.throw(406, 'json, html, or text only'); + case 'json': break; + case 'html': break; + case 'text': break; + default: ctx.throw(406, 'json, html, or text only'); } ``` diff --git a/docs/3.x.x/en/guides/responses.md b/docs/3.x.x/en/guides/responses.md index 52a265689f..ce1afab894 100644 --- a/docs/3.x.x/en/guides/responses.md +++ b/docs/3.x.x/en/guides/responses.md @@ -155,7 +155,7 @@ Here's an example of stream error handling without automatically destroying the const PassThrough = require('stream').PassThrough; app.use(async ctx => { -ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough()); + ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough()); }); ``` @@ -192,8 +192,8 @@ Set several response header `fields` with an object: ```js ctx.set({ -'Etag': '1234', -'Last-Modified': date + 'Etag': '1234', + 'Last-Modified': date }); ``` @@ -247,7 +247,7 @@ let body = ctx.body; if (!body || body.pipe) return; if (Buffer.isBuffer(body)) body = body.toString(); -ctx.body = minify(body); + ctx.body = minify(body); }); ``` @@ -468,7 +468,7 @@ Here's an example of stream error handling without automatically destroying the const PassThrough = require('stream').PassThrough; app.use(async ctx => { -ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough()); + ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough()); }); ``` @@ -505,8 +505,8 @@ Set several response header `fields` with an object: ```js ctx.set({ -'Etag': '1234', -'Last-Modified': date + 'Etag': '1234', + 'Last-Modified': date }); ``` @@ -560,7 +560,7 @@ let body = ctx.body; if (!body || body.pipe) return; if (Buffer.isBuffer(body)) body = body.toString(); -ctx.body = minify(body); + ctx.body = minify(body); }); ``` @@ -693,9 +693,9 @@ Generates the following response payload: ```json { - "statusCode": 400, - "error": "Bad Request", - "message": "invalid query" + "statusCode": 400, + "error": "Bad Request", + "message": "invalid query" } ``` @@ -723,9 +723,9 @@ Generates the following response: ```json "payload": { - "statusCode": 401, - "error": "Unauthorized", - "message": "invalid password" + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password" }, "headers" {} ``` @@ -738,12 +738,12 @@ Generates the following response: ```json "payload": { - "statusCode": 401, - "error": "Unauthorized", - "message": "invalid password", - "attributes": { - "error": "invalid password" - } + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password", + "attributes": { + "error": "invalid password" + } }, "headers" { "WWW-Authenticate": "sample error=\"invalid password\"" @@ -758,9 +758,9 @@ Generates the following response: ```json "payload": { - "statusCode": 401, - "error": "Unauthorized", - "attributes": "VGhpcyBpcyBhIHRlc3QgdG9rZW4=" + "statusCode": 401, + "error": "Unauthorized", + "attributes": "VGhpcyBpcyBhIHRlc3QgdG9rZW4=" }, "headers" { "WWW-Authenticate": "Negotiate VGhpcyBpcyBhIHRlc3QgdG9rZW4=" @@ -775,15 +775,15 @@ Generates the following response: ```json "payload": { - "statusCode": 401, - "error": "Unauthorized", - "message": "invalid password", - "attributes": { - "error": "invalid password", - "ttl": 0, - "cache": "", - "foo": "bar" - } + "statusCode": 401, + "error": "Unauthorized", + "message": "invalid password", + "attributes": { + "error": "invalid password", + "ttl": 0, + "cache": "", + "foo": "bar" + } }, "headers" { "WWW-Authenticate": "sample ttl=\"0\", cache=\"\", foo=\"bar\", error=\"invalid password\"" @@ -804,9 +804,9 @@ Generates the following response payload: ```json { - "statusCode": 402, - "error": "Payment Required", - "message": "bandwidth used" + "statusCode": 402, + "error": "Payment Required", + "message": "bandwidth used" } ``` @@ -824,9 +824,9 @@ Generates the following response payload: ```json { - "statusCode": 403, - "error": "Forbidden", - "message": "try again some time" + "statusCode": 403, + "error": "Forbidden", + "message": "try again some time" } ``` @@ -844,9 +844,9 @@ Generates the following response payload: ```json { - "statusCode": 404, - "error": "Not Found", - "message": "missing" + "statusCode": 404, + "error": "Not Found", + "message": "missing" } ``` @@ -865,9 +865,9 @@ Generates the following response payload: ```json { - "statusCode": 405, - "error": "Method Not Allowed", - "message": "that method is not allowed" + "statusCode": 405, + "error": "Method Not Allowed", + "message": "that method is not allowed" } ``` @@ -885,9 +885,9 @@ Generates the following response payload: ```json { - "statusCode": 406, - "error": "Not Acceptable", - "message": "unacceptable" + "statusCode": 406, + "error": "Not Acceptable", + "message": "unacceptable" } ``` @@ -905,9 +905,9 @@ Generates the following response payload: ```json { - "statusCode": 407, - "error": "Proxy Authentication Required", - "message": "auth missing" + "statusCode": 407, + "error": "Proxy Authentication Required", + "message": "auth missing" } ``` @@ -925,9 +925,9 @@ Generates the following response payload: ```json { - "statusCode": 408, - "error": "Request Time-out", - "message": "timed out" + "statusCode": 408, + "error": "Request Time-out", + "message": "timed out" } ``` @@ -945,9 +945,9 @@ Generates the following response payload: ```json { - "statusCode": 409, - "error": "Conflict", - "message": "there was a conflict" + "statusCode": 409, + "error": "Conflict", + "message": "there was a conflict" } ``` @@ -965,9 +965,9 @@ Generates the following response payload: ```json { - "statusCode": 410, - "error": "Gone", - "message": "it is gone" + "statusCode": 410, + "error": "Gone", + "message": "it is gone" } ``` @@ -985,9 +985,9 @@ Generates the following response payload: ```json { - "statusCode": 411, - "error": "Length Required", - "message": "length needed" + "statusCode": 411, + "error": "Length Required", + "message": "length needed" } ``` @@ -1005,8 +1005,8 @@ Generates the following response payload: ```json { - "statusCode": 412, - "error": "Precondition Failed" + "statusCode": 412, + "error": "Precondition Failed" } ``` @@ -1024,9 +1024,9 @@ Generates the following response payload: ```json { - "statusCode": 413, - "error": "Request Entity Too Large", - "message": "too big" + "statusCode": 413, + "error": "Request Entity Too Large", + "message": "too big" } ``` @@ -1044,9 +1044,9 @@ Generates the following response payload: ```json { - "statusCode": 414, - "error": "Request-URI Too Large", - "message": "uri is too long" + "statusCode": 414, + "error": "Request-URI Too Large", + "message": "uri is too long" } ``` @@ -1064,9 +1064,9 @@ Generates the following response payload: ```json { - "statusCode": 415, - "error": "Unsupported Media Type", - "message": "that media is not supported" + "statusCode": 415, + "error": "Unsupported Media Type", + "message": "that media is not supported" } ``` @@ -1084,8 +1084,8 @@ Generates the following response payload: ```json { - "statusCode": 416, - "error": "Requested Range Not Satisfiable" + "statusCode": 416, + "error": "Requested Range Not Satisfiable" } ``` @@ -1103,9 +1103,9 @@ Generates the following response payload: ```json { - "statusCode": 417, - "error": "Expectation Failed", - "message": "expected this to work" + "statusCode": 417, + "error": "Expectation Failed", + "message": "expected this to work" } ``` @@ -1123,9 +1123,9 @@ Generates the following response payload: ```json { - "statusCode": 418, - "error": "I'm a Teapot", - "message": "Sorry, no coffee..." + "statusCode": 418, + "error": "I'm a Teapot", + "message": "Sorry, no coffee..." } ``` @@ -1143,9 +1143,9 @@ Generates the following response payload: ```json { - "statusCode": 422, - "error": "Unprocessable Entity", - "message": "your data is bad and you should feel bad" + "statusCode": 422, + "error": "Unprocessable Entity", + "message": "your data is bad and you should feel bad" } ``` @@ -1163,9 +1163,9 @@ Generates the following response payload: ```json { - "statusCode": 423, - "error": "Locked", - "message": "this resource has been locked" + "statusCode": 423, + "error": "Locked", + "message": "this resource has been locked" } ``` @@ -1183,9 +1183,9 @@ Generates the following response payload: ```json { - "statusCode": 428, - "error": "Precondition Required", - "message": "you must supply an If-Match header" + "statusCode": 428, + "error": "Precondition Required", + "message": "you must supply an If-Match header" } ``` @@ -1203,9 +1203,9 @@ Generates the following response payload: ```json { - "statusCode": 429, - "error": "Too Many Requests", - "message": "you have exceeded your request limit" + "statusCode": 429, + "error": "Too Many Requests", + "message": "you have exceeded your request limit" } ``` @@ -1223,9 +1223,9 @@ Generates the following response payload: ```json { - "statusCode": 451, - "error": "Unavailable For Legal Reasons", - "message": "you are not permitted to view this resource for legal reasons" + "statusCode": 451, + "error": "Unavailable For Legal Reasons", + "message": "you are not permitted to view this resource for legal reasons" } ``` @@ -1247,9 +1247,9 @@ Generates the following response payload: ```json { - "statusCode": 500, - "error": "Internal Server Error", - "message": "An internal server error occurred" + "statusCode": 500, + "error": "Internal Server Error", + "message": "An internal server error occurred" } ``` @@ -1267,9 +1267,9 @@ Generates the following response payload: ```json { - "statusCode": 501, - "error": "Not Implemented", - "message": "method not implemented" + "statusCode": 501, + "error": "Not Implemented", + "message": "method not implemented" } ``` @@ -1287,9 +1287,9 @@ Generates the following response payload: ```json { - "statusCode": 502, - "error": "Bad Gateway", - "message": "that is a bad gateway" + "statusCode": 502, + "error": "Bad Gateway", + "message": "that is a bad gateway" } ``` @@ -1307,9 +1307,9 @@ Generates the following response payload: ```json { - "statusCode": 503, - "error": "Service Unavailable", - "message": "unavailable" + "statusCode": 503, + "error": "Service Unavailable", + "message": "unavailable" } ``` @@ -1327,7 +1327,7 @@ Generates the following response payload: ```json { - "statusCode": 504, - "error": "Gateway Time-out" + "statusCode": 504, + "error": "Gateway Time-out" } ``` From ded4210eff9ffaeaefd2a9af7ce0cfd3abe484cc Mon Sep 17 00:00:00 2001 From: ArkhipovK Date: Mon, 22 Jan 2018 14:43:17 +0600 Subject: [PATCH 19/24] strapi new connection config fail fix #476 #485 issues --- packages/strapi-generate-new/lib/before.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index 70042d4c40..1147d62ab4 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -187,14 +187,14 @@ module.exports = (scope, cb) => { }); }), new Promise(resolve => { - let cmd = `npm install --prefix ${scope.rootPath} ${scope.client.connector}@alpha`; + let cmd = `npm install --prefix "${scope.rootPath}" ${scope.client.connector}@alpha`; if (scope.client.module) { cmd += ` ${scope.client.module}`; } exec(cmd, () => { if (scope.client.module) { - const lock = require(`${scope.rootPath}/node_modules/${scope.client.module}/package.json`); + const lock =require(path.join(`${scope.rootPath}`,`/node_modules/`,`${scope.client.module}/package.json`)); scope.client.version = lock.version; } @@ -206,7 +206,7 @@ module.exports = (scope, cb) => { Promise.all(asyncFn) .then(() => { try { - require(path.resolve(`${scope.rootPath}/node_modules/${scope.client.connector}/lib/utils/connectivity.js`))(scope, cb.success, connectionValidation); + require(path.join(`${scope.rootPath}`,`/node_modules/`,`${scope.client.connector}/lib/utils/connectivity.js`))(scope, cb.success, connectionValidation); } catch(err) { shell.rm('-r', scope.rootPath); logger.info('Copying the dashboard...'); From 251e4609a92c3b09c99f88c315d79e44b0d9a5cc Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Mon, 22 Jan 2018 11:35:14 +0100 Subject: [PATCH 20/24] Fix space --- packages/strapi-generate-new/lib/before.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index 1147d62ab4..9989091348 100755 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -194,7 +194,7 @@ module.exports = (scope, cb) => { exec(cmd, () => { if (scope.client.module) { - const lock =require(path.join(`${scope.rootPath}`,`/node_modules/`,`${scope.client.module}/package.json`)); + const lock = require(path.join(`${scope.rootPath}`,`/node_modules/`,`${scope.client.module}/package.json`)); scope.client.version = lock.version; } From a3700a93d588e2b21ea51daa1b6849123f81cf76 Mon Sep 17 00:00:00 2001 From: Brandon Cheng Date: Sun, 21 Jan 2018 23:03:41 -0500 Subject: [PATCH 21/24] Fix undefined rootAdminpath in admin dev mode It looks like rootAdminpath is used in the development webpack config file (copied from one of the other webpack configs), but its definition was omitted accidentally. Fixes #415 --- .../lib/internals/webpack/webpack.dev.babel.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js index 96b3427fea..89bc6bce2a 100755 --- a/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js +++ b/packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js @@ -15,6 +15,7 @@ const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPl const LodashModuleReplacementPlugin = require('lodash-webpack-plugin'); const isAdmin = process.env.IS_ADMIN === 'true'; +const isSetup = path.resolve(process.env.PWD, '..', '..') === path.resolve(process.env.INIT_CWD); const appPath = (() => { if (process.env.APP_PATH) { return process.env.APP_PATH; @@ -22,7 +23,13 @@ const appPath = (() => { return isAdmin ? path.resolve(process.env.PWD, '..') : path.resolve(process.env.PWD, '..', '..'); })(); -const isSetup = path.resolve(process.env.PWD, '..', '..') === path.resolve(process.env.INIT_CWD); + +const rootAdminpath = (() => { + if (isSetup) { + return isAdmin ? path.resolve(appPath, 'strapi-admin') : path.resolve(appPath, 'packages', 'strapi-admin'); + } + return path.resolve(appPath, 'admin'); +})(); // Load plugins into the same build in development mode. const plugins = { From 8a2b312c554728aab556418f4438741c3313ba4f Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Mon, 22 Jan 2018 16:14:45 +0100 Subject: [PATCH 22/24] Update dependency version --- packages/strapi-plugin-content-manager/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index 529abf3660..242c3e61d7 100755 --- a/packages/strapi-plugin-content-manager/package.json +++ b/packages/strapi-plugin-content-manager/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "react-select": "^1.0.0-rc.5", - "strapi-helper-plugin": "3.0.0-alpha.8" + "strapi-helper-plugin": "3.0.0-alpha.8.3" }, "author": { "name": "Strapi team", @@ -47,4 +47,4 @@ "npm": ">= 3.0.0" }, "license": "MIT" -} \ No newline at end of file +} From 6b418b1460ea312b752c27ec941cf9e854ec84e9 Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Tue, 23 Jan 2018 09:30:25 +0100 Subject: [PATCH 23/24] Fix PR feedback and add twitter provider --- .../admin/src/config/manifest.json | 1 + .../config/functions/bootstrap.js | 13 ++--- .../controllers/Auth.js | 3 +- .../middlewares/provider/index.js | 3 +- .../package.json | 2 - .../services/Providers.js | 52 +++++++++++-------- packages/strapi/lib/core/middlewares.js | 6 +-- 7 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 packages/strapi-admin/admin/src/config/manifest.json diff --git a/packages/strapi-admin/admin/src/config/manifest.json b/packages/strapi-admin/admin/src/config/manifest.json new file mode 100644 index 0000000000..9fec71a004 --- /dev/null +++ b/packages/strapi-admin/admin/src/config/manifest.json @@ -0,0 +1 @@ +{"name":"vendor_lib","content":{"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_export.js":{"id":0,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_an-object.js":{"id":1,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_global.js":{"id":2,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_fails.js":{"id":3,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_is-object.js":{"id":4,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_wks.js":{"id":5,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_descriptors.js":{"id":6,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-dp.js":{"id":7,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-length.js":{"id":8,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-object.js":{"id":9,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_a-function.js":{"id":10,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_has.js":{"id":11,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_hide.js":{"id":12,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_redefine.js":{"id":13,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-html.js":{"id":14,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react/index.js":{"id":15,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-iobject.js":{"id":16,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-gopd.js":{"id":17,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-gpo.js":{"id":18,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_ctx.js":{"id":19,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_cof.js":{"id":20,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_strict-method.js":{"id":21,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/prop-types/index.js":{"id":22,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_core.js":{"id":23,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-primitive.js":{"id":24,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_defined.js":{"id":25,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-integer.js":{"id":26,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-sap.js":{"id":27,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-methods.js":{"id":28,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_typed-array.js":{"id":29,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_metadata.js":{"id":30,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_meta.js":{"id":31,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_add-to-unscopables.js":{"id":32,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_property-desc.js":{"id":33,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_uid.js":{"id":34,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_library.js":{"id":35,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-keys.js":{"id":36,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-absolute-index.js":{"id":37,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-create.js":{"id":38,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-gopn.js":{"id":39,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_set-species.js":{"id":40,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_an-instance.js":{"id":41,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_for-of.js":{"id":42,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_redefine-all.js":{"id":43,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_set-to-string-tag.js":{"id":44,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-trim.js":{"id":45,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iterators.js":{"id":46,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_validate-collection.js":{"id":47,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iobject.js":{"id":48,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-pie.js":{"id":49,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_classof.js":{"id":50,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/emptyFunction.js":{"id":51,"meta":{}},"./strapi-helper-plugin/node_modules/webpack/buildin/global.js":{"id":52,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_shared.js":{"id":53,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-includes.js":{"id":54,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-gops.js":{"id":55,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_is-array.js":{"id":56,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_is-regexp.js":{"id":57,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iter-detect.js":{"id":58,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_flags.js":{"id":59,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_fix-re-wks.js":{"id":60,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_species-constructor.js":{"id":61,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_collection.js":{"id":62,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_typed.js":{"id":63,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-forced-pam.js":{"id":64,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_set-collection-of.js":{"id":65,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_set-collection-from.js":{"id":66,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-dom/index.js":{"id":67,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_dom-create.js":{"id":68,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_wks-define.js":{"id":69,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_shared-key.js":{"id":70,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_enum-bug-keys.js":{"id":71,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_html.js":{"id":72,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_set-proto.js":{"id":73,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-ws.js":{"id":74,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_inherit-if-required.js":{"id":75,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-repeat.js":{"id":76,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_math-sign.js":{"id":77,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_math-expm1.js":{"id":78,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-at.js":{"id":79,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iter-define.js":{"id":80,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iter-create.js":{"id":81,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-context.js":{"id":82,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_fails-is-regexp.js":{"id":83,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_is-array-iter.js":{"id":84,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_create-property.js":{"id":85,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/core.get-iterator-method.js":{"id":86,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-species-create.js":{"id":87,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-fill.js":{"id":88,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.iterator.js":{"id":89,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_task.js":{"id":90,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_microtask.js":{"id":91,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_new-promise-capability.js":{"id":92,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_typed-buffer.js":{"id":93,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_user-agent.js":{"id":94,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/object-assign/index.js":{"id":95,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/emptyObject.js":{"id":96,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/main.js":{"id":97,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/utils.js":{"id":98,"meta":{"harmonyModule":true},"exports":["hop","extend"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/Transition.js":{"id":99,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/utils/PropTypes.js":{"id":100,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_ie8-dom-define.js":{"id":101,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_wks-ext.js":{"id":102,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-keys-internal.js":{"id":103,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-dps.js":{"id":104,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-gopn-ext.js":{"id":105,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-assign.js":{"id":106,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_bind.js":{"id":107,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_invoke.js":{"id":108,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_parse-int.js":{"id":109,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_parse-float.js":{"id":110,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_a-number-value.js":{"id":111,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_is-integer.js":{"id":112,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_math-log1p.js":{"id":113,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_math-fround.js":{"id":114,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iter-call.js":{"id":115,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-reduce.js":{"id":116,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-copy-within.js":{"id":117,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_iter-step.js":{"id":118,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.flags.js":{"id":119,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_perform.js":{"id":120,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_promise-resolve.js":{"id":121,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.map.js":{"id":122,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_collection-strong.js":{"id":123,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.set.js":{"id":124,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.weak-map.js":{"id":125,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_collection-weak.js":{"id":126,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_to-index.js":{"id":127,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_own-keys.js":{"id":128,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_flatten-into-array.js":{"id":129,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_string-pad.js":{"id":130,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_object-to-array.js":{"id":131,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_collection-to-json.js":{"id":132,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-from-iterable.js":{"id":133,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_math-scale.js":{"id":134,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react/cjs/react.production.min.js":{"id":136,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-dom/cjs/react-dom.production.min.js":{"id":137,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/ExecutionEnvironment.js":{"id":138,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/EventListener.js":{"id":139,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/getActiveElement.js":{"id":140,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/shallowEqual.js":{"id":141,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/containsNode.js":{"id":142,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/isTextNode.js":{"id":143,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/isNode.js":{"id":144,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/focusNode.js":{"id":145,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-intl/lib/index.es.js":{"id":146,"meta":{"harmonyModule":true},"exports":["addLocaleData","intlShape","injectIntl","defineMessages","IntlProvider","FormattedDate","FormattedTime","FormattedRelative","FormattedNumber","FormattedPlural","FormattedMessage","FormattedHTMLMessage"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/core.js":{"id":148,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/es5.js":{"id":149,"meta":{"harmonyModule":true},"exports":["defineProperty","objCreate"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/compiler.js":{"id":150,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat-parser/src/parser.js":{"id":151,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-messageformat/src/en.js":{"id":152,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-relativeformat/src/main.js":{"id":153,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-relativeformat/src/core.js":{"id":154,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-relativeformat/src/diff.js":{"id":155,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-relativeformat/src/es5.js":{"id":156,"meta":{"harmonyModule":true},"exports":["defineProperty","objCreate","arrIndexOf","isArray","dateNow"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-relativeformat/src/en.js":{"id":157,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/prop-types/factoryWithThrowingShims.js":{"id":158,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/fbjs/lib/invariant.js":{"id":159,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/prop-types/lib/ReactPropTypesSecret.js":{"id":160,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/invariant/browser.js":{"id":161,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-format-cache/src/memoizer.js":{"id":162,"meta":{"harmonyModule":true},"exports":["default"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/intl-format-cache/src/es5.js":{"id":163,"meta":{"harmonyModule":true},"exports":["bind","defineProperty","objCreate"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/reactstrap/dist/reactstrap.es.js":{"id":164,"meta":{"harmonyModule":true},"exports":["Alert","Container","Row","Col","Navbar","NavbarBrand","NavbarToggler","Nav","NavItem","NavDropdown","NavLink","Breadcrumb","BreadcrumbItem","Button","ButtonDropdown","ButtonGroup","ButtonToolbar","Dropdown","DropdownItem","DropdownMenu","DropdownToggle","Fade","Badge","Card","CardLink","CardGroup","CardDeck","CardColumns","CardBody","CardBlock","CardFooter","CardHeader","CardImg","CardImgOverlay","Carousel","UncontrolledCarousel","CarouselControl","CarouselItem","CarouselIndicators","CarouselCaption","CardSubtitle","CardText","CardTitle","Popover","PopoverContent","PopoverBody","PopoverTitle","PopoverHeader","Progress","Modal","ModalHeader","ModalBody","ModalFooter","PopperContent","PopperTargetHelper","Tooltip","Table","ListGroup","Form","FormFeedback","FormGroup","FormText","Input","InputGroup","InputGroupAddon","InputGroupButton","Label","Media","Pagination","PaginationItem","PaginationLink","TabContent","TabPane","Jumbotron","Collapse","ListGroupItem","ListGroupItemText","ListGroupItemHeading","UncontrolledAlert","UncontrolledButtonDropdown","UncontrolledDropdown","UncontrolledNavDropdown","UncontrolledTooltip"]},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/classnames/index.js":{"id":165,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/lodash.isfunction/index.js":{"id":166,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/lodash.isobject/index.js":{"id":167,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-popper/lib/react-popper.js":{"id":168,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-popper/lib/Manager.js":{"id":169,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-popper/lib/Target.js":{"id":170,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-popper/lib/Popper.js":{"id":171,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/popper.js/dist/umd/popper.js":{"id":172,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-popper/lib/Arrow.js":{"id":173,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/lodash.tonumber/index.js":{"id":174,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/index.js":{"id":175,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/CSSTransition.js":{"id":176,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/dom-helpers/class/addClass.js":{"id":177,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/dom-helpers/class/hasClass.js":{"id":178,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/dom-helpers/class/removeClass.js":{"id":179,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/TransitionGroup.js":{"id":180,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/react-transition-group/utils/ChildMapping.js":{"id":181,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/immutable/dist/immutable.js":{"id":182,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/lodash/lodash.js":{"id":183,"meta":{}},"./strapi-helper-plugin/node_modules/webpack/buildin/module.js":{"id":184,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/babel-polyfill/lib/index.js":{"id":185,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/shim.js":{"id":186,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.symbol.js":{"id":187,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_enum-keys.js":{"id":188,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.create.js":{"id":189,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.define-property.js":{"id":190,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.define-properties.js":{"id":191,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js":{"id":192,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.get-prototype-of.js":{"id":193,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.keys.js":{"id":194,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.get-own-property-names.js":{"id":195,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.freeze.js":{"id":196,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.seal.js":{"id":197,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.prevent-extensions.js":{"id":198,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.is-frozen.js":{"id":199,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.is-sealed.js":{"id":200,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.is-extensible.js":{"id":201,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.assign.js":{"id":202,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.is.js":{"id":203,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_same-value.js":{"id":204,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.set-prototype-of.js":{"id":205,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.object.to-string.js":{"id":206,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.function.bind.js":{"id":207,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.function.name.js":{"id":208,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.function.has-instance.js":{"id":209,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.parse-int.js":{"id":210,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.parse-float.js":{"id":211,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.constructor.js":{"id":212,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.to-fixed.js":{"id":213,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.to-precision.js":{"id":214,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.epsilon.js":{"id":215,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.is-finite.js":{"id":216,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.is-integer.js":{"id":217,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.is-nan.js":{"id":218,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.is-safe-integer.js":{"id":219,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.max-safe-integer.js":{"id":220,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.min-safe-integer.js":{"id":221,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.parse-float.js":{"id":222,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.number.parse-int.js":{"id":223,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.acosh.js":{"id":224,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.asinh.js":{"id":225,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.atanh.js":{"id":226,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.cbrt.js":{"id":227,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.clz32.js":{"id":228,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.cosh.js":{"id":229,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.expm1.js":{"id":230,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.fround.js":{"id":231,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.hypot.js":{"id":232,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.imul.js":{"id":233,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.log10.js":{"id":234,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.log1p.js":{"id":235,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.log2.js":{"id":236,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.sign.js":{"id":237,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.sinh.js":{"id":238,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.tanh.js":{"id":239,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.math.trunc.js":{"id":240,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.from-code-point.js":{"id":241,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.raw.js":{"id":242,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.trim.js":{"id":243,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.iterator.js":{"id":244,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.code-point-at.js":{"id":245,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.ends-with.js":{"id":246,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.includes.js":{"id":247,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.repeat.js":{"id":248,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.starts-with.js":{"id":249,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.anchor.js":{"id":250,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.big.js":{"id":251,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.blink.js":{"id":252,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.bold.js":{"id":253,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.fixed.js":{"id":254,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.fontcolor.js":{"id":255,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.fontsize.js":{"id":256,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.italics.js":{"id":257,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.link.js":{"id":258,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.small.js":{"id":259,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.strike.js":{"id":260,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.sub.js":{"id":261,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.string.sup.js":{"id":262,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.date.now.js":{"id":263,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.date.to-json.js":{"id":264,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.date.to-iso-string.js":{"id":265,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_date-to-iso-string.js":{"id":266,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.date.to-string.js":{"id":267,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.date.to-primitive.js":{"id":268,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_date-to-primitive.js":{"id":269,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.is-array.js":{"id":270,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.from.js":{"id":271,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.of.js":{"id":272,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.join.js":{"id":273,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.slice.js":{"id":274,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.sort.js":{"id":275,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.for-each.js":{"id":276,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_array-species-constructor.js":{"id":277,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.map.js":{"id":278,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.filter.js":{"id":279,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.some.js":{"id":280,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.every.js":{"id":281,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.reduce.js":{"id":282,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.reduce-right.js":{"id":283,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.index-of.js":{"id":284,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.last-index-of.js":{"id":285,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.copy-within.js":{"id":286,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.fill.js":{"id":287,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.find.js":{"id":288,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.find-index.js":{"id":289,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.array.species.js":{"id":290,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.constructor.js":{"id":291,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.to-string.js":{"id":292,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.match.js":{"id":293,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.replace.js":{"id":294,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.search.js":{"id":295,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.regexp.split.js":{"id":296,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.promise.js":{"id":297,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.weak-set.js":{"id":298,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.array-buffer.js":{"id":299,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.data-view.js":{"id":300,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.int8-array.js":{"id":301,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.uint8-array.js":{"id":302,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js":{"id":303,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.int16-array.js":{"id":304,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.uint16-array.js":{"id":305,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.int32-array.js":{"id":306,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.uint32-array.js":{"id":307,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.float32-array.js":{"id":308,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.typed.float64-array.js":{"id":309,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.apply.js":{"id":310,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.construct.js":{"id":311,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.define-property.js":{"id":312,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.delete-property.js":{"id":313,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.enumerate.js":{"id":314,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.get.js":{"id":315,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js":{"id":316,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.get-prototype-of.js":{"id":317,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.has.js":{"id":318,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.is-extensible.js":{"id":319,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.own-keys.js":{"id":320,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.prevent-extensions.js":{"id":321,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.set.js":{"id":322,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es6.reflect.set-prototype-of.js":{"id":323,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.array.includes.js":{"id":324,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.array.flat-map.js":{"id":325,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.array.flatten.js":{"id":326,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.at.js":{"id":327,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.pad-start.js":{"id":328,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.pad-end.js":{"id":329,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.trim-left.js":{"id":330,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.trim-right.js":{"id":331,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.string.match-all.js":{"id":332,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.symbol.async-iterator.js":{"id":333,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.symbol.observable.js":{"id":334,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js":{"id":335,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.values.js":{"id":336,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.entries.js":{"id":337,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.define-getter.js":{"id":338,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.define-setter.js":{"id":339,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.lookup-getter.js":{"id":340,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.object.lookup-setter.js":{"id":341,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.map.to-json.js":{"id":342,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.set.to-json.js":{"id":343,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.map.of.js":{"id":344,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.set.of.js":{"id":345,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.weak-map.of.js":{"id":346,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.weak-set.of.js":{"id":347,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.map.from.js":{"id":348,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.set.from.js":{"id":349,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.weak-map.from.js":{"id":350,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.weak-set.from.js":{"id":351,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.global.js":{"id":352,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.system.global.js":{"id":353,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.error.is-error.js":{"id":354,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.clamp.js":{"id":355,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.deg-per-rad.js":{"id":356,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.degrees.js":{"id":357,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.fscale.js":{"id":358,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.iaddh.js":{"id":359,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.isubh.js":{"id":360,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.imulh.js":{"id":361,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.rad-per-deg.js":{"id":362,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.radians.js":{"id":363,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.scale.js":{"id":364,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.umulh.js":{"id":365,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.math.signbit.js":{"id":366,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.promise.finally.js":{"id":367,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.promise.try.js":{"id":368,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.define-metadata.js":{"id":369,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.delete-metadata.js":{"id":370,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.get-metadata.js":{"id":371,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js":{"id":372,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.get-own-metadata.js":{"id":373,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js":{"id":374,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.has-metadata.js":{"id":375,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.has-own-metadata.js":{"id":376,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.reflect.metadata.js":{"id":377,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.asap.js":{"id":378,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/es7.observable.js":{"id":379,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/web.timers.js":{"id":380,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/web.immediate.js":{"id":381,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/web.dom.iterable.js":{"id":382,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js":{"id":383,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/fn/regexp/escape.js":{"id":384,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/core.regexp.escape.js":{"id":385,"meta":{}},"./strapi-admin/node_modules/strapi-helper-plugin/node_modules/core-js/modules/_replacer.js":{"id":386,"meta":{}}}} \ No newline at end of file diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index 36d416a654..9ad12de00e 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -45,15 +45,16 @@ module.exports = cb => { github: { key: '', secret: '', - callback: '/auth/github/callback' + redirect_uri: '/auth/google/callback', + scope: [ + 'user', + 'user:email' + ] }, - linkedin2: { + twitter: { key: '', secret: '', - callback: '/auth/linkedin2/callback', - custom_params: { - 'state': '' - } + callback: '/auth/twitter/callback' } }; diff --git a/packages/strapi-plugin-users-permissions/controllers/Auth.js b/packages/strapi-plugin-users-permissions/controllers/Auth.js index 896f125937..5e00841649 100644 --- a/packages/strapi-plugin-users-permissions/controllers/Auth.js +++ b/packages/strapi-plugin-users-permissions/controllers/Auth.js @@ -13,7 +13,6 @@ module.exports = { callback: async (ctx) => { const provider = ctx.params.provider || 'local'; const params = ctx.request.body; - const access_token = ctx.query.access_token; if (provider === 'local') { // The identifier is required. @@ -62,7 +61,7 @@ module.exports = { } } else { // Connect the user thanks to the third-party provider. - const user = await strapi.plugins['users-permissions'].services.providers.connect(provider, access_token); + const user = await strapi.plugins['users-permissions'].services.providers.connect(provider, ctx.query); ctx.send({ jwt: strapi.plugins['users-permissions'].services.jwt.issue(user), diff --git a/packages/strapi-plugin-users-permissions/middlewares/provider/index.js b/packages/strapi-plugin-users-permissions/middlewares/provider/index.js index 25b518f413..66f755db3f 100644 --- a/packages/strapi-plugin-users-permissions/middlewares/provider/index.js +++ b/packages/strapi-plugin-users-permissions/middlewares/provider/index.js @@ -7,7 +7,6 @@ // Public node modules. const _ = require('lodash'); const Grant = require('grant-koa'); -const mount = require('koa-mount'); module.exports = strapi => { return { @@ -25,7 +24,7 @@ module.exports = strapi => { const grant = new Grant(strapi.plugins['users-permissions'].config.grant); - strapi.app.use(mount(grant)); + strapi.app.use(strapi.koaMiddlewares.compose(grant.middleware)); cb(); } diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index b1fc9573c5..b8292eff3c 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -27,8 +27,6 @@ "bcryptjs": "^2.4.3", "grant-koa": "^3.8.1", "jsonwebtoken": "^8.1.0", - "koa": "^2.1.0", - "koa-mount": "^3.0.0", "purest": "^2.0.1", "request": "^2.83.0", "uuid": "^3.1.0" diff --git a/packages/strapi-plugin-users-permissions/services/Providers.js b/packages/strapi-plugin-users-permissions/services/Providers.js index 5d3d3a2219..a8a7dcd022 100644 --- a/packages/strapi-plugin-users-permissions/services/Providers.js +++ b/packages/strapi-plugin-users-permissions/services/Providers.js @@ -6,6 +6,7 @@ // Public node modules. const _ = require('lodash'); +const request = require('request'); // Purest strategies. const Purest = require('purest'); @@ -27,8 +28,8 @@ const google = new Purest({ provider: 'google' }); -const linkedin = new Purest({ - provider: 'linkedin' +const twitter = new Purest({ + provider: 'twitter' }); /** @@ -41,7 +42,9 @@ const linkedin = new Purest({ * @return {*} */ -exports.connect = (provider, access_token) => { +exports.connect = (provider, query) => { + const access_token = query.access_token || query.code || query.oauth_token; + return new Promise((resolve, reject) => { if (!access_token) { reject({ @@ -49,7 +52,7 @@ exports.connect = (provider, access_token) => { }); } else { // Get the profile. - getProfile(provider, access_token, (err, profile) => { + getProfile(provider, query, (err, profile) => { if (err) { reject(err); } else { @@ -95,8 +98,9 @@ exports.connect = (provider, access_token) => { * @param {Function} callback */ -const getProfile = (provider, access_token, callback) => { - let fields; +const getProfile = (provider, query, callback) => { + const access_token = query.access_token || query.code || query.oauth_token; + switch (provider) { case 'facebook': facebook.query().get('me?fields=name,email').auth(access_token).request((err, res, body) => { @@ -123,28 +127,34 @@ const getProfile = (provider, access_token, callback) => { }); break; case 'github': - github.query().get('user').auth(access_token).request((err, res, body) => { - if (err) { - callback(err); - } else { - callback(null, { - username: body.login, - email: body.email - }); + request.post({ + url: 'https://github.com/login/oauth/access_token', + form: { + client_id: strapi.plugins['users-permissions'].config.grant.github.key, + client_secret: strapi.plugins['users-permissions'].config.grant.github.secret, + code: access_token } + }, (err, res, body) => { + github.query().get('user').auth(body.split('&')[0].split('=')[1]).request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: body.login, + email: body.email + }); + } + }); }); break; - case 'linkedin2': - fields = [ - 'public-profile-url', 'email-address' - ]; - linkedin.query().select('people/~:(' + fields.join() + ')?format=json').auth(access_token).request((err, res, body) => { + case 'twitter': + twitter.query().get('account/verify_credentials').auth(access_token, query.access_secret).qs({screen_name: query['raw[screen_name]']}).qs({include_email: 'true'}).request((err, res, body) => { if (err) { callback(err); } else { callback(null, { - username: substr(body.publicProfileUrl.lastIndexOf('/') + 1), - email: body.emailAddress + username: body.screen_name, + email: body.email }); } }); diff --git a/packages/strapi/lib/core/middlewares.js b/packages/strapi/lib/core/middlewares.js index 62904d4e10..e21fd4daba 100755 --- a/packages/strapi/lib/core/middlewares.js +++ b/packages/strapi/lib/core/middlewares.js @@ -110,7 +110,7 @@ module.exports = function() { return reject(err); } - mountMiddlewares.call(this, files, cwd)(resolve, reject); + mountMiddlewares.call(this, files, cwd, true)(resolve, reject); } ); }) @@ -154,13 +154,13 @@ const requireMiddlewares = function (files, cwd) { ); }; -const mountMiddlewares = function (files, cwd) { +const mountMiddlewares = function (files, cwd, isPlugin) { return (resolve, reject) => parallel( files.map(p => cb => { const folders = p.replace(/^.\/node_modules\/strapi-middleware-/, './') .split('/'); - const name = folders[folders.length - 2]; + const name = isPlugin ? folders[folders.length - 2] : folders[1]; this.middleware[name] = this.middleware[name] || { loaded: false From 33437439a6a72e89fb60946b7c9b2ccf7e4978ed Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Tue, 23 Jan 2018 10:43:49 +0100 Subject: [PATCH 24/24] Fix missing koa grant dep --- packages/strapi-plugin-users-permissions/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index b8292eff3c..0272b31750 100644 --- a/packages/strapi-plugin-users-permissions/package.json +++ b/packages/strapi-plugin-users-permissions/package.json @@ -27,6 +27,7 @@ "bcryptjs": "^2.4.3", "grant-koa": "^3.8.1", "jsonwebtoken": "^8.1.0", + "koa": "^2.1.0", "purest": "^2.0.1", "request": "^2.83.0", "uuid": "^3.1.0"