mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 01:47:13 +00:00 
			
		
		
		
	Add terser plugin
Signed-off-by: soupette <cyril.lpz@gmail.com>
This commit is contained in:
		
							parent
							
								
									7f8c898bf7
								
							
						
					
					
						commit
						52adb33a00
					
				
							
								
								
									
										1
									
								
								packages/core/helper-plugin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								packages/core/helper-plugin/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -11,3 +11,4 @@ yarn-error.log | |||||||
| .DS_Store | .DS_Store | ||||||
| npm-debug.log | npm-debug.log | ||||||
| .idea | .idea | ||||||
|  | stats.html | ||||||
| @ -3,9 +3,6 @@ import { getType, getOtherInfos } from './content-manager/utils/getAttributeInfo | |||||||
| export { default as colors } from './assets/styles/colors'; | export { default as colors } from './assets/styles/colors'; | ||||||
| export { default as sizes } from './assets/styles/sizes'; | export { default as sizes } from './assets/styles/sizes'; | ||||||
| 
 | 
 | ||||||
| // CommonPropTypes
 |  | ||||||
| export { default as routerPropTypes } from './commonPropTypes/router'; |  | ||||||
| export { default as themePropTypes } from './commonPropTypes/themeShape'; |  | ||||||
| // Components
 | // Components
 | ||||||
| export { default as BackHeader } from './components/BackHeader'; | export { default as BackHeader } from './components/BackHeader'; | ||||||
| export { default as BaselineAlignment } from './components/BaselineAlignment'; | export { default as BaselineAlignment } from './components/BaselineAlignment'; | ||||||
| @ -140,9 +137,7 @@ export { darken } from './utils/colors'; | |||||||
| export { default as getFileExtension } from './utils/getFileExtension'; | export { default as getFileExtension } from './utils/getFileExtension'; | ||||||
| export { default as getFilterType } from './utils/getFilterType'; | export { default as getFilterType } from './utils/getFilterType'; | ||||||
| export { default as getQueryParameters } from './utils/getQueryParameters'; | export { default as getQueryParameters } from './utils/getQueryParameters'; | ||||||
| export { default as injectHooks } from './utils/injectHooks'; |  | ||||||
| export { default as validateInput } from './utils/inputsValidations'; | export { default as validateInput } from './utils/inputsValidations'; | ||||||
| export { default as Manager } from './utils/Manager'; |  | ||||||
| export { default as request } from './utils/request'; | export { default as request } from './utils/request'; | ||||||
| export { default as storeData } from './utils/storeData'; | export { default as storeData } from './utils/storeData'; | ||||||
| export { default as templateObject } from './utils/templateObject'; | export { default as templateObject } from './utils/templateObject'; | ||||||
|  | |||||||
| @ -1,275 +0,0 @@ | |||||||
| import { findIndex, lowerCase, pullAt, range } from 'lodash'; |  | ||||||
| import { List } from 'immutable'; |  | ||||||
| 
 |  | ||||||
