@thethracian/oxlint-config 0.3.1 → 0.3.2

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 (204) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/codemods/arrow-body-style.d.ts.map +1 -1
  3. package/dist/codemods/arrow-body-style.js +29 -68
  4. package/dist/codemods/arrow-body-style.js.map +1 -1
  5. package/dist/codemods/comment-format.d.ts.map +1 -1
  6. package/dist/codemods/comment-format.js +22 -32
  7. package/dist/codemods/comment-format.js.map +1 -1
  8. package/dist/codemods/explicit-return-types.d.ts.map +1 -1
  9. package/dist/codemods/explicit-return-types.js +58 -167
  10. package/dist/codemods/explicit-return-types.js.map +1 -1
  11. package/dist/codemods/format-file-header.d.ts.map +1 -1
  12. package/dist/codemods/format-file-header.js +33 -72
  13. package/dist/codemods/format-file-header.js.map +1 -1
  14. package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -1
  15. package/dist/codemods/format-jsdoc-comments.js +58 -66
  16. package/dist/codemods/format-jsdoc-comments.js.map +1 -1
  17. package/dist/codemods/function-declarations.d.ts.map +1 -1
  18. package/dist/codemods/function-declarations.js +45 -80
  19. package/dist/codemods/function-declarations.js.map +1 -1
  20. package/dist/codemods/inline-export-lists.d.ts.map +1 -1
  21. package/dist/codemods/inline-export-lists.js +60 -108
  22. package/dist/codemods/inline-export-lists.js.map +1 -1
  23. package/dist/codemods/internal-export-docs.d.ts.map +1 -1
  24. package/dist/codemods/internal-export-docs.js +21 -59
  25. package/dist/codemods/internal-export-docs.js.map +1 -1
  26. package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -1
  27. package/dist/codemods/no-ternary-branch-initializers.js +72 -144
  28. package/dist/codemods/no-ternary-branch-initializers.js.map +1 -1
  29. package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -1
  30. package/dist/codemods/no-ternary-variable-initializers.js +69 -152
  31. package/dist/codemods/no-ternary-variable-initializers.js.map +1 -1
  32. package/dist/codemods/no-ternary.d.ts.map +1 -1
  33. package/dist/codemods/no-ternary.js +44 -108
  34. package/dist/codemods/no-ternary.js.map +1 -1
  35. package/dist/codemods/rename-acronyms.d.ts.map +1 -1
  36. package/dist/codemods/rename-acronyms.js +73 -99
  37. package/dist/codemods/rename-acronyms.js.map +1 -1
  38. package/dist/codemods/run.d.ts.map +1 -1
  39. package/dist/codemods/run.js +15 -7
  40. package/dist/codemods/run.js.map +1 -1
  41. package/dist/codemods/sort-imports.d.ts.map +1 -1
  42. package/dist/codemods/sort-imports.js +52 -94
  43. package/dist/codemods/sort-imports.js.map +1 -1
  44. package/dist/rules/acronym-case.d.ts.map +1 -1
  45. package/dist/rules/acronym-case.js +68 -141
  46. package/dist/rules/acronym-case.js.map +1 -1
  47. package/dist/rules/acronyms-1.d.ts +1 -1
  48. package/dist/rules/acronyms-1.d.ts.map +1 -1
  49. package/dist/rules/acronyms-1.js +2 -402
  50. package/dist/rules/acronyms-1.js.map +1 -1
  51. package/dist/rules/acronyms-2.d.ts +1 -1
  52. package/dist/rules/acronyms-2.d.ts.map +1 -1
  53. package/dist/rules/acronyms-2.js +2 -402
  54. package/dist/rules/acronyms-2.js.map +1 -1
  55. package/dist/rules/acronyms-3.d.ts +1 -1
  56. package/dist/rules/acronyms-3.d.ts.map +1 -1
  57. package/dist/rules/acronyms-3.js +2 -402
  58. package/dist/rules/acronyms-3.js.map +1 -1
  59. package/dist/rules/acronyms-4.d.ts +1 -1
  60. package/dist/rules/acronyms-4.d.ts.map +1 -1
  61. package/dist/rules/acronyms-4.js +2 -372
  62. package/dist/rules/acronyms-4.js.map +1 -1
  63. package/dist/rules/acronyms.d.ts.map +1 -1
  64. package/dist/rules/acronyms.js +3 -6
  65. package/dist/rules/acronyms.js.map +1 -1
  66. package/dist/rules/boolean-prefix.d.ts.map +1 -1
  67. package/dist/rules/boolean-prefix.js +25 -71
  68. package/dist/rules/boolean-prefix.js.map +1 -1
  69. package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
  70. package/dist/rules/camel-case-identifiers.js +15 -54
  71. package/dist/rules/camel-case-identifiers.js.map +1 -1
  72. package/dist/rules/char-class.d.ts +1 -1
  73. package/dist/rules/char-class.d.ts.map +1 -1
  74. package/dist/rules/char-class.js +16 -16
  75. package/dist/rules/char-class.js.map +1 -1
  76. package/dist/rules/diagnostic-guidance.d.ts.map +1 -1
  77. package/dist/rules/diagnostic-guidance.js +11 -20
  78. package/dist/rules/diagnostic-guidance.js.map +1 -1
  79. package/dist/rules/effect-default-ast.d.ts.map +1 -1
  80. package/dist/rules/effect-default-ast.js +35 -116
  81. package/dist/rules/effect-default-ast.js.map +1 -1
  82. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -1
  83. package/dist/rules/effect-default-compat-rules.js +41 -79
  84. package/dist/rules/effect-default-compat-rules.js.map +1 -1
  85. package/dist/rules/effect-default-env-rules.d.ts.map +1 -1
  86. package/dist/rules/effect-default-env-rules.js +23 -29
  87. package/dist/rules/effect-default-env-rules.js.map +1 -1
  88. package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -1
  89. package/dist/rules/effect-default-fiber-helpers.js +12 -26
  90. package/dist/rules/effect-default-fiber-helpers.js.map +1 -1
  91. package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -1
  92. package/dist/rules/effect-default-floating-helpers.js +59 -67
  93. package/dist/rules/effect-default-floating-helpers.js.map +1 -1
  94. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
  95. package/dist/rules/effect-default-resource-helpers.js +36 -44
  96. package/dist/rules/effect-default-resource-helpers.js.map +1 -1
  97. package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -1
  98. package/dist/rules/effect-default-safety-helpers.js +29 -68
  99. package/dist/rules/effect-default-safety-helpers.js.map +1 -1
  100. package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -1
  101. package/dist/rules/effect-default-scan-helpers.js +51 -70
  102. package/dist/rules/effect-default-scan-helpers.js.map +1 -1
  103. package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -1
  104. package/dist/rules/effect-default-schema-helpers.js +32 -43
  105. package/dist/rules/effect-default-schema-helpers.js.map +1 -1
  106. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
  107. package/dist/rules/effect-default-test-helpers.js +13 -25
  108. package/dist/rules/effect-default-test-helpers.js.map +1 -1
  109. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -1
  110. package/dist/rules/effect-default-workflow-helpers.js +53 -113
  111. package/dist/rules/effect-default-workflow-helpers.js.map +1 -1
  112. package/dist/rules/effect-exported-declarations.d.ts.map +1 -1
  113. package/dist/rules/effect-exported-declarations.js +90 -177
  114. package/dist/rules/effect-exported-declarations.js.map +1 -1
  115. package/dist/rules/effect-path-options.d.ts.map +1 -1
  116. package/dist/rules/effect-path-options.js +48 -58
  117. package/dist/rules/effect-path-options.js.map +1 -1
  118. package/dist/rules/effect-rule-aliases.d.ts.map +1 -1
  119. package/dist/rules/effect-rule-aliases.js +43 -101
  120. package/dist/rules/effect-rule-aliases.js.map +1 -1
  121. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  122. package/dist/rules/effect-rule-core.js +42 -78
  123. package/dist/rules/effect-rule-core.js.map +1 -1
  124. package/dist/rules/effect-rule-names.d.ts +2 -2
  125. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  126. package/dist/rules/effect-rule-names.js +3 -145
  127. package/dist/rules/effect-rule-names.js.map +1 -1
  128. package/dist/rules/effect-source-comments.d.ts.map +1 -1
  129. package/dist/rules/effect-source-comments.js +112 -167
  130. package/dist/rules/effect-source-comments.js.map +1 -1
  131. package/dist/rules/effect-source-navigation.d.ts.map +1 -1
  132. package/dist/rules/effect-source-navigation.js +103 -185
  133. package/dist/rules/effect-source-navigation.js.map +1 -1
  134. package/dist/rules/effect-source-regex-scan.d.ts +13 -0
  135. package/dist/rules/effect-source-regex-scan.d.ts.map +1 -0
  136. package/dist/rules/effect-source-regex-scan.js +126 -0
  137. package/dist/rules/effect-source-regex-scan.js.map +1 -0
  138. package/dist/rules/effect-source-scan.d.ts +1 -12
  139. package/dist/rules/effect-source-scan.d.ts.map +1 -1
  140. package/dist/rules/effect-source-scan.js +93 -239
  141. package/dist/rules/effect-source-scan.js.map +1 -1
  142. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -1
  143. package/dist/rules/effect-strict-ast-specs.js +11 -8
  144. package/dist/rules/effect-strict-ast-specs.js.map +1 -1
  145. package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -1
  146. package/dist/rules/effect-strict-boundary-helpers.js +51 -87
  147. package/dist/rules/effect-strict-boundary-helpers.js.map +1 -1
  148. package/dist/rules/effect-strict-core-specs.d.ts.map +1 -1
  149. package/dist/rules/effect-strict-core-specs.js +8 -6
  150. package/dist/rules/effect-strict-core-specs.js.map +1 -1
  151. package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -1
  152. package/dist/rules/effect-strict-external-helpers.js +20 -40
  153. package/dist/rules/effect-strict-external-helpers.js.map +1 -1
  154. package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
  155. package/dist/rules/effect-strict-helpers.js +47 -72
  156. package/dist/rules/effect-strict-helpers.js.map +1 -1
  157. package/dist/rules/effect-strict-internals.d.ts.map +1 -1
  158. package/dist/rules/effect-strict-internals.js +46 -101
  159. package/dist/rules/effect-strict-internals.js.map +1 -1
  160. package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -1
  161. package/dist/rules/effect-strict-segment-helpers.js +103 -174
  162. package/dist/rules/effect-strict-segment-helpers.js.map +1 -1
  163. package/dist/rules/effect-strict.d.ts.map +1 -1
  164. package/dist/rules/effect-strict.js +3 -2
  165. package/dist/rules/effect-strict.js.map +1 -1
  166. package/dist/rules/max-import-depth.d.ts +2 -1
  167. package/dist/rules/max-import-depth.d.ts.map +1 -1
  168. package/dist/rules/max-import-depth.js +13 -15
  169. package/dist/rules/max-import-depth.js.map +1 -1
  170. package/dist/rules/max-line-length.d.ts.map +1 -1
  171. package/dist/rules/max-line-length.js +26 -39
  172. package/dist/rules/max-line-length.js.map +1 -1
  173. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  174. package/dist/rules/no-commented-out-code.js +53 -156
  175. package/dist/rules/no-commented-out-code.js.map +1 -1
  176. package/dist/rules/pascal-case-types.d.ts.map +1 -1
  177. package/dist/rules/pascal-case-types.js +16 -70
  178. package/dist/rules/pascal-case-types.js.map +1 -1
  179. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -1
  180. package/dist/rules/plugin-commented-out-code-rule.js +50 -77
  181. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -1
  182. package/dist/rules/plugin.d.ts.map +1 -1
  183. package/dist/rules/plugin.js +14 -35
  184. package/dist/rules/plugin.js.map +1 -1
  185. package/dist/rules/private-underscore.d.ts +3 -1
  186. package/dist/rules/private-underscore.d.ts.map +1 -1
  187. package/dist/rules/private-underscore.js +7 -9
  188. package/dist/rules/private-underscore.js.map +1 -1
  189. package/dist/rules/require-file-doc.d.ts.map +1 -1
  190. package/dist/rules/require-file-doc.js +28 -94
  191. package/dist/rules/require-file-doc.js.map +1 -1
  192. package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -1
  193. package/dist/rules/require-function-doc-ignored-text.js +6 -9
  194. package/dist/rules/require-function-doc-ignored-text.js.map +1 -1
  195. package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -1
  196. package/dist/rules/require-function-doc-local-exports.js +16 -58
  197. package/dist/rules/require-function-doc-local-exports.js.map +1 -1
  198. package/dist/rules/require-function-doc.d.ts.map +1 -1
  199. package/dist/rules/require-function-doc.js +87 -196
  200. package/dist/rules/require-function-doc.js.map +1 -1
  201. package/dist/rules/source-cache.d.ts.map +1 -1
  202. package/dist/rules/source-cache.js +23 -33
  203. package/dist/rules/source-cache.js.map +1 -1
  204. package/package.json +3 -1
