@thethracian/oxlint-config 0.2.0 → 0.3.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 (279) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +125 -19
  3. package/dist/codemod-fix/cli.d.ts +3 -0
  4. package/dist/codemod-fix/cli.d.ts.map +1 -0
  5. package/dist/codemod-fix/cli.js +22 -0
  6. package/dist/codemod-fix/cli.js.map +1 -0
  7. package/dist/codemod-fix/index.d.ts +44 -0
  8. package/dist/codemod-fix/index.d.ts.map +1 -0
  9. package/dist/codemod-fix/index.js +110 -0
  10. package/dist/codemod-fix/index.js.map +1 -0
  11. package/dist/codemods/arrow-body-style.d.ts +7 -0
  12. package/dist/codemods/arrow-body-style.d.ts.map +1 -0
  13. package/dist/codemods/arrow-body-style.js +106 -0
  14. package/dist/codemods/arrow-body-style.js.map +1 -0
  15. package/dist/codemods/comment-format.d.ts +24 -0
  16. package/dist/codemods/comment-format.d.ts.map +1 -0
  17. package/dist/codemods/comment-format.js +100 -0
  18. package/dist/codemods/comment-format.js.map +1 -0
  19. package/dist/codemods/explicit-return-types.d.ts +7 -0
  20. package/dist/codemods/explicit-return-types.d.ts.map +1 -0
  21. package/dist/codemods/explicit-return-types.js +350 -0
  22. package/dist/codemods/explicit-return-types.js.map +1 -0
  23. package/dist/codemods/format-file-header.d.ts +7 -0
  24. package/dist/codemods/format-file-header.d.ts.map +1 -0
  25. package/dist/codemods/format-file-header.js +163 -0
  26. package/dist/codemods/format-file-header.js.map +1 -0
  27. package/dist/codemods/format-jsdoc-comments.d.ts +7 -0
  28. package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -0
  29. package/dist/codemods/format-jsdoc-comments.js +129 -0
  30. package/dist/codemods/format-jsdoc-comments.js.map +1 -0
  31. package/dist/codemods/function-declarations.d.ts +7 -0
  32. package/dist/codemods/function-declarations.d.ts.map +1 -0
  33. package/dist/codemods/function-declarations.js +202 -0
  34. package/dist/codemods/function-declarations.js.map +1 -0
  35. package/dist/codemods/inline-export-lists.d.ts +7 -0
  36. package/dist/codemods/inline-export-lists.d.ts.map +1 -0
  37. package/dist/codemods/inline-export-lists.js +168 -0
  38. package/dist/codemods/inline-export-lists.js.map +1 -0
  39. package/dist/codemods/internal-export-docs.d.ts +7 -0
  40. package/dist/codemods/internal-export-docs.d.ts.map +1 -0
  41. package/dist/codemods/internal-export-docs.js +93 -0
  42. package/dist/codemods/internal-export-docs.js.map +1 -0
  43. package/dist/codemods/no-ternary-branch-initializers.d.ts +14 -0
  44. package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -0
  45. package/dist/codemods/no-ternary-branch-initializers.js +240 -0
  46. package/dist/codemods/no-ternary-branch-initializers.js.map +1 -0
  47. package/dist/codemods/no-ternary-variable-initializers.d.ts +14 -0
  48. package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -0
  49. package/dist/codemods/no-ternary-variable-initializers.js +235 -0
  50. package/dist/codemods/no-ternary-variable-initializers.js.map +1 -0
  51. package/dist/codemods/no-ternary.d.ts +7 -0
  52. package/dist/codemods/no-ternary.d.ts.map +1 -0
  53. package/dist/codemods/no-ternary.js +215 -0
  54. package/dist/codemods/no-ternary.js.map +1 -0
  55. package/dist/codemods/rename-acronyms.d.ts +8 -0
  56. package/dist/codemods/rename-acronyms.d.ts.map +1 -0
  57. package/dist/codemods/rename-acronyms.js +193 -0
  58. package/dist/codemods/rename-acronyms.js.map +1 -0
  59. package/dist/codemods/run.d.ts +2 -0
  60. package/dist/codemods/run.d.ts.map +1 -0
  61. package/dist/codemods/run.js +14 -0
  62. package/dist/codemods/run.js.map +1 -0
  63. package/dist/codemods/sort-imports.d.ts +7 -0
  64. package/dist/codemods/sort-imports.d.ts.map +1 -0
  65. package/dist/codemods/sort-imports.js +235 -0
  66. package/dist/codemods/sort-imports.js.map +1 -0
  67. package/dist/index.d.ts +30 -96
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +157 -95
  70. package/dist/index.js.map +1 -1
  71. package/dist/rules/acronym-case.d.ts +7 -3
  72. package/dist/rules/acronym-case.d.ts.map +1 -1
  73. package/dist/rules/acronym-case.js +129 -120
  74. package/dist/rules/acronym-case.js.map +1 -1
  75. package/dist/rules/acronyms-1.d.ts +3 -0
  76. package/dist/rules/acronyms-1.d.ts.map +1 -0
  77. package/dist/rules/acronyms-1.js +407 -0
  78. package/dist/rules/acronyms-1.js.map +1 -0
  79. package/dist/rules/acronyms-2.d.ts +3 -0
  80. package/dist/rules/acronyms-2.d.ts.map +1 -0
  81. package/dist/rules/acronyms-2.js +407 -0
  82. package/dist/rules/acronyms-2.js.map +1 -0
  83. package/dist/rules/acronyms-3.d.ts +3 -0
  84. package/dist/rules/acronyms-3.d.ts.map +1 -0
  85. package/dist/rules/acronyms-3.js +407 -0
  86. package/dist/rules/acronyms-3.js.map +1 -0
  87. package/dist/rules/acronyms-4.d.ts +3 -0
  88. package/dist/rules/acronyms-4.d.ts.map +1 -0
  89. package/dist/rules/acronyms-4.js +377 -0
  90. package/dist/rules/acronyms-4.js.map +1 -0
  91. package/dist/rules/acronyms.d.ts +1 -8
  92. package/dist/rules/acronyms.d.ts.map +1 -1
  93. package/dist/rules/acronyms.js +14 -1578
  94. package/dist/rules/acronyms.js.map +1 -1
  95. package/dist/rules/boolean-prefix.d.ts +11 -2
  96. package/dist/rules/boolean-prefix.d.ts.map +1 -1
  97. package/dist/rules/boolean-prefix.js +95 -59
  98. package/dist/rules/boolean-prefix.js.map +1 -1
  99. package/dist/rules/camel-case-identifiers.d.ts +3 -4
  100. package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
  101. package/dist/rules/camel-case-identifiers.js +59 -40
  102. package/dist/rules/camel-case-identifiers.js.map +1 -1
  103. package/dist/rules/char-class.d.ts +26 -13
  104. package/dist/rules/char-class.d.ts.map +1 -1
  105. package/dist/rules/char-class.js +56 -24
  106. package/dist/rules/char-class.js.map +1 -1
  107. package/dist/rules/diagnostic-guidance.d.ts +91 -0
  108. package/dist/rules/diagnostic-guidance.d.ts.map +1 -0
  109. package/dist/rules/diagnostic-guidance.js +243 -0
  110. package/dist/rules/diagnostic-guidance.js.map +1 -0
  111. package/dist/rules/effect-default-ast.d.ts +89 -0
  112. package/dist/rules/effect-default-ast.d.ts.map +1 -0
  113. package/dist/rules/effect-default-ast.js +208 -0
  114. package/dist/rules/effect-default-ast.js.map +1 -0
  115. package/dist/rules/effect-default-compat-rules.d.ts +76 -0
  116. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -0
  117. package/dist/rules/effect-default-compat-rules.js +270 -0
  118. package/dist/rules/effect-default-compat-rules.js.map +1 -0
  119. package/dist/rules/effect-default-env-rules.d.ts +60 -0
  120. package/dist/rules/effect-default-env-rules.d.ts.map +1 -0
  121. package/dist/rules/effect-default-env-rules.js +259 -0
  122. package/dist/rules/effect-default-env-rules.js.map +1 -0
  123. package/dist/rules/effect-default-fiber-helpers.d.ts +13 -0
  124. package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -0
  125. package/dist/rules/effect-default-fiber-helpers.js +76 -0
  126. package/dist/rules/effect-default-fiber-helpers.js.map +1 -0
  127. package/dist/rules/effect-default-floating-helpers.d.ts +7 -0
  128. package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -0
  129. package/dist/rules/effect-default-floating-helpers.js +113 -0
  130. package/dist/rules/effect-default-floating-helpers.js.map +1 -0
  131. package/dist/rules/effect-default-helpers.d.ts +8 -32
  132. package/dist/rules/effect-default-helpers.d.ts.map +1 -1
  133. package/dist/rules/effect-default-helpers.js +11 -458
  134. package/dist/rules/effect-default-helpers.js.map +1 -1
  135. package/dist/rules/effect-default-resource-helpers.d.ts +18 -4
  136. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
  137. package/dist/rules/effect-default-resource-helpers.js +30 -13
  138. package/dist/rules/effect-default-resource-helpers.js.map +1 -1
  139. package/dist/rules/effect-default-safety-helpers.d.ts +43 -0
  140. package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -0
  141. package/dist/rules/effect-default-safety-helpers.js +126 -0
  142. package/dist/rules/effect-default-safety-helpers.js.map +1 -0
  143. package/dist/rules/effect-default-scan-helpers.d.ts +43 -0
  144. package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -0
  145. package/dist/rules/effect-default-scan-helpers.js +141 -0
  146. package/dist/rules/effect-default-scan-helpers.js.map +1 -0
  147. package/dist/rules/effect-default-schema-helpers.d.ts +37 -0
  148. package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -0
  149. package/dist/rules/effect-default-schema-helpers.js +104 -0
  150. package/dist/rules/effect-default-schema-helpers.js.map +1 -0
  151. package/dist/rules/effect-default-test-helpers.d.ts +18 -4
  152. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
  153. package/dist/rules/effect-default-test-helpers.js +41 -20
  154. package/dist/rules/effect-default-test-helpers.js.map +1 -1
  155. package/dist/rules/effect-default-workflow-helpers.d.ts +91 -0
  156. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -0
  157. package/dist/rules/effect-default-workflow-helpers.js +247 -0
  158. package/dist/rules/effect-default-workflow-helpers.js.map +1 -0
  159. package/dist/rules/effect-default.d.ts +1 -1
  160. package/dist/rules/effect-default.d.ts.map +1 -1
  161. package/dist/rules/effect-default.js +198 -637
  162. package/dist/rules/effect-default.js.map +1 -1
  163. package/dist/rules/effect-exported-declarations.d.ts +19 -0
  164. package/dist/rules/effect-exported-declarations.d.ts.map +1 -0
  165. package/dist/rules/effect-exported-declarations.js +237 -0
  166. package/dist/rules/effect-exported-declarations.js.map +1 -0
  167. package/dist/rules/effect-path-options.d.ts +49 -11
  168. package/dist/rules/effect-path-options.d.ts.map +1 -1
  169. package/dist/rules/effect-path-options.js +85 -52
  170. package/dist/rules/effect-path-options.js.map +1 -1
  171. package/dist/rules/effect-rule-aliases.d.ts +55 -0
  172. package/dist/rules/effect-rule-aliases.d.ts.map +1 -0
  173. package/dist/rules/effect-rule-aliases.js +278 -0
  174. package/dist/rules/effect-rule-aliases.js.map +1 -0
  175. package/dist/rules/effect-rule-core.d.ts +46 -24
  176. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  177. package/dist/rules/effect-rule-core.js +263 -303
  178. package/dist/rules/effect-rule-core.js.map +1 -1
  179. package/dist/rules/effect-rule-names.d.ts +12 -3
  180. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  181. package/dist/rules/effect-rule-names.js +15 -3
  182. package/dist/rules/effect-rule-names.js.map +1 -1
  183. package/dist/rules/effect-source-comments.d.ts +7 -0
  184. package/dist/rules/effect-source-comments.d.ts.map +1 -0
  185. package/dist/rules/effect-source-comments.js +227 -0
  186. package/dist/rules/effect-source-comments.js.map +1 -0
  187. package/dist/rules/effect-source-helpers.d.ts +4 -9
  188. package/dist/rules/effect-source-helpers.d.ts.map +1 -1
  189. package/dist/rules/effect-source-helpers.js +7 -333
  190. package/dist/rules/effect-source-helpers.js.map +1 -1
  191. package/dist/rules/effect-source-navigation.d.ts +25 -0
  192. package/dist/rules/effect-source-navigation.d.ts.map +1 -0
  193. package/dist/rules/effect-source-navigation.js +244 -0
  194. package/dist/rules/effect-source-navigation.js.map +1 -0
  195. package/dist/rules/effect-source-scan.d.ts +30 -7
  196. package/dist/rules/effect-source-scan.d.ts.map +1 -1
  197. package/dist/rules/effect-source-scan.js +377 -297
  198. package/dist/rules/effect-source-scan.js.map +1 -1
  199. package/dist/rules/effect-strict-ast-specs.d.ts +8 -0
  200. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -0
  201. package/dist/rules/effect-strict-ast-specs.js +166 -0
  202. package/dist/rules/effect-strict-ast-specs.js.map +1 -0
  203. package/dist/rules/effect-strict-boundary-helpers.d.ts +25 -0
  204. package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -0
  205. package/dist/rules/effect-strict-boundary-helpers.js +127 -0
  206. package/dist/rules/effect-strict-boundary-helpers.js.map +1 -0
  207. package/dist/rules/effect-strict-core-specs.d.ts +8 -0
  208. package/dist/rules/effect-strict-core-specs.d.ts.map +1 -0
  209. package/dist/rules/effect-strict-core-specs.js +334 -0
  210. package/dist/rules/effect-strict-core-specs.js.map +1 -0
  211. package/dist/rules/effect-strict-external-helpers.d.ts +25 -0
  212. package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -0
  213. package/dist/rules/effect-strict-external-helpers.js +87 -0
  214. package/dist/rules/effect-strict-external-helpers.js.map +1 -0
  215. package/dist/rules/effect-strict-helpers.d.ts +75 -33
  216. package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
  217. package/dist/rules/effect-strict-helpers.js +124 -246
  218. package/dist/rules/effect-strict-helpers.js.map +1 -1
  219. package/dist/rules/effect-strict-internals.d.ts +198 -0
  220. package/dist/rules/effect-strict-internals.d.ts.map +1 -0
  221. package/dist/rules/effect-strict-internals.js +477 -0
  222. package/dist/rules/effect-strict-internals.js.map +1 -0
  223. package/dist/rules/effect-strict-segment-helpers.d.ts +79 -0
  224. package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -0
  225. package/dist/rules/effect-strict-segment-helpers.js +308 -0
  226. package/dist/rules/effect-strict-segment-helpers.js.map +1 -0
  227. package/dist/rules/effect-strict.d.ts +1 -1
  228. package/dist/rules/effect-strict.d.ts.map +1 -1
  229. package/dist/rules/effect-strict.js +10 -661
  230. package/dist/rules/effect-strict.js.map +1 -1
  231. package/dist/rules/max-import-depth.d.ts +2 -2
  232. package/dist/rules/max-import-depth.d.ts.map +1 -1
  233. package/dist/rules/max-import-depth.js +52 -17
  234. package/dist/rules/max-import-depth.js.map +1 -1
  235. package/dist/rules/max-line-length.d.ts +9 -2
  236. package/dist/rules/max-line-length.d.ts.map +1 -1
  237. package/dist/rules/max-line-length.js +62 -7
  238. package/dist/rules/max-line-length.js.map +1 -1
  239. package/dist/rules/no-commented-out-code.d.ts +3 -7
  240. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  241. package/dist/rules/no-commented-out-code.js +157 -102
  242. package/dist/rules/no-commented-out-code.js.map +1 -1
  243. package/dist/rules/pascal-case-types.d.ts +1 -1
  244. package/dist/rules/pascal-case-types.d.ts.map +1 -1
  245. package/dist/rules/pascal-case-types.js +65 -46
  246. package/dist/rules/pascal-case-types.js.map +1 -1
  247. package/dist/rules/plugin-commented-out-code-rule.d.ts +32 -0
  248. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -0
  249. package/dist/rules/plugin-commented-out-code-rule.js +135 -0
  250. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -0
  251. package/dist/rules/plugin.d.ts +3 -121
  252. package/dist/rules/plugin.d.ts.map +1 -1
  253. package/dist/rules/plugin.js +195 -201
  254. package/dist/rules/plugin.js.map +1 -1
  255. package/dist/rules/private-underscore.d.ts +1 -1
  256. package/dist/rules/private-underscore.d.ts.map +1 -1
  257. package/dist/rules/private-underscore.js +11 -4
  258. package/dist/rules/private-underscore.js.map +1 -1
  259. package/dist/rules/require-file-doc.d.ts +5 -6
  260. package/dist/rules/require-file-doc.d.ts.map +1 -1
  261. package/dist/rules/require-file-doc.js +127 -78
  262. package/dist/rules/require-file-doc.js.map +1 -1
  263. package/dist/rules/require-function-doc-ignored-text.d.ts +7 -0
  264. package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -0
  265. package/dist/rules/require-function-doc-ignored-text.js +67 -0
  266. package/dist/rules/require-function-doc-ignored-text.js.map +1 -0
  267. package/dist/rules/require-function-doc-local-exports.d.ts +7 -0
  268. package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -0
  269. package/dist/rules/require-function-doc-local-exports.js +114 -0
  270. package/dist/rules/require-function-doc-local-exports.js.map +1 -0
  271. package/dist/rules/require-function-doc.d.ts +3 -18
  272. package/dist/rules/require-function-doc.d.ts.map +1 -1
  273. package/dist/rules/require-function-doc.js +404 -218
  274. package/dist/rules/require-function-doc.js.map +1 -1
  275. package/dist/rules/source-cache.d.ts +19 -0
  276. package/dist/rules/source-cache.d.ts.map +1 -0
  277. package/dist/rules/source-cache.js +63 -0
  278. package/dist/rules/source-cache.js.map +1 -0
  279. package/package.json +15 -10
