@opensip-cli/checks-typescript 0.1.10 → 0.1.12

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 (252) 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-2.test.d.ts.map +1 -1
  6. package/dist/__tests__/behavior-fixtures-2.test.js +0 -1
  7. package/dist/__tests__/behavior-fixtures-2.test.js.map +1 -1
  8. package/dist/__tests__/behavior-fixtures-3.test.d.ts.map +1 -1
  9. package/dist/__tests__/behavior-fixtures-3.test.js +0 -1
  10. package/dist/__tests__/behavior-fixtures-3.test.js.map +1 -1
  11. package/dist/__tests__/behavior-fixtures-4.test.d.ts.map +1 -1
  12. package/dist/__tests__/behavior-fixtures-4.test.js +0 -1
  13. package/dist/__tests__/behavior-fixtures-4.test.js.map +1 -1
  14. package/dist/__tests__/behavior-fixtures-5.test.d.ts.map +1 -1
  15. package/dist/__tests__/behavior-fixtures-5.test.js +0 -1
  16. package/dist/__tests__/behavior-fixtures-5.test.js.map +1 -1
  17. package/dist/__tests__/behavior-fixtures-6.test.js +10 -0
  18. package/dist/__tests__/behavior-fixtures-6.test.js.map +1 -1
  19. package/dist/__tests__/behavior-fixtures.test.d.ts.map +1 -1
  20. package/dist/__tests__/behavior-fixtures.test.js +2 -4
  21. package/dist/__tests__/behavior-fixtures.test.js.map +1 -1
  22. package/dist/__tests__/branch-fixtures-2.test.d.ts.map +1 -1
  23. package/dist/__tests__/branch-fixtures-2.test.js +0 -1
  24. package/dist/__tests__/branch-fixtures-2.test.js.map +1 -1
  25. package/dist/__tests__/branch-fixtures-3.test.d.ts.map +1 -1
  26. package/dist/__tests__/branch-fixtures-3.test.js +0 -1
  27. package/dist/__tests__/branch-fixtures-3.test.js.map +1 -1
  28. package/dist/__tests__/branch-fixtures.test.d.ts.map +1 -1
  29. package/dist/__tests__/branch-fixtures.test.js +0 -1
  30. package/dist/__tests__/branch-fixtures.test.js.map +1 -1
  31. package/dist/checks/architecture/__tests__/live-view-through-cli-live.test.d.ts +2 -0
  32. package/dist/checks/architecture/__tests__/live-view-through-cli-live.test.d.ts.map +1 -0
  33. package/dist/checks/architecture/__tests__/live-view-through-cli-live.test.js +13 -0
  34. package/dist/checks/architecture/__tests__/live-view-through-cli-live.test.js.map +1 -0
  35. package/dist/checks/architecture/contracts-schema-consistency.d.ts.map +1 -1
  36. package/dist/checks/architecture/contracts-schema-consistency.js +0 -3
  37. package/dist/checks/architecture/contracts-schema-consistency.js.map +1 -1
  38. package/dist/checks/architecture/drizzle-orm-migration-guardrails.d.ts.map +1 -1
  39. package/dist/checks/architecture/drizzle-orm-migration-guardrails.js +1 -0
  40. package/dist/checks/architecture/drizzle-orm-migration-guardrails.js.map +1 -1
  41. package/dist/checks/architecture/index.d.ts +1 -0
  42. package/dist/checks/architecture/index.d.ts.map +1 -1
  43. package/dist/checks/architecture/index.js +1 -0
  44. package/dist/checks/architecture/index.js.map +1 -1
  45. package/dist/checks/architecture/live-view-through-cli-live.d.ts +8 -0
  46. package/dist/checks/architecture/live-view-through-cli-live.d.ts.map +1 -0
  47. package/dist/checks/architecture/live-view-through-cli-live.js +43 -0
  48. package/dist/checks/architecture/live-view-through-cli-live.js.map +1 -0
  49. package/dist/checks/architecture/missing-type-exports.d.ts.map +1 -1
  50. package/dist/checks/architecture/missing-type-exports.js +1 -1
  51. package/dist/checks/architecture/missing-type-exports.js.map +1 -1
  52. package/dist/checks/architecture/module-coupling-fan-out.d.ts.map +1 -1
  53. package/dist/checks/architecture/module-coupling-fan-out.js +6 -2
  54. package/dist/checks/architecture/module-coupling-fan-out.js.map +1 -1
  55. package/dist/checks/architecture/no-bootstrap-tool-import.d.ts.map +1 -1
  56. package/dist/checks/architecture/no-bootstrap-tool-import.js +1 -0
  57. package/dist/checks/architecture/no-bootstrap-tool-import.js.map +1 -1
  58. package/dist/checks/architecture/no-run-done-result.d.ts.map +1 -1
  59. package/dist/checks/architecture/no-run-done-result.js +1 -0
  60. package/dist/checks/architecture/no-run-done-result.js.map +1 -1
  61. package/dist/checks/architecture/package-json-exports-field.d.ts.map +1 -1
  62. package/dist/checks/architecture/package-json-exports-field.js +1 -1
  63. package/dist/checks/architecture/package-json-exports-field.js.map +1 -1
  64. package/dist/checks/architecture/phantom-dependency-detection.d.ts.map +1 -1
  65. package/dist/checks/architecture/phantom-dependency-detection.js +0 -4
  66. package/dist/checks/architecture/phantom-dependency-detection.js.map +1 -1
  67. package/dist/checks/architecture/tsconfig-extends-validation.d.ts.map +1 -1
  68. package/dist/checks/architecture/tsconfig-extends-validation.js +0 -2
  69. package/dist/checks/architecture/tsconfig-extends-validation.js.map +1 -1
  70. package/dist/checks/quality/api/fastify-schema-coverage.d.ts.map +1 -1
  71. package/dist/checks/quality/api/fastify-schema-coverage.js +21 -10
  72. package/dist/checks/quality/api/fastify-schema-coverage.js.map +1 -1
  73. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.d.ts +5 -0
  74. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.d.ts.map +1 -0
  75. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.js +17 -0
  76. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.js.map +1 -0
  77. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.d.ts +18 -0
  78. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.d.ts.map +1 -0
  79. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.js +36 -0
  80. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.js.map +1 -0
  81. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.d.ts +15 -0
  82. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.d.ts.map +1 -0
  83. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.js +288 -0
  84. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.js.map +1 -0
  85. package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts +1 -26
  86. package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts.map +1 -1
  87. package/dist/checks/quality/code-structure/duplicate-utility-functions.js +3 -407
  88. package/dist/checks/quality/code-structure/duplicate-utility-functions.js.map +1 -1
  89. package/dist/checks/quality/data-integrity/__tests__/null-safety-fp.test.js +39 -2
  90. package/dist/checks/quality/data-integrity/__tests__/null-safety-fp.test.js.map +1 -1
  91. package/dist/checks/quality/data-integrity/array-validation-detectors.d.ts +17 -0
  92. package/dist/checks/quality/data-integrity/array-validation-detectors.d.ts.map +1 -0
  93. package/dist/checks/quality/data-integrity/array-validation-detectors.js +184 -0
  94. package/dist/checks/quality/data-integrity/array-validation-detectors.js.map +1 -0
  95. package/dist/checks/quality/data-integrity/array-validation.d.ts +0 -2
  96. package/dist/checks/quality/data-integrity/array-validation.d.ts.map +1 -1
  97. package/dist/checks/quality/data-integrity/array-validation.js +2 -360
  98. package/dist/checks/quality/data-integrity/array-validation.js.map +1 -1
  99. package/dist/checks/quality/data-integrity/database-schema-validation.d.ts.map +1 -1
  100. package/dist/checks/quality/data-integrity/database-schema-validation.js +0 -1
  101. package/dist/checks/quality/data-integrity/database-schema-validation.js.map +1 -1
  102. package/dist/checks/quality/data-integrity/null-safety-analyze.d.ts +33 -0
  103. package/dist/checks/quality/data-integrity/null-safety-analyze.d.ts.map +1 -0
  104. package/dist/checks/quality/data-integrity/null-safety-analyze.js +164 -0
  105. package/dist/checks/quality/data-integrity/null-safety-analyze.js.map +1 -0
  106. package/dist/checks/quality/data-integrity/null-safety-config.d.ts +50 -0
  107. package/dist/checks/quality/data-integrity/null-safety-config.d.ts.map +1 -0
  108. package/dist/checks/quality/data-integrity/null-safety-config.js +69 -0
  109. package/dist/checks/quality/data-integrity/null-safety-config.js.map +1 -0
  110. package/dist/checks/quality/data-integrity/null-safety-heuristics.d.ts +76 -0
  111. package/dist/checks/quality/data-integrity/null-safety-heuristics.d.ts.map +1 -0
  112. package/dist/checks/quality/data-integrity/null-safety-heuristics.js +276 -0
  113. package/dist/checks/quality/data-integrity/null-safety-heuristics.js.map +1 -0
  114. package/dist/checks/quality/data-integrity/null-safety-prefixes.d.ts +13 -0
  115. package/dist/checks/quality/data-integrity/null-safety-prefixes.d.ts.map +1 -0
  116. package/dist/checks/quality/data-integrity/null-safety-prefixes.js +333 -0
  117. package/dist/checks/quality/data-integrity/null-safety-prefixes.js.map +1 -0
  118. package/dist/checks/quality/data-integrity/null-safety.d.ts +2 -82
  119. package/dist/checks/quality/data-integrity/null-safety.d.ts.map +1 -1
  120. package/dist/checks/quality/data-integrity/null-safety.js +3 -796
  121. package/dist/checks/quality/data-integrity/null-safety.js.map +1 -1
  122. package/dist/checks/quality/frontend/test-only-frontend-modules.d.ts.map +1 -1
  123. package/dist/checks/quality/frontend/test-only-frontend-modules.js +0 -2
  124. package/dist/checks/quality/frontend/test-only-frontend-modules.js.map +1 -1
  125. package/dist/checks/quality/linting/typescript-frontend.d.ts.map +1 -1
  126. package/dist/checks/quality/linting/typescript-frontend.js +1 -0
  127. package/dist/checks/quality/linting/typescript-frontend.js.map +1 -1
  128. package/dist/checks/quality/observability/logger-event-name-format.d.ts.map +1 -1
  129. package/dist/checks/quality/observability/logger-event-name-format.js +0 -1
  130. package/dist/checks/quality/observability/logger-event-name-format.js.map +1 -1
  131. package/dist/checks/quality/observability/no-hardcoded-correlation-id.d.ts.map +1 -1
  132. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js +2 -3
  133. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js.map +1 -1
  134. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.d.ts +8 -0
  135. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.d.ts.map +1 -0
  136. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.js +87 -0
  137. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.js.map +1 -0
  138. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.d.ts +2 -0
  139. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.d.ts.map +1 -0
  140. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.js +51 -0
  141. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.js.map +1 -0
  142. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.d.ts +2 -0
  143. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.d.ts.map +1 -0
  144. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.js +89 -0
  145. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.js.map +1 -0
  146. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.d.ts +5 -0
  147. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.d.ts.map +1 -0
  148. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.js +78 -0
  149. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.js.map +1 -0
  150. package/dist/checks/quality/patterns/__tests__/toctou-fp.test.js +44 -0
  151. package/dist/checks/quality/patterns/__tests__/toctou-fp.test.js.map +1 -1
  152. package/dist/checks/quality/patterns/async-waterfall-analysis.d.ts +17 -0
  153. package/dist/checks/quality/patterns/async-waterfall-analysis.d.ts.map +1 -0
  154. package/dist/checks/quality/patterns/async-waterfall-analysis.js +215 -0
  155. package/dist/checks/quality/patterns/async-waterfall-analysis.js.map +1 -0
  156. package/dist/checks/quality/patterns/async-waterfall-branch-keys.d.ts +6 -0
  157. package/dist/checks/quality/patterns/async-waterfall-branch-keys.d.ts.map +1 -0
  158. package/dist/checks/quality/patterns/async-waterfall-branch-keys.js +54 -0
  159. package/dist/checks/quality/patterns/async-waterfall-branch-keys.js.map +1 -0
  160. package/dist/checks/quality/patterns/async-waterfall-detection.d.ts.map +1 -1
  161. package/dist/checks/quality/patterns/async-waterfall-detection.js +3 -352
  162. package/dist/checks/quality/patterns/async-waterfall-detection.js.map +1 -1
  163. package/dist/checks/quality/patterns/containing-function-name.d.ts +3 -0
  164. package/dist/checks/quality/patterns/containing-function-name.d.ts.map +1 -0
  165. package/dist/checks/quality/patterns/containing-function-name.js +21 -0
  166. package/dist/checks/quality/patterns/containing-function-name.js.map +1 -0
  167. package/dist/checks/quality/patterns/error-handling-quality.d.ts +3 -0
  168. package/dist/checks/quality/patterns/error-handling-quality.d.ts.map +1 -1
  169. package/dist/checks/quality/patterns/error-handling-quality.js +150 -30
  170. package/dist/checks/quality/patterns/error-handling-quality.js.map +1 -1
  171. package/dist/checks/quality/patterns/result-pattern-consistency.d.ts +3 -0
  172. package/dist/checks/quality/patterns/result-pattern-consistency.d.ts.map +1 -1
  173. package/dist/checks/quality/patterns/result-pattern-consistency.js +136 -69
  174. package/dist/checks/quality/patterns/result-pattern-consistency.js.map +1 -1
  175. package/dist/checks/quality/patterns/throws-documentation-analyze.d.ts +14 -0
  176. package/dist/checks/quality/patterns/throws-documentation-analyze.d.ts.map +1 -0
  177. package/dist/checks/quality/patterns/throws-documentation-analyze.js +352 -0
  178. package/dist/checks/quality/patterns/throws-documentation-analyze.js.map +1 -0
  179. package/dist/checks/quality/patterns/throws-documentation-constants.d.ts +15 -0
  180. package/dist/checks/quality/patterns/throws-documentation-constants.d.ts.map +1 -0
  181. package/dist/checks/quality/patterns/throws-documentation-constants.js +94 -0
  182. package/dist/checks/quality/patterns/throws-documentation-constants.js.map +1 -0
  183. package/dist/checks/quality/patterns/throws-documentation.d.ts +1 -11
  184. package/dist/checks/quality/patterns/throws-documentation.d.ts.map +1 -1
  185. package/dist/checks/quality/patterns/throws-documentation.js +4 -472
  186. package/dist/checks/quality/patterns/throws-documentation.js.map +1 -1
  187. package/dist/checks/quality/patterns/toctou-race-condition-classify.d.ts +23 -0
  188. package/dist/checks/quality/patterns/toctou-race-condition-classify.d.ts.map +1 -0
  189. package/dist/checks/quality/patterns/toctou-race-condition-classify.js +125 -0
  190. package/dist/checks/quality/patterns/toctou-race-condition-classify.js.map +1 -0
  191. package/dist/checks/quality/patterns/toctou-race-condition-collection.d.ts +24 -0
  192. package/dist/checks/quality/patterns/toctou-race-condition-collection.d.ts.map +1 -0
  193. package/dist/checks/quality/patterns/toctou-race-condition-collection.js +248 -0
  194. package/dist/checks/quality/patterns/toctou-race-condition-collection.js.map +1 -0
  195. package/dist/checks/quality/patterns/toctou-race-condition-constants.d.ts +32 -0
  196. package/dist/checks/quality/patterns/toctou-race-condition-constants.d.ts.map +1 -0
  197. package/dist/checks/quality/patterns/toctou-race-condition-constants.js +116 -0
  198. package/dist/checks/quality/patterns/toctou-race-condition-constants.js.map +1 -0
  199. package/dist/checks/quality/patterns/toctou-race-condition.d.ts +1 -29
  200. package/dist/checks/quality/patterns/toctou-race-condition.d.ts.map +1 -1
  201. package/dist/checks/quality/patterns/toctou-race-condition.js +11 -536
  202. package/dist/checks/quality/patterns/toctou-race-condition.js.map +1 -1
  203. package/dist/checks/quality/unused-config-options.d.ts.map +1 -1
  204. package/dist/checks/quality/unused-config-options.js +1 -4
  205. package/dist/checks/quality/unused-config-options.js.map +1 -1
  206. package/dist/checks/resilience/__tests__/context-mutation.test.js +8 -0
  207. package/dist/checks/resilience/__tests__/context-mutation.test.js.map +1 -1
  208. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.d.ts +2 -0
  209. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.d.ts.map +1 -0
  210. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.js +98 -0
  211. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.js.map +1 -0
  212. package/dist/checks/resilience/callback-invocation-safe.d.ts.map +1 -1
  213. package/dist/checks/resilience/callback-invocation-safe.js +0 -1
  214. package/dist/checks/resilience/callback-invocation-safe.js.map +1 -1
  215. package/dist/checks/resilience/context-leakage.d.ts.map +1 -1
  216. package/dist/checks/resilience/context-leakage.js +1 -0
  217. package/dist/checks/resilience/context-leakage.js.map +1 -1
  218. package/dist/checks/resilience/context-mutation.d.ts.map +1 -1
  219. package/dist/checks/resilience/context-mutation.js +30 -4
  220. package/dist/checks/resilience/context-mutation.js.map +1 -1
  221. package/dist/checks/resilience/detached-promises-detection.d.ts +7 -0
  222. package/dist/checks/resilience/detached-promises-detection.d.ts.map +1 -0
  223. package/dist/checks/resilience/detached-promises-detection.js +228 -0
  224. package/dist/checks/resilience/detached-promises-detection.js.map +1 -0
  225. package/dist/checks/resilience/detached-promises-sync-constants.d.ts +36 -0
  226. package/dist/checks/resilience/detached-promises-sync-constants.d.ts.map +1 -0
  227. package/dist/checks/resilience/detached-promises-sync-constants.js +299 -0
  228. package/dist/checks/resilience/detached-promises-sync-constants.js.map +1 -0
  229. package/dist/checks/resilience/detached-promises-sync-detection.d.ts +14 -0
  230. package/dist/checks/resilience/detached-promises-sync-detection.d.ts.map +1 -0
  231. package/dist/checks/resilience/detached-promises-sync-detection.js +69 -0
  232. package/dist/checks/resilience/detached-promises-sync-detection.js.map +1 -0
  233. package/dist/checks/resilience/detached-promises.d.ts +1 -14
  234. package/dist/checks/resilience/detached-promises.d.ts.map +1 -1
  235. package/dist/checks/resilience/detached-promises.js +2 -598
  236. package/dist/checks/resilience/detached-promises.js.map +1 -1
  237. package/dist/checks/resilience/no-raw-fetch.d.ts.map +1 -1
  238. package/dist/checks/resilience/no-raw-fetch.js +1 -0
  239. package/dist/checks/resilience/no-raw-fetch.js.map +1 -1
  240. package/dist/checks/resilience/no-unbounded-concurrency.d.ts.map +1 -1
  241. package/dist/checks/resilience/no-unbounded-concurrency.js +1 -0
  242. package/dist/checks/resilience/no-unbounded-concurrency.js.map +1 -1
  243. package/dist/checks/security/sql-injection.d.ts.map +1 -1
  244. package/dist/checks/security/sql-injection.js +0 -1
  245. package/dist/checks/security/sql-injection.js.map +1 -1
  246. package/dist/display/architecture.d.ts.map +1 -1
  247. package/dist/display/architecture.js +1 -0
  248. package/dist/display/architecture.js.map +1 -1
  249. package/dist/display/types.d.ts.map +1 -1
  250. package/dist/display/types.js +0 -1
  251. package/dist/display/types.js.map +1 -1
  252. package/package.json +5 -5
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file file-length-limit -- AST detection requires both an AST visitor pipeline and the merged sync-call constants kept in this file
2
1
  // @fitness-ignore-file unused-config-options -- Config options reserved for future use or environment-specific