@@ -1,88 +1,49 @@
1
1
  /* -------------------------------------------------------------------------- */
2
2
  /* Source navigation helpers for Effect lint rule implementations. */
3
3
  /* -------------------------------------------------------------------------- */
4
+ import { Array, HashSet, Match, Option, pipe } from 'effect';
4
5
  import { findBalancedCallEnd, findMatchingBrace, findREGEXLiteralEnd, isREGEXLiteralStart, } from './effect-source-scan.js';
5
- const skipLineCommentIndex = (source, index, fallback) => {
6
- const newlineIndex = source.indexOf('\n', index + 2);
7
- if (newlineIndex === -1) {
8
- return fallback;
9
- }
10
- return newlineIndex;
11
- };
12
- const skipBlockCommentIndex = (source, index, fallback) => {
13
- const commentEnd = source.indexOf('*/', index + 2);
14
- if (commentEnd === -1) {
15
- return fallback;
16
- }
17
- return commentEnd + 1;
18
- };
19
- const nextQuoteState = (state, char) => {
20
- if (state.isEscaped) {
21
- return { ...state, isEscaped: false };
22
- }
23
- if (char === '\\') {
24
- return { ...state, isEscaped: true };
25
- }
26
- if (char === state.quote) {
27
- return { isEscaped: false, quote: '' };
28
- }
29
- return state;
30
- };
31
- const quoteStart = (char) => {
32
- if (char === '"' || char === "'" || char === '`') {
33
- return char;
34
- }
35
- return '';
36
- };
37
- const scanNonCodeIndex = (source, index, fallback) => {
38
- const char = source[index];
39
- const nextChar = source[index + 1];
40
- if (char === '/' && nextChar === '/') {
41
- return skipLineCommentIndex(source, index, fallback);
42
- }
43
- if (char === '/' && nextChar === '*') {
44
- return skipBlockCommentIndex(source, index, fallback);
45
- }
46
- if (isREGEXLiteralStart(source, index)) {
47
- return findREGEXLiteralEnd(source, index);
48
- }
49
- return undefined;
50
- };
6
+ const quoteCharacters = HashSet.make('"', "'", '`');
7
+ const scanIndexes = (startIndex, endIndex) => Match.value(startIndex).pipe(Match.when((value) => value > endIndex, () => []), Match.orElse((value) => Array.range(value, endIndex)));
8
+ const indexOrFallback = (index, fallback) => Match.value(index).pipe(Match.when(-1, () => fallback), Match.orElse((value) => value));
9
+ const skipLineCommentIndex = (source, index, fallback) => indexOrFallback(source.indexOf('\n', index + 2), fallback);
10
+ const skipBlockCommentIndex = (source, index, fallback) => Match.value(source.indexOf('*/', index + 2)).pipe(Match.when(-1, () => fallback), Match.orElse((commentEnd) => commentEnd + 1));
11
+ const nextQuoteState = (state, char) => Match.value({ char, state }).pipe(Match.when(({ state: currentState }) => currentState.isEscaped, ({ state: currentState }) => ({ ...currentState, isEscaped: false })), Match.when(({ char: value }) => value === '\\', ({ state: currentState }) => ({ ...currentState, isEscaped: true })), Match.when(({ char: value, state: currentState }) => value === currentState.quote, () => ({ isEscaped: false, quote: '' })), Match.orElse(({ state: currentState }) => currentState));
12
+ const quoteStart = (char) => Match.value(char).pipe(Match.when((value) => HashSet.has(quoteCharacters, value), (value) => value), Match.orElse(() => ''));
13
+ const scanNonCodeIndex = (source, index, fallback) => Match.value({ char: source[index], nextChar: source[index + 1] }).pipe(Match.when(({ char, nextChar }) => char === '/' && nextChar === '/', () => skipLineCommentIndex(source, index, fallback)), Match.when(({ char, nextChar }) => char === '/' && nextChar === '*', () => skipBlockCommentIndex(source, index, fallback)), Match.when(() => isREGEXLiteralStart(source, index), () => findREGEXLiteralEnd(source, index)), Match.orElse(() => undefined));
51
14
  const scanBraceIndex = (source, index, targetIndex, stack) => {
52
15
  const char = source[index];
53
16
  const nonCodeIndex = scanNonCodeIndex(source, index, targetIndex);
54
- if (nonCodeIndex !== undefined) {
55
- return nonCodeIndex;
56
- }
57
- if (char === '{') {
58
- stack.push(index);
59
- }
60
- else if (char === '}') {
61
- stack.pop();
62
- }
63
- return index;
17
+ return pipe(Option.fromNullable(nonCodeIndex), Option.match({
18
+ onNone: () => Match.value(char).pipe(Match.when('{', () => {
19
+ stack.push(index);
20
+ return index;
21
+ }), Match.when('}', () => {
22
+ stack.pop();
23
+ return index;
24
+ }), Match.orElse(() => index)),
25
+ onSome: (value) => value,
26
+ }));
64
27
  };
65
28
  const nextBraceScanIndex = (source, index, targetIndex, stack, quoteState) => {
66
29
  const char = source[index];
67
- if (quoteState.quote) {
68
- return { index, quoteState: nextQuoteState(quoteState, char) };
69
- }
70
- const quote = quoteStart(char);
71
- if (quote) {
72
- return { index, quoteState: { isEscaped: false, quote } };
73
- }
74
- return {
75
- index: scanBraceIndex(source, index, targetIndex, stack),
76
- quoteState,
77
- };
30
+ return Match.value(quoteState.quote).pipe(Match.when((quote) => quote !== '', () => ({
31
+ index,
32
+ quoteState: nextQuoteState(quoteState, char),
33
+ })), Match.orElse(() => {
34
+ const quote = quoteStart(char);
35
+ return Match.value(quote).pipe(Match.when((value) => value !== '', (value) => ({
36
+ index,
37
+ quoteState: { isEscaped: false, quote: value },
38
+ })), Match.orElse(() => ({
39
+ index: scanBraceIndex(source, index, targetIndex, stack),
40
+ quoteState,
41
+ })));
42
+ }));
78
43
  };
79
44
  const findEnclosingBraceOpen = (source, targetIndex) => {
80
45
  const stack = [];
81
- let quoteState = { isEscaped: false, quote: '' };
82
- for (let index = 0; index < targetIndex; index++) {
83
- const next = nextBraceScanIndex(source, index, targetIndex, stack, quoteState);
84
- ({ index, quoteState } = next);
85
- }
46
+ pipe(scanIndexes(0, targetIndex - 1), Array.reduce({ index: 0, quoteState: { isEscaped: false, quote: '' } }, (state, scanIndex) => Match.value(scanIndex < state.index).pipe(Match.when(true, () => state), Match.orElse(() => nextBraceScanIndex(source, scanIndex, targetIndex, stack, state.quoteState)))));
86
47
  return stack.at(-1) ?? -1;
87
48
  };
88
49
  /**
@@ -90,17 +51,12 @@ const findEnclosingBraceOpen = (source, targetIndex) => {
90
51
  *
91
52
  * @internal
92
53
  */
93
- export const isInsideCall = (source, targetIndex, callPattern) => {
94
- for (const match of source.matchAll(callPattern)) {
95
- const openParenIndex = source.indexOf('(', match.index);
96
- if (openParenIndex !== -1 &&
97
- openParenIndex <= targetIndex &&
98
- targetIndex <= findBalancedCallEnd(source, openParenIndex)) {
99
- return true;
100
- }
101
- }
102
- return false;
103
- };
54
+ export const isInsideCall = (source, targetIndex, callPattern) => pipe(Array.fromIterable(source.matchAll(callPattern)), Array.some((match) => {
55
+ const openParenIndex = source.indexOf('(', match.index);
56
+ return (openParenIndex !== -1 &&
57
+ openParenIndex <= targetIndex &&
58
+ targetIndex <= findBalancedCallEnd(source, openParenIndex));
59
+ }));
104
60
  /**
105
61
  * Internal helper exported for package-local composition.
106
62
  *
@@ -108,122 +64,88 @@ export const isInsideCall = (source, targetIndex, callPattern) => {
108
64
  */
109
65
  export const statementAfter = (source, targetIndex, maxLength = 320) => {
110
66
  const end = source.indexOf(';', targetIndex);
111
- if (end === -1) {
112
- return source.slice(targetIndex, targetIndex + maxLength);
113
- }
114
- return source.slice(targetIndex, end + 1);
67
+ return Match.value(end).pipe(Match.when(-1, () => source.slice(targetIndex, targetIndex + maxLength)), Match.orElse((statementEnd) => source.slice(targetIndex, statementEnd + 1)));
115
68
  };
116
69
  const isStatementDepthZero = (depth) => depth.brace === 0 && depth.bracket === 0 && depth.paren === 0;
117
- const updateParenDepth = (depth, char) => {
118
- if (char === '(') {
119
- return { ...depth, paren: depth.paren + 1 };
120
- }
121
- if (char === ')') {
122
- return { ...depth, paren: depth.paren - 1 };
123
- }
124
- return undefined;
125
- };
126
- const updateBraceDepth = (depth, char) => {
127
- if (char === '{') {
128
- return { ...depth, brace: depth.brace + 1 };
129
- }
130
- if (char === '}') {
131
- return { ...depth, brace: depth.brace - 1 };
132
- }
133
- return undefined;
134
- };
135
- const updateBracketDepth = (depth, char) => {
136
- if (char === '[') {
137
- return { ...depth, bracket: depth.bracket + 1 };
138
- }
139
- if (char === ']') {
140
- return { ...depth, bracket: depth.bracket - 1 };
141
- }
142
- return undefined;
143
- };
144
- const updateStatementDepth = (depth, char) => updateParenDepth(depth, char) ??
145
- updateBraceDepth(depth, char) ??
146
- updateBracketDepth(depth, char) ??
147
- depth;
70
+ const updateParenDepth = (depth, char) => Match.value(char).pipe(Match.when('(', () => ({ ...depth, paren: depth.paren + 1 })), Match.when(')', () => ({ ...depth, paren: depth.paren - 1 })), Match.orElse(() => undefined));
71
+ const updateBraceDepth = (depth, char) => Match.value(char).pipe(Match.when('{', () => ({ ...depth, brace: depth.brace + 1 })), Match.when('}', () => ({ ...depth, brace: depth.brace - 1 })), Match.orElse(() => undefined));
72
+ const updateBracketDepth = (depth, char) => Match.value(char).pipe(Match.when('[', () => ({ ...depth, bracket: depth.bracket + 1 })), Match.when(']', () => ({ ...depth, bracket: depth.bracket - 1 })), Match.orElse(() => undefined));
73
+ const updateStatementDepth = (depth, char) => pipe(Option.fromNullable(updateParenDepth(depth, char)), Option.orElse(() => Option.fromNullable(updateBraceDepth(depth, char))), Option.orElse(() => Option.fromNullable(updateBracketDepth(depth, char))), Option.getOrElse(() => depth));
148
74
  const skipStatementNonCode = (source, index) => scanNonCodeIndex(source, index, source.length);
149
75
  const quoteOrStatementNonCodeScan = (source, index, quoteState) => {
150
76
  const char = source[index];
151
- if (quoteState.quote) {
152
- return { index, quoteState: nextQuoteState(quoteState, char) };
153
- }
154
- const quote = quoteStart(char);
155
- if (quote) {
156
- return { index, quoteState: { isEscaped: false, quote } };
157
- }
158
- const nonCodeIndex = skipStatementNonCode(source, index);
159
- if (nonCodeIndex !== undefined) {
160
- return { index: nonCodeIndex, quoteState };
161
- }
162
- return undefined;
77
+ return Match.value(quoteState.quote).pipe(Match.when((quote) => quote !== '', () => ({
78
+ index,
79
+ quoteState: nextQuoteState(quoteState, char),
80
+ })), Match.orElse(() => {
81
+ const quote = quoteStart(char);
82
+ return Match.value(quote).pipe(Match.when((value) => value !== '', (value) => ({
83
+ index,
84
+ quoteState: { isEscaped: false, quote: value },
85
+ })), Match.orElse(() => pipe(Option.fromNullable(skipStatementNonCode(source, index)), Option.map((nonCodeIndex) => ({
86
+ index: nonCodeIndex,
87
+ quoteState,
88
+ })), Option.getOrUndefined)));
89
+ }));
163
90
  };
