@opensip-cli/checks-universal 0.1.10 → 0.1.11

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 (206) hide show
  1. package/README.md +4 -2
  2. package/dist/__tests__/all-checks-execute.test.d.ts.map +1 -1
  3. package/dist/__tests__/all-checks-execute.test.js +0 -1
  4. package/dist/__tests__/all-checks-execute.test.js.map +1 -1
  5. package/dist/__tests__/behavior-fixtures-10.test.d.ts.map +1 -1
  6. package/dist/__tests__/behavior-fixtures-10.test.js +0 -1
  7. package/dist/__tests__/behavior-fixtures-10.test.js.map +1 -1
  8. package/dist/__tests__/behavior-fixtures-11.test.d.ts.map +1 -1
  9. package/dist/__tests__/behavior-fixtures-11.test.js +0 -1
  10. package/dist/__tests__/behavior-fixtures-11.test.js.map +1 -1
  11. package/dist/__tests__/behavior-fixtures-12.test.d.ts.map +1 -1
  12. package/dist/__tests__/behavior-fixtures-12.test.js +0 -1
  13. package/dist/__tests__/behavior-fixtures-12.test.js.map +1 -1
  14. package/dist/__tests__/behavior-fixtures-2.test.d.ts.map +1 -1
  15. package/dist/__tests__/behavior-fixtures-2.test.js +0 -1
  16. package/dist/__tests__/behavior-fixtures-2.test.js.map +1 -1
  17. package/dist/__tests__/behavior-fixtures-3.test.d.ts.map +1 -1
  18. package/dist/__tests__/behavior-fixtures-3.test.js +0 -1
  19. package/dist/__tests__/behavior-fixtures-3.test.js.map +1 -1
  20. package/dist/__tests__/behavior-fixtures-4.test.d.ts.map +1 -1
  21. package/dist/__tests__/behavior-fixtures-4.test.js +0 -1
  22. package/dist/__tests__/behavior-fixtures-4.test.js.map +1 -1
  23. package/dist/__tests__/behavior-fixtures-5.test.d.ts.map +1 -1
  24. package/dist/__tests__/behavior-fixtures-5.test.js +0 -1
  25. package/dist/__tests__/behavior-fixtures-5.test.js.map +1 -1
  26. package/dist/__tests__/behavior-fixtures-6.test.d.ts.map +1 -1
  27. package/dist/__tests__/behavior-fixtures-6.test.js +0 -1
  28. package/dist/__tests__/behavior-fixtures-6.test.js.map +1 -1
  29. package/dist/__tests__/behavior-fixtures-7.test.d.ts.map +1 -1
  30. package/dist/__tests__/behavior-fixtures-7.test.js +0 -1
  31. package/dist/__tests__/behavior-fixtures-7.test.js.map +1 -1
  32. package/dist/__tests__/behavior-fixtures-8.test.d.ts.map +1 -1
  33. package/dist/__tests__/behavior-fixtures-8.test.js +2 -3
  34. package/dist/__tests__/behavior-fixtures-8.test.js.map +1 -1
  35. package/dist/__tests__/behavior-fixtures-9.test.d.ts.map +1 -1
  36. package/dist/__tests__/behavior-fixtures-9.test.js +0 -1
  37. package/dist/__tests__/behavior-fixtures-9.test.js.map +1 -1
  38. package/dist/__tests__/behavior-fixtures.test.d.ts.map +1 -1
  39. package/dist/__tests__/behavior-fixtures.test.js +10 -9
  40. package/dist/__tests__/behavior-fixtures.test.js.map +1 -1
  41. package/dist/__tests__/file-length-limit.test.js +12 -1
  42. package/dist/__tests__/file-length-limit.test.js.map +1 -1
  43. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts +2 -0
  44. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts.map +1 -0
  45. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js +61 -0
  46. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js.map +1 -0
  47. package/dist/checks/architecture/docker-best-practices-analyze.d.ts +7 -0
  48. package/dist/checks/architecture/docker-best-practices-analyze.d.ts.map +1 -0
  49. package/dist/checks/architecture/docker-best-practices-analyze.js +301 -0
  50. package/dist/checks/architecture/docker-best-practices-analyze.js.map +1 -0
  51. package/dist/checks/architecture/docker-best-practices-patterns.d.ts +50 -0
  52. package/dist/checks/architecture/docker-best-practices-patterns.d.ts.map +1 -0
  53. package/dist/checks/architecture/docker-best-practices-patterns.js +51 -0
  54. package/dist/checks/architecture/docker-best-practices-patterns.js.map +1 -0
  55. package/dist/checks/architecture/docker-best-practices.d.ts.map +1 -1
  56. package/dist/checks/architecture/docker-best-practices.js +1 -367
  57. package/dist/checks/architecture/docker-best-practices.js.map +1 -1
  58. package/dist/checks/architecture/docker-ignore-validation.d.ts.map +1 -1
  59. package/dist/checks/architecture/docker-ignore-validation.js +0 -1
  60. package/dist/checks/architecture/docker-ignore-validation.js.map +1 -1
  61. package/dist/checks/architecture/docker-version-sync.d.ts.map +1 -1
  62. package/dist/checks/architecture/docker-version-sync.js +0 -1
  63. package/dist/checks/architecture/docker-version-sync.js.map +1 -1
  64. package/dist/checks/architecture/heavy-import-detection.d.ts.map +1 -1
  65. package/dist/checks/architecture/heavy-import-detection.js +1 -0
  66. package/dist/checks/architecture/heavy-import-detection.js.map +1 -1
  67. package/dist/checks/architecture/index.d.ts +1 -0
  68. package/dist/checks/architecture/index.d.ts.map +1 -1
  69. package/dist/checks/architecture/index.js +1 -0
  70. package/dist/checks/architecture/index.js.map +1 -1
  71. package/dist/checks/architecture/modules/empty-package-detection.d.ts.map +1 -1
  72. package/dist/checks/architecture/modules/empty-package-detection.js +0 -1
  73. package/dist/checks/architecture/modules/empty-package-detection.js.map +1 -1
  74. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts +16 -0
  75. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts.map +1 -0
  76. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js +182 -0
  77. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js.map +1 -0
  78. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts +23 -0
  79. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts.map +1 -0
  80. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js +235 -0
  81. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js.map +1 -0
  82. package/dist/checks/architecture/modules/interface-implementation-consistency.d.ts.map +1 -1
  83. package/dist/checks/architecture/modules/interface-implementation-consistency.js +4 -462
  84. package/dist/checks/architecture/modules/interface-implementation-consistency.js.map +1 -1
  85. package/dist/checks/architecture/node-version-consistency.d.ts.map +1 -1
  86. package/dist/checks/architecture/node-version-consistency.js +0 -2
  87. package/dist/checks/architecture/node-version-consistency.js.map +1 -1
  88. package/dist/checks/architecture/stale-build-artifacts.d.ts.map +1 -1
  89. package/dist/checks/architecture/stale-build-artifacts.js +0 -1
  90. package/dist/checks/architecture/stale-build-artifacts.js.map +1 -1
  91. package/dist/checks/architecture/tool-has-manifest.d.ts.map +1 -1
  92. package/dist/checks/architecture/tool-has-manifest.js +0 -1
  93. package/dist/checks/architecture/tool-has-manifest.js.map +1 -1
  94. package/dist/checks/architecture/tool-identity-single-source.d.ts +23 -0
  95. package/dist/checks/architecture/tool-identity-single-source.d.ts.map +1 -0
  96. package/dist/checks/architecture/tool-identity-single-source.js +126 -0
  97. package/dist/checks/architecture/tool-identity-single-source.js.map +1 -0
  98. package/dist/checks/documentation/_public-api-graph.d.ts +3 -26
  99. package/dist/checks/documentation/_public-api-graph.d.ts.map +1 -1
  100. package/dist/checks/documentation/_public-api-graph.js +3 -300
  101. package/dist/checks/documentation/_public-api-graph.js.map +1 -1
  102. package/dist/checks/documentation/directive-audit.d.ts.map +1 -1
  103. package/dist/checks/documentation/directive-audit.js +0 -1
  104. package/dist/checks/documentation/directive-audit.js.map +1 -1
  105. package/dist/checks/file-length-limit.d.ts +7 -0
  106. package/dist/checks/file-length-limit.d.ts.map +1 -1
  107. package/dist/checks/file-length-limit.js +14 -2
  108. package/dist/checks/file-length-limit.js.map +1 -1
  109. package/dist/checks/quality/code-structure/dead-code.d.ts.map +1 -1
  110. package/dist/checks/quality/code-structure/dead-code.js +0 -1
  111. package/dist/checks/quality/code-structure/dead-code.js.map +1 -1
  112. package/dist/checks/quality/dependency-version-consistency.d.ts.map +1 -1
  113. package/dist/checks/quality/dependency-version-consistency.js +0 -2
  114. package/dist/checks/quality/dependency-version-consistency.js.map +1 -1
  115. package/dist/checks/quality/frontend/navigation-typing.d.ts.map +1 -1
  116. package/dist/checks/quality/frontend/navigation-typing.js +0 -1
  117. package/dist/checks/quality/frontend/navigation-typing.js.map +1 -1
  118. package/dist/checks/quality/index.d.ts +1 -0
  119. package/dist/checks/quality/index.d.ts.map +1 -1
  120. package/dist/checks/quality/index.js +1 -0
  121. package/dist/checks/quality/index.js.map +1 -1
  122. package/dist/checks/quality/linting/eslint-justifications.d.ts.map +1 -1
  123. package/dist/checks/quality/linting/eslint-justifications.js +0 -1
  124. package/dist/checks/quality/linting/eslint-justifications.js.map +1 -1
  125. package/dist/checks/quality/no-raw-regex-on-code.d.ts.map +1 -1
  126. package/dist/checks/quality/no-raw-regex-on-code.js +2 -3
  127. package/dist/checks/quality/no-raw-regex-on-code.js.map +1 -1
  128. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts +5 -0
  129. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts.map +1 -0
  130. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js +66 -0
  131. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js.map +1 -0
  132. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts +3 -0
  133. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts.map +1 -1
  134. package/dist/checks/quality/patterns/performance-anti-patterns.js +47 -30
  135. package/dist/checks/quality/patterns/performance-anti-patterns.js.map +1 -1
  136. package/dist/checks/quality/yagni-ignore-hygiene.d.ts +10 -0
  137. package/dist/checks/quality/yagni-ignore-hygiene.d.ts.map +1 -0
  138. package/dist/checks/quality/yagni-ignore-hygiene.js +87 -0
  139. package/dist/checks/quality/yagni-ignore-hygiene.js.map +1 -0
  140. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts +5 -0
  141. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts.map +1 -0
  142. package/dist/checks/quality/yagni-ignore-hygiene.test.js +37 -0
  143. package/dist/checks/quality/yagni-ignore-hygiene.test.js.map +1 -0
  144. package/dist/checks/resilience/batch-operation-limits.d.ts +13 -0
  145. package/dist/checks/resilience/batch-operation-limits.d.ts.map +1 -0
  146. package/dist/checks/resilience/batch-operation-limits.js +160 -0
  147. package/dist/checks/resilience/batch-operation-limits.js.map +1 -0
  148. package/dist/checks/resilience/batch-operations.d.ts +2 -21
  149. package/dist/checks/resilience/batch-operations.d.ts.map +1 -1
  150. package/dist/checks/resilience/batch-operations.js +2 -420
  151. package/dist/checks/resilience/batch-operations.js.map +1 -1
  152. package/dist/checks/resilience/dangerous-config-defaults.d.ts.map +1 -1
  153. package/dist/checks/resilience/dangerous-config-defaults.js +0 -1
  154. package/dist/checks/resilience/dangerous-config-defaults.js.map +1 -1
  155. package/dist/checks/resilience/exit-code-correctness.d.ts.map +1 -1
  156. package/dist/checks/resilience/exit-code-correctness.js +0 -1
  157. package/dist/checks/resilience/exit-code-correctness.js.map +1 -1
  158. package/dist/checks/resilience/no-process-exit-in-finally.d.ts.map +1 -1
  159. package/dist/checks/resilience/no-process-exit-in-finally.js +0 -1
  160. package/dist/checks/resilience/no-process-exit-in-finally.js.map +1 -1
  161. package/dist/checks/resilience/readline-cleanup.d.ts.map +1 -1
  162. package/dist/checks/resilience/readline-cleanup.js +0 -1
  163. package/dist/checks/resilience/readline-cleanup.js.map +1 -1
  164. package/dist/checks/resilience/reentrancy-guard.d.ts.map +1 -1
  165. package/dist/checks/resilience/reentrancy-guard.js +0 -1
  166. package/dist/checks/resilience/reentrancy-guard.js.map +1 -1
  167. package/dist/checks/resilience/service-patterns.d.ts.map +1 -1
  168. package/dist/checks/resilience/service-patterns.js +0 -1
  169. package/dist/checks/resilience/service-patterns.js.map +1 -1
  170. package/dist/checks/resilience/unbounded-memory.d.ts +13 -0
  171. package/dist/checks/resilience/unbounded-memory.d.ts.map +1 -0
  172. package/dist/checks/resilience/unbounded-memory.js +229 -0
  173. package/dist/checks/resilience/unbounded-memory.js.map +1 -0
  174. package/dist/checks/security/csp-headers.d.ts.map +1 -1
  175. package/dist/checks/security/csp-headers.js +0 -1
  176. package/dist/checks/security/csp-headers.js.map +1 -1
  177. package/dist/checks/security/hasura-production-config.d.ts.map +1 -1
  178. package/dist/checks/security/hasura-production-config.js +0 -1
  179. package/dist/checks/security/hasura-production-config.js.map +1 -1
  180. package/dist/checks/security/jwt-validation.d.ts.map +1 -1
  181. package/dist/checks/security/jwt-validation.js +0 -2
  182. package/dist/checks/security/jwt-validation.js.map +1 -1
  183. package/dist/checks/security/package-supply-chain-policy.d.ts.map +1 -1
  184. package/dist/checks/security/package-supply-chain-policy.js +9 -15
  185. package/dist/checks/security/package-supply-chain-policy.js.map +1 -1
  186. package/dist/checks/security/semgrep-scan.d.ts.map +1 -1
  187. package/dist/checks/security/semgrep-scan.js +0 -1
  188. package/dist/checks/security/semgrep-scan.js.map +1 -1
  189. package/dist/checks/security/use-centralized-crypto.d.ts.map +1 -1
  190. package/dist/checks/security/use-centralized-crypto.js +2 -3
  191. package/dist/checks/security/use-centralized-crypto.js.map +1 -1
  192. package/dist/checks/testing/test-convention-consistency.d.ts.map +1 -1
  193. package/dist/checks/testing/test-convention-consistency.js +0 -1
  194. package/dist/checks/testing/test-convention-consistency.js.map +1 -1
  195. package/dist/checks/testing/test-file-pairing.js +3 -6
  196. package/dist/checks/testing/test-file-pairing.js.map +1 -1
  197. package/dist/display/architecture.d.ts.map +1 -1
  198. package/dist/display/architecture.js +1 -0
  199. package/dist/display/architecture.js.map +1 -1
  200. package/dist/display/quality.d.ts.map +1 -1
  201. package/dist/display/quality.js +1 -0
  202. package/dist/display/quality.js.map +1 -1
  203. package/dist/display/types.d.ts.map +1 -1
  204. package/dist/display/types.js +0 -1
  205. package/dist/display/types.js.map +1 -1
  206. package/package.json +4 -4