| class Manager { |  | ||||||
|   constructor(state, list, keys, index, layout) { |  | ||||||
|     this.state = state; |  | ||||||
|     this.keys = keys.split('.'); |  | ||||||
|     this.layout = layout; |  | ||||||
|     this.list = list; |  | ||||||
|     this.index = index; |  | ||||||
|     this.arrayOfEndLineElements = this.getLinesBound(); |  | ||||||
|     this.attrToRemoveInfos = this.attrToRemoveInfos(); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Retrieve the bootstrap col index, name and type of a field |  | ||||||
|    * @param {Number} index |  | ||||||
|    * @returns {Object} |  | ||||||
|    */ |  | ||||||
|   getAttrInfos(index) { |  | ||||||
|     const name = this.getAttrName(index); |  | ||||||
|     const appearance = this.layout.getIn([name, 'appearance']); |  | ||||||
|     const type = appearance !== '' && appearance !== undefined ? appearance : this.getType(name); |  | ||||||
|     const bootstrapCol = this.getBootStrapCol(type); |  | ||||||
| 
 |  | ||||||
|     const infos = { |  | ||||||
|       bootstrapCol, |  | ||||||
|       index, |  | ||||||
|       name, |  | ||||||
|       type, |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     return infos; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   getColsToAdd(number) { |  | ||||||
|     let ret; |  | ||||||
| 
 |  | ||||||
|     switch (number) { |  | ||||||
|       case 12: |  | ||||||
|         ret = []; |  | ||||||
|         break; |  | ||||||
|       case 9: |  | ||||||
|         ret = ['__col-md-3__', '__col-md-6__']; |  | ||||||
|         break; |  | ||||||
|       case 8: |  | ||||||
|         ret = ['__col-md-4__', '__col-md-4__']; |  | ||||||
|         break; |  | ||||||
|       case 4: |  | ||||||
|         ret = ['__col-md-4__']; |  | ||||||
|         break; |  | ||||||
|       case 6: |  | ||||||
|         ret = ['__col-md-6__']; |  | ||||||
|         break; |  | ||||||
|       default: |  | ||||||
|         ret = ['__col-md-3__']; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     const random = Math.random() |  | ||||||
|       .toString(36) |  | ||||||
|       .substring(7); |  | ||||||
|     const random1 = Math.random() |  | ||||||
|       .toString(36) |  | ||||||
|       .substring(8); |  | ||||||
| 
 |  | ||||||
|     return ret.map((v, i) => { |  | ||||||
|       if (i === 0) { |  | ||||||
|         return `${v}${random}`; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       return `${v}${random1}`; |  | ||||||
|     }); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Retrieve a field default bootstrap col |  | ||||||
|    * NOTE: will change if we add the customisation of an input's width |  | ||||||
|    * @param {String} type |  | ||||||
|    * @returns {Number} |  | ||||||
|    */ |  | ||||||
|   getBootStrapCol(type) { |  | ||||||
|     switch (lowerCase(type)) { |  | ||||||
|       case 'checkbox': |  | ||||||
|       case 'boolean': |  | ||||||
|       case 'date': |  | ||||||
|       case 'biginteger': |  | ||||||
|       case 'decimal': |  | ||||||
|       case 'float': |  | ||||||
|       case 'integer': |  | ||||||
|       case 'number': |  | ||||||
|         return 4; |  | ||||||
|       case 'json': |  | ||||||
|       case 'wysiwyg': |  | ||||||
|         return 12; |  | ||||||
|       default: |  | ||||||
|         return 6; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   getElementsOnALine(itemsToPull, arr = this.list) { |  | ||||||
|     const array = List.isList(arr) ? arr.toJS() : arr; |  | ||||||
| 
 |  | ||||||
|     return pullAt(array, itemsToPull); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Retrieve the field to remove infos |  | ||||||
|    * @returns {Object} |  | ||||||
|    */ |  | ||||||
|   attrToRemoveInfos() { |  | ||||||
|     return this.getAttrInfos(this.index); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * |  | ||||||
|    * Retrieve the last element of each line of a bootstrap grid and push it into an array |  | ||||||
|    * @returns {Array} |  | ||||||
|    */ |  | ||||||
|   getLinesBound() { |  | ||||||
|     const array = []; |  | ||||||
|     let sum = 0; // sum of each element associated bootstrap col (max sum === 12)
 |  | ||||||
| 
 |  | ||||||
|     this.list.forEach((item, i) => { |  | ||||||
|       let { bootstrapCol, index, name, type } = this.getAttrInfos(i); |  | ||||||
| 
 |  | ||||||
|       if (!type && name.includes('__col')) { |  | ||||||
|         // Only for the added elements
 |  | ||||||
|         bootstrapCol = parseInt(name.split('__')[1].split('-')[2], 10); |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       sum += bootstrapCol; |  | ||||||
| 
 |  | ||||||
|       if (sum === 12 || bootstrapCol === 12) { |  | ||||||
|         // Push into the array the element so we know each right bound of a grid line
 |  | ||||||
|         const isFullSize = bootstrapCol === 12; |  | ||||||
|         array.push({ name, index, isFullSize }); |  | ||||||
|         sum = 0; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       if (sum > 12) { |  | ||||||
|         // Reset the sum
 |  | ||||||
|         sum = 0; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       if (i < this.list.size - 1) { |  | ||||||
|         let { bootstrapCol: nextBootstrapCol, name: nextName, type: nextType } = this.getAttrInfos( |  | ||||||
|           i + 1 |  | ||||||
|         ); |  | ||||||
| 
 |  | ||||||
|         if (!nextType && nextName.includes('__col')) { |  | ||||||
|           nextBootstrapCol = parseInt(nextName.split('__')[1].split('-')[2], 10); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         if (sum + nextBootstrapCol > 12) { |  | ||||||
|           const isFullSize = bootstrapCol === 12; |  | ||||||
|           array.push({ name, index, isFullSize }); |  | ||||||
|           sum = 0; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     return array; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * |  | ||||||
|    * Retrieve the field's type depending on its name |  | ||||||
|    * @param {String} itemName |  | ||||||
|    * @returns {String} |  | ||||||
|    */ |  | ||||||
|   getType(itemName) { |  | ||||||
|     return this.state.getIn([ |  | ||||||
|       'modifiedSchema', |  | ||||||
|       'models', |  | ||||||
|       ...this.keys, |  | ||||||
|       'availableFields', |  | ||||||
|       itemName, |  | ||||||
|       'type', |  | ||||||
|     ]); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Retrieve a field name depending on its index |  | ||||||
|    * @param {Number} itemIndex |  | ||||||
|    * @returns {String} |  | ||||||
|    */ |  | ||||||
|   getAttrName(itemIndex) { |  | ||||||
|     return this.state.getIn(['modifiedSchema', 'models', ...this.keys, 'fields', itemIndex]); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Retrieve the line bootstrap col sum |  | ||||||
|    * @param {Number} leftBound |  | ||||||
|    * @param {Number} rightBound |  | ||||||
|    * @returns {Number} |  | ||||||
|    */ |  | ||||||
| 
 |  | ||||||
|   getLineSize(elements) { |  | ||||||
|     return elements.reduce((acc, current) => { |  | ||||||
|       const appearance = this.layout.getIn([current, 'appearance']); |  | ||||||
|       const type = |  | ||||||
|         appearance !== '' && appearance !== undefined ? appearance : this.getType(current); |  | ||||||
|       const col = current.includes('__col') |  | ||||||
|         ? parseInt(current.split('__')[1].split('-')[2], 10) |  | ||||||
|         : this.getBootStrapCol(type); |  | ||||||
| 
 |  | ||||||
|       return (acc += col); |  | ||||||
|     }, 0); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Given an attribute index from the list retrieve the elements' bound (loeft or right) |  | ||||||
|    * @param {Bool} dir sup or min |  | ||||||
|    * @param {Number} pivot the center |  | ||||||
|    * @returns {Object} the first sup or last sup |  | ||||||
|    */ |  | ||||||
|   getBound(dir, pivot = this.index) { |  | ||||||
|     let result = {}; |  | ||||||
|     let didFindResult = false; |  | ||||||
| 
 |  | ||||||
|     this.arrayOfEndLineElements.forEach(item => { |  | ||||||
|       const rightBondCondition = |  | ||||||
|         findIndex(this.arrayOfEndLineElements, ['index', pivot]) !== -1 |  | ||||||
|           ? item.index < pivot |  | ||||||
|           : item.index <= pivot; |  | ||||||
|       const condition = dir === true ? item.index >= pivot && !didFindResult : rightBondCondition; // Left or right bound of an item in the bootstrap grid.
 |  | ||||||
| 
 |  | ||||||
|       if (condition) { |  | ||||||
|         didFindResult = true; |  | ||||||
|         result = |  | ||||||
|           dir === true |  | ||||||
|             ? item |  | ||||||
|             : { |  | ||||||
|                 name: this.list.get(item.index + 1), |  | ||||||
|                 index: item.index + 1, |  | ||||||
|                 isFullSize: false, |  | ||||||
|               }; |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     return result; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   /** |  | ||||||
|    * Make sure to complete each line with __col-md-the-missing-number to complete a line on the bootstrap grid |  | ||||||
|    * @returns {List} |  | ||||||
|    */ |  | ||||||
|   getLayout() { |  | ||||||
|     let newList = this.list; |  | ||||||
|     let sum = 0; |  | ||||||
| 
 |  | ||||||
|     this.arrayOfEndLineElements.forEach((item, i) => { |  | ||||||
|       const firstLineItem = i === 0 ? 0 : this.arrayOfEndLineElements[i - 1].index + 1; |  | ||||||
|       const lastLineItem = item.index + 1; |  | ||||||
|       const lineRange = |  | ||||||
|         firstLineItem === lastLineItem ? [firstLineItem] : range(firstLineItem, lastLineItem); |  | ||||||
|       const lineItems = this.getElementsOnALine(lineRange); |  | ||||||
|       const lineSize = this.getLineSize(lineItems); |  | ||||||
| 
 |  | ||||||
|       if (lineSize < 10 && i < this.arrayOfEndLineElements.length - 1) { |  | ||||||
|         const colsToAdd = this.getColsToAdd(12 - lineSize); |  | ||||||
|         newList = newList.insert(lastLineItem + sum, colsToAdd[0]); |  | ||||||
| 
 |  | ||||||
|         if (colsToAdd.length > 1) { |  | ||||||
|           newList = newList.insert(lastLineItem + sum, colsToAdd[1]); |  | ||||||
|         } |  | ||||||
|         sum += 1; |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     return newList; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export default Manager; |  | ||||||
| @ -1,100 +0,0 @@ | |||||||
| import React from 'react'; |  | ||||||
| import PropTypes from 'prop-types'; |  | ||||||
| import hoistNonReactStatics from 'hoist-non-react-statics'; |  | ||||||
| import invariant from 'invariant'; |  | ||||||
| 
 |  | ||||||
| export default ({ key, pluginId }) => WrappedComponent => { |  | ||||||
|   class WithHooks extends React.Component { |  | ||||||
|     static WrappedComponent = WrappedComponent; |  | ||||||
| 
 |  | ||||||
|     static displayName = `withHooks(${WrappedComponent.displayName || |  | ||||||
|       WrappedComponent.name || |  | ||||||
|       'Component'})`;
 |  | ||||||
| 
 |  | ||||||
|     static contextTypes = { |  | ||||||
|       plugins: PropTypes.object, |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     static propTypes = { |  | ||||||
|       global: PropTypes.object, |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     static defaultProps = { |  | ||||||
|       global: {}, |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     state = { hooks: {}, otherComponents: [] }; |  | ||||||
| 
 |  | ||||||
|     componentDidMount() { |  | ||||||
|       this.prepareHooks(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     getHook = hookName => { |  | ||||||
|       const self = this.compo.current; |  | ||||||
|       const { hooks } = this.state; |  | ||||||
| 
 |  | ||||||
|       if (hooks[hookName]) { |  | ||||||
|         hooks[hookName].forEach(hook => { |  | ||||||
|           hook.bind(self)(); |  | ||||||
|         }); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     setHooks = (...args) => { |  | ||||||
|       const updateState = hooks => { |  | ||||||
|         return this.setState(prevState => { |  | ||||||
|           const newHooks = Object.keys(hooks).reduce( |  | ||||||
|             (acc, current) => { |  | ||||||
|               if (acc[current]) { |  | ||||||
|                 acc[current].push(hooks[current]); |  | ||||||
|               } else { |  | ||||||
|                 acc[current] = [hooks[current]]; |  | ||||||
|               } |  | ||||||
| 
 |  | ||||||
|               return acc; |  | ||||||
|             }, |  | ||||||
|             { ...prevState.hooks } |  | ||||||
|           ); |  | ||||||
| 
 |  | ||||||
|           return { hooks: newHooks }; |  | ||||||
|         }); |  | ||||||
|       }; |  | ||||||
|       // We know that we want to inject a hook into the admin
 |  | ||||||
|       if (args.length === 1) { |  | ||||||
|         const [hooks] = args; |  | ||||||
| 
 |  | ||||||
|         updateState(hooks); |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       const [target, hooks] = args; |  | ||||||
| 
 |  | ||||||
|       if (target === `${pluginId}.${key}`) { |  | ||||||
|         updateState(hooks); |  | ||||||
|       } |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     prepareHooks = () => { |  | ||||||
|       const plugins = this.props.global.plugins || this.context.plugins; |  | ||||||
| 
 |  | ||||||
|       const errMsg = |  | ||||||
|         'The plugins object needs to be passed either in the context or the props to your container.\n' + |  | ||||||
|         `Please check the ${key} container in the ${pluginId} plugin\n\n`; |  | ||||||
| 
 |  | ||||||
|       invariant(plugins, errMsg); |  | ||||||
| 
 |  | ||||||
|       Object.keys(plugins) |  | ||||||
|         .filter(plugin => !!plugins[plugin].lifecycles) |  | ||||||
|         .forEach(plugin => plugins[plugin].lifecycles.bind(this)()); |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     compo = React.createRef(); |  | ||||||
| 
 |  | ||||||
|     render() { |  | ||||||
|       const props = { ...this.props, ...this.state, getHook: this.getHook }; |  | ||||||
| 
 |  | ||||||
|       return <WrappedComponent ref={this.compo} {...props} />; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   return hoistNonReactStatics(WithHooks, WrappedComponent); |  | ||||||
| }; |  | ||||||
| @ -31,6 +31,11 @@ | |||||||
|     "watch": "rollup -c -w", |     "watch": "rollup -c -w", | ||||||
|     "test": "echo \"no tests yet\"" |     "test": "echo \"no tests yet\"" | ||||||
|   }, |   }, | ||||||
|  |   "peerDependencies": { | ||||||
|  |     "immer": "^8.0.1", | ||||||
|  |     "qs": "6.10.1", | ||||||
|  |     "react-select": "^4.0.2" | ||||||
|  |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "7.14.0", |     "@babel/core": "7.14.0", | ||||||
|     "@babel/plugin-proposal-class-properties": "7.13.0", |     "@babel/plugin-proposal-class-properties": "7.13.0", | ||||||
| @ -48,7 +53,8 @@ | |||||||
|     "rollup": "2.46.0", |     "rollup": "2.46.0", | ||||||
|     "rollup-plugin-node-polyfills": "0.2.1", |     "rollup-plugin-node-polyfills": "0.2.1", | ||||||
|     "rollup-plugin-peer-deps-external": "2.2.4", |     "rollup-plugin-peer-deps-external": "2.2.4", | ||||||
|     "rollup-plugin-postcss": "4.0.0" |     "rollup-plugin-postcss": "4.0.0", | ||||||
|  |     "rollup-plugin-terser": "7.0.2" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@buffetjs/core": "3.3.5", |     "@buffetjs/core": "3.3.5", | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ import commonjs from '@rollup/plugin-commonjs'; | |||||||
| import replace from '@rollup/plugin-replace'; | import replace from '@rollup/plugin-replace'; | ||||||
| import image from '@rollup/plugin-image'; | import image from '@rollup/plugin-image'; | ||||||
| import postcss from 'rollup-plugin-postcss'; | import postcss from 'rollup-plugin-postcss'; | ||||||
|  | import { terser } from 'rollup-plugin-terser'; | ||||||
| import packageJson from './package.json'; | import packageJson from './package.json'; | ||||||
| 
 | 
 | ||||||
| export default { | export default { | ||||||
| @ -63,6 +64,7 @@ export default { | |||||||
|     commonjs(), |     commonjs(), | ||||||
|     image(), |     image(), | ||||||
|     nodePolyfills(), |     nodePolyfills(), | ||||||
|  |     terser(), | ||||||
|   ], |   ], | ||||||
|   external: [ |   external: [ | ||||||
|     ...Object.keys(packageJson.dependencies || {}), |     ...Object.keys(packageJson.dependencies || {}), | ||||||
|  | |||||||
							
								
								
									
										21
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								yarn.lock
									
									
									
									
									
								
							| @ -11846,7 +11846,7 @@ jest-watcher@^26.6.2: | |||||||
|     jest-util "^26.6.2" |     jest-util "^26.6.2" | ||||||
|     string-length "^4.0.1" |     string-length "^4.0.1" | ||||||
| 
 | 
 | ||||||
| jest-worker@^26.5.0, jest-worker@^26.6.2: | jest-worker@^26.2.1, jest-worker@^26.5.0, jest-worker@^26.6.2: | ||||||
|   version "26.6.2" |   version "26.6.2" | ||||||
|   resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" |   resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" | ||||||
|   integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== |   integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== | ||||||
| @ -17580,6 +17580,16 @@ rollup-plugin-postcss@4.0.0: | |||||||
|     safe-identifier "^0.4.2" |     safe-identifier "^0.4.2" | ||||||
|     style-inject "^0.3.0" |     style-inject "^0.3.0" | ||||||
| 
 | 
 | ||||||
|  | rollup-plugin-terser@7.0.2: | ||||||
|  |   version "7.0.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" | ||||||
|  |   integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== | ||||||
|  |   dependencies: | ||||||
|  |     "@babel/code-frame" "^7.10.4" | ||||||
|  |     jest-worker "^26.2.1" | ||||||
|  |     serialize-javascript "^4.0.0" | ||||||
|  |     terser "^5.0.0" | ||||||
|  | 
 | ||||||
| rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: | rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: | ||||||
|   version "2.8.2" |   version "2.8.2" | ||||||
|   resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" |   resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" | ||||||
| @ -17886,6 +17896,13 @@ serialize-error@^7.0.1: | |||||||
|   dependencies: |   dependencies: | ||||||
|     type-fest "^0.13.1" |     type-fest "^0.13.1" | ||||||
| 
 | 
 | ||||||
|  | serialize-javascript@^4.0.0: | ||||||
|  |   version "4.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" | ||||||
|  |   integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== | ||||||
|  |   dependencies: | ||||||
|  |     randombytes "^2.1.0" | ||||||
|  | 
 | ||||||
| serialize-javascript@^5.0.1: | serialize-javascript@^5.0.1: | ||||||
|   version "5.0.1" |   version "5.0.1" | ||||||
|   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" |   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" | ||||||
| @ -19610,7 +19627,7 @@ terser@^4.6.3: | |||||||
|     source-map "~0.6.1" |     source-map "~0.6.1" | ||||||
|     source-map-support "~0.5.12" |     source-map-support "~0.5.12" | ||||||
| 
 | 
 | ||||||
| terser@^5.3.4, terser@^5.5.1: | terser@^5.0.0, terser@^5.3.4, terser@^5.5.1: | ||||||
|   version "5.7.0" |   version "5.7.0" | ||||||
|   resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" |   resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" | ||||||
|   integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== |   integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 soupette
						soupette