Socket
Socket
Sign inDemoInstall

@strapi/utils

Package Overview
Dependencies
Maintainers
10
Versions
1271
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@strapi/utils - npm Package Compare versions

Comparing version 4.0.0-next.8 to 4.0.0-next.9

lib/convert-query-params.js

9

lib/index.js

@@ -7,11 +7,6 @@ 'use strict';

const { buildQuery, hasDeepFilters } = require('./build-query');
const {
convertRestQueryParams,
VALID_REST_OPERATORS,
QUERY_OPERATORS,
} = require('./convert-rest-query-params');
const { VALID_REST_OPERATORS, QUERY_OPERATORS } = require('./convert-query-params');
const parseMultipartData = require('./parse-multipart');
const sanitizeEntity = require('./sanitize-entity');
const parseType = require('./parse-type');
const finder = require('./finder');
const policy = require('./policy');

@@ -44,6 +39,4 @@ const templateConfiguration = require('./template-configuration');

formatYupErrors,
finder,
policy,
templateConfiguration,
convertRestQueryParams,
VALID_REST_OPERATORS,

@@ -50,0 +43,0 @@ QUERY_OPERATORS,

@@ -6,2 +6,6 @@ 'use strict';

module.exports = ctx => {
if (!ctx.is('multipart')) {
return { data: ctx.request.body, files: {} };
}
const { body = {}, files = {} } = ctx.request;

@@ -8,0 +12,0 @@

@@ -8,19 +8,10 @@ /**

const GLOBAL_PREFIX = 'global::';
const PLUGIN_PREFIX = 'plugin::';
const ADMIN_PREFIX = 'admin::';
const APPLICATION_PREFIX = 'api::';
const API_PREFIX = 'api::';
const getPolicyIn = (container, policy) => {
return (
_.get(container, ['config', 'policies', policy]) ||
_.get(container, ['config', 'policies', _.toLower(policy)])
);
};
const policyExistsIn = (container, policy) => !_.isUndefined(getPolicyIn(container, policy));
const createPolicy = (policyName, args) => ({ policyName, args });
const resolveHandler = policy => (_.isFunction(policy) ? policy : policy.handler);
const resolveHandler = policy => {
return _.has('handler', policy) ? policy.handler : policy;
};

@@ -37,28 +28,17 @@ const parsePolicy = policy => {

const resolvePolicy = policyName => {
const resolver = policyResolvers.find(resolver => resolver.exists(policyName));
const policy = strapi.policy(policyName);
return resolver ? resolveHandler(resolver.get)(policyName) : undefined;
return resolveHandler(policy);
};
const searchLocalPolicy = (policy, plugin, apiName) => {
let [absoluteApiName, policyName] = policy.split('.');
let absoluteApi = _.get(strapi.api, absoluteApiName);
const resolver = policyResolvers.find(({ name }) => name === 'plugin');
if (policyExistsIn(absoluteApi, policyName)) {
return resolveHandler(getPolicyIn(absoluteApi, policyName));
const searchLocalPolicy = (policyName, { pluginName, apiName }) => {
if (pluginName) {
const policy = strapi.policy(`${PLUGIN_PREFIX}${pluginName}.${policyName}`);
return resolveHandler(policy);
}
const pluginPolicy = `${PLUGIN_PREFIX}${plugin}.${policy}`;
if (plugin && resolver.exists(pluginPolicy)) {
return resolveHandler(resolver.get(pluginPolicy));
if (apiName) {
const policy = strapi.policy(`${API_PREFIX}${apiName}.${policyName}`);
return resolveHandler(policy);
}
const api = _.get(strapi.api, apiName);
if (api && policyExistsIn(api, policy)) {
return resolveHandler(getPolicyIn(api, policy));
}
return undefined;
};

@@ -88,57 +68,3 @@

const policyResolvers = [
{
name: 'api',
is(policy) {
return _.startsWith(policy, APPLICATION_PREFIX);
},
exists(policy) {
return this.is(policy) && !_.isUndefined(this.get(policy));
},
get: policy => {
const [, policyWithoutPrefix] = policy.split('::');
const [api = '', policyName = ''] = policyWithoutPrefix.split('.');
// TODO: load policies into the registry & user strapi.policy(policy)
return getPolicyIn(_.get(strapi, ['api', api]), policyName);
},
},
{
name: 'admin',
is(policy) {
return _.startsWith(policy, ADMIN_PREFIX);
},
exists(policy) {
return this.is(policy) && !_.isUndefined(this.get(policy));
},
get(policy) {
return strapi.policy(policy);
},
},
{
name: 'plugin',
is(policy) {
return _.startsWith(policy, PLUGIN_PREFIX);
},
exists(policy) {
return this.is(policy) && !_.isUndefined(this.get(policy));
},
get(policy) {
return strapi.policy(policy);
},
},
{
name: 'global',
is(policy) {
return _.startsWith(policy, GLOBAL_PREFIX);
},
exists(policy) {
return this.is(policy) && !_.isUndefined(this.get(policy));
},
get(policy) {
return strapi.policy(policy);
},
},
];
const get = (policy, plugin, apiName) => {
const get = (policy, { pluginName, apiName } = {}) => {
if (typeof policy === 'function') {

@@ -156,3 +82,3 @@ return policy;

const localPolicy = searchLocalPolicy(policy, plugin, apiName);
const localPolicy = searchLocalPolicy(policy, { pluginName, apiName });

@@ -159,0 +85,0 @@ if (localPolicy !== undefined) {

{
"name": "@strapi/utils",
"version": "4.0.0-next.8",
"version": "4.0.0-next.9",
"description": "Shared utilities for the Strapi packages",

@@ -48,3 +48,3 @@ "homepage": "https://strapi.io",

"license": "SEE LICENSE IN LICENSE",
"gitHead": "e3452f6662a45a4ba96e96861e076e313b297666"
"gitHead": "231263a3535658bab1e9492c6aaaed8692d62a53"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc