eslint-plugin-mgw-eslint-rules 2.3.41 → 2.3.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3261,8 +3261,8 @@ var require_RuleCreator = __commonJS({
3261
3261
  exports2.RuleCreator = RuleCreator;
3262
3262
  var applyDefault_1 = require_applyDefault();
3263
3263
  function RuleCreator(urlCreator) {
3264
- return function createNamedRule({ meta, name, ...rule12 }) {
3265
- const ruleWithDocs = createRule12({
3264
+ return function createNamedRule({ meta, name, ...rule13 }) {
3265
+ const ruleWithDocs = createRule13({
3266
3266
  meta: {
3267
3267
  ...meta,
3268
3268
  docs: {
@@ -3271,12 +3271,12 @@ var require_RuleCreator = __commonJS({
3271
3271
  }
3272
3272
  },
3273
3273
  name,
3274
- ...rule12
3274
+ ...rule13
3275
3275
  });
3276
3276
  return ruleWithDocs;
3277
3277
  };
3278
3278
  }
3279
- function createRule12({
3279
+ function createRule13({
3280
3280
  create,
3281
3281
  // Keep accepting deprecated defaultOptions for backward compatibility.
3282
3282
  // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -3296,7 +3296,7 @@ var require_RuleCreator = __commonJS({
3296
3296
  };
3297
3297
  }
3298
3298
  RuleCreator.withoutDocs = function withoutDocs(args) {
3299
- return createRule12(args);
3299
+ return createRule13(args);
3300
3300
  };
3301
3301
  }
3302
3302
  });
@@ -20621,13 +20621,13 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20621
20621
  }
20622
20622
  _scopeKeyframesRelatedCss(cssText, scopeSelector) {
20623
20623
  const unscopedKeyframesSet = /* @__PURE__ */ new Set();
20624
- const scopedKeyframesCssText = processRules(cssText, (rule12) => this._scopeLocalKeyframeDeclarations(rule12, scopeSelector, unscopedKeyframesSet));
20625
- return processRules(scopedKeyframesCssText, (rule12) => this._scopeAnimationRule(rule12, scopeSelector, unscopedKeyframesSet));
20624
+ const scopedKeyframesCssText = processRules(cssText, (rule13) => this._scopeLocalKeyframeDeclarations(rule13, scopeSelector, unscopedKeyframesSet));
20625
+ return processRules(scopedKeyframesCssText, (rule13) => this._scopeAnimationRule(rule13, scopeSelector, unscopedKeyframesSet));
20626
20626
  }
20627
- _scopeLocalKeyframeDeclarations(rule12, scopeSelector, unscopedKeyframesSet) {
20627
+ _scopeLocalKeyframeDeclarations(rule13, scopeSelector, unscopedKeyframesSet) {
20628
20628
  return {
20629
- ...rule12,
20630
- selector: rule12.selector.replace(/(^@(?:-webkit-)?keyframes(?:\s+))(['"]?)(.+)\2(\s*)$/, (_, start, quote, keyframeName, endSpaces) => {
20629
+ ...rule13,
20630
+ selector: rule13.selector.replace(/(^@(?:-webkit-)?keyframes(?:\s+))(['"]?)(.+)\2(\s*)$/, (_, start, quote, keyframeName, endSpaces) => {
20631
20631
  unscopedKeyframesSet.add(unescapeQuotes(keyframeName, quote));
20632
20632
  return `${start}${quote}${scopeSelector}_${keyframeName}${quote}${endSpaces}`;
20633
20633
  })
@@ -20640,8 +20640,8 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20640
20640
  });
20641
20641
  }
20642
20642
  _animationDeclarationKeyframesRe = /(^|\s+|,)(?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))(?=[,\s]|$)/g;
20643
- _scopeAnimationRule(rule12, scopeSelector, unscopedKeyframesSet) {
20644
- let content = rule12.content.replace(/((?:^|\s+|;)(?:-webkit-)?animation\s*:\s*),*([^;]+)/g, (_, start, animationDeclarations) => start + animationDeclarations.replace(this._animationDeclarationKeyframesRe, (original, leadingSpaces, quote = "", quotedName, nonQuotedName) => {
20643
+ _scopeAnimationRule(rule13, scopeSelector, unscopedKeyframesSet) {
20644
+ let content = rule13.content.replace(/((?:^|\s+|;)(?:-webkit-)?animation\s*:\s*),*([^;]+)/g, (_, start, animationDeclarations) => start + animationDeclarations.replace(this._animationDeclarationKeyframesRe, (original, leadingSpaces, quote = "", quotedName, nonQuotedName) => {
20645
20645
  if (quotedName) {
20646
20646
  return `${leadingSpaces}${this._scopeAnimationKeyframe(`${quote}${quotedName}${quote}`, scopeSelector, unscopedKeyframesSet)}`;
20647
20647
  } else {
@@ -20650,7 +20650,7 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20650
20650
  }));
20651
20651
  content = content.replace(/((?:^|\s+|;)(?:-webkit-)?animation-name(?:\s*):(?:\s*))([^;]+)/g, (_match, start, commaSeparatedKeyframes) => `${start}${commaSeparatedKeyframes.split(",").map((keyframe) => this._scopeAnimationKeyframe(keyframe, scopeSelector, unscopedKeyframesSet)).join(",")}`);
20652
20652
  return {
20653
- ...rule12,
20653
+ ...rule13,
20654
20654
  content
20655
20655
  };
20656
20656
  }
@@ -20661,8 +20661,8 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20661
20661
  }
20662
20662
  _insertPolyfillRulesInCssText(cssText) {
20663
20663
  return cssText.replace(_cssContentRuleRe, (...m) => {
20664
- const rule12 = m[0].replace(m[1], "").replace(m[2], "");
20665
- return m[4] + rule12;
20664
+ const rule13 = m[0].replace(m[1], "").replace(m[2], "");
20665
+ return m[4] + rule13;
20666
20666
  });
20667
20667
  }
20668
20668
  _scopeCssText(cssText, scopeSelector, hostSelector) {
@@ -20683,8 +20683,8 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20683
20683
  let m;
20684
20684
  _cssContentUnscopedRuleRe.lastIndex = 0;
20685
20685
  while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) {
20686
- const rule12 = m[0].replace(m[2], "").replace(m[1], m[4]);
20687
- r += rule12 + "\n\n";
20686
+ const rule13 = m[0].replace(m[2], "").replace(m[1], m[4]);
20687
+ r += rule13 + "\n\n";
20688
20688
  }
20689
20689
  return r;
20690
20690
  }
@@ -20769,28 +20769,28 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
20769
20769
  return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, " "), cssText);
20770
20770
  }
20771
20771
  _scopeSelectors(cssText, scopeSelector, hostSelector) {
20772
- return processRules(cssText, (rule12) => {
20773
- let selector = rule12.selector;
20774
- let content = rule12.content;
20775
- if (rule12.selector[0] !== "@") {
20772
+ return processRules(cssText, (rule13) => {
20773
+ let selector = rule13.selector;
20774
+ let content = rule13.content;
20775
+ if (rule13.selector[0] !== "@") {
20776
20776
  selector = this._scopeSelector({
20777
20777
  selector,
20778
20778
  scopeSelector,
20779
20779
  hostSelector,
20780
20780
  isParentSelector: true
20781
20781
  });
20782
- } else if (scopedAtRuleIdentifiers.some((atRule) => rule12.selector.startsWith(atRule))) {
20783
- content = this._scopeSelectors(rule12.content, scopeSelector, hostSelector);
20784
- } else if (rule12.selector.startsWith("@font-face") || rule12.selector.startsWith("@page")) {
20785
- content = this._stripScopingSelectors(rule12.content);
20782
+ } else if (scopedAtRuleIdentifiers.some((atRule) => rule13.selector.startsWith(atRule))) {
20783
+ content = this._scopeSelectors(rule13.content, scopeSelector, hostSelector);
20784
+ } else if (rule13.selector.startsWith("@font-face") || rule13.selector.startsWith("@page")) {
20785
+ content = this._stripScopingSelectors(rule13.content);
20786
20786
  }
20787
20787
  return new CssRule(selector, content);
20788
20788
  });
20789
20789
  }
20790
20790
  _stripScopingSelectors(cssText) {
20791
- return processRules(cssText, (rule12) => {
20792
- const selector = rule12.selector.replace(_shadowDeepSelectors, " ").replace(_polyfillHostNoCombinatorRe, " ");
20793
- return new CssRule(selector, rule12.content);
20791
+ return processRules(cssText, (rule13) => {
20792
+ const selector = rule13.selector.replace(_shadowDeepSelectors, " ").replace(_polyfillHostNoCombinatorRe, " ");
20793
+ return new CssRule(selector, rule13.content);
20794
20794
  });
20795
20795
  }
20796
20796
  _safeSelector;
@@ -21051,8 +21051,8 @@ ${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;
21051
21051
  suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
21052
21052
  contentPrefix = "{";
21053
21053
  }
21054
- const rule12 = ruleCallback(new CssRule(selector, content));
21055
- return `${m[1]}${rule12.selector}${m[3]}${contentPrefix}${rule12.content}${suffix}`;
21054
+ const rule13 = ruleCallback(new CssRule(selector, content));
21055
+ return `${m[1]}${rule13.selector}${m[3]}${contentPrefix}${rule13.content}${suffix}`;
21056
21056
  });
21057
21057
  return unescapeInStrings(escapedResult);
21058
21058
  }
@@ -44309,13 +44309,101 @@ var rule6 = createRule6({
44309
44309
  }
44310
44310
  });
44311
44311
 
44312
- // src/rules/prefer-const-enum.ts
44312
+ // src/rules/no-restricted-variable-names.ts
44313
44313
  var import_utils7 = __toESM(require_dist4());
44314
- var RULE_NAME7 = "prefer-const-enum";
44315
- var DOCS_RULES2 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44314
+ var RULE_NAME7 = "no-restricted-variable-names";
44315
+ var RESTRICTED_NAMES_DEFAULT = ["data", "list", "obj", "id", "code", "name"];
44316
+ var DOCS_RULES2 = "https://github.com/developpement-megao/mgw-eslint-rules/blob/main/docs/rules";
44316
44317
  var createRule7 = import_utils7.ESLintUtils.RuleCreator((name) => `${DOCS_RULES2}/${name}.md`);
44317
44318
  var rule7 = createRule7({
44318
44319
  name: RULE_NAME7,
44320
+ meta: {
44321
+ type: "suggestion",
44322
+ docs: {
44323
+ description: "Disallow the use of generic or vague variable names (e.g., `data`, `list`, `obj`, `id`, `code`, `name`).",
44324
+ recommended: true
44325
+ },
44326
+ messages: {
44327
+ restrictedName: "Avoid using `{{ name }}` as a variable name. Use a more descriptive name instead."
44328
+ },
44329
+ schema: [
44330
+ {
44331
+ type: "object",
44332
+ properties: {
44333
+ restrictedNames: {
44334
+ type: "array",
44335
+ items: {
44336
+ type: "string"
44337
+ },
44338
+ description: "List of restricted variable names."
44339
+ }
44340
+ },
44341
+ additionalProperties: false
44342
+ }
44343
+ ]
44344
+ },
44345
+ defaultOptions: [
44346
+ {
44347
+ restrictedNames: RESTRICTED_NAMES_DEFAULT
44348
+ }
44349
+ ],
44350
+ create(context, [{ restrictedNames }]) {
44351
+ function checkNode(node) {
44352
+ const name = node.name;
44353
+ if (!name || name === "_") {
44354
+ return;
44355
+ }
44356
+ const restrictedNamesDef = restrictedNames || RESTRICTED_NAMES_DEFAULT;
44357
+ if (restrictedNamesDef.includes(name)) {
44358
+ context.report({
44359
+ node,
44360
+ messageId: "restrictedName",
44361
+ data: { name }
44362
+ });
44363
+ }
44364
+ }
44365
+ return {
44366
+ // Déclarations de variables : const x = signal(0)
44367
+ VariableDeclarator(node) {
44368
+ if (node.id.type === "Identifier") {
44369
+ checkNode(node.id);
44370
+ }
44371
+ },
44372
+ // Pour les paramètres de fonction
44373
+ FunctionDeclaration(node) {
44374
+ node.params.forEach((param) => {
44375
+ if (param.type === "Identifier") {
44376
+ checkNode(param);
44377
+ }
44378
+ });
44379
+ },
44380
+ // Propriétés de classe : count = signal(0)
44381
+ PropertyDefinition(node) {
44382
+ if (node.key.type === "Identifier") {
44383
+ checkNode(node.key);
44384
+ }
44385
+ },
44386
+ // Pour les paramètres des méthodes des classes
44387
+ MethodDefinition(node) {
44388
+ if (node.value.type === "FunctionExpression") {
44389
+ node.value.params.forEach((param) => {
44390
+ if (param.type === "Identifier") {
44391
+ checkNode(param);
44392
+ }
44393
+ });
44394
+ }
44395
+ }
44396
+ };
44397
+ }
44398
+ });
44399
+
44400
+ // src/rules/prefer-const-enum.ts
44401
+ var import_utils8 = __toESM(require_dist4());
44402
+ var RULE_NAME8 = "prefer-const-enum";
44403
+ var DOCS_RULES3 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44404
+ var createRule8 = import_utils8.ESLintUtils.RuleCreator((name) => `${DOCS_RULES3}/${name}.md`);
44405
+ var rule8 = createRule8({
44406
+ name: RULE_NAME8,
44319
44407
  meta: {
44320
44408
  type: "problem",
44321
44409
  docs: {
@@ -44363,12 +44451,12 @@ var rule7 = createRule7({
44363
44451
  });
44364
44452
 
44365
44453
  // src/rules/reactive-naming-convention.ts
44366
- var import_utils8 = __toESM(require_dist4());
44454
+ var import_utils9 = __toESM(require_dist4());
44367
44455
  var import_eslint_utils3 = __toESM(require_eslint_utils3());
44368
- var RULE_NAME8 = "reactive-naming-convention";
44369
- var createRule8 = import_utils8.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44370
- var rule8 = createRule8({
44371
- name: RULE_NAME8,
44456
+ var RULE_NAME9 = "reactive-naming-convention";
44457
+ var createRule9 = import_utils9.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44458
+ var rule9 = createRule9({
44459
+ name: RULE_NAME9,
44372
44460
  meta: {
44373
44461
  type: "suggestion",
44374
44462
  fixable: "code",
@@ -44464,14 +44552,14 @@ var rule8 = createRule8({
44464
44552
  });
44465
44553
 
44466
44554
  // src/rules/service-class-suffix.ts
44467
- var import_utils9 = __toESM(require_dist6());
44468
- var import_utils10 = __toESM(require_dist4());
44469
- var RULE_NAME9 = "service-class-suffix";
44555
+ var import_utils10 = __toESM(require_dist6());
44556
+ var import_utils11 = __toESM(require_dist4());
44557
+ var RULE_NAME10 = "service-class-suffix";
44470
44558
  var SUFFIXES_DEFAULT = ["Service"];
44471
- var DOCS_RULES3 = "https://github.com/developpement-megao/mgw-eslint-rules/blob/main/docs/rules";
44472
- var createRule9 = import_utils10.ESLintUtils.RuleCreator((name) => `${DOCS_RULES3}/${name}.md`);
44473
- var rule9 = createRule9({
44474
- name: RULE_NAME9,
44559
+ var DOCS_RULES4 = "https://github.com/developpement-megao/mgw-eslint-rules/blob/main/docs/rules";
44560
+ var createRule10 = import_utils11.ESLintUtils.RuleCreator((name) => `${DOCS_RULES4}/${name}.md`);
44561
+ var rule10 = createRule10({
44562
+ name: RULE_NAME10,
44475
44563
  meta: {
44476
44564
  type: "suggestion",
44477
44565
  docs: {
@@ -44503,7 +44591,7 @@ var rule9 = createRule9({
44503
44591
  ],
44504
44592
  create(context, [{ suffixes }]) {
44505
44593
  return {
44506
- [import_utils9.Selectors.INJECTABLE_CLASS_DECORATOR](node) {
44594
+ [import_utils10.Selectors.INJECTABLE_CLASS_DECORATOR](node) {
44507
44595
  const classDeclaration = node.parent;
44508
44596
  if (!classDeclaration.id) {
44509
44597
  return;
@@ -44526,11 +44614,11 @@ var rule9 = createRule9({
44526
44614
  });
44527
44615
 
44528
44616
  // src/rules/template/attributes-naming-convention.ts
44529
- var import_utils11 = __toESM(require_dist6());
44530
- var import_utils12 = __toESM(require_dist4());
44617
+ var import_utils12 = __toESM(require_dist6());
44618
+ var import_utils13 = __toESM(require_dist4());
44531
44619
  var NAMING_CONVENTIONS = ["camelCase", "strictCamelCase", "PascalCase", "StrictPascalCase", "snake_case", "UPPER_CASE", "kebab-case"];
44532
44620
  var ATTRIBUTE_CONVENTION_POSSIBLE_VALUES = [...NAMING_CONVENTIONS];
44533
- var RULE_NAME10 = "template/attributes-naming-convention";
44621
+ var RULE_NAME11 = "template/attributes-naming-convention";
44534
44622
  var conventionPatterns = {
44535
44623
  camelCase: /^[a-z][a-zA-Z0-9]*$/,
44536
44624
  strictCamelCase: /^(?!.*[A-Z]{2})[a-z][a-zA-Z0-9]*$/,
@@ -44540,10 +44628,10 @@ var conventionPatterns = {
44540
44628
  UPPER_CASE: /^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$/,
44541
44629
  "kebab-case": /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/
44542
44630
  };
44543
- var DOCS_RULES4 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44544
- var createRule10 = import_utils12.ESLintUtils.RuleCreator((name) => `${DOCS_RULES4}/${name}.md`);
44545
- var rule10 = createRule10({
44546
- name: RULE_NAME10,
44631
+ var DOCS_RULES5 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44632
+ var createRule11 = import_utils13.ESLintUtils.RuleCreator((name) => `${DOCS_RULES5}/${name}.md`);
44633
+ var rule11 = createRule11({
44634
+ name: RULE_NAME11,
44547
44635
  meta: {
44548
44636
  type: "suggestion",
44549
44637
  docs: {
@@ -44602,7 +44690,7 @@ var rule10 = createRule10({
44602
44690
  }
44603
44691
  ],
44604
44692
  create(context, [options]) {
44605
- const parserServices = (0, import_utils11.getTemplateParserServices)(context);
44693
+ const parserServices = (0, import_utils12.getTemplateParserServices)(context);
44606
44694
  const listeAttributes = new Map(
44607
44695
  Object.entries(options).map(([a, n]) => {
44608
44696
  const listeNommage = typeof n === "string" ? [n] : n;
@@ -44651,13 +44739,13 @@ var rule10 = createRule10({
44651
44739
  });
44652
44740
 
44653
44741
  // src/rules/template/prefer-class-style-binding.ts
44654
- var import_utils13 = __toESM(require_dist6());
44655
- var import_utils14 = __toESM(require_dist4());
44656
- var RULE_NAME11 = "template/prefer-class-style-binding";
44657
- var DOCS_RULES5 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44658
- var createRule11 = import_utils14.ESLintUtils.RuleCreator((name) => `${DOCS_RULES5}/${name}.md`);
44659
- var rule11 = createRule11({
44660
- name: RULE_NAME11,
44742
+ var import_utils14 = __toESM(require_dist6());
44743
+ var import_utils15 = __toESM(require_dist4());
44744
+ var RULE_NAME12 = "template/prefer-class-style-binding";
44745
+ var DOCS_RULES6 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44746
+ var createRule12 = import_utils15.ESLintUtils.RuleCreator((name) => `${DOCS_RULES6}/${name}.md`);
44747
+ var rule12 = createRule12({
44748
+ name: RULE_NAME12,
44661
44749
  meta: {
44662
44750
  type: "suggestion",
44663
44751
  docs: {
@@ -44672,7 +44760,7 @@ var rule11 = createRule11({
44672
44760
  },
44673
44761
  defaultOptions: [],
44674
44762
  create(context) {
44675
- const parserServices = (0, import_utils13.getTemplateParserServices)(context);
44763
+ const parserServices = (0, import_utils14.getTemplateParserServices)(context);
44676
44764
  return {
44677
44765
  // Détecte les attributs ngClass et ngStyle et inputs [ngClass] et [ngStyle] dans les templates
44678
44766
  Element(node) {
@@ -44693,17 +44781,18 @@ var rule11 = createRule11({
44693
44781
 
44694
44782
  // src/index.ts
44695
44783
  var rules = {
44696
- [RULE_NAME7]: rule7,
44784
+ [RULE_NAME8]: rule8,
44697
44785
  [RULE_NAME5]: rule5,
44698
44786
  [RULE_NAME3]: rule3,
44699
44787
  [RULE_NAME4]: rule4,
44700
44788
  [RULE_NAME]: rule,
44789
+ [RULE_NAME12]: rule12,
44790
+ [RULE_NAME10]: rule10,
44791
+ [RULE_NAME2]: rule2,
44701
44792
  [RULE_NAME11]: rule11,
44702
44793
  [RULE_NAME9]: rule9,
44703
- [RULE_NAME2]: rule2,
44704
- [RULE_NAME10]: rule10,
44705
- [RULE_NAME8]: rule8,
44706
- [RULE_NAME6]: rule6
44794
+ [RULE_NAME6]: rule6,
44795
+ [RULE_NAME7]: rule7
44707
44796
  };
44708
44797
  // Annotate the CommonJS export names for ESM import in node:
44709
44798
  0 && (module.exports = {