3
2
  // @fitness-ignore-file canonical-result-usage -- References Result pattern in comments and regex patterns for detection, not actual Result usage
4
3
  /**
@@ -14,602 +13,8 @@
14
13
  * {@link DetachedPromisesConfig}. The check reads that block via
15
14
  * `getCheckConfig` and merges it into the effective sync-call sets.
16
15
  */
17
- import { defineCheck, getCheckConfig, isTestFile } from '@opensip-cli/fitness';
18
- import { getSharedSourceFile, isInAsyncContext } from '@opensip-cli/lang-typescript';
19
- import * as ts from 'typescript';
20
- /**
21
- * Known synchronous functions that do NOT return promises. Limited to
22
- * generic JS / TS / Node defaults; framework-specific entries live in
23
- * recipe config under `additionalSyncFunctions`.
24
- */
25
- const KNOWN_SYNC_FUNCTIONS = new Set([
26
- // Node.js sync filesystem / process methods
27
- 'execSync',
28
- 'readFileSync',
29
- 'writeFileSync',
30
- 'existsSync',
31
- 'mkdirSync',
32
- 'rmdirSync',
33
- 'readdirSync',
34
- 'statSync',
35
- 'lstatSync',
36
- 'unlinkSync',
37
- 'copyFileSync',
38
- 'renameSync',
39
- 'accessSync',
40
- // Timer clearing/scheduling helpers (sync side)
41
- 'clearTimeout',
42
- 'clearInterval',
43
- 'clearImmediate',
44
- // Console (synchronous)
45
- 'log',
46
- 'time',
47
- 'timeEnd',
48
- // Promise resolution helpers (sync wrappers)
49
- 'reject',
50
- 'resolve',
51
- // Builder / coercion terminators
52
- 'build',
53
- 'toJSON',
54
- 'toString',
55
- 'valueOf',
56
- // Array methods (synchronous)
57
- 'map',
58
- 'filter',
59
- 'reduce',
60
- 'find',
61
- 'findIndex',
62
- 'some',
63
- 'every',
64
- 'includes',
65
- 'indexOf',
66
- 'slice',
67
- 'concat',
68
- 'join',
69
- 'sort',
70
- 'reverse',
71
- 'push',
72
- 'pop',
73
- 'shift',
74
- 'unshift',
75
- 'splice',
76
- 'fill',
77
- 'copyWithin',
78
- 'flat',
79
- 'flatMap',
80
- 'forEach',
81
- // String methods (synchronous)
82
- 'toLowerCase',
83
- 'toUpperCase',
84
- 'trim',
85
- 'trimStart',
86
- 'trimEnd',
87
- 'split',
88
- 'replace',
89
- 'replaceAll',
90
- 'substring',
91
- 'substr',
92
- 'charAt',
93
- 'charCodeAt',
94
- 'codePointAt',
95
- 'startsWith',
96
- 'endsWith',
97
- 'padStart',
98
- 'padEnd',
99
- 'repeat',
100
- 'match',
101
- 'matchAll',
102
- 'search',
103
- 'normalize',
104
- 'localeCompare',
105
- // Object methods (synchronous)
106
- 'keys',
107
- 'values',
108
- 'entries',
109
- 'assign',
110
- 'freeze',
111
- 'seal',
112
- 'fromEntries',
113
- 'create',
114
- 'defineProperty',
115
- 'defineProperties',
116
- 'getOwnPropertyNames',
117
- 'getOwnPropertyDescriptor',
118
- 'getPrototypeOf',
119
- 'setPrototypeOf',
120
- 'hasOwnProperty',
121
- 'isPrototypeOf',
122
- 'propertyIsEnumerable',
123
- // JSON methods
124
- 'stringify',
125
- 'parse',
126
- // Math methods
127
- 'floor',
128
- 'ceil',
129
- 'round',
130
- 'max',
131
- 'min',
132
- 'abs',
133
- 'random',
134
- 'pow',
135
- 'sqrt',
136
- 'sign',
137
- 'trunc',
138
- // Set/Map/WeakMap/WeakSet methods (synchronous)
139
- 'add',
140
- 'delete',
141
- 'has',
142
- 'clear',
143
- 'get',
144
- 'set',
145
- 'size',
146
- // EventEmitter methods (synchronous)
147
- 'emit',
148
- 'on',
149
- 'off',
150
- 'once',
151
- 'addListener',
152
- 'removeListener',
153
- 'removeAllListeners',
154
- 'prependListener',
155
- 'prependOnceListener',
156
- 'eventNames',
157
- 'listeners',
158
- 'listenerCount',
159
- 'rawListeners',
160
- // Date methods (synchronous)
161
- 'getTime',
162
- 'getDate',
163
- 'getDay',
164
- 'getFullYear',
165
- 'getHours',
166
- 'getMinutes',
167
- 'getSeconds',
168
- 'getMilliseconds',
169
- 'setTime',
170
- 'setDate',
171
- 'setFullYear',
172
- 'setHours',
173
- 'setMinutes',
174
- 'setSeconds',
175
- 'setMilliseconds',
176
- 'toISOString',
177
- 'toDateString',
178
- 'toTimeString',
179
- 'toLocaleDateString',
180
- 'toLocaleTimeString',
181
- 'toLocaleString',
182
- 'now',
183
- ]);
184
- /**
185
- * Known synchronous receiver identifiers — generic JS / Node namespaces.
186
- * When the receiver (object before the dot) matches these, the call is
187
- * likely synchronous. Framework-specific receivers (Fastify, Pyroscope,
188
- * OTel propagation, Vitest, etc.) live in recipe config under
189
- * `additionalSyncReceivers`.
190
- */
191
- const KNOWN_SYNC_RECEIVERS = new Set([
192
- // Logging/output (synchronous — write to buffer). `log` is the common
193
- // logger-variable shorthand; the receiver-pattern list below only matches
194
- // names containing the literal `logger`, so `log.info(...)` (a void logger
195
- // call) would otherwise be a false positive. Exact match avoids the
196
- // substring breadth of adding `log` to the pattern list (catalog/dialog).
197
- 'console',
198
- 'log',
199
- // Node.js built-ins (synchronous APIs)
200
- 'path',
201
- 'fs',
202
- 'process',
203
- // JavaScript built-in objects (synchronous)
204
- 'JSON',
205
- 'Math',
206
- 'Object',
207
- 'Array',
208
- 'String',
209
- 'Number',
210
- 'Date',
211
- 'RegExp',
212
- 'Symbol',
213
- 'Boolean',
214
- 'Error',
215
- 'Map',
216
- 'Set',
217
- 'WeakMap',
218
- 'WeakSet',
219
- 'Reflect',
220
- 'Proxy',
221
- 'Intl',
222
- ]);
223
- /**
224
- * Substrings to match against receiver variable names (case-insensitive).
225
- * If a receiver name contains any of these, the call is likely synchronous.
226
- */
227
- const KNOWN_SYNC_RECEIVER_PATTERNS = [
228
- 'logger',
229
- 'writer',
230
- 'emitter',
231
- 'registry',
232
- 'cache',
233
- 'store',
234
- 'queue',
235
- 'buffer',
236
- 'timer',
237
- 'counter',
238
- 'gauge',
239
- // The scope-owned DiagnosticsBus is a synchronous event sink (its `event` /
240
- // `counter` / `emit` push onto an in-memory array and return void), exactly
241
- // like a logger/emitter — `diagnostics.event(...)` is never a detached promise.
242
- 'diagnostics',
243
- ];
244
- /**
245
- * File path patterns that indicate CLI commands or route registrations.
246
- * These files are dominated by sync calls in async contexts and produce
247
- * excessive false positives.
248
- */
249
- const FILE_SKIP_PATTERNS = [
250
- '/commands/',
251
- '/routes/',
252
- '/route-handlers/',
253
- '/handlers/',
254
- '/plugins/',
255
- 'register-routes',
256
- 'register-plugins',
257
- ];
258
- /**
259
- * Method-name prefixes that indicate synchronous calls. Limited to broadly
260
- * applicable JS conventions — boolean predicates, property accessors and
261
- * mutators, EventEmitter-style. Project-specific prefixes (e.g. `wire`,
262
- * `enforce`, `init` for DBOS step `.init`) come from the recipe via
263
- * `additionalSyncPrefixes`.
264
- */
265
- const KNOWN_SYNC_PREFIXES = [
266
- // Property accessors & mutators
267
- 'set',
268
- 'get',
269
- 'add',
270
- 'remove',
271
- 'delete',
272
- 'clear',
273
- 'reset',
274
- // Boolean predicates
275
- 'is',
276
- 'has',
277
- 'can',
278
- 'should',
279
- 'was',
280
- 'will',
281
- // Assertions — `assert*` functions (Node `assert`, TS assertion signatures,
282
- // test-framework asserts) throw or return void synchronously by convention.
283
- 'assert',
284
- // EventEmitter-style
285
- 'emit',
286
- 'on',
287
- 'off',
288
- 'once',
289
- 'dispatch',
290
- ];
291
- /**
292
- * Method name suffixes that indicate synchronous calls.
293
- * Methods ending with these suffixes are synchronous by convention.
294
- */
295
- const KNOWN_SYNC_SUFFIXES = ['Sync'];
296
- /**
297
- * Fire-and-forget patterns that are intentionally not awaited.
298
- * These are scheduler functions that run callbacks async.
299
- */
300
- const FIRE_AND_FORGET_PATTERNS = new Set([
301
- 'setImmediate',
302
- 'setTimeout',
303
- 'setInterval',
304
- 'nextTick',
305
- 'queueMicrotask',
306
- ]);
307
- /**
308
- * Build effective sync-call lookup sets by merging built-in defaults with the
309
- * recipe-provided augmentation for `detached-promises`.
310
- */
311
- function buildEffectiveSyncSets() {
312
- const cfg = getCheckConfig('detached-promises');
313
- const fns = new Set(KNOWN_SYNC_FUNCTIONS);
314
- for (const name of cfg.additionalSyncFunctions ?? [])
315
- fns.add(name);
316
- const recvs = new Set(KNOWN_SYNC_RECEIVERS);
317
- for (const name of cfg.additionalSyncReceivers ?? [])
318
- recvs.add(name);
319
- const prefixes = [...KNOWN_SYNC_PREFIXES, ...(cfg.additionalSyncPrefixes ?? [])];
320
- return { syncFunctions: fns, syncReceivers: recvs, syncPrefixes: prefixes };
321
- }
322
- /**
323
- * Check if a method call expression is to a known synchronous receiver or method.
324
- */
325
- // eslint-disable-next-line sonarjs/cognitive-complexity -- multi-pattern dispatcher: distinguishes receivers, methods, and aliased members across N known sync APIs
326
- function isKnownSyncMethodCall(expr, sets) {
327
- const methodName = expr.name.text;
328
- const receiverExpr = expr.expression;
329
- // Check if method is known sync, fire-and-forget, or matches sync prefix
330
- if (sets.syncFunctions.has(methodName) ||
331
- FIRE_AND_FORGET_PATTERNS.has(methodName) ||
332
- matchesSyncNamePattern(methodName, sets)) {
333
- return true;
334
- }
335
- // Check if receiver is known sync object: logger.info(), path.join(), etc.
336
- if (ts.isIdentifier(receiverExpr)) {
337
- const receiverName = receiverExpr.text;
338
- if (sets.syncReceivers.has(receiverName)) {
339
- return true;
340
- }
341
- // Handle this.logger.info() via logger at end
342
- if (receiverName === 'this') {
343
- return false;
344
- }
345
- }
346
- // Handle nested: this.logger.info(), this.config.get(), this.callbacks.onUpdate()
347
- if (ts.isPropertyAccessExpression(receiverExpr)) {
348
- const nestedName = receiverExpr.name.text;
349
- if (sets.syncReceivers.has(nestedName)) {
350
- return true;
351
- }
352
- // Also walk to the root identifier of the chain. e.g. Pyroscope.default.start()
353
- // — the call's receiver is `Pyroscope.default` (PropertyAccess); the rightmost
354
- // segment is `default`, but the SDK identity is `Pyroscope`. Walk left to find it.
355
- let cursor = receiverExpr.expression;
356
- while (cursor && ts.isPropertyAccessExpression(cursor)) {
357
- cursor = cursor.expression;
358
- }
359
- if (ts.isIdentifier(cursor) && sets.syncReceivers.has(cursor.text)) {
360
- return true;
361
- }
362
- }
363
- // Check receiver name pattern matching (e.g. myLogger.info(), cliWriter.output())
364
- if (ts.isIdentifier(receiverExpr)) {
365
- const receiverName = receiverExpr.text.toLowerCase();
366
- if (KNOWN_SYNC_RECEIVER_PATTERNS.some((pattern) => receiverName.includes(pattern))) {
367
- return true;
368
- }
369
- }
370
- return false;
371
- }
372
- /**
373
- * Check if a function/method name matches a known synchronous prefix or suffix.
374
- */
375
- function matchesSyncNamePattern(name, sets) {
376
- if (sets.syncPrefixes.some((prefix) => name.startsWith(prefix)))
377
- return true;
378
- if (KNOWN_SYNC_SUFFIXES.some((suffix) => name.endsWith(suffix)))
379
- return true;
380
- return false;
381
- }
382
- /**
383
- * Check if a call expression is to a known synchronous function
384
- */
385
- function isKnownSyncCall(node, sets) {
386
- const expr = node.expression;
387
- // super() calls — constructor delegation, always synchronous
388
- if (expr.kind === ts.SyntaxKind.SuperKeyword) {
389
- return true;
390
- }
391
- // Direct function call: functionName()
392
- if (ts.isIdentifier(expr)) {
393
- const name = expr.text;
394
- if (sets.syncFunctions.has(name) ||
395
- FIRE_AND_FORGET_PATTERNS.has(name) ||
396
- matchesSyncNamePattern(name, sets)) {
397
- return true;
398
- }
399
- }
400
- // Method call: receiver.method()
401
- if (ts.isPropertyAccessExpression(expr)) {
402
- return isKnownSyncMethodCall(expr, sets);
403
- }
404
- return false;
405
- }
406
- /**
407
- * Check if a call expression has explicit promise handling via .then/.catch/.finally chain
408
- */
409
- function hasPromiseChainHandling(node) {
410
- const expr = node.expression;
411
- if (!ts.isCallExpression(expr))
412
- return false;
413
- // Check if the call itself is a .then/.catch/.finally method
414
- if (ts.isPropertyAccessExpression(expr.expression)) {
415
- const methodName = expr.expression.name.text;
416
- if (methodName === 'then' || methodName === 'catch' || methodName === 'finally') {
417
- return true;
418
- }
419
- }
420
- return false;
421
- }
422
- /**
423
- * Check if a statement is a floating expression (not assigned, awaited, or returned)
424
- */
425
- function isFloatingExpression(node) {
426
- const expr = node.expression;
427
- // Check for void prefix: void doSomething()
428
- if (expr.kind === ts.SyntaxKind.VoidExpression) {
429
- return false; // Explicitly voided
430
- }
431
- // Must be a call expression
432
- if (!ts.isCallExpression(expr))
433
- return false;
434
- // Pattern: `(await x.foo()).bar()` and similar paren-wrapped awaits with a chained call.
435
- // The outer call is a CallExpression whose callee descends through PropertyAccess/Element
436
- // access into a ParenthesizedExpression wrapping an AwaitExpression. The await is the
437
- // real promise consumer; the chained sync call after it is not a floating promise.
438
- if (containsAwaitedReceiver(expr))
439
- return false;
440
- // Pattern: `unwrap(await x.foo())`, `assertOk(await fn())`, `expectSuccess(await ...)`.
441
- // The outer call wraps an awaited promise — a sync helper that consumes a Result/value.
442
- // The await is the real promise consumer; the floating outer call only operates on the
443
- // already-resolved value. Marking the statement as floating produces false positives at
444
- // every boundary that uses a sync result-unwrap helper.
445
- if (hasAwaitedArgument(expr))
446
- return false;
447
- return true;
448
- }
449
- /**
450
- * Return true if any direct argument of the call is an `await` expression
451
- * (or an `await` wrapped in parentheses / a non-null assertion). A floating
452
- * `outer(await inner())` statement has the await as its real promise
453
- * consumer; the outer sync wrapper is not a detached promise.
454
- */
455
- function hasAwaitedArgument(call) {
456
- for (const arg of call.arguments) {
457
- if (isAwaitedExpression(arg))
458
- return true;
459
- }
460
- return false;
461
- }
462
- /**
463
- * Walk through paren-wrap / non-null-assertion noise to determine whether
464
- * the underlying expression is an `await`.
465
- */
466
- function isAwaitedExpression(node) {
467
- let current = node;
468
- while (current) {
469
- if (ts.isAwaitExpression(current))
470
- return true;
471
- if (ts.isParenthesizedExpression(current)) {
472
- current = current.expression;
473
- continue;
474
- }
475
- if (ts.isNonNullExpression(current)) {
476
- current = current.expression;
477
- continue;
478
- }
479
- break;
480
- }
481
- return false;
482
- }
483
- /**
484
- * Walk a call expression's receiver chain and return true if it descends into
485
- * a `(await X)` parenthesized await. Handles `(await x.f()).g()` and longer
486
- * tails like `(await x.f()).g().h`.
487
- */
488
- function containsAwaitedReceiver(call) {
489
- let current = call.expression;
490
- while (current) {
491
- if (ts.isParenthesizedExpression(current)) {
492
- const inner = current.expression;
493
- if (ts.isAwaitExpression(inner))
494
- return true;
495
- current = inner;
496
- continue;
497
- }
498
- if (ts.isPropertyAccessExpression(current) || ts.isElementAccessExpression(current)) {
499
- current = current.expression;
500
- continue;
501
- }
502
- if (ts.isCallExpression(current)) {
503
- current = current.expression;
504
- continue;
505
- }
506
- if (ts.isNonNullExpression(current)) {
507
- current = current.expression;
508
- continue;
509
- }
510
- break;
511
- }
512
- return false;
513
- }
514
- /**
515
- * Check if a `this.methodName()` call targets a method defined as synchronous
516
- * in the same class. Walks up to the enclosing class declaration, finds a
517
- * method with the matching name, and returns true only when it lacks the
518
- * `async` modifier.
519
- */
520
- function isDefinedAsSyncInSameFile(expr) {
521
- // Must be this.method() pattern
522
- if (!ts.isPropertyAccessExpression(expr.expression))
523
- return false;
524
- const propAccess = expr.expression;
525
- if (propAccess.expression.kind !== ts.SyntaxKind.ThisKeyword)
526
- return false;
527
- const methodName = propAccess.name.text;
528
- // Walk up to the enclosing class
529
- let current = expr.parent;
530
- while (current && !ts.isClassDeclaration(current) && !ts.isClassExpression(current)) {
531
- current = current.parent;
532
- }
533
- if (!current)
534
- return false;
535
- // Look for a method with the same name in the class
536
- for (const member of current.members) {
537
- if (!ts.isMethodDeclaration(member))
538
- continue;
539
- if (!ts.isIdentifier(member.name))
540
- continue;
541
- if (member.name.text !== methodName)
542
- continue;
543
- // Found the method — check if it is NOT async
544
- const isAsync = member.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword);
545
- return !isAsync;
546
- }
547
- return false;
548
- }
549
- /**
550
- * Analyze a file for detached promise issues
551
- */
552
- function analyzeFileForDetachedPromises(content, filePath) {
553
- const violations = [];
554
- // Skip CLI command files and route registrations — dominated by sync calls in async contexts
555
- if (FILE_SKIP_PATTERNS.some((pattern) => filePath.includes(pattern))) {
556
- return violations;
557
- }
558
- // Build the effective sync-call sets once per file from defaults + recipe config.
559
- const sets = buildEffectiveSyncSets();
560
- try {
561
- // @lazy-ok -- 'await' appears in string literals, not actual await expression
562
- const sourceFile = getSharedSourceFile(filePath, content);
563
- if (!sourceFile)
564
- return [];
565
- const visit = (node) => {
566
- ts.forEachChild(node, visit);
567
- // Only check expression statements (standalone calls ending with ;)
568
- if (!ts.isExpressionStatement(node))
569
- return;
570
- // Skip void expressions entirely (explicitly fire-and-forget)
571
- if (node.expression.kind === ts.SyntaxKind.VoidExpression)
572
- return;
573
- // Skip expressions with .then/.catch/.finally chains (explicitly handled)
574
- if (hasPromiseChainHandling(node))
575
- return;
576
- // Must be a call expression
577
- const expr = node.expression;
578
- if (!ts.isCallExpression(expr))
579
- return;
580
- // Must be inside an async context
581
- if (!isInAsyncContext(node))
582
- return;
583
- // Skip known synchronous calls
584
- if (isKnownSyncCall(expr, sets))
585
- return;
586
- // Skip this.method() calls where method is defined as sync in the same class
587
- if (isDefinedAsSyncInSameFile(expr))
588
- return;
589
- // Skip if this is a floating expression that's not a detached promise
590
- if (!isFloatingExpression(node))
591
- return;
592
- const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
593
- const lineNum = line + 1;
594
- const matchText = node.getText(sourceFile);
595
- violations.push({
596
- line: lineNum,
597
- column: character + 1,
598
- message: 'Possible detached promise (missing await)',
599
- severity: 'warning',
600
- type: 'detached-promise',
601
- suggestion: 'Add await to ensure the promise is handled, or use void with error handling if intentionally fire-and-forget',
602
- match: matchText,
603
- filePath,
604
- });
605
- };
606
- visit(sourceFile);
607
- }
608
- catch {
609
- // @swallow-ok Skip files that fail to parse
610
- }
611
- return violations;
612
- }
16
+ import { defineCheck, isTestFile } from '@opensip-cli/fitness';
17
+ import { analyzeFileForDetachedPromises } from './detached-promises-detection.js';
613
18
  /**
614
19
  * Check: resilience/detached-promises
615
20
  *
@@ -641,7 +46,6 @@ export const detachedPromises = defineCheck({
641
46
  tags: ['resilience', 'async', 'promises'],
642
47
  fileTypes: ['ts'],
643
48
  analyze(content, filePath) {
644
- // Skip test files — detached promises in tests are low-risk
645
49
  if (isTestFile(filePath))
646
50
  return [];
647
51
  return analyzeFileForDetachedPromises(content, filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"detached-promises.js","sourceRoot":"","sources":["../../../src/checks/resilience/detached-promises.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detached-promises.js","sourceRoot":"","sources":["../../../src/checks/resilience/detached-promises.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,iJAAiJ;AACjJ;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAuB,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;IAC1C,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,mBAAmB;IACzB,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,MAAM;IAClB,WAAW,EAAE,qEAAqE;IAClF,eAAe,EAAE;;;;;;;;;gGAS6E;IAC9F,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC;IACzC,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,OAAO,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-raw-fetch.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-raw-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAkBD;;;;GAIG;AACH,eAAO,MAAM,UAAU,sCAmGrB,CAAC"}
1
+ {"version":3,"file":"no-raw-fetch.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-raw-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAkBD;;;;GAIG;AACH,eAAO,MAAM,UAAU,sCAoGrB,CAAC"}
@@ -26,6 +26,7 @@ const RAW_FETCH_PATTERN = /(?<![\w$.])fetch\s{0,10}\(/g;
26
26
  export const noRawFetch = defineCheck({
27
27
  id: 'cfeba2d8-0f62-4b64-b625-f5ba8a0f3b11',
28
28
  slug: 'no-raw-fetch',
29
+ contentFilter: 'strip-strings',
29
30
  fileTypes: ['ts', 'tsx', 'js', 'jsx'],
30
31
  description: 'Detect direct fetch() calls that should use wrapped HTTP clients',
31
32
  longDescription: `**Purpose:** Enforces use of the platform HTTP client wrapper instead of raw \`fetch()\` calls.
@@ -1 +1 @@
1
- {"version":3,"file":"no-raw-fetch.js","sourceRoot":"","sources":["../../../src/checks/resilience/no-raw-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-raw-fetch.js","sourceRoot":"","sources":["../../../src/checks/resilience/no-raw-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAiB9B;;;;;;;;;;;;;GAaG;AACH,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;IACpC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,cAAc;IACpB,aAAa,EAAE,eAAe;IAC9B,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IACrC,WAAW,EAAE,kEAAkE;IAC/E,eAAe,EAAE;;;;;;;;oFAQiE;IAClF,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;IAErC,OAAO,CAAC,OAAe,EAAE,QAAgB;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,mDAAmD;QACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,iFAAiF;QACjF,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjF,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,2BAA2B;QAC3B,MAAM,GAAG,GAAG,cAAc,CAAmB,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,+EAA+E;QAC/E,IACE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC/B,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,kEAAkE;QAClE,iEAAiE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,+DAA+D;QAC/D,iCAAiC;QACjC,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACnF,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,gBAAgB,GACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;YAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,gBAAgB,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;YACtD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAEzB,qBAAqB;YACrB,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO,GAAG,CAAC;oBACjB,MAAM,EAAE,KAAK,CAAC,KAAK;oBACnB,OAAO,EAAE,4BAA4B;oBACrC,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,0GAA0G;oBAC5G,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBACf,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-unbounded-concurrency.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-unbounded-concurrency.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkCH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sCAqFjC,CAAC"}
1
+ {"version":3,"file":"no-unbounded-concurrency.d.ts","sourceRoot":"","sources":["../../../src/checks/resilience/no-unbounded-concurrency.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkCH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sCAsFjC,CAAC"}
@@ -39,6 +39,7 @@ function hasBoundedConcurrencyPattern(content) {
39
39
  export const noUnboundedConcurrency = defineCheck({
40
40
  id: 'fc2a0fee-8374-432b-a7ef-763aea867855',
41
41
  slug: 'no-unbounded-concurrency',
42
+ contentFilter: 'strip-strings',
42
43
  description: 'Detect Promise.all with unbounded concurrency',
43
44
  longDescription: `**Purpose:** Prevents unbounded parallel execution that can overwhelm downstream services or exhaust system resources.
44
45