From 51666d715119f312b99a37bd9d522526265e26b5 Mon Sep 17 00:00:00 2001 From: sundaycrafts Date: Thu, 30 Aug 2018 00:45:21 +0900 Subject: [PATCH 01/22] refactor strapi-hook-mongoose --- packages/strapi-hook-mongoose/lib/index.js | 722 ++++++++++----------- 1 file changed, 356 insertions(+), 366 deletions(-) diff --git a/packages/strapi-hook-mongoose/lib/index.js b/packages/strapi-hook-mongoose/lib/index.js index 4c5e8a783f..7172a9fa85 100755 --- a/packages/strapi-hook-mongoose/lib/index.js +++ b/packages/strapi-hook-mongoose/lib/index.js @@ -48,423 +48,413 @@ module.exports = function (strapi) { * Initialize the hook */ - initialize: cb => { - _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-hook-mongoose'}), (connection, connectionName) => { - const instance = new Mongoose(); - const { uri, host, port, username, password, database, srv } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); - const uriOptions = uri ? url.parse(uri, true).query : {}; - const { authenticationDatabase, ssl, debug } = _.defaults(connection.options, uriOptions, strapi.config.hook.settings.mongoose); - const isSrv = srv === 'true'; + initialize: cb => _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-hook-mongoose'}), async (connection, connectionName) => { + const instance = new Mongoose(); + const { uri, host, port, username, password, database, srv } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); + const uriOptions = uri ? url.parse(uri, true).query : {}; + const { authenticationDatabase, ssl, debug } = _.defaults(connection.options, uriOptions, strapi.config.hook.settings.mongoose); + const isSrv = srv === 'true'; - // Connect to mongo database - const connectOptions = {}; - const options = {}; + // Connect to mongo database + const connectOptions = {}; + const options = {}; - if (!_.isEmpty(username)) { - connectOptions.user = username; + if (!_.isEmpty(username)) { + connectOptions.user = username; - if (!_.isEmpty(password)) { - connectOptions.pass = password; - } + if (!_.isEmpty(password)) { + connectOptions.pass = password; } + } - if (!_.isEmpty(authenticationDatabase)) { - connectOptions.authSource = authenticationDatabase; - } + if (!_.isEmpty(authenticationDatabase)) { + connectOptions.authSource = authenticationDatabase; + } - connectOptions.ssl = ssl === true || ssl === 'true'; - connectOptions.useNewUrlParser = true; - connectOptions.dbName = database; + connectOptions.ssl = ssl === true || ssl === 'true'; + connectOptions.useNewUrlParser = true; + connectOptions.dbName = database; - options.debug = debug === true || debug === 'true'; + options.debug = debug === true || debug === 'true'; - instance.connect(uri || + try { + await instance.connect(uri || `mongodb${isSrv ? '+srv' : ''}://${username}:${password}@${host}${ !isSrv ? ':' + port : '' }/`, - connectOptions + connectOptions ); + } catch ({message}) { + const errMsg = message.includes(`:${port}`) + ? 'Make sure your MongoDB database is running...' : message + return cb(errMsg); + } - for (let key in options) { - instance.set(key, options[key]); - } + Object.keys(options, key => instance.set(key, options[key])); - // Handle error - instance.connection.on('error', error => { - if (error.message.indexOf(`:${port}`)) { - return cb('Make sure your MongoDB database is running...'); - } + const mountModels = (models, target, plugin = false) => { + if (!target) return; - cb(error); - }); + const loadedAttributes = _.after(_.size(models), () => { + _.forEach(models, (definition, model) => { + try { + let collection = strapi.config.hook.settings.mongoose.collections[mongooseUtils.toCollectionName(definition.globalName)]; - // Handle success - instance.connection.on('open', () => { - const mountModels = (models, target, plugin = false) => { - if (!target) return; + // Set the default values to model settings. + _.defaults(definition, { + primaryKey: '_id' + }); - const loadedAttributes = _.after(_.size(models), () => { - _.forEach(models, (definition, model) => { - try { - let collection = strapi.config.hook.settings.mongoose.collections[mongooseUtils.toCollectionName(definition.globalName)]; + // Initialize lifecycle callbacks. + const preLifecycle = { + validate: 'beforeCreate', + findOneAndUpdate: 'beforeUpdate', + findOneAndRemove: 'beforeDestroy', + remove: 'beforeDestroy', + update: 'beforeUpdate', + find: 'beforeFetchAll', + findOne: 'beforeFetch', + save: 'beforeSave' + }; - // Set the default values to model settings. - _.defaults(definition, { - primaryKey: '_id' - }); + /* + Override populate path for polymorphic association. - // Initialize lifecycle callbacks. - const preLifecycle = { - validate: 'beforeCreate', - findOneAndUpdate: 'beforeUpdate', - findOneAndRemove: 'beforeDestroy', - remove: 'beforeDestroy', - update: 'beforeUpdate', - find: 'beforeFetchAll', - findOne: 'beforeFetch', - save: 'beforeSave' - }; + It allows us to make Upload.find().populate('related') + instead of Upload.find().populate('related.item') + */ - /* - Override populate path for polymorphic association. + const morphAssociations = definition.associations.filter(association => association.nature.toLowerCase().indexOf('morph') !== -1); - It allows us to make Upload.find().populate('related') - instead of Upload.find().populate('related.item') - */ - - const morphAssociations = definition.associations.filter(association => association.nature.toLowerCase().indexOf('morph') !== -1); - - if (morphAssociations.length > 0) { - morphAssociations.forEach(association => { - Object.keys(preLifecycle) - .filter(key => key.indexOf('find') !== -1) - .forEach(key => { - collection.schema.pre(key, function (next) { - if (this._mongooseOptions.populate && this._mongooseOptions.populate[association.alias]) { - if (association.nature === 'oneToManyMorph' || association.nature === 'manyToManyMorph') { - this._mongooseOptions.populate[association.alias].match = { - [`${association.via}.${association.filter}`]: association.alias, - [`${association.via}.kind`]: definition.globalId - }; - - // Select last related to an entity. - this._mongooseOptions.populate[association.alias].options = { - sort: '-createdAt' - }; - } else { - this._mongooseOptions.populate[association.alias].path = `${association.alias}.ref`; - } - } - next(); - }); - }); - }); - } - - _.forEach(preLifecycle, (fn, key) => { - if (_.isFunction(target[model.toLowerCase()][fn])) { - collection.schema.pre(key, function (next) { - target[model.toLowerCase()][fn](this).then(next).catch(err => strapi.log.error(err)); - }); - } - }); - - const postLifecycle = { - validate: 'afterCreate', - findOneAndRemove: 'afterDestroy', - remove: 'afterDestroy', - update: 'afterUpdate', - find: 'afterFetchAll', - findOne: 'afterFetch', - save: 'afterSave' - }; - - // Mongoose doesn't allow post 'remove' event on model. - // See https://github.com/Automattic/mongoose/issues/3054 - _.forEach(postLifecycle, (fn, key) => { - if (_.isFunction(target[model.toLowerCase()][fn])) { - collection.schema.post(key, function (doc, next) { - target[model.toLowerCase()][fn](this, doc).then(next).catch(err => strapi.log.error(err)); - }); - } - }); - - // Add virtual key to provide populate and reverse populate - _.forEach(_.pickBy(definition.loadedModel, model => { - return model.type === 'virtual'; - }), (value, key) => { - collection.schema.virtual(key.replace('_v', ''), { - ref: value.ref, - localField: '_id', - foreignField: value.via, - justOne: value.justOne || false - }); - }); - - collection.schema.set('timestamps', _.get(definition, 'options.timestamps') === true); - collection.schema.set('minimize', _.get(definition, 'options.minimize', false) === true); - - collection.schema.options.toObject = collection.schema.options.toJSON = { - virtuals: true, - transform: function (doc, returned, opts) { - // Remover $numberDecimal nested property. - Object.keys(returned) - .filter(key => returned[key] instanceof mongoose.Types.Decimal128) - .forEach((key, index) => { - // Parse to float number. - returned[key] = parseFloat(returned[key].toString()); - }); - - morphAssociations.forEach(association => { - if (Array.isArray(returned[association.alias]) && returned[association.alias].length > 0) { - // Reformat data by bypassing the many-to-many relationship. - switch (association.nature) { - case 'oneMorphToOne': - returned[association.alias] = returned[association.alias][0].ref; - break; - case 'manyMorphToMany': - case 'manyMorphToOne': - - returned[association.alias] = returned[association.alias].map(obj => obj.ref); - break; - default: + if (morphAssociations.length > 0) { + morphAssociations.forEach(association => { + Object.keys(preLifecycle) + .filter(key => key.indexOf('find') !== -1) + .forEach(key => { + collection.schema.pre(key, function (next) { + if (this._mongooseOptions.populate && this._mongooseOptions.populate[association.alias]) { + if (association.nature === 'oneToManyMorph' || association.nature === 'manyToManyMorph') { + this._mongooseOptions.populate[association.alias].match = { + [`${association.via}.${association.filter}`]: association.alias, + [`${association.via}.kind`]: definition.globalId + }; + // Select last related to an entity. + this._mongooseOptions.populate[association.alias].options = { + sort: '-createdAt' + }; + } else { + this._mongooseOptions.populate[association.alias].path = `${association.alias}.ref`; } } + next(); }); - } - }; + }); + }); + } - // Instantiate model. - const Model = instance.model(definition.globalId, collection.schema, definition.collectionName); - - if (!plugin) { - global[definition.globalName] = Model; - } - - // Expose ORM functions through the `target` object. - target[model] = _.assign(Model, target[model]); - - // Push attributes to be aware of model schema. - target[model]._attributes = definition.attributes; - target[model].updateRelations = relations.update; - } catch (err) { - strapi.log.error('Impossible to register the `' + model + '` model.'); - strapi.log.error(err); - strapi.stop(); + _.forEach(preLifecycle, (fn, key) => { + if (_.isFunction(target[model.toLowerCase()][fn])) { + collection.schema.pre(key, function (next) { + target[model.toLowerCase()][fn](this).then(next).catch(err => strapi.log.error(err)); + }); } }); - }); - // Parse every authenticated model. - _.forEach(models, (definition, model) => { - definition.globalName = _.upperFirst(_.camelCase(definition.globalId)); + const postLifecycle = { + validate: 'afterCreate', + findOneAndRemove: 'afterDestroy', + remove: 'afterDestroy', + update: 'afterUpdate', + find: 'afterFetchAll', + findOne: 'afterFetch', + save: 'afterSave' + }; - // Make sure the model has a connection. - // If not, use the default connection. - if (_.isEmpty(definition.connection)) { - definition.connection = strapi.config.currentEnvironment.database.defaultConnection; - } + // Mongoose doesn't allow post 'remove' event on model. + // See https://github.com/Automattic/mongoose/issues/3054 + _.forEach(postLifecycle, (fn, key) => { + if (_.isFunction(target[model.toLowerCase()][fn])) { + collection.schema.post(key, function (doc, next) { + target[model.toLowerCase()][fn](this, doc).then(next).catch(err => strapi.log.error(err)); + }); + } + }); - // Make sure this connection exists. - if (!_.has(strapi.config.connections, definition.connection)) { - strapi.log.error('The connection `' + definition.connection + '` specified in the `' + model + '` model does not exist.'); - strapi.stop(); - } + // Add virtual key to provide populate and reverse populate + _.forEach(_.pickBy(definition.loadedModel, model => { + return model.type === 'virtual'; + }), (value, key) => { + collection.schema.virtual(key.replace('_v', ''), { + ref: value.ref, + localField: '_id', + foreignField: value.via, + justOne: value.justOne || false + }); + }); - // Add some informations about ORM & client connection - definition.orm = 'mongoose'; - definition.client = _.get(strapi.config.connections[definition.connection], 'client'); - definition.associations = []; + collection.schema.set('timestamps', _.get(definition, 'options.timestamps') === true); + collection.schema.set('minimize', _.get(definition, 'options.minimize', false) === true); - // Register the final model for Mongoose. - definition.loadedModel = _.cloneDeep(definition.attributes); + collection.schema.options.toObject = collection.schema.options.toJSON = { + virtuals: true, + transform: function (doc, returned, opts) { + // Remover $numberDecimal nested property. + Object.keys(returned) + .filter(key => returned[key] instanceof mongoose.Types.Decimal128) + .forEach((key, index) => { + // Parse to float number. + returned[key] = parseFloat(returned[key].toString()); + }); + + morphAssociations.forEach(association => { + if (Array.isArray(returned[association.alias]) && returned[association.alias].length > 0) { + // Reformat data by bypassing the many-to-many relationship. + switch (association.nature) { + case 'oneMorphToOne': + returned[association.alias] = returned[association.alias][0].ref; + break; + case 'manyMorphToMany': + case 'manyMorphToOne': + + returned[association.alias] = returned[association.alias].map(obj => obj.ref); + break; + default: + + } + } + }); + } + }; + + // Instantiate model. + const Model = instance.model(definition.globalId, collection.schema, definition.collectionName); - // Initialize the global variable with the - // capitalized model name. if (!plugin) { - global[definition.globalName] = {}; + global[definition.globalName] = Model; } - if (_.isEmpty(definition.attributes)) { - // Generate empty schema - _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', new instance.Schema({})); + // Expose ORM functions through the `target` object. + target[model] = _.assign(Model, target[model]); - return loadedAttributes(); - } + // Push attributes to be aware of model schema. + target[model]._attributes = definition.attributes; + target[model].updateRelations = relations.update; + } catch (err) { + strapi.log.error('Impossible to register the `' + model + '` model.'); + strapi.log.error(err); + strapi.stop(); + } + }); + }); - // Call this callback function after we are done parsing - // all attributes for relationships-- see below. - const done = _.after(_.size(definition.attributes), () => { - // Generate schema without virtual populate - const schema = new instance.Schema(_.omitBy(definition.loadedModel, model => { - return model.type === 'virtual'; - })); + // Parse every authenticated model. + _.forEach(models, (definition, model) => { + definition.globalName = _.upperFirst(_.camelCase(definition.globalId)); - _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', schema); + // Make sure the model has a connection. + // If not, use the default connection. + if (_.isEmpty(definition.connection)) { + definition.connection = strapi.config.currentEnvironment.database.defaultConnection; + } - loadedAttributes(); - }); + // Make sure this connection exists. + if (!_.has(strapi.config.connections, definition.connection)) { + strapi.log.error('The connection `' + definition.connection + '` specified in the `' + model + '` model does not exist.'); + strapi.stop(); + } - // Add every relationships to the loaded model for Bookshelf. - // Basic attributes don't need this-- only relations. - _.forEach(definition.attributes, (details, name) => { - const verbose = _.get(utilsModels.getNature(details, name, undefined, model.toLowerCase()), 'verbose') || ''; + // Add some informations about ORM & client connection + definition.orm = 'mongoose'; + definition.client = _.get(strapi.config.connections[definition.connection], 'client'); + definition.associations = []; - // Build associations key - utilsModels.defineAssociations(model.toLowerCase(), definition, details, name); + // Register the final model for Mongoose. + definition.loadedModel = _.cloneDeep(definition.attributes); - if (_.isEmpty(verbose)) { - definition.loadedModel[name].type = utils(instance).convertType(details.type); - } + // Initialize the global variable with the + // capitalized model name. + if (!plugin) { + global[definition.globalName] = {}; + } - switch (verbose) { - case 'hasOne': { - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; + if (_.isEmpty(definition.attributes)) { + // Generate empty schema + _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', new instance.Schema({})); - definition.loadedModel[name] = { - type: instance.Schema.Types.ObjectId, - ref - }; - break; - } - case 'hasMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; + return loadedAttributes(); + } - if (FK) { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via, - justOne: false - }; + // Call this callback function after we are done parsing + // all attributes for relationships-- see below. + const done = _.after(_.size(definition.attributes), () => { + // Generate schema without virtual populate + const schema = new instance.Schema(_.omitBy(definition.loadedModel, model => { + return model.type === 'virtual'; + })); - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = [{ - type: instance.Schema.Types.ObjectId, - ref - }]; - } - break; - } - case 'belongsTo': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; + _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', schema); - if (FK && FK.nature !== 'oneToOne' && FK.nature !== 'manyToOne' && FK.nature !== 'oneWay' && FK.nature !== 'oneToMorph') { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via, - justOne: true - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = { - type: instance.Schema.Types.ObjectId, - ref - }; - } - - break; - } - case 'belongsToMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; - - // One-side of the relationship has to be a virtual field to be bidirectional. - if ((FK && _.isUndefined(FK.via)) || details.dominant !== true) { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = [{ - type: instance.Schema.Types.ObjectId, - ref - }]; - } - break; - } - case 'morphOne': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; - - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: `${FK.via}.ref`, - justOne: true - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - break; - } - case 'morphMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; - - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: `${FK.via}.ref` - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - break; - } - case 'belongsToMorph': { - definition.loadedModel[name] = { - kind: String, - [details.filter]: String, - ref: { - type: instance.Schema.Types.ObjectId, - refPath: `${name}.kind` - } - }; - break; - } - case 'belongsToManyMorph': { - definition.loadedModel[name] = [{ - kind: String, - [details.filter]: String, - ref: { - type: instance.Schema.Types.ObjectId, - refPath: `${name}.kind` - } - }]; - break; - } - default: - break; - } - - done(); - }); - }); - }; - - // Mount `./api` models. - mountModels(_.pickBy(strapi.models, { connection: connectionName }), strapi.models); - - // Mount `./plugins` models. - _.forEach(strapi.plugins, (plugin, name) => { - mountModels(_.pickBy(strapi.plugins[name].models, { connection: connectionName }), plugin.models, name); + loadedAttributes(); }); - cb(); + // Add every relationships to the loaded model for Bookshelf. + // Basic attributes don't need this-- only relations. + _.forEach(definition.attributes, (details, name) => { + const verbose = _.get(utilsModels.getNature(details, name, undefined, model.toLowerCase()), 'verbose') || ''; + + // Build associations key + utilsModels.defineAssociations(model.toLowerCase(), definition, details, name); + + if (_.isEmpty(verbose)) { + definition.loadedModel[name].type = utils(instance).convertType(details.type); + } + + switch (verbose) { + case 'hasOne': { + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; + + definition.loadedModel[name] = { + type: instance.Schema.Types.ObjectId, + ref + }; + break; + } + case 'hasMany': { + const FK = _.find(definition.associations, {alias: name}); + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; + + if (FK) { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via, + justOne: false + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = [{ + type: instance.Schema.Types.ObjectId, + ref + }]; + } + break; + } + case 'belongsTo': { + const FK = _.find(definition.associations, {alias: name}); + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; + + if (FK && FK.nature !== 'oneToOne' && FK.nature !== 'manyToOne' && FK.nature !== 'oneWay' && FK.nature !== 'oneToMorph') { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via, + justOne: true + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = { + type: instance.Schema.Types.ObjectId, + ref + }; + } + + break; + } + case 'belongsToMany': { + const FK = _.find(definition.associations, {alias: name}); + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; + + // One-side of the relationship has to be a virtual field to be bidirectional. + if ((FK && _.isUndefined(FK.via)) || details.dominant !== true) { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = [{ + type: instance.Schema.Types.ObjectId, + ref + }]; + } + break; + } + case 'morphOne': { + const FK = _.find(definition.associations, {alias: name}); + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; + + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: `${FK.via}.ref`, + justOne: true + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + break; + } + case 'morphMany': { + const FK = _.find(definition.associations, {alias: name}); + const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; + + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: `${FK.via}.ref` + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + break; + } + case 'belongsToMorph': { + definition.loadedModel[name] = { + kind: String, + [details.filter]: String, + ref: { + type: instance.Schema.Types.ObjectId, + refPath: `${name}.kind` + } + }; + break; + } + case 'belongsToManyMorph': { + definition.loadedModel[name] = [{ + kind: String, + [details.filter]: String, + ref: { + type: instance.Schema.Types.ObjectId, + refPath: `${name}.kind` + } + }]; + break; + } + default: + break; + } + + done(); + }); }); + }; + + // Mount `./api` models. + mountModels(_.pickBy(strapi.models, { connection: connectionName }), strapi.models); + + // Mount `./plugins` models. + _.forEach(strapi.plugins, (plugin, name) => { + mountModels(_.pickBy(strapi.plugins[name].models, { connection: connectionName }), plugin.models, name); }); - }, + + cb(); + }), getQueryParams: (value, type, key) => { const result = {}; From a1fd2bc000493cd24326cd4d9e8a20744616a18b Mon Sep 17 00:00:00 2001 From: sundaycrafts Date: Thu, 30 Aug 2018 00:50:39 +0900 Subject: [PATCH 02/22] beautify code --- packages/strapi-hook-mongoose/lib/index.js | 989 +++++++++++---------- 1 file changed, 539 insertions(+), 450 deletions(-) diff --git a/packages/strapi-hook-mongoose/lib/index.js b/packages/strapi-hook-mongoose/lib/index.js index 7172a9fa85..7245e1efee 100755 --- a/packages/strapi-hook-mongoose/lib/index.js +++ b/packages/strapi-hook-mongoose/lib/index.js @@ -12,8 +12,7 @@ const Mongoose = mongoose.Mongoose; const mongooseUtils = require('mongoose/lib/utils'); // Strapi helpers for models. -const { models: utilsModels } = require('strapi-utils'); - +const { models: utilsModels } = require('strapi-utils'); // Local helpers. const utils = require('./utils/'); @@ -27,498 +26,588 @@ const relations = require('./relations'); /* eslint-disable no-case-declarations */ /* eslint-disable no-const-assign */ /* eslint-disable no-unused-vars */ -module.exports = function (strapi) { - const hook = _.merge({ +module.exports = function(strapi) { + const hook = _.merge( + { + /** + * Default options + */ - /** - * Default options - */ + defaults: { + defaultConnection: 'default', + host: 'localhost', + port: 27017, + database: 'strapi', + authenticationDatabase: '', + ssl: false, + debug: false, + }, - defaults: { - defaultConnection: 'default', - host: 'localhost', - port: 27017, - database: 'strapi', - authenticationDatabase: '', - ssl: false, - debug: false - }, + /** + * Initialize the hook + */ - /** - * Initialize the hook - */ + initialize: cb => + _.forEach( + _.pickBy(strapi.config.connections, { connector: 'strapi-hook-mongoose' }), + async (connection, connectionName) => { + const instance = new Mongoose(); + const { uri, host, port, username, password, database, srv } = _.defaults( + connection.settings, + strapi.config.hook.settings.mongoose, + ); + const uriOptions = uri ? url.parse(uri, true).query : {}; + const { authenticationDatabase, ssl, debug } = _.defaults( + connection.options, + uriOptions, + strapi.config.hook.settings.mongoose, + ); + const isSrv = srv === 'true'; - initialize: cb => _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-hook-mongoose'}), async (connection, connectionName) => { - const instance = new Mongoose(); - const { uri, host, port, username, password, database, srv } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); - const uriOptions = uri ? url.parse(uri, true).query : {}; - const { authenticationDatabase, ssl, debug } = _.defaults(connection.options, uriOptions, strapi.config.hook.settings.mongoose); - const isSrv = srv === 'true'; + // Connect to mongo database + const connectOptions = {}; + const options = {}; - // Connect to mongo database - const connectOptions = {}; - const options = {}; + if (!_.isEmpty(username)) { + connectOptions.user = username; - if (!_.isEmpty(username)) { - connectOptions.user = username; + if (!_.isEmpty(password)) { + connectOptions.pass = password; + } + } - if (!_.isEmpty(password)) { - connectOptions.pass = password; - } - } + if (!_.isEmpty(authenticationDatabase)) { + connectOptions.authSource = authenticationDatabase; + } - if (!_.isEmpty(authenticationDatabase)) { - connectOptions.authSource = authenticationDatabase; - } + connectOptions.ssl = ssl === true || ssl === 'true'; + connectOptions.useNewUrlParser = true; + connectOptions.dbName = database; - connectOptions.ssl = ssl === true || ssl === 'true'; - connectOptions.useNewUrlParser = true; - connectOptions.dbName = database; + options.debug = debug === true || debug === 'true'; - options.debug = debug === true || debug === 'true'; - - try { - await instance.connect(uri || - `mongodb${isSrv ? '+srv' : ''}://${username}:${password}@${host}${ !isSrv ? ':' + port : '' }/`, - connectOptions - ); - } catch ({message}) { - const errMsg = message.includes(`:${port}`) - ? 'Make sure your MongoDB database is running...' : message - return cb(errMsg); - } - - Object.keys(options, key => instance.set(key, options[key])); - - const mountModels = (models, target, plugin = false) => { - if (!target) return; - - const loadedAttributes = _.after(_.size(models), () => { - _.forEach(models, (definition, model) => { try { - let collection = strapi.config.hook.settings.mongoose.collections[mongooseUtils.toCollectionName(definition.globalName)]; + await instance.connect( + uri || + `mongodb${isSrv ? '+srv' : ''}://${username}:${password}@${host}${ + !isSrv ? ':' + port : '' + }/`, + connectOptions, + ); + } catch ({ message }) { + const errMsg = message.includes(`:${port}`) + ? 'Make sure your MongoDB database is running...' + : message; + return cb(errMsg); + } - // Set the default values to model settings. - _.defaults(definition, { - primaryKey: '_id' - }); + Object.keys(options, key => instance.set(key, options[key])); - // Initialize lifecycle callbacks. - const preLifecycle = { - validate: 'beforeCreate', - findOneAndUpdate: 'beforeUpdate', - findOneAndRemove: 'beforeDestroy', - remove: 'beforeDestroy', - update: 'beforeUpdate', - find: 'beforeFetchAll', - findOne: 'beforeFetch', - save: 'beforeSave' - }; + const mountModels = (models, target, plugin = false) => { + if (!target) return; - /* + const loadedAttributes = _.after(_.size(models), () => { + _.forEach(models, (definition, model) => { + try { + let collection = + strapi.config.hook.settings.mongoose.collections[ + mongooseUtils.toCollectionName(definition.globalName) + ]; + + // Set the default values to model settings. + _.defaults(definition, { + primaryKey: '_id', + }); + + // Initialize lifecycle callbacks. + const preLifecycle = { + validate: 'beforeCreate', + findOneAndUpdate: 'beforeUpdate', + findOneAndRemove: 'beforeDestroy', + remove: 'beforeDestroy', + update: 'beforeUpdate', + find: 'beforeFetchAll', + findOne: 'beforeFetch', + save: 'beforeSave', + }; + + /* Override populate path for polymorphic association. It allows us to make Upload.find().populate('related') instead of Upload.find().populate('related.item') */ - const morphAssociations = definition.associations.filter(association => association.nature.toLowerCase().indexOf('morph') !== -1); + const morphAssociations = definition.associations.filter( + association => association.nature.toLowerCase().indexOf('morph') !== -1, + ); - if (morphAssociations.length > 0) { - morphAssociations.forEach(association => { - Object.keys(preLifecycle) - .filter(key => key.indexOf('find') !== -1) - .forEach(key => { - collection.schema.pre(key, function (next) { - if (this._mongooseOptions.populate && this._mongooseOptions.populate[association.alias]) { - if (association.nature === 'oneToManyMorph' || association.nature === 'manyToManyMorph') { - this._mongooseOptions.populate[association.alias].match = { - [`${association.via}.${association.filter}`]: association.alias, - [`${association.via}.kind`]: definition.globalId - }; + if (morphAssociations.length > 0) { + morphAssociations.forEach(association => { + Object.keys(preLifecycle) + .filter(key => key.indexOf('find') !== -1) + .forEach(key => { + collection.schema.pre(key, function(next) { + if ( + this._mongooseOptions.populate && + this._mongooseOptions.populate[association.alias] + ) { + if ( + association.nature === 'oneToManyMorph' || + association.nature === 'manyToManyMorph' + ) { + this._mongooseOptions.populate[association.alias].match = { + [`${association.via}.${association.filter}`]: association.alias, + [`${association.via}.kind`]: definition.globalId, + }; - // Select last related to an entity. - this._mongooseOptions.populate[association.alias].options = { - sort: '-createdAt' - }; - } else { - this._mongooseOptions.populate[association.alias].path = `${association.alias}.ref`; - } - } - next(); + // Select last related to an entity. + this._mongooseOptions.populate[association.alias].options = { + sort: '-createdAt', + }; + } else { + this._mongooseOptions.populate[association.alias].path = `${ + association.alias + }.ref`; + } + } + next(); + }); + }); }); - }); - }); - } - - _.forEach(preLifecycle, (fn, key) => { - if (_.isFunction(target[model.toLowerCase()][fn])) { - collection.schema.pre(key, function (next) { - target[model.toLowerCase()][fn](this).then(next).catch(err => strapi.log.error(err)); - }); - } - }); - - const postLifecycle = { - validate: 'afterCreate', - findOneAndRemove: 'afterDestroy', - remove: 'afterDestroy', - update: 'afterUpdate', - find: 'afterFetchAll', - findOne: 'afterFetch', - save: 'afterSave' - }; - - // Mongoose doesn't allow post 'remove' event on model. - // See https://github.com/Automattic/mongoose/issues/3054 - _.forEach(postLifecycle, (fn, key) => { - if (_.isFunction(target[model.toLowerCase()][fn])) { - collection.schema.post(key, function (doc, next) { - target[model.toLowerCase()][fn](this, doc).then(next).catch(err => strapi.log.error(err)); - }); - } - }); - - // Add virtual key to provide populate and reverse populate - _.forEach(_.pickBy(definition.loadedModel, model => { - return model.type === 'virtual'; - }), (value, key) => { - collection.schema.virtual(key.replace('_v', ''), { - ref: value.ref, - localField: '_id', - foreignField: value.via, - justOne: value.justOne || false - }); - }); - - collection.schema.set('timestamps', _.get(definition, 'options.timestamps') === true); - collection.schema.set('minimize', _.get(definition, 'options.minimize', false) === true); - - collection.schema.options.toObject = collection.schema.options.toJSON = { - virtuals: true, - transform: function (doc, returned, opts) { - // Remover $numberDecimal nested property. - Object.keys(returned) - .filter(key => returned[key] instanceof mongoose.Types.Decimal128) - .forEach((key, index) => { - // Parse to float number. - returned[key] = parseFloat(returned[key].toString()); - }); - - morphAssociations.forEach(association => { - if (Array.isArray(returned[association.alias]) && returned[association.alias].length > 0) { - // Reformat data by bypassing the many-to-many relationship. - switch (association.nature) { - case 'oneMorphToOne': - returned[association.alias] = returned[association.alias][0].ref; - break; - case 'manyMorphToMany': - case 'manyMorphToOne': - - returned[association.alias] = returned[association.alias].map(obj => obj.ref); - break; - default: - - } } - }); - } - }; - // Instantiate model. - const Model = instance.model(definition.globalId, collection.schema, definition.collectionName); + _.forEach(preLifecycle, (fn, key) => { + if (_.isFunction(target[model.toLowerCase()][fn])) { + collection.schema.pre(key, function(next) { + target[model.toLowerCase()] + [fn](this) + .then(next) + .catch(err => strapi.log.error(err)); + }); + } + }); - if (!plugin) { - global[definition.globalName] = Model; - } + const postLifecycle = { + validate: 'afterCreate', + findOneAndRemove: 'afterDestroy', + remove: 'afterDestroy', + update: 'afterUpdate', + find: 'afterFetchAll', + findOne: 'afterFetch', + save: 'afterSave', + }; - // Expose ORM functions through the `target` object. - target[model] = _.assign(Model, target[model]); + // Mongoose doesn't allow post 'remove' event on model. + // See https://github.com/Automattic/mongoose/issues/3054 + _.forEach(postLifecycle, (fn, key) => { + if (_.isFunction(target[model.toLowerCase()][fn])) { + collection.schema.post(key, function(doc, next) { + target[model.toLowerCase()] + [fn](this, doc) + .then(next) + .catch(err => strapi.log.error(err)); + }); + } + }); - // Push attributes to be aware of model schema. - target[model]._attributes = definition.attributes; - target[model].updateRelations = relations.update; - } catch (err) { - strapi.log.error('Impossible to register the `' + model + '` model.'); - strapi.log.error(err); - strapi.stop(); - } - }); - }); + // Add virtual key to provide populate and reverse populate + _.forEach( + _.pickBy(definition.loadedModel, model => { + return model.type === 'virtual'; + }), + (value, key) => { + collection.schema.virtual(key.replace('_v', ''), { + ref: value.ref, + localField: '_id', + foreignField: value.via, + justOne: value.justOne || false, + }); + }, + ); - // Parse every authenticated model. - _.forEach(models, (definition, model) => { - definition.globalName = _.upperFirst(_.camelCase(definition.globalId)); + collection.schema.set('timestamps', _.get(definition, 'options.timestamps') === true); + collection.schema.set('minimize', _.get(definition, 'options.minimize', false) === true); - // Make sure the model has a connection. - // If not, use the default connection. - if (_.isEmpty(definition.connection)) { - definition.connection = strapi.config.currentEnvironment.database.defaultConnection; - } + collection.schema.options.toObject = collection.schema.options.toJSON = { + virtuals: true, + transform: function(doc, returned, opts) { + // Remover $numberDecimal nested property. + Object.keys(returned) + .filter(key => returned[key] instanceof mongoose.Types.Decimal128) + .forEach((key, index) => { + // Parse to float number. + returned[key] = parseFloat(returned[key].toString()); + }); - // Make sure this connection exists. - if (!_.has(strapi.config.connections, definition.connection)) { - strapi.log.error('The connection `' + definition.connection + '` specified in the `' + model + '` model does not exist.'); - strapi.stop(); - } + morphAssociations.forEach(association => { + if ( + Array.isArray(returned[association.alias]) && + returned[association.alias].length > 0 + ) { + // Reformat data by bypassing the many-to-many relationship. + switch (association.nature) { + case 'oneMorphToOne': + returned[association.alias] = returned[association.alias][0].ref; + break; + case 'manyMorphToMany': + case 'manyMorphToOne': + returned[association.alias] = returned[association.alias].map(obj => obj.ref); + break; + default: + } + } + }); + }, + }; - // Add some informations about ORM & client connection - definition.orm = 'mongoose'; - definition.client = _.get(strapi.config.connections[definition.connection], 'client'); - definition.associations = []; + // Instantiate model. + const Model = instance.model( + definition.globalId, + collection.schema, + definition.collectionName, + ); - // Register the final model for Mongoose. - definition.loadedModel = _.cloneDeep(definition.attributes); + if (!plugin) { + global[definition.globalName] = Model; + } - // Initialize the global variable with the - // capitalized model name. - if (!plugin) { - global[definition.globalName] = {}; - } + // Expose ORM functions through the `target` object. + target[model] = _.assign(Model, target[model]); - if (_.isEmpty(definition.attributes)) { - // Generate empty schema - _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', new instance.Schema({})); - - return loadedAttributes(); - } - - // Call this callback function after we are done parsing - // all attributes for relationships-- see below. - const done = _.after(_.size(definition.attributes), () => { - // Generate schema without virtual populate - const schema = new instance.Schema(_.omitBy(definition.loadedModel, model => { - return model.type === 'virtual'; - })); - - _.set(strapi.config.hook.settings.mongoose, 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', schema); - - loadedAttributes(); - }); - - // Add every relationships to the loaded model for Bookshelf. - // Basic attributes don't need this-- only relations. - _.forEach(definition.attributes, (details, name) => { - const verbose = _.get(utilsModels.getNature(details, name, undefined, model.toLowerCase()), 'verbose') || ''; - - // Build associations key - utilsModels.defineAssociations(model.toLowerCase(), definition, details, name); - - if (_.isEmpty(verbose)) { - definition.loadedModel[name].type = utils(instance).convertType(details.type); - } - - switch (verbose) { - case 'hasOne': { - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; - - definition.loadedModel[name] = { - type: instance.Schema.Types.ObjectId, - ref - }; - break; - } - case 'hasMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; - - if (FK) { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via, - justOne: false - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = [{ - type: instance.Schema.Types.ObjectId, - ref - }]; - } - break; - } - case 'belongsTo': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; - - if (FK && FK.nature !== 'oneToOne' && FK.nature !== 'manyToOne' && FK.nature !== 'oneWay' && FK.nature !== 'oneToMorph') { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via, - justOne: true - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = { - type: instance.Schema.Types.ObjectId, - ref - }; - } - - break; - } - case 'belongsToMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; - - // One-side of the relationship has to be a virtual field to be bidirectional. - if ((FK && _.isUndefined(FK.via)) || details.dominant !== true) { - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: FK.via - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - } else { - definition.loadedModel[name] = [{ - type: instance.Schema.Types.ObjectId, - ref - }]; - } - break; - } - case 'morphOne': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.model].globalId : strapi.models[details.model].globalId; - - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: `${FK.via}.ref`, - justOne: true - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - break; - } - case 'morphMany': { - const FK = _.find(definition.associations, {alias: name}); - const ref = details.plugin ? strapi.plugins[details.plugin].models[details.collection].globalId : strapi.models[details.collection].globalId; - - definition.loadedModel[name] = { - type: 'virtual', - ref, - via: `${FK.via}.ref` - }; - - // Set this info to be able to see if this field is a real database's field. - details.isVirtual = true; - break; - } - case 'belongsToMorph': { - definition.loadedModel[name] = { - kind: String, - [details.filter]: String, - ref: { - type: instance.Schema.Types.ObjectId, - refPath: `${name}.kind` + // Push attributes to be aware of model schema. + target[model]._attributes = definition.attributes; + target[model].updateRelations = relations.update; + } catch (err) { + strapi.log.error('Impossible to register the `' + model + '` model.'); + strapi.log.error(err); + strapi.stop(); } - }; - break; - } - case 'belongsToManyMorph': { - definition.loadedModel[name] = [{ - kind: String, - [details.filter]: String, - ref: { - type: instance.Schema.Types.ObjectId, - refPath: `${name}.kind` + }); + }); + + // Parse every authenticated model. + _.forEach(models, (definition, model) => { + definition.globalName = _.upperFirst(_.camelCase(definition.globalId)); + + // Make sure the model has a connection. + // If not, use the default connection. + if (_.isEmpty(definition.connection)) { + definition.connection = strapi.config.currentEnvironment.database.defaultConnection; + } + + // Make sure this connection exists. + if (!_.has(strapi.config.connections, definition.connection)) { + strapi.log.error( + 'The connection `' + + definition.connection + + '` specified in the `' + + model + + '` model does not exist.', + ); + strapi.stop(); + } + + // Add some informations about ORM & client connection + definition.orm = 'mongoose'; + definition.client = _.get(strapi.config.connections[definition.connection], 'client'); + definition.associations = []; + + // Register the final model for Mongoose. + definition.loadedModel = _.cloneDeep(definition.attributes); + + // Initialize the global variable with the + // capitalized model name. + if (!plugin) { + global[definition.globalName] = {}; + } + + if (_.isEmpty(definition.attributes)) { + // Generate empty schema + _.set( + strapi.config.hook.settings.mongoose, + 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', + new instance.Schema({}), + ); + + return loadedAttributes(); + } + + // Call this callback function after we are done parsing + // all attributes for relationships-- see below. + const done = _.after(_.size(definition.attributes), () => { + // Generate schema without virtual populate + const schema = new instance.Schema( + _.omitBy(definition.loadedModel, model => { + return model.type === 'virtual'; + }), + ); + + _.set( + strapi.config.hook.settings.mongoose, + 'collections.' + mongooseUtils.toCollectionName(definition.globalName) + '.schema', + schema, + ); + + loadedAttributes(); + }); + + // Add every relationships to the loaded model for Bookshelf. + // Basic attributes don't need this-- only relations. + _.forEach(definition.attributes, (details, name) => { + const verbose = + _.get(utilsModels.getNature(details, name, undefined, model.toLowerCase()), 'verbose') || + ''; + + // Build associations key + utilsModels.defineAssociations(model.toLowerCase(), definition, details, name); + + if (_.isEmpty(verbose)) { + definition.loadedModel[name].type = utils(instance).convertType(details.type); } - }]; - break; - } - default: - break; - } - done(); - }); - }); - }; + switch (verbose) { + case 'hasOne': { + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.model].globalId + : strapi.models[details.model].globalId; - // Mount `./api` models. - mountModels(_.pickBy(strapi.models, { connection: connectionName }), strapi.models); + definition.loadedModel[name] = { + type: instance.Schema.Types.ObjectId, + ref, + }; + break; + } + case 'hasMany': { + const FK = _.find(definition.associations, { alias: name }); + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.collection].globalId + : strapi.models[details.collection].globalId; - // Mount `./plugins` models. - _.forEach(strapi.plugins, (plugin, name) => { - mountModels(_.pickBy(strapi.plugins[name].models, { connection: connectionName }), plugin.models, name); - }); + if (FK) { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via, + justOne: false, + }; - cb(); - }), + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = [ + { + type: instance.Schema.Types.ObjectId, + ref, + }, + ]; + } + break; + } + case 'belongsTo': { + const FK = _.find(definition.associations, { alias: name }); + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.model].globalId + : strapi.models[details.model].globalId; - getQueryParams: (value, type, key) => { - const result = {}; + if ( + FK && + FK.nature !== 'oneToOne' && + FK.nature !== 'manyToOne' && + FK.nature !== 'oneWay' && + FK.nature !== 'oneToMorph' + ) { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via, + justOne: true, + }; - switch (type) { - case '=': - result.key = `where.${key}`; - result.value = value; - break; - case '_ne': - result.key = `where.${key}.$ne`; - result.value = value; - break; - case '_lt': - result.key = `where.${key}.$lt`; - result.value = value; - break; - case '_gt': - result.key = `where.${key}.$gt`; - result.value = value; - break; - case '_lte': - result.key = `where.${key}.$lte`; - result.value = value; - break; - case '_gte': - result.key = `where.${key}.$gte`; - result.value = value; - break; - case '_sort': - result.key = `sort`; - result.value = (_.toLower(value) === 'desc') ? '-' : ''; - result.value += key; - break; - case '_start': - result.key = `start`; - result.value = parseFloat(value); - break; - case '_limit': - result.key = `limit`; - result.value = parseFloat(value); - break; - case '_contains': - result.key = `where.${key}`; - result.value = { - $regex: value, - $options: 'i', - }; - break; - case '_containss': - result.key = `where.${key}.$regex`; - result.value = value; - break; - case '_in': - result.key = `where.${key}.$in`; - result.value = value; - break; - default: - result = undefined; - } + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = { + type: instance.Schema.Types.ObjectId, + ref, + }; + } - return result; - } - }, relations); + break; + } + case 'belongsToMany': { + const FK = _.find(definition.associations, { alias: name }); + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.collection].globalId + : strapi.models[details.collection].globalId; + + // One-side of the relationship has to be a virtual field to be bidirectional. + if ((FK && _.isUndefined(FK.via)) || details.dominant !== true) { + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: FK.via, + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + } else { + definition.loadedModel[name] = [ + { + type: instance.Schema.Types.ObjectId, + ref, + }, + ]; + } + break; + } + case 'morphOne': { + const FK = _.find(definition.associations, { alias: name }); + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.model].globalId + : strapi.models[details.model].globalId; + + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: `${FK.via}.ref`, + justOne: true, + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + break; + } + case 'morphMany': { + const FK = _.find(definition.associations, { alias: name }); + const ref = details.plugin + ? strapi.plugins[details.plugin].models[details.collection].globalId + : strapi.models[details.collection].globalId; + + definition.loadedModel[name] = { + type: 'virtual', + ref, + via: `${FK.via}.ref`, + }; + + // Set this info to be able to see if this field is a real database's field. + details.isVirtual = true; + break; + } + case 'belongsToMorph': { + definition.loadedModel[name] = { + kind: String, + [details.filter]: String, + ref: { + type: instance.Schema.Types.ObjectId, + refPath: `${name}.kind`, + }, + }; + break; + } + case 'belongsToManyMorph': { + definition.loadedModel[name] = [ + { + kind: String, + [details.filter]: String, + ref: { + type: instance.Schema.Types.ObjectId, + refPath: `${name}.kind`, + }, + }, + ]; + break; + } + default: + break; + } + + done(); + }); + }); + }; + + // Mount `./api` models. + mountModels(_.pickBy(strapi.models, { connection: connectionName }), strapi.models); + + // Mount `./plugins` models. + _.forEach(strapi.plugins, (plugin, name) => { + mountModels( + _.pickBy(strapi.plugins[name].models, { connection: connectionName }), + plugin.models, + name, + ); + }); + + cb(); + }, + ), + + getQueryParams: (value, type, key) => { + const result = {}; + + switch (type) { + case '=': + result.key = `where.${key}`; + result.value = value; + break; + case '_ne': + result.key = `where.${key}.$ne`; + result.value = value; + break; + case '_lt': + result.key = `where.${key}.$lt`; + result.value = value; + break; + case '_gt': + result.key = `where.${key}.$gt`; + result.value = value; + break; + case '_lte': + result.key = `where.${key}.$lte`; + result.value = value; + break; + case '_gte': + result.key = `where.${key}.$gte`; + result.value = value; + break; + case '_sort': + result.key = `sort`; + result.value = _.toLower(value) === 'desc' ? '-' : ''; + result.value += key; + break; + case '_start': + result.key = `start`; + result.value = parseFloat(value); + break; + case '_limit': + result.key = `limit`; + result.value = parseFloat(value); + break; + case '_contains': + result.key = `where.${key}`; + result.value = { + $regex: value, + $options: 'i', + }; + break; + case '_containss': + result.key = `where.${key}.$regex`; + result.value = value; + break; + case '_in': + result.key = `where.${key}.$in`; + result.value = value; + break; + default: + result = undefined; + } + + return result; + }, + }, + relations, + ); return hook; }; From 3debbddaeb5dbcf0b9947bfa0fc6fcbde4401d65 Mon Sep 17 00:00:00 2001 From: Salem Yaslem Date: Fri, 7 Sep 2018 02:07:06 +0300 Subject: [PATCH 03/22] update strapi-admin arabic translate --- .../admin/src/translations/ar.json | 53 ++++++------------- .../admin/src/translations/en.json | 2 +- 2 files changed, 17 insertions(+), 38 deletions(-) diff --git a/packages/strapi-admin/admin/src/translations/ar.json b/packages/strapi-admin/admin/src/translations/ar.json index f0904ab93f..b39c693660 100644 --- a/packages/strapi-admin/admin/src/translations/ar.json +++ b/packages/strapi-admin/admin/src/translations/ar.json @@ -1,13 +1,11 @@ { "app.components.Button.save": "حفظ", "app.components.Button.cancel": "الغاء", - "app.components.ComingSoonPage.comingSoon": "قادم قريبًا", "app.components.ComingSoonPage.featuresNotAvailable": "هذه الميزة تحت التطوير.", - "app.components.DownloadInfo.download": "التنزيل قيد التقدم...", "app.components.DownloadInfo.text": "قد يستغرق هذا دقيقة. شكرا لصبرك.", - + "app.components.EmptyAttributes.title": "لا يوجد اي حقول بعد", "app.components.HomePage.welcome": "مرحبًا في لوحتك!", "app.components.HomePage.welcome.again": "مرحبًا ", "app.components.HomePage.cta": "تأكيد", @@ -15,34 +13,29 @@ "app.components.HomePage.newsLetter": "اشترك في النشرة الإخبارية للحصول على اخر الاخبار حول Strapi", "app.components.HomePage.community.content": "ناقش مع أعضاء الفريق والمساهمين والمطورين على قنوات مختلفة.", "app.components.HomePage.create": "انشاء اول نوع محتوى لك", - "app.components.HomePage.welcomeBlock.content": "نحن سعداء بوجودك كأحد أفراد المجتمع. نحن نبحث باستمرار عن ردود الفعل لا تتردد في مراسلتنا على الخاص\u0020", + "app.components.HomePage.welcomeBlock.content": "نحن سعداء بوجودك كأحد أفراد المجتمع. نحن نبحث باستمرار عن ردود الفعل لا تتردد في مراسلتنا على الخاص ", "app.components.HomePage.welcomeBlock.content.again": "نأمل أن تحقق تقدمًا في مشروعك ... لا تتردد في قراءة عن اخر إصدار جديد من Strapi. نحن نبذل قصارى جهدنا لتحسين المنتج بناء على ملاحظاتك.", "app.components.HomePage.welcomeBlock.content.issues": "issues.", - "app.components.HomePage.welcomeBlock.content.raise": "\u0020أو رفع\u0020", - "app.components.HomePage.createBlock.content.first": "الـ\u0020", - "app.components.HomePage.createBlock.content.second": "\u0020سيساعدك المكون الإضافي في تحديد بنية البيانات لطرازاتك. إذا كنت جديدًا هنا ، فننصحك بشدة باتباع نهجنا\u0020", - "app.components.HomePage.createBlock.content.tutorial": "\u0020شرخ.", + "app.components.HomePage.welcomeBlock.content.raise": " أو رفع ", + "app.components.HomePage.createBlock.content.first": "الـ ", + "app.components.HomePage.createBlock.content.second": " سيساعدك المكون الإضافي في تحديد بنية البيانات لطرازاتك. إذا كنت جديدًا هنا ، فننصحك بشدة باتباع نهجنا ", + "app.components.HomePage.createBlock.content.tutorial": " شرخ.", "app.components.HomePage.button.quickStart": "بداء الشرح السريع", "app.components.HomePage.button.blog": "اظهار المزيد على المدونة", "app.components.HomePage.support": "ادعمنا", "app.components.HomePage.support.content": "عن طريق شراء تي شيرت، وسوف تتيح لنا مواصلة عملنا في هذا المشروع لتعطيك أفضل تجربة ممكنة!", "app.components.HomePage.support.link": "احصل على التي شيرت الخاص بك الان", - "app.components.BlockLink.documentation": "قراءة المستندات", "app.components.BlockLink.documentation.content": "اكتشاف المفاهيم والأدلة المرجعية والبرامج التعليمية.", "app.components.BlockLink.code": "امثلة للشفرة", "app.components.BlockLink.code.content": "تعلم من خلال اختبار مشاريع حقيقية طورت من المجتمع.", - - "app.components.InputFile.newFile": "إضافة ملف جديد", "app.components.InputFileDetails.open": "فتح في نافذة جديدة", "app.components.InputFileDetails.remove": "حذف هذا الملف", "app.components.InputFileDetails.originalName": "الاسم الاصلي:", "app.components.InputFileDetails.size": "الحجم:", - "app.components.ImgPreview.hint": "اسحب الملف واسقطة في هذه المساحة او في {browse} لرفعة", "app.components.ImgPreview.hint.browse": "المتصفح", - "app.components.InstallPluginPage.helmet": "السوق - الإضافات", "app.components.InstallPluginPage.title": "السوق - الإضافات", "app.components.InstallPluginPage.description": "قم بتوسيع التطبيق الخاص بك دون عناء.", @@ -56,7 +49,6 @@ "app.components.InstallPluginPopup.navLink.faq": "الاسئلة الاكثر شيوعًا", "app.components.InstallPluginPopup.navLink.changelog": "التغييرات", "app.components.InstallPluginPopup.noDescription": "لا يوجد وصف متوفر", - "app.components.LeftMenuFooter.poweredBy": "مندعوم من ", "app.components.LeftMenuLinkContainer.configuration": "التهيئة", "app.components.LeftMenuLinkContainer.general": "عام", @@ -64,7 +56,6 @@ "app.components.LeftMenuLinkContainer.listPlugins": "الإضافات", "app.components.LeftMenuLinkContainer.noPluginsInstalled": "لا توجد إضافات مثبته بعد", "app.components.LeftMenuLinkContainer.plugins": "إضافات", - "app.components.ListPluginsPage.helmet.title": "قائمة الإضافات", "app.components.ListPluginsPage.title": "الإضافات", "app.components.ListPluginsPage.description": "قائمة الإضافيات المثبتة في المشروع.", @@ -73,12 +64,9 @@ "app.components.listPlugins.title.plural": "{number} إضافات مثبته", "app.components.listPlugins.title.none": "لا يوجد اي إضافات مثبته", "app.components.listPlugins.button": "إضافة إضافة جديدة", - "app.components.NotFoundPage.description": "لا يوجد", "app.components.NotFoundPage.back": "العودة للرئيسية", - "app.components.Official": "الرسمية", - "app.components.PluginCard.compatible": "متوافق مع تطبيقك", "app.components.PluginCard.compatibleCommunity": "متوافق مع المجتمع", "app.components.PluginCard.Button.label.download": "تنزيل", @@ -86,29 +74,21 @@ "app.components.PluginCard.Button.label.support": "ادعمنا", "app.components.PluginCard.price.free": "مجانا", "app.components.PluginCard.more-details": "المزيد من التفاصيل", - - "app.utils.placeholder.defaultMessage": "\u0020", - "app.utils.SelectOption.defaultMessage": "\u0020", - "app.utils.defaultMessage": "\u0020", - + "app.utils.placeholder.defaultMessage": " ", + "app.utils.SelectOption.defaultMessage": " ", + "app.utils.defaultMessage": " ", "components.AutoReloadBlocker.header": "مطلوب ميزة إعادة التحميل لهذه الإضافة.", "components.AutoReloadBlocker.description": "افتح الملف التالي وقم بتمكين الميزة.", - "components.ErrorBoundary.title": "هناك خطأ ما...", - "components.OverlayBlocker.title": "في انتظار إعادة التشغيل...", "components.OverlayBlocker.description": "أنت تستخدم ميزة تحتاج إلى إعادة تشغيل الخادم. يرجى الانتظار حتى يعود الخادم.", - "components.PageFooter.select": "إدخالات لكل صفحة", - "components.ProductionBlocker.header": "هذه الإضافة متاحة فقط في التطوير.", "components.ProductionBlocker.description": "لأغراض السلامة ، يتعين علينا تعطيل هذه الإضافة في بيئات أخرى.", - "components.popUpWarning.button.cancel": "الغاء", "components.popUpWarning.button.confirm": "تأكيد", "components.popUpWarning.title": "ارجو التأكيد", "components.popUpWarning.message": "هل انت متاكد من حذف هذا؟", - "components.Input.error.validation.email": "هذا ليس بريد الإكتروني", "components.Input.error.validation.required": "هذه القيمة مطلوبة.", "components.Input.error.validation.regex": "هذه القمية لا تطابق regex.", @@ -122,9 +102,8 @@ "components.Input.error.attribute.sameKeyAndName": "لا تتطابق", "components.Input.error.validation.minSupMax": "لا يمكن أن تكون متفوقة", "components.Input.error.custom-error": "{errorMessage} ", - + "components.Input.error.validation.json": "لا يتطابق مع صيغة JSON", "components.ListRow.empty": "لا توجد بيانات ليتم عرضها.", - "components.Wysiwyg.collapse": "تقليص", "components.Wysiwyg.selectOptions.title": "إضافة عنوان", "components.Wysiwyg.selectOptions.H1": "العنوان H1", @@ -139,15 +118,14 @@ "components.WysiwygBottomControls.uploadFiles": "اسحب الملفات وأفلتها ، والصقها من الحافظة أو {browse}.", "components.WysiwygBottomControls.uploadFiles.browse": "حددهم", "components.WysiwygBottomControls.fullscreen": "توسيع", - "HomePage.notification.newsLetter.success": "لقد اشتركت بنجاح في النشرة الإخبارية", - "notification.error": "حدث خطأ", "notification.error.layout": "تعذّر استرداد التنسيق", - "Users & Permissions": "المستخدمين والصلاحيات", "Content Manager": "مدير محتوى", "Content Type Builder": "منشئ نوع المحتوى", + "Files Upload": "رفع الملفات", + "Roles & Permissions": "الأدوار والصلاحية", "Settings Manager": "مدير الإعدادات", "Email": "البريد الإلكتروني", "Password": "كلمة السر", @@ -156,7 +134,8 @@ "ResetPasswordToken": "إعادة تعيين كلمة المرور", "Role": "قاعدة", "New entry": "إدخال جديد", - "request.error.model.unknow": "هذا النموذج غير موجود", + "request.error.model.unknown": "هذا النموذج غير موجود", "Users": "المستخدمين", - "Analytics": "إحصائيات" -} + "Analytics": "إحصائيات", + "request.error.model.unknow": "هذا النموذج غير موجود" +} \ No newline at end of file diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json index 5e5e54c33e..5d048e606c 100755 --- a/packages/strapi-admin/admin/src/translations/en.json +++ b/packages/strapi-admin/admin/src/translations/en.json @@ -1,4 +1,4 @@ -{ + { "app.components.Button.save": "Save", "app.components.Button.cancel": "Cancel", From 8bde839f8669aa7a3cde136525c86bc303255435 Mon Sep 17 00:00:00 2001 From: Salem Yaslem Date: Fri, 7 Sep 2018 02:15:00 +0300 Subject: [PATCH 04/22] update strapi-plugin-content-type-builder arabic translate --- .../admin/src/translations/ar.json | 65 +++++++------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/ar.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/ar.json index 04d7d2f5df..98d6b5d070 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/translations/ar.json +++ b/packages/strapi-plugin-content-type-builder/admin/src/translations/ar.json @@ -1,7 +1,6 @@ { "plugin.description.short": "قم بتجميع هيكل البيانات الخاص بـ API الخاص بك.", - "plugin.description.long": - "قم بتجميع هيكل البيانات الخاص بـ API الخاص بك. إنشاء حقول وعلاقات جديدة في دقيقة واحدة فقط. يتم إنشاء الملفات وتحديثها تلقائيًا في مشروعك.", + "plugin.description.long": "قم بتجميع هيكل البيانات الخاص بـ API الخاص بك. إنشاء حقول وعلاقات جديدة في دقيقة واحدة فقط. يتم إنشاء الملفات وتحديثها تلقائيًا في مشروعك.", "attribute.string": "سلسلة نصية", "attribute.text": "نص", "attribute.boolean": "منطقي", @@ -16,22 +15,17 @@ "attribute.relation": "علاقة", "attribute.enumeration": "تعداد", "attribute.WYSIWYG": "نص (WYSIWYG)", - "contentType.temporaryDisplay": "(غير محفوظ)", "from": "من", "home.contentTypeBuilder.name": "أنواع المحتوى", "home.contentTypeBuilder.description": "إنشاء وتحديث أنواع المحتوى الخاصة بك.", "home.emptyContentType.title": "لا يوجد أنواع محتويات متاحة", - "home.emptyContentType.description": - "قم بإنشاء نوع المحتوى الأول لتتمكن من استرداد البيانات من API الخاص بك.", - + "home.emptyContentType.description": "قم بإنشاء نوع المحتوى الأول لتتمكن من استرداد البيانات من API الخاص بك.", "home.emptyAttributes.title": "لا توجد حقول بعد", "home.emptyAttributes.description": "أضف حقلك الأول إلى نوع المحتوى الجديد", - "button.contentType.create": "إنشاء نوع المحتوى", "button.contentType.add": "أضف نوع المحتوى", "button.attributes.add": "أضف حقل جديد", - "error.validation.required": "قيمة هذا الحقل مطلوبة.", "error.validation.regex": "هذه القيمة لا تطابق regex.", "error.validation.max": "هذه القيمة عالية جدًا.", @@ -44,7 +38,6 @@ "error.attribute.sameKeyAndName": "لا تتطابق", "error.validation.minSupMax": "لا يمكن أن تكون متفوقة", "error.attribute.forbidden": "اسم السمة هذا محجوز", - "form.attribute.item.textarea.name": "الأسم", "form.attribute.item.number.name": "الأسم", "form.attribute.item.date.name": "الأسم", @@ -53,10 +46,14 @@ "form.attribute.item.json.name": "الأسم", "form.attribute.item.boolean.name": "الأسم", "form.attribute.item.string.name": "الأسم", + "form.attribute.item.enumeration.name": "أسم", + "form.attribute.item.enumeration.rules": "قيم ( مقسمة بإستخدام الفاصلة )", + "form.attribute.item.enumeration.graphql": "تجاوز الاسم لـ GraphQL", + "form.attribute.item.enumeration.graphql.description": "يسمح لك بتجاوز الاسم الذي تم إنشاؤه افتراضيًا لـ GraphQL", + "form.attribute.item.enumeration.placeholder": "مثال: صباح,قمر,احداث", "form.attribute.item.appearance.name": "المظهر خارجي", "form.attribute.item.appearance.label": "عرض كسلسلة WYSIWYG", - "form.attribute.item.appearance.description": - "خلاف ذلك ، ستكون القيمة قابلة للتحرير من خلال حقل textarea الأساسي", + "form.attribute.item.appearance.description": "خلاف ذلك ، ستكون القيمة قابلة للتحرير من خلال حقل textarea الأساسي", "form.attribute.item.settings.name": "الإعدادات", "form.attribute.item.requiredField": "الحقل مطلوب", "form.attribute.item.uniqueField": "حقل فريد", @@ -64,25 +61,20 @@ "form.attribute.item.minimumLength": "أدنى طول", "form.attribute.item.maximumLength": "أقصى طول", "form.attribute.item.maximum": "اقصى قيمة", - "form.attribute.item.requiredField.description": - "لن تتمكن من إنشاء إدخال إذا كان هذا الحقل فارغًا", - "form.attribute.item.uniqueField.description": - "لن تتمكن من إنشاء إدخال إذا كان هناك إدخال حالي بمحتوى متطابق", + "form.attribute.item.requiredField.description": "لن تتمكن من إنشاء إدخال إذا كان هذا الحقل فارغًا", + "form.attribute.item.uniqueField.description": "لن تتمكن من إنشاء إدخال إذا كان هناك إدخال حالي بمحتوى متطابق", "form.attribute.item.defineRelation.fieldName": "اسم الحقل", "form.attribute.item.customColumnName": "أسماء الأعمدة المخصصة", - "form.attribute.item.customColumnName.description": - "يفيد ذلك في إعادة تسمية أسماء أعمدة قاعدة البيانات بتنسيق أكثر شمولاً لاستجابات واجهة برمجة التطبيقات ( API )", + "form.attribute.item.customColumnName.description": "يفيد ذلك في إعادة تسمية أسماء أعمدة قاعدة البيانات بتنسيق أكثر شمولاً لاستجابات واجهة برمجة التطبيقات ( API )", "form.attribute.item.number.type": "تنسيق الرقم", "form.attribute.item.number.type.integer": "عدد صحيح (مثال: 10)", "form.attribute.item.number.type.float": "عدد عائم (مثال: 3.33333333)", "form.attribute.item.number.type.decimal": "عدد عشري (مثال: 2.22)", "form.attribute.settings.default": "القيمة الأفتراضية", "form.attribute.settings.default.checkboxLabel": "جعلة true (صحيح)", - "form.button.cancel": "الغاء", "form.button.continue": "استمر", "form.button.save": "حفظ", - "form.contentType.item.connections": "الأتصال", "form.contentType.item.name": "الأسم", "form.contentType.item.name.description": "يجب أن تكون أسماء نوع المحتوى مفردة: {link}", @@ -90,9 +82,7 @@ "form.contentType.item.description": "الوصف", "form.contentType.item.description.placeholder": "اكتب وصفك الصغير هنا...", "form.contentType.item.collectionName": "اسم المجموعة ( collection )", - "form.contentType.item.collectionName.inputDescription": - "من المفيد أن يختلف اسم نوع المحتوى واسم الجدول الخاص بك", - + "form.contentType.item.collectionName.inputDescription": "من المفيد أن يختلف اسم نوع المحتوى واسم الجدول الخاص بك", "menu.section.contentTypeBuilder.name.plural": "أنواع المحتوى", "menu.section.contentTypeBuilder.name.singular": "نوع المحتوى", "menu.section.documentation.name": "التوثيق", @@ -100,28 +90,22 @@ "menu.section.documentation.guideLink": "الإرشاد.", "menu.section.documentation.tutorial": "تحقق من", "menu.section.documentation.tutorialLink": "الفيديو التعليمي.", - - "modelPage.contentHeader.emptyDescription.description": - "لا يوجد وصف لنوع المحتوى هذا", + "modelPage.contentHeader.emptyDescription.description": "لا يوجد وصف لنوع المحتوى هذا", "modelPage.contentType.list.title.plural": "حقول", "modelPage.contentType.list.title.singular": "حقل", "modelPage.contentType.list.title.including": "من ضمنها", "modelPage.contentType.list.relationShipTitle.plural": "العلاقات", "modelPage.contentType.list.relationShipTitle.singular": "العلاقة", "modelPage.attribute.relationWith": "علاقة مع", - "noTableWarning.description": "لا تنسَ إنشاء الجدول `{modelName}` في قاعدة البيانات الخاصة بك", "noTableWarning.infos": "مزيد من المعلومات", - "notification.error.message": "حدث خطأ", - "notification.info.contentType.creating.notSaved": - "يرجى حفظ نوع المحتوى الحالي قبل إنشاء نوع جديد", + "notification.info.contentType.creating.notSaved": "يرجى حفظ نوع المحتوى الحالي قبل إنشاء نوع جديد", + "notification.info.disable": "هذا الحقل غير قابل للتحرير في الوقت الحالي...😮", "notification.info.optimized": "تم تحسين هذا المكون الإضافي باستخدام التخزين المحلي الخاص بك", "notification.success.message.contentType.edit": "تم تحديث نوع المحتوى الخاص بك", "notification.success.message.contentType.create": "تم إنشاء نوع المحتوى الخاص بك", "notification.success.contentTypeDeleted": "تم حذف نوع المحتوى", - "notification.info.enumeration": "هذا الحقل غير قابل للتحرير في الوقت الحالي ... 😮", - "popUpForm.attributes.string.description": "عناوين, اسماء, فقرات, قائمة الاسماء", "popUpForm.attributes.text.description": "اوصاف, فقرات نصية, مقالات ", "popUpForm.attributes.boolean.description": "نعم او لا, 1 او 0, true او false", @@ -132,7 +116,7 @@ "popUpForm.attributes.relation.description": "يشير إلى نوع المحتوى", "popUpForm.attributes.email.description": "البريد الإلكتروني للمستخدم...", "popUpForm.attributes.password.description": "كلمة مرور المستخدم...", - + "popUpForm.attributes.enumeration.description": "قائمة من الخيارات", "popUpForm.attributes.string.name": "سلسلة نصية", "popUpForm.attributes.text.name": "نص", "popUpForm.attributes.boolean.name": "قيمة منطقية", @@ -143,35 +127,32 @@ "popUpForm.attributes.relation.name": "علاقة", "popUpForm.attributes.email.name": "بريد الأكتروني", "popUpForm.attributes.password.name": "كلمة السر", + "popUpForm.attributes.enumeration.name": "تعداد", "popUpForm.create": "اضافة جديد", "popUpForm.edit": "تعديل", "popUpForm.field": "حقل", "popUpForm.create.contentType.header.title": "إضافة نوع محتوى جديد", "popUpForm.choose.attributes.header.title": "اضافة حقل جديد", "popUpForm.edit.contentType.header.title": "تحرير نوع المحتوى", - "popUpForm.navContainer.relation": "تعريف العلاقة", "popUpForm.navContainer.base": "إعدادات القاعدة", "popUpForm.navContainer.advanced": "إعدادات متقدمة", - "popUpRelation.title": "علاقة", - "popUpWarning.button.cancel": "الغاء", "popUpWarning.button.confirm": "تأكيد", "popUpWarning.title": "الرجاء التأكيد", - "popUpWarning.bodyMessage.contentType.delete": - "هل أنت متأكد من أنك تريد حذف نوع المحتوى هذا؟", + "popUpWarning.bodyMessage.contentType.delete": "هل أنت متأكد من أنك تريد حذف نوع المحتوى هذا؟", "popUpWarning.bodyMessage.attribute.delete": "هل أنت متأكد من أنك تريد حذف هذا الحقل؟", - "table.contentType.title.plural": "أنواع المحتوى متاحة", "table.contentType.title.singular": "نوع المحتوى متاح", "table.contentType.head.name": "اسم", "table.contentType.head.description": "وصف", "table.contentType.head.fields": "حقول", - - "relation.oneToOne": "يملك واحد", + "relation.oneWay": "يمتلك واحد", + "relation.oneToOne": "يتشارك بواحد", "relation.oneToMany": "ينتمي للكثير", "relation.manyToOne": "يملك الكثير", "relation.manyToMany": "يملك وينتم للكثير", - "relation.attributeName.placeholder": "مثال: المؤلف, الفئة, الوسم" -} + "relation.attributeName.placeholder": "مثال: المؤلف, الفئة, الوسم", + "notification.info.enumeration": "هذا الحقل غير قابل للتحرير في الوقت الحالي ... 😮" +} \ No newline at end of file From 51d64acb1eff6b68b22eaf76f73692da89769e7a Mon Sep 17 00:00:00 2001 From: Salem Yaslem Date: Fri, 7 Sep 2018 02:34:57 +0300 Subject: [PATCH 05/22] update strapi-plugin-content-manager arabic translate --- .../admin/src/translations/ar.json | 86 +++++++++++++++---- 1 file changed, 68 insertions(+), 18 deletions(-) diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/ar.json b/packages/strapi-plugin-content-manager/admin/src/translations/ar.json index c831e99863..e3c71f2ac1 100644 --- a/packages/strapi-plugin-content-manager/admin/src/translations/ar.json +++ b/packages/strapi-plugin-content-manager/admin/src/translations/ar.json @@ -9,23 +9,60 @@ "containers.Edit.delete": "حذف", "containers.Edit.reset": "إعادة", "containers.Edit.returnList": "العودة للقائمة", + "containers.Edit.addAnItem": "اضافة عنصر...", + "containers.Edit.clickToJump": "انقر للانتقال إلى الإدخال", + "containers.Edit.seeDetails": "التفاصيل", "containers.List.addAnEntry": "مدخل جديد {entity}", "containers.List.pluginHeaderDescription": "{label} مدخل تم العثور عليه", "containers.List.pluginHeaderDescription.singular": "{label} مدخل عثر", "components.LimitSelect.itemsPerPage": "عنصر بالصفحة", "containers.List.errorFetchRecords": "خطأ", - - "containers.SettingPage.relations": "Relational fields", - - "containers.SettingPage.editSettings.description": "Drag & drop the fields to build the layout", - "containers.SettingPage.editSettings.title": "Edit - Settings", - + "containers.ListPage.displayedFields": "اظهار الحقول", + "containers.SettingPage.addField": "اضافة حقل جديد", + "containers.SettingPage.addRelationalField": "إضافة مجال علاقي جديد", + "containers.SettingPage.attributes": "حقول السمات", + "containers.SettingPage.attributes.description": "حدد ترتيب السمات", + "containers.SettingPage.relations": "المجالات العلائقية", + "containers.SettingPage.editSettings.description": "اسحب الحقول وأفلتها لإنشاء التخطيط", + "containers.SettingPage.editSettings.title": "التعديل - الإعدادات", + "containers.SettingPage.listSettings.title": "القائمة — الإعدادات", + "containers.SettingPage.listSettings.description": "تكوين الخيارات لنوع المحتوى هذا", + "containers.SettingPage.pluginHeaderDescription": "قم بتكوين الإعدادات المحددة لنوع المحتوى هذا", + "containers.SettingsPage.pluginHeaderDescription": "تكوين الإعدادات الافتراضية لجميع أنواع المحتوى الخاص بك", + "containers.SettingsPage.Block.generalSettings.description": "تكوين الخيارات الافتراضية لأنواع محتواك", + "containers.SettingsPage.Block.generalSettings.title": "عام", + "containers.SettingsPage.Block.contentType.title": "أنواع المحتوى", + "containers.SettingsPage.Block.contentType.description": "تكوين الإعدادات المحددة", + "components.AddFilterCTA.add": "مرشحات", + "components.AddFilterCTA.hide": "مرشحات", + "components.DraggableAttr.edit": "اضغط لتعديل", + "components.EmptyAttributesBlock.description": "يمكنك تغيير إعداداتك", + "components.EmptyAttributesBlock.button": "الذهاب الى صفحة الإعدادات", + "components.FiltersPickWrapper.PluginHeader.actions.apply": "تطبيق", + "components.FiltersPickWrapper.PluginHeader.actions.clearAll": "مسح الكل", + "components.FiltersPickWrapper.PluginHeader.description": "عيّن الشروط لتطبيقها على ترشيح الإدخالات", + "components.FiltersPickWrapper.PluginHeader.title.filter": "مرشحات", + "components.FiltersPickWrapper.hide": "اخفاء", + "components.FilterOptions.button.apply": "تطبيق", + "components.FilterOptions.FILTER_TYPES.=": "هو", + "components.FilterOptions.FILTER_TYPES._ne": "ليس", + "components.FilterOptions.FILTER_TYPES._lt": "اقل من", + "components.FilterOptions.FILTER_TYPES._lte": "اقل من او يساوي", + "components.FilterOptions.FILTER_TYPES._gt": "اكبر من", + "components.FilterOptions.FILTER_TYPES._gte": "اكبر من او يساوي", + "components.FilterOptions.FILTER_TYPES._contains": "يحتوي", + "components.FilterOptions.FILTER_TYPES._containss": "يحتوي (حساس لحالة الأحرف)", + "components.Search.placeholder": "البحث عن مدخل...", + "components.TableDelete.entries.plural": "{number} مدخلات محددة", + "components.TableDelete.entries.singular": "{number} مدخل محدد", + "components.TableDelete.delete": "حذف الكل", + "components.TableEmpty.withFilters": "لا يوجد {contentType} مع المرشحات المطبق...", + "components.TableEmpty.withoutFilter": "لا يوجد {contentType}...", + "components.TableEmpty.withSearch": "لا يوجد {contentType} مطابق للبحث ({search})...", "EditRelations.title": "البيانات العلائقية", - "emptyAttributes.title": "لا توجد حقول بعد", "emptyAttributes.description": "أضف حقلك الأول إلى نوع المحتوى الخاص بك", "emptyAttributes.button": "انتقل إلى أداة إنشاء نوع المحتوى", - "error.schema.generation": "حدث خطأ أثناء توليد المخطط.", "error.records.count": "حدث خطأ أثناء إحضار عدد السجلات.", "error.records.fetch": "حدث خطأ أثناء جلب السجلات.", @@ -45,20 +82,33 @@ "error.attribute.key.taken": "هذه القيمة موجودة مسبقًا", "error.attribute.sameKeyAndName": "لا تتطابق", "error.validation.minSupMax": "لا يمكن أن تكون متفوقة", - - "form.Input.disabled": "Editable field", - "form.Input.description": "Description", - "form.Input.description.placeholder": "Display name in the profile", - + "error.validation.json": "هذا ليس JSON", + "form.Input.description": "الوصف", + "form.Input.placeholder": "العنصر النائب", + "form.Input.description.placeholder": "عرض الإسم في الملف الشخصي", + "form.Input.placeholder.placeholder": "قيمتي الرائعة", + "form.Input.disabled": "حقل قابل للتعديل", + "form.Input.label.inputDescription": "تتجاوز هذه القيمة التسمية المعروضة في رأس الجدول", + "form.Input.label": "تسميه", + "form.Input.search": "تفعيل البحث", + "form.Input.search.field": "تفعيل البحث في هذا الحقل", + "form.Input.filters": "تفعيل الترشيح", + "form.Input.sort.field": "تمكين الفرز في هذا الحقل", + "form.Input.bulkActions": "تمكين الإجراءات المجمعة", + "form.Input.pageEntries": "مدخلات في الصفحة", + "form.Input.pageEntries.inputDescription": "ملاحظة: يمكنك تجاوز هذه القيمة في صفحة إعدادات نوع المحتوى.", + "form.Input.defaultSort": "سمة الفرز الافتراضي", + "notification.error.displayedFields": "أنت بحاجة إلى حقل معروض واحد على الأقل", "notification.error.relationship.fetch": "حدث خطأ أثناء جلب العلاقة.", - + "notification.info.SettingPage.disableSort": "يجب أن يكون لديك سمة واحدة مع الفرز المسموح به", "success.record.delete": "حُذف", "success.record.save": "حُفظ", - "pageNotFound": "الصفحة غير موجود", - "popUpWarning.button.cancel": "الغاء", "popUpWarning.button.confirm": "تأكيد", "popUpWarning.title": "الرجاء التأكيد", - "popUpWarning.bodyMessage.contentType.delete": "هل انت متأكد من حذف هذا المدخل؟" -} + "popUpWarning.bodyMessage.contentType.delete": "هل انت متأكد من حذف هذا المدخل؟", + "popUpWarning.bodyMessage.contentType.delete.all": "هل أنت متأكد من أنك تريد حذف هذه الأدخالات؟", + "popUpWarning.warning.cancelAllSettings": "هل أنت متأكد من أنك تريد إلغاء التعديلاتك؟", + "popUpWarning.warning.updateAllSettings": "سيؤدي ذلك إلى تعديل جميع إعداداتك" +} \ No newline at end of file From 3378403954fd107fdebda2b748286b2010bee800 Mon Sep 17 00:00:00 2001 From: Jason Lei Date: Mon, 10 Sep 2018 16:05:00 +0800 Subject: [PATCH 06/22] GraphQL Mutations, Aggregations, Decimals Merging Mutations and Aggregations. Fixed Mongoose Hook to use Decimals (2 decimal places) and Floats (20 decimal places). --- .../strapi-hook-mongoose/lib/utils/index.js | 10 +- packages/strapi-plugin-graphql/README.md | 2 +- .../hooks/graphql/index.js | 161 +- .../services/Aggregator.js | 563 +++++++ .../strapi-plugin-graphql/services/GraphQL.js | 1314 ----------------- .../services/Mutation.js | 240 +++ .../strapi-plugin-graphql/services/Query.js | 285 ++++ .../services/Resolvers.js | 443 ++++++ .../strapi-plugin-graphql/services/Schema.js | 316 ++++ .../strapi-plugin-graphql/services/Types.js | 239 +++ .../config/schema.graphql | 34 + .../strapi-plugin-upload/services/Upload.js | 146 +- .../config/schema.graphql | 29 + packages/strapi/lib/Strapi.js | 90 +- 14 files changed, 2409 insertions(+), 1463 deletions(-) create mode 100644 packages/strapi-plugin-graphql/services/Aggregator.js delete mode 100644 packages/strapi-plugin-graphql/services/GraphQL.js create mode 100644 packages/strapi-plugin-graphql/services/Mutation.js create mode 100644 packages/strapi-plugin-graphql/services/Query.js create mode 100644 packages/strapi-plugin-graphql/services/Resolvers.js create mode 100644 packages/strapi-plugin-graphql/services/Schema.js create mode 100644 packages/strapi-plugin-graphql/services/Types.js diff --git a/packages/strapi-hook-mongoose/lib/utils/index.js b/packages/strapi-hook-mongoose/lib/utils/index.js index f36bf888ad..8906ed5613 100755 --- a/packages/strapi-hook-mongoose/lib/utils/index.js +++ b/packages/strapi-hook-mongoose/lib/utils/index.js @@ -5,7 +5,8 @@ */ module.exports = mongoose => { - require('mongoose-float').loadType(mongoose); + var Decimal = require('mongoose-float').loadType(mongoose, 2); + var Float = require('mongoose-float').loadType(mongoose, 20); return { convertType: mongooseType => { @@ -22,9 +23,9 @@ module.exports = mongoose => { case 'timestamp': return Date; case 'decimal': - return 'Float'; + return Decimal; case 'float': - return mongoose.Schema.Types.Decimal128; + return Float; case 'json': return 'Mixed'; case 'biginteger': @@ -39,8 +40,7 @@ module.exports = mongoose => { case 'text': return 'String'; default: - } - } + }, }; }; diff --git a/packages/strapi-plugin-graphql/README.md b/packages/strapi-plugin-graphql/README.md index 6f2fd987e1..af1f65a501 100755 --- a/packages/strapi-plugin-graphql/README.md +++ b/packages/strapi-plugin-graphql/README.md @@ -1 +1 @@ -# Strapi plugin \ No newline at end of file +# Strapi plugin diff --git a/packages/strapi-plugin-graphql/hooks/graphql/index.js b/packages/strapi-plugin-graphql/hooks/graphql/index.js index dc0dd42b4f..c6872a80f1 100644 --- a/packages/strapi-plugin-graphql/hooks/graphql/index.js +++ b/packages/strapi-plugin-graphql/hooks/graphql/index.js @@ -8,13 +8,12 @@ const _ = require('lodash'); const path = require('path'); const glob = require('glob'); -const { graphqlKoa } = require('apollo-server-koa'); -const koaPlayground = require('graphql-playground-middleware-koa').default; +const { ApolloServer } = require('apollo-server-koa'); const depthLimit = require('graphql-depth-limit'); module.exports = strapi => { return { - beforeInitialize: async function(){ + beforeInitialize: async function() { // Try to inject this hook just after the others hooks to skip the router processing. if (!_.get(strapi.config.hook.load, 'after')) { _.set(strapi.config.hook.load, 'after', []); @@ -23,46 +22,73 @@ module.exports = strapi => { strapi.config.hook.load.after.push('graphql'); // Load core utils. - const utils = require(path.resolve(strapi.config.appPath, 'node_modules', 'strapi', 'lib', 'utils')); + const utils = require(path.resolve( + strapi.config.appPath, + 'node_modules', + 'strapi', + 'lib', + 'utils', + )); // Set '*.graphql' files configurations in the global variable. await Promise.all([ // Load root configurations. new Promise((resolve, reject) => { - glob('./config/*.graphql', { - cwd: strapi.config.appPath - }, (err, files) => { - if (err) { - return reject(err); - } + glob( + './config/*.graphql', + { + cwd: strapi.config.appPath, + }, + (err, files) => { + if (err) { + return reject(err); + } - utils.loadConfig.call(strapi, files, true).then(resolve).catch(reject); - }); + utils.loadConfig + .call(strapi, files, true) + .then(resolve) + .catch(reject); + }, + ); }), // Load APIs configurations. new Promise((resolve, reject) => { - glob('./api/*/config/*.graphql', { - cwd: strapi.config.appPath - }, (err, files) => { - if (err) { - return reject(err); - } + glob( + './api/*/config/*.graphql', + { + cwd: strapi.config.appPath, + }, + (err, files) => { + if (err) { + return reject(err); + } - utils.loadConfig.call(strapi, files, true).then(resolve).catch(reject); - }); + utils.loadConfig + .call(strapi, files, true) + .then(resolve) + .catch(reject); + }, + ); }), // Load plugins configurations. new Promise((resolve, reject) => { - glob('./plugins/*/config/*.graphql', { - cwd: strapi.config.appPath - }, (err, files) => { - if (err) { - return reject(err); - } + glob( + './plugins/*/config/*.graphql', + { + cwd: strapi.config.appPath, + }, + (err, files) => { + if (err) { + return reject(err); + } - utils.loadConfig.call(strapi, files, true).then(resolve).catch(reject); - }); - }) + utils.loadConfig + .call(strapi, files, true) + .then(resolve) + .catch(reject); + }, + ); + }), ]); /* @@ -70,66 +96,93 @@ module.exports = strapi => { */ // Set path with initial state. - _.set(strapi.plugins.graphql, 'config._schema.graphql', { definition: '', query: '', type : {}, resolver: {} }); + _.set(strapi.plugins.graphql, 'config._schema.graphql', { + definition: '', + query: '', + mutation: '', + type: {}, + resolver: {}, + }); // Merge user API. Object.keys(strapi.api || {}).reduce((acc, current) => { - const { definition, query, type, resolver } = _.get(strapi.api[current], 'config.schema.graphql', {}); + const { definition, query, mutation, type, resolver } = _.get( + strapi.api[current], + 'config.schema.graphql', + {}, + ); acc.definition += definition || ''; acc.query += query || ''; + acc.mutation += mutation || ''; return _.merge(acc, { type, - resolver + resolver, }); }, strapi.plugins.graphql.config._schema.graphql); // Merge plugins API. Object.keys(strapi.plugins || {}).reduce((acc, current) => { - const { definition, query, type, resolver } = _.get(strapi.plugins[current], 'config.schema.graphql', {}); + const { definition, query, mutation, type, resolver } = _.get( + strapi.plugins[current], + 'config.schema.graphql', + {}, + ); acc.definition += definition || ''; acc.query += query || ''; + acc.mutation += mutation || ''; return _.merge(acc, { type, - resolver + resolver, }); }, strapi.plugins.graphql.config._schema.graphql); }, initialize: function(cb) { - const schema = strapi.plugins.graphql.services.graphql.generateSchema(); + const { + typeDefs, + resolvers, + } = strapi.plugins.graphql.services.schema.generateSchema(); - if (_.isEmpty(schema)) { - strapi.log.warn('GraphQL schema has not been generated because it\'s empty'); + if (_.isEmpty(typeDefs)) { + strapi.log.warn( + 'GraphQL schema has not been generated because it\'s empty', + ); return cb(); } - const router = strapi.koaMiddlewares.routerJoi(); - - router.post(strapi.plugins.graphql.config.endpoint, async (ctx, next) => graphqlKoa({ - schema, - context: ctx, - validationRules: [ depthLimit(strapi.plugins.graphql.config.depthLimit) ] - })(ctx, next)); - - router.get(strapi.plugins.graphql.config.endpoint, async (ctx, next) => graphqlKoa({ - schema, - context: ctx, - validationRules: [ depthLimit(strapi.plugins.graphql.config.depthLimit) ] - })(ctx, next)); + const serverParams = { + typeDefs, + resolvers, + context: async ({ ctx }) => ({ + context: ctx, + }), + validationRules: [depthLimit(strapi.plugins.graphql.config.depthLimit)], + playground: false, + }; // Disable GraphQL Playground in production environment. - if (strapi.config.environment !== 'production' || strapi.plugins.graphql.config.playgroundAlways) { - router.get('/playground', koaPlayground({ endpoint: strapi.plugins.graphql.config.endpoint})); + if ( + strapi.config.environment !== 'production' || + strapi.plugins.graphql.config.playgroundAlways + ) { + serverParams.playground = { + endpoint: strapi.plugins.graphql.config.endpoint, + }; } - strapi.app.use(router.middleware()); + const server = new ApolloServer(serverParams); + + server.applyMiddleware({ + app: strapi.app, + path: strapi.plugins.graphql.config.endpoint, + }); cb(); - } + }, }; }; diff --git a/packages/strapi-plugin-graphql/services/Aggregator.js b/packages/strapi-plugin-graphql/services/Aggregator.js new file mode 100644 index 0000000000..22616e9146 --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Aggregator.js @@ -0,0 +1,563 @@ +'use strict'; + +/** + * Aggregator.js service + * + * @description: A set of functions similar to controller's actions to avoid code duplication. + */ + +const _ = require('lodash'); +const pluralize = require('pluralize'); +const Schema = require('./Schema.js'); + +module.exports = { + /** + * Returns all fields of type primitive + * + * @returns {Boolean} + */ + isPrimitiveType: _type => { + const type = _type.replace('!', ''); + return ( + type === 'Int' || + type === 'Float' || + type === 'String' || + type === 'Boolean' || + type === 'DateTime' || + type === 'JSON' + ); + }, + + /** + * Checks if the field is of type enum + * + * @returns {Boolean} + */ + isEnumType: type => { + return type === 'enumeration'; + }, + + /** + * Returns all fields that are not of type array + * + * @returns {Boolean} + * + * @example + * + * isNotOfTypeArray([String]) + * // => false + * isNotOfTypeArray(String!) + * // => true + */ + isNotOfTypeArray: type => { + return !/(\[\w+!?\])/.test(type); + }, + + /** + * Returns all fields of type Integer or float + */ + isNumberType: type => { + return type === 'Int' || type === 'Float'; + }, + + /** + * Convert parameters to valid filters parameters. + * + * @return Object + */ + + convertToParams: params => { + return Object.keys(params).reduce((acc, current) => { + return Object.assign(acc, { + [`_${current}`]: params[current], + }); + }, {}); + }, + + /** + * Returns a list of fields that have type included in fieldTypes. + */ + getFieldsByTypes: (fields, typeCheck, returnType) => { + return _.reduce( + fields, + (acc, fieldType, fieldName) => { + if (typeCheck(fieldType)) { + acc[fieldName] = returnType(fieldType, fieldName); + } + return acc; + }, + {}, + ); + }, + + /** + * Use the field resolver otherwise fall through the field value + * + * @returns {function} + */ + fieldResolver: (field, key) => { + return object => { + const resolver = + field.resolve || + function resolver(obj, options, context) { + // eslint-disable-line no-unused-vars + return obj[key]; + }; + return resolver(object); + }; + }, + + /** + * Create fields resolvers + * + * @return {Object} + */ + createFieldsResolver: function(fields, resolver, typeCheck) { + return Object.keys(fields).reduce((acc, fieldKey) => { + const field = fields[fieldKey]; + // Check if the field is of the correct type + if (typeCheck(field)) { + return _.set(acc, fieldKey, (obj, options, context) => { + return resolver( + obj, + options, + context, + this.fieldResolver(field, fieldKey), + fieldKey, + obj, + field, + ); + }); + } + return acc; + }, {}); + }, + + /** + * Convert non-primitive type to string (non-primitive types corresponds to a reference to an other model) + * + * @returns {String} + * + * @example + * + * extractType(String!) + * // => String + * + * extractType(user) + * // => ID + * + * extractType(ENUM_TEST_FIELD, enumeration) + * // => String + * + */ + extractType: function(_type, attributeType) { + return this.isPrimitiveType(_type) + ? _type.replace('!', '') + : this.isEnumType(attributeType) + ? 'String' + : 'ID'; + }, + + /** + * Build the mongoose aggregator by applying the filters + */ + getModelAggregator: function(model, filters = {}) { + const aggregation = model.aggregate(); + if (!_.isEmpty(filters.where)) { + aggregation.match(filters.where); + } + if (filters.limit) { + aggregation.limit(filters.limit); + } + return aggregation; + }, + + /** + * Create the resolvers for each aggregation field + * + * @return {Object} + * + * @example + * + * const model = // Strapi model + * + * const fields = { + * username: String, + * age: Int, + * } + * + * const typeCheck = (type) => type === 'Int' || type === 'Float', + * + * const fieldsResoler = createAggregationFieldsResolver(model, fields, 'sum', typeCheck); + * + * // => { + * age: function ageResolver() { .... } + * } + */ + createAggregationFieldsResolver: function( + model, + fields, + operation, + typeCheck, + ) { + return this.createFieldsResolver( + fields, + async (obj, options, context, fieldResolver, fieldKey) => { + // eslint-disable-line no-unused-vars + const result = await this.getModelAggregator(model, obj).group({ + _id: null, + [fieldKey]: { [`$${operation}`]: `$${fieldKey}` }, + }); + return _.get(result, `0.${fieldKey}`); + }, + typeCheck, + ); + }, + + /** + * Correctly format the data returned by the group by + */ + preProcessGroupByData: function({ result, fieldKey, filters, modelName }) { + const _result = _.toArray(result); + return _.map(_result, value => { + const params = Object.assign( + {}, + this.convertToParams(_.omit(filters, 'where')), + filters.where, + { + [fieldKey]: value._id, + }, + ); + + return { + key: value._id, + connection: strapi.utils.models.convertParams(modelName, params), + }; + }); + }, + + /** + * Create the resolvers for each group by field + * + * @return {Object} + * + * @example + * + * const model = // Strapi model + * const fields = { + * username: [UserConnectionUsername], + * email: [UserConnectionEmail], + * } + * const fieldsResoler = createGroupByFieldsResolver(model, fields); + * + * // => { + * username: function usernameResolver() { .... } + * email: function emailResolver() { .... } + * } + */ + createGroupByFieldsResolver: function(model, fields, name) { + return this.createFieldsResolver( + fields, + async (obj, options, context, fieldResolver, fieldKey) => { + const result = await this.getModelAggregator(model, obj).group({ + _id: `$${fieldKey}`, + }); + + return this.preProcessGroupByData({ + result, + fieldKey, + filters: obj, + modelName: name, + }); + }, + () => true, + ); + }, + + /** + * This method is the entry point to the GraphQL's Aggregation. + * It takes as param the model and its fields and it'll create the aggregation types and resolver to it + * Example: + * type User { + * username: String, + * age: Int, + * } + * + * It'll create + * type UserConnection { + * values: [User], + * groupBy: UserGroupBy, + * aggreate: UserAggregate + * } + * + * type UserAggregate { + * count: Int + * sum: UserAggregateSum + * avg: UserAggregateAvg + * } + * + * type UserAggregateSum { + * age: Float + * } + * + * type UserAggregateAvg { + * age: Float + * } + * + * type UserGroupBy { + * username: [UserConnectionUsername] + * age: [UserConnectionAge] + * } + * + * type UserConnectionUsername { + * key: String + * connection: UserConnection + * } + * + * type UserConnectionAge { + * key: Int + * connection: UserConnection + * } + * + */ + formatModelConnectionsGQL: function(fields, model, name, modelResolver) { + const { globalId } = model; + + const connectionGlobalId = `${globalId}Connection`; + const aggregatorFormat = this.formatConnectionAggregator( + fields, + model, + name, + ); + const groupByFormat = this.formatConnectionGroupBy(fields, model, name); + const connectionFields = { + values: `[${globalId}]`, + groupBy: `${globalId}GroupBy`, + aggregate: `${globalId}Aggregator`, + }; + + let modelConnectionTypes = `type ${connectionGlobalId} {${Schema.formatGQL( + connectionFields, + )}}\n\n`; + if (aggregatorFormat) { + modelConnectionTypes += aggregatorFormat.type; + } + modelConnectionTypes += groupByFormat.type; + + return { + globalId: connectionGlobalId, + type: modelConnectionTypes, + query: { + [`${pluralize.plural( + name, + )}Connection(sort: String, limit: Int, start: Int, where: JSON)`]: connectionGlobalId, + }, + resolver: { + Query: { + [`${pluralize.plural(name)}Connection`]: (obj, options, context) => { + // eslint-disable-line no-unused-vars + const params = Object.assign( + {}, + this.convertToParams(_.omit(options, 'where')), + options.where, + ); + return strapi.utils.models.convertParams(name, params); + }, + }, + [connectionGlobalId]: { + values: (obj, option, context) => { + // Object here contains the key/value of the field that has been grouped-by + // for instance obj = { where: { country: 'USA' } } so the values here needs to be filtered according to the parent value + return modelResolver(obj, obj, context); + }, + groupBy: (obj, option, context) => { + // eslint-disable-line no-unused-vars + // There is noting to resolve here, it's the aggregation resolver that will take care of it + return obj; + }, + aggregate: (obj, option, context) => { + // eslint-disable-line no-unused-vars + // There is noting to resolve here, it's the aggregation resolver that will take care of it + return obj; + }, + }, + ...aggregatorFormat.resolver, + ...groupByFormat.resolver, + }, + }; + }, + + /** + * Returns a list of fields that have type included in fieldTypes. + */ + getFieldsByTypes: (fields, typeCheck, returnType) => { + return _.reduce( + fields, + (acc, fieldType, fieldName) => { + if (typeCheck(fieldType)) { + acc[fieldName] = returnType(fieldType, fieldName); + } + return acc; + }, + {}, + ); + }, + + /** + * Generate the connection type of each non-array field of the model + * + * @return {String} + */ + generateConnectionFieldsTypes: function(fields, model) { + const { globalId, attributes } = model; + const primitiveFields = this.getFieldsByTypes( + fields, + this.isNotOfTypeArray, + (type, name) => this.extractType(type, (attributes[name] || {}).type), + ); + + const connectionFields = _.mapValues(primitiveFields, fieldType => ({ + key: fieldType, + connection: `${globalId}Connection`, + })); + + return Object.keys(primitiveFields) + .map( + fieldKey => + `type ${globalId}Connection${_.upperFirst( + fieldKey, + )} {${Schema.formatGQL(connectionFields[fieldKey])}}`, + ) + .join('\n\n'); + }, + + formatConnectionGroupBy: function(fields, model, name) { + const { globalId } = model; + const groupByGlobalId = `${globalId}GroupBy`; + + // Extract all primitive fields and change their types + const groupByFields = this.getFieldsByTypes( + fields, + this.isNotOfTypeArray, + (fieldType, fieldName) => + `[${globalId}Connection${_.upperFirst(fieldName)}]`, + ); + + // Get the generated field types + let groupByTypes = `type ${groupByGlobalId} {${Schema.formatGQL( + groupByFields, + )}}\n\n`; + groupByTypes += this.generateConnectionFieldsTypes(fields, model); + + return { + globalId: groupByGlobalId, + type: groupByTypes, + resolver: { + [groupByGlobalId]: this.createGroupByFieldsResolver( + model, + groupByFields, + name, + ), + }, + }; + }, + + formatConnectionAggregator: function(fields, model) { + const { globalId } = model; + + // Extract all fields of type Integer and Float and change their type to Float + const numericFields = this.getFieldsByTypes( + fields, + this.isNumberType, + () => 'Float', + ); + + // Don't create an aggregator field if the model has not number fields + const aggregatorGlobalId = `${globalId}Aggregator`; + const initialFields = { + count: 'Int', + }; + + // Only add the aggregator's operations if there are some numeric fields + if (!_.isEmpty(numericFields)) { + ['sum', 'avg', 'min', 'max'].forEach(agg => { + initialFields[agg] = `${aggregatorGlobalId}${_.startCase(agg)}`; + }); + } + + const gqlNumberFormat = Schema.formatGQL(numericFields); + let aggregatorTypes = `type ${aggregatorGlobalId} {${Schema.formatGQL( + initialFields, + )}}\n\n`; + + let resolvers = { + [aggregatorGlobalId]: { + count: async (obj, options, context) => { + // eslint-disable-line no-unused-vars + // Object here corresponds to the filter that needs to be applied to the aggregation + const result = await this.getModelAggregator(model, obj).group({ + _id: null, + count: { $sum: 1 }, + }); + + return _.get(result, '0.count'); + }, + }, + }; + + // Only add the aggregator's operations types and resolver if there are some numeric fields + if (!_.isEmpty(numericFields)) { + // Returns the actual object and handle aggregation in the query resolvers + const defaultAggregatorFunc = (obj, options, context) => { + // eslint-disable-line no-unused-vars + return obj; + }; + + aggregatorTypes += `type ${aggregatorGlobalId}Sum {${gqlNumberFormat}}\n\n`; + aggregatorTypes += `type ${aggregatorGlobalId}Avg {${gqlNumberFormat}}\n\n`; + aggregatorTypes += `type ${aggregatorGlobalId}Min {${gqlNumberFormat}}\n\n`; + aggregatorTypes += `type ${aggregatorGlobalId}Max {${gqlNumberFormat}}\n\n`; + + _.merge(resolvers[aggregatorGlobalId], { + sum: defaultAggregatorFunc, + avg: defaultAggregatorFunc, + min: defaultAggregatorFunc, + max: defaultAggregatorFunc, + }); + + resolvers = { + ...resolvers, + [`${aggregatorGlobalId}Sum`]: this.createAggregationFieldsResolver( + model, + fields, + 'sum', + this.isNumberType, + ), + [`${aggregatorGlobalId}Avg`]: this.createAggregationFieldsResolver( + model, + fields, + 'avg', + this.isNumberType, + ), + [`${aggregatorGlobalId}Min`]: this.createAggregationFieldsResolver( + model, + fields, + 'min', + this.isNumberType, + ), + [`${aggregatorGlobalId}Max`]: this.createAggregationFieldsResolver( + model, + fields, + 'max', + this.isNumberType, + ), + }; + } + + return { + globalId: aggregatorGlobalId, + type: aggregatorTypes, + resolver: resolvers, + }; + }, +}; diff --git a/packages/strapi-plugin-graphql/services/GraphQL.js b/packages/strapi-plugin-graphql/services/GraphQL.js deleted file mode 100644 index 6e35f50a49..0000000000 --- a/packages/strapi-plugin-graphql/services/GraphQL.js +++ /dev/null @@ -1,1314 +0,0 @@ -'use strict'; - -/** - * GraphQL.js service - * - * @description: A set of functions similar to controller's actions to avoid code duplication. - */ - - -const fs = require('fs'); -const path = require('path'); -const _ = require('lodash'); -const pluralize = require('pluralize'); -const graphql = require('graphql'); -const { makeExecutableSchema } = require('graphql-tools'); -const GraphQLJSON = require('graphql-type-json'); -const GraphQLDateTime = require('graphql-type-datetime'); -const policyUtils = require('strapi-utils').policy; - -module.exports = { - /** - * Returns all fields of type primitive - * - * @returns {Boolean} - */ - isPrimitiveType: (_type) => { - const type = _type.replace('!', ''); - return ( - type === 'Int' || - type === 'Float' || - type === 'String' || - type === 'Boolean' || - type === 'DateTime' || - type === 'JSON' - ); - }, - - /** - * Checks if the field is of type enum - * - * @returns {Boolean} - */ - isEnumType: (type) => { - return type === 'enumeration'; - }, - - /** - * Returns all fields that are not of type array - * - * @returns {Boolean} - * - * @example - * - * isNotOfTypeArray([String]) - * // => false - * isNotOfTypeArray(String!) - * // => true - */ - isNotOfTypeArray: (type) => { - return !/(\[\w+!?\])/.test(type); - }, - - /** - * Returns all fields of type Integer or float - */ - isNumberType: (type) => { - return type === 'Int' || type === 'Float'; - }, - - /** - * Convert non-primitive type to string (non-primitive types corresponds to a reference to an other model) - * - * @returns {String} - * - * @example - * - * extractType(String!) - * // => String - * - * extractType(user) - * // => ID - * - * extractType(ENUM_TEST_FIELD, enumeration) - * // => String - * - */ - extractType: function (_type, attributeType) { - return this.isPrimitiveType(_type) - ? _type.replace('!', '') - : this.isEnumType(attributeType) - ? 'String' - : 'ID'; - }, - - /** - * Returns a list of fields that have type included in fieldTypes. - */ - getFieldsByTypes: (fields, typeCheck, returnType) => { - return _.reduce(fields, (acc, fieldType, fieldName) => { - if (typeCheck(fieldType)) { - acc[fieldName] = returnType(fieldType, fieldName); - } - return acc; - }, {}); - }, - - /** - * Use the field resolver otherwise fall through the field value - * - * @returns {function} - */ - fieldResolver: (field, key) => { - return (object) => { - const resolver = field.resolve || function resolver(obj, options, context) { // eslint-disable-line no-unused-vars - return obj[key]; - }; - return resolver(object); - }; - }, - - /** - * Create fields resolvers - * - * @return {Object} - */ - createFieldsResolver: function(fields, resolver, typeCheck) { - return Object.keys(fields).reduce((acc, fieldKey) => { - const field = fields[fieldKey]; - // Check if the field is of the correct type - if (typeCheck(field)) { - return _.set(acc, fieldKey, (obj, options, context) => { - return resolver(obj, options, context, this.fieldResolver(field, fieldKey), fieldKey, obj, field); - }); - } - return acc; - }, {}); - }, - - /** - * Build the mongoose aggregator by applying the filters - */ - getModelAggregator: function (model, filters = {}) { - const aggregation = model.aggregate(); - if (!_.isEmpty(filters.where)) { - aggregation.match(filters.where); - } - if (filters.limit) { - aggregation.limit(filters.limit); - } - return aggregation; - }, - - /** - * Create the resolvers for each aggregation field - * - * @return {Object} - * - * @example - * - * const model = // Strapi model - * - * const fields = { - * username: String, - * age: Int, - * } - * - * const typeCheck = (type) => type === 'Int' || type === 'Float', - * - * const fieldsResoler = createAggregationFieldsResolver(model, fields, 'sum', typeCheck); - * - * // => { - * age: function ageResolver() { .... } - * } - */ - createAggregationFieldsResolver: function (model, fields, operation, typeCheck) { - return this.createFieldsResolver(fields, async (obj, options, context, fieldResolver, fieldKey) => { // eslint-disable-line no-unused-vars - const result = await this.getModelAggregator(model, obj).group({ - _id: null, - [fieldKey]: { [`$${operation}`]: `$${fieldKey}` } - }); - return _.get(result, `0.${fieldKey}`); - }, typeCheck); - }, - - /** - * Correctly format the data returned by the group by - */ - preProcessGroupByData: function ({ result, fieldKey, filters, modelName }) { - const _result = _.toArray(result); - return _.map(_result, (value) => { - const params = Object.assign( - {}, - this.convertToParams(_.omit(filters, 'where')), - filters.where, - { - [fieldKey]: value._id, - } - ); - - return { - key: value._id, - connection: strapi.utils.models.convertParams(modelName, params), - }; - }); - }, - - /** - * Create the resolvers for each group by field - * - * @return {Object} - * - * @example - * - * const model = // Strapi model - * const fields = { - * username: [UserConnectionUsername], - * email: [UserConnectionEmail], - * } - * const fieldsResoler = createGroupByFieldsResolver(model, fields); - * - * // => { - * username: function usernameResolver() { .... } - * email: function emailResolver() { .... } - * } - */ - createGroupByFieldsResolver: function (model, fields, name) { - return this.createFieldsResolver(fields, async (obj, options, context, fieldResolver, fieldKey) => { - const result = await this.getModelAggregator(model, obj).group({ - _id: `$${fieldKey}`, - }); - - return this.preProcessGroupByData({ - result, - fieldKey, - filters: obj, - modelName: name, - }); - }, () => true); - }, - - /** - * This method is the entry point to the GraphQL's Aggregation. - * It takes as param the model and its fields and it'll create the aggregation types and resolver to it - * Example: - * type User { - * username: String, - * age: Int, - * } - * - * It'll create - * type UserConnection { - * values: [User], - * groupBy: UserGroupBy, - * aggreate: UserAggregate - * } - * - * type UserAggregate { - * count: Int - * sum: UserAggregateSum - * avg: UserAggregateAvg - * } - * - * type UserAggregateSum { - * age: Float - * } - * - * type UserAggregateAvg { - * age: Float - * } - * - * type UserGroupBy { - * username: [UserConnectionUsername] - * age: [UserConnectionAge] - * } - * - * type UserConnectionUsername { - * key: String - * connection: UserConnection - * } - * - * type UserConnectionAge { - * key: Int - * connection: UserConnection - * } - * - */ - formatModelConnectionsGQL: function(fields, model, name, modelResolver) { - const { globalId } = model; - - const connectionGlobalId = `${globalId}Connection`; - const aggregatorFormat = this.formatConnectionAggregator(fields, model, name); - const groupByFormat = this.formatConnectionGroupBy(fields, model, name); - const connectionFields = { - values: `[${globalId}]`, - groupBy: `${globalId}GroupBy`, - aggregate: `${globalId}Aggregator`, - }; - - let modelConnectionTypes = `type ${connectionGlobalId} {${this.formatGQL(connectionFields)}}\n\n`; - if (aggregatorFormat) { - modelConnectionTypes += aggregatorFormat.type; - } - modelConnectionTypes += groupByFormat.type; - - return { - globalId: connectionGlobalId, - type: modelConnectionTypes, - query: { - [`${pluralize.plural(name)}Connection(sort: String, limit: Int, start: Int, where: JSON)`]: connectionGlobalId, - }, - resolver: { - Query: { - [`${pluralize.plural(name)}Connection`]: (obj, options, context) => { // eslint-disable-line no-unused-vars - const params = Object.assign( - {}, - this.convertToParams(_.omit(options, 'where')), - options.where - ); - return strapi.utils.models.convertParams(name, params); - } - }, - [connectionGlobalId]: { - values: (obj, option, context) => { - // Object here contains the key/value of the field that has been grouped-by - // for instance obj = { where: { country: 'USA' } } so the values here needs to be filtered according to the parent value - return modelResolver(obj, obj, context); - }, - groupBy: (obj, option, context) => { // eslint-disable-line no-unused-vars - // There is noting to resolve here, it's the aggregation resolver that will take care of it - return obj; - }, - aggregate: (obj, option, context) => { // eslint-disable-line no-unused-vars - // There is noting to resolve here, it's the aggregation resolver that will take care of it - return obj; - }, - }, - ...aggregatorFormat.resolver, - ...groupByFormat.resolver, - }, - }; - }, - - /** - * Generate the connection type of each non-array field of the model - * - * @return {String} - */ - generateConnectionFieldsTypes: function (fields, model) { - const { globalId, attributes } = model; - const primitiveFields = this.getFieldsByTypes( - fields, - this.isNotOfTypeArray, - (type, name) => this.extractType(type, (attributes[name] || {}).type), - ); - - const connectionFields = _.mapValues(primitiveFields, (fieldType) => ({ - key: fieldType, - connection: `${globalId}Connection`, - })); - - return Object.keys(primitiveFields).map((fieldKey) => - `type ${globalId}Connection${_.upperFirst(fieldKey)} {${this.formatGQL(connectionFields[fieldKey])}}` - ).join('\n\n'); - }, - - formatConnectionGroupBy: function(fields, model, name) { - const { globalId } = model; - const groupByGlobalId = `${globalId}GroupBy`; - - // Extract all primitive fields and change their types - const groupByFields = this.getFieldsByTypes( - fields, - this.isNotOfTypeArray, - (fieldType, fieldName) => `[${globalId}Connection${_.upperFirst(fieldName)}]`, - ); - - // Get the generated field types - let groupByTypes = `type ${groupByGlobalId} {${this.formatGQL(groupByFields)}}\n\n`; - groupByTypes += this.generateConnectionFieldsTypes(fields, model); - - return { - globalId: groupByGlobalId, - type: groupByTypes, - resolver: { - [groupByGlobalId]: this.createGroupByFieldsResolver(model, groupByFields, name), - } - }; - }, - - formatConnectionAggregator: function(fields, model) { - const { globalId } = model; - - // Extract all fields of type Integer and Float and change their type to Float - const numericFields = this.getFieldsByTypes(fields, this.isNumberType, () => 'Float'); - - // Don't create an aggregator field if the model has not number fields - const aggregatorGlobalId = `${globalId}Aggregator`; - const initialFields = { - count: 'Int', - }; - - // Only add the aggregator's operations if there are some numeric fields - if (!_.isEmpty(numericFields)) { - ['sum', 'avg', 'min', 'max'].forEach((agg) => { - initialFields[agg] = `${aggregatorGlobalId}${_.startCase(agg)}`; - }); - } - - const gqlNumberFormat = this.formatGQL(numericFields); - let aggregatorTypes = `type ${aggregatorGlobalId} {${this.formatGQL(initialFields)}}\n\n`; - - let resolvers = { - [aggregatorGlobalId]: { - count: async (obj, options, context) => { // eslint-disable-line no-unused-vars - // Object here corresponds to the filter that needs to be applied to the aggregation - const result = await this.getModelAggregator(model, obj).group({ - _id: null, - count: { $sum: 1 } - }); - - return _.get(result, '0.count'); - }, - } - }; - - // Only add the aggregator's operations types and resolver if there are some numeric fields - if (!_.isEmpty(numericFields)) { - // Returns the actual object and handle aggregation in the query resolvers - const defaultAggregatorFunc = (obj, options, context) => { // eslint-disable-line no-unused-vars - return obj; - }; - - aggregatorTypes += `type ${aggregatorGlobalId}Sum {${gqlNumberFormat}}\n\n`; - aggregatorTypes += `type ${aggregatorGlobalId}Avg {${gqlNumberFormat}}\n\n`; - aggregatorTypes += `type ${aggregatorGlobalId}Min {${gqlNumberFormat}}\n\n`; - aggregatorTypes += `type ${aggregatorGlobalId}Max {${gqlNumberFormat}}\n\n`; - - _.merge(resolvers[aggregatorGlobalId], { - sum: defaultAggregatorFunc, - avg: defaultAggregatorFunc, - min: defaultAggregatorFunc, - max: defaultAggregatorFunc, - }); - - resolvers = { - ...resolvers, - [`${aggregatorGlobalId}Sum`]: this.createAggregationFieldsResolver(model, fields, 'sum', this.isNumberType), - [`${aggregatorGlobalId}Avg`]: this.createAggregationFieldsResolver(model, fields, 'avg', this.isNumberType), - [`${aggregatorGlobalId}Min`]: this.createAggregationFieldsResolver(model, fields, 'min', this.isNumberType), - [`${aggregatorGlobalId}Max`]: this.createAggregationFieldsResolver(model, fields, 'max', this.isNumberType) - }; - } - - return { - globalId: aggregatorGlobalId, - type: aggregatorTypes, - resolver: resolvers, - }; - }, - - /** - * Receive an Object and return a string which is following the GraphQL specs. - * - * @return String - */ - - formatGQL: function (fields, description = {}, model = {}, type = 'field') { - const typeFields = JSON.stringify(fields, null, 2).replace(/['",]+/g, ''); - const lines = typeFields.split('\n'); - - // Try to add description for field. - if (type === 'field') { - return lines - .map(line => { - if (['{', '}'].includes(line)) { - return ''; - } - - const split = line.split(':'); - const attribute = _.trim(split[0]); - const info = (_.isString(description[attribute]) ? description[attribute] : _.get(description[attribute], 'description')) || _.get(model, `attributes.${attribute}.description`); - const deprecated = _.get(description[attribute], 'deprecated') || _.get(model, `attributes.${attribute}.deprecated`); - - // Snakecase an attribute when we find a dash. - if (attribute.indexOf('-') !== -1) { - line = ` ${_.snakeCase(attribute)}: ${_.trim(split[1])}`; - } - - if (info) { - line = ` """\n ${info}\n """\n${line}`; - } - - if (deprecated) { - line = `${line} @deprecated(reason: "${deprecated}")`; - } - - return line; - }) - .join('\n'); - } else if (type === 'query') { - return lines - .map((line, index) => { - if (['{', '}'].includes(line)) { - return ''; - } - - const split = Object.keys(fields)[index - 1].split('('); - const attribute = _.trim(split[0]); - const info = _.get(description[attribute], 'description'); - const deprecated = _.get(description[attribute], 'deprecated'); - - // Snakecase an attribute when we find a dash. - if (attribute.indexOf('-') !== -1) { - line = ` ${_.snakeCase(attribute)}(${_.trim(split[1])}`; - } - - if (info) { - line = ` """\n ${info}\n """\n${line}`; - } - - if (deprecated) { - line = `${line} @deprecated(reason: "${deprecated}")`; - } - - return line; - }) - .join('\n'); - } - - return lines - .map((line, index) => { - if ([0, lines.length - 1].includes(index)) { - return ''; - } - - return line; - }) - .join('\n'); - }, - - /** - * Retrieve description from variable and return a string which follow the GraphQL specs. - * - * @return String - */ - - getDescription: (description, model = {}) => { - const format = '"""\n'; - - const str = _.get(description, '_description') || - _.isString(description) ? description : undefined || - _.get(model, 'info.description'); - - if (str) { - return `${format}${str}\n${format}`; - } - - return ''; - }, - - convertToParams: (params) => { - return Object.keys(params).reduce((acc, current) => { - return Object.assign(acc, { - [`_${current}`]: params[current] - }); - }, {}); - }, - - /** - * Security to avoid infinite limit. - * - * @return String - */ - - amountLimiting: (params) => { - if (params.limit && params.limit < 0) { - params.limit = 0; - } else if (params.limit && params.limit > 100) { - params.limit = 100; - } - - return params; - }, - - /** - * Convert Strapi type to GraphQL type. - * @param {Object} attribute Information about the attribute. - * @param {Object} attribute.definition Definition of the attribute. - * @param {String} attribute.modelName Name of the model which owns the attribute. - * @param {String} attribute.attributeName Name of the attribute. - * @return String - */ - - convertType: function ({ definition = {}, modelName = '', attributeName = '' }) { - // Type - if (definition.type) { - let type = 'String'; - - switch (definition.type) { - // TODO: Handle fields of type Array, Perhaps default to [Int] or [String] ... - case 'boolean': - type = 'Boolean'; - break; - case 'integer': - type = 'Int'; - break; - case 'float': - type = 'Float'; - break; - case 'json': - type = 'JSON'; - break; - case 'time': - case 'date': - case 'datetime': - case 'timestamp': - type = 'DateTime'; - break; - case 'enumeration': - type = this.convertEnumType(definition, modelName, attributeName); - break; - } - - if (definition.required) { - type += '!'; - } - - return type; - } - - const ref = definition.model || definition.collection; - - // Association - if (ref && ref !== '*') { - // Add bracket or not - const globalId = definition.plugin ? - strapi.plugins[definition.plugin].models[ref].globalId: - strapi.models[ref].globalId; - const plural = !_.isEmpty(definition.collection); - - if (plural) { - return `[${globalId}]`; - } - - return globalId; - } - - return definition.model ? 'Morph' : '[Morph]'; - }, - - /** - * Convert Strapi enumeration to GraphQL Enum. - * @param {Object} definition Definition of the attribute. - * @param {String} model Name of the model which owns the attribute. - * @param {String} field Name of the attribute. - * @return String - */ - - convertEnumType: (definition, model, field) => definition.enumName ? definition.enumName : `ENUM_${model.toUpperCase()}_${field.toUpperCase()}`, - - /** - * Execute policies before the specified resolver. - * - * @return Promise or Error. - */ - - composeResolver: function (_schema, plugin, name, isSingular) { - const params = { - model: name - }; - - const queryOpts = plugin ? { source: plugin } : {}; // eslint-disable-line no-unused-vars - - const model = plugin ? - strapi.plugins[plugin].models[name]: - strapi.models[name]; - - // Retrieve generic service from the Content Manager plugin. - const resolvers = strapi.plugins['content-manager'].services['contentmanager']; // eslint-disable-line no-unused-vars - - // Extract custom resolver or type description. - const { resolver: handler = {} } = _schema; - - let queryName; - - if (isSingular === 'force') { - queryName = name; - } else { - queryName = isSingular ? - pluralize.singular(name): - pluralize.plural(name); - } - - // Retrieve policies. - const policies = _.get(handler, `Query.${queryName}.policies`, []); - - // Retrieve resolverOf. - const resolverOf = _.get(handler, `Query.${queryName}.resolverOf`, ''); - - const policiesFn = []; - - // Boolean to define if the resolver is going to be a resolver or not. - let isController = false; - - // Retrieve resolver. It could be the custom resolver of the user - // or the shadow CRUD resolver (aka Content-Manager). - const resolver = (() => { - // Try to retrieve custom resolver. - const resolver = _.get(handler, `Query.${queryName}.resolver`); - - if (_.isString(resolver) || _.isPlainObject(resolver)) { - const { handler = resolver } = _.isPlainObject(resolver) ? resolver : {}; - - // Retrieve the controller's action to be executed. - const [ name, action ] = handler.split('.'); - - const controller = plugin ? - _.get(strapi.plugins, `${plugin}.controllers.${_.toLower(name)}.${action}`): - _.get(strapi.controllers, `${_.toLower(name)}.${action}`); - - if (!controller) { - return new Error(`Cannot find the controller's action ${name}.${action}`); - } - - // We're going to return a controller instead. - isController = true; - - // Push global policy to make sure the permissions will work as expected. - policiesFn.push( - policyUtils.globalPolicy(undefined, { - handler: `${name}.${action}` - }, undefined, plugin) - ); - - // Return the controller. - return controller; - } else if (resolver) { - // Function. - return resolver; - } - - // We're going to return a controller instead. - isController = true; - - const controllers = plugin ? strapi.plugins[plugin].controllers : strapi.controllers; - - // Try to find the controller that should be related to this model. - const controller = isSingular ? - _.get(controllers, `${name}.findOne`): - _.get(controllers, `${name}.find`); - - if (!controller) { - return new Error(`Cannot find the controller's action ${name}.${isSingular ? 'findOne' : 'find'}`); - } - - // Push global policy to make sure the permissions will work as expected. - // We're trying to detect the controller name. - policiesFn.push( - policyUtils.globalPolicy(undefined, { - handler: `${name}.${isSingular ? 'findOne' : 'find'}` - }, undefined, plugin) - ); - - // Make the query compatible with our controller by - // setting in the context the parameters. - if (isSingular) { - return async (ctx, next) => { - ctx.params = { - ...params, - [model.primaryKey]: ctx.params.id - }; - - // Return the controller. - return controller(ctx, next); - }; - } - - // Plural. - return async (ctx, next) => { - const queryOpts = {}; - queryOpts.params = this.amountLimiting(ctx.params); - // Avoid using ctx.query = ... because it converts the object values to string - queryOpts.query = Object.assign( - {}, - this.convertToParams(_.omit(ctx.params, 'where')), - ctx.params.where - ); - - return controller(Object.assign({}, ctx, queryOpts, { send: ctx.send }), next); // send method doesn't get copied when using object.assign - }; - })(); - - // The controller hasn't been found. - if (_.isError(resolver)) { - return resolver; - } - - // Force policies of another action on a custom resolver. - if (_.isString(resolverOf) && !_.isEmpty(resolverOf)) { - // Retrieve the controller's action to be executed. - const [ name, action ] = resolverOf.split('.'); - - const controller = plugin ? - _.get(strapi.plugins, `${plugin}.controllers.${_.toLower(name)}.${action}`): - _.get(strapi.controllers, `${_.toLower(name)}.${action}`); - - if (!controller) { - return new Error(`Cannot find the controller's action ${name}.${action}`); - } - - policiesFn[0] = policyUtils.globalPolicy(undefined, { - handler: `${name}.${action}` - }, undefined, plugin); - } - - if (strapi.plugins['users-permissions']) { - policies.push('plugins.users-permissions.permissions'); - } - - // Populate policies. - policies.forEach(policy => policyUtils.get(policy, plugin, policiesFn, `GraphQL query "${queryName}"`, name)); - - return async (obj, options, context) => { - // Hack to be able to handle permissions for each query. - const ctx = Object.assign(_.clone(context), { - request: Object.assign(_.clone(context.request), { - graphql: null - }) - }); - - // Execute policies stack. - const policy = await strapi.koaMiddlewares.compose(policiesFn)(ctx); - - // Policy doesn't always return errors but they update the current context. - if (_.isError(ctx.request.graphql) || _.get(ctx.request.graphql, 'isBoom')) { - return ctx.request.graphql; - } - - // Something went wrong in the policy. - if (policy) { - return policy; - } - - // Resolver can be a function. Be also a native resolver or a controller's action. - if (_.isFunction(resolver)) { - context.query = this.convertToParams(options); - context.params = this.amountLimiting(options); - - if (isController) { - const values = await resolver.call(null, context); - - if (ctx.body) { - return ctx.body; - } - - return values && values.toJSON ? values.toJSON() : values; - } - - - return resolver.call(null, obj, options, context); - } - - // Resolver can be a promise. - return resolver; - }; - }, - - /** - * Construct the GraphQL query & definition and apply the right resolvers. - * - * @return Object - */ - - shadowCRUD: function (models, plugin) { - // Retrieve generic service from the Content Manager plugin. - const resolvers = strapi.plugins['content-manager'].services['contentmanager']; - - const initialState = { definition: '', query: {}, resolver: { Query : {} } }; - - if (_.isEmpty(models)) { - return initialState; - } - - return models.reduce((acc, name) => { - const model = plugin ? - strapi.plugins[plugin].models[name]: - strapi.models[name]; - - // Setup initial state with default attribute that should be displayed - // but these attributes are not properly defined in the models. - const initialState = { - [model.primaryKey]: 'ID!' - }; - - const globalId = model.globalId; - const _schema = _.cloneDeep(_.get(strapi.plugins, 'graphql.config._schema.graphql', {})); - - if (!acc.resolver[globalId]) { - acc.resolver[globalId] = {}; - } - - // Add timestamps attributes. - if (_.get(model, 'options.timestamps') === true) { - Object.assign(initialState, { - createdAt: 'DateTime!', - updatedAt: 'DateTime!' - }); - - Object.assign(acc.resolver[globalId], { - createdAt: (obj, options, context) => { // eslint-disable-line no-unused-vars - return obj.createdAt || obj.created_at; - }, - updatedAt: (obj, options, context) => { // eslint-disable-line no-unused-vars - return obj.updatedAt || obj.updated_at; - } - }); - } - - // Retrieve user customisation. - const { type = {}, resolver = {} } = _schema; - - // Convert our layer Model to the GraphQL DL. - const attributes = Object.keys(model.attributes) - .filter(attribute => model.attributes[attribute].private !== true) - .reduce((acc, attribute) => { - // Convert our type to the GraphQL type. - acc[attribute] = this.convertType({ - definition: model.attributes[attribute], - modelName: globalId, - attributeName: attribute, - }); - - return acc; - }, initialState); - - // Detect enum and generate it for the schema definition - const enums = Object.keys(model.attributes) - .filter(attribute => model.attributes[attribute].type === 'enumeration') - .map((attribute) => { - const definition = model.attributes[attribute]; - - return `enum ${this.convertEnumType(definition, globalId, attribute)} { ${definition.enum.join(' \n ')} }`; - }).join(' '); - - acc.definition += enums; - - // Add parameters to optimize association query. - (model.associations || []) - .filter(association => association.type === 'collection') - .forEach(association => { - attributes[`${association.alias}(sort: String, limit: Int, start: Int, where: JSON)`] = attributes[association.alias]; - - delete attributes[association.alias]; - }); - - acc.definition += `${this.getDescription(type[globalId], model)}type ${globalId} {${this.formatGQL(attributes, type[globalId], model)}}\n\n`; - - // Add definition to the schema but this type won't be "queriable". - if (type[model.globalId] === false || _.get(type, `${model.globalId}.enabled`) === false) { - return acc; - } - - // Build resolvers. - const queries = { - singular: _.get(resolver, `Query.${pluralize.singular(name)}`) !== false ? this.composeResolver( - _schema, - plugin, - name, - true - ) : null, - plural: _.get(resolver, `Query.${pluralize.plural(name)}`) !== false ? this.composeResolver( - _schema, - plugin, - name, - false - ) : null - }; - - // TODO: - // - Handle mutations. - Object.keys(queries).forEach(type => { - // The query cannot be built. - if (_.isError(queries[type])) { - console.error(queries[type]); - strapi.stop(); - } - - // Only create query if the function is available. - if (_.isFunction(queries[type])) { - if (type === 'singular') { - Object.assign(acc.query, { - [`${pluralize.singular(name)}(id: ID!)`]: model.globalId - }); - } else { - Object.assign(acc.query, { - [`${pluralize.plural(name)}(sort: String, limit: Int, start: Int, where: JSON)`]: `[${model.globalId}]` - }); - } - - _.merge(acc.resolver.Query, { - [type === 'singular' ? pluralize.singular(name) : pluralize.plural(name)]: queries[type] - }); - } - }); - - // TODO: - // - Add support for Graphql Aggregation in Bookshelf ORM - if (model.orm === 'mongoose') { - // Generation the aggregation for the given model - const modelAggregator = this.formatModelConnectionsGQL(attributes, model, name, queries.plural); - if (modelAggregator) { - acc.definition += modelAggregator.type; - if (!acc.resolver[modelAggregator.globalId]) { - acc.resolver[modelAggregator.globalId] = {}; - } - - _.merge(acc.resolver, modelAggregator.resolver); - _.merge(acc.query, modelAggregator.query); - } - } - - // Build associations queries. - (model.associations || []).forEach(association => { - switch (association.nature) { - case 'oneToManyMorph': - return _.merge(acc.resolver[globalId], { - [association.alias]: async (obj) => { - const withRelated = await resolvers.fetch({ - id: obj[model.primaryKey], - model: name - }, plugin, [association.alias], false); - - const entry = withRelated && withRelated.toJSON ? withRelated.toJSON() : withRelated; - - // Set the _type only when the value is defined - if (entry[association.alias]) { - entry[association.alias]._type = _.upperFirst(association.model); - } - - return entry[association.alias]; - } - }); - case 'manyMorphToOne': - case 'manyMorphToMany': - case 'manyToManyMorph': - return _.merge(acc.resolver[globalId], { - [association.alias]: async (obj, options, context) => { // eslint-disable-line no-unused-vars - const [ withRelated, withoutRelated ] = await Promise.all([ - resolvers.fetch({ - id: obj[model.primaryKey], - model: name - }, plugin, [association.alias], false), - resolvers.fetch({ - id: obj[model.primaryKey], - model: name - }, plugin, []) - ]); - - const entry = withRelated && withRelated.toJSON ? withRelated.toJSON() : withRelated; - - // TODO: - // - Handle sort, limit and start (lodash or inside the query) - entry[association.alias].map((entry, index) => { - const type = _.get(withoutRelated, `${association.alias}.${index}.kind`) || - _.upperFirst(_.camelCase(_.get(withoutRelated, `${association.alias}.${index}.${association.alias}_type`))) || - _.upperFirst(_.camelCase(association[association.type])); - - entry._type = type; - - return entry; - }); - - return entry[association.alias]; - } - }); - default: - } - - _.merge(acc.resolver[globalId], { - [association.alias]: async (obj, options, context) => { // eslint-disable-line no-unused-vars - // Construct parameters object to retrieve the correct related entries. - const params = { - model: association.model || association.collection, - }; - - const queryOpts = { - source: association.plugin - }; - - if (association.type === 'model') { - const rel = obj[association.alias]; - params.id = typeof rel === 'object' && 'id' in rel ? rel.id : rel; - } else { - // Get refering model. - const ref = association.plugin ? - strapi.plugins[association.plugin].models[params.model]: - strapi.models[params.model]; - - // Apply optional arguments to make more precise nested request. - const convertedParams = strapi.utils.models.convertParams(name, this.convertToParams(this.amountLimiting(options))); - const where = strapi.utils.models.convertParams(name, options.where || {}); - - // Limit, order, etc. - Object.assign(queryOpts, convertedParams); - - // Skip. - queryOpts.skip = convertedParams.start; - - switch (association.nature) { - case 'manyToMany': { - if (association.dominant) { - const arrayOfIds = (obj[association.alias] || []).map(related => { - return related[ref.primaryKey] || related; - }); - - // Where. - queryOpts.query = strapi.utils.models.convertParams(name, { - // Construct the "where" query to only retrieve entries which are - // related to this entry. - [ref.primaryKey]: arrayOfIds, - ...where.where - }).where; - } - break; - // falls through - } - default: - // Where. - queryOpts.query = strapi.utils.models.convertParams(name, { - // Construct the "where" query to only retrieve entries which are - // related to this entry. - [association.via]: obj[ref.primaryKey], - ...where.where - }).where; - } - } - - const value = await (association.model ? - resolvers.fetch(params, association.plugin, []): - resolvers.fetchAll(params, { ...queryOpts, populate: [] })); - - return value && value.toJSON ? value.toJSON() : value; - } - }); - }); - - return acc; - }, initialState); - }, - - /** - * Generate GraphQL schema. - * - * @return Schema - */ - - generateSchema: function () { - // Generate type definition and query/mutation for models. - const shadowCRUD = strapi.plugins.graphql.config.shadowCRUD !== false ? (() => { - // Exclude core models. - const models = Object.keys(strapi.models).filter(model => model !== 'core_store'); - - // Reproduce the same pattern for each plugin. - return Object.keys(strapi.plugins).reduce((acc, plugin) => { - const { definition, query, resolver } = this.shadowCRUD(Object.keys(strapi.plugins[plugin].models), plugin); - - // We cannot put this in the merge because it's a string. - acc.definition += definition || ''; - - return _.merge(acc, { - query, - resolver - }); - }, this.shadowCRUD(models)); - })() : { definition: '', query: '', resolver: '' }; - - // Extract custom definition, query or resolver. - const { definition, query, resolver = {} } = strapi.plugins.graphql.config._schema.graphql; - - // Polymorphic. - const { polymorphicDef, polymorphicResolver } = this.addPolymorphicUnionType(definition, shadowCRUD.definition); - - // Build resolvers. - const resolvers = _.omitBy(_.merge(shadowCRUD.resolver, resolver, polymorphicResolver), _.isEmpty) || {}; - - // Transform object to only contain function. - Object.keys(resolvers).reduce((acc, type) => { - return Object.keys(acc[type]).reduce((acc, resolver) => { - // Disabled this query. - if (acc[type][resolver] === false) { - delete acc[type][resolver]; - - return acc; - } - - if (!_.isFunction(acc[type][resolver])) { - acc[type][resolver] = acc[type][resolver].resolver; - } - - if (_.isString(acc[type][resolver]) || _.isPlainObject(acc[type][resolver])) { - const { plugin = '' } = _.isPlainObject(acc[type][resolver]) ? acc[type][resolver] : {}; - - acc[type][resolver] = this.composeResolver( - strapi.plugins.graphql.config._schema.graphql, - plugin, - resolver, - 'force' // Avoid singular/pluralize and force query name. - ); - } - - return acc; - }, acc); - }, resolvers); - - // Return empty schema when there is no model. - if (_.isEmpty(shadowCRUD.definition) && _.isEmpty(definition)) { - return {}; - } - - // Concatenate. - const typeDefs = ` - ${definition} - ${shadowCRUD.definition} - type Query {${shadowCRUD.query && this.formatGQL(shadowCRUD.query, resolver.Query, null, 'query')}${query}} - ${this.addCustomScalar(resolvers)} - ${polymorphicDef} - `; - - // Build schema. - const schema = makeExecutableSchema({ - typeDefs, - resolvers, - }); - - // Write schema. - this.writeGenerateSchema(graphql.printSchema(schema)); - - return schema; - }, - - /** - * Add custom scalar type such as JSON. - * - * @return void - */ - - addCustomScalar: (resolvers) => { - Object.assign(resolvers, { - JSON: GraphQLJSON, - DateTime: GraphQLDateTime, - }); - - return 'scalar JSON \n scalar DateTime'; - }, - - /** - * Add Union Type that contains the types defined by the user. - * - * @return string - */ - - addPolymorphicUnionType: (customDefs, defs) => { - const types = graphql.parse(customDefs + defs).definitions - .filter(def => def.kind === 'ObjectTypeDefinition' && def.name.value !== 'Query') - .map(def => def.name.value); - - if (types.length > 0) { - return { - polymorphicDef: `union Morph = ${types.join(' | ')}`, - polymorphicResolver: { - Morph: { - __resolveType(obj, context, info) { // eslint-disable-line no-unused-vars - return obj.kind || obj._type; - } - } - } - }; - } - - return { - polymorphicDef: '', - polymorphicResolver: {} - }; - }, - - /** - * Save into a file the readable GraphQL schema. - * - * @return void - */ - - writeGenerateSchema(schema) { - // Disable auto-reload. - strapi.reload.isWatching = false; - - const generatedFolder = path.resolve(strapi.config.appPath, 'plugins', 'graphql', 'config', 'generated'); - - // Create folder if necessary. - try { - fs.accessSync(generatedFolder, fs.constants.R_OK | fs.constants.W_OK); - } catch (err) { - if (err && err.code === 'ENOENT') { - fs.mkdirSync(generatedFolder); - } else { - console.error(err); - } - } - - fs.writeFileSync(path.join(generatedFolder, 'schema.graphql'), schema); - - strapi.reload.isWatching = true; - } - -}; diff --git a/packages/strapi-plugin-graphql/services/Mutation.js b/packages/strapi-plugin-graphql/services/Mutation.js new file mode 100644 index 0000000000..7cc8e0094f --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Mutation.js @@ -0,0 +1,240 @@ +'use strict'; + +/** + * Mutation.js service + * + * @description: A set of functions similar to controller's actions to avoid code duplication. + */ + +const _ = require('lodash'); +const pluralize = require('pluralize'); +const policyUtils = require('strapi-utils').policy; +const Query = require('./Query.js'); + +module.exports = { + /** + * Convert parameters to valid filters parameters. + * + * @return Object + */ + + convertToParams: params => { + return Object.keys(params).reduce((acc, current) => { + return Object.assign(acc, { + [`_${current}`]: params[current], + }); + }, {}); + }, + + /** + * Execute policies before the specified resolver. + * + * @return Promise or Error. + */ + + composeMutationResolver: function(_schema, plugin, name, action) { + // Extract custom resolver or type description. + const { resolver: handler = {} } = _schema; + + const queryName = `${action}${_.capitalize(name)}`; + + // Retrieve policies. + const policies = _.get(handler, `Mutation.${queryName}.policies`, []); + + // Retrieve resolverOf. + const resolverOf = _.get(handler, `Mutation.${queryName}.resolverOf`, ''); + + const policiesFn = []; + + // Boolean to define if the resolver is going to be a resolver or not. + let isController = false; + + // Retrieve resolver. It could be the custom resolver of the user + // or the shadow CRUD resolver (aka Content-Manager). + const resolver = (() => { + // Try to retrieve custom resolver. + const resolver = _.get(handler, `Mutation.${queryName}.resolver`); + + if (_.isString(resolver) || _.isPlainObject(resolver)) { + const { handler = resolver } = _.isPlainObject(resolver) + ? resolver + : {}; + + // Retrieve the controller's action to be executed. + const [name, action] = handler.split('.'); + + const controller = plugin + ? _.get( + strapi.plugins, + `${plugin}.controllers.${_.toLower(name)}.${action}`, + ) + : _.get(strapi.controllers, `${_.toLower(name)}.${action}`); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${action}`, + ); + } + + // We're going to return a controller instead. + isController = true; + + // Push global policy to make sure the permissions will work as expected. + policiesFn.push( + policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${action}`, + }, + undefined, + plugin, + ), + ); + + // Return the controller. + return controller; + } else if (resolver) { + // Function. + return resolver; + } + + // We're going to return a controller instead. + isController = true; + + const controllers = plugin + ? strapi.plugins[plugin].controllers + : strapi.controllers; + + // Try to find the controller that should be related to this model. + const controller = _.get( + controllers, + `${name}.${action === 'delete' ? 'destroy' : action}`, + ); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${action}`, + ); + } + + // Push global policy to make sure the permissions will work as expected. + // We're trying to detect the controller name. + policiesFn.push( + policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${action === 'delete' ? 'destroy' : action}`, + }, + undefined, + plugin, + ), + ); + + // Make the query compatible with our controller by + // setting in the context the parameters. + return async (ctx, next) => { + return controller(ctx, next); + }; + })(); + + // The controller hasn't been found. + if (_.isError(resolver)) { + return resolver; + } + + // Force policies of another action on a custom resolver. + if (_.isString(resolverOf) && !_.isEmpty(resolverOf)) { + // Retrieve the controller's action to be executed. + const [name, action] = resolverOf.split('.'); + + const controller = plugin + ? _.get( + strapi.plugins, + `${plugin}.controllers.${_.toLower(name)}.${action}`, + ) + : _.get(strapi.controllers, `${_.toLower(name)}.${action}`); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${action}`, + ); + } + + policiesFn[0] = policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${action}`, + }, + undefined, + plugin, + ); + } + + if (strapi.plugins['users-permissions']) { + policies.push('plugins.users-permissions.permissions'); + } + + // Populate policies. + policies.forEach(policy => + policyUtils.get( + policy, + plugin, + policiesFn, + `GraphQL query "${queryName}"`, + name, + ), + ); + + return async (obj, options, { context }) => { + // Hack to be able to handle permissions for each query. + const ctx = Object.assign(_.clone(context), { + request: Object.assign(_.clone(context.request), { + graphql: null, + }), + }); + + // Execute policies stack. + const policy = await strapi.koaMiddlewares.compose(policiesFn)(ctx); + + // Policy doesn't always return errors but they update the current context. + if ( + _.isError(ctx.request.graphql) || + _.get(ctx.request.graphql, 'isBoom') + ) { + return ctx.request.graphql; + } + + // Something went wrong in the policy. + if (policy) { + return policy; + } + + // Resolver can be a function. Be also a native resolver or a controller's action. + if (_.isFunction(resolver)) { + context.params = Query.convertToParams(options.input.where || {}); + context.request.body = options.input.data || {}; + + if (isController) { + const values = await resolver.call(null, context); + + if (ctx.body) { + return { + [pluralize.singular(name)]: ctx.body, + }; + } + + const body = values && values.toJSON ? values.toJSON() : values; + + return { + [pluralize.singular(name)]: body, + }; + } + + return resolver.call(null, obj, options, context); + } + + // Resolver can be a promise. + return resolver; + }; + }, +}; diff --git a/packages/strapi-plugin-graphql/services/Query.js b/packages/strapi-plugin-graphql/services/Query.js new file mode 100644 index 0000000000..d2825af948 --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Query.js @@ -0,0 +1,285 @@ +'use strict'; + +/** + * Query.js service + * + * @description: A set of functions similar to controller's actions to avoid code duplication. + */ + +const _ = require('lodash'); +const pluralize = require('pluralize'); +const policyUtils = require('strapi-utils').policy; + +module.exports = { + /** + * Convert parameters to valid filters parameters. + * + * @return Object + */ + + convertToParams: params => { + return Object.keys(params).reduce((acc, current) => { + return Object.assign(acc, { + [`_${current}`]: params[current], + }); + }, {}); + }, + + /** + * Security to avoid infinite limit. + * + * @return String + */ + + amountLimiting: params => { + if (params.limit && params.limit < 0) { + params.limit = 0; + } else if (params.limit && params.limit > 100) { + params.limit = 100; + } + + return params; + }, + + /** + * Execute policies before the specified resolver. + * + * @return Promise or Error. + */ + + composeQueryResolver: function(_schema, plugin, name, isSingular) { + const params = { + model: name, + }; + + const model = plugin + ? strapi.plugins[plugin].models[name] + : strapi.models[name]; + + // Extract custom resolver or type description. + const { resolver: handler = {} } = _schema; + + let queryName; + + if (isSingular === 'force') { + queryName = name; + } else { + queryName = isSingular + ? pluralize.singular(name) + : pluralize.plural(name); + } + + // Retrieve policies. + const policies = _.get(handler, `Query.${queryName}.policies`, []); + + // Retrieve resolverOf. + const resolverOf = _.get(handler, `Query.${queryName}.resolverOf`, ''); + + const policiesFn = []; + + // Boolean to define if the resolver is going to be a resolver or not. + let isController = false; + + // Retrieve resolver. It could be the custom resolver of the user + // or the shadow CRUD resolver (aka Content-Manager). + const resolver = (() => { + // Try to retrieve custom resolver. + const resolver = _.get(handler, `Query.${queryName}.resolver`); + + if (_.isString(resolver) || _.isPlainObject(resolver)) { + const { handler = resolver } = _.isPlainObject(resolver) + ? resolver + : {}; + + // Retrieve the controller's action to be executed. + const [name, action] = handler.split('.'); + + const controller = plugin + ? _.get( + strapi.plugins, + `${plugin}.controllers.${_.toLower(name)}.${action}`, + ) + : _.get(strapi.controllers, `${_.toLower(name)}.${action}`); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${action}`, + ); + } + + // We're going to return a controller instead. + isController = true; + + // Push global policy to make sure the permissions will work as expected. + policiesFn.push( + policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${action}`, + }, + undefined, + plugin, + ), + ); + + // Return the controller. + return controller; + } else if (resolver) { + // Function. + return resolver; + } + + // We're going to return a controller instead. + isController = true; + + const controllers = plugin + ? strapi.plugins[plugin].controllers + : strapi.controllers; + + // Try to find the controller that should be related to this model. + const controller = isSingular + ? _.get(controllers, `${name}.findOne`) + : _.get(controllers, `${name}.find`); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${ + isSingular ? 'findOne' : 'find' + }`, + ); + } + + // Push global policy to make sure the permissions will work as expected. + // We're trying to detect the controller name. + policiesFn.push( + policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${isSingular ? 'findOne' : 'find'}`, + }, + undefined, + plugin, + ), + ); + + // Make the query compatible with our controller by + // setting in the context the parameters. + if (isSingular) { + return async (ctx, next) => { + ctx.params = { + ...params, + [model.primaryKey]: ctx.params.id, + }; + + // Return the controller. + return controller(ctx, next); + }; + } + + // Plural. + return async (ctx, next) => { + ctx.params = this.amountLimiting(ctx.params); + ctx.query = Object.assign( + this.convertToParams(_.omit(ctx.params, 'where')), + ctx.params.where, + ); + + return controller(ctx, next); + }; + })(); + + // The controller hasn't been found. + if (_.isError(resolver)) { + return resolver; + } + + // Force policies of another action on a custom resolver. + if (_.isString(resolverOf) && !_.isEmpty(resolverOf)) { + // Retrieve the controller's action to be executed. + const [name, action] = resolverOf.split('.'); + + const controller = plugin + ? _.get( + strapi.plugins, + `${plugin}.controllers.${_.toLower(name)}.${action}`, + ) + : _.get(strapi.controllers, `${_.toLower(name)}.${action}`); + + if (!controller) { + return new Error( + `Cannot find the controller's action ${name}.${action}`, + ); + } + + policiesFn[0] = policyUtils.globalPolicy( + undefined, + { + handler: `${name}.${action}`, + }, + undefined, + plugin, + ); + } + + if (strapi.plugins['users-permissions']) { + policies.push('plugins.users-permissions.permissions'); + } + + // Populate policies. + policies.forEach(policy => + policyUtils.get( + policy, + plugin, + policiesFn, + `GraphQL query "${queryName}"`, + name, + ), + ); + + return async (obj, options, { context }) => { + // Hack to be able to handle permissions for each query. + const ctx = Object.assign(_.clone(context), { + request: Object.assign(_.clone(context.request), { + graphql: null, + }), + }); + + // Execute policies stack. + const policy = await strapi.koaMiddlewares.compose(policiesFn)(ctx); + + // Policy doesn't always return errors but they update the current context. + if ( + _.isError(ctx.request.graphql) || + _.get(ctx.request.graphql, 'isBoom') + ) { + return ctx.request.graphql; + } + + // Something went wrong in the policy. + if (policy) { + return policy; + } + + // Resolver can be a function. Be also a native resolver or a controller's action. + if (_.isFunction(resolver)) { + context.query = this.convertToParams(options); + context.params = this.amountLimiting(options); + + if (isController) { + const values = await resolver.call(null, context); + + if (ctx.body) { + return ctx.body; + } + + return values && values.toJSON ? values.toJSON() : values; + } + + return resolver.call(null, obj, options, context); + } + + // Resolver can be a promise. + return resolver; + }; + }, +}; diff --git a/packages/strapi-plugin-graphql/services/Resolvers.js b/packages/strapi-plugin-graphql/services/Resolvers.js new file mode 100644 index 0000000000..45328cc731 --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Resolvers.js @@ -0,0 +1,443 @@ +'use strict'; + +/** + * GraphQL.js service + * + * @description: A set of functions similar to controller's actions to avoid code duplication. + */ + +const _ = require('lodash'); +const pluralize = require('pluralize'); +const Aggregator = require('./Aggregator'); +const Query = require('./Query.js'); +const Mutation = require('./Mutation.js'); +const Types = require('./Types.js'); +const Schema = require('./Schema.js'); + +module.exports = { + /** + * Construct the GraphQL query & definition and apply the right resolvers. + * + * @return Object + */ + + shadowCRUD: function(models, plugin) { + // Retrieve generic service from the Content Manager plugin. + const resolvers = + strapi.plugins['content-manager'].services['contentmanager']; + + const initialState = { + definition: '', + query: {}, + mutation: {}, + resolver: { Query: {}, Mutation: {} }, + }; + + if (_.isEmpty(models)) { + return initialState; + } + + return models.reduce((acc, name) => { + const model = plugin + ? strapi.plugins[plugin].models[name] + : strapi.models[name]; + + // Setup initial state with default attribute that should be displayed + // but these attributes are not properly defined in the models. + const initialState = { + [model.primaryKey]: 'ID!', + }; + + const globalId = model.globalId; + const _schema = _.cloneDeep( + _.get(strapi.plugins, 'graphql.config._schema.graphql', {}), + ); + + if (!acc.resolver[globalId]) { + acc.resolver[globalId] = {}; + } + + // Add timestamps attributes. + if (_.get(model, 'options.timestamps') === true) { + Object.assign(initialState, { + createdAt: 'DateTime!', + updatedAt: 'DateTime!', + }); + + Object.assign(acc.resolver[globalId], { + createdAt: (obj, options, context) => { + // eslint-disable-line no-unused-vars + return obj.createdAt || obj.created_at; + }, + updatedAt: (obj, options, context) => { + // eslint-disable-line no-unused-vars + return obj.updatedAt || obj.updated_at; + }, + }); + } + + // Retrieve user customisation. + const { type = {}, resolver = {} } = _schema; + + // Convert our layer Model to the GraphQL DL. + const attributes = Object.keys(model.attributes) + .filter(attribute => model.attributes[attribute].private !== true) + .reduce((acc, attribute) => { + // Convert our type to the GraphQL type. + acc[attribute] = Types.convertType({ + definition: model.attributes[attribute], + modelName: globalId, + attributeName: attribute, + }); + + return acc; + }, initialState); + + // Detect enum and generate it for the schema definition + const enums = Object.keys(model.attributes) + .filter(attribute => model.attributes[attribute].type === 'enumeration') + .map(attribute => { + const definition = model.attributes[attribute]; + + return `enum ${Types.convertEnumType( + definition, + globalId, + attribute, + )} { ${definition.enum.join(' \n ')} }`; + }) + .join(' '); + + acc.definition += enums; + + // Add parameters to optimize association query. + (model.associations || []) + .filter(association => association.type === 'collection') + .forEach(association => { + attributes[ + `${ + association.alias + }(sort: String, limit: Int, start: Int, where: JSON)` + ] = attributes[association.alias]; + + delete attributes[association.alias]; + }); + + acc.definition += `${Schema.getDescription( + type[globalId], + model, + )}type ${globalId} {${Schema.formatGQL( + attributes, + type[globalId], + model, + )}}\n\n`; + + // Add definition to the schema but this type won't be "queriable" or "mutable". + if ( + type[model.globalId] === false || + _.get(type, `${model.globalId}.enabled`) === false + ) { + return acc; + } + + // Build resolvers. + const queries = { + singular: + _.get(resolver, `Query.${pluralize.singular(name)}`) !== false + ? Query.composeQueryResolver(_schema, plugin, name, true) + : null, + plural: + _.get(resolver, `Query.${pluralize.plural(name)}`) !== false + ? Query.composeQueryResolver(_schema, plugin, name, false) + : null, + }; + + Object.keys(queries).forEach(type => { + // The query cannot be built. + if (_.isError(queries[type])) { + console.error(queries[type]); + strapi.stop(); + } + + // Only create query if the function is available. + if (_.isFunction(queries[type])) { + if (type === 'singular') { + Object.assign(acc.query, { + [`${pluralize.singular(name)}(id: ID!)`]: model.globalId, + }); + } else { + Object.assign(acc.query, { + [`${pluralize.plural( + name, + )}(sort: String, limit: Int, start: Int, where: JSON)`]: `[${ + model.globalId + }]`, + }); + } + + _.merge(acc.resolver.Query, { + [type === 'singular' + ? pluralize.singular(name) + : pluralize.plural(name)]: queries[type], + }); + } + }); + + // TODO: + // - Implement batch methods (need to update the content-manager as well). + // - Implement nested transactional methods (create/update). + const mutations = { + create: + _.get(resolver, `Mutation.create${_.capitalize(name)}`) !== false + ? Mutation.composeMutationResolver(_schema, plugin, name, 'create') + : null, + update: + _.get(resolver, `Mutation.update${_.capitalize(name)}`) !== false + ? Mutation.composeMutationResolver(_schema, plugin, name, 'update') + : null, + delete: + _.get(resolver, `Mutation.delete${_.capitalize(name)}`) !== false + ? Mutation.composeMutationResolver(_schema, plugin, name, 'delete') + : null, + }; + + // Add model Input definition. + acc.definition += Types.generateInputModel(model, name); + + Object.keys(mutations).forEach(type => { + if (_.isFunction(mutations[type])) { + let mutationDefinition; + let mutationName = `${type}${_.capitalize(name)}`; + + // Generate the Input for this specific action. + acc.definition += Types.generateInputPayloadArguments( + model, + name, + type, + ); + + switch (type) { + case 'create': + mutationDefinition = { + [`${mutationName}(input: ${mutationName}Input)`]: `${mutationName}Payload`, + }; + + break; + case 'update': + mutationDefinition = { + [`${mutationName}(input: ${mutationName}Input)`]: `${mutationName}Payload`, + }; + + break; + case 'delete': + mutationDefinition = { + [`${mutationName}(input: ${mutationName}Input)`]: `${mutationName}Payload`, + }; + break; + default: + // Nothing. + } + + // Assign mutation definition to global definition. + Object.assign(acc.mutation, mutationDefinition); + + // Assign resolver to this mutation and merge it with the others. + _.merge(acc.resolver.Mutation, { + [`${mutationName}`]: mutations[type], + }); + } + }); + + // TODO: + // - Add support for Graphql Aggregation in Bookshelf ORM + if (model.orm === 'mongoose') { + // Generation the aggregation for the given model + const modelAggregator = Aggregator.formatModelConnectionsGQL( + attributes, + model, + name, + queries.plural, + ); + if (modelAggregator) { + acc.definition += modelAggregator.type; + if (!acc.resolver[modelAggregator.globalId]) { + acc.resolver[modelAggregator.globalId] = {}; + } + + _.merge(acc.resolver, modelAggregator.resolver); + _.merge(acc.query, modelAggregator.query); + } + } + + // Build associations queries. + (model.associations || []).forEach(association => { + switch (association.nature) { + case 'oneToManyMorph': + return _.merge(acc.resolver[globalId], { + [association.alias]: async obj => { + const withRelated = await resolvers.fetch( + { + id: obj[model.primaryKey], + model: name, + }, + plugin, + [association.alias], + false, + ); + + const entry = + withRelated && withRelated.toJSON + ? withRelated.toJSON() + : withRelated; + + // Set the _type only when the value is defined + if (entry[association.alias]) { + entry[association.alias]._type = _.upperFirst( + association.model, + ); + } + + return entry[association.alias]; + }, + }); + case 'manyMorphToOne': + case 'manyMorphToMany': + case 'manyToManyMorph': + return _.merge(acc.resolver[globalId], { + [association.alias]: async (obj, options, context) => { + // eslint-disable-line no-unused-vars + const [withRelated, withoutRelated] = await Promise.all([ + resolvers.fetch( + { + id: obj[model.primaryKey], + model: name, + }, + plugin, + [association.alias], + false, + ), + resolvers.fetch( + { + id: obj[model.primaryKey], + model: name, + }, + plugin, + [], + ), + ]); + + const entry = + withRelated && withRelated.toJSON + ? withRelated.toJSON() + : withRelated; + + // TODO: + // - Handle sort, limit and start (lodash or inside the query) + entry[association.alias].map((entry, index) => { + const type = + _.get( + withoutRelated, + `${association.alias}.${index}.kind`, + ) || + _.upperFirst( + _.camelCase( + _.get( + withoutRelated, + `${association.alias}.${index}.${ + association.alias + }_type`, + ), + ), + ) || + _.upperFirst(_.camelCase(association[association.type])); + + entry._type = type; + + return entry; + }); + + return entry[association.alias]; + }, + }); + default: + } + + _.merge(acc.resolver[globalId], { + [association.alias]: async (obj, options, context) => { + // eslint-disable-line no-unused-vars + // Construct parameters object to retrieve the correct related entries. + const params = { + model: association.model || association.collection, + }; + + const queryOpts = { + source: association.plugin, + }; + + if (association.type === 'model') { + params.id = obj[association.alias]; + } else { + // Get refering model. + const ref = association.plugin + ? strapi.plugins[association.plugin].models[params.model] + : strapi.models[params.model]; + + // Apply optional arguments to make more precise nested request. + const convertedParams = strapi.utils.models.convertParams( + name, + Query.convertToParams(Query.amountLimiting(options)), + ); + const where = strapi.utils.models.convertParams( + name, + options.where || {}, + ); + + // Limit, order, etc. + Object.assign(queryOpts, convertedParams); + + // Skip. + queryOpts.skip = convertedParams.start; + + switch (association.nature) { + case 'manyToMany': { + if (association.dominant) { + const arrayOfIds = (obj[association.alias] || []).map( + related => { + return related[ref.primaryKey] || related; + }, + ); + + // Where. + queryOpts.query = strapi.utils.models.convertParams(name, { + // Construct the "where" query to only retrieve entries which are + // related to this entry. + [ref.primaryKey]: arrayOfIds, + ...where.where, + }).where; + } + break; + // falls through + } + default: + // Where. + queryOpts.query = strapi.utils.models.convertParams(name, { + // Construct the "where" query to only retrieve entries which are + // related to this entry. + [association.via]: obj[ref.primaryKey], + ...where.where, + }).where; + } + } + + const value = await (association.model + ? resolvers.fetch(params, association.plugin, []) + : resolvers.fetchAll(params, { ...queryOpts, populate: [] })); + + return value && value.toJSON ? value.toJSON() : value; + }, + }); + }); + + return acc; + }, initialState); + }, +}; diff --git a/packages/strapi-plugin-graphql/services/Schema.js b/packages/strapi-plugin-graphql/services/Schema.js new file mode 100644 index 0000000000..130c8b978d --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Schema.js @@ -0,0 +1,316 @@ +'use strict'; + +/** + * GraphQL.js service + * + * @description: A set of functions similar to controller's actions to avoid code duplication. + */ + +const fs = require('fs'); +const path = require('path'); +const { gql, makeExecutableSchema } = require('apollo-server-koa'); +const _ = require('lodash'); +const graphql = require('graphql'); +const Query = require('./Query.js'); +const Mutation = require('./Mutation.js'); +const Types = require('./Types.js'); +const Resolvers = require('./Resolvers.js'); + +module.exports = { + /** + * Receive an Object and return a string which is following the GraphQL specs. + * + * @return String + */ + + formatGQL: function(fields, description = {}, model = {}, type = 'field') { + const typeFields = JSON.stringify(fields, null, 2).replace(/['",]+/g, ''); + const lines = typeFields.split('\n'); + + // Try to add description for field. + if (type === 'field') { + return lines + .map(line => { + if (['{', '}'].includes(line)) { + return ''; + } + + const split = line.split(':'); + const attribute = _.trim(split[0]); + const info = + (_.isString(description[attribute]) + ? description[attribute] + : _.get(description[attribute], 'description')) || + _.get(model, `attributes.${attribute}.description`); + const deprecated = + _.get(description[attribute], 'deprecated') || + _.get(model, `attributes.${attribute}.deprecated`); + + // Snakecase an attribute when we find a dash. + if (attribute.indexOf('-') !== -1) { + line = ` ${_.snakeCase(attribute)}: ${_.trim(split[1])}`; + } + + if (info) { + line = ` """\n ${info}\n """\n${line}`; + } + + if (deprecated) { + line = `${line} @deprecated(reason: "${deprecated}")`; + } + + return line; + }) + .join('\n'); + } else if (type === 'query' || type === 'mutation') { + return lines + .map((line, index) => { + if (['{', '}'].includes(line)) { + return ''; + } + + const split = Object.keys(fields)[index - 1].split('('); + const attribute = _.trim(split[0]); + const info = _.get(description[attribute], 'description'); + const deprecated = _.get(description[attribute], 'deprecated'); + + // Snakecase an attribute when we find a dash. + if (attribute.indexOf('-') !== -1) { + line = ` ${_.snakeCase(attribute)}(${_.trim(split[1])}`; + } + + if (info) { + line = ` """\n ${info}\n """\n${line}`; + } + + if (deprecated) { + line = `${line} @deprecated(reason: "${deprecated}")`; + } + + return line; + }) + .join('\n'); + } + + return lines + .map((line, index) => { + if ([0, lines.length - 1].includes(index)) { + return ''; + } + + return line; + }) + .join('\n'); + }, + + /** + * Retrieve description from variable and return a string which follow the GraphQL specs. + * + * @return String + */ + + getDescription: (description, model = {}) => { + const format = '"""\n'; + + const str = + _.get(description, '_description') || _.isString(description) + ? description + : undefined || _.get(model, 'info.description'); + + if (str) { + return `${format}${str}\n${format}`; + } + + return ''; + }, + + /** + * Generate GraphQL schema. + * + * @return Schema + */ + + generateSchema: function() { + // Generate type definition and query/mutation for models. + const shadowCRUD = + strapi.plugins.graphql.config.shadowCRUD !== false + ? (() => { + // Exclude core models. + const models = Object.keys(strapi.models).filter( + model => model !== 'core_store', + ); + + // Reproduce the same pattern for each plugin. + return Object.keys(strapi.plugins).reduce((acc, plugin) => { + const { + definition, + query, + mutation, + resolver, + } = Resolvers.shadowCRUD( + Object.keys(strapi.plugins[plugin].models), + plugin, + ); + + // We cannot put this in the merge because it's a string. + acc.definition += definition || ''; + + return _.merge(acc, { + query, + resolver, + mutation, + }); + }, Resolvers.shadowCRUD(models)); + })() + : { definition: '', query: '', mutation: '', resolver: '' }; + + // Extract custom definition, query or resolver. + const { + definition, + query, + mutation, + resolver = {}, + } = strapi.plugins.graphql.config._schema.graphql; + + // Polymorphic. + const { + polymorphicDef, + polymorphicResolver, + } = Types.addPolymorphicUnionType(definition, shadowCRUD.definition); + + // Build resolvers. + const resolvers = + _.omitBy( + _.merge(shadowCRUD.resolver, resolver, polymorphicResolver), + _.isEmpty, + ) || {}; + + // Transform object to only contain function. + Object.keys(resolvers).reduce((acc, type) => { + return Object.keys(acc[type]).reduce((acc, resolver) => { + // Disabled this query. + if (acc[type][resolver] === false) { + delete acc[type][resolver]; + + return acc; + } + + if (!_.isFunction(acc[type][resolver])) { + console.log(type, resolver); + + acc[type][resolver] = acc[type][resolver].resolver; + } + + if ( + _.isString(acc[type][resolver]) || + _.isPlainObject(acc[type][resolver]) + ) { + const { plugin = '' } = _.isPlainObject(acc[type][resolver]) + ? acc[type][resolver] + : {}; + + switch (type) { + case 'Mutation': + // TODO: Verify this... + acc[type][resolver] = Mutation.composeMutationResolver( + strapi.plugins.graphql.config._schema.graphql, + plugin, + resolver, + ); + break; + case 'Query': + default: + acc[type][resolver] = Query.composeQueryResolver( + strapi.plugins.graphql.config._schema.graphql, + plugin, + resolver, + 'force', // Avoid singular/pluralize and force query name. + ); + break; + } + } + + return acc; + }, acc); + }, resolvers); + + // Return empty schema when there is no model. + if (_.isEmpty(shadowCRUD.definition) && _.isEmpty(definition)) { + return {}; + } + + // Concatenate. + let typeDefs = ` + ${definition} + ${shadowCRUD.definition} + type Query {${shadowCRUD.query && + this.formatGQL( + shadowCRUD.query, + resolver.Query, + null, + 'query', + )}${query}} + type Mutation {${shadowCRUD.mutation && + this.formatGQL( + shadowCRUD.mutation, + resolver.Mutation, + null, + 'mutation', + )}${mutation}} + ${Types.addCustomScalar(resolvers)} + ${Types.addInput()} + ${polymorphicDef} + `; + + // Build schema. + const schema = makeExecutableSchema({ + typeDefs, + resolvers, + }); + + // Write schema. + this.writeGenerateSchema(graphql.printSchema(schema)); + + // Remove custom scaler (like Upload); + typeDefs = Types.removeCustomScalar(typeDefs, resolvers); + + return { + typeDefs: gql(typeDefs), + resolvers, + }; + }, + + /** + * Save into a file the readable GraphQL schema. + * + * @return void + */ + + writeGenerateSchema: schema => { + // Disable auto-reload. + strapi.reload.isWatching = false; + + const generatedFolder = path.resolve( + strapi.config.appPath, + 'plugins', + 'graphql', + 'config', + 'generated', + ); + + // Create folder if necessary. + try { + fs.accessSync(generatedFolder, fs.constants.R_OK | fs.constants.W_OK); + } catch (err) { + if (err && err.code === 'ENOENT') { + fs.mkdirSync(generatedFolder); + } else { + console.error(err); + } + } + + fs.writeFileSync(path.join(generatedFolder, 'schema.graphql'), schema); + + strapi.reload.isWatching = true; + }, +}; diff --git a/packages/strapi-plugin-graphql/services/Types.js b/packages/strapi-plugin-graphql/services/Types.js new file mode 100644 index 0000000000..070d56d29d --- /dev/null +++ b/packages/strapi-plugin-graphql/services/Types.js @@ -0,0 +1,239 @@ +'use strict'; + +/** + * Types.js service + * + * @description: A set of functions to make the schema easier to build. + */ + +const _ = require('lodash'); +const { GraphQLUpload } = require('apollo-server-koa'); +const graphql = require('graphql'); +const GraphQLJSON = require('graphql-type-json'); +const GraphQLDateTime = require('graphql-type-datetime'); +const pluralize = require('pluralize'); + +module.exports = { + /** + * Convert Strapi type to GraphQL type. + * @param {Object} attribute Information about the attribute. + * @param {Object} attribute.definition Definition of the attribute. + * @param {String} attribute.modelName Name of the model which owns the attribute. + * @param {String} attribute.attributeName Name of the attribute. + * @return String + */ + + convertType: function({ + definition = {}, + modelName = '', + attributeName = '', + rootType = 'query', + }) { + // Type + if (definition.type) { + let type = 'String'; + + switch (definition.type) { + // TODO: Handle fields of type Array, Perhaps default to [Int] or [String] ... + case 'boolean': + type = 'Boolean'; + break; + case 'integer': + type = 'Int'; + break; + case 'decimal': + type = 'Float'; + break; + case 'float': + type = 'Float'; + break; + case 'time': + case 'date': + case 'datetime': + case 'timestamp': + type = 'DateTime'; + break; + case 'enumeration': + type = this.convertEnumType(definition, modelName, attributeName); + break; + } + + if (definition.required) { + type += '!'; + } + + return type; + } + + const ref = definition.model || definition.collection; + + // Association + if (ref && ref !== '*') { + // Add bracket or not + const globalId = definition.plugin + ? strapi.plugins[definition.plugin].models[ref].globalId + : strapi.models[ref].globalId; + const plural = !_.isEmpty(definition.collection); + + if (plural) { + if (rootType === 'mutation') { + return '[ID]'; + } + + return `[${globalId}]`; + } + + if (rootType === 'mutation') { + return 'ID'; + } + + return globalId; + } + + if (rootType === 'mutation') { + return definition.model ? 'ID' : '[ID]'; + } + + return definition.model ? 'Morph' : '[Morph]'; + }, + + /** + * Convert Strapi enumeration to GraphQL Enum. + * @param {Object} definition Definition of the attribute. + * @param {String} model Name of the model which owns the attribute. + * @param {String} field Name of the attribute. + * @return String + */ + + convertEnumType: (definition, model, field) => + definition.enumName + ? definition.enumName + : `ENUM_${model.toUpperCase()}_${field.toUpperCase()}`, + + /** + * Remove custom scalar type such as Upload because Apollo automatically adds it in the schema. + * but we need to add it to print the schema on our side. + * + * @return void + */ + + removeCustomScalar: (typeDefs, resolvers) => { + delete resolvers.Upload; + return typeDefs.replace('scalar Upload', ''); + }, + + /** + * Add custom scalar type such as JSON. + * + * @return void + */ + + addCustomScalar: resolvers => { + Object.assign(resolvers, { + JSON: GraphQLJSON, + DateTime: GraphQLDateTime, + Upload: GraphQLUpload, + }); + + return 'scalar JSON \n scalar DateTime \n scalar Upload'; + }, + + /** + * Add Union Type that contains the types defined by the user. + * + * @return string + */ + + addPolymorphicUnionType: (customDefs, defs) => { + const types = graphql + .parse(customDefs + defs) + .definitions.filter( + def => + def.kind === 'ObjectTypeDefinition' && def.name.value !== 'Query', + ) + .map(def => def.name.value); + + if (types.length > 0) { + return { + polymorphicDef: `union Morph = ${types.join(' | ')}`, + polymorphicResolver: { + Morph: { + __resolveType(obj, context, info) { + // eslint-disable-line no-unused-vars + return obj.kind || obj._type; + }, + }, + }, + }; + } + + return { + polymorphicDef: '', + polymorphicResolver: {}, + }; + }, + + addInput: function() { + return ` + input InputID { id: ID!} + `; + }, + + generateInputModel: function(model, name) { + const globalId = model.globalId; + const inputName = `${_.capitalize(name)}Input`; + + /* eslint-disable */ + return ` + input ${inputName} { + ${Object.keys(model.attributes) + .filter(attribute => model.attributes[attribute].private !== true) + .map(attribute => { + return `${attribute}: ${this.convertType({ + definition: model.attributes[attribute], + modelName: globalId, + attributeName: attribute, + rootType: 'mutation', + })}`; + }) + .join('\n')} + } + `; + /* eslint-enable */ + }, + + generateInputPayloadArguments: function(model, name, type, resolver) { + if (_.get(resolver, `Mutation.${type}${_.capitalize(name)}`) === false) { + return ''; + } + + const inputName = `${_.capitalize(name)}Input`; + const payloadName = `${_.capitalize(name)}Payload`; + + switch (type) { + case 'create': + return ` + input ${type}${inputName} { data: ${inputName} } + type ${type}${payloadName} { ${pluralize.singular(name)}: ${ + model.globalId + } } + `; + case 'update': + return ` + input ${type}${inputName} { where: InputID, data: ${inputName} } + type ${type}${payloadName} { ${pluralize.singular(name)}: ${ + model.globalId + } } + `; + case 'delete': + return ` + input ${type}${inputName} { where: InputID } + type ${type}${payloadName} { ${pluralize.singular(name)}: ${ + model.globalId + } } + `; + default: + // Nothing + } + }, +}; diff --git a/packages/strapi-plugin-upload/config/schema.graphql b/packages/strapi-plugin-upload/config/schema.graphql index defbc32a2e..0af836e9ff 100644 --- a/packages/strapi-plugin-upload/config/schema.graphql +++ b/packages/strapi-plugin-upload/config/schema.graphql @@ -1,10 +1,44 @@ +const _ = require('lodash'); + module.exports = { + mutation: ` + upload(refId: ID, ref: String, source: String, file: Upload!): UploadFile! + `, resolver: { Query: { file: false, files: { resolver: 'Upload.find' } + }, + Mutation: { + createFile: false, + updateFile: false, + deleteFile: false, + upload: { + description: 'Upload one or many files', + resolver: async (obj, { file, ...fields}, { context }) => { + // Construct context to fit with koa-parser guidelines + // and avoid to update our business logic too much. + context.request.body = { + files: { + files: await file + }, + fields + }; + + // Call controller action. + await strapi.plugins.upload.controllers.upload.upload(context); + + // Handle case when the user is uploading only one file. + if (_.isArray(context.body) && context.body.length === 1) { + return context.body[0]; + } + + // Return response. + return context.body; + } + } } } }; diff --git a/packages/strapi-plugin-upload/services/Upload.js b/packages/strapi-plugin-upload/services/Upload.js index b641ec3e1d..c3fdc41d4a 100644 --- a/packages/strapi-plugin-upload/services/Upload.js +++ b/packages/strapi-plugin-upload/services/Upload.js @@ -7,20 +7,10 @@ */ const fs = require('fs'); -const crypto = require('crypto'); const _ = require('lodash'); const toArray = require('stream-to-array'); const uuid = require('uuid/v4'); -function niceHash(buffer) { - return crypto.createHash('sha256') - .update(buffer) - .digest('base64') - .replace(/=/g, '') - .replace(/\//g, '-') - .replace(/\+/, '_'); -} - module.exports = { bufferize: async files => { if (_.isEmpty(files) === 0) { @@ -33,32 +23,47 @@ module.exports = { // transform all files in buffer return Promise.all( files.map(async stream => { - const parts = await toArray(fs.createReadStream(stream.path)); + const parts = stream.path + ? await toArray(fs.createReadStream(stream.path)) + : await toArray(stream.stream); + const buffers = parts.map( - part => _.isBuffer(part) ? part : Buffer.from(part) + part => (_.isBuffer(part) ? part : Buffer.from(part)), ); - const buffer = Buffer.concat(buffers); + if (!stream.path) { + stream.name = stream.filename; + stream.type = stream.mimetype; + stream.size = parseInt(stream.encoding.replace('bit', '')); + } return { name: stream.name, - sha256: niceHash(buffer), hash: uuid().replace(/-/g, ''), - ext: stream.name.split('.').length > 1 ? `.${_.last(stream.name.split('.'))}` : '', - buffer, + ext: + stream.name.split('.').length > 1 + ? `.${_.last(stream.name.split('.'))}` + : '', + buffer: Buffer.concat(buffers), mime: stream.type, - size: (stream.size / 1000).toFixed(2) + size: (stream.size / 1000).toFixed(2), }; - }) + }), ); }, upload: async (files, config) => { // Get upload provider settings to configure the provider to use. - const provider = _.find(strapi.plugins.upload.config.providers, { provider: config.provider }); + const provider = _.find(strapi.plugins.upload.config.providers, { + provider: config.provider, + }); if (!provider) { - throw new Error(`The provider package isn't installed. Please run \`npm install strapi-upload-${config.provider}\``); + throw new Error( + `The provider package isn't installed. Please run \`npm install strapi-upload-${ + config.provider + }\``, + ); } const actions = provider.init(config); @@ -74,16 +79,22 @@ module.exports = { file.provider = provider.provider; return await strapi.plugins['upload'].services.upload.add(file); - }) + }), ); }, - add: async (values) => { + add: async values => { // Use Content Manager business logic to handle relation. if (strapi.plugins['content-manager']) { - return await strapi.plugins['content-manager'].services['contentmanager'].add({ - model: 'file' - }, values, 'upload'); + return await strapi.plugins['content-manager'].services[ + 'contentmanager' + ].add( + { + model: 'file', + }, + values, + 'upload', + ); } return strapi.query('file', 'upload').create(values); @@ -93,20 +104,26 @@ module.exports = { // Use Content Manager business logic to handle relation. if (strapi.plugins['content-manager']) { params.model = 'file'; - params.id = (params._id || params.id); + params.id = params._id || params.id; - return await strapi.plugins['content-manager'].services['contentmanager'].edit(params, values, 'upload'); + return await strapi.plugins['content-manager'].services[ + 'contentmanager' + ].edit(params, values, 'upload'); } return strapi.query('file', 'upload').update(_.assign(params, values)); }, - fetch: (params) => { - return strapi.query('file', 'upload').findOne(_.pick(params, ['_id', 'id'])); + fetch: params => { + return strapi + .query('file', 'upload') + .findOne(_.pick(params, ['_id', 'id'])); }, - fetchAll: (params) => { - return strapi.query('file', 'upload').find(strapi.utils.models.convertParams('file', params)); + fetchAll: params => { + return strapi + .query('file', 'upload') + .find(strapi.utils.models.convertParams('file', params)); }, count: async () => { @@ -114,12 +131,16 @@ module.exports = { }, remove: async (params, config) => { - params.id = (params._id || params.id); + params.id = params._id || params.id; const file = await strapi.plugins['upload'].services.upload.fetch(params); // get upload provider settings to configure the provider to use - const provider = _.cloneDeep(_.find(strapi.plugins.upload.config.providers, {provider: config.provider})); + const provider = _.cloneDeep( + _.find(strapi.plugins.upload.config.providers, { + provider: config.provider, + }), + ); _.assign(provider, config); const actions = provider.init(config); @@ -132,48 +153,55 @@ module.exports = { if (strapi.plugins['content-manager']) { params.model = 'file'; - await strapi.plugins['content-manager'].services['contentmanager'].delete(params, {source: 'upload'}); + await strapi.plugins['content-manager'].services['contentmanager'].delete( + params, + { source: 'upload' }, + ); } return strapi.query('file', 'upload').delete(params); }, - uploadToEntity: async function (params, files, source) { + uploadToEntity: async function(params, files, source) { // Retrieve provider settings from database. - const config = await strapi.store({ - environment: strapi.config.environment, - type: 'plugin', - name: 'upload' - }).get({ key: 'provider' }); + const config = await strapi + .store({ + environment: strapi.config.environment, + type: 'plugin', + name: 'upload', + }) + .get({ key: 'provider' }); - const model = source && source !== 'content-manager' ? - strapi.plugins[source].models[params.model]: - strapi.models[params.model]; + const model = + source && source !== 'content-manager' + ? strapi.plugins[source].models[params.model] + : strapi.models[params.model]; // Asynchronous upload. await Promise.all( - Object.keys(files) - .map(async attribute => { - // Bufferize files per attribute. - const buffers = await this.bufferize(files[attribute]); - const enhancedFiles = buffers.map(file => { - const details = model.attributes[attribute]; + Object.keys(files).map(async attribute => { + // Bufferize files per attribute. + const buffers = await this.bufferize(files[attribute]); + const enhancedFiles = buffers.map(file => { + const details = model.attributes[attribute]; - // Add related information to be able to make - // the relationships later. - file[details.via] = [{ + // Add related information to be able to make + // the relationships later. + file[details.via] = [ + { refId: params.id, ref: params.model, source, field: attribute, - }]; + }, + ]; - return file; - }); + return file; + }); - // Make upload async. - return this.upload(enhancedFiles, config); - }) + // Make upload async. + return this.upload(enhancedFiles, config); + }), ); - } + }, }; diff --git a/packages/strapi-plugin-users-permissions/config/schema.graphql b/packages/strapi-plugin-users-permissions/config/schema.graphql index e1196992bf..8fa826fb30 100644 --- a/packages/strapi-plugin-users-permissions/config/schema.graphql +++ b/packages/strapi-plugin-users-permissions/config/schema.graphql @@ -21,6 +21,35 @@ module.exports = { return ctx.body.roles; } } + }, + Mutation: { + createRole: { + description: 'Create a new role', + resolverOf: 'UsersPermissions.createRole', + resolver: async (obj, options, ctx) => { + await strapi.plugins['users-permissions'].controllers.userspermissions.createRole(ctx); + + return { ok: true }; + } + }, + updateRole: { + description: 'Update an existing role', + resolverOf: 'UsersPermissions.updateRole', + resolver: async (obj, options, ctx) => { + await strapi.plugins['users-permissions'].controllers.userspermissions.updateRole(ctx); + + return { ok: true }; + } + }, + deleteRole: { + description: 'Delete an existing role', + resolverOf: 'UsersPermissions.deleteRole', + resolver: async (obj, options, ctx) => { + await strapi.plugins['users-permissions'].controllers.userspermissions.deleteRole(ctx); + + return { ok: true }; + } + } } } }; diff --git a/packages/strapi/lib/Strapi.js b/packages/strapi/lib/Strapi.js index e92018fc50..6479dee6ff 100755 --- a/packages/strapi/lib/Strapi.js +++ b/packages/strapi/lib/Strapi.js @@ -70,7 +70,6 @@ class Strapi extends EventEmitter { port: process.env.PORT || 1337, environment: toLower(process.env.NODE_ENV) || 'development', environments: {}, - admin: {}, paths: { admin: 'admin', api: 'api', @@ -111,21 +110,27 @@ class Strapi extends EventEmitter { // Update source admin. await admin.call(this); // Launch server. - this.server.listen(this.config.port, async (err) => { + this.server.listen(this.config.port, err => { if (err) { - this.log.debug(`⚠️ Server wasn't able to start properly.`); + this.log.debug('⚠️ Server wasn\'t able to start properly.'); this.log.error(err); return this.stop(); } this.log.info('Time: ' + new Date()); - this.log.info('Launched in: ' + (Date.now() - this.config.launchedAt) + ' ms'); + this.log.info( + 'Launched in: ' + (Date.now() - this.config.launchedAt) + ' ms', + ); this.log.info('Environment: ' + this.config.environment); this.log.info('Process PID: ' + process.pid); - this.log.info(`Version: ${this.config.info.strapi} (node v${this.config.info.node})`); + this.log.info( + `Version: ${this.config.info.strapi} (node v${ + this.config.info.node + })`, + ); this.log.info('To shut down your server, press + C at any time'); console.log(); - this.log.info(`☄️ Admin panel: ${this.config.admin.url}`); + this.log.info(`☄️ Admin panel: ${this.config.url}/admin`); this.log.info(`⚡️ Server: ${this.config.url}`); console.log(); @@ -135,15 +140,11 @@ class Strapi extends EventEmitter { if (cb && typeof cb === 'function') { cb(); } - - if (this.config.environment === 'development' && get(this.config.currentEnvironment, 'server.admin.autoOpen', true) !== false) { - await utils.openBrowser.call(this); - } }); } catch (err) { - this.log.debug(`⛔️ Server wasn't able to start properly.`); + this.log.debug('⛔️ Server wasn\'t able to start properly.'); this.log.error(err); - console.log(err); + console.error(err); this.stop(); } } @@ -162,8 +163,10 @@ class Strapi extends EventEmitter { this.server.on('error', err => { if (err.code === 'EADDRINUSE') { - this.log.debug(`⛔️ Server wasn't able to start properly.`); - this.log.error(`The port ${err.port} is already used by another application.`); + this.log.debug('⛔️ Server wasn\'t able to start properly.'); + this.log.error( + `The port ${err.port} is already used by another application.`, + ); this.stop(); return; } @@ -187,7 +190,8 @@ class Strapi extends EventEmitter { if ( cluster.isWorker && this.config.environment === 'development' && - get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === true + get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === + true ) { process.send('stop'); } @@ -226,7 +230,10 @@ class Strapi extends EventEmitter { await store.call(this); // Initialize hooks and middlewares. - await Promise.all([initializeMiddlewares.call(this), initializeHooks.call(this)]); + await Promise.all([ + initializeMiddlewares.call(this), + initializeHooks.call(this), + ]); // Harmonize plugins configuration. await plugins.call(this); @@ -247,7 +254,11 @@ class Strapi extends EventEmitter { if ( cluster.isWorker && this.config.environment === 'development' && - get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === true + get( + this.config, + 'currentEnvironment.server.autoReload.enabled', + true, + ) === true ) { process.send('reload'); } @@ -280,8 +291,8 @@ class Strapi extends EventEmitter { const timeoutMs = this.config.bootstrapTimeout || 3500; const timer = setTimeout(() => { this.log.warn( - `Bootstrap is taking unusually long to execute its callback ${timeoutMs} miliseconds).`, - ); + `Bootstrap is taking unusually long to execute its callback ${timeoutMs} miliseconds).`, + ); this.log.warn('Perhaps you forgot to call it?'); }, timeoutMs); @@ -290,7 +301,9 @@ class Strapi extends EventEmitter { try { fn(err => { if (ranBootstrapFn) { - this.log.error('You called the callback in `strapi.config.boostrap` more than once!'); + this.log.error( + 'You called the callback in `strapi.config.boostrap` more than once!', + ); return reject(); } @@ -302,7 +315,9 @@ class Strapi extends EventEmitter { }); } catch (e) { if (ranBootstrapFn) { - this.log.error('The bootstrap function threw an error after its callback was called.'); + this.log.error( + 'The bootstrap function threw an error after its callback was called.', + ); return reject(e); } @@ -315,7 +330,9 @@ class Strapi extends EventEmitter { }); return Promise.all( - Object.values(this.plugins).map(x => execBootstrap(get(x, 'config.functions.bootstrap'))), + Object.values(this.plugins).map(x => + execBootstrap(get(x, 'config.functions.bootstrap')), + ), ).then(() => execBootstrap(this.config.functions.bootstrap)); } @@ -335,14 +352,16 @@ class Strapi extends EventEmitter { query(entity, plugin) { if (!entity) { return this.log.error( - `You can't call the query method without passing the model's name as a first argument.`, + 'You can\'t call the query method without passing the model\'s name as a first argument.', ); } const model = entity.toLowerCase(); const Model = - get(strapi.plugins, [plugin, 'models', model]) || get(strapi, ['models', model]) || undefined; + get(strapi.plugins, [plugin, 'models', model]) || + get(strapi, ['models', model]) || + undefined; if (!Model) { return this.log.error(`The model ${model} can't be found.`); @@ -351,7 +370,9 @@ class Strapi extends EventEmitter { const connector = Model.orm; if (!connector) { - return this.log.error(`Impossible to determine the use ORM for the model ${model}.`); + return this.log.error( + `Impossible to determine the use ORM for the model ${model}.`, + ); } // Get stack trace. @@ -363,7 +384,9 @@ class Strapi extends EventEmitter { let pluginPath = undefined; if (file.indexOf('strapi-plugin-') !== -1) { - pluginPath = file.split(path.sep).filter(x => x.indexOf('strapi-plugin-') !== -1)[0]; + pluginPath = file + .split(path.sep) + .filter(x => x.indexOf('strapi-plugin-') !== -1)[0]; } else if (file.indexOf(path.sep + 'plugins' + path.sep) !== -1) { const pathTerms = file.split(path.sep); const index = pathTerms.indexOf('plugins'); @@ -374,15 +397,22 @@ class Strapi extends EventEmitter { } if (!pluginPath) { - return this.log.error('Impossible to find the plugin where `strapi.query` has been called.'); + return this.log.error( + 'Impossible to find the plugin where `strapi.query` has been called.', + ); } // Get plugin name. const pluginName = pluginPath.replace('strapi-plugin-', '').toLowerCase(); - const queries = get(this.plugins, `${pluginName}.config.queries.${connector}`); + const queries = get( + this.plugins, + `${pluginName}.config.queries.${connector}`, + ); if (!queries) { - return this.log.error(`There is no query available for the model ${model}.`); + return this.log.error( + `There is no query available for the model ${model}.`, + ); } // Bind queries with the current model to allow the use of `this`. @@ -393,7 +423,7 @@ class Strapi extends EventEmitter { { orm: connector, primaryKey: Model.primaryKey, - associations: Model.associations + associations: Model.associations, }, ); From 4be3154e98cff1f58a68cfc85021ee5535dba3b6 Mon Sep 17 00:00:00 2001 From: Jason Lei Date: Mon, 10 Sep 2018 16:10:09 +0800 Subject: [PATCH 07/22] GraphQL Mutations and Aggregations Documentation. --- docs/3.x.x/en/guides/graphql.md | 260 ++++++++++++++++++++++++++++---- 1 file changed, 231 insertions(+), 29 deletions(-) diff --git a/docs/3.x.x/en/guides/graphql.md b/docs/3.x.x/en/guides/graphql.md index 3f67c612f1..d6c57a80bb 100644 --- a/docs/3.x.x/en/guides/graphql.md +++ b/docs/3.x.x/en/guides/graphql.md @@ -1,6 +1,6 @@ # GraphQL -> ⚠️ This feature requires the GraphQL plugin (not installed by default). +> ⚠️ This feature requires the GraphQL plugin (not installed by default). ## Usage @@ -10,7 +10,7 @@ To get started with GraphQL in your app, please install the plugin first. To do strapi install graphql ``` -Then, start your app and open your browser at [http://localhost:1337/playground](http://localhost:1337/playground). You should see the interface (GraphQL Playground) that will help you to write GraphQL query to explore your data. +Then, start your app and open your browser at [http://localhost:1337/graphql](http://localhost:1337/graphql). You should see the interface (GraphQL Playground) that will help you to write GraphQL query to explore your data. > Install the [ModHeader](https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj/related) extension to set the `Authorization` header in your request @@ -19,6 +19,7 @@ Then, start your app and open your browser at [http://localhost:1337/playground] By default, the [Shadow CRUD](#shadow-crud) feature is enabled and the GraphQL is set to `/graphql`. You can edit these configurations in the following files. **Path —** `./plugins/graphql/config/settings.json`. + ``` { "endpoint": "/graphql", @@ -29,7 +30,7 @@ By default, the [Shadow CRUD](#shadow-crud) feature is enabled and the GraphQL i ### Query API -In the section, we assume that the [Shadow CRUD](#shadow-crud) feature is enabled. For each model, the plugin auto-generates queries which just fit to your needs. +In the section, we assume that the [Shadow CRUD](#shadow-crud) feature is enabled. For each model, the plugin auto-generates queries and mutations which just fit to your needs. ##### Fetch a single entry @@ -55,6 +56,118 @@ query { } ``` +##### Create a new entry + +- `input`: Object + - `data`: Object — Values to insert + +``` +mutation { + createUser(input: { + data: { + username: "John", + email: "john@doe.com" + } + }) { + user { + username + email + } + } +} +``` + +The implementation of the mutations also supports relational attributes. For example, you can create a new `User` and attach many `Post` to it by writing your query like this: + +``` +mutation { + createUser(input: { + data: { + username: "John", + email: "john@doe.com", + posts: ["5b51e3949db573a586ad22de", "5b5b26619b0820c1c2fb79c9"] + } + }) { + user { + username + email + posts { + title + content + publishedAt + } + } + } +} +``` + +##### Update an existing entry + +- `input`: Object + - `where`: Object - Entry's ID to update + - `data`: Object — Values to update + +``` +mutation { + updateUser(input: { + where: { + id: "5b28f1747c739e4afb48605c" + }, + data: { + username: "John", + email: "john@doe.com" + } + }) { + user { + username + email + } + } +} +``` + +You can also update relational attributes by passing an ID or an array of IDs (depending of the relationship). + +``` +mutation { + updatePost(input: { + where: { + id: "5b5b27f8164f75c29c728110" + }, + data: { + author: "5b51e3949db573a586ad22de" // User ID + } + }) { + post { + author { + username + email + } + } + } +} +``` + +##### Delete an entry + +- `input`: Object + - `where`: Object - Entry's ID to delete + +``` +mutation { + deleteUser(input: { + where: { + id: "5b28f1747c739e4afb48605c" + } + }) { + user { + username + email + } + } +} +``` + **Filters** You can also apply different parameters to the query to make more complex queries. @@ -73,6 +186,7 @@ You can also apply different parameters to the query to make more complex querie - `_containss`: Contains sensitive. Return the second decade of users which have an email that contains `@strapi.io` ordered by username. + ``` query { users(limit: 10, start: 10, sort: "username:asc", where: { @@ -85,6 +199,7 @@ query { ``` Return the users which have been created after the March, 19th 2018 4:21 pm. + ``` query { users(where: { @@ -96,17 +211,16 @@ query { } ``` - ## Shadow CRUD -To simplify and automate the build of the GraphQL schema, we introduced the Shadow CRUD feature. It automatically generates the type definition, queries and resolvers based on your models. The feature also lets you make complex query with many arguments such as `limit`, `sort`, `start` and `where`. - +To simplify and automate the build of the GraphQL schema, we introduced the Shadow CRUD feature. It automatically generates the type definition, queries, mutations and resolvers based on your models. The feature also lets you make complex query with many arguments such as `limit`, `sort`, `start` and `where`. #### Example If you've generated an API called `Post` using the CLI `strapi generate:api post` or the administration panel, your model looks like this: **Path —** `./api/post/models/Post.settings.json`. + ``` { "connection": "default", @@ -128,7 +242,9 @@ If you've generated an API called `Post` using the CLI `strapi generate:api post ``` The generated GraphQL type and queries will be: + ``` +// Post's Type definition type Post { _id: String created_at: String @@ -138,19 +254,29 @@ type Post { published: Boolean } +// Queries to retrieve one or multiple posts. type Query { posts(sort: String, limit: Int, start: Int, where: JSON): [Post] post(id: String!): Post } + +// Mutations to create, update or delete a post. +type Mutation { + createProduct(input: createProductInput): createProductPayload! + updateProduct(input: updateProductInput): updateProductPayload! + deleteProduct(input: deleteProductInput): deleteProductPayload! +} ``` -The query will use the generated controller's actions as resolvers. It means that the `posts` query will execute the `Post.find` action and the `post` query will use the `Post.findOne` action. +The queries and mutations will use the generated controller's actions as resolvers. It means that the `posts` query will execute the `Post.find` action, the `post` query will use the `Post.findOne` action and the `createProduct` mutation will use the `Post.create` action, etc. ## Aggregation & Grouping + > This feature is only available on Mongoose ORM. Strapi now supports Aggregation & Grouping. Let's consider again the model mentioned above: + ``` type Post { _id: ID @@ -161,11 +287,12 @@ type Post { nb_likes: Int, published: Boolean } - ``` + Strapi will generate automatically for you the following queries & types: ### Aggregation + ``` type PostConnection { values: [Post] @@ -224,6 +351,7 @@ postsConnection { ``` Let's say we want to do the same query but for only published posts + ``` postsConnection(where: { published: true }) { aggregate { @@ -256,6 +384,7 @@ postsConnection { ``` Result + ```JSON { data: { @@ -294,29 +423,32 @@ Result If you want to define a new scalar, input or enum types, this section is for you. To do so, you will have to create a `schema.graphql` file. This file has to be placed into the config folder of each API `./api/*/config/schema.graphql` or plugin `./plugins/*/config/schema.graphql`. **Structure —** `schema.graphql`. + ```js module.exports = { definition: ``, query: ``, type: {}, resolver: { - Query: {} - } + Query: {}, + }, }; ``` - `definition` (string): let's you define new type, input, etc. - `query` (string): where you add custom query. +- `mutation` (string): where you add custom mutation. - `type` (object): allows you to add description, deprecated field or disable the [Shadow CRUD](#shadow-crud) feature on a specific type. - `resolver` (object): - `Query` (object): let's you define custom resolver, policies for a query. - + - `Mutation` (object): let's you define custom resolver, policies for a mutation. #### Example Let say we are using the same previous `Post` model. **Path —** `./api/post/config/schema.graphql`. + ```js module.exports = { definition: ` @@ -329,8 +461,11 @@ module.exports = { } `, query: ` - postsByAuthor(id: String, status: PostStatusInput, limit: Int): [Post]! + postsByAuthor(id: ID, status: PostStatusInput, limit: Int): [Post]! `, + mutation: ` + attachPostToAuthor(id: ID, authorID: ID): Post! + ` resolver: { Query: { post: { @@ -355,6 +490,13 @@ module.exports = { return ctx.body.posts || `There is no post.`; } } + }, + Mutation: { + attachPostToAuthor: { + description: 'Attach a post to an author', + policy: ['plugins.users-permissions.isAuthenticated', 'isOwner'], + resolver: 'Post.attachToAuthor' + } } } }; @@ -376,7 +518,7 @@ module.exports = { age: Int children: [Person] } - ` + `, }; ``` @@ -419,7 +561,7 @@ module.exports = { }; ``` ->The resolver parameter also accepts an object as a value to target a controller located in a plugin. +> The resolver parameter also accepts an object as a value to target a controller located in a plugin. ```js module.exports = { @@ -443,6 +585,7 @@ module.exports = { One of the most powerful features of GraphQL is the auto-documentation of the schema. The GraphQL plugin allows you to add a description to a type, a field and a query. You can also deprecate a field or a query. **Path —** `./api/post/models/Post.settings.json`. + ``` { "connection": "default", @@ -475,16 +618,24 @@ It might happens that you want to add a description to a query or deprecate it. > Remember: The `schema.graphql` file has to be placed into the config folder of each API `./api/*/config/schema.graphql` or plugin `./plugins/*/config/schema.graphql`. **Path —** `./api/post/config/schema.graphql`. + ```js module.exports = { resolver: { Query: { posts: { description: 'Return a list of posts', // Add a description to the query. - deprecated: 'This query should not be used anymore. Please consider using postsByAuthor instead.' // Deprecate the query and explain the reason why. - } - } - } + deprecated: + 'This query should not be used anymore. Please consider using postsByAuthor instead.', // Deprecate the query and explain the reason why. + }, + }, + Mutation: { + createPost: { + description: 'Create a new post', + deprecated: 'Please use the dashboard UI instead', + }, + }, + }, }; ``` @@ -498,18 +649,30 @@ module.exports = { Query: { posts: { description: 'Return a list of posts', - policy: ['plugins.users-permissions.isAuthenticated', 'isOwner', 'global.logging'] - } - } - } + policy: [ + 'plugins.users-permissions.isAuthenticated', + 'isOwner', + 'global.logging', + ], + }, + }, + Mutation: { + createPost: { + description: 'Create a new post', + policy: ['plugins.users-permissions.isAuthenticated', 'global.logging'], + }, + }, + }, }; ``` In this example, the policy `isAuthenticated` located in `./plugins/users-permissions/config/policies/isAuthenticated.js` will be executed first. Then, the `isOwner` policy located in the `Post` API `./api/post/config/policies/isOwner.js`. Next, it will execute the `logging` policy located in `./config/policies/logging.js`. Finally, the resolver will be executed. +The same process is applied to the `createPost` mutation. + > Note: There is no custom resolver in that case, so it will execute the default resolver (Post.find) provided by the Shadow CRUD feature. -### Link a query to a controller action +### Link a query or mutation to a controller action By default, the plugin will execute the actions located in the controllers that has been generated via the Content-Type Builder plugin or the CLI. For example, the query `posts` is going to execute the logic inside the `find` action in the `Post.js` controller. It might happens that you want to execute another action or a custom logic for one of your query. @@ -519,10 +682,16 @@ module.exports = { Query: { posts: { description: 'Return a list of posts by author', - resolver: 'Post.findByAuthor' - } - } - } + resolver: 'Post.findByAuthor', + }, + }, + Mutation: { + createPost: { + description: 'Create a new post', + resolver: 'Post.customCreate', + }, + }, + }, }; ``` @@ -530,6 +699,10 @@ In this example, it will execute the `findByAuthor` action of the `Post` control > Note: The `obj` parameter is available via `ctx.params` and the `options` are available via `ctx.query` in the controller's action. +The same process is also applied for the `createPost` mutation. It will execute the `customCreate` action of the `Post` controller. + +> Note: The `where` parameter is available via `ctx.params` and the `data` are available via `ctx.request.body` in the controller's action. + ### Define a custom resolver ```js @@ -538,7 +711,7 @@ module.exports = { Query: { posts: { description: 'Return a list of posts by author', - resolver: (obj, options, context) => { + resolver: (obj, options, { context }) => { // You can return a raw JSON object or a promise. return [{ @@ -547,6 +720,19 @@ module.exports = { }]; } } + }, + Mutation: { + updatePost: { + description: 'Update an existing post', + resolver: (obj, options, { context }) => { + // The `where` and `data` parameters passed as arguments + // of the GraphQL mutation are available via the `context` object. + const where = context.params; + const data = context.request.body; + + return await strapi.api.post.services.post.addPost(data, where); + } + } } } }; @@ -574,6 +760,18 @@ module.exports = { }]; } } + }, + Mutation: { + updatePost: { + description: 'Update an existing post', + resolverOf: 'Post.update', // Will apply the same policy on the custom resolver than the controller's action `update` located in `Post.js`. + resolver: (obj, options, { context }) => { + const where = context.params; + const data = context.request.body; + + return await strapi.api.post.services.post.addPost(data, where); + } + } } } }; @@ -586,11 +784,15 @@ To do that, we need to use the `schema.graphql` like below: ```js module.exports = { type: { - Post: false // The Post type won't be "queriable". + Post: false // The Post type won't be "queriable" or "mutable". } resolver: { Query: { posts: false // The `posts` query will no longer be in the GraphQL schema. + }, + Mutation: { + createPost: false, + deletePOst: false } } }; From 95448e161f341fd30f751cd0ec6ee93511b2f8d7 Mon Sep 17 00:00:00 2001 From: Salem <20779154+xlmnxp@users.noreply.github.com> Date: Tue, 11 Sep 2018 21:43:24 +0300 Subject: [PATCH 08/22] Update ar.json --- packages/strapi-admin/admin/src/translations/ar.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/strapi-admin/admin/src/translations/ar.json b/packages/strapi-admin/admin/src/translations/ar.json index b39c693660..49f84146af 100644 --- a/packages/strapi-admin/admin/src/translations/ar.json +++ b/packages/strapi-admin/admin/src/translations/ar.json @@ -19,7 +19,7 @@ "app.components.HomePage.welcomeBlock.content.raise": " أو رفع ", "app.components.HomePage.createBlock.content.first": "الـ ", "app.components.HomePage.createBlock.content.second": " سيساعدك المكون الإضافي في تحديد بنية البيانات لطرازاتك. إذا كنت جديدًا هنا ، فننصحك بشدة باتباع نهجنا ", - "app.components.HomePage.createBlock.content.tutorial": " شرخ.", + "app.components.HomePage.createBlock.content.tutorial": " شرح.", "app.components.HomePage.button.quickStart": "بداء الشرح السريع", "app.components.HomePage.button.blog": "اظهار المزيد على المدونة", "app.components.HomePage.support": "ادعمنا", @@ -138,4 +138,4 @@ "Users": "المستخدمين", "Analytics": "إحصائيات", "request.error.model.unknow": "هذا النموذج غير موجود" -} \ No newline at end of file +} From 04902d2c0660a3784a756dc172df1b35f028f3f3 Mon Sep 17 00:00:00 2001 From: sundaycrafts Date: Wed, 12 Sep 2018 14:12:09 +0900 Subject: [PATCH 09/22] polish code again --- packages/strapi-hook-mongoose/lib/index.js | 39 +++++++++------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/packages/strapi-hook-mongoose/lib/index.js b/packages/strapi-hook-mongoose/lib/index.js index 2ad6a41574..5744587e86 100755 --- a/packages/strapi-hook-mongoose/lib/index.js +++ b/packages/strapi-hook-mongoose/lib/index.js @@ -48,8 +48,8 @@ module.exports = function (strapi) { * Initialize the hook */ - initialize: cb => { - _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-hook-mongoose'}), (connection, connectionName) => { + initialize: cb => + _.forEach(_.pickBy(strapi.config.connections, {connector: 'strapi-hook-mongoose'}), async (connection, connectionName) => { const instance = new Mongoose(); const { uri, host, port, username, password, database, srv } = _.defaults(connection.settings, strapi.config.hook.settings.mongoose); const uriOptions = uri ? url.parse(uri, true).query : {}; @@ -78,28 +78,21 @@ module.exports = function (strapi) { options.debug = debug === true || debug === 'true'; - /* FIXME: for now, mongoose doesn't support srv auth except the way including user/pass in URI. - * https://github.com/Automattic/mongoose/issues/6881 */ - instance.connect(uri || - `mongodb${isSrv ? '+srv' : ''}://${username}:${password}@${host}${ !isSrv ? ':' + port : '' }/`, - connectOptions - ); - - for (let key in options) { - instance.set(key, options[key]); + try { + /* FIXME: for now, mongoose doesn't support srv auth except the way including user/pass in URI. + * https://github.com/Automattic/mongoose/issues/6881 */ + await instance.connect(uri || + `mongodb${isSrv ? '+srv' : ''}://${username}:${password}@${host}${ !isSrv ? ':' + port : '' }/`, + connectOptions + ); + } catch ({message}) { + const errMsg = message.includes(`:${port}`) + ? 'Make sure your MongoDB database is running...' : message + return cb(errMsg); } - // Handle error - instance.connection.on('error', error => { - if (error.message.indexOf(`:${port}`)) { - return cb('Make sure your MongoDB database is running...'); - } + Object.keys(options, key => instance.set(key, options[key])); - cb(error); - }); - - // Handle success - instance.connection.on('open', () => { const mountModels = (models, target, plugin = false) => { if (!target) return; @@ -464,9 +457,7 @@ module.exports = function (strapi) { }); cb(); - }); - }); - }, + }), getQueryParams: (value, type, key) => { const result = {}; From 25bf0b1d9521e66e8ae2f17627ad52d5b92d4420 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Thu, 13 Sep 2018 16:44:42 +0200 Subject: [PATCH 10/22] Fix missing admin config object --- packages/strapi/lib/Strapi.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/strapi/lib/Strapi.js b/packages/strapi/lib/Strapi.js index 55ea7dcbf0..c073cfdad3 100755 --- a/packages/strapi/lib/Strapi.js +++ b/packages/strapi/lib/Strapi.js @@ -70,6 +70,7 @@ class Strapi extends EventEmitter { port: process.env.PORT || 1337, environment: toLower(process.env.NODE_ENV) || 'development', environments: {}, + admin: {}, paths: { admin: 'admin', api: 'api', From 9861b9ad3f5459fddb8dd4fbe7fb0018da071484 Mon Sep 17 00:00:00 2001 From: Jason Lei Date: Mon, 17 Sep 2018 15:50:13 +0800 Subject: [PATCH 11/22] Bringing files up to date with master, fixing the missing contributor code. --- .../strapi-plugin-upload/services/Upload.js | 25 +++-- packages/strapi/lib/Strapi.js | 95 +++++++------------ 2 files changed, 47 insertions(+), 73 deletions(-) diff --git a/packages/strapi-plugin-upload/services/Upload.js b/packages/strapi-plugin-upload/services/Upload.js index c3fdc41d4a..c4d79d3441 100644 --- a/packages/strapi-plugin-upload/services/Upload.js +++ b/packages/strapi-plugin-upload/services/Upload.js @@ -7,10 +7,21 @@ */ const fs = require('fs'); +const crypto = require('crypto'); const _ = require('lodash'); const toArray = require('stream-to-array'); const uuid = require('uuid/v4'); +function niceHash(buffer) { + return crypto + .createHash('sha256') + .update(buffer) + .digest('base64') + .replace(/=/g, '') + .replace(/\//g, '-') + .replace(/\+/, '_'); +} + module.exports = { bufferize: async files => { if (_.isEmpty(files) === 0) { @@ -23,28 +34,22 @@ module.exports = { // transform all files in buffer return Promise.all( files.map(async stream => { - const parts = stream.path - ? await toArray(fs.createReadStream(stream.path)) - : await toArray(stream.stream); - + const parts = await toArray(fs.createReadStream(stream.path)); const buffers = parts.map( part => (_.isBuffer(part) ? part : Buffer.from(part)), ); - if (!stream.path) { - stream.name = stream.filename; - stream.type = stream.mimetype; - stream.size = parseInt(stream.encoding.replace('bit', '')); - } + const buffer = Buffer.concat(buffers); return { name: stream.name, + sha256: niceHash(buffer), hash: uuid().replace(/-/g, ''), ext: stream.name.split('.').length > 1 ? `.${_.last(stream.name.split('.'))}` : '', - buffer: Buffer.concat(buffers), + buffer, mime: stream.type, size: (stream.size / 1000).toFixed(2), }; diff --git a/packages/strapi/lib/Strapi.js b/packages/strapi/lib/Strapi.js index c073cfdad3..c830eca734 100755 --- a/packages/strapi/lib/Strapi.js +++ b/packages/strapi/lib/Strapi.js @@ -111,27 +111,21 @@ class Strapi extends EventEmitter { // Update source admin. await admin.call(this); // Launch server. - this.server.listen(this.config.port, err => { + this.server.listen(this.config.port, async (err) => { if (err) { - this.log.debug('⚠️ Server wasn\'t able to start properly.'); + this.log.debug(`⚠️ Server wasn't able to start properly.`); this.log.error(err); return this.stop(); } this.log.info('Time: ' + new Date()); - this.log.info( - 'Launched in: ' + (Date.now() - this.config.launchedAt) + ' ms', - ); + this.log.info('Launched in: ' + (Date.now() - this.config.launchedAt) + ' ms'); this.log.info('Environment: ' + this.config.environment); this.log.info('Process PID: ' + process.pid); - this.log.info( - `Version: ${this.config.info.strapi} (node v${ - this.config.info.node - })`, - ); + this.log.info(`Version: ${this.config.info.strapi} (node v${this.config.info.node})`); this.log.info('To shut down your server, press + C at any time'); console.log(); - this.log.info(`☄️ Admin panel: ${this.config.url}/admin`); + this.log.info(`☄️ Admin panel: ${this.config.admin.url}`); this.log.info(`⚡️ Server: ${this.config.url}`); console.log(); @@ -141,11 +135,15 @@ class Strapi extends EventEmitter { if (cb && typeof cb === 'function') { cb(); } + + if (this.config.environment === 'development' && get(this.config.currentEnvironment, 'server.admin.autoOpen', true) !== false) { + await utils.openBrowser.call(this); + } }); } catch (err) { - this.log.debug('⛔️ Server wasn\'t able to start properly.'); + this.log.debug(`⛔️ Server wasn't able to start properly.`); this.log.error(err); - console.error(err); + console.log(err); this.stop(); } } @@ -157,17 +155,15 @@ class Strapi extends EventEmitter { const key = conn.remoteAddress + ':' + conn.remotePort; connections[key] = conn; - conn.on('close', function() { + conn.on('close', function () { delete connections[key]; }); }); this.server.on('error', err => { if (err.code === 'EADDRINUSE') { - this.log.debug('⛔️ Server wasn\'t able to start properly.'); - this.log.error( - `The port ${err.port} is already used by another application.`, - ); + this.log.debug(`⛔️ Server wasn't able to start properly.`); + this.log.error(`The port ${err.port} is already used by another application.`); this.stop(); return; } @@ -191,8 +187,7 @@ class Strapi extends EventEmitter { if ( cluster.isWorker && this.config.environment === 'development' && - get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === - true + get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === true ) { process.send('stop'); } @@ -231,10 +226,7 @@ class Strapi extends EventEmitter { await store.call(this); // Initialize hooks and middlewares. - await Promise.all([ - initializeMiddlewares.call(this), - initializeHooks.call(this), - ]); + await Promise.all([initializeMiddlewares.call(this), initializeHooks.call(this)]); // Harmonize plugins configuration. await plugins.call(this); @@ -245,7 +237,7 @@ class Strapi extends EventEmitter { shouldReload: 0 }; - const reload = function() { + const reload = function () { if (state.shouldReload > 0) { // Reset the reloading state state.shouldReload -= 1; @@ -256,11 +248,7 @@ class Strapi extends EventEmitter { if ( cluster.isWorker && this.config.environment === 'development' && - get( - this.config, - 'currentEnvironment.server.autoReload.enabled', - true, - ) === true + get(this.config, 'currentEnvironment.server.autoReload.enabled', true) === true ) { process.send('reload'); } @@ -295,8 +283,8 @@ class Strapi extends EventEmitter { const timeoutMs = this.config.bootstrapTimeout || 3500; const timer = setTimeout(() => { this.log.warn( - `Bootstrap is taking unusually long to execute its callback ${timeoutMs} miliseconds).`, - ); + `Bootstrap is taking unusually long to execute its callback ${timeoutMs} miliseconds).`, + ); this.log.warn('Perhaps you forgot to call it?'); }, timeoutMs); @@ -305,9 +293,7 @@ class Strapi extends EventEmitter { try { fn(err => { if (ranBootstrapFn) { - this.log.error( - 'You called the callback in `strapi.config.boostrap` more than once!', - ); + this.log.error('You called the callback in `strapi.config.boostrap` more than once!'); return reject(); } @@ -319,9 +305,7 @@ class Strapi extends EventEmitter { }); } catch (e) { if (ranBootstrapFn) { - this.log.error( - 'The bootstrap function threw an error after its callback was called.', - ); + this.log.error('The bootstrap function threw an error after its callback was called.'); return reject(e); } @@ -334,9 +318,7 @@ class Strapi extends EventEmitter { }); return Promise.all( - Object.values(this.plugins).map(x => - execBootstrap(get(x, 'config.functions.bootstrap')), - ), + Object.values(this.plugins).map(x => execBootstrap(get(x, 'config.functions.bootstrap'))), ).then(() => execBootstrap(this.config.functions.bootstrap)); } @@ -356,16 +338,14 @@ class Strapi extends EventEmitter { query(entity, plugin) { if (!entity) { return this.log.error( - 'You can\'t call the query method without passing the model\'s name as a first argument.', + `You can't call the query method without passing the model's name as a first argument.`, ); } const model = entity.toLowerCase(); const Model = - get(strapi.plugins, [plugin, 'models', model]) || - get(strapi, ['models', model]) || - undefined; + get(strapi.plugins, [plugin, 'models', model]) || get(strapi, ['models', model]) || undefined; if (!Model) { return this.log.error(`The model ${model} can't be found.`); @@ -374,9 +354,7 @@ class Strapi extends EventEmitter { const connector = Model.orm; if (!connector) { - return this.log.error( - `Impossible to determine the use ORM for the model ${model}.`, - ); + return this.log.error(`Impossible to determine the use ORM for the model ${model}.`); } // Get stack trace. @@ -388,9 +366,7 @@ class Strapi extends EventEmitter { let pluginPath = undefined; if (file.indexOf('strapi-plugin-') !== -1) { - pluginPath = file - .split(path.sep) - .filter(x => x.indexOf('strapi-plugin-') !== -1)[0]; + pluginPath = file.split(path.sep).filter(x => x.indexOf('strapi-plugin-') !== -1)[0]; } else if (file.indexOf(path.sep + 'plugins' + path.sep) !== -1) { const pathTerms = file.split(path.sep); const index = pathTerms.indexOf('plugins'); @@ -401,22 +377,15 @@ class Strapi extends EventEmitter { } if (!pluginPath) { - return this.log.error( - 'Impossible to find the plugin where `strapi.query` has been called.', - ); + return this.log.error('Impossible to find the plugin where `strapi.query` has been called.'); } // Get plugin name. const pluginName = pluginPath.replace('strapi-plugin-', '').toLowerCase(); - const queries = get( - this.plugins, - `${pluginName}.config.queries.${connector}`, - ); + const queries = get(this.plugins, `${pluginName}.config.queries.${connector}`); if (!queries) { - return this.log.error( - `There is no query available for the model ${model}.`, - ); + return this.log.error(`There is no query available for the model ${model}.`); } // Bind queries with the current model to allow the use of `this`. @@ -427,7 +396,7 @@ class Strapi extends EventEmitter { { orm: connector, primaryKey: Model.primaryKey, - associations: Model.associations, + associations: Model.associations }, ); @@ -435,4 +404,4 @@ class Strapi extends EventEmitter { } } -module.exports = new Strapi(); +module.exports = new Strapi(); \ No newline at end of file From 9cb5b08db104f423df8bbff043b6086d7060a8e1 Mon Sep 17 00:00:00 2001 From: Jason Lei Date: Mon, 17 Sep 2018 16:31:45 +0800 Subject: [PATCH 12/22] Updated package deps. --- packages/strapi-plugin-graphql/package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/strapi-plugin-graphql/package.json b/packages/strapi-plugin-graphql/package.json index 3d1bfa544b..1666a298af 100644 --- a/packages/strapi-plugin-graphql/package.json +++ b/packages/strapi-plugin-graphql/package.json @@ -21,12 +21,12 @@ "test": "echo \"Error: no test specified\"" }, "dependencies": { - "apollo-server-koa": "^1.3.3", - "glob": "^7.1.2", - "graphql": "^0.13.2", + "apollo-server-koa": "^2.0.7", + "glob": "^7.1.3", + "graphql": "^14.0.2", "graphql-depth-limit": "^1.1.0", - "graphql-playground-middleware-koa": "^1.6.1", - "graphql-tools": "^2.23.1", + "graphql-playground-middleware-koa": "^1.6.4", + "graphql-tools": "^3.1.1", "graphql-type-json": "^0.2.1", "graphql-type-datetime": "^0.2.2", "pluralize": "^7.0.0", @@ -49,4 +49,4 @@ "npm": ">= 5.3.0" }, "license": "MIT" -} \ No newline at end of file +} From 5d0eeec2b3b08edb4756a633e9909dacc1f6ab1b Mon Sep 17 00:00:00 2001 From: Pierre Burgy Date: Mon, 17 Sep 2018 11:12:08 +0200 Subject: [PATCH 13/22] Add Content Internationalization documentation --- docs/3.x.x/en/assets/internationalization.gif | Bin 0 -> 895951 bytes docs/3.x.x/en/guides/i18n.md | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 docs/3.x.x/en/assets/internationalization.gif diff --git a/docs/3.x.x/en/assets/internationalization.gif b/docs/3.x.x/en/assets/internationalization.gif new file mode 100644 index 0000000000000000000000000000000000000000..d4dcd412e57c9af2216add96995f6966b1f3f741 GIT binary patch literal 895951 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
)I9 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

19)LECa;f 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 z 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≫DBy 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

8@FbM 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�Jfc=bsgN6I*+w-u0lvjs&IQUihOLQI8s9@ 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%0DeYd^2oqI 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%0D6p*G$@G8x_Z@_3GO9$9dZ0 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 Date: Mon, 17 Sep 2018 11:27:15 -0700 Subject: [PATCH 14/22] Add shebang to server.js * The execute bit is already enabled on server.js * However, executing it via `./server.js` fails * Adding the shebang allows the server to start --- packages/strapi-generate-new/files/server.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/strapi-generate-new/files/server.js b/packages/strapi-generate-new/files/server.js index ab5b7b6c21..aaee2d5da1 100755 --- a/packages/strapi-generate-new/files/server.js +++ b/packages/strapi-generate-new/files/server.js @@ -1,3 +1,4 @@ +#!/usr/bin/env node 'use strict'; /** From 9b94a73b8d4e51a3b92e2c8967757776f042f2b5 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Tue, 18 Sep 2018 15:32:12 +0200 Subject: [PATCH 15/22] Fix association detection --- packages/strapi-hook-bookshelf/lib/relations.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/strapi-hook-bookshelf/lib/relations.js b/packages/strapi-hook-bookshelf/lib/relations.js index e22b8418d1..550c928b23 100644 --- a/packages/strapi-hook-bookshelf/lib/relations.js +++ b/packages/strapi-hook-bookshelf/lib/relations.js @@ -302,7 +302,7 @@ module.exports = { }, addRelation: async function (params) { - const association = this.associations.find(x => x.via === params.foreignKey); + const association = this.associations.find(x => x.via === params.foreignKey && _.get(params.values, x.alias, null)); if (!association) { // Resolve silently. @@ -325,7 +325,7 @@ module.exports = { }, removeRelation: async function (params) { - const association = this.associations.find(x => x.via === params.foreignKey); + const association = this.associations.find(x => x.via === params.foreignKey && _.get(params.values, x.alias, null)); if (!association) { // Resolve silently. From 5128157c8f7a97b15056ca655f9d7b2d11f230cb Mon Sep 17 00:00:00 2001 From: Anthony Guimard Date: Wed, 19 Sep 2018 02:41:31 -0400 Subject: [PATCH 16/22] Fix drag drop image not saved in WYSIWYG. In order to fix this issue we have to invoke the sendData method just before updating the state of the WYSIWYG otherwhise the sendData method is not triggered because currentState === updatedState. --- .../admin/src/components/Wysiwyg/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Wysiwyg/index.js b/packages/strapi-plugin-content-manager/admin/src/components/Wysiwyg/index.js index eeead5e30c..e279108efa 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Wysiwyg/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/Wysiwyg/index.js @@ -627,8 +627,8 @@ class Wysiwyg extends React.Component { newEditorState = EditorState.push(newEditorState, newContentState); const updatedSelection = updateSelection(this.getSelection(), nextBlocks, 2); - this.setState({ editorState: EditorState.acceptSelection(newEditorState, updatedSelection) }); this.sendData(newEditorState); + this.setState({ editorState: EditorState.acceptSelection(newEditorState, updatedSelection) }); }) .catch(() => { this.setState({ editorState: EditorState.undo(this.getEditorState()) }); From 0e164d6da820c6bc4328062c368ddd626e056cee Mon Sep 17 00:00:00 2001 From: Alberto Maturano Date: Wed, 19 Sep 2018 18:11:22 -0500 Subject: [PATCH 17/22] Don't parse npm scripts for dynamic config Fix the fix merged with #1575 The original patch was done over a block of code moved on #1667 resulting in re-introducing code that now is not invoqued and continue with the bug reported on #916. This patch take the original changes and put them in the current correct place. --- .../strapi-utils/lib/templateConfiguration.js | 11 +++++--- packages/strapi/lib/core/configurations.js | 25 ------------------- 2 files changed, 8 insertions(+), 28 deletions(-) mode change 100755 => 100644 packages/strapi/lib/core/configurations.js diff --git a/packages/strapi-utils/lib/templateConfiguration.js b/packages/strapi-utils/lib/templateConfiguration.js index 810a7352a8..b2e7aadd8c 100644 --- a/packages/strapi-utils/lib/templateConfiguration.js +++ b/packages/strapi-utils/lib/templateConfiguration.js @@ -1,17 +1,22 @@ const { isString, isPlainObject } = require('lodash'); const regex = /\$\{[^()]*\}/g; +const excludeConfigPaths = ['info.scripts']; /** * Allow dynamic config values through the native ES6 template string function. */ -const templateConfiguration = (obj) => { +const templateConfiguration = (obj, configPath = '') => { // Allow values which looks like such as an ES6 literal string without parenthesis inside (aka function call). + // Exclude config with conflicting syntax (e.g. npm scripts). return Object.keys(obj).reduce((acc, key) => { if (isPlainObject(obj[key]) && !isString(obj[key])) { - acc[key] = templateConfiguration(obj[key]); + acc[key] = templateConfiguration(obj[key], `${configPath}.${key}`); - } else if (isString(obj[key]) && obj[key].match(regex) !== null) { + } else if (isString(obj[key]) + && !excludeConfigPaths.includes(configPath.substr(1)) + && obj[key].match(regex) !== null + ) { // eslint-disable-next-line prefer-template acc[key] = eval('`' + obj[key] + '`'); diff --git a/packages/strapi/lib/core/configurations.js b/packages/strapi/lib/core/configurations.js old mode 100755 new mode 100644 index 98bb8a5ef1..0e046de1bc --- a/packages/strapi/lib/core/configurations.js +++ b/packages/strapi/lib/core/configurations.js @@ -382,31 +382,6 @@ const enableHookNestedDependencies = function (name, flattenHooksConfig, force = } }; -/** - * Allow dynamic config values through - * the native ES6 template string function. - */ -const regex = /\$\{[^()]*\}/g; -const excludeConfigPaths = ['info.scripts']; -const templateConfigurations = function (obj, configPath = '') { - // Allow values which looks like such as - // an ES6 literal string without parenthesis inside (aka function call). - // Exclude config with conflicting syntax (e.g. npm scripts). - return Object.keys(obj).reduce((acc, key) => { - if (isPlainObject(obj[key]) && !isString(obj[key])) { - acc[key] = templateConfigurations(obj[key], `${configPath}.${key}`); - } else if (isString(obj[key]) - && !excludeConfigPaths.includes(configPath.substr(1)) - && obj[key].match(regex) !== null) { - acc[key] = eval('`' + obj[key] + '`'); // eslint-disable-line prefer-template - } else { - acc[key] = obj[key]; - } - - return acc; - }, {}); -}; - const isAdminInDevMode = function () { try { fs.accessSync(path.resolve(this.config.appPath, 'admin', 'admin', 'build', 'index.html'), fs.constants.R_OK | fs.constants.W_OK); From d1427cb6c88f083a0b69c950699d2eccdba11eb6 Mon Sep 17 00:00:00 2001 From: Tarun Thakurani Date: Sat, 22 Sep 2018 18:45:49 +0530 Subject: [PATCH 18/22] [#932] fixed Setting user with numeric password fails --- packages/strapi-plugin-users-permissions/services/User.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-users-permissions/services/User.js b/packages/strapi-plugin-users-permissions/services/User.js index ae5f09a966..6fe8ea83bd 100644 --- a/packages/strapi-plugin-users-permissions/services/User.js +++ b/packages/strapi-plugin-users-permissions/services/User.js @@ -82,7 +82,7 @@ module.exports = { if (!user.password || this.isHashed(user.password)) { resolve(null); } else { - bcrypt.hash(user.password, 10, (err, hash) => { + bcrypt.hash(`${user.password}`, 10, (err, hash) => { resolve(hash); }); } From 154fc28a57df411c2e74d5257172ed8df3e1d261 Mon Sep 17 00:00:00 2001 From: Alberto Maturano Date: Fri, 21 Sep 2018 15:19:18 -0500 Subject: [PATCH 19/22] Normalize to standar file permissions As a result of taking a look on PR #1967 I realized there is 819 executable files in this repository. It is obvious this is an error. --- .editorconfig | 0 .eslintignore | 0 .eslintrc | 0 .gitattributes | 0 .gitignore | 0 .travis.yml | 0 LICENSE.md | 0 Makefile | 0 README.md | 0 docs/1.x.x/en/admin.md | 0 docs/1.x.x/en/blueprints.md | 0 docs/1.x.x/en/cli.md | 0 docs/1.x.x/en/configuration.md | 0 docs/1.x.x/en/context.md | 0 docs/1.x.x/en/customization.md | 0 docs/1.x.x/en/email.md | 0 docs/1.x.x/en/graphql.md | 0 docs/1.x.x/en/internationalization.md | 0 docs/1.x.x/en/introduction.md | 0 docs/1.x.x/en/logging.md | 0 docs/1.x.x/en/models.md | 0 docs/1.x.x/en/queries.md | 0 docs/1.x.x/en/request.md | 0 docs/1.x.x/en/response.md | 0 docs/1.x.x/en/router.md | 0 docs/1.x.x/en/services.md | 0 docs/1.x.x/en/sessions.md | 0 docs/1.x.x/en/testing.md | 0 docs/1.x.x/en/upload.md | 0 docs/1.x.x/en/users.md | 0 docs/1.x.x/en/views.md | 0 lerna.json | 0 mkdocs.yml | 0 package.json | 0 packages/README.md | 0 packages/strapi-admin/.editorconfig | 0 packages/strapi-admin/.npmignore | 0 packages/strapi-admin/LICENSE.md | 0 packages/strapi-admin/README.md | 0 packages/strapi-admin/admin/src/app.js | 0 .../admin/src/assets/icons/icon_content-manager.svg | 0 .../src/assets/icons/icon_content-type-builder.svg | 0 .../src/assets/icons/icon_settings-manager.svg | 0 .../admin/src/assets/icons/icon_success.svg | 0 .../admin/src/components/Header/index.js | 0 .../admin/src/components/Header/styles.scss | 0 .../admin/src/components/LeftMenuFooter/index.js | 0 .../src/components/LeftMenuFooter/messages.json | 0 .../admin/src/components/LeftMenuFooter/styles.scss | 0 .../admin/src/components/LeftMenuHeader/index.js | 0 .../admin/src/components/LeftMenuHeader/styles.scss | 0 .../admin/src/components/LeftMenuLink/index.js | 0 .../admin/src/components/LeftMenuLink/styles.scss | 0 .../src/components/LeftMenuLinkContainer/index.js | 0 .../components/LeftMenuLinkContainer/styles.scss | 0 .../admin/src/components/Notification/index.js | 0 .../src/components/NotificationsContainer/index.js | 0 .../components/NotificationsContainer/styles.scss | 0 .../admin/src/containers/AdminPage/styles.scss | 0 .../admin/src/containers/App/actions.js | 0 .../admin/src/containers/App/constants.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/styles.scss | 0 .../admin/src/containers/ComingSoonPage/index.js | 0 .../admin/src/containers/ComingSoonPage/styles.scss | 0 .../admin/src/containers/Content/index.js | 0 .../admin/src/containers/Content/styles.scss | 0 .../src/containers/LanguageProvider/actions.js | 0 .../src/containers/LanguageProvider/constants.js | 0 .../admin/src/containers/LanguageProvider/index.js | 0 .../src/containers/LanguageProvider/selectors.js | 0 .../admin/src/containers/LeftMenu/index.js | 0 .../admin/src/containers/LeftMenu/styles.scss | 0 .../admin/src/containers/LocaleToggle/index.js | 0 .../admin/src/containers/LocaleToggle/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/containers/NotFoundPage/messages.json | 0 .../admin/src/containers/NotFoundPage/styles.scss | 0 .../src/containers/NotificationProvider/actions.js | 0 .../containers/NotificationProvider/constants.js | 0 .../src/containers/NotificationProvider/reducer.js | 0 .../containers/NotificationProvider/selectors.js | 0 .../admin/src/containers/PluginPage/index.js | 0 packages/strapi-admin/admin/src/i18n.js | 0 packages/strapi-admin/admin/src/index.html | 0 packages/strapi-admin/admin/src/reducers.js | 0 packages/strapi-admin/admin/src/store.js | 0 .../admin/src/styles/base/animations.scss | 0 .../strapi-admin/admin/src/styles/base/fonts.scss | 0 .../strapi-admin/admin/src/styles/base/helpers.scss | 0 .../bootstrap/glyphicons-halflings-regular.eot | Bin .../bootstrap/glyphicons-halflings-regular.svg | 0 .../bootstrap/glyphicons-halflings-regular.ttf | Bin .../bootstrap/glyphicons-halflings-regular.woff | Bin .../bootstrap/glyphicons-halflings-regular.woff2 | Bin .../src/styles/fonts/fontawesome/FontAwesome.otf | Bin .../fonts/fontawesome/fontawesome-webfont.eot | Bin .../fonts/fontawesome/fontawesome-webfont.svg | 0 .../fonts/fontawesome/fontawesome-webfont.ttf | Bin .../fonts/fontawesome/fontawesome-webfont.woff | Bin .../fonts/fontawesome/fontawesome-webfont.woff2 | Bin .../lato/lato-black-italic/lato-black-italic.woff | Bin .../lato/lato-black-italic/lato-black-italic.woff2 | Bin .../styles/fonts/lato/lato-black/lato-black.woff | Bin .../styles/fonts/lato/lato-black/lato-black.woff2 | Bin .../lato/lato-bold-italic/lato-bold-italic.woff | Bin .../lato/lato-bold-italic/lato-bold-italic.woff2 | Bin .../src/styles/fonts/lato/lato-bold/lato-bold.woff | Bin .../src/styles/fonts/lato/lato-bold/lato-bold.woff2 | Bin .../lato-hairline-italic/lato-hairline-italic.woff | Bin .../lato-hairline-italic/lato-hairline-italic.woff2 | Bin .../fonts/lato/lato-hairline/lato-hairline.woff | Bin .../fonts/lato/lato-hairline/lato-hairline.woff2 | Bin .../lato/lato-heavy-italic/lato-heavy-italic.woff | Bin .../lato/lato-heavy-italic/lato-heavy-italic.woff2 | Bin .../styles/fonts/lato/lato-heavy/lato-heavy.woff | Bin .../styles/fonts/lato/lato-heavy/lato-heavy.woff2 | Bin .../lato/lato-light-italic/lato-light-italic.woff | Bin .../lato/lato-light-italic/lato-light-italic.woff2 | Bin .../styles/fonts/lato/lato-light/lato-light.woff | Bin .../styles/fonts/lato/lato-light/lato-light.woff2 | Bin .../lato/lato-medium-italic/lato-medium-italic.woff | Bin .../lato-medium-italic/lato-medium-italic.woff2 | Bin .../styles/fonts/lato/lato-medium/lato-medium.woff | Bin .../styles/fonts/lato/lato-medium/lato-medium.woff2 | Bin .../lato/lato-normal-italic/lato-normal-italic.woff | Bin .../lato-normal-italic/lato-normal-italic.woff2 | Bin .../styles/fonts/lato/lato-normal/lato-normal.woff | Bin .../styles/fonts/lato/lato-normal/lato-normal.woff2 | Bin .../lato-semibold-italic/lato-semibold-italic.woff | Bin .../lato-semibold-italic/lato-semibold-italic.woff2 | Bin .../fonts/lato/lato-semibold/lato-semibold.woff | Bin .../fonts/lato/lato-semibold/lato-semibold.woff2 | Bin .../lato/lato-thin-italic/lato-thin-italic.woff | Bin .../lato/lato-thin-italic/lato-thin-italic.woff2 | Bin .../src/styles/fonts/lato/lato-thin/lato-thin.woff | Bin .../src/styles/fonts/lato/lato-thin/lato-thin.woff2 | Bin .../admin/src/styles/libs/bootstrap/_alert.scss | 0 .../admin/src/styles/libs/bootstrap/_badge.scss | 0 .../src/styles/libs/bootstrap/_breadcrumb.scss | 0 .../src/styles/libs/bootstrap/_button-group.scss | 0 .../admin/src/styles/libs/bootstrap/_buttons.scss | 0 .../admin/src/styles/libs/bootstrap/_card.scss | 0 .../admin/src/styles/libs/bootstrap/_carousel.scss | 0 .../admin/src/styles/libs/bootstrap/_close.scss | 0 .../admin/src/styles/libs/bootstrap/_code.scss | 0 .../src/styles/libs/bootstrap/_custom-forms.scss | 0 .../admin/src/styles/libs/bootstrap/_dropdown.scss | 0 .../admin/src/styles/libs/bootstrap/_forms.scss | 0 .../admin/src/styles/libs/bootstrap/_functions.scss | 0 .../admin/src/styles/libs/bootstrap/_grid.scss | 0 .../admin/src/styles/libs/bootstrap/_images.scss | 0 .../src/styles/libs/bootstrap/_input-group.scss | 0 .../admin/src/styles/libs/bootstrap/_jumbotron.scss | 0 .../src/styles/libs/bootstrap/_list-group.scss | 0 .../admin/src/styles/libs/bootstrap/_media.scss | 0 .../admin/src/styles/libs/bootstrap/_mixins.scss | 0 .../admin/src/styles/libs/bootstrap/_modal.scss | 0 .../admin/src/styles/libs/bootstrap/_nav.scss | 0 .../admin/src/styles/libs/bootstrap/_navbar.scss | 0 .../src/styles/libs/bootstrap/_pagination.scss | 0 .../admin/src/styles/libs/bootstrap/_popover.scss | 0 .../admin/src/styles/libs/bootstrap/_print.scss | 0 .../admin/src/styles/libs/bootstrap/_progress.scss | 0 .../admin/src/styles/libs/bootstrap/_reboot.scss | 0 .../admin/src/styles/libs/bootstrap/_tables.scss | 0 .../admin/src/styles/libs/bootstrap/_tooltip.scss | 0 .../src/styles/libs/bootstrap/_transitions.scss | 0 .../admin/src/styles/libs/bootstrap/_type.scss | 0 .../admin/src/styles/libs/bootstrap/_utilities.scss | 0 .../admin/src/styles/libs/bootstrap/_variables.scss | 0 .../src/styles/libs/bootstrap/bootstrap-grid.scss | 0 .../src/styles/libs/bootstrap/bootstrap-reboot.scss | 0 .../admin/src/styles/libs/bootstrap/bootstrap.scss | 0 .../src/styles/libs/bootstrap/mixins/_alert.scss | 0 .../libs/bootstrap/mixins/_background-variant.scss | 0 .../src/styles/libs/bootstrap/mixins/_badge.scss | 0 .../libs/bootstrap/mixins/_border-radius.scss | 0 .../styles/libs/bootstrap/mixins/_box-shadow.scss | 0 .../styles/libs/bootstrap/mixins/_breakpoints.scss | 0 .../src/styles/libs/bootstrap/mixins/_buttons.scss | 0 .../src/styles/libs/bootstrap/mixins/_clearfix.scss | 0 .../src/styles/libs/bootstrap/mixins/_float.scss | 0 .../src/styles/libs/bootstrap/mixins/_forms.scss | 0 .../styles/libs/bootstrap/mixins/_gradients.scss | 0 .../libs/bootstrap/mixins/_grid-framework.scss | 0 .../src/styles/libs/bootstrap/mixins/_grid.scss | 0 .../src/styles/libs/bootstrap/mixins/_hover.scss | 0 .../src/styles/libs/bootstrap/mixins/_image.scss | 0 .../styles/libs/bootstrap/mixins/_list-group.scss | 0 .../src/styles/libs/bootstrap/mixins/_lists.scss | 0 .../styles/libs/bootstrap/mixins/_nav-divider.scss | 0 .../styles/libs/bootstrap/mixins/_navbar-align.scss | 0 .../styles/libs/bootstrap/mixins/_pagination.scss | 0 .../styles/libs/bootstrap/mixins/_reset-text.scss | 0 .../src/styles/libs/bootstrap/mixins/_resize.scss | 0 .../libs/bootstrap/mixins/_screen-reader.scss | 0 .../src/styles/libs/bootstrap/mixins/_size.scss | 0 .../styles/libs/bootstrap/mixins/_table-row.scss | 0 .../libs/bootstrap/mixins/_text-emphasis.scss | 0 .../styles/libs/bootstrap/mixins/_text-hide.scss | 0 .../libs/bootstrap/mixins/_text-truncate.scss | 0 .../styles/libs/bootstrap/mixins/_transition.scss | 0 .../styles/libs/bootstrap/mixins/_visibility.scss | 0 .../src/styles/libs/bootstrap/utilities/_align.scss | 0 .../libs/bootstrap/utilities/_background.scss | 0 .../styles/libs/bootstrap/utilities/_borders.scss | 0 .../styles/libs/bootstrap/utilities/_clearfix.scss | 0 .../styles/libs/bootstrap/utilities/_display.scss | 0 .../src/styles/libs/bootstrap/utilities/_embed.scss | 0 .../src/styles/libs/bootstrap/utilities/_flex.scss | 0 .../src/styles/libs/bootstrap/utilities/_float.scss | 0 .../styles/libs/bootstrap/utilities/_position.scss | 0 .../libs/bootstrap/utilities/_screenreaders.scss | 0 .../styles/libs/bootstrap/utilities/_sizing.scss | 0 .../styles/libs/bootstrap/utilities/_spacing.scss | 0 .../src/styles/libs/bootstrap/utilities/_text.scss | 0 .../libs/bootstrap/utilities/_visibility.scss | 0 .../src/styles/libs/fontawesome/_fontawesome.scss | 0 packages/strapi-admin/admin/src/styles/main.scss | 0 .../src/styles/variables/variables.bootstrap.scss | 0 .../admin/src/styles/variables/variables.scss | 0 .../strapi-admin/admin/src/translations/en.json | 0 .../strapi-admin/admin/src/translations/fr.json | 0 .../strapi-admin/admin/src/translations/tr.json | 0 .../strapi-admin/admin/src/translations/zh.json | 0 packages/strapi-admin/config/routes.json | 0 packages/strapi-admin/controllers/Admin.js | 0 packages/strapi-admin/package.json | 0 packages/strapi-generate-admin/.editorconfig | 0 packages/strapi-generate-admin/.gitignore | 0 packages/strapi-generate-admin/.npmignore | 0 packages/strapi-generate-admin/LICENSE.md | 0 packages/strapi-generate-admin/README.md | 0 packages/strapi-generate-admin/lib/after.js | 0 packages/strapi-generate-admin/lib/before.js | 0 packages/strapi-generate-admin/lib/index.js | 0 packages/strapi-generate-admin/package.json | 0 packages/strapi-generate-api/.editorconfig | 0 packages/strapi-generate-api/.gitignore | 0 packages/strapi-generate-api/.npmignore | 0 packages/strapi-generate-api/LICENSE.md | 0 packages/strapi-generate-api/README.md | 0 packages/strapi-generate-api/json/routes.json.js | 0 packages/strapi-generate-api/lib/before.js | 0 packages/strapi-generate-api/lib/index.js | 0 packages/strapi-generate-api/package.json | 0 .../templates/attribute.template | 0 .../templates/bookshelf/controller.template | 0 .../templates/bookshelf/model.settings.template | 0 .../templates/bookshelf/model.template | 0 .../templates/bookshelf/service.template | 0 .../templates/mongoose/controller.template | 0 .../templates/mongoose/model.settings.template | 0 .../templates/mongoose/model.template | 0 .../templates/mongoose/service.template | 0 packages/strapi-generate-controller/.editorconfig | 0 packages/strapi-generate-controller/.gitignore | 0 packages/strapi-generate-controller/.npmignore | 0 packages/strapi-generate-controller/LICENSE.md | 0 packages/strapi-generate-controller/README.md | 0 packages/strapi-generate-controller/lib/before.js | 0 packages/strapi-generate-controller/lib/index.js | 0 packages/strapi-generate-controller/package.json | 0 .../templates/bookshelf/controller.template | 0 .../templates/mongoose/controller.template | 0 packages/strapi-generate-model/.editorconfig | 0 packages/strapi-generate-model/.gitignore | 0 packages/strapi-generate-model/.npmignore | 0 packages/strapi-generate-model/LICENSE.md | 0 packages/strapi-generate-model/README.md | 0 packages/strapi-generate-model/lib/before.js | 0 packages/strapi-generate-model/lib/index.js | 0 packages/strapi-generate-model/package.json | 0 .../templates/attribute.template | 0 .../templates/bookshelf/model.settings.template | 0 .../templates/bookshelf/model.template | 0 .../templates/mongoose/model.settings.template | 0 .../templates/mongoose/model.template | 0 packages/strapi-generate-new/.editorconfig | 0 packages/strapi-generate-new/.gitignore | 0 packages/strapi-generate-new/.npmignore | 0 packages/strapi-generate-new/LICENSE.md | 0 packages/strapi-generate-new/README.md | 0 packages/strapi-generate-new/files/.eslintignore | 0 packages/strapi-generate-new/files/.eslintrc | 0 .../files/config/application.json | 0 .../strapi-generate-new/files/config/custom.json | 0 .../config/environments/development/custom.json | 0 .../config/environments/development/request.json | 0 .../config/environments/development/response.json | 0 .../config/environments/development/security.json | 0 .../config/environments/development/server.json | 0 .../config/environments/production/custom.json | 0 .../config/environments/production/database.json | 0 .../config/environments/production/request.json | 0 .../config/environments/production/response.json | 0 .../config/environments/production/security.json | 0 .../config/environments/production/server.json | 0 .../files/config/environments/staging/custom.json | 0 .../files/config/environments/staging/database.json | 0 .../files/config/environments/staging/request.json | 0 .../files/config/environments/staging/response.json | 0 .../files/config/environments/staging/security.json | 0 .../files/config/environments/staging/server.json | 0 .../files/config/functions/bootstrap.js | 0 .../files/config/functions/cron.js | 0 .../files/config/functions/responses/404.js | 0 packages/strapi-generate-new/files/config/hook.json | 0 .../strapi-generate-new/files/config/language.json | 0 .../files/config/locales/de_DE.json | 0 .../files/config/locales/en_US.json | 0 .../files/config/locales/es_ES.json | 0 .../files/config/locales/fr_FR.json | 0 .../files/config/locales/it_IT.json | 0 .../files/config/locales/ja_JP.json | 0 .../files/config/locales/tr_TR.json | 0 .../files/config/middleware.json | 0 packages/strapi-generate-new/files/favicon.ico | Bin .../strapi-generate-new/files/public/index.html | 0 .../strapi-generate-new/files/public/robots.txt | 0 packages/strapi-generate-new/files/server.js | 0 packages/strapi-generate-new/json/package.json.js | 0 packages/strapi-generate-new/lib/after.js | 0 packages/strapi-generate-new/lib/before.js | 0 packages/strapi-generate-new/lib/index.js | 0 packages/strapi-generate-new/package.json | 0 packages/strapi-generate-new/templates/README.md | 0 packages/strapi-generate-new/templates/editorconfig | 0 packages/strapi-generate-new/templates/gitignore | 0 packages/strapi-generate-new/templates/npmignore | 0 packages/strapi-generate-plugin/.editorconfig | 0 packages/strapi-generate-plugin/.gitignore | 0 packages/strapi-generate-plugin/.npmignore | 0 packages/strapi-generate-plugin/LICENSE.md | 0 packages/strapi-generate-plugin/README.md | 0 packages/strapi-generate-plugin/files/.editorconfig | 0 .../strapi-generate-plugin/files/.gitattributes | 0 packages/strapi-generate-plugin/files/README.md | 0 .../files/admin/src/containers/App/actions.js | 0 .../files/admin/src/containers/App/constants.js | 0 .../files/admin/src/containers/App/index.js | 0 .../files/admin/src/containers/App/reducer.js | 0 .../files/admin/src/containers/App/selectors.js | 0 .../files/admin/src/containers/HomePage/actions.js | 0 .../admin/src/containers/HomePage/constants.js | 0 .../files/admin/src/containers/HomePage/index.js | 0 .../files/admin/src/containers/HomePage/reducer.js | 0 .../files/admin/src/containers/HomePage/saga.js | 0 .../admin/src/containers/HomePage/selectors.js | 0 .../files/admin/src/containers/HomePage/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../files/admin/src/translations/en.json | 0 .../files/admin/src/translations/es.json | 0 .../files/admin/src/translations/fr.json | 0 .../strapi-generate-plugin/json/package.json.js | 0 packages/strapi-generate-plugin/json/routes.json.js | 0 packages/strapi-generate-plugin/lib/before.js | 0 packages/strapi-generate-plugin/lib/index.js | 0 packages/strapi-generate-plugin/package.json | 0 .../templates/controller.template | 0 .../templates/service.template | 0 packages/strapi-generate-policy/.editorconfig | 0 packages/strapi-generate-policy/.gitignore | 0 packages/strapi-generate-policy/.npmignore | 0 packages/strapi-generate-policy/LICENSE.md | 0 packages/strapi-generate-policy/README.md | 0 packages/strapi-generate-policy/lib/before.js | 0 packages/strapi-generate-policy/lib/index.js | 0 packages/strapi-generate-policy/package.json | 0 .../templates/policy.template | 0 packages/strapi-generate-service/.editorconfig | 0 packages/strapi-generate-service/.gitignore | 0 packages/strapi-generate-service/.npmignore | 0 packages/strapi-generate-service/LICENSE.md | 0 packages/strapi-generate-service/README.md | 0 packages/strapi-generate-service/lib/before.js | 0 packages/strapi-generate-service/lib/index.js | 0 packages/strapi-generate-service/package.json | 0 .../templates/bookshelf/service.template | 0 .../templates/mongoose/service.template | 0 packages/strapi-generate/.editorconfig | 0 packages/strapi-generate/.gitignore | 0 packages/strapi-generate/.npmignore | 0 packages/strapi-generate/LICENSE.md | 0 packages/strapi-generate/README.md | 0 packages/strapi-generate/lib/generate.js | 0 packages/strapi-generate/lib/helpers/copy/index.js | 0 packages/strapi-generate/lib/helpers/file/index.js | 0 .../strapi-generate/lib/helpers/folder/index.js | 0 .../strapi-generate/lib/helpers/jsonfile/index.js | 0 .../strapi-generate/lib/helpers/template/index.js | 0 packages/strapi-generate/lib/index.js | 0 packages/strapi-generate/lib/target.js | 0 packages/strapi-generate/lib/util.js | 0 packages/strapi-generate/package.json | 0 packages/strapi-helper-plugin/.gitignore | 0 packages/strapi-helper-plugin/README.md | 0 .../strapi-helper-plugin/lib/internals/config.js | 0 .../lib/internals/eslint/.eslintrc.json | 0 .../lib/internals/eslint/eslint-config.js | 0 .../lib/internals/generators/component/es6.js.hbs | 0 .../lib/internals/generators/component/index.js | 0 .../internals/generators/component/messages.js.hbs | 0 .../internals/generators/component/stateless.js.hbs | 0 .../internals/generators/component/styles.scss.hbs | 0 .../lib/internals/generators/component/test.js.hbs | 0 .../internals/generators/container/actions.js.hbs | 0 .../generators/container/actions.test.js.hbs | 0 .../internals/generators/container/constants.js.hbs | 0 .../lib/internals/generators/container/index.js | 0 .../lib/internals/generators/container/index.js.hbs | 0 .../internals/generators/container/messages.js.hbs | 0 .../internals/generators/container/reducer.js.hbs | 0 .../generators/container/reducer.test.js.hbs | 0 .../internals/generators/container/saga.test.js.hbs | 0 .../lib/internals/generators/container/sagas.js.hbs | 0 .../internals/generators/container/selectors.js.hbs | 0 .../generators/container/selectors.test.js.hbs | 0 .../internals/generators/container/styles.scss.hbs | 0 .../lib/internals/generators/container/test.js.hbs | 0 .../lib/internals/generators/index.js | 0 .../generators/language/add-locale-data.hbs | 0 .../internals/generators/language/app-locale.hbs | 0 .../language/format-translation-messages.hbs | 0 .../lib/internals/generators/language/index.js | 0 .../generators/language/intl-locale-data.hbs | 0 .../generators/language/polyfill-intl-locale.hbs | 0 .../generators/language/translation-messages.hbs | 0 .../generators/language/translations-json.hbs | 0 .../lib/internals/generators/route/index.js | 0 .../lib/internals/generators/route/route.hbs | 0 .../internals/generators/route/routeWithReducer.hbs | 0 .../internals/generators/utils/componentExists.js | 0 .../lib/internals/postcss/postcss.config.js | 0 .../lib/internals/scripts/analyze.js | 0 .../lib/internals/scripts/dependencies.js | 0 .../lib/internals/scripts/helpers/checkmark.js | 0 .../lib/internals/scripts/helpers/progress.js | 0 .../lib/internals/scripts/npmcheckversion.js | 0 .../lib/internals/webpack/webpack.base.babel.js | 0 .../lib/internals/webpack/webpack.dev.babel.js | 0 .../lib/internals/webpack/webpack.dll.babel.js | 0 .../lib/internals/webpack/webpack.prod.babel.js | 0 .../lib/internals/webpack/webpack.test.babel.js | 0 packages/strapi-helper-plugin/lib/server/index.js | 0 packages/strapi-helper-plugin/lib/server/logger.js | 0 .../lib/server/middlewares/frontendMiddleware.js | 0 packages/strapi-helper-plugin/lib/src/app.js | 0 .../lib/src/assets/icons/icon_barred.svg | 0 .../lib/src/assets/icons/icon_bold.svg | 0 .../lib/src/assets/icons/icon_bullet-list.svg | 0 .../lib/src/assets/icons/icon_code-block.svg | 0 .../lib/src/assets/icons/icon_danger.svg | 0 .../lib/src/assets/icons/icon_flag_not_found.svg | 0 .../lib/src/assets/icons/icon_info.svg | 0 .../lib/src/assets/icons/icon_italic.svg | 0 .../lib/src/assets/icons/icon_link.svg | 0 .../lib/src/assets/icons/icon_media.svg | 0 .../lib/src/assets/icons/icon_numbered-list.svg | 0 .../lib/src/assets/icons/icon_quote-block.svg | 0 .../lib/src/assets/icons/icon_success.svg | 0 .../lib/src/assets/icons/icon_underline.svg | 0 .../lib/src/assets/icons/icon_warning.svg | 0 .../lib/src/assets/images/icon_boolean.svg | 0 .../lib/src/assets/images/icon_date.svg | 0 .../lib/src/assets/images/icon_image.svg | 0 .../lib/src/assets/images/icon_json.svg | 0 .../lib/src/assets/images/icon_relation.svg | 0 .../lib/src/assets/images/icon_string.svg | 0 .../lib/src/assets/images/icon_text.svg | 0 .../lib/src/components/Button/index.js | 0 .../lib/src/components/Button/styles.scss | 0 .../lib/src/components/PluginHeader/index.js | 0 .../lib/src/components/PluginHeaderActions/index.js | 0 .../src/components/PluginHeaderActions/styles.scss | 0 .../lib/src/components/PluginHeaderTitle/index.js | 0 .../src/components/PluginHeaderTitle/styles.scss | 0 packages/strapi-helper-plugin/lib/src/i18n.js | 0 packages/strapi-helper-plugin/lib/src/reducers.js | 0 packages/strapi-helper-plugin/lib/src/routes.js | 0 packages/strapi-helper-plugin/lib/src/store.js | 0 .../lib/src/utils/asyncInjectors.js | 0 .../strapi-helper-plugin/lib/src/utils/request.js | 0 packages/strapi-helper-plugin/package.json | 0 packages/strapi-hook-bookshelf/.gitignore | 0 packages/strapi-hook-bookshelf/.npmignore | 0 packages/strapi-hook-bookshelf/LICENSE.md | 0 packages/strapi-hook-bookshelf/README.md | 0 packages/strapi-hook-bookshelf/lib/index.js | 0 packages/strapi-hook-bookshelf/lib/utils/graphql.js | 0 packages/strapi-hook-bookshelf/lib/utils/index.js | 0 packages/strapi-hook-bookshelf/package.json | 0 packages/strapi-hook-ejs/.editorconfig | 0 packages/strapi-hook-ejs/.gitignore | 0 packages/strapi-hook-ejs/.npmignore | 0 packages/strapi-hook-ejs/LICENSE.md | 0 packages/strapi-hook-ejs/README.md | 0 packages/strapi-hook-ejs/lib/index.js | 0 packages/strapi-hook-ejs/package.json | 0 packages/strapi-hook-knex/.editorconfig | 0 packages/strapi-hook-knex/.gitignore | 0 packages/strapi-hook-knex/.npmignore | 0 packages/strapi-hook-knex/LICENSE.md | 0 packages/strapi-hook-knex/README.md | 0 packages/strapi-hook-knex/lib/index.js | 0 packages/strapi-hook-knex/package.json | 0 packages/strapi-hook-mongoose/.editorconfig | 0 packages/strapi-hook-mongoose/.gitignore | 0 packages/strapi-hook-mongoose/.npmignore | 0 packages/strapi-hook-mongoose/LICENSE.md | 0 packages/strapi-hook-mongoose/README.md | 0 packages/strapi-hook-mongoose/lib/index.js | 0 packages/strapi-hook-mongoose/lib/utils/index.js | 0 packages/strapi-hook-mongoose/package.json | 0 packages/strapi-hook-redis/.editorconfig | 0 packages/strapi-hook-redis/.gitignore | 0 packages/strapi-hook-redis/.npmignore | 0 packages/strapi-hook-redis/LICENSE.md | 0 packages/strapi-hook-redis/README.md | 0 packages/strapi-hook-redis/lib/index.js | 0 packages/strapi-hook-redis/package.json | 0 packages/strapi-middleware-views/.editorconfig | 0 packages/strapi-middleware-views/.gitignore | 0 packages/strapi-middleware-views/.npmignore | 0 packages/strapi-middleware-views/LICENSE.md | 0 packages/strapi-middleware-views/README.md | 0 packages/strapi-middleware-views/lib/index.js | 0 packages/strapi-middleware-views/package.json | 0 .../strapi-plugin-content-manager/.editorconfig | 0 .../strapi-plugin-content-manager/.gitattributes | 0 packages/strapi-plugin-content-manager/.gitignore | 0 packages/strapi-plugin-content-manager/.npmignore | 0 packages/strapi-plugin-content-manager/README.md | 0 .../strapi-plugin-content-manager/admin/.npmignore | 0 .../admin/src/assets/icons/icon_barred.svg | 0 .../admin/src/assets/icons/icon_bold.svg | 0 .../admin/src/assets/icons/icon_bullet-list.svg | 0 .../admin/src/assets/icons/icon_code-block.svg | 0 .../admin/src/assets/icons/icon_italic.svg | 0 .../admin/src/assets/icons/icon_link.svg | 0 .../admin/src/assets/icons/icon_media.svg | 0 .../admin/src/assets/icons/icon_numbered-list.svg | 0 .../admin/src/assets/icons/icon_quote-block.svg | 0 .../admin/src/assets/icons/icon_underline.svg | 0 .../admin/src/components/Table/index.js | 0 .../admin/src/components/Table/styles.scss | 0 .../admin/src/components/TableHeader/index.js | 0 .../admin/src/components/TableHeader/styles.scss | 0 .../admin/src/components/TableRow/index.js | 0 .../admin/src/components/TableRow/styles.scss | 0 .../admin/src/containers/App/actions.js | 0 .../admin/src/containers/App/constants.js | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/sagas.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/Home/index.js | 0 .../admin/src/containers/Home/messages.json | 0 .../admin/src/containers/Home/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/containers/NotFoundPage/messages.js | 0 .../admin/src/routes.json | 0 .../admin/src/styles/main.scss | 0 .../src/styles/variables/variables.bootstrap.scss | 0 .../admin/src/styles/variables/variables.scss | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/tr.json | 0 .../admin/src/translations/zh.json | 0 .../admin/src/utils/schema.js | 0 .../strapi-plugin-content-manager/config/admin.json | 0 .../config/queries/bookshelf.js | 0 .../config/queries/mongoose.js | 0 .../config/routes.json | 0 .../controllers/ContentManager.js | 0 packages/strapi-plugin-content-manager/package.json | 0 .../.editorconfig | 0 .../.gitattributes | 0 .../strapi-plugin-content-type-builder/.gitignore | 0 .../strapi-plugin-content-type-builder/README.md | 0 .../admin/src/assets/icons/icon_danger.svg | 0 .../admin/src/assets/icons/icon_flag_not_found.svg | 0 .../admin/src/assets/icons/icon_info.svg | 0 .../admin/src/assets/icons/icon_success.svg | 0 .../admin/src/assets/icons/icon_warning.svg | 0 .../admin/src/containers/App/actions.js | 0 .../admin/src/containers/App/constants.js | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/sagas.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/routes.json | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/tr.json | 0 .../admin/src/translations/zh.json | 0 .../config/routes.json | 0 .../controllers/ContentTypeBuilder.js | 0 .../strapi-plugin-content-type-builder/package.json | 0 .../services/ContentTypeBuilder.js | 0 packages/strapi-plugin-email/.editorconfig | 0 packages/strapi-plugin-email/.gitattributes | 0 packages/strapi-plugin-email/.gitignore | 0 packages/strapi-plugin-email/README.md | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/translations/de.json | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/tr.json | 0 .../admin/src/translations/zh.json | 0 packages/strapi-plugin-graphql/.editorconfig | 0 packages/strapi-plugin-graphql/.gitattributes | 0 packages/strapi-plugin-graphql/README.md | 0 packages/strapi-plugin-settings-manager/.gitignore | 0 packages/strapi-plugin-settings-manager/.npmignore | 0 packages/strapi-plugin-settings-manager/README.md | 0 .../strapi-plugin-settings-manager/admin/.npmignore | 0 .../admin/src/assets/icons/icon_success.svg | 0 .../admin/src/assets/images/baseline-18.png | Bin .../admin/src/components/Button/index.js | 0 .../admin/src/components/Button/styles.scss | 0 .../admin/src/components/ContentHeader/index.js | 0 .../admin/src/components/ContentHeader/styles.scss | 0 .../admin/src/components/EditForm/index.js | 0 .../admin/src/components/EditForm/styles.scss | 0 .../admin/src/components/EditFormSection/index.js | 0 .../src/components/EditFormSectionNested/index.js | 0 .../admin/src/components/HeaderNav/index.js | 0 .../admin/src/components/HeaderNav/styles.scss | 0 .../admin/src/components/InputEnum/index.js | 0 .../admin/src/components/InputEnum/styles.scss | 0 .../admin/src/components/InputNumber/index.js | 0 .../admin/src/components/InputNumber/messages.js | 0 .../admin/src/components/InputSelect/index.js | 0 .../admin/src/components/InputSelect/styles.scss | 0 .../admin/src/components/InputText/index.js | 0 .../admin/src/components/InputText/messages.js | 0 .../admin/src/components/InputToggle/index.js | 0 .../admin/src/components/InputToggle/messages.js | 0 .../admin/src/components/InputToggle/styles.scss | 0 .../admin/src/components/List/index.js | 0 .../admin/src/components/List/styles.scss | 0 .../admin/src/components/PluginLeftMenu/index.js | 0 .../admin/src/components/PluginLeftMenu/styles.scss | 0 .../src/components/PluginLeftMenuLink/config.json | 0 .../src/components/PluginLeftMenuLink/index.js | 0 .../src/components/PluginLeftMenuLink/styles.scss | 0 .../src/components/PluginLeftMenuSection/index.js | 0 .../components/PluginLeftMenuSection/styles.scss | 0 .../admin/src/components/PopUpForm/index.js | 0 .../admin/src/components/PopUpForm/styles.scss | 0 .../src/components/WithFormSection/config.json | 0 .../admin/src/components/WithFormSection/index.js | 0 .../src/components/WithFormSection/styles.scss | 0 .../admin/src/components/WithInput/index.js | 0 .../admin/src/components/WithInput/styles.scss | 0 .../admin/src/containers/App/actions.js | 0 .../admin/src/containers/App/constants.js | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/sagas.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/App/styles.scss | 0 .../admin/src/containers/HomePage/actions.js | 0 .../admin/src/containers/HomePage/config.json | 0 .../admin/src/containers/HomePage/constants.js | 0 .../admin/src/containers/HomePage/index.js | 0 .../admin/src/containers/HomePage/reducer.js | 0 .../admin/src/containers/HomePage/sagas.js | 0 .../admin/src/containers/HomePage/selectors.js | 0 .../admin/src/containers/HomePage/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/containers/NotFoundPage/messages.js | 0 .../admin/src/routes.json | 0 .../admin/src/translations/de.json | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/tr.json | 0 .../admin/src/translations/zh.json | 0 .../config/routes.json | 0 .../controllers/SettingsManager.js | 0 .../strapi-plugin-settings-manager/package.json | 0 .../services/Languages.js | 0 .../services/SettingsManager.js | 0 packages/strapi-plugin-upload/.editorconfig | 0 packages/strapi-plugin-upload/.gitattributes | 0 packages/strapi-plugin-upload/README.md | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/HomePage/actions.js | 0 .../admin/src/containers/HomePage/constants.js | 0 .../admin/src/containers/HomePage/index.js | 0 .../admin/src/containers/HomePage/reducer.js | 0 .../admin/src/containers/HomePage/saga.js | 0 .../admin/src/containers/HomePage/selectors.js | 0 .../admin/src/containers/HomePage/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/zh.json | 0 .../strapi-plugin-users-permissions/.editorconfig | 0 .../strapi-plugin-users-permissions/.gitattributes | 0 packages/strapi-plugin-users-permissions/.gitignore | 0 packages/strapi-plugin-users-permissions/README.md | 0 .../admin/src/containers/App/actions.js | 0 .../admin/src/containers/App/constants.js | 0 .../admin/src/containers/App/index.js | 0 .../admin/src/containers/App/reducer.js | 0 .../admin/src/containers/App/selectors.js | 0 .../admin/src/containers/HomePage/actions.js | 0 .../admin/src/containers/HomePage/constants.js | 0 .../admin/src/containers/HomePage/index.js | 0 .../admin/src/containers/HomePage/reducer.js | 0 .../admin/src/containers/HomePage/saga.js | 0 .../admin/src/containers/HomePage/selectors.js | 0 .../admin/src/containers/HomePage/styles.scss | 0 .../admin/src/containers/NotFoundPage/index.js | 0 .../admin/src/translations/de.json | 0 .../admin/src/translations/en.json | 0 .../admin/src/translations/es.json | 0 .../admin/src/translations/fr.json | 0 .../admin/src/translations/tr.json | 0 .../admin/src/translations/zh.json | 0 packages/strapi-upload-cloudinary/.editorconfig | 0 packages/strapi-upload-cloudinary/.gitattributes | 0 packages/strapi-upload-cloudinary/README.md | 0 packages/strapi-utils/.editorconfig | 0 packages/strapi-utils/.gitignore | 0 packages/strapi-utils/.npmignore | 0 packages/strapi-utils/LICENSE.md | 0 packages/strapi-utils/README.md | 0 packages/strapi-utils/lib/cli.js | 0 packages/strapi-utils/lib/commander.js | 0 packages/strapi-utils/lib/finder.js | 0 packages/strapi-utils/lib/index.js | 0 packages/strapi-utils/lib/joi-json.js | 0 packages/strapi-utils/lib/json.js | 0 packages/strapi-utils/lib/knex.js | 0 packages/strapi-utils/lib/regex.js | 0 packages/strapi-utils/package.json | 0 packages/strapi/.editorconfig | 0 packages/strapi/.gitignore | 0 packages/strapi/.npmignore | 0 packages/strapi/LICENSE.md | 0 packages/strapi/README.md | 0 packages/strapi/bin/strapi-generate.js | 0 packages/strapi/bin/strapi-install.js | 0 packages/strapi/bin/strapi-new.js | 0 packages/strapi/bin/strapi-start.js | 0 packages/strapi/bin/strapi-uninstall.js | 0 packages/strapi/bin/strapi-update.js | 0 packages/strapi/bin/strapi.js | 0 packages/strapi/lib/Strapi.js | 0 packages/strapi/lib/core/apis.js | 0 packages/strapi/lib/core/hooks.js | 0 packages/strapi/lib/core/index.js | 0 packages/strapi/lib/core/middlewares.js | 0 packages/strapi/lib/hooks/index.js | 0 packages/strapi/lib/index.js | 0 packages/strapi/lib/middlewares/cors/index.js | 0 packages/strapi/lib/middlewares/cron/index.js | 0 packages/strapi/lib/middlewares/csp/index.js | 0 packages/strapi/lib/middlewares/csrf/index.js | 0 packages/strapi/lib/middlewares/favicon/index.js | 0 packages/strapi/lib/middlewares/gzip/index.js | 0 packages/strapi/lib/middlewares/hsts/index.js | 0 packages/strapi/lib/middlewares/index.js | 0 packages/strapi/lib/middlewares/ip/index.js | 0 packages/strapi/lib/middlewares/language/index.js | 0 packages/strapi/lib/middlewares/logger/index.js | 0 packages/strapi/lib/middlewares/p3p/index.js | 0 packages/strapi/lib/middlewares/parser/index.js | 0 packages/strapi/lib/middlewares/public/index.js | 0 .../strapi/lib/middlewares/responseTime/index.js | 0 packages/strapi/lib/middlewares/responses/index.js | 0 .../lib/middlewares/responses/responses/created.js | 0 .../lib/middlewares/responses/responses/index.js | 0 .../lib/middlewares/responses/responses/send.js | 0 packages/strapi/lib/middlewares/router/index.js | 0 .../lib/middlewares/router/utils/composeEndpoint.js | 0 .../lib/middlewares/router/utils/routerChecker.js | 0 packages/strapi/lib/middlewares/session/index.js | 0 packages/strapi/lib/middlewares/xframe/index.js | 0 packages/strapi/lib/middlewares/xss/index.js | 0 packages/strapi/lib/utils/index.js | 0 packages/strapi/package.json | 0 packages/strapi/test/application.js | 0 packages/strapi/test/core.js | 0 packages/strapi/test/logger.js | 0 packages/strapi/test/middlewares.js | 0 scripts/_get-test-directories.sh | 0 scripts/createSymlinkDependencies.js | 0 scripts/publish.js | 0 scripts/removeSymlinkDependencies.js | 0 scripts/setup.js | 0 scripts/test.sh | 0 807 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .eslintignore mode change 100755 => 100644 .eslintrc mode change 100755 => 100644 .gitattributes mode change 100755 => 100644 .gitignore mode change 100755 => 100644 .travis.yml mode change 100755 => 100644 LICENSE.md mode change 100755 => 100644 Makefile mode change 100755 => 100644 README.md mode change 100755 => 100644 docs/1.x.x/en/admin.md mode change 100755 => 100644 docs/1.x.x/en/blueprints.md mode change 100755 => 100644 docs/1.x.x/en/cli.md mode change 100755 => 100644 docs/1.x.x/en/configuration.md mode change 100755 => 100644 docs/1.x.x/en/context.md mode change 100755 => 100644 docs/1.x.x/en/customization.md mode change 100755 => 100644 docs/1.x.x/en/email.md mode change 100755 => 100644 docs/1.x.x/en/graphql.md mode change 100755 => 100644 docs/1.x.x/en/internationalization.md mode change 100755 => 100644 docs/1.x.x/en/introduction.md mode change 100755 => 100644 docs/1.x.x/en/logging.md mode change 100755 => 100644 docs/1.x.x/en/models.md mode change 100755 => 100644 docs/1.x.x/en/queries.md mode change 100755 => 100644 docs/1.x.x/en/request.md mode change 100755 => 100644 docs/1.x.x/en/response.md mode change 100755 => 100644 docs/1.x.x/en/router.md mode change 100755 => 100644 docs/1.x.x/en/services.md mode change 100755 => 100644 docs/1.x.x/en/sessions.md mode change 100755 => 100644 docs/1.x.x/en/testing.md mode change 100755 => 100644 docs/1.x.x/en/upload.md mode change 100755 => 100644 docs/1.x.x/en/users.md mode change 100755 => 100644 docs/1.x.x/en/views.md mode change 100755 => 100644 lerna.json mode change 100755 => 100644 mkdocs.yml mode change 100755 => 100644 package.json mode change 100755 => 100644 packages/README.md mode change 100755 => 100644 packages/strapi-admin/.editorconfig mode change 100755 => 100644 packages/strapi-admin/.npmignore mode change 100755 => 100644 packages/strapi-admin/LICENSE.md mode change 100755 => 100644 packages/strapi-admin/README.md mode change 100755 => 100644 packages/strapi-admin/admin/src/app.js mode change 100755 => 100644 packages/strapi-admin/admin/src/assets/icons/icon_content-manager.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/assets/icons/icon_content-type-builder.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/assets/icons/icon_settings-manager.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/assets/icons/icon_success.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/components/Header/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/Header/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuFooter/messages.json mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuHeader/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuHeader/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuLink/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuLink/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/components/Notification/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/NotificationsContainer/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/components/NotificationsContainer/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/AdminPage/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/App/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/ComingSoonPage/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/ComingSoonPage/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/Content/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/Content/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LanguageProvider/actions.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LanguageProvider/constants.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LanguageProvider/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LanguageProvider/selectors.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LeftMenu/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LeftMenu/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LocaleToggle/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/LocaleToggle/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotFoundPage/messages.json mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotFoundPage/styles.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotificationProvider/actions.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotificationProvider/constants.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotificationProvider/reducer.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/NotificationProvider/selectors.js mode change 100755 => 100644 packages/strapi-admin/admin/src/containers/PluginPage/index.js mode change 100755 => 100644 packages/strapi-admin/admin/src/i18n.js mode change 100755 => 100644 packages/strapi-admin/admin/src/index.html mode change 100755 => 100644 packages/strapi-admin/admin/src/reducers.js mode change 100755 => 100644 packages/strapi-admin/admin/src/store.js mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/base/animations.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/base/fonts.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/base/helpers.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.eot mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.ttf mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/FontAwesome.otf mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.eot mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.svg mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.ttf mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff2 mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_alert.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_badge.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_breadcrumb.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_button-group.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_buttons.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_card.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_carousel.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_close.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_code.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_custom-forms.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_dropdown.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_forms.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_functions.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_grid.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_images.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_input-group.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_jumbotron.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_list-group.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_media.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_mixins.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_modal.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_nav.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_navbar.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_pagination.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_popover.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_print.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_progress.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_reboot.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_tables.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_tooltip.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_transitions.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_type.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_utilities.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/_variables.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-grid.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-reboot.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_alert.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_background-variant.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_badge.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_border-radius.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_box-shadow.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_breakpoints.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_buttons.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_clearfix.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_float.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_forms.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_gradients.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid-framework.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_hover.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_image.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_list-group.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_lists.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_nav-divider.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_navbar-align.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_pagination.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_reset-text.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_resize.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_screen-reader.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_size.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_table-row.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-emphasis.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-hide.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-truncate.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_transition.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_visibility.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_align.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_background.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_borders.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_clearfix.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_display.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_embed.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_flex.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_float.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_position.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_screenreaders.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_sizing.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_spacing.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_text.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_visibility.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/libs/fontawesome/_fontawesome.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/main.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/variables/variables.bootstrap.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/styles/variables/variables.scss mode change 100755 => 100644 packages/strapi-admin/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-admin/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-admin/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-admin/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-admin/config/routes.json mode change 100755 => 100644 packages/strapi-admin/controllers/Admin.js mode change 100755 => 100644 packages/strapi-admin/package.json mode change 100755 => 100644 packages/strapi-generate-admin/.editorconfig mode change 100755 => 100644 packages/strapi-generate-admin/.gitignore mode change 100755 => 100644 packages/strapi-generate-admin/.npmignore mode change 100755 => 100644 packages/strapi-generate-admin/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-admin/README.md mode change 100755 => 100644 packages/strapi-generate-admin/lib/after.js mode change 100755 => 100644 packages/strapi-generate-admin/lib/before.js mode change 100755 => 100644 packages/strapi-generate-admin/lib/index.js mode change 100755 => 100644 packages/strapi-generate-admin/package.json mode change 100755 => 100644 packages/strapi-generate-api/.editorconfig mode change 100755 => 100644 packages/strapi-generate-api/.gitignore mode change 100755 => 100644 packages/strapi-generate-api/.npmignore mode change 100755 => 100644 packages/strapi-generate-api/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-api/README.md mode change 100755 => 100644 packages/strapi-generate-api/json/routes.json.js mode change 100755 => 100644 packages/strapi-generate-api/lib/before.js mode change 100755 => 100644 packages/strapi-generate-api/lib/index.js mode change 100755 => 100644 packages/strapi-generate-api/package.json mode change 100755 => 100644 packages/strapi-generate-api/templates/attribute.template mode change 100755 => 100644 packages/strapi-generate-api/templates/bookshelf/controller.template mode change 100755 => 100644 packages/strapi-generate-api/templates/bookshelf/model.settings.template mode change 100755 => 100644 packages/strapi-generate-api/templates/bookshelf/model.template mode change 100755 => 100644 packages/strapi-generate-api/templates/bookshelf/service.template mode change 100755 => 100644 packages/strapi-generate-api/templates/mongoose/controller.template mode change 100755 => 100644 packages/strapi-generate-api/templates/mongoose/model.settings.template mode change 100755 => 100644 packages/strapi-generate-api/templates/mongoose/model.template mode change 100755 => 100644 packages/strapi-generate-api/templates/mongoose/service.template mode change 100755 => 100644 packages/strapi-generate-controller/.editorconfig mode change 100755 => 100644 packages/strapi-generate-controller/.gitignore mode change 100755 => 100644 packages/strapi-generate-controller/.npmignore mode change 100755 => 100644 packages/strapi-generate-controller/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-controller/README.md mode change 100755 => 100644 packages/strapi-generate-controller/lib/before.js mode change 100755 => 100644 packages/strapi-generate-controller/lib/index.js mode change 100755 => 100644 packages/strapi-generate-controller/package.json mode change 100755 => 100644 packages/strapi-generate-controller/templates/bookshelf/controller.template mode change 100755 => 100644 packages/strapi-generate-controller/templates/mongoose/controller.template mode change 100755 => 100644 packages/strapi-generate-model/.editorconfig mode change 100755 => 100644 packages/strapi-generate-model/.gitignore mode change 100755 => 100644 packages/strapi-generate-model/.npmignore mode change 100755 => 100644 packages/strapi-generate-model/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-model/README.md mode change 100755 => 100644 packages/strapi-generate-model/lib/before.js mode change 100755 => 100644 packages/strapi-generate-model/lib/index.js mode change 100755 => 100644 packages/strapi-generate-model/package.json mode change 100755 => 100644 packages/strapi-generate-model/templates/attribute.template mode change 100755 => 100644 packages/strapi-generate-model/templates/bookshelf/model.settings.template mode change 100755 => 100644 packages/strapi-generate-model/templates/bookshelf/model.template mode change 100755 => 100644 packages/strapi-generate-model/templates/mongoose/model.settings.template mode change 100755 => 100644 packages/strapi-generate-model/templates/mongoose/model.template mode change 100755 => 100644 packages/strapi-generate-new/.editorconfig mode change 100755 => 100644 packages/strapi-generate-new/.gitignore mode change 100755 => 100644 packages/strapi-generate-new/.npmignore mode change 100755 => 100644 packages/strapi-generate-new/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-new/README.md mode change 100755 => 100644 packages/strapi-generate-new/files/.eslintignore mode change 100755 => 100644 packages/strapi-generate-new/files/.eslintrc mode change 100755 => 100644 packages/strapi-generate-new/files/config/application.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/custom.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/development/custom.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/development/request.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/development/response.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/development/security.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/development/server.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/custom.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/database.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/request.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/response.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/security.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/production/server.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/custom.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/database.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/request.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/response.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/security.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/environments/staging/server.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/functions/bootstrap.js mode change 100755 => 100644 packages/strapi-generate-new/files/config/functions/cron.js mode change 100755 => 100644 packages/strapi-generate-new/files/config/functions/responses/404.js mode change 100755 => 100644 packages/strapi-generate-new/files/config/hook.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/language.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/de_DE.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/en_US.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/es_ES.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/fr_FR.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/it_IT.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/ja_JP.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/locales/tr_TR.json mode change 100755 => 100644 packages/strapi-generate-new/files/config/middleware.json mode change 100755 => 100644 packages/strapi-generate-new/files/favicon.ico mode change 100755 => 100644 packages/strapi-generate-new/files/public/index.html mode change 100755 => 100644 packages/strapi-generate-new/files/public/robots.txt mode change 100755 => 100644 packages/strapi-generate-new/files/server.js mode change 100755 => 100644 packages/strapi-generate-new/json/package.json.js mode change 100755 => 100644 packages/strapi-generate-new/lib/after.js mode change 100755 => 100644 packages/strapi-generate-new/lib/before.js mode change 100755 => 100644 packages/strapi-generate-new/lib/index.js mode change 100755 => 100644 packages/strapi-generate-new/package.json mode change 100755 => 100644 packages/strapi-generate-new/templates/README.md mode change 100755 => 100644 packages/strapi-generate-new/templates/editorconfig mode change 100755 => 100644 packages/strapi-generate-new/templates/gitignore mode change 100755 => 100644 packages/strapi-generate-new/templates/npmignore mode change 100755 => 100644 packages/strapi-generate-plugin/.editorconfig mode change 100755 => 100644 packages/strapi-generate-plugin/.gitignore mode change 100755 => 100644 packages/strapi-generate-plugin/.npmignore mode change 100755 => 100644 packages/strapi-generate-plugin/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-plugin/README.md mode change 100755 => 100644 packages/strapi-generate-plugin/files/.editorconfig mode change 100755 => 100644 packages/strapi-generate-plugin/files/.gitattributes mode change 100755 => 100644 packages/strapi-generate-plugin/files/README.md mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/actions.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/constants.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/index.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/reducer.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/saga.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/selectors.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/HomePage/styles.scss mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-generate-plugin/files/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-generate-plugin/json/package.json.js mode change 100755 => 100644 packages/strapi-generate-plugin/json/routes.json.js mode change 100755 => 100644 packages/strapi-generate-plugin/lib/before.js mode change 100755 => 100644 packages/strapi-generate-plugin/lib/index.js mode change 100755 => 100644 packages/strapi-generate-plugin/package.json mode change 100755 => 100644 packages/strapi-generate-plugin/templates/controller.template mode change 100755 => 100644 packages/strapi-generate-plugin/templates/service.template mode change 100755 => 100644 packages/strapi-generate-policy/.editorconfig mode change 100755 => 100644 packages/strapi-generate-policy/.gitignore mode change 100755 => 100644 packages/strapi-generate-policy/.npmignore mode change 100755 => 100644 packages/strapi-generate-policy/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-policy/README.md mode change 100755 => 100644 packages/strapi-generate-policy/lib/before.js mode change 100755 => 100644 packages/strapi-generate-policy/lib/index.js mode change 100755 => 100644 packages/strapi-generate-policy/package.json mode change 100755 => 100644 packages/strapi-generate-policy/templates/policy.template mode change 100755 => 100644 packages/strapi-generate-service/.editorconfig mode change 100755 => 100644 packages/strapi-generate-service/.gitignore mode change 100755 => 100644 packages/strapi-generate-service/.npmignore mode change 100755 => 100644 packages/strapi-generate-service/LICENSE.md mode change 100755 => 100644 packages/strapi-generate-service/README.md mode change 100755 => 100644 packages/strapi-generate-service/lib/before.js mode change 100755 => 100644 packages/strapi-generate-service/lib/index.js mode change 100755 => 100644 packages/strapi-generate-service/package.json mode change 100755 => 100644 packages/strapi-generate-service/templates/bookshelf/service.template mode change 100755 => 100644 packages/strapi-generate-service/templates/mongoose/service.template mode change 100755 => 100644 packages/strapi-generate/.editorconfig mode change 100755 => 100644 packages/strapi-generate/.gitignore mode change 100755 => 100644 packages/strapi-generate/.npmignore mode change 100755 => 100644 packages/strapi-generate/LICENSE.md mode change 100755 => 100644 packages/strapi-generate/README.md mode change 100755 => 100644 packages/strapi-generate/lib/generate.js mode change 100755 => 100644 packages/strapi-generate/lib/helpers/copy/index.js mode change 100755 => 100644 packages/strapi-generate/lib/helpers/file/index.js mode change 100755 => 100644 packages/strapi-generate/lib/helpers/folder/index.js mode change 100755 => 100644 packages/strapi-generate/lib/helpers/jsonfile/index.js mode change 100755 => 100644 packages/strapi-generate/lib/helpers/template/index.js mode change 100755 => 100644 packages/strapi-generate/lib/index.js mode change 100755 => 100644 packages/strapi-generate/lib/target.js mode change 100755 => 100644 packages/strapi-generate/lib/util.js mode change 100755 => 100644 packages/strapi-generate/package.json mode change 100755 => 100644 packages/strapi-helper-plugin/.gitignore mode change 100755 => 100644 packages/strapi-helper-plugin/README.md mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/config.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/eslint/eslint-config.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/es6.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/messages.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/stateless.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/styles.scss.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/component/test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/actions.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/actions.test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/constants.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/index.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/messages.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/reducer.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/reducer.test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/saga.test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/sagas.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/selectors.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/selectors.test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/styles.scss.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/container/test.js.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/add-locale-data.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/app-locale.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/format-translation-messages.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/intl-locale-data.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/polyfill-intl-locale.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/translation-messages.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/language/translations-json.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/route/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/route/route.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/route/routeWithReducer.hbs mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/generators/utils/componentExists.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/postcss/postcss.config.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/scripts/analyze.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/scripts/dependencies.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/scripts/helpers/checkmark.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/scripts/helpers/progress.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/scripts/npmcheckversion.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/webpack/webpack.base.babel.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/webpack/webpack.dev.babel.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/webpack/webpack.dll.babel.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/webpack/webpack.prod.babel.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/internals/webpack/webpack.test.babel.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/server/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/server/logger.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/server/middlewares/frontendMiddleware.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/app.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_barred.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_bold.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_bullet-list.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_code-block.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_danger.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_flag_not_found.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_info.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_italic.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_link.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_media.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_numbered-list.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_quote-block.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_success.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_underline.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/icons/icon_warning.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_boolean.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_date.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_image.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_json.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_relation.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_string.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/assets/images/icon_text.svg mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/Button/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/Button/styles.scss mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/PluginHeader/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/styles.scss mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/index.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/styles.scss mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/i18n.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/reducers.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/routes.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/store.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/utils/asyncInjectors.js mode change 100755 => 100644 packages/strapi-helper-plugin/lib/src/utils/request.js mode change 100755 => 100644 packages/strapi-helper-plugin/package.json mode change 100755 => 100644 packages/strapi-hook-bookshelf/.gitignore mode change 100755 => 100644 packages/strapi-hook-bookshelf/.npmignore mode change 100755 => 100644 packages/strapi-hook-bookshelf/LICENSE.md mode change 100755 => 100644 packages/strapi-hook-bookshelf/README.md mode change 100755 => 100644 packages/strapi-hook-bookshelf/lib/index.js mode change 100755 => 100644 packages/strapi-hook-bookshelf/lib/utils/graphql.js mode change 100755 => 100644 packages/strapi-hook-bookshelf/lib/utils/index.js mode change 100755 => 100644 packages/strapi-hook-bookshelf/package.json mode change 100755 => 100644 packages/strapi-hook-ejs/.editorconfig mode change 100755 => 100644 packages/strapi-hook-ejs/.gitignore mode change 100755 => 100644 packages/strapi-hook-ejs/.npmignore mode change 100755 => 100644 packages/strapi-hook-ejs/LICENSE.md mode change 100755 => 100644 packages/strapi-hook-ejs/README.md mode change 100755 => 100644 packages/strapi-hook-ejs/lib/index.js mode change 100755 => 100644 packages/strapi-hook-ejs/package.json mode change 100755 => 100644 packages/strapi-hook-knex/.editorconfig mode change 100755 => 100644 packages/strapi-hook-knex/.gitignore mode change 100755 => 100644 packages/strapi-hook-knex/.npmignore mode change 100755 => 100644 packages/strapi-hook-knex/LICENSE.md mode change 100755 => 100644 packages/strapi-hook-knex/README.md mode change 100755 => 100644 packages/strapi-hook-knex/lib/index.js mode change 100755 => 100644 packages/strapi-hook-knex/package.json mode change 100755 => 100644 packages/strapi-hook-mongoose/.editorconfig mode change 100755 => 100644 packages/strapi-hook-mongoose/.gitignore mode change 100755 => 100644 packages/strapi-hook-mongoose/.npmignore mode change 100755 => 100644 packages/strapi-hook-mongoose/LICENSE.md mode change 100755 => 100644 packages/strapi-hook-mongoose/README.md mode change 100755 => 100644 packages/strapi-hook-mongoose/lib/index.js mode change 100755 => 100644 packages/strapi-hook-mongoose/lib/utils/index.js mode change 100755 => 100644 packages/strapi-hook-mongoose/package.json mode change 100755 => 100644 packages/strapi-hook-redis/.editorconfig mode change 100755 => 100644 packages/strapi-hook-redis/.gitignore mode change 100755 => 100644 packages/strapi-hook-redis/.npmignore mode change 100755 => 100644 packages/strapi-hook-redis/LICENSE.md mode change 100755 => 100644 packages/strapi-hook-redis/README.md mode change 100755 => 100644 packages/strapi-hook-redis/lib/index.js mode change 100755 => 100644 packages/strapi-hook-redis/package.json mode change 100755 => 100644 packages/strapi-middleware-views/.editorconfig mode change 100755 => 100644 packages/strapi-middleware-views/.gitignore mode change 100755 => 100644 packages/strapi-middleware-views/.npmignore mode change 100755 => 100644 packages/strapi-middleware-views/LICENSE.md mode change 100755 => 100644 packages/strapi-middleware-views/README.md mode change 100755 => 100644 packages/strapi-middleware-views/lib/index.js mode change 100755 => 100644 packages/strapi-middleware-views/package.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-content-manager/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-content-manager/.gitignore mode change 100755 => 100644 packages/strapi-plugin-content-manager/.npmignore mode change 100755 => 100644 packages/strapi-plugin-content-manager/README.md mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/.npmignore mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_barred.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bold.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bullet-list.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_code-block.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_italic.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_link.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_media.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_numbered-list.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_quote-block.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_underline.svg mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/Table/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/Table/styles.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/TableHeader/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/TableHeader/styles.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/TableRow/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/components/TableRow/styles.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/Home/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/Home/messages.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/Home/styles.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/messages.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/routes.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/styles/main.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.bootstrap.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.scss mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/admin/src/utils/schema.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/config/admin.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/config/queries/bookshelf.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/config/queries/mongoose.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/config/routes.json mode change 100755 => 100644 packages/strapi-plugin-content-manager/controllers/ContentManager.js mode change 100755 => 100644 packages/strapi-plugin-content-manager/package.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/.gitignore mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/README.md mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_danger.svg mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_flag_not_found.svg mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_info.svg mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_success.svg mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_warning.svg mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/sagas.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/routes.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/config/routes.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/package.json mode change 100755 => 100644 packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js mode change 100755 => 100644 packages/strapi-plugin-email/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-email/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-email/.gitignore mode change 100755 => 100644 packages/strapi-plugin-email/README.md mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/de.json mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-plugin-email/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-plugin-graphql/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-graphql/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-graphql/README.md mode change 100755 => 100644 packages/strapi-plugin-settings-manager/.gitignore mode change 100755 => 100644 packages/strapi-plugin-settings-manager/.npmignore mode change 100755 => 100644 packages/strapi-plugin-settings-manager/README.md mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/.npmignore mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/assets/icons/icon_success.svg mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/assets/images/baseline-18.png mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/Button/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/Button/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/EditForm/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/EditForm/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/EditFormSection/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/EditFormSectionNested/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/messages.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputText/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputText/messages.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/messages.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/List/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/config.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/config.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/WithInput/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/components/WithInput/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/sagas.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/App/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/actions.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/config.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/constants.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/reducer.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/sagas.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/selectors.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/styles.scss mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/messages.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/routes.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/de.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/config/routes.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/controllers/SettingsManager.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/package.json mode change 100755 => 100644 packages/strapi-plugin-settings-manager/services/Languages.js mode change 100755 => 100644 packages/strapi-plugin-settings-manager/services/SettingsManager.js mode change 100755 => 100644 packages/strapi-plugin-upload/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-upload/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-upload/README.md mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/actions.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/constants.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/saga.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/HomePage/styles.scss mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-upload/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/.editorconfig mode change 100755 => 100644 packages/strapi-plugin-users-permissions/.gitattributes mode change 100755 => 100644 packages/strapi-plugin-users-permissions/.gitignore mode change 100755 => 100644 packages/strapi-plugin-users-permissions/README.md mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/App/actions.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/App/constants.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/App/reducer.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/App/selectors.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/actions.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/constants.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/index.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/saga.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/selectors.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/styles.scss mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/containers/NotFoundPage/index.js mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/de.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/en.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/es.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/fr.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/tr.json mode change 100755 => 100644 packages/strapi-plugin-users-permissions/admin/src/translations/zh.json mode change 100755 => 100644 packages/strapi-upload-cloudinary/.editorconfig mode change 100755 => 100644 packages/strapi-upload-cloudinary/.gitattributes mode change 100755 => 100644 packages/strapi-upload-cloudinary/README.md mode change 100755 => 100644 packages/strapi-utils/.editorconfig mode change 100755 => 100644 packages/strapi-utils/.gitignore mode change 100755 => 100644 packages/strapi-utils/.npmignore mode change 100755 => 100644 packages/strapi-utils/LICENSE.md mode change 100755 => 100644 packages/strapi-utils/README.md mode change 100755 => 100644 packages/strapi-utils/lib/cli.js mode change 100755 => 100644 packages/strapi-utils/lib/commander.js mode change 100755 => 100644 packages/strapi-utils/lib/finder.js mode change 100755 => 100644 packages/strapi-utils/lib/index.js mode change 100755 => 100644 packages/strapi-utils/lib/joi-json.js mode change 100755 => 100644 packages/strapi-utils/lib/json.js mode change 100755 => 100644 packages/strapi-utils/lib/knex.js mode change 100755 => 100644 packages/strapi-utils/lib/regex.js mode change 100755 => 100644 packages/strapi-utils/package.json mode change 100755 => 100644 packages/strapi/.editorconfig mode change 100755 => 100644 packages/strapi/.gitignore mode change 100755 => 100644 packages/strapi/.npmignore mode change 100755 => 100644 packages/strapi/LICENSE.md mode change 100755 => 100644 packages/strapi/README.md mode change 100755 => 100644 packages/strapi/bin/strapi-generate.js mode change 100755 => 100644 packages/strapi/bin/strapi-install.js mode change 100755 => 100644 packages/strapi/bin/strapi-new.js mode change 100755 => 100644 packages/strapi/bin/strapi-start.js mode change 100755 => 100644 packages/strapi/bin/strapi-uninstall.js mode change 100755 => 100644 packages/strapi/bin/strapi-update.js mode change 100755 => 100644 packages/strapi/bin/strapi.js mode change 100755 => 100644 packages/strapi/lib/Strapi.js mode change 100755 => 100644 packages/strapi/lib/core/apis.js mode change 100755 => 100644 packages/strapi/lib/core/hooks.js mode change 100755 => 100644 packages/strapi/lib/core/index.js mode change 100755 => 100644 packages/strapi/lib/core/middlewares.js mode change 100755 => 100644 packages/strapi/lib/hooks/index.js mode change 100755 => 100644 packages/strapi/lib/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/cors/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/cron/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/csp/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/csrf/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/favicon/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/gzip/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/hsts/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/ip/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/language/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/logger/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/p3p/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/parser/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/public/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/responseTime/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/responses/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/responses/responses/created.js mode change 100755 => 100644 packages/strapi/lib/middlewares/responses/responses/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/responses/responses/send.js mode change 100755 => 100644 packages/strapi/lib/middlewares/router/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/router/utils/composeEndpoint.js mode change 100755 => 100644 packages/strapi/lib/middlewares/router/utils/routerChecker.js mode change 100755 => 100644 packages/strapi/lib/middlewares/session/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/xframe/index.js mode change 100755 => 100644 packages/strapi/lib/middlewares/xss/index.js mode change 100755 => 100644 packages/strapi/lib/utils/index.js mode change 100755 => 100644 packages/strapi/package.json mode change 100755 => 100644 packages/strapi/test/application.js mode change 100755 => 100644 packages/strapi/test/core.js mode change 100755 => 100644 packages/strapi/test/logger.js mode change 100755 => 100644 packages/strapi/test/middlewares.js mode change 100755 => 100644 scripts/_get-test-directories.sh mode change 100755 => 100644 scripts/createSymlinkDependencies.js mode change 100755 => 100644 scripts/publish.js mode change 100755 => 100644 scripts/removeSymlinkDependencies.js mode change 100755 => 100644 scripts/setup.js mode change 100755 => 100644 scripts/test.sh diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.eslintignore b/.eslintignore old mode 100755 new mode 100644 diff --git a/.eslintrc b/.eslintrc old mode 100755 new mode 100644 diff --git a/.gitattributes b/.gitattributes old mode 100755 new mode 100644 diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/.travis.yml b/.travis.yml old mode 100755 new mode 100644 diff --git a/LICENSE.md b/LICENSE.md old mode 100755 new mode 100644 diff --git a/Makefile b/Makefile old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/admin.md b/docs/1.x.x/en/admin.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/blueprints.md b/docs/1.x.x/en/blueprints.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/cli.md b/docs/1.x.x/en/cli.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/configuration.md b/docs/1.x.x/en/configuration.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/context.md b/docs/1.x.x/en/context.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/customization.md b/docs/1.x.x/en/customization.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/email.md b/docs/1.x.x/en/email.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/graphql.md b/docs/1.x.x/en/graphql.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/internationalization.md b/docs/1.x.x/en/internationalization.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/introduction.md b/docs/1.x.x/en/introduction.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/logging.md b/docs/1.x.x/en/logging.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/models.md b/docs/1.x.x/en/models.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/queries.md b/docs/1.x.x/en/queries.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/request.md b/docs/1.x.x/en/request.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/response.md b/docs/1.x.x/en/response.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/router.md b/docs/1.x.x/en/router.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/services.md b/docs/1.x.x/en/services.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/sessions.md b/docs/1.x.x/en/sessions.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/testing.md b/docs/1.x.x/en/testing.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/upload.md b/docs/1.x.x/en/upload.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/users.md b/docs/1.x.x/en/users.md old mode 100755 new mode 100644 diff --git a/docs/1.x.x/en/views.md b/docs/1.x.x/en/views.md old mode 100755 new mode 100644 diff --git a/lerna.json b/lerna.json old mode 100755 new mode 100644 diff --git a/mkdocs.yml b/mkdocs.yml old mode 100755 new mode 100644 diff --git a/package.json b/package.json old mode 100755 new mode 100644 diff --git a/packages/README.md b/packages/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/.editorconfig b/packages/strapi-admin/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/.npmignore b/packages/strapi-admin/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/LICENSE.md b/packages/strapi-admin/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/README.md b/packages/strapi-admin/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/app.js b/packages/strapi-admin/admin/src/app.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/assets/icons/icon_content-manager.svg b/packages/strapi-admin/admin/src/assets/icons/icon_content-manager.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/assets/icons/icon_content-type-builder.svg b/packages/strapi-admin/admin/src/assets/icons/icon_content-type-builder.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/assets/icons/icon_settings-manager.svg b/packages/strapi-admin/admin/src/assets/icons/icon_settings-manager.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/assets/icons/icon_success.svg b/packages/strapi-admin/admin/src/assets/icons/icon_success.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/Header/index.js b/packages/strapi-admin/admin/src/components/Header/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/Header/styles.scss b/packages/strapi-admin/admin/src/components/Header/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js b/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/messages.json b/packages/strapi-admin/admin/src/components/LeftMenuFooter/messages.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuHeader/index.js b/packages/strapi-admin/admin/src/components/LeftMenuHeader/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuHeader/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuHeader/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuLink/index.js b/packages/strapi-admin/admin/src/components/LeftMenuLink/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuLink/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuLink/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js b/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuLinkContainer/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/Notification/index.js b/packages/strapi-admin/admin/src/components/Notification/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/NotificationsContainer/index.js b/packages/strapi-admin/admin/src/components/NotificationsContainer/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/components/NotificationsContainer/styles.scss b/packages/strapi-admin/admin/src/components/NotificationsContainer/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/AdminPage/styles.scss b/packages/strapi-admin/admin/src/containers/AdminPage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/App/actions.js b/packages/strapi-admin/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/App/constants.js b/packages/strapi-admin/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/App/reducer.js b/packages/strapi-admin/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/App/styles.scss b/packages/strapi-admin/admin/src/containers/App/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/ComingSoonPage/index.js b/packages/strapi-admin/admin/src/containers/ComingSoonPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/ComingSoonPage/styles.scss b/packages/strapi-admin/admin/src/containers/ComingSoonPage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/Content/index.js b/packages/strapi-admin/admin/src/containers/Content/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/Content/styles.scss b/packages/strapi-admin/admin/src/containers/Content/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LanguageProvider/actions.js b/packages/strapi-admin/admin/src/containers/LanguageProvider/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LanguageProvider/constants.js b/packages/strapi-admin/admin/src/containers/LanguageProvider/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LanguageProvider/index.js b/packages/strapi-admin/admin/src/containers/LanguageProvider/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LanguageProvider/selectors.js b/packages/strapi-admin/admin/src/containers/LanguageProvider/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LeftMenu/index.js b/packages/strapi-admin/admin/src/containers/LeftMenu/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LeftMenu/styles.scss b/packages/strapi-admin/admin/src/containers/LeftMenu/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LocaleToggle/index.js b/packages/strapi-admin/admin/src/containers/LocaleToggle/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/LocaleToggle/styles.scss b/packages/strapi-admin/admin/src/containers/LocaleToggle/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js b/packages/strapi-admin/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotFoundPage/messages.json b/packages/strapi-admin/admin/src/containers/NotFoundPage/messages.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotFoundPage/styles.scss b/packages/strapi-admin/admin/src/containers/NotFoundPage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotificationProvider/actions.js b/packages/strapi-admin/admin/src/containers/NotificationProvider/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotificationProvider/constants.js b/packages/strapi-admin/admin/src/containers/NotificationProvider/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotificationProvider/reducer.js b/packages/strapi-admin/admin/src/containers/NotificationProvider/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/NotificationProvider/selectors.js b/packages/strapi-admin/admin/src/containers/NotificationProvider/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/containers/PluginPage/index.js b/packages/strapi-admin/admin/src/containers/PluginPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/i18n.js b/packages/strapi-admin/admin/src/i18n.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/index.html b/packages/strapi-admin/admin/src/index.html old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/reducers.js b/packages/strapi-admin/admin/src/reducers.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/store.js b/packages/strapi-admin/admin/src/store.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/base/animations.scss b/packages/strapi-admin/admin/src/styles/base/animations.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/base/fonts.scss b/packages/strapi-admin/admin/src/styles/base/fonts.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/base/helpers.scss b/packages/strapi-admin/admin/src/styles/base/helpers.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.eot b/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.eot old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.svg b/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.ttf b/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.ttf old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff b/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/packages/strapi-admin/admin/src/styles/fonts/bootstrap/glyphicons-halflings-regular.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/FontAwesome.otf b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/FontAwesome.otf old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.eot b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.eot old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.svg b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.ttf b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.ttf old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff2 b/packages/strapi-admin/admin/src/styles/fonts/fontawesome/fontawesome-webfont.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black-italic/lato-black-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-black/lato-black.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold-italic/lato-bold-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-bold/lato-bold.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline-italic/lato-hairline-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-hairline/lato-hairline.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy-italic/lato-heavy-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-heavy/lato-heavy.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light-italic/lato-light-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-light/lato-light.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium-italic/lato-medium-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-medium/lato-medium.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal-italic/lato-normal-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-normal/lato-normal.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold-italic/lato-semibold-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-semibold/lato-semibold.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin-italic/lato-thin-italic.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff2 b/packages/strapi-admin/admin/src/styles/fonts/lato/lato-thin/lato-thin.woff2 old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_alert.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_alert.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_badge.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_badge.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_breadcrumb.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_breadcrumb.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_button-group.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_button-group.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_buttons.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_buttons.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_card.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_card.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_carousel.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_carousel.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_close.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_close.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_code.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_code.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_custom-forms.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_custom-forms.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_dropdown.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_dropdown.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_forms.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_forms.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_functions.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_functions.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_grid.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_grid.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_images.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_images.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_input-group.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_input-group.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_jumbotron.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_jumbotron.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_list-group.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_list-group.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_media.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_media.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_mixins.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_mixins.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_modal.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_modal.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_nav.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_nav.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_navbar.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_navbar.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_pagination.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_pagination.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_popover.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_popover.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_print.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_print.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_progress.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_progress.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_reboot.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_reboot.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_tables.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_tables.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_tooltip.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_tooltip.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_transitions.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_transitions.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_type.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_type.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_utilities.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_utilities.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/_variables.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/_variables.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-grid.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-grid.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-reboot.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap-reboot.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/bootstrap.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_alert.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_alert.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_background-variant.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_background-variant.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_badge.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_badge.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_border-radius.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_border-radius.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_box-shadow.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_box-shadow.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_breakpoints.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_breakpoints.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_buttons.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_buttons.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_clearfix.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_clearfix.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_float.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_float.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_forms.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_forms.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_gradients.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_gradients.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid-framework.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid-framework.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_grid.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_hover.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_hover.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_image.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_image.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_list-group.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_list-group.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_lists.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_lists.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_nav-divider.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_nav-divider.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_navbar-align.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_navbar-align.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_pagination.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_pagination.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_reset-text.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_reset-text.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_resize.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_resize.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_screen-reader.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_screen-reader.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_size.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_size.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_table-row.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_table-row.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-emphasis.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-emphasis.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-hide.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-hide.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-truncate.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_text-truncate.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_transition.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_transition.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_visibility.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/mixins/_visibility.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_align.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_align.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_background.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_background.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_borders.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_borders.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_clearfix.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_clearfix.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_display.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_display.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_embed.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_embed.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_flex.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_flex.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_float.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_float.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_position.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_position.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_screenreaders.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_screenreaders.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_sizing.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_sizing.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_spacing.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_spacing.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_text.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_text.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_visibility.scss b/packages/strapi-admin/admin/src/styles/libs/bootstrap/utilities/_visibility.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/libs/fontawesome/_fontawesome.scss b/packages/strapi-admin/admin/src/styles/libs/fontawesome/_fontawesome.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/main.scss b/packages/strapi-admin/admin/src/styles/main.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/variables/variables.bootstrap.scss b/packages/strapi-admin/admin/src/styles/variables/variables.bootstrap.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/styles/variables/variables.scss b/packages/strapi-admin/admin/src/styles/variables/variables.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/translations/fr.json b/packages/strapi-admin/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/translations/tr.json b/packages/strapi-admin/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/admin/src/translations/zh.json b/packages/strapi-admin/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/config/routes.json b/packages/strapi-admin/config/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/controllers/Admin.js b/packages/strapi-admin/controllers/Admin.js old mode 100755 new mode 100644 diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/.editorconfig b/packages/strapi-generate-admin/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/.gitignore b/packages/strapi-generate-admin/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/.npmignore b/packages/strapi-generate-admin/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/LICENSE.md b/packages/strapi-generate-admin/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/README.md b/packages/strapi-generate-admin/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/lib/after.js b/packages/strapi-generate-admin/lib/after.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/lib/before.js b/packages/strapi-generate-admin/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/lib/index.js b/packages/strapi-generate-admin/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-admin/package.json b/packages/strapi-generate-admin/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/.editorconfig b/packages/strapi-generate-api/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/.gitignore b/packages/strapi-generate-api/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/.npmignore b/packages/strapi-generate-api/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/LICENSE.md b/packages/strapi-generate-api/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/README.md b/packages/strapi-generate-api/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/json/routes.json.js b/packages/strapi-generate-api/json/routes.json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/lib/before.js b/packages/strapi-generate-api/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/lib/index.js b/packages/strapi-generate-api/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/package.json b/packages/strapi-generate-api/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/attribute.template b/packages/strapi-generate-api/templates/attribute.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/bookshelf/controller.template b/packages/strapi-generate-api/templates/bookshelf/controller.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/bookshelf/model.settings.template b/packages/strapi-generate-api/templates/bookshelf/model.settings.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/bookshelf/model.template b/packages/strapi-generate-api/templates/bookshelf/model.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/bookshelf/service.template b/packages/strapi-generate-api/templates/bookshelf/service.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/mongoose/controller.template b/packages/strapi-generate-api/templates/mongoose/controller.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/mongoose/model.settings.template b/packages/strapi-generate-api/templates/mongoose/model.settings.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/mongoose/model.template b/packages/strapi-generate-api/templates/mongoose/model.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-api/templates/mongoose/service.template b/packages/strapi-generate-api/templates/mongoose/service.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/.editorconfig b/packages/strapi-generate-controller/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/.gitignore b/packages/strapi-generate-controller/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/.npmignore b/packages/strapi-generate-controller/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/LICENSE.md b/packages/strapi-generate-controller/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/README.md b/packages/strapi-generate-controller/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/lib/before.js b/packages/strapi-generate-controller/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/lib/index.js b/packages/strapi-generate-controller/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/package.json b/packages/strapi-generate-controller/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/templates/bookshelf/controller.template b/packages/strapi-generate-controller/templates/bookshelf/controller.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-controller/templates/mongoose/controller.template b/packages/strapi-generate-controller/templates/mongoose/controller.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/.editorconfig b/packages/strapi-generate-model/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/.gitignore b/packages/strapi-generate-model/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/.npmignore b/packages/strapi-generate-model/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/LICENSE.md b/packages/strapi-generate-model/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/README.md b/packages/strapi-generate-model/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/lib/before.js b/packages/strapi-generate-model/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/lib/index.js b/packages/strapi-generate-model/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/package.json b/packages/strapi-generate-model/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/templates/attribute.template b/packages/strapi-generate-model/templates/attribute.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/templates/bookshelf/model.settings.template b/packages/strapi-generate-model/templates/bookshelf/model.settings.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/templates/bookshelf/model.template b/packages/strapi-generate-model/templates/bookshelf/model.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/templates/mongoose/model.settings.template b/packages/strapi-generate-model/templates/mongoose/model.settings.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-model/templates/mongoose/model.template b/packages/strapi-generate-model/templates/mongoose/model.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/.editorconfig b/packages/strapi-generate-new/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/.gitignore b/packages/strapi-generate-new/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/.npmignore b/packages/strapi-generate-new/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/LICENSE.md b/packages/strapi-generate-new/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/README.md b/packages/strapi-generate-new/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/.eslintignore b/packages/strapi-generate-new/files/.eslintignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/.eslintrc b/packages/strapi-generate-new/files/.eslintrc old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/application.json b/packages/strapi-generate-new/files/config/application.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/custom.json b/packages/strapi-generate-new/files/config/custom.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/development/custom.json b/packages/strapi-generate-new/files/config/environments/development/custom.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/development/request.json b/packages/strapi-generate-new/files/config/environments/development/request.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/development/response.json b/packages/strapi-generate-new/files/config/environments/development/response.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/development/security.json b/packages/strapi-generate-new/files/config/environments/development/security.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/development/server.json b/packages/strapi-generate-new/files/config/environments/development/server.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/custom.json b/packages/strapi-generate-new/files/config/environments/production/custom.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/database.json b/packages/strapi-generate-new/files/config/environments/production/database.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/request.json b/packages/strapi-generate-new/files/config/environments/production/request.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/response.json b/packages/strapi-generate-new/files/config/environments/production/response.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/security.json b/packages/strapi-generate-new/files/config/environments/production/security.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/production/server.json b/packages/strapi-generate-new/files/config/environments/production/server.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/custom.json b/packages/strapi-generate-new/files/config/environments/staging/custom.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/database.json b/packages/strapi-generate-new/files/config/environments/staging/database.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/request.json b/packages/strapi-generate-new/files/config/environments/staging/request.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/response.json b/packages/strapi-generate-new/files/config/environments/staging/response.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/security.json b/packages/strapi-generate-new/files/config/environments/staging/security.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/environments/staging/server.json b/packages/strapi-generate-new/files/config/environments/staging/server.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/functions/bootstrap.js b/packages/strapi-generate-new/files/config/functions/bootstrap.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/functions/cron.js b/packages/strapi-generate-new/files/config/functions/cron.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/functions/responses/404.js b/packages/strapi-generate-new/files/config/functions/responses/404.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/hook.json b/packages/strapi-generate-new/files/config/hook.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/language.json b/packages/strapi-generate-new/files/config/language.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/de_DE.json b/packages/strapi-generate-new/files/config/locales/de_DE.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/en_US.json b/packages/strapi-generate-new/files/config/locales/en_US.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/es_ES.json b/packages/strapi-generate-new/files/config/locales/es_ES.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/fr_FR.json b/packages/strapi-generate-new/files/config/locales/fr_FR.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/it_IT.json b/packages/strapi-generate-new/files/config/locales/it_IT.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/ja_JP.json b/packages/strapi-generate-new/files/config/locales/ja_JP.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/locales/tr_TR.json b/packages/strapi-generate-new/files/config/locales/tr_TR.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/config/middleware.json b/packages/strapi-generate-new/files/config/middleware.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/favicon.ico b/packages/strapi-generate-new/files/favicon.ico old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/public/index.html b/packages/strapi-generate-new/files/public/index.html old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/public/robots.txt b/packages/strapi-generate-new/files/public/robots.txt old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/files/server.js b/packages/strapi-generate-new/files/server.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/json/package.json.js b/packages/strapi-generate-new/json/package.json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/lib/after.js b/packages/strapi-generate-new/lib/after.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/lib/index.js b/packages/strapi-generate-new/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/templates/README.md b/packages/strapi-generate-new/templates/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/templates/editorconfig b/packages/strapi-generate-new/templates/editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/templates/gitignore b/packages/strapi-generate-new/templates/gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-new/templates/npmignore b/packages/strapi-generate-new/templates/npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/.editorconfig b/packages/strapi-generate-plugin/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/.gitignore b/packages/strapi-generate-plugin/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/.npmignore b/packages/strapi-generate-plugin/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/LICENSE.md b/packages/strapi-generate-plugin/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/README.md b/packages/strapi-generate-plugin/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/.editorconfig b/packages/strapi-generate-plugin/files/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/.gitattributes b/packages/strapi-generate-plugin/files/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/README.md b/packages/strapi-generate-plugin/files/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/App/actions.js b/packages/strapi-generate-plugin/files/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/App/constants.js b/packages/strapi-generate-plugin/files/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/App/index.js b/packages/strapi-generate-plugin/files/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/App/reducer.js b/packages/strapi-generate-plugin/files/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/App/selectors.js b/packages/strapi-generate-plugin/files/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/actions.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/constants.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/index.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/reducer.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/saga.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/saga.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/selectors.js b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/styles.scss b/packages/strapi-generate-plugin/files/admin/src/containers/HomePage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/NotFoundPage/index.js b/packages/strapi-generate-plugin/files/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/translations/en.json b/packages/strapi-generate-plugin/files/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/translations/es.json b/packages/strapi-generate-plugin/files/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/files/admin/src/translations/fr.json b/packages/strapi-generate-plugin/files/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/json/package.json.js b/packages/strapi-generate-plugin/json/package.json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/json/routes.json.js b/packages/strapi-generate-plugin/json/routes.json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/lib/before.js b/packages/strapi-generate-plugin/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/lib/index.js b/packages/strapi-generate-plugin/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/package.json b/packages/strapi-generate-plugin/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/templates/controller.template b/packages/strapi-generate-plugin/templates/controller.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-plugin/templates/service.template b/packages/strapi-generate-plugin/templates/service.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/.editorconfig b/packages/strapi-generate-policy/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/.gitignore b/packages/strapi-generate-policy/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/.npmignore b/packages/strapi-generate-policy/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/LICENSE.md b/packages/strapi-generate-policy/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/README.md b/packages/strapi-generate-policy/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/lib/before.js b/packages/strapi-generate-policy/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/lib/index.js b/packages/strapi-generate-policy/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/package.json b/packages/strapi-generate-policy/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-policy/templates/policy.template b/packages/strapi-generate-policy/templates/policy.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/.editorconfig b/packages/strapi-generate-service/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/.gitignore b/packages/strapi-generate-service/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/.npmignore b/packages/strapi-generate-service/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/LICENSE.md b/packages/strapi-generate-service/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/README.md b/packages/strapi-generate-service/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/lib/before.js b/packages/strapi-generate-service/lib/before.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/lib/index.js b/packages/strapi-generate-service/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/package.json b/packages/strapi-generate-service/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/templates/bookshelf/service.template b/packages/strapi-generate-service/templates/bookshelf/service.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate-service/templates/mongoose/service.template b/packages/strapi-generate-service/templates/mongoose/service.template old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/.editorconfig b/packages/strapi-generate/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/.gitignore b/packages/strapi-generate/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/.npmignore b/packages/strapi-generate/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/LICENSE.md b/packages/strapi-generate/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/README.md b/packages/strapi-generate/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/generate.js b/packages/strapi-generate/lib/generate.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/helpers/copy/index.js b/packages/strapi-generate/lib/helpers/copy/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/helpers/file/index.js b/packages/strapi-generate/lib/helpers/file/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/helpers/folder/index.js b/packages/strapi-generate/lib/helpers/folder/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/helpers/jsonfile/index.js b/packages/strapi-generate/lib/helpers/jsonfile/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/helpers/template/index.js b/packages/strapi-generate/lib/helpers/template/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/index.js b/packages/strapi-generate/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/target.js b/packages/strapi-generate/lib/target.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/lib/util.js b/packages/strapi-generate/lib/util.js old mode 100755 new mode 100644 diff --git a/packages/strapi-generate/package.json b/packages/strapi-generate/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/.gitignore b/packages/strapi-helper-plugin/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/README.md b/packages/strapi-helper-plugin/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/config.js b/packages/strapi-helper-plugin/lib/internals/config.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json b/packages/strapi-helper-plugin/lib/internals/eslint/.eslintrc.json old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/eslint/eslint-config.js b/packages/strapi-helper-plugin/lib/internals/eslint/eslint-config.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/es6.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/component/es6.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/index.js b/packages/strapi-helper-plugin/lib/internals/generators/component/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/messages.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/component/messages.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/stateless.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/component/stateless.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/styles.scss.hbs b/packages/strapi-helper-plugin/lib/internals/generators/component/styles.scss.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/component/test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/component/test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/actions.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/actions.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/actions.test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/actions.test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/constants.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/constants.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/index.js b/packages/strapi-helper-plugin/lib/internals/generators/container/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/index.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/index.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/messages.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/messages.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/reducer.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/reducer.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/reducer.test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/reducer.test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/saga.test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/saga.test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/sagas.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/sagas.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/selectors.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/selectors.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/selectors.test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/selectors.test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/styles.scss.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/styles.scss.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/container/test.js.hbs b/packages/strapi-helper-plugin/lib/internals/generators/container/test.js.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/index.js b/packages/strapi-helper-plugin/lib/internals/generators/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/add-locale-data.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/add-locale-data.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/app-locale.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/app-locale.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/format-translation-messages.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/format-translation-messages.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/index.js b/packages/strapi-helper-plugin/lib/internals/generators/language/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/intl-locale-data.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/intl-locale-data.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/polyfill-intl-locale.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/polyfill-intl-locale.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/translation-messages.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/translation-messages.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/language/translations-json.hbs b/packages/strapi-helper-plugin/lib/internals/generators/language/translations-json.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/route/index.js b/packages/strapi-helper-plugin/lib/internals/generators/route/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/route/route.hbs b/packages/strapi-helper-plugin/lib/internals/generators/route/route.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/route/routeWithReducer.hbs b/packages/strapi-helper-plugin/lib/internals/generators/route/routeWithReducer.hbs old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/generators/utils/componentExists.js b/packages/strapi-helper-plugin/lib/internals/generators/utils/componentExists.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/postcss/postcss.config.js b/packages/strapi-helper-plugin/lib/internals/postcss/postcss.config.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/scripts/analyze.js b/packages/strapi-helper-plugin/lib/internals/scripts/analyze.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/scripts/dependencies.js b/packages/strapi-helper-plugin/lib/internals/scripts/dependencies.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/scripts/helpers/checkmark.js b/packages/strapi-helper-plugin/lib/internals/scripts/helpers/checkmark.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/scripts/helpers/progress.js b/packages/strapi-helper-plugin/lib/internals/scripts/helpers/progress.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/internals/scripts/npmcheckversion.js b/packages/strapi-helper-plugin/lib/internals/scripts/npmcheckversion.js old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 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 old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/server/index.js b/packages/strapi-helper-plugin/lib/server/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/server/logger.js b/packages/strapi-helper-plugin/lib/server/logger.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/server/middlewares/frontendMiddleware.js b/packages/strapi-helper-plugin/lib/server/middlewares/frontendMiddleware.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/app.js b/packages/strapi-helper-plugin/lib/src/app.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_barred.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_barred.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_bold.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_bold.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_bullet-list.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_bullet-list.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_code-block.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_code-block.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_danger.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_danger.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_flag_not_found.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_flag_not_found.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_info.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_info.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_italic.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_italic.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_link.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_link.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_media.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_media.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_numbered-list.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_numbered-list.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_quote-block.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_quote-block.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_success.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_success.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_underline.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_underline.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/icons/icon_warning.svg b/packages/strapi-helper-plugin/lib/src/assets/icons/icon_warning.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_boolean.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_boolean.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_date.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_date.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_image.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_image.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_json.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_json.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_relation.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_relation.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_string.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_string.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/assets/images/icon_text.svg b/packages/strapi-helper-plugin/lib/src/assets/images/icon_text.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/Button/index.js b/packages/strapi-helper-plugin/lib/src/components/Button/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/Button/styles.scss b/packages/strapi-helper-plugin/lib/src/components/Button/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/PluginHeader/index.js b/packages/strapi-helper-plugin/lib/src/components/PluginHeader/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/index.js b/packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/styles.scss b/packages/strapi-helper-plugin/lib/src/components/PluginHeaderActions/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/index.js b/packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/styles.scss b/packages/strapi-helper-plugin/lib/src/components/PluginHeaderTitle/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/i18n.js b/packages/strapi-helper-plugin/lib/src/i18n.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/reducers.js b/packages/strapi-helper-plugin/lib/src/reducers.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/routes.js b/packages/strapi-helper-plugin/lib/src/routes.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/store.js b/packages/strapi-helper-plugin/lib/src/store.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/utils/asyncInjectors.js b/packages/strapi-helper-plugin/lib/src/utils/asyncInjectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/lib/src/utils/request.js b/packages/strapi-helper-plugin/lib/src/utils/request.js old mode 100755 new mode 100644 diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/.gitignore b/packages/strapi-hook-bookshelf/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/.npmignore b/packages/strapi-hook-bookshelf/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/LICENSE.md b/packages/strapi-hook-bookshelf/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/README.md b/packages/strapi-hook-bookshelf/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/lib/index.js b/packages/strapi-hook-bookshelf/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/lib/utils/graphql.js b/packages/strapi-hook-bookshelf/lib/utils/graphql.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/lib/utils/index.js b/packages/strapi-hook-bookshelf/lib/utils/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-bookshelf/package.json b/packages/strapi-hook-bookshelf/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/.editorconfig b/packages/strapi-hook-ejs/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/.gitignore b/packages/strapi-hook-ejs/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/.npmignore b/packages/strapi-hook-ejs/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/LICENSE.md b/packages/strapi-hook-ejs/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/README.md b/packages/strapi-hook-ejs/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/lib/index.js b/packages/strapi-hook-ejs/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-ejs/package.json b/packages/strapi-hook-ejs/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/.editorconfig b/packages/strapi-hook-knex/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/.gitignore b/packages/strapi-hook-knex/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/.npmignore b/packages/strapi-hook-knex/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/LICENSE.md b/packages/strapi-hook-knex/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/README.md b/packages/strapi-hook-knex/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/lib/index.js b/packages/strapi-hook-knex/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-knex/package.json b/packages/strapi-hook-knex/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/.editorconfig b/packages/strapi-hook-mongoose/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/.gitignore b/packages/strapi-hook-mongoose/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/.npmignore b/packages/strapi-hook-mongoose/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/LICENSE.md b/packages/strapi-hook-mongoose/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/README.md b/packages/strapi-hook-mongoose/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/lib/index.js b/packages/strapi-hook-mongoose/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/lib/utils/index.js b/packages/strapi-hook-mongoose/lib/utils/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-mongoose/package.json b/packages/strapi-hook-mongoose/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/.editorconfig b/packages/strapi-hook-redis/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/.gitignore b/packages/strapi-hook-redis/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/.npmignore b/packages/strapi-hook-redis/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/LICENSE.md b/packages/strapi-hook-redis/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/README.md b/packages/strapi-hook-redis/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/lib/index.js b/packages/strapi-hook-redis/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-hook-redis/package.json b/packages/strapi-hook-redis/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/.editorconfig b/packages/strapi-middleware-views/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/.gitignore b/packages/strapi-middleware-views/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/.npmignore b/packages/strapi-middleware-views/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/LICENSE.md b/packages/strapi-middleware-views/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/README.md b/packages/strapi-middleware-views/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/lib/index.js b/packages/strapi-middleware-views/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-middleware-views/package.json b/packages/strapi-middleware-views/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/.editorconfig b/packages/strapi-plugin-content-manager/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/.gitattributes b/packages/strapi-plugin-content-manager/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/.gitignore b/packages/strapi-plugin-content-manager/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/.npmignore b/packages/strapi-plugin-content-manager/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/README.md b/packages/strapi-plugin-content-manager/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/.npmignore b/packages/strapi-plugin-content-manager/admin/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_barred.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_barred.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bold.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bold.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bullet-list.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_bullet-list.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_code-block.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_code-block.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_italic.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_italic.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_link.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_link.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_media.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_media.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_numbered-list.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_numbered-list.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_quote-block.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_quote-block.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_underline.svg b/packages/strapi-plugin-content-manager/admin/src/assets/icons/icon_underline.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Table/index.js b/packages/strapi-plugin-content-manager/admin/src/components/Table/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Table/styles.scss b/packages/strapi-plugin-content-manager/admin/src/components/Table/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/TableHeader/index.js b/packages/strapi-plugin-content-manager/admin/src/components/TableHeader/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/TableHeader/styles.scss b/packages/strapi-plugin-content-manager/admin/src/components/TableHeader/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/TableRow/index.js b/packages/strapi-plugin-content-manager/admin/src/components/TableRow/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/components/TableRow/styles.scss b/packages/strapi-plugin-content-manager/admin/src/components/TableRow/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/actions.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/constants.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/index.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/reducer.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/sagas.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/App/selectors.js b/packages/strapi-plugin-content-manager/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/Home/index.js b/packages/strapi-plugin-content-manager/admin/src/containers/Home/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/Home/messages.json b/packages/strapi-plugin-content-manager/admin/src/containers/Home/messages.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/Home/styles.scss b/packages/strapi-plugin-content-manager/admin/src/containers/Home/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/messages.js b/packages/strapi-plugin-content-manager/admin/src/containers/NotFoundPage/messages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/routes.json b/packages/strapi-plugin-content-manager/admin/src/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/styles/main.scss b/packages/strapi-plugin-content-manager/admin/src/styles/main.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.bootstrap.scss b/packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.bootstrap.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.scss b/packages/strapi-plugin-content-manager/admin/src/styles/variables/variables.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/en.json b/packages/strapi-plugin-content-manager/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/es.json b/packages/strapi-plugin-content-manager/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/fr.json b/packages/strapi-plugin-content-manager/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/tr.json b/packages/strapi-plugin-content-manager/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/translations/zh.json b/packages/strapi-plugin-content-manager/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/admin/src/utils/schema.js b/packages/strapi-plugin-content-manager/admin/src/utils/schema.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/config/admin.json b/packages/strapi-plugin-content-manager/config/admin.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/config/queries/bookshelf.js b/packages/strapi-plugin-content-manager/config/queries/bookshelf.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/config/queries/mongoose.js b/packages/strapi-plugin-content-manager/config/queries/mongoose.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/config/routes.json b/packages/strapi-plugin-content-manager/config/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/controllers/ContentManager.js b/packages/strapi-plugin-content-manager/controllers/ContentManager.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/.editorconfig b/packages/strapi-plugin-content-type-builder/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/.gitattributes b/packages/strapi-plugin-content-type-builder/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/.gitignore b/packages/strapi-plugin-content-type-builder/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/README.md b/packages/strapi-plugin-content-type-builder/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_danger.svg b/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_danger.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_flag_not_found.svg b/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_flag_not_found.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_info.svg b/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_info.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_success.svg b/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_success.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_warning.svg b/packages/strapi-plugin-content-type-builder/admin/src/assets/icons/icon_warning.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/actions.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/constants.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/index.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/reducer.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/sagas.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/sagas.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/App/selectors.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/routes.json b/packages/strapi-plugin-content-type-builder/admin/src/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/en.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/es.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/fr.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/tr.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/admin/src/translations/zh.json b/packages/strapi-plugin-content-type-builder/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/config/routes.json b/packages/strapi-plugin-content-type-builder/config/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js b/packages/strapi-plugin-content-type-builder/controllers/ContentTypeBuilder.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js b/packages/strapi-plugin-content-type-builder/services/ContentTypeBuilder.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/.editorconfig b/packages/strapi-plugin-email/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/.gitattributes b/packages/strapi-plugin-email/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/.gitignore b/packages/strapi-plugin-email/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/README.md b/packages/strapi-plugin-email/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/containers/App/index.js b/packages/strapi-plugin-email/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/containers/App/reducer.js b/packages/strapi-plugin-email/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/containers/App/selectors.js b/packages/strapi-plugin-email/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-email/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/de.json b/packages/strapi-plugin-email/admin/src/translations/de.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/en.json b/packages/strapi-plugin-email/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/es.json b/packages/strapi-plugin-email/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/fr.json b/packages/strapi-plugin-email/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/tr.json b/packages/strapi-plugin-email/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-email/admin/src/translations/zh.json b/packages/strapi-plugin-email/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-graphql/.editorconfig b/packages/strapi-plugin-graphql/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-graphql/.gitattributes b/packages/strapi-plugin-graphql/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-graphql/README.md b/packages/strapi-plugin-graphql/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/.gitignore b/packages/strapi-plugin-settings-manager/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/.npmignore b/packages/strapi-plugin-settings-manager/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/README.md b/packages/strapi-plugin-settings-manager/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/.npmignore b/packages/strapi-plugin-settings-manager/admin/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/assets/icons/icon_success.svg b/packages/strapi-plugin-settings-manager/admin/src/assets/icons/icon_success.svg old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/assets/images/baseline-18.png b/packages/strapi-plugin-settings-manager/admin/src/assets/images/baseline-18.png old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/Button/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/Button/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/Button/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/Button/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/ContentHeader/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/EditForm/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/EditForm/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/EditForm/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/EditForm/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/EditFormSection/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/EditFormSection/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/EditFormSectionNested/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/EditFormSectionNested/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/HeaderNav/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/InputEnum/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/messages.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputNumber/messages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/InputSelect/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputText/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputText/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputText/messages.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputText/messages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/messages.js b/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/messages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/InputToggle/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/List/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/List/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/List/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenu/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/config.json b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/config.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuLink/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/PluginLeftMenuSection/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/PopUpForm/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/config.json b/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/config.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/WithFormSection/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/WithInput/index.js b/packages/strapi-plugin-settings-manager/admin/src/components/WithInput/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/components/WithInput/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/components/WithInput/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/actions.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/constants.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/index.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/reducer.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/sagas.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/sagas.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/selectors.js b/packages/strapi-plugin-settings-manager/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/App/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/containers/App/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/actions.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/config.json b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/config.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/constants.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/sagas.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/sagas.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/selectors.js b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/styles.scss b/packages/strapi-plugin-settings-manager/admin/src/containers/HomePage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/messages.js b/packages/strapi-plugin-settings-manager/admin/src/containers/NotFoundPage/messages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/routes.json b/packages/strapi-plugin-settings-manager/admin/src/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/de.json b/packages/strapi-plugin-settings-manager/admin/src/translations/de.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/en.json b/packages/strapi-plugin-settings-manager/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/es.json b/packages/strapi-plugin-settings-manager/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/fr.json b/packages/strapi-plugin-settings-manager/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/tr.json b/packages/strapi-plugin-settings-manager/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/admin/src/translations/zh.json b/packages/strapi-plugin-settings-manager/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/config/routes.json b/packages/strapi-plugin-settings-manager/config/routes.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/controllers/SettingsManager.js b/packages/strapi-plugin-settings-manager/controllers/SettingsManager.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/package.json b/packages/strapi-plugin-settings-manager/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/services/Languages.js b/packages/strapi-plugin-settings-manager/services/Languages.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-settings-manager/services/SettingsManager.js b/packages/strapi-plugin-settings-manager/services/SettingsManager.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/.editorconfig b/packages/strapi-plugin-upload/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/.gitattributes b/packages/strapi-plugin-upload/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/README.md b/packages/strapi-plugin-upload/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/App/index.js b/packages/strapi-plugin-upload/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/App/reducer.js b/packages/strapi-plugin-upload/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/App/selectors.js b/packages/strapi-plugin-upload/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/actions.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/constants.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/saga.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/saga.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/styles.scss b/packages/strapi-plugin-upload/admin/src/containers/HomePage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-upload/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/translations/es.json b/packages/strapi-plugin-upload/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/translations/fr.json b/packages/strapi-plugin-upload/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-upload/admin/src/translations/zh.json b/packages/strapi-plugin-upload/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/.editorconfig b/packages/strapi-plugin-users-permissions/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/.gitattributes b/packages/strapi-plugin-users-permissions/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/.gitignore b/packages/strapi-plugin-users-permissions/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/README.md b/packages/strapi-plugin-users-permissions/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/actions.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/constants.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/reducer.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/selectors.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/actions.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/actions.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/constants.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/constants.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/reducer.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/saga.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/saga.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/selectors.js b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/selectors.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/styles.scss b/packages/strapi-plugin-users-permissions/admin/src/containers/HomePage/styles.scss old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/NotFoundPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/NotFoundPage/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/de.json b/packages/strapi-plugin-users-permissions/admin/src/translations/de.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/es.json b/packages/strapi-plugin-users-permissions/admin/src/translations/es.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/fr.json b/packages/strapi-plugin-users-permissions/admin/src/translations/fr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/tr.json b/packages/strapi-plugin-users-permissions/admin/src/translations/tr.json old mode 100755 new mode 100644 diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/zh.json b/packages/strapi-plugin-users-permissions/admin/src/translations/zh.json old mode 100755 new mode 100644 diff --git a/packages/strapi-upload-cloudinary/.editorconfig b/packages/strapi-upload-cloudinary/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-upload-cloudinary/.gitattributes b/packages/strapi-upload-cloudinary/.gitattributes old mode 100755 new mode 100644 diff --git a/packages/strapi-upload-cloudinary/README.md b/packages/strapi-upload-cloudinary/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/.editorconfig b/packages/strapi-utils/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/.gitignore b/packages/strapi-utils/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/.npmignore b/packages/strapi-utils/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/LICENSE.md b/packages/strapi-utils/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/README.md b/packages/strapi-utils/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/cli.js b/packages/strapi-utils/lib/cli.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/commander.js b/packages/strapi-utils/lib/commander.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/finder.js b/packages/strapi-utils/lib/finder.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/index.js b/packages/strapi-utils/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/joi-json.js b/packages/strapi-utils/lib/joi-json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/json.js b/packages/strapi-utils/lib/json.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/knex.js b/packages/strapi-utils/lib/knex.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/lib/regex.js b/packages/strapi-utils/lib/regex.js old mode 100755 new mode 100644 diff --git a/packages/strapi-utils/package.json b/packages/strapi-utils/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi/.editorconfig b/packages/strapi/.editorconfig old mode 100755 new mode 100644 diff --git a/packages/strapi/.gitignore b/packages/strapi/.gitignore old mode 100755 new mode 100644 diff --git a/packages/strapi/.npmignore b/packages/strapi/.npmignore old mode 100755 new mode 100644 diff --git a/packages/strapi/LICENSE.md b/packages/strapi/LICENSE.md old mode 100755 new mode 100644 diff --git a/packages/strapi/README.md b/packages/strapi/README.md old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-generate.js b/packages/strapi/bin/strapi-generate.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-install.js b/packages/strapi/bin/strapi-install.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-new.js b/packages/strapi/bin/strapi-new.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-start.js b/packages/strapi/bin/strapi-start.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-uninstall.js b/packages/strapi/bin/strapi-uninstall.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi-update.js b/packages/strapi/bin/strapi-update.js old mode 100755 new mode 100644 diff --git a/packages/strapi/bin/strapi.js b/packages/strapi/bin/strapi.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/Strapi.js b/packages/strapi/lib/Strapi.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/core/apis.js b/packages/strapi/lib/core/apis.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/core/hooks.js b/packages/strapi/lib/core/hooks.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/core/index.js b/packages/strapi/lib/core/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/core/middlewares.js b/packages/strapi/lib/core/middlewares.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/hooks/index.js b/packages/strapi/lib/hooks/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/index.js b/packages/strapi/lib/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/cors/index.js b/packages/strapi/lib/middlewares/cors/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/cron/index.js b/packages/strapi/lib/middlewares/cron/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/csp/index.js b/packages/strapi/lib/middlewares/csp/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/csrf/index.js b/packages/strapi/lib/middlewares/csrf/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/favicon/index.js b/packages/strapi/lib/middlewares/favicon/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/gzip/index.js b/packages/strapi/lib/middlewares/gzip/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/hsts/index.js b/packages/strapi/lib/middlewares/hsts/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/index.js b/packages/strapi/lib/middlewares/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/ip/index.js b/packages/strapi/lib/middlewares/ip/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/language/index.js b/packages/strapi/lib/middlewares/language/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/logger/index.js b/packages/strapi/lib/middlewares/logger/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/p3p/index.js b/packages/strapi/lib/middlewares/p3p/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/parser/index.js b/packages/strapi/lib/middlewares/parser/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/public/index.js b/packages/strapi/lib/middlewares/public/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/responseTime/index.js b/packages/strapi/lib/middlewares/responseTime/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/responses/index.js b/packages/strapi/lib/middlewares/responses/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/responses/responses/created.js b/packages/strapi/lib/middlewares/responses/responses/created.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/responses/responses/index.js b/packages/strapi/lib/middlewares/responses/responses/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/responses/responses/send.js b/packages/strapi/lib/middlewares/responses/responses/send.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/router/index.js b/packages/strapi/lib/middlewares/router/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/router/utils/composeEndpoint.js b/packages/strapi/lib/middlewares/router/utils/composeEndpoint.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/router/utils/routerChecker.js b/packages/strapi/lib/middlewares/router/utils/routerChecker.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/session/index.js b/packages/strapi/lib/middlewares/session/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/xframe/index.js b/packages/strapi/lib/middlewares/xframe/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/middlewares/xss/index.js b/packages/strapi/lib/middlewares/xss/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/lib/utils/index.js b/packages/strapi/lib/utils/index.js old mode 100755 new mode 100644 diff --git a/packages/strapi/package.json b/packages/strapi/package.json old mode 100755 new mode 100644 diff --git a/packages/strapi/test/application.js b/packages/strapi/test/application.js old mode 100755 new mode 100644 diff --git a/packages/strapi/test/core.js b/packages/strapi/test/core.js old mode 100755 new mode 100644 diff --git a/packages/strapi/test/logger.js b/packages/strapi/test/logger.js old mode 100755 new mode 100644 diff --git a/packages/strapi/test/middlewares.js b/packages/strapi/test/middlewares.js old mode 100755 new mode 100644 diff --git a/scripts/_get-test-directories.sh b/scripts/_get-test-directories.sh old mode 100755 new mode 100644 diff --git a/scripts/createSymlinkDependencies.js b/scripts/createSymlinkDependencies.js old mode 100755 new mode 100644 diff --git a/scripts/publish.js b/scripts/publish.js old mode 100755 new mode 100644 diff --git a/scripts/removeSymlinkDependencies.js b/scripts/removeSymlinkDependencies.js old mode 100755 new mode 100644 diff --git a/scripts/setup.js b/scripts/setup.js old mode 100755 new mode 100644 diff --git a/scripts/test.sh b/scripts/test.sh old mode 100755 new mode 100644 From 81b3149655adb1f71ff90ae053f3de5781b5c2be Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Tue, 25 Sep 2018 10:11:44 +0200 Subject: [PATCH 20/22] Fix space --- packages/strapi-admin/admin/src/translations/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/translations/en.json b/packages/strapi-admin/admin/src/translations/en.json index 5d048e606c..5e5e54c33e 100755 --- a/packages/strapi-admin/admin/src/translations/en.json +++ b/packages/strapi-admin/admin/src/translations/en.json @@ -1,4 +1,4 @@ - { +{ "app.components.Button.save": "Save", "app.components.Button.cancel": "Cancel", From 2aebb744244cf04d3e5d6195da9391cb8d1d2727 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Tue, 25 Sep 2018 14:42:15 +0200 Subject: [PATCH 21/22] Fix private key in User model --- .../strapi-plugin-users-permissions/models/User.settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-plugin-users-permissions/models/User.settings.json b/packages/strapi-plugin-users-permissions/models/User.settings.json index e166ceabde..eb339cf4b6 100644 --- a/packages/strapi-plugin-users-permissions/models/User.settings.json +++ b/packages/strapi-plugin-users-permissions/models/User.settings.json @@ -27,7 +27,7 @@ "resetPasswordToken": { "type": "string", "configurable": false, - " ": true + "private": true }, "confirmed": { "type": "boolean", From 46c9b0f9668de42c6c38d3b4642522c4f00e1925 Mon Sep 17 00:00:00 2001 From: Jim LAURIE Date: Wed, 26 Sep 2018 11:08:10 +0200 Subject: [PATCH 22/22] 3.0.0-alpha.14.2 --- docs/3.x.x/en/README.md | 4 ++-- package.json | 2 +- packages/strapi-admin/package.json | 6 ++--- packages/strapi-email-amazon-ses/package.json | 2 +- packages/strapi-email-mailgun/package.json | 2 +- packages/strapi-email-sendgrid/package.json | 2 +- packages/strapi-email-sendmail/package.json | 2 +- packages/strapi-generate-admin/package.json | 6 ++--- 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-hook-bookshelf/package.json | 6 ++--- packages/strapi-hook-ejs/package.json | 2 +- packages/strapi-hook-knex/package.json | 2 +- packages/strapi-hook-mongoose/package.json | 4 ++-- packages/strapi-hook-redis/package.json | 4 ++-- packages/strapi-lint/package.json | 2 +- packages/strapi-middleware-views/package.json | 2 +- .../package.json | 4 ++-- .../package.json | 8 +++---- packages/strapi-plugin-email/package.json | 6 ++--- packages/strapi-plugin-graphql/package.json | 6 ++--- .../package.json | 4 ++-- packages/strapi-plugin-upload/package.json | 6 ++--- .../package.json | 4 ++-- packages/strapi-upload-aws-s3/package.json | 2 +- .../strapi-upload-cloudinary/package.json | 2 +- packages/strapi-upload-local/package.json | 2 +- packages/strapi-upload-rackspace/package.json | 2 +- packages/strapi-utils/package.json | 2 +- packages/strapi/package.json | 22 +++++++++---------- 37 files changed, 70 insertions(+), 70 deletions(-) diff --git a/docs/3.x.x/en/README.md b/docs/3.x.x/en/README.md index 24bed369b4..ce1024052a 100644 --- a/docs/3.x.x/en/README.md +++ b/docs/3.x.x/en/README.md @@ -15,10 +15,10 @@ The most advanced open-source Content Management Framework to build powerful API {% endcenter %} -## v3@alpha.14 is available! +## v3@alpha.14.2 is available! We've been working on a major update for Strapi during the past months, rewriting the core framework and the dashboard. -This documentation is only related to Strapi v3@alpha.14 ([v1 documentation is still available](http://strapi.io/documentation/1.x.x)). +This documentation is only related to Strapi v3@alpha.14.2 ([v1 documentation is still available](http://strapi.io/documentation/1.x.x)). **[Get Started](getting-started/installation.md)**
Learn how to install Strapi and start developing your API. diff --git a/package.json b/package.json index 2bfd74985c..73f165a69e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "dependencies": {}, "devDependencies": { "assert": "~1.3.0", diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index ea981d3377..08263a8700 100644 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -1,6 +1,6 @@ { "name": "strapi-admin", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Strapi Admin", "repository": { "type": "git", @@ -31,8 +31,8 @@ }, "devDependencies": { "sanitize.css": "^4.1.0", - "strapi-helper-plugin": "3.0.0-alpha.14.1.1", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2", + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi", diff --git a/packages/strapi-email-amazon-ses/package.json b/packages/strapi-email-amazon-ses/package.json index a5423c8e2f..f437af4c8e 100644 --- a/packages/strapi-email-amazon-ses/package.json +++ b/packages/strapi-email-amazon-ses/package.json @@ -1,6 +1,6 @@ { "name": "strapi-email-amazon-ses", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Amazon SES provider for strapi email", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-email-mailgun/package.json b/packages/strapi-email-mailgun/package.json index cb58eb49d2..1280eab8a3 100644 --- a/packages/strapi-email-mailgun/package.json +++ b/packages/strapi-email-mailgun/package.json @@ -1,6 +1,6 @@ { "name": "strapi-email-mailgun", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Mailgun provider for strapi email plugin", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-email-sendgrid/package.json b/packages/strapi-email-sendgrid/package.json index 00f7d12bfa..00c90127f6 100644 --- a/packages/strapi-email-sendgrid/package.json +++ b/packages/strapi-email-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "strapi-email-sendgrid", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Sendgrid provider for strapi email", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-email-sendmail/package.json b/packages/strapi-email-sendmail/package.json index 9dd2f47190..ca8838c08b 100644 --- a/packages/strapi-email-sendmail/package.json +++ b/packages/strapi-email-sendmail/package.json @@ -1,6 +1,6 @@ { "name": "strapi-email-sendmail", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Sendmail provider for strapi email", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-generate-admin/package.json b/packages/strapi-generate-admin/package.json index 3a8bfd988f..44deba6bed 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Generate the default admin panel for a Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -15,8 +15,8 @@ "dependencies": { "fs-extra": "^4.0.1", "lodash": "^4.17.5", - "strapi-admin": "3.0.0-alpha.14.1.1", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-admin": "3.0.0-alpha.14.2", + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-generate-api/package.json b/packages/strapi-generate-api/package.json index 6d1dd5600c..a5fc9f08e0 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 98d3193375..181d6a56ce 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 ab322afa3b..d116aa32ac 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 63593d9144..3e605d0dd3 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Generate a new Strapi application.", "homepage": "http://strapi.io", "keywords": [ @@ -19,7 +19,7 @@ "listr": "^0.14.1", "lodash": "^4.17.5", "ora": "^2.1.0", - "strapi-utils": "3.0.0-alpha.14.1.1", + "strapi-utils": "3.0.0-alpha.14.2", "uuid": "^3.1.0" }, "scripts": { diff --git a/packages/strapi-generate-plugin/package.json b/packages/strapi-generate-plugin/package.json index fa2cdb7f9f..c2bb917f74 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 16723f65a7..43cb78731c 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 b126e48c50..1f4852b1fd 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.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 36ba239d2e..5decbc14f3 100644 --- a/packages/strapi-generate/package.json +++ b/packages/strapi-generate/package.json @@ -1,6 +1,6 @@ { "name": "strapi-generate", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.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.5", "reportback": "^2.0.1", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-helper-plugin/package.json b/packages/strapi-helper-plugin/package.json index 95ee4586ff..c0be176a8a 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Helper for Strapi plugins development", "engines": { "node": ">= 9.0.0", diff --git a/packages/strapi-hook-bookshelf/package.json b/packages/strapi-hook-bookshelf/package.json index 5b5d5dffb1..d9d7addda3 100644 --- a/packages/strapi-hook-bookshelf/package.json +++ b/packages/strapi-hook-bookshelf/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-bookshelf", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Bookshelf hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -21,8 +21,8 @@ "lodash": "^4.17.5", "pluralize": "^6.0.0", "rimraf": "^2.6.2", - "strapi-hook-knex": "3.0.0-alpha.14.1.1", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-hook-knex": "3.0.0-alpha.14.2", + "strapi-utils": "3.0.0-alpha.14.2" }, "strapi": { "dependencies": [ diff --git a/packages/strapi-hook-ejs/package.json b/packages/strapi-hook-ejs/package.json index 750606ab40..fba4b051f7 100644 --- a/packages/strapi-hook-ejs/package.json +++ b/packages/strapi-hook-ejs/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-ejs", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "EJS hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-hook-knex/package.json b/packages/strapi-hook-knex/package.json index 29a5bfeb5d..0e06644693 100644 --- a/packages/strapi-hook-knex/package.json +++ b/packages/strapi-hook-knex/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-knex", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Knex hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-hook-mongoose/package.json b/packages/strapi-hook-mongoose/package.json index 9c78ca536c..9124c49d4f 100644 --- a/packages/strapi-hook-mongoose/package.json +++ b/packages/strapi-hook-mongoose/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-mongoose", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Mongoose hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -20,7 +20,7 @@ "mongoose-float": "^1.0.2", "pluralize": "^6.0.0", "rimraf": "^2.6.2", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-hook-redis/package.json b/packages/strapi-hook-redis/package.json index 07d40e4996..4efa8d72d6 100644 --- a/packages/strapi-hook-redis/package.json +++ b/packages/strapi-hook-redis/package.json @@ -1,6 +1,6 @@ { "name": "strapi-hook-redis", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Redis hook for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ @@ -19,7 +19,7 @@ "lodash": "^4.17.5", "rimraf": "^2.6.2", "stack-trace": "0.0.10", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "email": "hi@strapi.io", diff --git a/packages/strapi-lint/package.json b/packages/strapi-lint/package.json index f01e05ccb2..42b9995ecd 100644 --- a/packages/strapi-lint/package.json +++ b/packages/strapi-lint/package.json @@ -1,6 +1,6 @@ { "name": "strapi-lint", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Strapi eslint and prettier configurations", "directories": { "lib": "lib" diff --git a/packages/strapi-middleware-views/package.json b/packages/strapi-middleware-views/package.json index 0112fa1d7d..95e903df8e 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Views middleware to enable server-side rendering for the Strapi framework", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-plugin-content-manager/package.json b/packages/strapi-plugin-content-manager/package.json index 47aa89a1f8..bac0f161b4 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "A powerful UI to easily manage your data.", "strapi": { "name": "Content Manager", @@ -26,7 +26,7 @@ "draft-js": "^0.10.5", "react-select": "^1.2.1", "showdown": "^1.8.6", - "strapi-helper-plugin": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "dependencies": { "pluralize": "^7.0.0" diff --git a/packages/strapi-plugin-content-type-builder/package.json b/packages/strapi-plugin-content-type-builder/package.json index 8729f98025..1ff54588d2 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Strapi plugin to create content type (API).", "strapi": { "name": "Content Type Builder", @@ -24,11 +24,11 @@ "dependencies": { "immutable": "^3.8.2", "pluralize": "^7.0.0", - "strapi-generate": "3.0.0-alpha.14.1.1", - "strapi-generate-api": "3.0.0-alpha.14.1.1" + "strapi-generate": "3.0.0-alpha.14.2", + "strapi-generate-api": "3.0.0-alpha.14.2" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-email/package.json b/packages/strapi-plugin-email/package.json index 188549644d..0072a3b91a 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "This is the description of the plugin.", "strapi": { "name": "Email", @@ -22,11 +22,11 @@ "prepublishOnly": "IS_MONOREPO=true npm run build" }, "dependencies": { - "strapi-email-sendmail": "3.0.0-alpha.14.1.1" + "strapi-email-sendmail": "3.0.0-alpha.14.2" }, "devDependencies": { "react-copy-to-clipboard": "5.0.1", - "strapi-helper-plugin": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-graphql/package.json b/packages/strapi-plugin-graphql/package.json index 1666a298af..53100bcde9 100644 --- a/packages/strapi-plugin-graphql/package.json +++ b/packages/strapi-plugin-graphql/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-graphql", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "This is the description of the plugin.", "strapi": { "name": "graphql", @@ -30,7 +30,7 @@ "graphql-type-json": "^0.2.1", "graphql-type-datetime": "^0.2.2", "pluralize": "^7.0.0", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "name": "A Strapi developer", @@ -49,4 +49,4 @@ "npm": ">= 5.3.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 8ddb4ad3c4..c25a94b8f0 100644 --- 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.14.1.1", + "version": "3.0.0-alpha.14.2", "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.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-plugin-upload/package.json b/packages/strapi-plugin-upload/package.json index 441465812a..7f5cb9d5a8 100644 --- a/packages/strapi-plugin-upload/package.json +++ b/packages/strapi-plugin-upload/package.json @@ -1,6 +1,6 @@ { "name": "strapi-plugin-upload", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "This is the description of the plugin.", "strapi": { "name": "Files Upload", @@ -23,12 +23,12 @@ }, "dependencies": { "react-copy-to-clipboard": "^5.0.1", - "strapi-upload-local": "3.0.0-alpha.14.1.1", + "strapi-upload-local": "3.0.0-alpha.14.2", "stream-to-array": "^2.3.0", "uuid": "^3.2.1" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "author": { "name": "A Strapi developer", diff --git a/packages/strapi-plugin-users-permissions/package.json b/packages/strapi-plugin-users-permissions/package.json index 95ed4e2dae..6018c885b5 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.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Protect your API with a full-authentication process based on JWT", "strapi": { "name": "Roles & Permissions", @@ -32,7 +32,7 @@ "uuid": "^3.1.0" }, "devDependencies": { - "strapi-helper-plugin": "3.0.0-alpha.14.1.1" + "strapi-helper-plugin": "3.0.0-alpha.14.2" }, "author": { "name": "Strapi team", diff --git a/packages/strapi-upload-aws-s3/package.json b/packages/strapi-upload-aws-s3/package.json index fe0d4505ac..13c1b26dab 100644 --- a/packages/strapi-upload-aws-s3/package.json +++ b/packages/strapi-upload-aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "strapi-upload-aws-s3", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "AWS S3 provider for strapi upload", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-upload-cloudinary/package.json b/packages/strapi-upload-cloudinary/package.json index 08acde95c1..1e93cb8049 100644 --- a/packages/strapi-upload-cloudinary/package.json +++ b/packages/strapi-upload-cloudinary/package.json @@ -1,6 +1,6 @@ { "name": "strapi-upload-cloudinary", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Cloudinary provider for strapi upload", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-upload-local/package.json b/packages/strapi-upload-local/package.json index 3263fdfde3..43a571a34b 100644 --- a/packages/strapi-upload-local/package.json +++ b/packages/strapi-upload-local/package.json @@ -1,6 +1,6 @@ { "name": "strapi-upload-local", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Local provider for strapi upload", "homepage": "http://strapi.io", "keywords": [ diff --git a/packages/strapi-upload-rackspace/package.json b/packages/strapi-upload-rackspace/package.json index 82608c7e3c..596ba06b2e 100644 --- a/packages/strapi-upload-rackspace/package.json +++ b/packages/strapi-upload-rackspace/package.json @@ -1,6 +1,6 @@ { "name": "strapi-upload-rackspace", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.2", "description": "Rackspace provider for strapi upload", "main": "./lib", "scripts": { diff --git a/packages/strapi-utils/package.json b/packages/strapi-utils/package.json index 7a59aa8a8c..4208f5f315 100644 --- a/packages/strapi-utils/package.json +++ b/packages/strapi-utils/package.json @@ -1,6 +1,6 @@ { "name": "strapi-utils", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.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 5a159ab49a..4d0d2f8dc8 100644 --- a/packages/strapi/package.json +++ b/packages/strapi/package.json @@ -1,6 +1,6 @@ { "name": "strapi", - "version": "3.0.0-alpha.14.1.1", + "version": "3.0.0-alpha.14.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": [ @@ -58,16 +58,16 @@ "rimraf": "^2.6.2", "semver": "^5.4.1", "stack-trace": "0.0.10", - "strapi-generate": "3.0.0-alpha.14.1.1", - "strapi-generate-admin": "3.0.0-alpha.14.1.1", - "strapi-generate-api": "3.0.0-alpha.14.1.1", - "strapi-generate-controller": "3.0.0-alpha.14.1.1", - "strapi-generate-model": "3.0.0-alpha.14.1.1", - "strapi-generate-new": "3.0.0-alpha.14.1.1", - "strapi-generate-plugin": "3.0.0-alpha.14.1.1", - "strapi-generate-policy": "3.0.0-alpha.14.1.1", - "strapi-generate-service": "3.0.0-alpha.14.1.1", - "strapi-utils": "3.0.0-alpha.14.1.1" + "strapi-generate": "3.0.0-alpha.14.2", + "strapi-generate-admin": "3.0.0-alpha.14.2", + "strapi-generate-api": "3.0.0-alpha.14.2", + "strapi-generate-controller": "3.0.0-alpha.14.2", + "strapi-generate-model": "3.0.0-alpha.14.2", + "strapi-generate-new": "3.0.0-alpha.14.2", + "strapi-generate-plugin": "3.0.0-alpha.14.2", + "strapi-generate-policy": "3.0.0-alpha.14.2", + "strapi-generate-service": "3.0.0-alpha.14.2", + "strapi-utils": "3.0.0-alpha.14.2" }, "author": { "email": "hi@strapi.io",