@opensip-cli/checks-typescript 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 (244) 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 -3
  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/code-structure/__tests__/duplicate-utility-lang-substrate.test.d.ts +5 -0
  71. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.d.ts.map +1 -0
  72. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.js +17 -0
  73. package/dist/checks/quality/code-structure/__tests__/duplicate-utility-lang-substrate.test.js.map +1 -0
  74. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.d.ts +18 -0
  75. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.d.ts.map +1 -0
  76. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.js +36 -0
  77. package/dist/checks/quality/code-structure/duplicate-utility-functions-config.js.map +1 -0
  78. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.d.ts +15 -0
  79. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.d.ts.map +1 -0
  80. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.js +288 -0
  81. package/dist/checks/quality/code-structure/duplicate-utility-functions-helpers.js.map +1 -0
  82. package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts +1 -26
  83. package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts.map +1 -1
  84. package/dist/checks/quality/code-structure/duplicate-utility-functions.js +3 -407
  85. package/dist/checks/quality/code-structure/duplicate-utility-functions.js.map +1 -1
  86. package/dist/checks/quality/data-integrity/__tests__/null-safety-fp.test.js +39 -2
  87. package/dist/checks/quality/data-integrity/__tests__/null-safety-fp.test.js.map +1 -1
  88. package/dist/checks/quality/data-integrity/array-validation-detectors.d.ts +17 -0
  89. package/dist/checks/quality/data-integrity/array-validation-detectors.d.ts.map +1 -0
  90. package/dist/checks/quality/data-integrity/array-validation-detectors.js +184 -0
  91. package/dist/checks/quality/data-integrity/array-validation-detectors.js.map +1 -0
  92. package/dist/checks/quality/data-integrity/array-validation.d.ts +0 -2
  93. package/dist/checks/quality/data-integrity/array-validation.d.ts.map +1 -1
  94. package/dist/checks/quality/data-integrity/array-validation.js +2 -360
  95. package/dist/checks/quality/data-integrity/array-validation.js.map +1 -1
  96. package/dist/checks/quality/data-integrity/database-schema-validation.d.ts.map +1 -1
  97. package/dist/checks/quality/data-integrity/database-schema-validation.js +0 -1
  98. package/dist/checks/quality/data-integrity/database-schema-validation.js.map +1 -1
  99. package/dist/checks/quality/data-integrity/null-safety-analyze.d.ts +33 -0
  100. package/dist/checks/quality/data-integrity/null-safety-analyze.d.ts.map +1 -0
  101. package/dist/checks/quality/data-integrity/null-safety-analyze.js +164 -0
  102. package/dist/checks/quality/data-integrity/null-safety-analyze.js.map +1 -0
  103. package/dist/checks/quality/data-integrity/null-safety-config.d.ts +50 -0
  104. package/dist/checks/quality/data-integrity/null-safety-config.d.ts.map +1 -0
  105. package/dist/checks/quality/data-integrity/null-safety-config.js +69 -0
  106. package/dist/checks/quality/data-integrity/null-safety-config.js.map +1 -0
  107. package/dist/checks/quality/data-integrity/null-safety-heuristics.d.ts +76 -0
  108. package/dist/checks/quality/data-integrity/null-safety-heuristics.d.ts.map +1 -0
  109. package/dist/checks/quality/data-integrity/null-safety-heuristics.js +276 -0
  110. package/dist/checks/quality/data-integrity/null-safety-heuristics.js.map +1 -0
  111. package/dist/checks/quality/data-integrity/null-safety-prefixes.d.ts +13 -0
  112. package/dist/checks/quality/data-integrity/null-safety-prefixes.d.ts.map +1 -0
  113. package/dist/checks/quality/data-integrity/null-safety-prefixes.js +333 -0
  114. package/dist/checks/quality/data-integrity/null-safety-prefixes.js.map +1 -0
  115. package/dist/checks/quality/data-integrity/null-safety.d.ts +2 -82
  116. package/dist/checks/quality/data-integrity/null-safety.d.ts.map +1 -1
  117. package/dist/checks/quality/data-integrity/null-safety.js +3 -796
  118. package/dist/checks/quality/data-integrity/null-safety.js.map +1 -1
  119. package/dist/checks/quality/frontend/test-only-frontend-modules.d.ts.map +1 -1
  120. package/dist/checks/quality/frontend/test-only-frontend-modules.js +0 -2
  121. package/dist/checks/quality/frontend/test-only-frontend-modules.js.map +1 -1
  122. package/dist/checks/quality/linting/typescript-frontend.d.ts.map +1 -1
  123. package/dist/checks/quality/linting/typescript-frontend.js +1 -0
  124. package/dist/checks/quality/linting/typescript-frontend.js.map +1 -1
  125. package/dist/checks/quality/observability/logger-event-name-format.d.ts.map +1 -1
  126. package/dist/checks/quality/observability/logger-event-name-format.js +0 -1
  127. package/dist/checks/quality/observability/logger-event-name-format.js.map +1 -1
  128. package/dist/checks/quality/observability/no-hardcoded-correlation-id.d.ts.map +1 -1
  129. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js +2 -3
  130. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js.map +1 -1
  131. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.d.ts +8 -0
  132. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.d.ts.map +1 -0
  133. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.js +87 -0
  134. package/dist/checks/quality/patterns/__tests__/async-waterfall-sequential.test.js.map +1 -0
  135. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.d.ts +2 -0
  136. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.d.ts.map +1 -0
  137. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.js +51 -0
  138. package/dist/checks/quality/patterns/__tests__/error-handling-probes.test.js.map +1 -0
  139. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.d.ts +2 -0
  140. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.d.ts.map +1 -0
  141. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.js +89 -0
  142. package/dist/checks/quality/patterns/__tests__/result-pattern-registration-guards.test.js.map +1 -0
  143. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.d.ts +5 -0
  144. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.d.ts.map +1 -0
  145. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.js +78 -0
  146. package/dist/checks/quality/patterns/__tests__/throws-documentation-analyze.test.js.map +1 -0
  147. package/dist/checks/quality/patterns/__tests__/toctou-fp.test.js +44 -0
  148. package/dist/checks/quality/patterns/__tests__/toctou-fp.test.js.map +1 -1
  149. package/dist/checks/quality/patterns/async-waterfall-analysis.d.ts +17 -0
  150. package/dist/checks/quality/patterns/async-waterfall-analysis.d.ts.map +1 -0
  151. package/dist/checks/quality/patterns/async-waterfall-analysis.js +215 -0
  152. package/dist/checks/quality/patterns/async-waterfall-analysis.js.map +1 -0
  153. package/dist/checks/quality/patterns/async-waterfall-branch-keys.d.ts +6 -0
  154. package/dist/checks/quality/patterns/async-waterfall-branch-keys.d.ts.map +1 -0
  155. package/dist/checks/quality/patterns/async-waterfall-branch-keys.js +54 -0
  156. package/dist/checks/quality/patterns/async-waterfall-branch-keys.js.map +1 -0
  157. package/dist/checks/quality/patterns/async-waterfall-detection.d.ts.map +1 -1
  158. package/dist/checks/quality/patterns/async-waterfall-detection.js +3 -352
  159. package/dist/checks/quality/patterns/async-waterfall-detection.js.map +1 -1
  160. package/dist/checks/quality/patterns/containing-function-name.d.ts +3 -0
  161. package/dist/checks/quality/patterns/containing-function-name.d.ts.map +1 -0
  162. package/dist/checks/quality/patterns/containing-function-name.js +21 -0
  163. package/dist/checks/quality/patterns/containing-function-name.js.map +1 -0
  164. package/dist/checks/quality/patterns/error-handling-quality.d.ts +3 -0
  165. package/dist/checks/quality/patterns/error-handling-quality.d.ts.map +1 -1
  166. package/dist/checks/quality/patterns/error-handling-quality.js +150 -30
  167. package/dist/checks/quality/patterns/error-handling-quality.js.map +1 -1
  168. package/dist/checks/quality/patterns/result-pattern-consistency.d.ts +3 -0
  169. package/dist/checks/quality/patterns/result-pattern-consistency.d.ts.map +1 -1
  170. package/dist/checks/quality/patterns/result-pattern-consistency.js +136 -69
  171. package/dist/checks/quality/patterns/result-pattern-consistency.js.map +1 -1
  172. package/dist/checks/quality/patterns/throws-documentation-analyze.d.ts +14 -0
  173. package/dist/checks/quality/patterns/throws-documentation-analyze.d.ts.map +1 -0
  174. package/dist/checks/quality/patterns/throws-documentation-analyze.js +352 -0
  175. package/dist/checks/quality/patterns/throws-documentation-analyze.js.map +1 -0
  176. package/dist/checks/quality/patterns/throws-documentation-constants.d.ts +15 -0
  177. package/dist/checks/quality/patterns/throws-documentation-constants.d.ts.map +1 -0
  178. package/dist/checks/quality/patterns/throws-documentation-constants.js +94 -0
  179. package/dist/checks/quality/patterns/throws-documentation-constants.js.map +1 -0
  180. package/dist/checks/quality/patterns/throws-documentation.d.ts +1 -11
  181. package/dist/checks/quality/patterns/throws-documentation.d.ts.map +1 -1
  182. package/dist/checks/quality/patterns/throws-documentation.js +4 -472
  183. package/dist/checks/quality/patterns/throws-documentation.js.map +1 -1
  184. package/dist/checks/quality/patterns/toctou-race-condition-classify.d.ts +23 -0
  185. package/dist/checks/quality/patterns/toctou-race-condition-classify.d.ts.map +1 -0
  186. package/dist/checks/quality/patterns/toctou-race-condition-classify.js +125 -0
  187. package/dist/checks/quality/patterns/toctou-race-condition-classify.js.map +1 -0
  188. package/dist/checks/quality/patterns/toctou-race-condition-collection.d.ts +24 -0
  189. package/dist/checks/quality/patterns/toctou-race-condition-collection.d.ts.map +1 -0
  190. package/dist/checks/quality/patterns/toctou-race-condition-collection.js +248 -0
  191. package/dist/checks/quality/patterns/toctou-race-condition-collection.js.map +1 -0
  192. package/dist/checks/quality/patterns/toctou-race-condition-constants.d.ts +32 -0
  193. package/dist/checks/quality/patterns/toctou-race-condition-constants.d.ts.map +1 -0
  194. package/dist/checks/quality/patterns/toctou-race-condition-constants.js +115 -0
  195. package/dist/checks/quality/patterns/toctou-race-condition-constants.js.map +1 -0
  196. package/dist/checks/quality/patterns/toctou-race-condition.d.ts +1 -29
  197. package/dist/checks/quality/patterns/toctou-race-condition.d.ts.map +1 -1
  198. package/dist/checks/quality/patterns/toctou-race-condition.js +11 -536
  199. package/dist/checks/quality/patterns/toctou-race-condition.js.map +1 -1
  200. package/dist/checks/quality/unused-config-options.d.ts.map +1 -1
  201. package/dist/checks/quality/unused-config-options.js +0 -4
  202. package/dist/checks/quality/unused-config-options.js.map +1 -1
  203. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.d.ts +2 -0
  204. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.d.ts.map +1 -0
  205. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.js +98 -0
  206. package/dist/checks/resilience/__tests__/detached-promises-sync-detection.test.js.map +1 -0
  207. package/dist/checks/resilience/callback-invocation-safe.d.ts.map +1 -1
  208. package/dist/checks/resilience/callback-invocation-safe.js +0 -1
  209. package/dist/checks/resilience/callback-invocation-safe.js.map +1 -1
  210. package/dist/checks/resilience/context-leakage.d.ts.map +1 -1
  211. package/dist/checks/resilience/context-leakage.js +1 -0
  212. package/dist/checks/resilience/context-leakage.js.map +1 -1
  213. package/dist/checks/resilience/detached-promises-detection.d.ts +7 -0
  214. package/dist/checks/resilience/detached-promises-detection.d.ts.map +1 -0
  215. package/dist/checks/resilience/detached-promises-detection.js +228 -0
  216. package/dist/checks/resilience/detached-promises-detection.js.map +1 -0
  217. package/dist/checks/resilience/detached-promises-sync-constants.d.ts +36 -0
  218. package/dist/checks/resilience/detached-promises-sync-constants.d.ts.map +1 -0
  219. package/dist/checks/resilience/detached-promises-sync-constants.js +299 -0
  220. package/dist/checks/resilience/detached-promises-sync-constants.js.map +1 -0
  221. package/dist/checks/resilience/detached-promises-sync-detection.d.ts +14 -0
  222. package/dist/checks/resilience/detached-promises-sync-detection.d.ts.map +1 -0
  223. package/dist/checks/resilience/detached-promises-sync-detection.js +69 -0
  224. package/dist/checks/resilience/detached-promises-sync-detection.js.map +1 -0
  225. package/dist/checks/resilience/detached-promises.d.ts +1 -14
  226. package/dist/checks/resilience/detached-promises.d.ts.map +1 -1
  227. package/dist/checks/resilience/detached-promises.js +2 -598
  228. package/dist/checks/resilience/detached-promises.js.map +1 -1
  229. package/dist/checks/resilience/no-raw-fetch.d.ts.map +1 -1
  230. package/dist/checks/resilience/no-raw-fetch.js +1 -0
  231. package/dist/checks/resilience/no-raw-fetch.js.map +1 -1
  232. package/dist/checks/resilience/no-unbounded-concurrency.d.ts.map +1 -1
  233. package/dist/checks/resilience/no-unbounded-concurrency.js +1 -0
  234. package/dist/checks/resilience/no-unbounded-concurrency.js.map +1 -1
  235. package/dist/checks/security/sql-injection.d.ts.map +1 -1
  236. package/dist/checks/security/sql-injection.js +0 -1
  237. package/dist/checks/security/sql-injection.js.map +1 -1
  238. package/dist/display/architecture.d.ts.map +1 -1
  239. package/dist/display/architecture.js +1 -0
  240. package/dist/display/architecture.js.map +1 -1
  241. package/dist/display/types.d.ts.map +1 -1
  242. package/dist/display/types.js +0 -1
  243. package/dist/display/types.js.map +1 -1
  244. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"array-validation.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/array-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-validation.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/array-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema-validation.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/database-schema-validation.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAyYH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,sCAsBnC,CAAC"}
