eslint-plugin-conventions 4.0.7 → 4.2.0

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/LICENSE +23 -0
  3. package/README.md +51 -21
  4. package/package.json +20 -3
  5. package/src/index.d.ts +49 -0
  6. package/src/index.js +15 -1
  7. package/src/index.js.map +1 -1
  8. package/src/lib/eslint-plugin-conventions.js.map +1 -1
  9. package/src/oxlint.d.ts +20 -0
  10. package/src/oxlint.js +22 -0
  11. package/src/oxlint.js.map +1 -0
  12. package/src/rules/conventions/analytics-event-naming.d.ts +41 -0
  13. package/src/rules/conventions/analytics-event-naming.js +104 -0
  14. package/src/rules/conventions/analytics-event-naming.js.map +1 -0
  15. package/src/rules/conventions/consistent-existence-index-check.js +5 -1
  16. package/src/rules/conventions/consistent-existence-index-check.js.map +1 -1
  17. package/src/rules/conventions/expiring-todo-comments.d.ts +41 -0
  18. package/src/rules/conventions/expiring-todo-comments.js +174 -165
  19. package/src/rules/conventions/expiring-todo-comments.js.map +1 -1
  20. package/src/rules/conventions/filename-case.js +13 -4
  21. package/src/rules/conventions/filename-case.js.map +1 -1
  22. package/src/rules/conventions/no-commented-code.js +3 -2
  23. package/src/rules/conventions/no-commented-code.js.map +1 -1
  24. package/src/rules/conventions/no-console-spaces.js +5 -0
  25. package/src/rules/conventions/no-console-spaces.js.map +1 -1
  26. package/src/rules/conventions/no-json-schema-tags.js +2 -1
  27. package/src/rules/conventions/no-json-schema-tags.js.map +1 -1
  28. package/src/rules/conventions/no-magic-numbers.d.ts +41 -0
  29. package/src/rules/conventions/no-magic-numbers.js +205 -0
  30. package/src/rules/conventions/no-magic-numbers.js.map +1 -0
  31. package/src/rules/conventions/no-raw-cross-property-href.d.ts +24 -0
  32. package/src/rules/conventions/no-raw-cross-property-href.js +86 -0
  33. package/src/rules/conventions/no-raw-cross-property-href.js.map +1 -0
  34. package/src/rules/conventions/prefer-code-point.js +4 -1
  35. package/src/rules/conventions/prefer-code-point.js.map +1 -1
  36. package/src/rules/conventions/prefer-dependency-version-strategy.d.ts +5 -5
  37. package/src/rules/conventions/prefer-dependency-version-strategy.js +1 -0
  38. package/src/rules/conventions/prefer-dependency-version-strategy.js.map +1 -1
  39. package/src/rules/conventions/prefer-dom-node-text-content.js +7 -7
  40. package/src/rules/conventions/prefer-dom-node-text-content.js.map +1 -1
  41. package/src/rules/conventions/require-data-testid.d.ts +56 -0
  42. package/src/rules/conventions/require-data-testid.js +209 -0
  43. package/src/rules/conventions/require-data-testid.js.map +1 -0
  44. package/src/rules/conventions/utm-taxonomy.d.ts +25 -0
  45. package/src/rules/conventions/utm-taxonomy.js +117 -0
  46. package/src/rules/conventions/utm-taxonomy.js.map +1 -0
  47. package/src/rules/deprecation/no-deprecated-api.js +6 -1
  48. package/src/rules/deprecation/no-deprecated-api.js.map +1 -1
@@ -29,6 +29,7 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
29
29
  meta: {
30
30
  type: 'problem',
31
31
  docs: {
32
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/filename-case.md',
32
33
  description: 'Enforce filename case conventions for consistency',
33
34
  },
34
35
  hasSuggestions: true,
@@ -108,9 +109,11 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
108
109
  const [options] = context.options;
109
110
  const { case: caseType = 'kebabCase', ignore = [], allowedUppercaseFiles = DEFAULT_ALLOWED_UPPERCASE_FILES, allowedKebabCase = [], allowedSnakeCase = [], allowedCamelCase = [], allowedPascalCase = [], } = options || {};
110
111
  // Convert to different case formats
112
+ // oxlint-disable-next-line consistent-function-scoping
111
113
  function toCamelCase(str) {
112
114
  return str.replace(/[-_](.)/g, (_, letter) => letter.toUpperCase());
113
115
  }
116
+ // oxlint-disable-next-line consistent-function-scoping
114
117
  function toKebabCase(str) {
115
118
  return str
116
119
  .replace(/([a-z])([A-Z])/g, '$1-$2')
@@ -121,6 +124,7 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
121
124
  const camel = toCamelCase(str);
122
125
  return camel.charAt(0).toUpperCase() + camel.slice(1);
123
126
  }
127
+ // oxlint-disable-next-line consistent-function-scoping
124
128
  function toSnakeCase(str) {
125
129
  return str
126
130
  .replace(/([a-z])([A-Z])/g, '$1_$2')
@@ -128,18 +132,22 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
128
132
  .toLowerCase();
129
133
  }
130
134
  // Check if filename matches the expected case pattern
135
+ // oxlint-disable-next-line consistent-function-scoping
131
136
  function isCamelCase(str) {
132
137
  // camelCase: starts with lowercase, no separators, can have uppercase after first char
133
138
  return /^[a-z][a-zA-Z0-9]*$/.test(str);
134
139
  }
140
+ // oxlint-disable-next-line consistent-function-scoping
135
141
  function isKebabCase(str) {
136
142
  // kebab-case: all lowercase with hyphens as separators
137
143
  return /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.test(str);
138
144
  }
145
+ // oxlint-disable-next-line consistent-function-scoping
139
146
  function isPascalCase(str) {
140
147
  // PascalCase: starts with uppercase, no separators
141
148
  return /^[A-Z][a-zA-Z0-9]*$/.test(str);
142
149
  }
150
+ // oxlint-disable-next-line consistent-function-scoping
143
151
  function isSnakeCase(str) {
144
152
  // snake_case: all lowercase with underscores as separators
145
153
  return /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/.test(str);
@@ -160,7 +168,10 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
160
168
  }
161
169
  // Generate suggested filename
162
170
  function getSuggestedName(basename, nameWithoutExt, targetCase) {
163
- let transformed;
171
+ // Initialized to the untransformed name; every valid CaseType below
172
+ // overwrites it. (An unknown case never reaches here — matchesCase
173
+ // returns true for unknown cases, so no rename is ever suggested.)
174
+ let transformed = nameWithoutExt;
164
175
  switch (targetCase) {
165
176
  case 'camelCase':
166
177
  transformed = toCamelCase(nameWithoutExt);
@@ -174,8 +185,6 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
174
185
  case 'snakeCase':
175
186
  transformed = toSnakeCase(nameWithoutExt);
176
187
  break;
177
- default:
178
- transformed = nameWithoutExt;
179
188
  }
180
189
  // Add back the extension
181
190
  const ext = basename.slice(nameWithoutExt.length);
@@ -184,7 +193,7 @@ exports.filenameCase = (0, eslint_devkit_1.createRule)({
184
193
  return {
185
194
  Program(node) {
186
195
  // Get filename from context
187
- const filename = context.getFilename();
196
+ const filename = context.filename;
188
197
  if (!filename) {
189
198
  return;
190
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filename-case.js","sourceRoot":"","sources":["../../../../../../packages/eslint-plugin-conventions/src/rules/conventions/filename-case.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filename-case.js","sourceRoot":"","sources":["../../../../src/rules/conventions/filename-case.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,7 @@ exports.noCommentedCode = (0, eslint_devkit_2.createRule)({
81
81
  meta: {
82
82
  type: 'suggestion',
83
83
  docs: {
84
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/no-commented-code.md',
84
85
  description: 'Detects commented-out code blocks',
85
86
  },
86
87
  hasSuggestions: true,
@@ -144,12 +145,12 @@ exports.noCommentedCode = (0, eslint_devkit_2.createRule)({
144
145
  ],
145
146
  create(context, [options = {}]) {
146
147
  const { ignoreSingleLine = false, ignoreInTests = true, minLines = 1, } = options || {};
147
- const filename = context.getFilename();
148
+ const filename = context.filename;
148
149
  const isTestFile = ignoreInTests && /\.(test|spec)\.(ts|tsx|js|jsx)$/.test(filename);
149
150
  if (isTestFile) {
150
151
  return {};
151
152
  }
152
- const sourceCode = context.sourceCode || context.sourceCode;
153
+ const sourceCode = context.sourceCode;
153
154
  /**
154
155
  * Check comment nodes
155
156
  */
@@ -1 +1 @@
1
- {"version":3,"file":"no-commented-code.js","sourceRoot":"","sources":["../../../../../../packages/eslint-plugin-conventions/src/rules/conventions/no-commented-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-commented-code.js","sourceRoot":"","sources":["../../../../src/rules/conventions/no-commented-code.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ exports.noConsoleSpaces = (0, eslint_devkit_1.createRule)({
13
13
  meta: {
14
14
  type: 'problem',
15
15
  docs: {
16
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/no-console-spaces.md',
16
17
  description: 'Prevent leading/trailing space between console.log parameters',
17
18
  },
18
19
  fixable: 'code',
@@ -43,6 +44,7 @@ exports.noConsoleSpaces = (0, eslint_devkit_1.createRule)({
43
44
  'group',
44
45
  'groupCollapsed',
45
46
  ]);
47
+ // oxlint-disable-next-line consistent-function-scoping
46
48
  function isInAllowedContext() {
47
49
  // For simplicity, we'll skip the allow option for now
48
50
  return false;
@@ -58,6 +60,7 @@ exports.noConsoleSpaces = (0, eslint_devkit_1.createRule)({
58
60
  }
59
61
  return false;
60
62
  }
63
+ // oxlint-disable-next-line consistent-function-scoping
61
64
  function getConsoleMethodName(node) {
62
65
  // Safe extraction of console method name
63
66
  if (node.callee.type === 'MemberExpression' &&
@@ -66,12 +69,14 @@ exports.noConsoleSpaces = (0, eslint_devkit_1.createRule)({
66
69
  }
67
70
  return 'console';
68
71
  }
72
+ // oxlint-disable-next-line consistent-function-scoping
69
73
  function hasLeadingOrTrailingSpaces(text) {
70
74
  // Check if string starts or ends with whitespace, but not if it's only whitespace
71
75
  // Only flag if there's actual content with leading/trailing spaces
72
76
  const trimmed = text.trim();
73
77
  return trimmed.length > 0 && /^\s|\s$/.test(text);
74
78
  }
79
+ // oxlint-disable-next-line consistent-function-scoping
75
80
  function hasLeadingOrTrailingSpacesInTemplate(text) {
76
81
  // For template literals, even whitespace-only quasis should be flagged
77
82
  return /^\s|\s$/.test(text);
@@ -1 +1 @@
1
- {"version":3,"file":"no-console-spaces.js","sourceRoot":"","sources":["../../../../../../packages/eslint-plugin-conventions/src/rules/conventions/no-console-spaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-console-spaces.js","sourceRoot":"","sources":["../../../../src/rules/conventions/no-console-spaces.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,7 @@ exports.noJsonSchemaTags = (0, eslint_devkit_1.createRule)({
76
76
  meta: {
77
77
  type: 'suggestion',
78
78
  docs: {
79
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/no-json-schema-tags.md',
79
80
  description: 'Disallow JSON Schema keywords used as JSDoc tags (e.g. @minimum, @maximum)',
80
81
  },
81
82
  hasSuggestions: true,
@@ -120,7 +121,7 @@ exports.noJsonSchemaTags = (0, eslint_devkit_1.createRule)({
120
121
  for (const tag of additionalForbiddenTags) {
121
122
  forbiddenTags.add(tag);
122
123
  }
123
- const sourceCode = context.sourceCode || context.sourceCode;
124
+ const sourceCode = context.sourceCode;
124
125
  return {
125
126
  Program() {
126
127
  const comments = sourceCode.getAllComments();
@@ -1 +1 @@
1
- {"version":3,"file":"no-json-schema-tags.js","sourceRoot":"","sources":["../../../../../../packages/eslint-plugin-conventions/src/rules/conventions/no-json-schema-tags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-json-schema-tags.js","sourceRoot":"","sources":["../../../../src/rules/conventions/no-json-schema-tags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) 2025 Ofri Peretz
3
+ * Licensed under the MIT License. Use of this source code is governed by the
4
+ * MIT license that can be found in the LICENSE file.
5
+ */
6
+ /**
7
+ * ESLint Rule: no-magic-numbers
8
+ * Flags numeric literals that are not self-documenting — i.e., numbers that
9
+ * appear in code without a named constant explaining their meaning.
10
+ *
11
+ * Beats ESLint core's no-magic-numbers in two ways:
12
+ * 1. Built-in allowlist covers idiomatic JS patterns (array indices, bit
13
+ * masks, HTTP status codes family boundaries) so teams don't need to
14
+ * enumerate common safe values.
15
+ * 2. Skips enums, default parameter values, and export declarations where
16
+ * the context already provides naming.
17
+ *
18
+ * @see https://refactoring.guru/replace-magic-literal
19
+ */
20
+ import type { TSESLint } from '@interlace/eslint-devkit';
21
+ type MessageIds = 'noMagicNumber' | 'extractConst';
22
+ export interface Options {
23
+ /**
24
+ * Numbers that are always allowed regardless of context.
25
+ * Defaults to [-1, 0, 1, 2] — universally idiomatic.
26
+ */
27
+ ignore?: number[];
28
+ /** Allow numbers used as array indices (e.g., `items[2]`). Default: true */
29
+ ignoreArrayIndexes?: boolean;
30
+ /** Allow numbers in default parameter values (e.g., `function f(n = 10)`). Default: true */
31
+ ignoreDefaultValues?: boolean;
32
+ /** Allow numbers in enum member initializers. Default: true */
33
+ ignoreEnums?: boolean;
34
+ /** Allow numbers in bitwise expressions. Default: false */
35
+ ignoreBitwiseExpressions?: boolean;
36
+ }
37
+ type RuleOptions = [Options?];
38
+ export declare const noMagicNumbers: TSESLint.RuleModule<MessageIds, RuleOptions, unknown, TSESLint.RuleListener> & {
39
+ name: string;
40
+ };
41
+ export {};
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2025 Ofri Peretz
4
+ * Licensed under the MIT License. Use of this source code is governed by the
5
+ * MIT license that can be found in the LICENSE file.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.noMagicNumbers = void 0;
9
+ const eslint_devkit_1 = require("@interlace/eslint-devkit");
10
+ const eslint_devkit_2 = require("@interlace/eslint-devkit");
11
+ /** Numbers that are universally idiomatic in JS/TS and need no naming. */
12
+ const DEFAULT_IGNORE = new Set([-1, 0, 1, 2]);
13
+ /** Build a SCREAMING_SNAKE_CASE const name from a numeric value. */
14
+ function constNameFor(value) {
15
+ // e.g. 5000 → MAGIC_5000 · -3 → MAGIC_NEG_3 · 1.5 → MAGIC_1_5
16
+ const prefix = value < 0 ? 'MAGIC_NEG_' : 'MAGIC_';
17
+ const digits = String(Math.abs(value)).replace('.', '_');
18
+ return `${prefix}${digits}`;
19
+ }
20
+ /**
21
+ * Walk up the AST to find the nearest statement ancestor that can be used
22
+ * as the insertion point for a const declaration.
23
+ */
24
+ function nearestStatement(node) {
25
+ const STATEMENT_TYPES = new Set([
26
+ 'ExpressionStatement', 'VariableDeclaration', 'ReturnStatement',
27
+ 'IfStatement', 'WhileStatement', 'ForStatement', 'ForInStatement',
28
+ 'ForOfStatement', 'ThrowStatement', 'SwitchStatement',
29
+ ]);
30
+ let current = node.parent;
31
+ while (current) {
32
+ if (STATEMENT_TYPES.has(current.type))
33
+ return current;
34
+ current = current.parent;
35
+ }
36
+ return null;
37
+ }
38
+ exports.noMagicNumbers = (0, eslint_devkit_1.createRule)({
39
+ name: 'no-magic-numbers',
40
+ meta: {
41
+ type: 'suggestion',
42
+ docs: {
43
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/no-magic-numbers.md',
44
+ description: 'Disallow magic numbers (numeric literals without a named constant)',
45
+ },
46
+ hasSuggestions: true,
47
+ messages: {
48
+ noMagicNumber: (0, eslint_devkit_2.formatLLMMessage)({
49
+ icon: eslint_devkit_2.MessageIcons.INFO,
50
+ issueName: 'Magic Number',
51
+ description: 'The number {{value}} is a magic literal. Extract it to a named constant to make the intent clear.',
52
+ severity: 'LOW',
53
+ fix: 'const TIMEOUT_MS = {{value}}; // use the named constant everywhere',
54
+ documentationLink: 'https://refactoring.guru/replace-magic-literal',
55
+ }),
56
+ extractConst: 'Extract {{value}} to a named constant ({{constName}})',
57
+ },
58
+ schema: [
59
+ {
60
+ type: 'object',
61
+ properties: {
62
+ ignore: {
63
+ type: 'array',
64
+ items: { type: 'number' },
65
+ description: 'Additional numbers to allow',
66
+ },
67
+ ignoreArrayIndexes: { type: 'boolean', default: true },
68
+ ignoreDefaultValues: { type: 'boolean', default: true },
69
+ ignoreEnums: { type: 'boolean', default: true },
70
+ ignoreBitwiseExpressions: { type: 'boolean', default: false },
71
+ },
72
+ additionalProperties: false,
73
+ },
74
+ ],
75
+ },
76
+ defaultOptions: [
77
+ {
78
+ ignore: [],
79
+ ignoreArrayIndexes: true,
80
+ ignoreDefaultValues: true,
81
+ ignoreEnums: true,
82
+ ignoreBitwiseExpressions: false,
83
+ },
84
+ ],
85
+ create(context) {
86
+ const [options = {}] = context.options;
87
+ const { ignore = [], ignoreArrayIndexes = true, ignoreDefaultValues = true, ignoreEnums = true, ignoreBitwiseExpressions = false, } = options;
88
+ const ignoredValues = new Set([...DEFAULT_IGNORE, ...ignore]);
89
+ function isIgnoredNumber(value) {
90
+ return ignoredValues.has(value);
91
+ }
92
+ function isArrayIndex(node) {
93
+ if (!ignoreArrayIndexes)
94
+ return false;
95
+ const parent = node.parent;
96
+ return (parent?.type === 'MemberExpression' &&
97
+ parent.computed &&
98
+ parent.property === node);
99
+ }
100
+ function isDefaultValue(node) {
101
+ if (!ignoreDefaultValues)
102
+ return false;
103
+ const parent = node.parent;
104
+ return (parent?.type === 'AssignmentPattern' &&
105
+ parent.right === node);
106
+ }
107
+ function isEnumMember(node) {
108
+ if (!ignoreEnums)
109
+ return false;
110
+ const parent = node.parent;
111
+ return parent?.type === 'TSEnumMember';
112
+ }
113
+ function isBitwiseContext(node) {
114
+ if (!ignoreBitwiseExpressions)
115
+ return false;
116
+ const parent = node.parent;
117
+ const BITWISE_OPS = new Set(['&', '|', '^', '<<', '>>', '>>>']);
118
+ return (parent?.type === 'BinaryExpression' &&
119
+ BITWISE_OPS.has(parent.operator));
120
+ }
121
+ function isVariableDeclarator(node) {
122
+ // const FOO = 42 — the literal is the named constant itself
123
+ const parent = node.parent;
124
+ return parent?.type === 'VariableDeclarator';
125
+ }
126
+ function isExportedConst(node) {
127
+ // export const FOO = 42
128
+ let current = node;
129
+ while (current) {
130
+ if (current.type === 'ExportNamedDeclaration')
131
+ return true;
132
+ if (current.type === 'VariableDeclaration' ||
133
+ current.type === 'VariableDeclarator') {
134
+ current = current.parent;
135
+ continue;
136
+ }
137
+ break;
138
+ }
139
+ return false;
140
+ }
141
+ function isPropertyKey(node) {
142
+ // { 42: 'value' } — numeric key in object literal
143
+ const parent = node.parent;
144
+ return (parent?.type === 'Property' &&
145
+ parent.key === node);
146
+ }
147
+ return {
148
+ Literal(node) {
149
+ if (typeof node.value !== 'number')
150
+ return;
151
+ const value = node.value;
152
+ // Skip universally ignored values
153
+ if (isIgnoredNumber(value))
154
+ return;
155
+ // Skip NaN / Infinity (not numeric literals per se)
156
+ if (!isFinite(value))
157
+ return;
158
+ // Context-based skips
159
+ if (isVariableDeclarator(node))
160
+ return; // const X = 42
161
+ if (isExportedConst(node))
162
+ return;
163
+ if (isArrayIndex(node))
164
+ return;
165
+ if (isDefaultValue(node))
166
+ return;
167
+ if (isEnumMember(node))
168
+ return;
169
+ if (isBitwiseContext(node))
170
+ return;
171
+ if (isPropertyKey(node))
172
+ return;
173
+ const constName = constNameFor(value);
174
+ const sourceCode = context.sourceCode;
175
+ context.report({
176
+ node,
177
+ messageId: 'noMagicNumber',
178
+ data: { value: String(value) },
179
+ suggest: [
180
+ {
181
+ messageId: 'extractConst',
182
+ data: { value: String(value), constName },
183
+ fix(fixer) {
184
+ const stmt = nearestStatement(node);
185
+ if (!stmt)
186
+ return null;
187
+ // Determine indentation from the statement's first token.
188
+ const firstToken = sourceCode.getFirstToken(stmt);
189
+ if (!firstToken)
190
+ return null;
191
+ const col = firstToken.loc.start.column;
192
+ const indent = ' '.repeat(col);
193
+ return [
194
+ fixer.insertTextBefore(stmt, `const ${constName} = ${value};\n${indent}`),
195
+ fixer.replaceText(node, constName),
196
+ ];
197
+ },
198
+ },
199
+ ],
200
+ });
201
+ },
202
+ };
203
+ },
204
+ });
205
+ //# sourceMappingURL=no-magic-numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-magic-numbers.js","sourceRoot":"","sources":["../../../../src/rules/conventions/no-magic-numbers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2025 Ofri Peretz
3
+ * Licensed under the MIT License. Use of this source code is governed by the
4
+ * MIT license that can be found in the LICENSE file.
5
+ */
6
+ /**
7
+ * ESLint Rule: no-raw-cross-property-href
8
+ *
9
+ * Flags hand-written `<a href="https://*.interlace.tools/…">` and
10
+ * `<a href="https://ofriperetz.dev/…">` JSX literals. UTM_PHILOSOPHY.md
11
+ * principle 9: the only blessed way to construct a cross-property URL is the
12
+ * `buildUtmHref()` helper, which stamps the source/medium/campaign/content
13
+ * and (for cross-eTLD+1 outbound) appends `ph_distinct_id` for identity
14
+ * stitching.
15
+ *
16
+ * The rule fires on JSX `href` attributes whose value is a string Literal
17
+ * (not an expression). Wrapping the URL in `buildUtmHref(...)` produces a
18
+ * JSXExpressionContainer instead of a Literal, which is the intended escape
19
+ * hatch — no separate detection needed.
20
+ */
21
+ import type { TSESLint } from '@interlace/eslint-devkit';
22
+ export declare const noRawCrossPropertyHref: TSESLint.RuleModule<"rawCrossPropertyHref", [], unknown, TSESLint.RuleListener> & {
23
+ name: string;
24
+ };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2025 Ofri Peretz
4
+ * Licensed under the MIT License. Use of this source code is governed by the
5
+ * MIT license that can be found in the LICENSE file.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.noRawCrossPropertyHref = void 0;
9
+ const eslint_devkit_1 = require("@interlace/eslint-devkit");
10
+ const eslint_devkit_2 = require("@interlace/eslint-devkit");
11
+ // Fixed list of cross-property hosts. Mirrors UTM_PHILOSOPHY.md's
12
+ // cross-property travel matrix and ANALYTICS_PHILOSOPHY.md principle 1's
13
+ // list of measured surfaces. Edit there and here together.
14
+ const CROSS_PROPERTY_HOSTS = new Set([
15
+ 'ofriperetz.dev',
16
+ 'interlace.tools',
17
+ 'eslint.interlace.tools',
18
+ 'serverless.interlace.tools',
19
+ 'ds.interlace.tools',
20
+ 'storybook.interlace.tools',
21
+ ]);
22
+ exports.noRawCrossPropertyHref = (0, eslint_devkit_1.createRule)({
23
+ name: 'no-raw-cross-property-href',
24
+ meta: {
25
+ type: 'problem',
26
+ docs: {
27
+ url: 'https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-conventions/docs/rules/no-raw-cross-property-href.md',
28
+ description: 'Forbid hand-written cross-property hrefs; use buildUtmHref() from lib/utm.ts',
29
+ },
30
+ fixable: undefined,
31
+ hasSuggestions: false,
32
+ messages: {
33
+ rawCrossPropertyHref: (0, eslint_devkit_2.formatLLMMessage)({
34
+ icon: eslint_devkit_2.MessageIcons.WARNING,
35
+ issueName: 'Raw cross-property href',
36
+ description: 'href "{{href}}" points to a cross-property surface ({{host}}). Use buildUtmHref() from lib/utm.ts so the link carries UTM and ph_distinct_id.',
37
+ severity: 'HIGH',
38
+ fix: 'Replace with buildUtmHref(\'{{href}}\', { source, medium, campaign, content }).',
39
+ documentationLink: 'https://github.com/ofri-peretz/eslint/blob/main/UTM_PHILOSOPHY.md',
40
+ }),
41
+ },
42
+ schema: [],
43
+ },
44
+ defaultOptions: [],
45
+ create(context) {
46
+ function parseHost(value) {
47
+ // Only absolute URLs with a hostname.
48
+ if (!/^https?:\/\//i.test(value))
49
+ return null;
50
+ try {
51
+ return new URL(value).hostname.toLowerCase();
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ function isCrossPropertyHref(href) {
58
+ const host = parseHost(href);
59
+ if (!host)
60
+ return null;
61
+ if (!CROSS_PROPERTY_HOSTS.has(host))
62
+ return null;
63
+ return { host };
64
+ }
65
+ return {
66
+ JSXAttribute(node) {
67
+ if (node.name.type !== 'JSXIdentifier' ||
68
+ node.name.name !== 'href' ||
69
+ !node.value ||
70
+ node.value.type !== 'Literal' ||
71
+ typeof node.value.value !== 'string') {
72
+ return;
73
+ }
74
+ const result = isCrossPropertyHref(node.value.value);
75
+ if (!result)
76
+ return;
77
+ context.report({
78
+ node: node.value,
79
+ messageId: 'rawCrossPropertyHref',
80
+ data: { href: node.value.value, host: result.host },
81
+ });
82
+ },
83
+ };
84
+ },
85
+ });
86
+ //# sourceMappingURL=no-raw-cross-property-href.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-raw-cross-property-href.js","sourceRoot":"","sources":["../../../../src/rules/conventions/no-raw-cross-property-href.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAkBH,4DAAsD;AACtD,4DAA0E;AAK1E,kEAAkE;AAClE,yEAAyE;AACzE,2DAA2D;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,gBAAgB;IAChB,iBAAiB;IACjB,wBAAwB;IACxB,4BAA4B;IAC5B,oBAAoB;IACpB,2BAA2B;CAC5B,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,IAAA,0BAAU,EAA0B;IACxE,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,6HAA6H;YAClI,WAAW,EACT,8EAA8E;SACjF;QACD,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACR,oBAAoB,EAAE,IAAA,gCAAgB,EAAC;gBACrC,IAAI,EAAE,4BAAY,CAAC,OAAO;gBAC1B,SAAS,EAAE,yBAAyB;gBACpC,WAAW,EACT,+IAA+I;gBACjJ,QAAQ,EAAE,MAAM;gBAChB,GAAG,EAAE,iFAAiF;gBACtF,iBAAiB,EACf,mEAAmE;aACtE,CAAC;SACH;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAElB,MAAM,CAAC,OAAsD;QAC3D,SAAS,SAAS,CAAC,KAAa;YAC9B,sCAAsC;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,IAAI,CAAC;gBACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,SAAS,mBAAmB,CAAC,IAAY;YAGvC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,OAAO;YACL,YAAY,CAAC,IAA2B;gBACtC,IACE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;oBAClC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;oBACzB,CAAC,IAAI,CAAC,KAAK;oBACX,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EACpC,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM;oBAAE,OAAO;gBACpB,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,KAAK;oBAChB,SAAS,EAAE,sBAAsB;oBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;iBACpD,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}