164
91
  const nextStatementScan = (source, index, depth, quoteState) => {
165
92
  const char = source[index];
166
- if (char === ';' && isStatementDepthZero(depth)) {
167
- return { depth, index, isEnd: true, quoteState };
168
- }
169
- const quoteOrNonCode = quoteOrStatementNonCodeScan(source, index, quoteState);
170
- if (quoteOrNonCode) {
171
- return { ...quoteOrNonCode, depth, isEnd: false };
172
- }
173
- return { depth: updateStatementDepth(depth, char), index, isEnd: false, quoteState };
93
+ return Match.value(char === ';' && isStatementDepthZero(depth)).pipe(Match.when(true, () => ({
94
+ depth,
95
+ index,
96
+ isEnd: true,
97
+ quoteState,
98
+ })), Match.orElse(() => pipe(Option.fromNullable(quoteOrStatementNonCodeScan(source, index, quoteState)), Option.match({
99
+ onNone: () => ({
100
+ depth: updateStatementDepth(depth, char),
101
+ index,
102
+ isEnd: false,
103
+ quoteState,
104
+ }),
105
+ onSome: (quoteOrNonCode) => ({ ...quoteOrNonCode, depth, isEnd: false }),
106
+ }))));
174
107
  };
175
108
  /**
176
109
  * Internal helper exported for package-local composition.
177
110
  *
178
111
  * @internal
179
112
  */