@@ -1,150 +1,22 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Helper predicates for opt-in strict Effect lint rules. */
3
+ /* -------------------------------------------------------------------------- */
4
+ import { findStatementEnd, stripCommentsAndStrings } from './effect-source-helpers.js';
5
+ import { lineAround, localEffectCallSegment, localStatementSegment, testSegments, } from './effect-strict-segment-helpers.js';
1
6
  import { hasEffectSignal } from './effect-rule-core.js';
2
- import { findBalancedCallEnd, findStatementEnd, isInsideCall, stripComments, stripCommentsAndStrings, } from './effect-source-helpers.js';
3
- function lineAround(source, targetIndex) {
4
- const start = source.lastIndexOf('\n', targetIndex) + 1;
5
- const end = source.indexOf('\n', targetIndex);
6
- return source.slice(start, end === -1 ? source.length : end);
7
- }
8
- function testSegments(source) {
9
- const code = stripCommentsAndStrings(source);
10
- const starts = [...code.matchAll(/\bit(?:\.effect)?\s*\(/g)].map((match) => match.index);
11
- if (starts.length === 0) {
12
- return [code];
13
- }
14
- return starts.map((start, index) => code.slice(start, starts[index + 1] ?? code.length));
15
- }
16
- function hasLayerFactory(source) {
17
- const code = stripCommentsAndStrings(source);
18
- return (/export\s+function\s+[A-Za-z_$][\w$]*Layer\s*\([^)]*\)\s*{[\s\S]*?Layer\./.test(code) ||
19
- /export\s+const\s+[A-Za-z_$][\w$]*Layer\s*=\s*(?:\([^)]*\)|[A-Za-z_$][\w$]*)?\s*=>[\s\S]*?Layer\./.test(code));
20
- }
21
- function hasUnscopedResourceLayer(source) {
22
- const code = stripCommentsAndStrings(source);
23
- for (const match of code.matchAll(/Layer\.effect\s*\(/g)) {
24
- const openParenIndex = code.indexOf('(', match.index);
25
- const callSource = code.slice(match.index, findBalancedCallEnd(code, openParenIndex) + 1);
26
- if (/\b(?:open|connect|subscribe|listen)\w*\s*(?:\(|\)|$)/.test(callSource) &&
27
- !isInsideCall(code, match.index, /Layer\.scoped\s*\(/g)) {
28
- return true;
29
- }
30
- }
31
- return false;
32
- }
33
- function hasBoundaryDataWithoutSchema(source) {
34
- const code = stripCommentsAndStrings(source);
35
- for (const match of code.matchAll(/(?:req|request|command|message)\.(?:body|params|query|payload)/g)) {
36
- const accessEnd = match.index + match[0].length;
37
- const tail = code.slice(accessEnd);
38
- const pipeMatch = /^\s*\.pipe\s*\(/.exec(tail);
39
- const segment = pipeMatch
40
- ? code.slice(match.index, accessEnd + findBalancedCallEnd(tail, tail.indexOf('(')) + 1)
41
- : code.slice(match.index, accessEnd);
42
- if (!isInsideCall(code, match.index, /Schema\.decode[A-Za-z]*\s*\(/g) &&
43
- !/Schema\.decode/.test(segment)) {
44
- return true;
45
- }
46
- }
47
- return false;
48
- }
49
- function hasHttpServerRequestWithoutSchema(source) {
50
- const code = stripCommentsAndStrings(source);
51
- if (!/\b(?:HttpRouter\.|HttpServerRequest\b)/.test(code)) {
7
+ export { hasBoundaryDataWithoutSchema, hasCommandHandlerWithoutSchema, hasHTTPServerRequestWithoutSchema, hasPersistenceReadWithoutSchema, } from './effect-strict-boundary-helpers.js';
8
+ export { hasExternalEffectWithoutSpan, hasExternalEffectWithoutTimeout, hasIdempotentExternalEffectWithoutRetry, } from './effect-strict-external-helpers.js';
9
+ export { hasDuplicateLayerInstance, hasLayerFactory, hasLiveTestService, hasRealTestService, hasUnscopedResourceLayer, hasUnscopedResourceLoop, hasUnsafeResourceStream, } from './effect-strict-segment-helpers.js';
10
+ const RESOURCE_CONTEXT_WINDOW = 180;
11
+ /**
12
+ * Internal helper exported for package-local composition.
13
+ *
14
+ * @internal
15
+ */
16
+ export const hasOutputBoundaryWithoutSchema = (source) => {
17
+ if (!source.includes('Response.json') && !source.includes('return json')) {
52
18
  return false;
53
19
  }
54
- for (const match of code.matchAll(/\b(?:body|Body|json|Json|urlParams)\b/g)) {
55
- const line = lineAround(code, match.index);
56
- const bindingName = /\b(?:const|let)\s+([A-Za-z_$][\w$]*)\b/.exec(line)?.[1];
57
- const tail = code.slice(match.index, findStatementEnd(code, match.index) + 240);
58
- if (!/Schema\.decode/.test(line) &&
59
- !(bindingName &&
60
- new RegExp(`Schema\\.decode[A-Za-z]*\\s*\\([^)]*\\)\\s*\\(\\s*${bindingName}\\b`).test(tail))) {
61
- return true;
62
- }
63
- }
64
- return false;
65
- }
66
- function hasPersistenceReadWithoutSchema(source) {
67
- const code = stripCommentsAndStrings(source);
68
- for (const match of code.matchAll(/\b(?:db|database|collection|repository)\.[\s\S]*?(?:select|find|get|query)\s*\(/g)) {
69
- const localSource = lineAround(code, match.index);
70
- const bindingName = /\b(?:const|let)\s+([A-Za-z_$][\w$]*)\b/.exec(localSource)?.[1];
71
- const tail = code.slice(match.index, findStatementEnd(code, match.index) + 240);
72
- if (!/Schema\.decode/.test(localSource) &&
73
- !(bindingName &&
74
- new RegExp(`Schema\\.decode[A-Za-z]*\\s*\\([^)]*\\)\\s*\\(\\s*${bindingName}\\b`).test(tail))) {
75
- return true;
76
- }
77
- }
78
- return false;
79
- }
80
- function hasCommandHandlerWithoutSchema(source) {
81
- const code = stripCommentsAndStrings(source);
82
- for (const match of code.matchAll(/\b(?:Command|Cli|Job|Message)\b[\s\S]*?handler/g)) {
83
- const localSource = code.slice(Math.max(0, match.index - 160), match.index + 160);
84
- if (!/(?:Schema\.|schema\s*:)/.test(localSource)) {
85
- return true;
86
- }
87
- }
88
- return false;
89
- }
90
- function hasUnscopedResourceLoop(source) {
91
- const code = stripCommentsAndStrings(source);
92
- for (const match of code.matchAll(/\b(?:open|connect|subscribe|listen)\w*\s*\(/g)) {
93
- const prefix = code.slice(Math.max(0, match.index - 180), match.index);
94
- if (/\b(?:for|while)\b/.test(prefix) &&
95
- !isInsideCall(code, match.index, /Effect\.scoped\s*\(/g)) {
96
- return true;
97
- }
98
- }
99
- return false;
100
- }
101
- function hasUnsafeResourceStream(source) {
102
- const code = stripCommentsAndStrings(source);
103
- for (const match of code.matchAll(/\b(?:open|connect|subscribe|listen)\w*\s*\(/g)) {
104
- const prefix = code.slice(Math.max(0, match.index - 180), match.index);
105
- if (/\bStream\./.test(prefix) &&
106
- !isInsideCall(code, match.index, /(?:Stream|Effect)\.scoped\s*\(/g)) {
107
- return true;
108
- }
109
- }
110
- return false;
111
- }
112
- function hasLiveTestService(source) {
113
- return /(?:\bLive\b|[A-Za-z_$][\w$]*Live\b|Layer\.live)/.test(stripCommentsAndStrings(source));
114
- }
115
- function hasRealTestService(source) {
116
- return /\breal[A-Z]/.test(stripCommentsAndStrings(source));
117
- }
118
- function hasDuplicateLayerInstance(source) {
119
- const code = stripCommentsAndStrings(source);
120
- const services = new Set();
121
- for (const match of code.matchAll(/Layer\.(?:succeed|sync|effect|scoped|fromEffect|fromFunction)\s*\(\s*([A-Za-z_$][\w$]*)\b/g)) {
122
- const [, serviceName] = match;
123
- if (services.has(serviceName)) {
124
- return true;
125
- }
126
- services.add(serviceName);
127
- }
128
- return false;
129
- }
130
- function localEffectCallSegment(source, targetIndex) {
131
- const openParenIndex = source.indexOf('(', targetIndex);
132
- if (openParenIndex === -1) {
133
- return source.slice(targetIndex, targetIndex + 160);
134
- }
135
- let endIndex = findBalancedCallEnd(source, openParenIndex) + 1;
136
- const afterCall = source.slice(endIndex);
137
- const pipeMatch = afterCall.match(/^\s*\.pipe\s*\(/);
138
- if (pipeMatch) {
139
- const pipeOpenIndex = endIndex + pipeMatch[0].lastIndexOf('(');
140
- endIndex = findBalancedCallEnd(source, pipeOpenIndex) + 1;
141
- }
142
- return source.slice(targetIndex, endIndex);
143
- }
144
- function localStatementSegment(source, targetIndex) {
145
- return source.slice(targetIndex, findStatementEnd(source, targetIndex) + 1);
146
- }
147
- function hasOutputBoundaryWithoutSchema(source) {
148
20
  const code = stripCommentsAndStrings(source);
149
21
  for (const match of code.matchAll(/\breturn\s+(?:Response\.json|json)\s*\(/g)) {
150
22
  const callOffset = match[0].search(/(?:Response\.json|json)\s*\(/);
@@ -154,8 +26,16 @@ function hasOutputBoundaryWithoutSchema(source) {
154
26
  }
155
27
  }
156
28
  return false;
157
- }
158
- function hasHttpClientResponseWithoutSchema(source) {
29
+ };
30
+ /**
31
+ * Internal helper exported for package-local composition.
32
+ *
33
+ * @internal
34
+ */
35
+ export const hasHTTPClientResponseWithoutSchema = (source) => {
36
+ if (!source.includes('HttpClient.') || !source.includes('response.json')) {
37
+ return false;
38
+ }
159
39
  const code = stripCommentsAndStrings(source);
160
40
  for (const match of code.matchAll(/\bHttpClient\.[\s\S]*?\bresponse\.json\s*\(/g)) {
161
41
  const segment = localStatementSegment(source, match.index);
@@ -164,11 +44,19 @@ function hasHttpClientResponseWithoutSchema(source) {
164
44
  }
165
45
  }
166
46
  return false;
167
- }
168
- function hasSharedResourceForEachWithoutSemaphore(source) {
47
+ };
48
+ /**
49
+ * Internal helper exported for package-local composition.
50
+ *
51
+ * @internal
52
+ */
53
+ export const hasSharedResourceForEachWithoutSemaphore = (source) => {
54
+ if (!source.includes('Effect.forEach')) {
55
+ return false;
56
+ }
169
57
  const code = stripCommentsAndStrings(source);
170
58
  for (const match of code.matchAll(/\bEffect\.forEach\s*\(/g)) {
171
- const localStart = Math.max(0, match.index - 180);
59
+ const localStart = Math.max(0, match.index - RESOURCE_CONTEXT_WINDOW);
172
60
  const segment = code.slice(localStart, findStatementEnd(code, match.index) + 1);
173
61
  if (/\b(?:pool|connection|client|browser|worker)\b/.test(segment) &&
174
62
  !/\bSemaphore\b/.test(segment)) {
@@ -176,8 +64,16 @@ function hasSharedResourceForEachWithoutSemaphore(source) {
176
64
  }
177
65
  }
178
66
  return false;
179
- }
180
- function hasEnsuringCleanupWithoutOnExit(source) {
67
+ };
68
+ /**
69
+ * Internal helper exported for package-local composition.
70
+ *
71
+ * @internal
72
+ */
73
+ export const hasEnsuringCleanupWithoutOnExit = (source) => {
74
+ if (!source.includes('Effect.ensuring') || !source.includes('cleanup')) {
75
+ return false;
76
+ }
181
77
  const code = stripCommentsAndStrings(source);
182
78
  for (const match of code.matchAll(/\bEffect\.ensuring\s*\(/g)) {
183
79
  const segment = localEffectCallSegment(source, match.index);
@@ -186,8 +82,16 @@ function hasEnsuringCleanupWithoutOnExit(source) {
186
82
  }
187
83
  }
188
84
  return false;
189
- }
190
- function hasUnterminatedLongRunningStream(source) {
85
+ };
86
+ /**
87
+ * Internal helper exported for package-local composition.
88
+ *
89
+ * @internal
90
+ */
91
+ export const hasUnterminatedLongRunningStream = (source) => {
92
+ if (!source.includes('Stream.')) {
93
+ return false;
94
+ }
191
95
  const code = stripCommentsAndStrings(source);
192
96
  for (const match of code.matchAll(/\bStream\.(?:repeat|forever|async|fromQueue)\s*\(/g)) {
193
97
  const segment = localEffectCallSegment(source, match.index);
@@ -196,8 +100,16 @@ function hasUnterminatedLongRunningStream(source) {
196
100
  }
197
101
  }
198
102
  return false;
199
- }
200
- function hasAsyncPushWithoutBuffer(source) {
103
+ };
104
+ /**
105
+ * Internal helper exported for package-local composition.
106
+ *
107
+ * @internal
108
+ */
109
+ export const hasAsyncPushWithoutBuffer = (source) => {
110
+ if (!source.includes('Stream.asyncPush')) {
111
+ return false;
112
+ }
201
113
  const code = stripCommentsAndStrings(source);
202
114
  for (const match of code.matchAll(/\bStream\.asyncPush\s*\(/g)) {
203
115
  const segment = localEffectCallSegment(source, match.index);
@@ -206,8 +118,16 @@ function hasAsyncPushWithoutBuffer(source) {
206
118
  }
207
119
  }
208
120
  return false;
209
- }
210
- function hasUnbatchedResolver(source) {
121
+ };
122
+ /**
123
+ * Internal helper exported for package-local composition.
124
+ *
125
+ * @internal
126
+ */
127
+ export const hasUnbatchedResolver = (source) => {
128
+ if (!source.includes('RequestResolver.make')) {
129
+ return false;
130
+ }
211
131
  const code = stripCommentsAndStrings(source);
212
132
  for (const match of code.matchAll(/\bRequestResolver\.make\s*\(/g)) {
213
133
  const segment = localEffectCallSegment(source, match.index);
@@ -216,8 +136,16 @@ function hasUnbatchedResolver(source) {
216
136
  }
217
137
  }
218
138
  return false;
219
- }
220
- function hasNPlusOneWithoutBatchedResolver(source) {
139
+ };
140
+ /**
141
+ * Internal helper exported for package-local composition.
142
+ *
143
+ * @internal
144
+ */
145
+ export const hasNPlusOneWithoutBatchedResolver = (source) => {
146
+ if (!source.includes('Effect.forEach')) {
147
+ return false;
148
+ }
221
149
  const code = stripCommentsAndStrings(source);
222
150
  for (const match of code.matchAll(/\bEffect\.forEach\s*\(/g)) {
223
151
  const segment = localEffectCallSegment(source, match.index);
@@ -227,95 +155,41 @@ function hasNPlusOneWithoutBatchedResolver(source) {
227
155
  }
228
156
  }
229
157
  return false;
230
- }
231
- function enclosingEffectWrapperSegment(source, targetIndex) {
232
- for (const match of source.matchAll(/\bEffect\.(?:promise|tryPromise)\s*\(/g)) {
233
- const openParenIndex = source.indexOf('(', match.index);
234
- if (openParenIndex === -1 || openParenIndex > targetIndex) {
235
- continue;
236
- }
237
- const endIndex = findBalancedCallEnd(source, openParenIndex);
238
- if (targetIndex <= endIndex) {
239
- return localEffectCallSegment(source, match.index);
240
- }
241
- }
242
- return undefined;
243
- }
244
- function hasTopLevelPipeOperator(segment, operatorName) {
245
- const pipeIndex = segment.indexOf('.pipe');
246
- if (pipeIndex === -1) {
247
- return false;
248
- }
249
- const openParenIndex = segment.indexOf('(', pipeIndex);
250
- if (openParenIndex === -1) {
158
+ };
159
+ /**
160
+ * Internal helper exported for package-local composition.
161
+ *
162
+ * @internal
163
+ */
164
+ export const hasUnprovidedServiceInEffectTest = (source) => {
165
+ if (!source.includes('Service') && !source.includes('Repo') && !source.includes('Client')) {
251
166
  return false;
252
167
  }
253
- const pipeBody = segment.slice(openParenIndex + 1, findBalancedCallEnd(segment, openParenIndex));
254
- const operatorPattern = new RegExp(`(?:^|,)\\s*Effect\\.${operatorName}\\b`);
255
- return operatorPattern.test(pipeBody);
256
- }
257
- function hasExternalEffectWithoutTimeout(source, options = { allowFetch: true }) {
258
- const externalCallPattern = /\b(?:HttpClient\.(?:get|post|put|patch|delete|request)|fetch|FileSystem\.[A-Za-z_$][\w$]*|SqlClient\.[A-Za-z_$][\w$]*)\s*\(/g;
259
- const code = stripCommentsAndStrings(source);
260
- for (const match of code.matchAll(externalCallPattern)) {
261
- const enclosingWrapper = enclosingEffectWrapperSegment(code, match.index);
262
- if (match[0].startsWith('fetch') && (!enclosingWrapper || !options.allowFetch)) {
263
- continue;
264
- }
265
- const segment = enclosingWrapper ?? localEffectCallSegment(code, match.index);
266
- if (!isInsideCall(code, match.index, /Effect\.timeout\s*\(/g) &&
267
- !hasTopLevelPipeOperator(segment, 'timeout')) {
268
- return true;
269
- }
270
- }
271
- return false;
272
- }
273
- function hasExternalEffectWithoutSpan(source, options = { allowFetch: true }) {
274
- const externalCallPattern = /\b(?:HttpClient\.(?:get|post|put|patch|delete|request)|fetch|FileSystem\.[A-Za-z_$][\w$]*|SqlClient\.[A-Za-z_$][\w$]*)\s*\(/g;
275
- const code = stripCommentsAndStrings(source);
276
- for (const match of code.matchAll(externalCallPattern)) {
277
- const enclosingWrapper = enclosingEffectWrapperSegment(source, match.index);
278
- if (match[0].startsWith('fetch') && (!enclosingWrapper || !options.allowFetch)) {
279
- continue;
280
- }
281
- const segment = enclosingWrapper ?? localEffectCallSegment(source, match.index);
282
- if (!isInsideCall(source, match.index, /Effect\.withSpan\s*\(/g) &&
283
- !hasTopLevelPipeOperator(segment, 'withSpan')) {
284
- return true;
285
- }
286
- }
287
- return false;
288
- }
289
- function hasIdempotentExternalEffectWithoutRetry(source, options = { allowFetch: true }) {
290
- const idempotentPattern = /\b(?:HttpClient\.(?:get|head|put|delete)|fetch|(?:find|lookup|read)[A-Z]\w*)\s*\(/g;
291
- const code = stripCommentsAndStrings(source);
292
- for (const match of code.matchAll(idempotentPattern)) {
293
- const enclosingWrapper = enclosingEffectWrapperSegment(code, match.index);
294
- const rawEnclosingWrapper = enclosingEffectWrapperSegment(source, match.index);
295
- if (match[0].startsWith('fetch') && (!enclosingWrapper || !options.allowFetch)) {
296
- continue;
297
- }
298
- const segment = enclosingWrapper ?? localEffectCallSegment(code, match.index);
299
- const rawSegment = rawEnclosingWrapper ?? localEffectCallSegment(source, match.index);
300
- if (match[0].startsWith('fetch') &&
301
- /\bmethod\s*:\s*['"](?!(?:GET|HEAD|PUT|DELETE)['"])/.test(stripComments(rawSegment))) {
302
- continue;
303
- }
304
- if (!isInsideCall(code, match.index, /Effect\.retry\s*\(/g) &&
305
- !hasTopLevelPipeOperator(segment, 'retry')) {
306
- return true;
307
- }
308
- }
309
- return false;
310
- }
311
- function hasUnprovidedServiceInEffectTest(source) {
312
168
  return testSegments(source).some((segment) => /yield\*\s+[A-Z][\w$]*(?:Service|Repo|Client)\b/.test(segment) &&
313
169
  !/\b(?:Effect\.)?provide[A-Za-z_$]*\s*\(/.test(segment));
314
- }
315
- function hasTimeCodeWithoutTestClock(source) {
170
+ };
171
+ /**
172
+ * Internal helper exported for package-local composition.
173
+ *
174
+ * @internal
175
+ */
176
+ export const hasTimeCodeWithoutTestClock = (source) => {
177
+ if (!source.includes('Effect.timeout') &&
178
+ !source.includes('Effect.delay') &&
179
+ !source.includes('Clock.')) {
180
+ return false;
181
+ }
316
182
  return testSegments(source).some((segment) => /Effect\.(?:timeout|delay)|Clock\./.test(segment) && !/TestClock/.test(segment));
317
- }
318
- function hasMutableStateWithoutRef(source) {
183
+ };
184
+ /**
185
+ * Internal helper exported for package-local composition.
186
+ *
187
+ * @internal
188
+ */
189
+ export const hasMutableStateWithoutRef = (source) => {
190
+ if (!source.includes('let ')) {
191
+ return false;
192
+ }
319
193
  if (!hasEffectSignal(source)) {
320
194
  return false;
321
195
  }
@@ -325,7 +199,11 @@ function hasMutableStateWithoutRef(source) {
325
199
  }
326
200
  }
327
201
  return false;
328
- }
329
- const hasSharedMutableStateWithoutRef = hasMutableStateWithoutRef;
330
- export { hasAsyncPushWithoutBuffer, hasBoundaryDataWithoutSchema, hasCommandHandlerWithoutSchema, hasDuplicateLayerInstance, hasEnsuringCleanupWithoutOnExit, hasExternalEffectWithoutTimeout, hasExternalEffectWithoutSpan, hasHttpClientResponseWithoutSchema, hasHttpServerRequestWithoutSchema, hasIdempotentExternalEffectWithoutRetry, hasLayerFactory, hasLiveTestService, hasMutableStateWithoutRef, hasNPlusOneWithoutBatchedResolver, hasOutputBoundaryWithoutSchema, hasPersistenceReadWithoutSchema, hasRealTestService, hasSharedResourceForEachWithoutSemaphore, hasSharedMutableStateWithoutRef, hasTimeCodeWithoutTestClock, hasUnbatchedResolver, hasUnprovidedServiceInEffectTest, hasUnscopedResourceLayer, hasUnscopedResourceLoop, hasUnsafeResourceStream, hasUnterminatedLongRunningStream, };
202
+ };
203
+ /**
204
+ * Internal helper exported for package-local composition.
205
+ *
206
+ * @internal
207
+ */
208
+ export const hasSharedMutableStateWithoutRef = hasMutableStateWithoutRef;
331
209
  //# sourceMappingURL=effect-strict-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effect-strict-helpers.js","sourceRoot":"","sources":["../../src/rules/effect-strict-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,SAAS,UAAU,CAAC,MAAc,EAAE,WAAmB;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,CACL,0EAA0E,CAAC,IAAI,CAAC,IAAI,CAAC;QACrF,kGAAkG,CAAC,IAAI,CACrG,IAAI,CACL,CACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,IACE,sDAAsD,CAAC,IAAI,CAAC,UAAU,CAAC;YACvE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,EACvD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAc;IAClD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,iEAAiE,CAClE,EAAE,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,SAAS;YACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACvF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,IACE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,+BAA+B,CAAC;YACjE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iCAAiC,CAAC,MAAc;IACvD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAChF,IACE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,CAAC,CACC,WAAW;gBACX,IAAI,MAAM,CAAC,qDAAqD,WAAW,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7F,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAc;IACrD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,kFAAkF,CACnF,EAAE,CAAC;QACF,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,wCAAwC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QAChF,IACE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;YACnC,CAAC,CACC,WAAW;gBACX,IAAI,MAAM,CAAC,qDAAqD,WAAW,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7F,EACD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAc;IACpD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,CAAC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,IACE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YAChC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,sBAAsB,CAAC,EACxD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,IACE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YACzB,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,iCAAiC,CAAC,EACnE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,iDAAiD,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,4FAA4F,CAC7F,EAAE,CAAC;QACF,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;QAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc,EAAE,WAAmB;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/D,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,WAAmB;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAc;IACpD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,0CAA0C,CAAC,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kCAAkC,CAAC,MAAc;IACxD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EAAE,CAAC;QAClF,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wCAAwC,CAAC,MAAc;IAC9D,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,IACE,+CAA+C,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7D,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAC9B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAc;IACrD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAc;IACtD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,oDAAoD,CAAC,EAAE,CAAC;QACxF,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,yCAAyC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iCAAiC,CAAC,MAAc;IACvD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IACE,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC;YACpD,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc,EAAE,WAAmB;IACxE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAC9E,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,GAAG,WAAW,EAAE,CAAC;YAC1D,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAe,EACf,YAA8C;IAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACjG,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,uBAAuB,YAAY,KAAK,CAAC,CAAC;IAC7E,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAc,EACd,UAAmC,EAAE,UAAU,EAAE,IAAI,EAAE;IAEvD,MAAM,mBAAmB,GACvB,8HAA8H,CAAC;IAEjI,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/E,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9E,IACE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,uBAAuB,CAAC;YACzD,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,4BAA4B,CACnC,MAAc,EACd,UAAmC,EAAE,UAAU,EAAE,IAAI,EAAE;IAEvD,MAAM,mBAAmB,GACvB,8HAA8H,CAAC;IAEjI,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/E,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChF,IACE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,wBAAwB,CAAC;YAC5D,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,EAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uCAAuC,CAC9C,MAAc,EACd,UAAmC,EAAE,UAAU,EAAE,IAAI,EAAE;IAEvD,MAAM,iBAAiB,GACrB,oFAAoF,CAAC;IAEvF,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/E,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,mBAAmB,IAAI,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtF,IACE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAC5B,oDAAoD,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EACpF,CAAC;YACD,SAAS;QACX,CAAC;QACD,IACE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC;YACvD,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC1C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAc;IACtD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9B,CAAC,OAAO,EAAE,EAAE,CACV,gDAAgD,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9D,CAAC,wCAAwC,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9B,CAAC,OAAO,EAAE,EAAE,CAAC,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7F,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,+BAA+B,GAAG,yBAAyB,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,EAClC,iCAAiC,EACjC,uCAAuC,EACvC,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,kBAAkB,EAClB,wCAAwC,EACxC,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,gCAAgC,EAChC,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,GACjC,CAAC"}
1
+ {"version":3,"file":"effect-strict-helpers.js","sourceRoot":"","sources":["../../src/rules/effect-strict-helpers.ts"],"names":[],"mappings":"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"}