eslint-plugin-mgw-eslint-rules 2.3.13 → 2.3.15

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, ...rule8 }) {
3265
- const ruleWithDocs = createRule8({
3264
+ return function createNamedRule({ meta, name, ...rule9 }) {
3265
+ const ruleWithDocs = createRule9({
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
- ...rule8
3274
+ ...rule9
3275
3275
  });
3276
3276
  return ruleWithDocs;
3277
3277
  };
3278
3278
  }
3279
- function createRule8({
3279
+ function createRule9({
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 createRule8(args);
3299
+ return createRule9(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, (rule8) => this._scopeLocalKeyframeDeclarations(rule8, scopeSelector, unscopedKeyframesSet));
20625
- return processRules(scopedKeyframesCssText, (rule8) => this._scopeAnimationRule(rule8, scopeSelector, unscopedKeyframesSet));
20624
+ const scopedKeyframesCssText = processRules(cssText, (rule9) => this._scopeLocalKeyframeDeclarations(rule9, scopeSelector, unscopedKeyframesSet));
20625
+ return processRules(scopedKeyframesCssText, (rule9) => this._scopeAnimationRule(rule9, scopeSelector, unscopedKeyframesSet));
20626
20626
  }
20627
- _scopeLocalKeyframeDeclarations(rule8, scopeSelector, unscopedKeyframesSet) {
20627
+ _scopeLocalKeyframeDeclarations(rule9, scopeSelector, unscopedKeyframesSet) {
20628
20628
  return {
20629
- ...rule8,
20630
- selector: rule8.selector.replace(/(^@(?:-webkit-)?keyframes(?:\s+))(['"]?)(.+)\2(\s*)$/, (_, start, quote, keyframeName, endSpaces) => {
20629
+ ...rule9,
20630
+ selector: rule9.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(rule8, scopeSelector, unscopedKeyframesSet) {
20644
- let content = rule8.content.replace(/((?:^|\s+|;)(?:-webkit-)?animation\s*:\s*),*([^;]+)/g, (_, start, animationDeclarations) => start + animationDeclarations.replace(this._animationDeclarationKeyframesRe, (original, leadingSpaces, quote = "", quotedName, nonQuotedName) => {
20643
+ _scopeAnimationRule(rule9, scopeSelector, unscopedKeyframesSet) {
20644
+ let content = rule9.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
- ...rule8,
20653
+ ...rule9,
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 rule8 = m[0].replace(m[1], "").replace(m[2], "");
20665
- return m[4] + rule8;
20664
+ const rule9 = m[0].replace(m[1], "").replace(m[2], "");
20665
+ return m[4] + rule9;
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 rule8 = m[0].replace(m[2], "").replace(m[1], m[4]);
20687
- r += rule8 + "\n\n";
20686
+ const rule9 = m[0].replace(m[2], "").replace(m[1], m[4]);
20687
+ r += rule9 + "\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, (rule8) => {
20773
- let selector = rule8.selector;
20774
- let content = rule8.content;
20775
- if (rule8.selector[0] !== "@") {
20772
+ return processRules(cssText, (rule9) => {
20773
+ let selector = rule9.selector;
20774
+ let content = rule9.content;
20775
+ if (rule9.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) => rule8.selector.startsWith(atRule))) {
20783
- content = this._scopeSelectors(rule8.content, scopeSelector, hostSelector);
20784
- } else if (rule8.selector.startsWith("@font-face") || rule8.selector.startsWith("@page")) {
20785
- content = this._stripScopingSelectors(rule8.content);
20782
+ } else if (scopedAtRuleIdentifiers.some((atRule) => rule9.selector.startsWith(atRule))) {
20783
+ content = this._scopeSelectors(rule9.content, scopeSelector, hostSelector);
20784
+ } else if (rule9.selector.startsWith("@font-face") || rule9.selector.startsWith("@page")) {
20785
+ content = this._stripScopingSelectors(rule9.content);
20786
20786
  }
20787
20787
  return new CssRule(selector, content);
20788
20788
  });
20789
20789
  }
20790
20790
  _stripScopingSelectors(cssText) {
20791
- return processRules(cssText, (rule8) => {
20792
- const selector = rule8.selector.replace(_shadowDeepSelectors, " ").replace(_polyfillHostNoCombinatorRe, " ");
20793
- return new CssRule(selector, rule8.content);
20791
+ return processRules(cssText, (rule9) => {
20792
+ const selector = rule9.selector.replace(_shadowDeepSelectors, " ").replace(_polyfillHostNoCombinatorRe, " ");
20793
+ return new CssRule(selector, rule9.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 rule8 = ruleCallback(new CssRule(selector, content));
21055
- return `${m[1]}${rule8.selector}${m[3]}${contentPrefix}${rule8.content}${suffix}`;
21054
+ const rule9 = ruleCallback(new CssRule(selector, content));
21055
+ return `${m[1]}${rule9.selector}${m[3]}${contentPrefix}${rule9.content}${suffix}`;
21056
21056
  });
21057
21057
  return unescapeInStrings(escapedResult);
21058
21058
  }
@@ -43972,12 +43972,64 @@ var rule = createRule({
43972
43972
  }
43973
43973
  });
43974
43974
 
43975
- // src/rules/enforce-angular-signal-call.ts
43975
+ // src/rules/case-first-declarations.ts
43976
43976
  var import_utils2 = __toESM(require_dist4());
43977
- var RULE_NAME2 = "enforce-angular-signal-call";
43978
- var createRule2 = import_utils2.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
43977
+ var RULE_NAME2 = "case-first-declarations";
43978
+ var DOCS_RULES = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
43979
+ var createRule2 = import_utils2.ESLintUtils.RuleCreator((name) => `${DOCS_RULES}/${name}.md`);
43979
43980
  var rule2 = createRule2({
43980
43981
  name: RULE_NAME2,
43982
+ meta: {
43983
+ type: "suggestion",
43984
+ docs: {
43985
+ description: "Function declaration names should start with an upper-case or lower-case letter.",
43986
+ recommended: true
43987
+ },
43988
+ messages: {
43989
+ lowercase: "Start this name with an lower-case letter.",
43990
+ uppercase: "Start this name with an upper-case letter."
43991
+ },
43992
+ schema: [
43993
+ {
43994
+ type: "object",
43995
+ properties: {
43996
+ preferredCase: {
43997
+ type: "string",
43998
+ enum: ["lower", "upper"]
43999
+ }
44000
+ },
44001
+ additionalProperties: false
44002
+ }
44003
+ ]
44004
+ },
44005
+ defaultOptions: [
44006
+ {
44007
+ preferredCase: "lower"
44008
+ }
44009
+ ],
44010
+ create(context, options) {
44011
+ return {
44012
+ FunctionDeclaration(node) {
44013
+ if (node.id != null) {
44014
+ const testName = options[0].preferredCase === "upper" ? /^[a-z]/ : /^[A-Z]/;
44015
+ if (testName.test(node.id.name)) {
44016
+ context.report({
44017
+ messageId: options[0].preferredCase === "upper" ? "uppercase" : "lowercase",
44018
+ node: node.id
44019
+ });
44020
+ }
44021
+ }
44022
+ }
44023
+ };
44024
+ }
44025
+ });
44026
+
44027
+ // src/rules/enforce-angular-signal-call.ts
44028
+ var import_utils3 = __toESM(require_dist4());
44029
+ var RULE_NAME3 = "enforce-angular-signal-call";
44030
+ var createRule3 = import_utils3.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44031
+ var rule3 = createRule3({
44032
+ name: RULE_NAME3,
43981
44033
  meta: {
43982
44034
  type: "suggestion",
43983
44035
  docs: {
@@ -44009,11 +44061,11 @@ var rule2 = createRule2({
44009
44061
  const typeName = checker.typeToString(type);
44010
44062
  if (isSignal(typeName)) {
44011
44063
  const parent = node.parent;
44012
- if (!parent || parent.type !== import_utils2.AST_NODE_TYPES.CallExpression) {
44064
+ if (!parent || parent.type !== import_utils3.AST_NODE_TYPES.CallExpression) {
44013
44065
  return;
44014
44066
  }
44015
44067
  const callee = parent.callee;
44016
- if (callee.type !== import_utils2.AST_NODE_TYPES.Identifier || callee.name !== node.name) {
44068
+ if (callee.type !== import_utils3.AST_NODE_TYPES.Identifier || callee.name !== node.name) {
44017
44069
  return;
44018
44070
  }
44019
44071
  context.report({
@@ -44028,11 +44080,11 @@ var rule2 = createRule2({
44028
44080
  });
44029
44081
 
44030
44082
  // src/rules/enforce-template-literal-use.ts
44031
- var import_utils3 = __toESM(require_dist4());
44032
- var RULE_NAME3 = "enforce-template-literal-use";
44033
- var createRule3 = import_utils3.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44034
- var rule3 = createRule3({
44035
- name: RULE_NAME3,
44083
+ var import_utils4 = __toESM(require_dist4());
44084
+ var RULE_NAME4 = "enforce-template-literal-use";
44085
+ var createRule4 = import_utils4.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44086
+ var rule4 = createRule4({
44087
+ name: RULE_NAME4,
44036
44088
  meta: {
44037
44089
  type: "suggestion",
44038
44090
  docs: {
@@ -44068,11 +44120,11 @@ var rule3 = createRule3({
44068
44120
  });
44069
44121
 
44070
44122
  // src/rules/no-inferrable-types-readonly-properties.ts
44071
- var import_utils4 = __toESM(require_dist4());
44072
- var RULE_NAME4 = "no-inferrable-types-readonly-properties";
44073
- var createRule4 = import_utils4.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44074
- var rule4 = createRule4({
44075
- name: RULE_NAME4,
44123
+ var import_utils5 = __toESM(require_dist4());
44124
+ var RULE_NAME5 = "no-inferrable-types-readonly-properties";
44125
+ var createRule5 = import_utils5.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44126
+ var rule5 = createRule5({
44127
+ name: RULE_NAME5,
44076
44128
  meta: {
44077
44129
  type: "suggestion",
44078
44130
  docs: {
@@ -44089,28 +44141,28 @@ var rule4 = createRule4({
44089
44141
  defaultOptions: [],
44090
44142
  create(context) {
44091
44143
  function getTypeString(typeNode) {
44092
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSTypeReference) {
44144
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSTypeReference) {
44093
44145
  return "RegExp";
44094
44146
  }
44095
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSStringKeyword) {
44147
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSStringKeyword) {
44096
44148
  return "string";
44097
44149
  }
44098
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSNumberKeyword) {
44150
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSNumberKeyword) {
44099
44151
  return "number";
44100
44152
  }
44101
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSBooleanKeyword) {
44153
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSBooleanKeyword) {
44102
44154
  return "boolean";
44103
44155
  }
44104
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSNullKeyword) {
44156
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSNullKeyword) {
44105
44157
  return "null";
44106
44158
  }
44107
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSUndefinedKeyword) {
44159
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSUndefinedKeyword) {
44108
44160
  return "undefined";
44109
44161
  }
44110
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSBigIntKeyword) {
44162
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSBigIntKeyword) {
44111
44163
  return "bigint";
44112
44164
  }
44113
- if (typeNode.typeAnnotation.type === import_utils4.AST_NODE_TYPES.TSSymbolKeyword) {
44165
+ if (typeNode.typeAnnotation.type === import_utils5.AST_NODE_TYPES.TSSymbolKeyword) {
44114
44166
  return "symbol";
44115
44167
  }
44116
44168
  return "complexe";
@@ -44142,12 +44194,12 @@ var rule4 = createRule4({
44142
44194
  });
44143
44195
 
44144
44196
  // src/rules/prefer-const-enum.ts
44145
- var import_utils5 = __toESM(require_dist4());
44146
- var RULE_NAME5 = "prefer-const-enum";
44147
- var DOCS_RULES = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44148
- var createRule5 = import_utils5.ESLintUtils.RuleCreator((name) => `${DOCS_RULES}/${name}.md`);
44149
- var rule5 = createRule5({
44150
- name: RULE_NAME5,
44197
+ var import_utils6 = __toESM(require_dist4());
44198
+ var RULE_NAME6 = "prefer-const-enum";
44199
+ var DOCS_RULES2 = "https://github.com/developpement-megao/mgw-eslint-rules/tree/main/docs/rules";
44200
+ var createRule6 = import_utils6.ESLintUtils.RuleCreator((name) => `${DOCS_RULES2}/${name}.md`);
44201
+ var rule6 = createRule6({
44202
+ name: RULE_NAME6,
44151
44203
  meta: {
44152
44204
  type: "suggestion",
44153
44205
  docs: {
@@ -44195,14 +44247,14 @@ var rule5 = createRule5({
44195
44247
  });
44196
44248
 
44197
44249
  // src/rules/service-class-suffix.ts
44198
- var import_utils6 = __toESM(require_dist6());
44199
- var import_utils7 = __toESM(require_dist4());
44200
- var RULE_NAME6 = "service-class-suffix";
44250
+ var import_utils7 = __toESM(require_dist6());
44251
+ var import_utils8 = __toESM(require_dist4());
44252
+ var RULE_NAME7 = "service-class-suffix";
44201
44253
  var SUFFIXES_DEFAULT = ["Service"];
44202
- var DOCS_RULES2 = "https://github.com/developpement-megao/mgw-eslint-rules/blob/main/docs/rules";
44203
- var createRule6 = import_utils7.ESLintUtils.RuleCreator((name) => `${DOCS_RULES2}/${name}.md`);
44204
- var rule6 = createRule6({
44205
- name: RULE_NAME6,
44254
+ var DOCS_RULES3 = "https://github.com/developpement-megao/mgw-eslint-rules/blob/main/docs/rules";
44255
+ var createRule7 = import_utils8.ESLintUtils.RuleCreator((name) => `${DOCS_RULES3}/${name}.md`);
44256
+ var rule7 = createRule7({
44257
+ name: RULE_NAME7,
44206
44258
  meta: {
44207
44259
  type: "suggestion",
44208
44260
  docs: {
@@ -44234,7 +44286,7 @@ var rule6 = createRule6({
44234
44286
  ],
44235
44287
  create(context, [{ suffixes }]) {
44236
44288
  return {
44237
- [import_utils6.Selectors.INJECTABLE_CLASS_DECORATOR](node) {
44289
+ [import_utils7.Selectors.INJECTABLE_CLASS_DECORATOR](node) {
44238
44290
  const classDeclaration = node.parent;
44239
44291
  if (!classDeclaration.id) {
44240
44292
  return;
@@ -44257,12 +44309,12 @@ var rule6 = createRule6({
44257
44309
  });
44258
44310
 
44259
44311
  // src/rules/template/prefer-class-style-binding.ts
44260
- var import_utils8 = __toESM(require_dist6());
44261
- var import_utils9 = __toESM(require_dist4());
44262
- var RULE_NAME7 = "template/prefer-class-style-binding";
44263
- var createRule7 = import_utils9.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44264
- var rule7 = createRule7({
44265
- name: RULE_NAME7,
44312
+ var import_utils9 = __toESM(require_dist6());
44313
+ var import_utils10 = __toESM(require_dist4());
44314
+ var RULE_NAME8 = "template/prefer-class-style-binding";
44315
+ var createRule8 = import_utils10.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rules/${name}.md`);
44316
+ var rule8 = createRule8({
44317
+ name: RULE_NAME8,
44266
44318
  meta: {
44267
44319
  type: "suggestion",
44268
44320
  docs: {
@@ -44277,7 +44329,7 @@ var rule7 = createRule7({
44277
44329
  },
44278
44330
  defaultOptions: [],
44279
44331
  create(context) {
44280
- const parserServices = (0, import_utils8.getTemplateParserServices)(context);
44332
+ const parserServices = (0, import_utils9.getTemplateParserServices)(context);
44281
44333
  return {
44282
44334
  // Détecte les attributs ngClass et ngStyle et inputs [ngClass] et [ngStyle] dans les templates
44283
44335
  Element(node) {
@@ -44298,13 +44350,14 @@ var rule7 = createRule7({
44298
44350
 
44299
44351
  // src/index.ts
44300
44352
  var rules = {
44353
+ [RULE_NAME6]: rule6,
44301
44354
  [RULE_NAME5]: rule5,
44302
- [RULE_NAME4]: rule4,
44303
- [RULE_NAME2]: rule2,
44304
44355
  [RULE_NAME3]: rule3,
44356
+ [RULE_NAME4]: rule4,
44305
44357
  [RULE_NAME]: rule,
44358
+ [RULE_NAME8]: rule8,
44306
44359
  [RULE_NAME7]: rule7,
44307
- [RULE_NAME6]: rule6
44360
+ [RULE_NAME2]: rule2
44308
44361
  };
44309
44362
  // Annotate the CommonJS export names for ESM import in node:
44310
44363
  0 && (module.exports = {