180
- export const findStatementEnd = (source, startIndex) => {
181
- let depth = { brace: 0, bracket: 0, paren: 0 };
182
- let quoteState = { isEscaped: false, quote: '' };
183
- for (let index = startIndex; index < source.length; index++) {
184
- const next = nextStatementScan(source, index, depth, quoteState);
185
- if (next.isEnd) {
186
- return index;
187
- }
188
- ({ depth, index, quoteState } = next);
189
- }
190
- return source.length - 1;
191
- };
192
- const enclosingEffectCallTail = (source, targetIndex) => {
193
- for (const match of source.matchAll(/\bEffect\.(?:gen|fn)\s*\(/g)) {
194
- const openParenIndex = source.indexOf('(', match.index);
195
- const endIndex = (() => {
196
- if (openParenIndex === -1 || openParenIndex > targetIndex) {
197
- return -1;
198
- }
199
- return findBalancedCallEnd(source, openParenIndex);
200
- })();
201
- if (endIndex !== -1 && targetIndex <= endIndex) {
202
- return source.slice(targetIndex, endIndex + 1);
203
- }
204
- }
205
- return undefined;
206
- };
113
+ export const findStatementEnd = (source, startIndex) => pipe(scanIndexes(startIndex, source.length - 1), Array.reduce({
114
+ depth: { brace: 0, bracket: 0, paren: 0 },
115
+ endIndex: source.length - 1,
116
+ index: startIndex,
117
+ isEnd: false,
118
+ quoteState: { isEscaped: false, quote: '' },
119
+ }, (state, scanIndex) => Match.value(state.isEnd || scanIndex < state.index).pipe(Match.when(true, () => state), Match.orElse(() => {
120
+ const next = nextStatementScan(source, scanIndex, state.depth, state.quoteState);
121
+ return {
122
+ ...next,
123
+ endIndex: Match.value(next.isEnd).pipe(Match.when(true, () => scanIndex), Match.orElse(() => state.endIndex)),
124
+ };
125
+ }))), (state) => state.endIndex);
126
+ const enclosingEffectCallTail = (source, targetIndex) => pipe(Array.fromIterable(source.matchAll(/\bEffect\.(?:gen|fn)\s*\(/g)), Array.findFirst((match) => {
127
+ const openParenIndex = source.indexOf('(', match.index);
128
+ return (openParenIndex !== -1 &&
129
+ openParenIndex <= targetIndex &&
130
+ targetIndex <= findBalancedCallEnd(source, openParenIndex));
131
+ }), Option.map((match) => {
132
+ const openParenIndex = source.indexOf('(', match.index);
133
+ const endIndex = findBalancedCallEnd(source, openParenIndex);
134
+ return source.slice(targetIndex, endIndex + 1);
135
+ }), Option.getOrUndefined);
207
136
  const enclosingBraceTail = (source, targetIndex) => {
208
137
  const openBrace = findEnclosingBraceOpen(source, targetIndex);
209
- if (openBrace === -1) {
210
- return undefined;
211
- }
212
- const closeBrace = findMatchingBrace(source, openBrace);
213
- if (closeBrace === -1) {
214
- return undefined;
215
- }
216
- return source.slice(targetIndex, closeBrace + 1);
138
+ return Match.value(openBrace).pipe(Match.when(-1, () => undefined), Match.orElse((braceIndex) => {
139
+ const closeBrace = findMatchingBrace(source, braceIndex);
140
+ return Match.value(closeBrace).pipe(Match.when(-1, () => undefined), Match.orElse((closeIndex) => source.slice(targetIndex, closeIndex + 1)));
141
+ }));
217
142
  };
218
143
  const tailUntilNextFunction = (source, targetIndex) => {
219
144
  const tail = source.slice(targetIndex);
220
145
  const nextFunction = tail
221
146
  .slice(1)
222
147
  .search(/\n\s*(?:export\s+)?(?:(?:async\s+)?function\b|const\s+[A-Za-z_$][\w$]*\s*=\s*(?:async\s*)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)?\s*=>)/);
223
- if (nextFunction === -1) {
224
- return tail;
225
- }
226
- return tail.slice(0, nextFunction + 1);
148
+ return Match.value(nextFunction).pipe(Match.when(-1, () => tail), Match.orElse((index) => tail.slice(0, index + 1)));
227
149
  };
228
150
  /**
229
151
  * Internal helper exported for package-local composition.
@@ -232,13 +154,9 @@ const tailUntilNextFunction = (source, targetIndex) => {
232
154
  */
233
155
  export const sameFunctionTail = (source, targetIndex) => {
234
156
  const effectTail = enclosingEffectCallTail(source, targetIndex);
235
- if (effectTail) {
236
- return effectTail;
237
- }
238
- const braceTail = enclosingBraceTail(source, targetIndex);
239
- if (braceTail) {
240
- return braceTail;
241
- }
242
- return tailUntilNextFunction(source, targetIndex);
157
+ return pipe(Option.fromNullable(effectTail), Option.match({
158
+ onNone: () => pipe(Option.fromNullable(enclosingBraceTail(source, targetIndex)), Option.getOrElse(() => tailUntilNextFunction(source, targetIndex))),
159
+ onSome: (value) => value,
160
+ }));
243
161
  };
244
162
  //# sourceMappingURL=effect-source-navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effect-source-navigation.js","sourceRoot":"","sources":["../../src/rules/effect-source-navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effect-source-navigation.js","sourceRoot":"","sources":["../../src/rules/effect-source-navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Internal helper exported for package-local composition.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare const isREGEXLiteralStart: (source: string, index: number) => boolean;
7
+ /**
8
+ * Internal helper exported for package-local composition.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare const findREGEXLiteralEnd: (source: string, startIndex: number) => number;
13
+ //# sourceMappingURL=effect-source-regex-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-source-regex-scan.d.ts","sourceRoot":"","sources":["../../src/rules/effect-source-regex-scan.ts"],"names":[],"mappings":"AA4FA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAWnE,CAAC;AA6DF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,KAAG,MA8BtE,CAAC"}
@@ -0,0 +1,126 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Regex literal scanning utilities for Effect lint rules. */
3
+ /* -------------------------------------------------------------------------- */
4
+ import { Array, HashSet, Option, pipe } from 'effect';
5
+ import { CHAR_CLASS, CLS_DIGIT, CLS_LOWER, CLS_UNDER, CLS_UPPER } from './char-class.js';
6
+ const regexPrefixChars = HashSet.make('(', '[', '{', '=', ':', ',', ';', '!', '?', '&', '|');
7
+ const regexPrefixWords = HashSet.make('case', 'delete', 'return', 'throw', 'typeof', 'void', 'yield');
8
+ const CHAR_CODE_SPACE = 32;
9
+ const CHAR_CODE_TAB = 9;
10
+ const CHAR_CODE_NEWLINE = 10;
11
+ const CHAR_CODE_CARRIAGE_RETURN = 13;
12
+ const CHAR_CODE_VERTICAL_TAB = 11;
13
+ const CHAR_CODE_FORM_FEED = 12;
14
+ const whitespaceCodes = HashSet.make(CHAR_CODE_SPACE, CHAR_CODE_TAB, CHAR_CODE_NEWLINE, CHAR_CODE_CARRIAGE_RETURN, CHAR_CODE_VERTICAL_TAB, CHAR_CODE_FORM_FEED);
15
+ const IDENTIFIER_MASK = CLS_UPPER | CLS_LOWER | CLS_DIGIT | CLS_UNDER;
16
+ const CHAR_CODE_DOLLAR = 36;
17
+ const scanIndexes = (startIndex, endIndex) => {
18
+ if (startIndex > endIndex) {
19
+ return [];
20
+ }
21
+ return Array.range(startIndex, endIndex);
22
+ };
23
+ const isWhitespaceCode = (code) => HashSet.has(whitespaceCodes, code);
24
+ const isASCIIIdentifierChar = (source, index) => {
25
+ const code = source.charCodeAt(index);
26
+ return (code === CHAR_CODE_DOLLAR ||
27
+ (code < CHAR_CLASS.length && (CHAR_CLASS[code] & IDENTIFIER_MASK) !== 0));
28
+ };
29
+ const isASCIILetter = (source, index) => {
30
+ const code = source.charCodeAt(index);
31
+ return code < CHAR_CLASS.length && (CHAR_CLASS[code] & (CLS_UPPER | CLS_LOWER)) !== 0;
32
+ };
33
+ const previousSignificantIndex = (source, index) => pipe(scanIndexes(0, index - 1), Array.reduce(-1, (significantIndex, cursor) => {
34
+ if (isWhitespaceCode(source.charCodeAt(cursor))) {
35
+ return significantIndex;
36
+ }
37
+ return cursor;
38
+ }));
39
+ const wordBefore = (source, index) => {
40
+ const endIndex = previousSignificantIndex(source, index);
41
+ if (endIndex === -1 || !isASCIIIdentifierChar(source, endIndex)) {
42
+ return '';
43
+ }
44
+ const lastSeparatorIndex = pipe(scanIndexes(0, endIndex), Array.reduce(-1, (separatorIndex, cursor) => {
45
+ if (isASCIIIdentifierChar(source, cursor)) {
46
+ return separatorIndex;
47
+ }
48
+ return cursor;
49
+ }));
50
+ return source.slice(lastSeparatorIndex + 1, endIndex + 1);
51
+ };
52
+ /**
53
+ * Internal helper exported for package-local composition.
54
+ *
55
+ * @internal
56
+ */
57
+ export const isREGEXLiteralStart = (source, index) => {
58
+ if (source[index] !== '/' || source[index + 1] === '/' || source[index + 1] === '*') {
59
+ return false;
60
+ }
61
+ const previousIndex = previousSignificantIndex(source, index);
62
+ return (previousIndex === -1 ||
63
+ HashSet.has(regexPrefixChars, source[previousIndex]) ||
64
+ HashSet.has(regexPrefixWords, wordBefore(source, index)));
65
+ };
66
+ const regexFlagsEndIndex = (source, index) => pipe(scanIndexes(index + 1, source.length - 1), Array.reduce({ flagsEndIndex: index, isDone: false }, (state, cursor) => {
67
+ if (state.isDone || !isASCIILetter(source, cursor)) {
68
+ return { flagsEndIndex: state.flagsEndIndex, isDone: true };
69
+ }
70
+ return { flagsEndIndex: cursor, isDone: false };
71
+ }), (state) => state.flagsEndIndex);
72
+ const scanREGEXDelimiter = (source, index, isCharacterClass) => {
73
+ const char = source[index];
74
+ if (char === '\n') {
75
+ return { endIndex: -1, isCharacterClass, isEscaped: false };
76
+ }
77
+ if (char === '/' && !isCharacterClass) {
78
+ return { endIndex: regexFlagsEndIndex(source, index), isCharacterClass, isEscaped: false };
79
+ }
80
+ return undefined;
81
+ };
82
+ const scanREGEXCharacterClass = (char, isCharacterClass) => {
83
+ if (char === '[') {
84
+ return { isCharacterClass: true, isEscaped: false };
85
+ }
86
+ if (char === ']') {
87
+ return { isCharacterClass: false, isEscaped: false };
88
+ }
89
+ return { isCharacterClass, isEscaped: false };
90
+ };
91
+ const scanREGEXLiteralChar = (source, index, isEscaped, isCharacterClass) => {
92
+ const char = source[index];
93
+ if (isEscaped) {
94
+ return { isCharacterClass, isEscaped: false };
95
+ }
96
+ if (char === '\\') {
97
+ return { isCharacterClass, isEscaped: true };
98
+ }
99
+ return pipe(Option.fromNullable(scanREGEXDelimiter(source, index, isCharacterClass)), Option.getOrElse(() => scanREGEXCharacterClass(char, isCharacterClass)));
100
+ };
101
+ /**
102
+ * Internal helper exported for package-local composition.
103
+ *
104
+ * @internal
105
+ */
106
+ export const findREGEXLiteralEnd = (source, startIndex) => pipe(scanIndexes(startIndex + 1, source.length - 1), Array.reduce({ endIndex: startIndex, isCharacterClass: false, isDone: false, isEscaped: false }, (state, index) => {
107
+ if (state.isDone) {
108
+ return state;
109
+ }
110
+ const result = scanREGEXLiteralChar(source, index, state.isEscaped, state.isCharacterClass);
111
+ return pipe(Option.fromNullable(result.endIndex), Option.match({
112
+ onNone: () => ({
113
+ endIndex: startIndex,
114
+ isCharacterClass: result.isCharacterClass,
115
+ isDone: false,
116
+ isEscaped: result.isEscaped,
117
+ }),
118
+ onSome: (endIndex) => {
119
+ if (endIndex === -1) {
120
+ return { ...state, endIndex: startIndex, isDone: true };
121
+ }
122
+ return { ...state, endIndex, isDone: true };
123
+ },
124
+ }));
125
+ }), (state) => state.endIndex);
126
+ //# sourceMappingURL=effect-source-regex-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-source-regex-scan.js","sourceRoot":"","sources":["../../src/rules/effect-source-regex-scan.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,4 @@
1
- /**
2
- * Internal helper exported for package-local composition.
3
- *
4
- * @internal
5
- */
6
- export declare const isREGEXLiteralStart: (source: string, index: number) => boolean;
7
- /**
8
- * Internal helper exported for package-local composition.
9
- *
10
- * @internal
11
- */
12
- export declare const findREGEXLiteralEnd: (source: string, startIndex: number) => number;
1
+ export { findREGEXLiteralEnd, isREGEXLiteralStart } from './effect-source-regex-scan';
13
2
  /**
14
3
  * Internal helper exported for package-local composition.
15
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"effect-source-scan.d.ts","sourceRoot":"","sources":["../../src/rules/effect-source-scan.ts"],"names":[],"mappings":"AAmSA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAanE,CAAC;AA0DF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,KAAG,MAgBxE,CAAC;AAyEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,gBAAgB,MAAM,KAAG,MAa5E,CAAC;AAsBF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAaxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAarE,CAAC"}
1
+ {"version":3,"file":"effect-source-scan.d.ts","sourceRoot":"","sources":["../../src/rules/effect-source-scan.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAgTtF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,gBAAgB,MAAM,KAAG,MAuB1E,CAAC;AAyBJ;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAmBtD,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAuBnE,CAAC"}