@@ -1,422 +1,4 @@
1
- // @fitness-ignore-file file-length-limit -- JSDoc documentation required for public API
2
1
  // @fitness-ignore-file duplicate-implementation-detection -- similar patterns across diagnostic modules
3
- /**
4
- * @fileoverview Batch operations and memory resilience checks
5
- */
6
- import { logger } from '@opensip-cli/core';
7
- import { defineCheck, isTestFile, getLineNumber } from '@opensip-cli/fitness';
8
- import { stripStringsAndCommentsPreservingPositions } from '@opensip-cli/fitness';
9
- const UNBOUNDED_BATCH_PATTERNS = [
10
- { pattern: '.map', type: 'async' },
11
- { pattern: '.forEach', type: 'async' },
12
- { pattern: 'for', type: 'forOf' },
13
- ];
14
- function findUnboundedBatchMatch(content, patternDef, startIndex) {
15
- logger.debug({
16
- evt: 'fitness.checks.batch_operations.find_unbounded_batch_match',
17
- msg: 'Finding unbounded batch pattern match at position in content',
18
- });
19
- const idx = content.indexOf(patternDef.pattern, startIndex);
20
- if (idx === -1)
21
- return null;
22
- if (patternDef.type === 'async') {
23
- const afterPattern = content.slice(idx + patternDef.pattern.length, idx + patternDef.pattern.length + 20);
24
- const asyncMatch = /^\s*\(\s*async/.exec(afterPattern);
25
- if (asyncMatch) {
26
- return { index: idx, match: patternDef.pattern + asyncMatch[0] };
27
- }
28
- }
29
- else {
30
- const afterFor = content.slice(idx, idx + 50);
31
- const forOfMatch = /^for\s*\(\s*const\s+\w+\s+of/.exec(afterFor);
32
- if (forOfMatch) {
33
- return { index: idx, match: forOfMatch[0] };
34
- }
35
- }
36
- return null;
37
- }
38
- const BOUNDED_KEYWORDS = [
39
- 'batch',
40
- 'chunk',
41
- 'page',
42
- 'limit',
43
- 'take',
44
- 'skip',
45
- 'offset',
46
- 'slice',
47
- ];
48
- function hasBoundedKeyword(content) {
49
- const lowerContent = content.toLowerCase();
50
- return BOUNDED_KEYWORDS.some((keyword) => lowerContent.includes(keyword));
51
- }
52
- function findUnboundedQueryCalls(content) {
53
- logger.debug({
54
- evt: 'fitness.checks.batch_operations.find_unbounded_query_calls',
55
- msg: 'Finding unbounded query calls like findAll, getAll, findMany with empty args',
56
- });
57
- const results = [];
58
- const methods = ['findAll', 'getAll', 'findMany'];
59
- for (const method of methods) {
60
- const pattern = `.${method}`;
61
- let searchStart = 0;
62
- while (searchStart < content.length) {
63
- const idx = content.indexOf(pattern, searchStart);
64
- if (idx === -1)
65
- break;
66
- const afterMethod = content.slice(idx + pattern.length, idx + pattern.length + 10);
67
- const emptyArgsMatch = /^\s*\(\s*\)/.exec(afterMethod);
68
- if (emptyArgsMatch) {
69
- results.push({
70
- index: idx,
71
- methodName: method,
72
- match: pattern + emptyArgsMatch[0],
73
- });
74
- }
75
- searchStart = idx + pattern.length;
76
- }
77
- }
78
- return results;
79
- }
80
- /**
81
- * Check: resilience/batch-operation-limits
82
- *
83
- * Detects batch operations that may process unbounded data:
84
- * - Array operations on potentially large datasets without pagination
85
- * - Async operations without concurrency limits
86
- * - Database queries without LIMIT clauses
87
- */
88
- export const batchOperationLimits = defineCheck({
89
- id: 'c4d9b853-147e-4c29-9702-f392b1f51056',
90
- slug: 'batch-operation-limits',
91
- scope: { languages: ['typescript'], concerns: ['backend', 'frontend', 'cli'] },
92
- contentFilter: 'strip-strings',
93
- confidence: 'medium',
94
- description: 'Detect batch operations that may process unbounded data',
95
- longDescription: `**Purpose:** Prevents batch operations from processing arbitrarily large datasets without pagination or concurrency controls.
96
-
97
- **Detects:**
98
- - Unbounded query calls: \`.findAll()\`, \`.getAll()\`, \`.findMany()\` with empty parentheses
99
- - Async callbacks in \`.map(\` and \`.forEach(\` without nearby batching keywords
100
- - \`for (const x of\` loops without pagination indicators
101
- - Skips files containing bounded keywords: \`batch\`, \`chunk\`, \`page\`, \`limit\`, \`take\`, \`skip\`, \`offset\`, \`slice\`
102
-
103
- **Why it matters:** Processing unbounded datasets can exhaust memory and starve other operations of resources.
104
-
105
- **Scope:** General best practice. Analyzes each file individually via string matching.`,
106
- tags: ['resilience', 'performance', 'memory'],
107
- fileTypes: ['ts'],
108
- analyze(content, filePath) {
109
- if (isTestFile(filePath))
110
- return [];
111
- logger.debug({
112
- evt: 'fitness.checks.batch_operations.analyze_unbounded_batch',
113
- msg: 'Analyzing file for unbounded batch operations that may process excessive data',
114
- });
115
- const violations = [];
116
- if (hasBoundedKeyword(content)) {
117
- return violations;
118
- }
119
- const unboundedQueries = findUnboundedQueryCalls(content);
120
- for (const query of unboundedQueries) {
121
- const lineNumber = getLineNumber(content, query.index);
122
- violations.push({
123
- line: lineNumber,
124
- column: 0,
125
- message: `Unbounded ${query.methodName}() call may load excessive data`,
126
- severity: 'warning',
127
- suggestion: `Add pagination with limit/offset or use cursor-based pagination. Example: ${query.methodName}({ take: 100, skip: offset }) or use a cursor-based approach for large datasets.`,
128
- match: query.match,
129
- type: 'unbounded-query',
130
- filePath,
131
- });
132
- }
133
- for (const patternDef of UNBOUNDED_BATCH_PATTERNS) {
134
- let searchStart = 0;
135
- while (searchStart < content.length) {
136
- const matchResult = findUnboundedBatchMatch(content, patternDef, searchStart);
137
- if (!matchResult)
138
- break;
139
- const start = Math.max(0, matchResult.index - 300);
140
- const end = Math.min(content.length, matchResult.index + 300);
141
- const context = content.slice(start, end);
142
- if (!hasBoundedKeyword(context)) {
143
- const lineNumber = getLineNumber(content, matchResult.index);
144
- violations.push({
145
- line: lineNumber,
146
- column: 0,
147
- message: 'Async operation in loop without batching may exhaust resources',
148
- severity: 'warning',
149
- suggestion: 'Add batch processing or concurrency limits. Use chunk() to process in batches or pLimit() to limit concurrent operations.',
150
- match: matchResult.match,
151
- type: 'unbounded-async-loop',
152
- filePath,
153
- });
154
- }
155
- searchStart = matchResult.index + 1;
156
- }
157
- }
158
- return violations;
159
- },
160
- });
161
- const COLLECTION_TYPES = ['new Map(', 'new Set(', '= []', ': []'];
162
- /** Patterns indicating a collection is bounded by design (static registries, constants, DI tokens). */
163
- const BOUNDED_DECLARATION_PATTERNS = [
164
- 'static readonly',
165
- 'static ',
166
- 'readonly ',
167
- 'const ',
168
- '= Object.freeze',
169
- 'as const',
170
- // DI injection tokens
171
- 'INJECTION_TOKEN',
172
- 'InjectionToken',
173
- 'DI_TOKEN',
174
- 'Symbol(',
175
- // Known bounded types
176
- 'WeakMap',
177
- 'WeakSet',
178
- ];
179
- function isBoundedDeclaration(line) {
180
- const trimmed = line.trim();
181
- return BOUNDED_DECLARATION_PATTERNS.some((pattern) => trimmed.includes(pattern));
182
- }
183
- function findCollectionDeclarations(content) {
184
- logger.debug({
185
- evt: 'fitness.checks.batch_operations.find_collection_declarations',
186
- msg: 'Finding private collection declarations that may grow without bounds',
187
- });
188
- const results = [];
189
- const lines = content.split('\n');
190
- let charIndex = 0;
191
- for (const line of lines) {
192
- const currentCharIndex = charIndex;
193
- charIndex += line.length + 1; // +1 for newline
194
- const trimmed = line.trim();
195
- const isPrivateDeclaration = trimmed.startsWith('private');
196
- const collectionType = isPrivateDeclaration
197
- ? COLLECTION_TYPES.find((type) => line.includes(type))
198
- : undefined;
199
- if (collectionType) {
200
- if (isBoundedDeclaration(line)) {
201
- continue;
202
- }
203
- const matchStart = line.indexOf('private');
204
- const lineEnd = line.includes(';') ? line.indexOf(';') + 1 : line.length;
205
- results.push({
206
- index: currentCharIndex + matchStart,
207
- match: line.slice(matchStart, lineEnd).trim(),
208
- });
209
- }
210
- }
211
- return results;
212
- }
213
- const EVICTION_KEYWORDS = [
214
- '.delete(',
215
- '.clear(',
216
- '.splice(',
217
- '.shift(',
218
- '.pop(',
219
- '.length = 0',
220
- '.length=0',
221
- 'maxsize',
222
- 'max_size',
223
- 'limit',
224
- 'evict',
225
- 'prune',
226
- 'cleanup',
227
- 'truncate',
228
- 'lru',
229
- 'overflow',
230
- '@bounded-collection',
231
- ];
232
- function hasEvictionKeyword(content) {
233
- const lowerContent = content.toLowerCase();
234
- return EVICTION_KEYWORDS.some((keyword) => lowerContent.includes(keyword.toLowerCase()));
235
- }
236
- /** String literals for pattern matching, not actual fs calls. */
237
- // @fitness-ignore-next-line fitness-check-standards -- These are string literals for pattern matching, not actual fs calls
238
- const FILE_READ_METHODS = ['readFileSync(', 'readFile('];
239
- const FILE_SIZE_CHECK_KEYWORDS = [
240
- 'statsync(',
241
- 'stat(',
242
- '.size <',
243
- '.size >',
244
- '.size<',
245
- '.size>',
246
- 'max_file_size',
247
- 'maxfilesize',
248
- ];
249
- function hasFileSizeCheck(content) {
250
- const lowerContent = content.toLowerCase();
251
- return FILE_SIZE_CHECK_KEYWORDS.some((keyword) => lowerContent.includes(keyword));
252
- }
253
- /**
254
- * A read whose result is handed directly to `JSON.parse(...)` is loading a
255
- * structured document (config / manifest / internal IPC spec), not streaming
256
- * an arbitrarily large blob — the same bounded-by-nature rationale as the
257
- * `.json` entry in {@link KNOWN_SMALL_FILE_PATTERNS}. Matches `JSON.parse(`
258
- * (whitespace-tolerant) directly preceding the read call.
259
- */
260
- function isStructuredParseRead(code, readIndex) {
261
- const before = code.slice(Math.max(0, readIndex - 16), readIndex);
262
- return /JSON\s*\.\s*parse\s*\(\s*$/.test(before);
263
- }
264
- /**
265
- * Markers indicating a read resolved against the module's OWN location.
266
- */
267
- const SELF_RELATIVE_MARKERS = ['import.meta.url', '__dirname', '__filename', 'fileurltopath'];
268
- /**
269
- * A read resolved against the module's own location (`import.meta.url`,
270
- * `__dirname`, `__filename`, `fileURLToPath`) loads a committed, version-
271
- * pinned asset shipped alongside the code (e.g. a vendored bundle), not
272
- * untrusted external input — detected by a self-location marker in the
273
- * look-back window.
274
- */
275
- function isModuleSelfRelativeRead(codeContext) {
276
- const lower = codeContext.toLowerCase();
277
- return SELF_RELATIVE_MARKERS.some((marker) => lower.includes(marker));
278
- }
279
- /** Config files that are bounded by nature and don't need size validation. */
280
- const KNOWN_SMALL_FILE_PATTERNS = [
281
- 'package.json',
282
- 'tsconfig',
283
- '.json',
284
- '.yaml',
285
- '.yml',
286
- '.toml',
287
- '.env',
288
- '.config',
289
- '.eslintrc',
290
- '.prettierrc',
291
- ];
292
- function isReadingKnownSmallFile(content, readIndex) {
293
- const start = Math.max(0, readIndex - 100);
294
- const end = Math.min(content.length, readIndex + 150);
295
- const context = content.slice(start, end).toLowerCase();
296
- return KNOWN_SMALL_FILE_PATTERNS.some((pattern) => context.includes(pattern));
297
- }
298
- function findFileReadCalls(content) {
299
- logger.debug({
300
- evt: 'fitness.checks.batch_operations.find_file_read_calls',
301
- msg: 'Finding file read calls that may cause OOM without size validation',
302
- });
303
- const results = [];
304
- for (const method of FILE_READ_METHODS) {
305
- let searchStart = 0;
306
- while (searchStart < content.length) {
307
- const idx = content.indexOf(method, searchStart);
308
- if (idx === -1)
309
- break;
310
- results.push({ index: idx, match: method });
311
- searchStart = idx + method.length;
312
- }
313
- }
314
- return results;
315
- }
316
- function hasGrowthMethod(content) {
317
- const methods = ['.set(', '.push(', '.add('];
318
- return methods.some((method) => content.includes(method));
319
- }
320
- /**
321
- * Check: resilience/unbounded-memory
322
- *
323
- * Detects potential memory leaks and OOM risks:
324
- * - Maps/Sets/Arrays in classes without eviction logic
325
- * - File reads without prior size checks
326
- * - Growing buffers without backpressure
327
- */
328
- export const unboundedMemory = defineCheck({
329
- id: '1f3c347d-3511-4157-87e0-050fd57c28b3',
330
- slug: 'unbounded-memory',
331
- description: 'Detect unbounded collections and file reads that may cause OOM',
332
- longDescription: `**Purpose:** Identifies potential memory leaks from collections that grow without bounds and file reads without size validation.
333
-
334
- **Detects:**
335
- - Private class fields initialized with \`new Map(\`, \`new Set(\`, or empty arrays that have growth methods (\`.set\`, \`.push\`, \`.add\`) but no eviction keywords (\`.delete\`, \`.clear\`, \`maxsize\`, \`evict\`, \`prune\`, \`lru\`, etc.)
336
- - \`readFileSync(\` and \`readFile(\` calls without a preceding \`stat()\` / \`.size\` check within 500 characters
337
- - Skips \`static\`, \`readonly\`, \`const\`, \`WeakMap\`, and DI token declarations
338
-
339
- **Why it matters:** Unbounded in-memory collections cause gradual OOM in long-running services; reading files without size guards risks instant OOM on large inputs.
340
-
341
- **Scope:** General best practice. Analyzes each file individually via string matching.`,
342
- scope: { languages: ['typescript'], concerns: [] },
343
- tags: ['resilience', 'memory', 'performance'],
344
- analyze(content, filePath) {
345
- if (isTestFile(filePath))
346
- return [];
347
- // Fitness checks reference readFile/readFileSync as string literals, not actual calls
348
- if (filePath.includes('/fitness/src/checks/'))
349
- return [];
350
- logger.debug({
351
- evt: 'fitness.checks.batch_operations.analyze_file_operations',
352
- msg: 'Analyzing file for unbounded memory usage and file read operations',
353
- });
354
- const violations = [];
355
- // Strip string literals + block / single-line comments BEFORE scanning
356
- // for `readFile(` matches. Doc prose like "// followed by readFile()
357
- // below" or `@module readFile` JSDoc previously yielded false positives
358
- // because the regex hit the comment text. Use the position-preserving
359
- // variant so match indexes map back to the original source line.
360
- //
361
- // Eviction-keyword and file-size-check detection intentionally run on
362
- // the ORIGINAL content so author-supplied hints in comments
363
- // ("// bounded by upstream cap", "// max-size enforced upstream")
364
- // continue to mark the file as bounded. Stripping them there would
365
- // surface previously-passing files as new positives every time we
366
- // tighten the regex.
367
- const codeOnly = stripStringsAndCommentsPreservingPositions(content);
368
- const collectionDeclarations = findCollectionDeclarations(codeOnly);
369
- for (const declaration of collectionDeclarations) {
370
- const hasEviction = hasEvictionKeyword(content);
371
- const hasGrowth = hasGrowthMethod(content);
372
- if (hasGrowth && !hasEviction) {
373
- const lineNumber = getLineNumber(content, declaration.index);
374
- violations.push({
375
- line: lineNumber,
376
- column: 0,
377
- message: 'Unbounded collection that grows without eviction',
378
- severity: 'warning',
379
- suggestion: 'Add maxSize limit and eviction logic (e.g., LRU). Use a shared cache utility for caching or implement periodic cleanup with .delete() or .clear().',
380
- match: declaration.match,
381
- type: 'unbounded-collection',
382
- filePath,
383
- });
384
- }
385
- }
386
- const fileReadCalls = findFileReadCalls(codeOnly);
387
- for (const readCall of fileReadCalls) {
388
- // Widen the look-back window to 1500 chars so a stat() guard placed
389
- // up to ~30 lines earlier in the same function still counts.
390
- // Real-world bundle/file readers interleave stat → branch → recover
391
- // → readFile, easily putting the guard >500 chars upstream.
392
- const start = Math.max(0, readCall.index - 1500);
393
- const context = content.slice(start, readCall.index);
394
- const codeContext = codeOnly.slice(start, readCall.index);
395
- if (isReadingKnownSmallFile(content, readCall.index)) {
396
- continue;
397
- }
398
- // Bounded-by-nature reads: a `JSON.parse(readFile(...))` structured-doc
399
- // load, or a read of a module-self-relative committed asset.
400
- if (isStructuredParseRead(codeOnly, readCall.index) ||
401
- isModuleSelfRelativeRead(codeContext)) {
402
- continue;
403
- }
404
- if (!hasFileSizeCheck(context)) {
405
- const lineNumber = getLineNumber(content, readCall.index);
406
- violations.push({
407
- line: lineNumber,
408
- column: 0,
409
- message: 'File read without size validation may cause OOM',
410
- severity: 'warning',
411
- // @fitness-ignore-next-line performance-anti-patterns -- 'await' appears in suggestion string literal, not actual await expression
412
- suggestion: 'Check fs.stat().size before reading to prevent OOM on large files. Example: const stats = await fs.stat(path); if (stats.size > MAX_FILE_SIZE) throw new Error("File too large");',
413
- match: readCall.match,
414
- type: 'unbounded-file-read',
415
- filePath,
416
- });
417
- }
418
- }
419
- return violations;
420
- },
421
- });
2
+ export { batchOperationLimits } from './batch-operation-limits.js';
3
+ export { unboundedMemory } from './unbounded-memory.js';
422
4
  //# sourceMappingURL=batch-operations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-operations.js","sourceRoot":"","sources":["../../../src/checks/resilience/batch-operations.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wGAAwG;AACxG;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,0CAA0C,EAAE,MAAM,sBAAsB,CAAC;AAOlF,MAAM,wBAAwB,GAA4B;IACxD,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;IAClC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;CAClC,CAAC;AAEF,SAAS,uBAAuB,CAC9B,OAAe,EACf,UAAiC,EACjC,UAAkB;IAElB,MAAM,CAAC,KAAK,CAAC;QACX,GAAG,EAAE,4DAA4D;QACjE,GAAG,EAAE,8DAA8D;KACpE,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAChC,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAC/B,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CACrC,CAAC;QACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;CACC,CAAC;AAEX,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAe;IAEf,MAAM,CAAC,KAAK,CAAC;QACX,GAAG,EAAE,4DAA4D;QACjE,GAAG,EAAE,8EAA8E;KACpF,CAAC,CAAC;IACH,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAElD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,OAAO,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM;YAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YACnF,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,GAAG;oBACV,UAAU,EAAE,MAAM;oBAClB,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,yDAAyD;IACtE,eAAe,EAAE;;;;;;;;;;uFAUoE;IACrF,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC;IAC7C,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,yDAAyD;YAC9D,GAAG,EAAE,+EAA+E;SACrF,CAAC,CAAC;QACH,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,aAAa,KAAK,CAAC,UAAU,iCAAiC;gBACvE,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,6EAA6E,KAAK,CAAC,UAAU,kFAAkF;gBAC3L,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,iBAAiB;gBACvB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,wBAAwB,EAAE,CAAC;YAClD,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,OAAO,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW;oBAAE,MAAM;gBAExB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;gBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAE1C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC7D,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,gEAAgE;wBACzE,QAAQ,EAAE,SAAS;wBACnB,UAAU,EACR,2HAA2H;wBAC7H,KAAK,EAAE,WAAW,CAAC,KAAK;wBACxB,IAAI,EAAE,sBAAsB;wBAC5B,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;gBAED,WAAW,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAE3E,uGAAuG;AACvG,MAAM,4BAA4B,GAAG;IACnC,iBAAiB;IACjB,SAAS;IACT,WAAW;IACX,QAAQ;IACR,iBAAiB;IACjB,UAAU;IACV,sBAAsB;IACtB,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,SAAS;IACT,SAAS;CACV,CAAC;AAEF,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe;IACjD,MAAM,CAAC,KAAK,CAAC;QACX,GAAG,EAAE,8DAA8D;QACnE,GAAG,EAAE,sEAAsE;KAC5E,CAAC,CAAC;IACH,MAAM,OAAO,GAAuC,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,SAAS,CAAC;QACnC,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,oBAAoB;YACzC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,gBAAgB,GAAG,UAAU;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,OAAO;IACP,aAAa;IACb,WAAW;IACX,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,UAAU;IACV,KAAK;IACL,UAAU;IACV,qBAAqB;CACb,CAAC;AAEX,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,iEAAiE;AACjE,2HAA2H;AAC3H,MAAM,iBAAiB,GAAG,CAAC,eAAe,EAAE,WAAW,CAAU,CAAC;AAElE,MAAM,wBAAwB,GAAG;IAC/B,WAAW;IACX,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,aAAa;CACL,CAAC;AAEX,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,SAAiB;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,OAAO,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAE9F;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,8EAA8E;AAC9E,MAAM,yBAAyB,GAAG;IAChC,cAAc;IACd,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAC;AAEF,SAAS,uBAAuB,CAAC,OAAe,EAAE,SAAiB;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,CAAC,KAAK,CAAC;QACX,GAAG,EAAE,sDAAsD;QAC3D,GAAG,EAAE,oEAAoE;KAC1E,CAAC,CAAC;IACH,MAAM,OAAO,GAAuC,EAAE,CAAC;IAEvD,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,OAAO,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM;YACtB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,gEAAgE;IAC7E,eAAe,EAAE;;;;;;;;;uFASoE;IACrF,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClD,IAAI,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC;IAE7C,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,sFAAsF;QACtF,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzD,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,yDAAyD;YAC9D,GAAG,EAAE,oEAAoE;SAC1E,CAAC,CAAC;QACH,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,iEAAiE;QACjE,EAAE;QACF,sEAAsE;QACtE,4DAA4D;QAC5D,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,qBAAqB;QACrB,MAAM,QAAQ,GAAG,0CAA0C,CAAC,OAAO,CAAC,CAAC;QAErE,MAAM,sBAAsB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,WAAW,IAAI,sBAAsB,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAE3C,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC7D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,kDAAkD;oBAC3D,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,oJAAoJ;oBACtJ,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,IAAI,EAAE,sBAAsB;oBAC5B,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,oEAAoE;YACpE,6DAA6D;YAC7D,oEAAoE;YACpE,4DAA4D;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE1D,IAAI,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YAED,wEAAwE;YACxE,6DAA6D;YAC7D,IACE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAC/C,wBAAwB,CAAC,WAAW,CAAC,EACrC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,iDAAiD;oBAC1D,QAAQ,EAAE,SAAS;oBACnB,mIAAmI;oBACnI,UAAU,EACR,mLAAmL;oBACrL,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"batch-operations.js","sourceRoot":"","sources":["../../../src/checks/resilience/batch-operations.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dangerous-config-defaults.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/dangerous-config-defaults.ts"],"names":[],"mappings":"AAGA;;GAEG;AAmTH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,sCAuDlC,CAAC"}
1
+ {"version":3,"file":"dangerous-config-defaults.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/dangerous-config-defaults.ts"],"names":[],"mappings":"AAEA;;GAEG;AAmTH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,sCAuDlC,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file batch-operation-limits -- iterates bounded collections (config entries, registry items, or small analysis results)
2
1
  // @fitness-ignore-file unsafe-secret-comparison -- keyIndex comparisons are search index positions, not cryptographic keys
3
2
  // @fitness-ignore-file dangerous-config-defaults -- Fitness check definition references config patterns in longDescription, not actual configuration
4
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dangerous-config-defaults.js","sourceRoot":"","sources":["../../../src/checks/resilience/dangerous-config-defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dangerous-config-defaults.js","sourceRoot":"","sources":["../../../src/checks/resilience/dangerous-config-defaults.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exit-code-correctness.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/exit-code-correctness.ts"],"names":[],"mappings":"AAEA;;GAEG;AAuCH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sCA8E9B,CAAC"}
1
+ {"version":3,"file":"exit-code-correctness.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/exit-code-correctness.ts"],"names":[],"mappings":"AACA;;GAEG;AAuCH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sCA8E9B,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file project-readme-existence -- internal module, not a package root
2
1
  // @fitness-ignore-file fitness-check-coverage -- check implementation with framework-managed coverage
3
2
  /**
4
3
  * @fileoverview Detects error branches that silently exit with success (exit 0)
@@ -1 +1 @@
1
- {"version":3,"file":"exit-code-correctness.js","sourceRoot":"","sources":["../../../src/checks/resilience/exit-code-correctness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exit-code-correctness.js","sourceRoot":"","sources":["../../../src/checks/resilience/exit-code-correctness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-process-exit-in-finally.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-process-exit-in-finally.ts"],"names":[],"mappings":"AAEA;;GAEG;AAoBH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sCAyEjC,CAAC"}
1
+ {"version":3,"file":"no-process-exit-in-finally.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-process-exit-in-finally.ts"],"names":[],"mappings":"AACA;;GAEG;AAoBH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sCAyEjC,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file project-readme-existence -- internal module, not a package root
2
1
  // @fitness-ignore-file fitness-check-coverage -- check implementation with framework-managed coverage
3
2
  /**
4
3
  * @fileoverview Detects process.exit() usage that bypasses finally blocks
@@ -1 +1 @@
1
- {"version":3,"file":"no-process-exit-in-finally.js","sourceRoot":"","sources":["../../../src/checks/resilience/no-process-exit-in-finally.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,sGAAsG;AACtG;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;GAEG;AACH,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;IAChD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,qDAAqD;IAClE,eAAe,EAAE;;;;;;;;6EAQ0D;IAC3E,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;IAC1C,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kBAAkB;QAClB,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,mDAAmD;QACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,gCAAgC;QAChC,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,qBAAqB;YACrB,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,2EAA2E;gBACpF,QAAQ,EAAE,OAAO;gBACjB,UAAU,EACR,+KAA+K;gBACjL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,+BAA+B;gBACrC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-process-exit-in-finally.js","sourceRoot":"","sources":["../../../src/checks/resilience/no-process-exit-in-finally.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;GAEG;AACH,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;IAChD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,qDAAqD;IAClE,eAAe,EAAE;;;;;;;;6EAQ0D;IAC3E,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;IAC1C,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kBAAkB;QAClB,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,mDAAmD;QACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,gCAAgC;QAChC,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAE5B,qBAAqB;YACrB,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,2EAA2E;gBACpF,QAAQ,EAAE,OAAO;gBACjB,UAAU,EACR,+KAA+K;gBACjL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,+BAA+B;gBACrC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"readline-cleanup.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/readline-cleanup.ts"],"names":[],"mappings":"AAEA;;GAEG;AAyBH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,sCA2F1B,CAAC"}
1
+ {"version":3,"file":"readline-cleanup.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/readline-cleanup.ts"],"names":[],"mappings":"AACA;;GAEG;AAyBH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,sCA2F1B,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file project-readme-existence -- internal module, not a package root
2
1
  // @fitness-ignore-file fitness-check-coverage -- check implementation with framework-managed coverage
3
2
  /**
4
3
  * @fileoverview Detects readline usage without proper cleanup
@@ -1 +1 @@
1
- {"version":3,"file":"readline-cleanup.js","sourceRoot":"","sources":["../../../src/checks/resilience/readline-cleanup.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,sGAAsG;AACtG;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;GAEG;AACH,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAElE;;GAEG;AACH,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACvB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,0BAA0B;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,8DAA8D;IAC3E,eAAe,EAAE;;;;;;;;6EAQ0D;IAC3E,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC;IAC3C,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kBAAkB;QAClB,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEjE,iDAAiD;QACjD,uBAAuB,CAAC,SAAS,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EACL,iFAAiF;oBACnF,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,oIAAoI;oBACtI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACf,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,uBAAuB,CAAC,SAAS,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,yDAAyD;YACzD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,IACE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EACxC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,0EAA0E;oBACnF,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,+FAA+F;oBACjG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACf,IAAI,EAAE,4BAA4B;oBAClC,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"readline-cleanup.js","sourceRoot":"","sources":["../../../src/checks/resilience/readline-cleanup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reentrancy-guard.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/reentrancy-guard.ts"],"names":[],"mappings":"AAEA;;GAEG;AAmBH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sCAuE1B,CAAC"}
1
+ {"version":3,"file":"reentrancy-guard.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/reentrancy-guard.ts"],"names":[],"mappings":"AACA;;GAEG;AAmBH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sCAuE1B,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file project-readme-existence -- internal module, not a package root
2
1
  // @fitness-ignore-file fitness-check-coverage -- check implementation with framework-managed coverage
3
2
  /**
4
3
  * @fileoverview Detects boolean flag reentrancy guards that should use counters or mutexes
@@ -1 +1 @@
1
- {"version":3,"file":"reentrancy-guard.js","sourceRoot":"","sources":["../../../src/checks/resilience/reentrancy-guard.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,sGAAsG;AACtG;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;;GAGG;AACH,MAAM,oBAAoB,GACxB,oGAAoG,CAAC;AAEvG;;GAEG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,uKAAuK;IACvK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,aAAa,QAAQ,uBAAuB,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,oEAAoE;IACjF,eAAe,EAAE;;;;;;;;;6EAS0D;IAC3E,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;IACjD,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kBAAkB;QAClB,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,cAAc;QACd,IACE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,iDAAiD;YACjD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAS;YAE1C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAEvD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,6BAA6B,QAAQ,8CAA8C;gBAC5F,QAAQ,EAAE,SAAS;gBACnB,UAAU,EACR,sJAAsJ;gBACxJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,0BAA0B;gBAChC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"reentrancy-guard.js","sourceRoot":"","sources":["../../../src/checks/resilience/reentrancy-guard.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvF;;;GAGG;AACH,MAAM,oBAAoB,GACxB,oGAAoG,CAAC;AAEvG;;GAEG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,uKAAuK;IACvK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,aAAa,QAAQ,uBAAuB,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,oEAAoE;IACjF,eAAe,EAAE;;;;;;;;;6EAS0D;IAC3E,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;IACjD,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kBAAkB;QAClB,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,cAAc;QACd,IACE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,iDAAiD;YACjD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAS;YAE1C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAEvD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,6BAA6B,QAAQ,8CAA8C;gBAC5F,QAAQ,EAAE,SAAS;gBACnB,UAAU,EACR,sJAAsJ;gBACxJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACf,IAAI,EAAE,0BAA0B;gBAChC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service-patterns.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/service-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqIH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,sCA2D3B,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sCAuD/B,CAAC"}
1
+ {"version":3,"file":"service-patterns.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/service-patterns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqIH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,sCA0D3B,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sCAuD/B,CAAC"}
@@ -145,7 +145,6 @@ export const gracefulShutdown = defineCheck({
145
145
  }
146
146
  // Find service entry violation
147
147
  for (const pattern of SERVICE_ENTRY_PATTERNS) {
148
- // @fitness-ignore-next-line performance-anti-patterns -- false positive: keyword in comment text below, not an async call
149
148
  // @lazy-ok -- 'await' appears in suggestion string literal, not actual await
150
149
  pattern.lastIndex = 0;
151
150
  const match = pattern.exec(content);