1
+ {"version":3,"file":"database-schema-validation.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/database-schema-validation.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAyYH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,sCAsBnC,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 unused-config-options -- Config options reserved for future use or environment-specific
3
2
  /**
4
3
  * @fileoverview Database Schema Validation check
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema-validation.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/database-schema-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-schema-validation.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/database-schema-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview Null-safety analysis — convention and type-aware detectors.
3
+ */
4
+ import { type CheckViolation, type FileAccessor } from '@opensip-cli/fitness';
5
+ import { type TypeCheckedProgram } from '@opensip-cli/lang-typescript';
6
+ import * as ts from 'typescript';
7
+ /**
8
+ * @param {*} content
9
+ * @param {*} filePath
10
+ * @returns {*}
11
+ * Analyze a file for null safety issues. Exported for the FP-regression
12
+ * suite (see `__tests__/null-safety-fp.test.ts`).
13
+ */
14
+ export declare function analyzeNullSafety(content: string, filePath: string): CheckViolation[];
15
+ /**
16
+ * Type-aware variant (D2): walk the Program's SourceFile and flag a property
17
+ * access on a call/element-access result ONLY when the receiver's actual type
18
+ * includes `null`/`undefined`. The TypeChecker subsumes every heuristic the
19
+ * convention path uses — control-flow narrowing (guards), builder/Zod return
20
+ * types, and chain depth all fall out of real types — so this detector is
21
+ * deliberately minimal. Fail-open: `any`/`unknown`/unresolved types are not
22
+ * nullable per `isTypeNullable`, so "the compiler doesn't know" never flags.
23
+ *
24
+ * Reads the same path skip + escape-hatch config as the convention path
25
+ * (`additionalSafeNullPaths`, `additionalSafeBuilders`). Exported for the
26
+ * type-aware test suite.
27
+ */
28
+ export declare function analyzeNullSafetyTyped(sourceFile: ts.SourceFile, checker: ts.TypeChecker, filePath: string): CheckViolation[];
29
+ /** Type-aware per-file analysis (D2): flag via the shared Program's checker. */
30
+ export declare function analyzeFileTyped(program: TypeCheckedProgram, filePath: string): CheckViolation[];
31
+ /** Convention per-file analysis (default): scan the filtered content (no types). */
32
+ export declare function analyzeFileConvention(files: FileAccessor, filePath: string): Promise<CheckViolation[]>;
33
+ //# sourceMappingURL=null-safety-analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-safety-analyze.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety-analyze.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAmBjC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAqFrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CA4ClB;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAIhG;AAED,oFAAoF;AACpF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3B"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @fileoverview Null-safety analysis — convention and type-aware detectors.
3
+ */
4
+ import { getSharedSourceFile, isTypeNullable, } from '@opensip-cli/lang-typescript';
5
+ import * as ts from 'typescript';
6
+ import { buildEffectiveSafeBuilders, buildEffectiveSafePaths, isSafeNullPath, SAFE_PATTERNS, } from './null-safety-config.js';
7
+ import { getChainDepth, isFluentChain, isCallbackIndexGuarded, isGuardedByEnclosingCondition, isSafeBuilderPattern, isSafeFluentMethod, isSchemaBuilderChain, isThisAccess, } from './null-safety-heuristics.js';
8
+ /**
9
+ * @param {*} content
10
+ * @param {*} filePath
11
+ * @returns {*}
12
+ * Analyze a file for null safety issues. Exported for the FP-regression
13
+ * suite (see `__tests__/null-safety-fp.test.ts`).
14
+ */
15
+ export function analyzeNullSafety(content, filePath) {
16
+ const violations = [];
17
+ // Skip safe-by-construction path families (DI fragments + schema declarations).
18
+ // Built-in defaults are merged with the recipe-config slice once per file.
19
+ const safePaths = buildEffectiveSafePaths();
20
+ if (isSafeNullPath(filePath, safePaths))
21
+ return violations;
22
+ // Effective safe-builder prefixes = generic built-ins + project config.
23
+ const safeBuilders = buildEffectiveSafeBuilders();
24
+ try {
25
+ const sourceFile = getSharedSourceFile(filePath, content);
26
+ if (!sourceFile)
27
+ return [];
28
+ const visit = (node) => {
29
+ ts.forEachChild(node, visit);
30
+ // Only check property access expressions that aren't optional chains
31
+ if (!ts.isPropertyAccessExpression(node) || ts.isOptionalChain(node))
32
+ return;
33
+ const expression = node.expression;
34
+ // Only flag call expressions or element access (potentially nullable)
35
+ if (!ts.isCallExpression(expression) && !ts.isElementAccessExpression(expression))
36
+ return;
37
+ // Skip property access on `this` — the object always exists in its own methods
38
+ if (isThisAccess(node))
39
+ return;
40
+ // Skip method chains longer than 2 — fluent APIs are designed to return non-null
41
+ if (getChainDepth(node) > 2)
42
+ return;
43
+ // Skip Zod / schema builder chains (z.string().min(1), FooSchema.strict().safeParse)
44
+ if (isSchemaBuilderChain(node, sourceFile))
45
+ return;
46
+ // Skip known safe builder patterns
47
+ if (ts.isCallExpression(expression) &&
48
+ isSafeBuilderPattern(expression, sourceFile, safeBuilders))
49
+ return;
50
+ // Skip fluent API chains (promise.then().catch(), queryBuilder.where().orderBy())
51
+ if (isFluentChain(node))
52
+ return;
53
+ const propName = node.name.text;
54
+ // Skip if accessing a known safe fluent method
55
+ if (isSafeFluentMethod(propName))
56
+ return;
57
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
58
+ const lineText = content.split('\n')[line] ?? '';
59
+ // Skip if line has safety patterns
60
+ if (SAFE_PATTERNS.some((p) => p.test(lineText)))
61
+ return;
62
+ // Skip if guarded by an enclosing if / ternary / && condition on a
63
+ // previous line (the line-local scan above only sees this line).
64
+ if (isGuardedByEnclosingCondition(node, sourceFile))
65
+ return;
66
+ if (isCallbackIndexGuarded(node, sourceFile))
67
+ return;
68
+ // Skip common safe cases
69
+ if (['length', 'toString', 'valueOf'].includes(propName))
70
+ return;
71
+ const lineNum = line + 1;
72
+ const matchText = node.getText(sourceFile);
73
+ violations.push({
74
+ line: lineNum,
75
+ column: character + 1,
76
+ message: `Potentially unsafe property access '.${propName}' without null check`,
77
+ severity: 'warning',
78
+ type: 'unsafe-access',
79
+ suggestion: `Use optional chaining: change '.${propName}' to '?.${propName}', or add an explicit null/undefined check before accessing the property`,
80
+ match: matchText,
81
+ });
82
+ };
83
+ visit(sourceFile);
84
+ }
85
+ catch {
86
+ // @swallow-ok Skip files that fail to parse
87
+ }
88
+ return violations;
89
+ }
90
+ /**
91
+ * Type-aware variant (D2): walk the Program's SourceFile and flag a property
92
+ * access on a call/element-access result ONLY when the receiver's actual type
93
+ * includes `null`/`undefined`. The TypeChecker subsumes every heuristic the
94
+ * convention path uses — control-flow narrowing (guards), builder/Zod return
95
+ * types, and chain depth all fall out of real types — so this detector is
96
+ * deliberately minimal. Fail-open: `any`/`unknown`/unresolved types are not
97
+ * nullable per `isTypeNullable`, so "the compiler doesn't know" never flags.
98
+ *
99
+ * Reads the same path skip + escape-hatch config as the convention path
100
+ * (`additionalSafeNullPaths`, `additionalSafeBuilders`). Exported for the
101
+ * type-aware test suite.
102
+ */
103
+ export function analyzeNullSafetyTyped(sourceFile, checker, filePath) {
104
+ const violations = [];
105
+ const safePaths = buildEffectiveSafePaths();
106
+ if (isSafeNullPath(filePath, safePaths))
107
+ return violations;
108
+ // Manual escape hatch for symbols the checker can't resolve (untyped JS
109
+ // boundaries, ambient factories): a matching receiver call-text is trusted.
110
+ const safeBuilders = buildEffectiveSafeBuilders();
111
+ const visit = (node) => {
112
+ ts.forEachChild(node, visit);
113
+ if (!ts.isPropertyAccessExpression(node) || ts.isOptionalChain(node))
114
+ return;
115
+ const expression = node.expression;
116
+ if (!ts.isCallExpression(expression) && !ts.isElementAccessExpression(expression))
117
+ return;
118
+ // No `isThisAccess` skip here (unlike the convention path): the checker types
119
+ // `this`-rooted chains correctly — `this.prop` isn't a candidate (receiver is
120
+ // not a call), and `this.getThing()` where getThing() returns nullable SHOULD
121
+ // flag — so the heuristic would only cause false negatives.
122
+ const propName = node.name.text;
123
+ if (['length', 'toString', 'valueOf'].includes(propName))
124
+ return;
125
+ const receiverText = expression.getText(sourceFile);
126
+ if (safeBuilders.some((prefix) => receiverText.startsWith(prefix)))
127
+ return;
128
+ // The one decision: does the receiver's ACTUAL type include null/undefined?
129
+ if (!isTypeNullable(checker.getTypeAtLocation(expression)))
130
+ return;
131
+ const { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
132
+ violations.push({
133
+ line: line + 1,
134
+ column: character + 1,
135
+ message: `Potentially unsafe property access '.${propName}' without null check`,
136
+ severity: 'warning',
137
+ type: 'unsafe-access',
138
+ suggestion: `Use optional chaining: change '.${propName}' to '?.${propName}', or add an explicit null/undefined check before accessing the property`,
139
+ match: node.getText(sourceFile),
140
+ });
141
+ };
142
+ visit(sourceFile);
143
+ return violations;
144
+ }
145
+ /** Type-aware per-file analysis (D2): flag via the shared Program's checker. */
146
+ export function analyzeFileTyped(program, filePath) {
147
+ const sourceFile = program.getSourceFile(filePath);
148
+ if (!sourceFile)
149
+ return []; // not in the Program (e.g. excluded) — skip
150
+ return analyzeNullSafetyTyped(sourceFile, program.checker, filePath);
151
+ }
152
+ /** Convention per-file analysis (default): scan the filtered content (no types). */
153
+ export async function analyzeFileConvention(files, filePath) {
154
+ try {
155
+ // FileAccessor.read applies this check's `strip-strings` contentFilter, so
156
+ // `content` matches what the prior per-file `analyze` mode received.
157
+ const content = await files.read(filePath);
158
+ return analyzeNullSafety(content, filePath);
159
+ }
160
+ catch {
161
+ return []; // unreadable file — skip, matching per-file analyze resilience
162
+ }
163
+ }
164
+ //# sourceMappingURL=null-safety-analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-safety-analyze.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety-analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @fileoverview Null-safety recipe config and safe-by-construction allowlists.
3
+ */
4
+ export { SAFE_BUILDER_PREFIXES, SAFE_FLUENT_METHOD_NAMES, isSafeFluentMethod, } from './null-safety-prefixes.js';
5
+ /**
6
+ * Recipe-config shape for null-safety. Project-specific safe-by-construction
7
+ * paths and factory/builder symbols belong in a recipe's
8
+ * `checks.config['null-safety']` block, not in the check's built-in defaults.
9
+ */
10
+ export interface NullSafetyConfig extends Record<string, unknown> {
11
+ /**
12
+ * Additional path patterns whose files are skipped entirely. Each entry
13
+ * is compiled to a case-insensitive RegExp via `new RegExp(entry, 'i')`.
14
+ */
15
+ additionalSafeNullPaths?: readonly string[];
16
+ /**
17
+ * Additional call-text prefixes treated as non-null by construction (a
18
+ * property access on a matching call result is not flagged). Use this for
19
+ * PROJECT-SPECIFIC factory/builder functions whose non-null contract is
20
+ * local to your codebase — do not hardcode them into the shipped check.
21
+ * Matched via `String.prototype.startsWith` against the full call text.
22
+ */
23
+ additionalSafeBuilders?: readonly string[];
24
+ /**
25
+ * Use TYPE-AWARE analysis (a real `ts.Program` + `TypeChecker`): a property
26
+ * access on a call/element-access result is flagged only when the receiver's
27
+ * ACTUAL static type includes `null`/`undefined` (`any`/`unknown`/unresolved →
28
+ * not flagged; the checker also handles control-flow narrowing, builder/Zod
29
+ * return types, and chain depth, so the verb-prefix convention does not apply).
30
+ * `additionalSafeBuilders` remains a manual escape hatch for symbols the checker
31
+ * cannot resolve.
32
+ *
33
+ * **Default `true`** (D2). Set `false` to fall back to the legacy
34
+ * name/convention heuristic (faster, no Program build, but higher
35
+ * false-negative rate — it trusts any `get*`/`find*`/… call as non-null).
36
+ */
37
+ typeAware?: boolean;
38
+ }
39
+ /** Patterns that indicate the access is already protected */
40
+ export declare const SAFE_PATTERNS: RegExp[];
41
+ /**
42
+ * Common method name prefixes that indicate safe (non-null) return values.
43
+ */
44
+ export declare const SAFE_METHOD_PREFIXES: string[];
45
+ /** Merge built-in defaults with the recipe-config slice. */
46
+ export declare function buildEffectiveSafePaths(): readonly RegExp[];
47
+ /** Merge built-in safe-builder prefixes with recipe-config augmentation. */
48
+ export declare function buildEffectiveSafeBuilders(): readonly string[];
49
+ export declare function isSafeNullPath(filePath: string, paths: readonly RegExp[]): boolean;
50
+ //# sourceMappingURL=null-safety-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-safety-config.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D;;;OAGG;IACH,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,UAA0C,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAoChC,CAAC;AASF,4DAA4D;AAC5D,wBAAgB,uBAAuB,IAAI,SAAS,MAAM,EAAE,CAI3D;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAG9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAElF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @fileoverview Null-safety recipe config and safe-by-construction allowlists.
3
+ */
4
+ import { getCheckConfig } from '@opensip-cli/fitness';
5
+ import { SAFE_BUILDER_PREFIXES } from './null-safety-prefixes.js';
6
+ export { SAFE_BUILDER_PREFIXES, SAFE_FLUENT_METHOD_NAMES, isSafeFluentMethod, } from './null-safety-prefixes.js';
7
+ /** Patterns that indicate the access is already protected */
8
+ export const SAFE_PATTERNS = [/\?\./, /!!/, /\?\?/, /if\s*\(/, /&&/];
9
+ /**
10
+ * Common method name prefixes that indicate safe (non-null) return values.
11
+ */
12
+ export const SAFE_METHOD_PREFIXES = [
13
+ 'get',
14
+ 'set',
15
+ 'is',
16
+ 'has',
17
+ 'to',
18
+ 'with',
19
+ 'from',
20
+ 'of',
21
+ 'create',
22
+ 'build',
23
+ 'add',
24
+ 'remove',
25
+ 'update',
26
+ 'delete',
27
+ 'find',
28
+ 'load',
29
+ 'save',
30
+ 'parse',
31
+ 'format',
32
+ 'validate',
33
+ 'check',
34
+ 'resolve',
35
+ 'register',
36
+ 'unregister',
37
+ 'read',
38
+ 'open',
39
+ 'compute',
40
+ 'make',
41
+ 'render',
42
+ 'ensure',
43
+ 'classify',
44
+ 'filter',
45
+ 'current',
46
+ 'pick',
47
+ 'select',
48
+ ];
49
+ const SAFE_NULL_PATHS = [
50
+ /\/di\/fragment\.ts$/,
51
+ /\/di\/fragments\//,
52
+ /\/schema\//,
53
+ /-schema\.ts$/,
54
+ ];
55
+ /** Merge built-in defaults with the recipe-config slice. */
56
+ export function buildEffectiveSafePaths() {
57
+ const cfg = getCheckConfig('null-safety');
58
+ const extras = (cfg.additionalSafeNullPaths ?? []).map((src) => new RegExp(src, 'i'));
59
+ return [...SAFE_NULL_PATHS, ...extras];
60
+ }
61
+ /** Merge built-in safe-builder prefixes with recipe-config augmentation. */
62
+ export function buildEffectiveSafeBuilders() {
63
+ const cfg = getCheckConfig('null-safety');
64
+ return [...SAFE_BUILDER_PREFIXES, ...(cfg.additionalSafeBuilders ?? [])];
65
+ }
66
+ export function isSafeNullPath(filePath, paths) {
67
+ return paths.some((p) => p.test(filePath));
68
+ }
69
+ //# sourceMappingURL=null-safety-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-safety-config.js","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAqCnC,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,SAAS;IACT,UAAU;IACV,YAAY;IACZ,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;CACT,CAAC;AAEF,MAAM,eAAe,GAAsB;IACzC,qBAAqB;IACrB,mBAAmB;IACnB,YAAY;IACZ,cAAc;CACf,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,cAAc,CAAmB,aAAa,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAAG,cAAc,CAAmB,aAAa,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAwB;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @fileoverview Null-safety AST heuristics for convention-based detection.
3
+ */
4
+ import * as ts from 'typescript';
5
+ /**
6
+ * Check if a call expression is a known safe builder pattern.
7
+ *
8
+ * Two paths:
9
+ * 1. Explicit allowlist (`SAFE_BUILDER_PREFIXES`) — exact-prefix match on the
10
+ * full call text (e.g. `z.string(`, `pathToFileURL(`).
11
+ * 2. Convention heuristic — when the callee is a bare identifier whose name
12
+ * starts with a recognised safe verb (`get*`, `read*`, `resolve*`,
13
+ * `current*`, `create*`, `build*`, etc.). This is the same convention that
14
+ * already covers fluent-chain methods via `isSafeFluentMethod`; applying it
15
+ * to standalone calls closes the gap for helpers like `resolveProjectPaths`,
16
+ * `readScope`, `currentScenarioRegistry`, etc. whose names convey the same
17
+ * "returns a value or throws" contract.
18
+ */
19
+ export declare function isSafeBuilderPattern(expression: ts.CallExpression, sourceFile: ts.SourceFile, safeBuilders: readonly string[]): boolean;
20
+ /**
21
+ * Check if a method name is a known safe fluent API method.
22
+ * Matches either an exact entry in SAFE_FLUENT_METHOD_NAMES or a method whose name
23
+ * starts with a common safe prefix (get, set, is, has, to, etc.).
24
+ */
25
+ export declare function isSafeFluentMethod(methodName: string): boolean;
26
+ /**
27
+ * Walk ancestors to find an enclosing truthiness guard whose condition
28
+ * references the access's base expression — an `if (...)`, a `cond ? … : …`,
29
+ * or the left side of a `&&` chain (e.g. `if (candidates.length === 1 &&
30
+ * candidates[0]) { … candidates[0].bodyHash … }`).
31
+ *
32
+ * The line-local {@link SAFE_PATTERNS} scan only inspects the physical line
33
+ * of the access, so a guard placed on a *previous* line is missed. This
34
+ * closes that cross-line gap. Substring matching is intentionally lenient:
35
+ * the check errs toward treating a guarded access as safe (fewer false
36
+ * positives), consistent with the existing line-local guard handling.
37
+ */
38
+ export declare function isGuardedByEnclosingCondition(node: ts.PropertyAccessExpression, sourceFile: ts.SourceFile): boolean;
39
+ /**
40
+ * Check if a property access originates from `this`.
41
+ * Accessing properties on `this` is always safe — the object exists within its own methods.
42
+ */
43
+ export declare function isThisAccess(node: ts.PropertyAccessExpression): boolean;
44
+ /**
45
+ * Count the depth of a method chain (number of chained property accesses / calls).
46
+ * e.g. `a.b().c().d` has depth 3.
47
+ */
48
+ export declare function getChainDepth(node: ts.PropertyAccessExpression): number;
49
+ /**
50
+ * Zod and project schema-builder chains (including `FooSchema.strict().safeParse`).
51
+ */
52
+ export declare function isSchemaBuilderChain(node: ts.PropertyAccessExpression, sourceFile: ts.SourceFile): boolean;
53
+ /**
54
+ * True when accessing `arr[i].prop` where `i` is a parameter of the enclosing
55
+ * callback (e.g. chunked POST `timeoutFor: (_chunk, i) => chunks[i].signals`).
56
+ */
57
+ export declare function isCallbackIndexGuarded(node: ts.PropertyAccessExpression, _sourceFile: ts.SourceFile): boolean;
58
+ /**
59
+ * Check if a property access chain is on a Zod method call
60
+ * Handles chained calls like z.string().min(1).optional()
61
+ */
62
+ export declare function isZodBuilderChain(node: ts.PropertyAccessExpression, sourceFile: ts.SourceFile): boolean;
63
+ /** Check if a call expression callee originates from z.xxx() */
64
+ export declare function checkZodCallExpression(node: ts.CallExpression, sourceFile: ts.SourceFile): {
65
+ resolved: true;
66
+ isZod: boolean;
67
+ } | {
68
+ resolved: false;
69
+ next: ts.Expression;
70
+ };
71
+ /**
72
+ * Check if a property access is part of a fluent API chain
73
+ * Handles patterns like promise.then().catch() or queryBuilder.where().orderBy()
74
+ */
75
+ export declare function isFluentChain(node: ts.PropertyAccessExpression): boolean;
76
+ //# sourceMappingURL=null-safety-heuristics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-safety-heuristics.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/data-integrity/null-safety-heuristics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAOjC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,EAAE,CAAC,cAAc,EAC7B,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,UAAU,EAAE,EAAE,CAAC,UAAU,GACxB,OAAO,CA0BT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,OAAO,CAMvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYvE;AA2DD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,UAAU,EAAE,EAAE,CAAC,UAAU,GACxB,OAAO,CAiBT;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,WAAW,EAAE,EAAE,CAAC,UAAU,GACzB,OAAO,CAkBT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,UAAU,EAAE,EAAE,CAAC,UAAU,GACxB,OAAO,CAuBT;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,UAAU,EAAE,EAAE,CAAC,UAAU,GACxB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAA;CAAE,CAU/E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,OAAO,CAuBxE"}