@@ -49,6 +49,31 @@ const ELASTIC_LICENSE_HEADER = `
4949 */
5050` ;
5151
52+ const SAFER_LODASH_SET_HEADER = `
53+ /*
54+ * Elasticsearch B.V licenses this file to you under the MIT License.
55+ * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information.
56+ */
57+ ` ;
58+
59+ const SAFER_LODASH_SET_LODASH_HEADER = `
60+ /*
61+ * This file is forked from the lodash project (https://lodash.com/),
62+ * and may include modifications made by Elasticsearch B.V.
63+ * Elasticsearch B.V. licenses this file to you under the MIT License.
64+ * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information.
65+ */
66+ ` ;
67+
68+ const SAFER_LODASH_SET_DEFINITELYTYPED_HEADER = `
69+ /*
70+ * This file is forked from the DefinitelyTyped project (https://github.com/DefinitelyTyped/DefinitelyTyped),
71+ * and may include modifications made by Elasticsearch B.V.
72+ * Elasticsearch B.V. licenses this file to you under the MIT License.
73+ * See \`packages/elastic-safer-lodash-set/LICENSE\` for more information.
74+ */
75+ ` ;
76+
5277const allMochaRulesOff = { } ;
5378Object . keys ( require ( 'eslint-plugin-mocha' ) . rules ) . forEach ( ( k ) => {
5479 allMochaRulesOff [ 'mocha/' + k ] = 'off' ;
@@ -143,7 +168,12 @@ module.exports = {
143168 '@kbn/eslint/disallow-license-headers' : [
144169 'error' ,
145170 {
146- licenses : [ ELASTIC_LICENSE_HEADER ] ,
171+ licenses : [
172+ ELASTIC_LICENSE_HEADER ,
173+ SAFER_LODASH_SET_HEADER ,
174+ SAFER_LODASH_SET_LODASH_HEADER ,
175+ SAFER_LODASH_SET_DEFINITELYTYPED_HEADER ,
176+ ] ,
147177 } ,
148178 ] ,
149179 } ,
@@ -174,7 +204,82 @@ module.exports = {
174204 '@kbn/eslint/disallow-license-headers' : [
175205 'error' ,
176206 {
177- licenses : [ APACHE_2_0_LICENSE_HEADER ] ,
207+ licenses : [
208+ APACHE_2_0_LICENSE_HEADER ,
209+ SAFER_LODASH_SET_HEADER ,
210+ SAFER_LODASH_SET_LODASH_HEADER ,
211+ SAFER_LODASH_SET_DEFINITELYTYPED_HEADER ,
212+ ] ,
213+ } ,
214+ ] ,
215+ } ,
216+ } ,
217+
218+ /**
219+ * safer-lodash-set package requires special license headers
220+ */
221+ {
222+ files : [ 'packages/elastic-safer-lodash-set/**/*.{js,mjs,ts,tsx}' ] ,
223+ rules : {
224+ '@kbn/eslint/require-license-header' : [
225+ 'error' ,
226+ {
227+ license : SAFER_LODASH_SET_LODASH_HEADER ,
228+ } ,
229+ ] ,
230+ '@kbn/eslint/disallow-license-headers' : [
231+ 'error' ,
232+ {
233+ licenses : [
234+ ELASTIC_LICENSE_HEADER ,
235+ APACHE_2_0_LICENSE_HEADER ,
236+ SAFER_LODASH_SET_HEADER ,
237+ SAFER_LODASH_SET_DEFINITELYTYPED_HEADER ,
238+ ] ,
239+ } ,
240+ ] ,
241+ } ,
242+ } ,
243+ {
244+ files : [ 'packages/elastic-safer-lodash-set/test/*.{js,mjs,ts,tsx}' ] ,
245+ rules : {
246+ '@kbn/eslint/require-license-header' : [
247+ 'error' ,
248+ {
249+ license : SAFER_LODASH_SET_HEADER ,
250+ } ,
251+ ] ,
252+ '@kbn/eslint/disallow-license-headers' : [
253+ 'error' ,
254+ {
255+ licenses : [
256+ ELASTIC_LICENSE_HEADER ,
257+ APACHE_2_0_LICENSE_HEADER ,
258+ SAFER_LODASH_SET_LODASH_HEADER ,
259+ SAFER_LODASH_SET_DEFINITELYTYPED_HEADER ,
260+ ] ,
261+ } ,
262+ ] ,
263+ } ,
264+ } ,
265+ {
266+ files : [ 'packages/elastic-safer-lodash-set/**/*.d.ts' ] ,
267+ rules : {
268+ '@kbn/eslint/require-license-header' : [
269+ 'error' ,
270+ {
271+ license : SAFER_LODASH_SET_DEFINITELYTYPED_HEADER ,
272+ } ,
273+ ] ,
274+ '@kbn/eslint/disallow-license-headers' : [
275+ 'error' ,
276+ {
277+ licenses : [
278+ ELASTIC_LICENSE_HEADER ,
279+ APACHE_2_0_LICENSE_HEADER ,
280+ SAFER_LODASH_SET_HEADER ,
281+ SAFER_LODASH_SET_LODASH_HEADER ,
282+ ] ,
178283 } ,
179284 ] ,
180285 } ,
@@ -541,9 +646,129 @@ module.exports = {
541646 * Harden specific rules
542647 */
543648 {
544- files : [ 'test/harden/*.js' ] ,
649+ files : [ 'test/harden/*.js' , 'packages/elastic-safer-lodash-set/test/*.js' ] ,
545650 rules : allMochaRulesOff ,
546651 } ,
652+ {
653+ files : [ '**/*.{js,mjs,ts,tsx}' ] ,
654+ rules : {
655+ 'no-restricted-imports' : [
656+ 2 ,
657+ {
658+ paths : [
659+ {
660+ name : 'lodash' ,
661+ importNames : [ 'set' , 'setWith' ] ,
662+ message : 'Please use @elastic/safer-lodash-set instead' ,
663+ } ,
664+ {
665+ name : 'lodash.set' ,
666+ message : 'Please use @elastic/safer-lodash-set instead' ,
667+ } ,
668+ {
669+ name : 'lodash.setwith' ,
670+ message : 'Please use @elastic/safer-lodash-set instead' ,
671+ } ,
672+ {
673+ name : 'lodash/set' ,
674+ message : 'Please use @elastic/safer-lodash-set instead' ,
675+ } ,
676+ {
677+ name : 'lodash/setWith' ,
678+ message : 'Please use @elastic/safer-lodash-set instead' ,
679+ } ,
680+ {
681+ name : 'lodash/fp' ,
682+ importNames : [ 'set' , 'setWith' , 'assoc' , 'assocPath' ] ,
683+ message : 'Please use @elastic/safer-lodash-set instead' ,
684+ } ,
685+ {
686+ name : 'lodash/fp/set' ,
687+ message : 'Please use @elastic/safer-lodash-set instead' ,
688+ } ,
689+ {
690+ name : 'lodash/fp/setWith' ,
691+ message : 'Please use @elastic/safer-lodash-set instead' ,
692+ } ,
693+ {
694+ name : 'lodash/fp/assoc' ,
695+ message : 'Please use @elastic/safer-lodash-set instead' ,
696+ } ,
697+ {
698+ name : 'lodash/fp/assocPath' ,
699+ message : 'Please use @elastic/safer-lodash-set instead' ,
700+ } ,
701+ ] ,
702+ } ,
703+ ] ,
704+ 'no-restricted-modules' : [
705+ 2 ,
706+ {
707+ paths : [
708+ {
709+ name : 'lodash.set' ,
710+ message : 'Please use @elastic/safer-lodash-set instead' ,
711+ } ,
712+ {
713+ name : 'lodash.setwith' ,
714+ message : 'Please use @elastic/safer-lodash-set instead' ,
715+ } ,
716+ {
717+ name : 'lodash/set' ,
718+ message : 'Please use @elastic/safer-lodash-set instead' ,
719+ } ,
720+ {
721+ name : 'lodash/setWith' ,
722+ message : 'Please use @elastic/safer-lodash-set instead' ,
723+ } ,
724+ ] ,
725+ } ,
726+ ] ,
727+ 'no-restricted-properties' : [
728+ 2 ,
729+ {
730+ object : 'lodash' ,
731+ property : 'set' ,
732+ message : 'Please use @elastic/safer-lodash-set instead' ,
733+ } ,
734+ {
735+ object : '_' ,
736+ property : 'set' ,
737+ message : 'Please use @elastic/safer-lodash-set instead' ,
738+ } ,
739+ {
740+ object : 'lodash' ,
741+ property : 'setWith' ,
742+ message : 'Please use @elastic/safer-lodash-set instead' ,
743+ } ,
744+ {
745+ object : '_' ,
746+ property : 'setWith' ,
747+ message : 'Please use @elastic/safer-lodash-set instead' ,
748+ } ,
749+ {
750+ object : 'lodash' ,
751+ property : 'assoc' ,
752+ message : 'Please use @elastic/safer-lodash-set instead' ,
753+ } ,
754+ {
755+ object : '_' ,
756+ property : 'assoc' ,
757+ message : 'Please use @elastic/safer-lodash-set instead' ,
758+ } ,
759+ {
760+ object : 'lodash' ,
761+ property : 'assocPath' ,
762+ message : 'Please use @elastic/safer-lodash-set instead' ,
763+ } ,
764+ {
765+ object : '_' ,
766+ property : 'assocPath' ,
767+ message : 'Please use @elastic/safer-lodash-set instead' ,
768+ } ,
769+ ] ,
770+ } ,
771+ } ,
547772
548773 /**
549774 * APM overrides
0 commit comments