@critiq/rules 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +52 -4
  2. package/catalog.yaml +985 -19
  3. package/package.json +6 -1
  4. package/rules/go/go.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  5. package/rules/go/go.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  6. package/rules/go/go.performance.no-unbounded-concurrency.rule.yaml +33 -0
  7. package/rules/go/go.security.echo-sensitive-binding-without-validation.rule.yaml +46 -0
  8. package/rules/go/go.security.echo-unsafe-multipart-upload.rule.yaml +45 -0
  9. package/rules/go/go.security.fiber-sensitive-binding-without-validation.rule.yaml +45 -0
  10. package/rules/go/go.security.fiber-unsafe-multipart-upload.rule.yaml +45 -0
  11. package/rules/go/go.security.gin-sensitive-binding-without-validation.rule.yaml +45 -0
  12. package/rules/go/go.security.gin-trust-all-proxies.rule.yaml +45 -0
  13. package/rules/go/go.security.gin-wildcard-cors-with-credentials.rule.yaml +47 -0
  14. package/rules/go/go.security.net-http-missing-timeouts.rule.yaml +45 -0
  15. package/rules/go/go.security.sensitive-data-egress.rule.yaml +46 -0
  16. package/rules/go/go.security.tar-path-traversal.rule.yaml +45 -0
  17. package/rules/go/go.security.template-unescaped-request-value.rule.yaml +45 -0
  18. package/rules/go/go.testing.real-network-in-unit-test.rule.yaml +33 -0
  19. package/rules/go/go.testing.t-skip-without-ticket-reference.rule.yaml +33 -0
  20. package/rules/go/go.testing.time-sleep-in-unit-test.rule.yaml +33 -0
  21. package/rules/java/java.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  22. package/rules/java/java.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  23. package/rules/java/java.performance.no-unbounded-concurrency.rule.yaml +33 -0
  24. package/rules/java/java.security.android-screenshot-exposure.rule.yaml +35 -0
  25. package/rules/java/java.security.android-world-readable-mode.rule.yaml +35 -0
  26. package/rules/java/java.security.jpa-concatenated-query.rule.yaml +47 -0
  27. package/rules/java/java.security.reflected-output-from-request.rule.yaml +35 -0
  28. package/rules/java/java.security.servlet-insecure-cookie.rule.yaml +35 -0
  29. package/rules/java/java.security.spring-actuator-health-details-always.rule.yaml +40 -0
  30. package/rules/java/java.security.spring-actuator-sensitive-exposure.rule.yaml +40 -0
  31. package/rules/java/java.security.spring-csrf-globally-disabled.rule.yaml +49 -0
  32. package/rules/java/java.security.spring-debug-exposure.rule.yaml +35 -0
  33. package/rules/java/java.security.spring-permit-all-default.rule.yaml +47 -0
  34. package/rules/java/java.security.spring-webmvc-unrestricted-data-binding.rule.yaml +47 -0
  35. package/rules/java/java.security.template-unescaped-user-output.rule.yaml +49 -0
  36. package/rules/java/java.testing.disabled-without-ticket-reference.rule.yaml +33 -0
  37. package/rules/java/java.testing.http-client-in-unit-test.rule.yaml +33 -0
  38. package/rules/java/java.testing.thread-sleep-in-unit-test.rule.yaml +33 -0
  39. package/rules/php/php.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  40. package/rules/php/php.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  41. package/rules/php/php.performance.no-unbounded-concurrency.rule.yaml +33 -0
  42. package/rules/php/php.security.insecure-cors-wildcard-with-credentials.rule.yaml +41 -0
  43. package/rules/php/php.security.insecure-mail-or-file-transport.rule.yaml +41 -0
  44. package/rules/php/php.security.insecure-session-or-cookie-config.rule.yaml +42 -0
  45. package/rules/php/php.security.laravel-sensitive-csrf-exclusion.rule.yaml +42 -0
  46. package/rules/php/php.security.laravel-unsafe-blade-output.rule.yaml +42 -0
  47. package/rules/php/php.security.laravel-unsafe-mass-assignment.rule.yaml +45 -0
  48. package/rules/php/php.security.sensitive-data-egress.rule.yaml +42 -0
  49. package/rules/php/php.security.symfony-csrf-disabled.rule.yaml +42 -0
  50. package/rules/php/php.security.symfony-debug-exposure.rule.yaml +44 -0
  51. package/rules/php/php.security.unsafe-file-upload-handling.rule.yaml +41 -0
  52. package/rules/php/php.security.wordpress-missing-nonce-or-capability.rule.yaml +42 -0
  53. package/rules/php/php.security.wordpress-unprepared-sql.rule.yaml +42 -0
  54. package/rules/php/php.testing.curl-in-unit-test.rule.yaml +33 -0
  55. package/rules/php/php.testing.mark-test-skipped-without-ticket-reference.rule.yaml +33 -0
  56. package/rules/php/php.testing.sleep-in-unit-test.rule.yaml +33 -0
  57. package/rules/python/py.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  58. package/rules/python/py.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  59. package/rules/python/py.performance.no-unbounded-concurrency.rule.yaml +33 -0
  60. package/rules/python/py.security.django-csrf-exempt-state-changing.rule.yaml +46 -0
  61. package/rules/python/py.security.django-missing-csrf-middleware.rule.yaml +47 -0
  62. package/rules/python/py.security.django-unsafe-production-settings.rule.yaml +47 -0
  63. package/rules/python/py.security.drf-allow-any-default.rule.yaml +46 -0
  64. package/rules/python/py.security.drf-allow-any-unsafe-method.rule.yaml +46 -0
  65. package/rules/python/py.security.fastapi-insecure-cors.rule.yaml +43 -0
  66. package/rules/python/py.security.flask-missing-upload-body-limit.rule.yaml +44 -0
  67. package/rules/python/py.security.flask-unsafe-html-output.rule.yaml +44 -0
  68. package/rules/python/py.security.flask-unsafe-upload-filename.rule.yaml +44 -0
  69. package/rules/python/py.testing.pytest-skip-without-ticket-reference.rule.yaml +33 -0
  70. package/rules/python/py.testing.real-network-in-unit-test.rule.yaml +33 -0
  71. package/rules/python/py.testing.time-sleep-in-unit-test.rule.yaml +33 -0
  72. package/rules/ruby/ruby.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  73. package/rules/ruby/ruby.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  74. package/rules/ruby/ruby.performance.no-unbounded-concurrency.rule.yaml +33 -0
  75. package/rules/ruby/ruby.security.rails-csrf-disabled.rule.yaml +45 -0
  76. package/rules/ruby/ruby.security.rails-detailed-exceptions-enabled.rule.yaml +44 -0
  77. package/rules/ruby/ruby.security.rails-open-redirect.rule.yaml +45 -0
  78. package/rules/ruby/ruby.security.rails-unsafe-html-output.rule.yaml +46 -0
  79. package/rules/ruby/ruby.security.rails-unsafe-render.rule.yaml +45 -0
  80. package/rules/ruby/ruby.security.rails-unsafe-session-or-cookie-store.rule.yaml +45 -0
  81. package/rules/ruby/ruby.security.rails-unsafe-strong-parameters.rule.yaml +46 -0
  82. package/rules/ruby/ruby.security.sensitive-data-egress.rule.yaml +45 -0
  83. package/rules/ruby/ruby.security.sidekiq-web-unauthenticated-mount.rule.yaml +45 -0
  84. package/rules/ruby/ruby.testing.focused-example.rule.yaml +33 -0
  85. package/rules/ruby/ruby.testing.pending-without-ticket-reference.rule.yaml +33 -0
  86. package/rules/ruby/ruby.testing.real-network-in-unit-test.rule.yaml +33 -0
  87. package/rules/ruby/ruby.testing.skip-without-ticket-reference.rule.yaml +33 -0
  88. package/rules/ruby/ruby.testing.sleep-in-unit-test.rule.yaml +33 -0
  89. package/rules/rust/rust.performance.no-regex-construction-in-loop.rule.yaml +33 -0
  90. package/rules/rust/rust.performance.no-sync-fs-in-request-path.rule.yaml +33 -0
  91. package/rules/rust/rust.performance.no-unbounded-concurrency.rule.yaml +33 -0
  92. package/rules/rust/rust.security.actix-wildcard-cors-with-credentials.rule.yaml +47 -0
  93. package/rules/rust/rust.security.axum-body-limit-disabled.rule.yaml +45 -0
  94. package/rules/rust/rust.security.axum-insecure-cors-with-credentials.rule.yaml +47 -0
  95. package/rules/rust/rust.security.rocket-panic-prone-request-handler.rule.yaml +45 -0
  96. package/rules/rust/rust.security.rocket-unsafe-template-output.rule.yaml +47 -0
  97. package/rules/rust/rust.security.sqlx-diesel-raw-interpolated-query.rule.yaml +47 -0
  98. package/rules/rust/rust.security.template-unescaped-request-value.rule.yaml +47 -0
  99. package/rules/rust/rust.security.warp-blocking-or-panic-in-async-handler.rule.yaml +45 -0
  100. package/rules/rust/rust.testing.ignore-without-ticket-reference.rule.yaml +33 -0
  101. package/rules/rust/rust.testing.real-network-in-unit-test.rule.yaml +33 -0
  102. package/rules/rust/rust.testing.thread-sleep-in-unit-test.rule.yaml +33 -0
  103. package/rules/shared/security.archive-path-traversal.rule.yaml +41 -0
  104. package/rules/shared/security.external-file-upload.rule.yaml +40 -0
  105. package/rules/shared/security.permissive-file-permissions.rule.yaml +40 -0
  106. package/rules/shared/security.sensitive-data-egress.rule.yaml +36 -0
  107. package/rules/typescript/ts.correctness.assignment-in-condition.rule.yaml +36 -0
  108. package/rules/typescript/ts.correctness.assignment-to-import-binding.rule.yaml +36 -0
  109. package/rules/typescript/ts.correctness.async-promise-executor.rule.yaml +36 -0
  110. package/rules/typescript/ts.correctness.duplicate-function-parameter.rule.yaml +36 -0
  111. package/rules/typescript/ts.correctness.duplicate-import-source.rule.yaml +36 -0
  112. package/rules/typescript/ts.correctness.duplicate-object-key.rule.yaml +36 -0
  113. package/rules/typescript/ts.correctness.duplicate-switch-case.rule.yaml +36 -0
  114. package/rules/typescript/ts.correctness.empty-block-statement.rule.yaml +35 -0
  115. package/rules/typescript/ts.correctness.identical-comparison-operands.rule.yaml +36 -0
  116. package/rules/typescript/ts.correctness.reassign-catch-binding.rule.yaml +35 -0
  117. package/rules/typescript/ts.correctness.regexp-pattern-unusual-control-character.rule.yaml +35 -0
  118. package/rules/typescript/ts.correctness.self-assignment.rule.yaml +36 -0
  119. package/rules/typescript/ts.next.server-action-missing-local-auth.rule.yaml +35 -0
  120. package/rules/typescript/ts.performance.no-array-spread-in-hot-loop.rule.yaml +32 -0
  121. package/rules/typescript/ts.performance.no-cache-miss-from-unstable-key.rule.yaml +32 -0
  122. package/rules/typescript/ts.performance.no-expensive-sort-in-render-path.rule.yaml +32 -0
  123. package/rules/typescript/ts.performance.no-json-parse-stringify-clone.rule.yaml +32 -0
  124. package/rules/typescript/ts.performance.no-large-object-spread-in-loop.rule.yaml +32 -0
  125. package/rules/typescript/ts.performance.no-n-plus-one-await-in-map.rule.yaml +32 -0
  126. package/rules/typescript/ts.performance.no-redundant-network-fetch.rule.yaml +32 -0
  127. package/rules/typescript/ts.performance.no-regex-construction-in-loop.rule.yaml +32 -0
  128. package/rules/typescript/ts.performance.no-sync-fs-in-request-path.rule.yaml +32 -0
  129. package/rules/typescript/ts.performance.no-unbounded-concurrency.rule.yaml +32 -0
  130. package/rules/typescript/ts.quality.no-ambiguous-abbreviations.rule.yaml +27 -0
  131. package/rules/typescript/ts.quality.no-barrel-file-cycle.rule.yaml +27 -0
  132. package/rules/typescript/ts.quality.no-boolean-parameter-trap.rule.yaml +27 -0
  133. package/rules/typescript/ts.quality.no-dead-export.rule.yaml +27 -0
  134. package/rules/typescript/ts.quality.no-hidden-side-effect-import.rule.yaml +27 -0
  135. package/rules/typescript/ts.quality.no-inconsistent-error-shape.rule.yaml +27 -0
  136. package/rules/typescript/ts.quality.no-mixed-abstraction-level.rule.yaml +27 -0
  137. package/rules/typescript/ts.quality.no-primitive-obsession-in-domain-model.rule.yaml +27 -0
  138. package/rules/typescript/ts.quality.no-temporal-coupling.rule.yaml +27 -0
  139. package/rules/typescript/ts.quality.no-wide-public-surface.rule.yaml +27 -0
  140. package/rules/typescript/ts.react.no-accessibility-label-missing.rule.yaml +36 -0
  141. package/rules/typescript/ts.react.no-activedescendant-on-non-focusable-host.rule.yaml +36 -0
  142. package/rules/typescript/ts.react.no-click-without-keyboard-handler.rule.yaml +36 -0
  143. package/rules/typescript/ts.react.no-deprecated-create-factory.rule.yaml +34 -0
  144. package/rules/typescript/ts.react.no-deprecated-react-dom-root-api.rule.yaml +34 -0
  145. package/rules/typescript/ts.react.no-derived-state-from-props.rule.yaml +34 -0
  146. package/rules/typescript/ts.react.no-effect-fetch-without-cancellation.rule.yaml +35 -0
  147. package/rules/typescript/ts.react.no-find-dom-node.rule.yaml +34 -0
  148. package/rules/typescript/ts.react.no-img-missing-alt-text.rule.yaml +36 -0
  149. package/rules/typescript/ts.react.no-index-as-key-in-dynamic-list.rule.yaml +34 -0
  150. package/rules/typescript/ts.react.no-interactive-role-on-static-semantics.rule.yaml +36 -0
  151. package/rules/typescript/ts.react.no-invalid-anchor-href.rule.yaml +36 -0
  152. package/rules/typescript/ts.react.no-keyboard-interaction-without-widget-role.rule.yaml +36 -0
  153. package/rules/typescript/ts.react.no-legacy-lifecycle.rule.yaml +34 -0
  154. package/rules/typescript/ts.react.no-missing-error-boundary.rule.yaml +36 -0
  155. package/rules/typescript/ts.react.no-positive-tabindex.rule.yaml +36 -0
  156. package/rules/typescript/ts.react.no-static-element-with-synthetic-handlers.rule.yaml +36 -0
  157. package/rules/typescript/ts.react.no-string-ref.rule.yaml +34 -0
  158. package/rules/typescript/ts.react.no-uncontrolled-to-controlled-input.rule.yaml +34 -0
  159. package/rules/typescript/ts.react.no-widget-role-without-tabindex.rule.yaml +36 -0
  160. package/rules/typescript/ts.security.ajv-insecure-configuration.rule.yaml +34 -0
  161. package/rules/typescript/ts.security.angular-dom-sanitizer-bypass-untrusted-input.rule.yaml +35 -0
  162. package/rules/typescript/ts.security.apollo-server-csrf-disabled.rule.yaml +36 -0
  163. package/rules/typescript/ts.security.apollo-server-graphql-dev-tooling-exposure.rule.yaml +36 -0
  164. package/rules/typescript/ts.security.apollo-server-introspection-exposure.rule.yaml +35 -0
  165. package/rules/typescript/ts.security.apollo-server-missing-query-limits.rule.yaml +35 -0
  166. package/rules/typescript/ts.security.astro-vite-public-secret-define.rule.yaml +39 -0
  167. package/rules/typescript/ts.security.debug-statement-in-source.rule.yaml +36 -0
  168. package/rules/typescript/ts.security.electron-dangerous-webpreferences.rule.yaml +35 -0
  169. package/rules/typescript/ts.security.electron-insecure-local-state.rule.yaml +35 -0
  170. package/rules/typescript/ts.security.electron-missing-ipc-origin-check.rule.yaml +35 -0
  171. package/rules/typescript/ts.security.electron-shell-open-external-unvalidated.rule.yaml +35 -0
  172. package/rules/typescript/ts.security.express-error-handler-information-disclosure.rule.yaml +35 -0
  173. package/rules/typescript/ts.security.express-static-dotfiles-allow.rule.yaml +35 -0
  174. package/rules/typescript/ts.security.express-unbounded-body-parser.rule.yaml +34 -0
  175. package/rules/typescript/ts.security.express-user-controlled-static-mount.rule.yaml +35 -0
  176. package/rules/typescript/ts.security.fastify-excessive-body-limit.rule.yaml +34 -0
  177. package/rules/typescript/ts.security.fastify-public-bind-without-trust-proxy.rule.yaml +38 -0
  178. package/rules/typescript/ts.security.graphql-upload-without-csrf-guard.rule.yaml +36 -0
  179. package/rules/typescript/ts.security.iframe-missing-sandbox-attribute.rule.yaml +35 -0
  180. package/rules/typescript/ts.security.insecure-content-security-policy-literal.rule.yaml +35 -0
  181. package/rules/typescript/ts.security.insecure-helmet-hardening-options.rule.yaml +36 -0
  182. package/rules/typescript/ts.security.jwt-insecure-signing-algorithm.rule.yaml +35 -0
  183. package/rules/typescript/ts.security.legacy-buffer-constructor.rule.yaml +35 -0
  184. package/rules/typescript/ts.security.log-injection.rule.yaml +36 -0
  185. package/rules/typescript/ts.security.nestjs-helmet-after-route-mount.rule.yaml +34 -0
  186. package/rules/typescript/ts.security.nestjs-missing-global-validation-pipe.rule.yaml +35 -0
  187. package/rules/typescript/ts.security.nestjs-skip-throttle-sensitive-route.rule.yaml +35 -0
  188. package/rules/typescript/ts.security.nestjs-validation-pipe-without-whitelist.rule.yaml +36 -0
  189. package/rules/typescript/ts.security.nuxt-public-runtime-secret.rule.yaml +38 -0
  190. package/rules/typescript/ts.security.open-redirect.rule.yaml +2 -0
  191. package/rules/typescript/ts.security.request-driven-array-index-access.rule.yaml +33 -0
  192. package/rules/typescript/ts.security.sensitive-data-egress.rule.yaml +1 -0
  193. package/rules/typescript/ts.security.ssrf.rule.yaml +1 -0
  194. package/rules/typescript/ts.security.unsafe-dompurify-version.rule.yaml +36 -0
  195. package/rules/typescript/ts.security.unsafe-marked-version.rule.yaml +36 -0
  196. package/rules/typescript/ts.security.xml-parse-string-with-untrusted-input.rule.yaml +35 -0
  197. package/rules/typescript/ts.testing.no-flaky-timer-test.rule.yaml +38 -0
  198. package/rules/typescript/ts.testing.no-focused-test.rule.yaml +34 -0
  199. package/rules/typescript/ts.testing.no-missing-edge-case-tests.rule.yaml +35 -0
  200. package/rules/typescript/ts.testing.no-network-call-in-unit-test.rule.yaml +38 -0
  201. package/rules/typescript/ts.testing.no-skipped-test-without-ticket.rule.yaml +34 -0
  202. package/rules/typescript/ts.testing.no-snapshot-without-intent.rule.yaml +34 -0
  203. package/rules/typescript/ts.testing.no-test-only-code-in-production.rule.yaml +38 -0
package/catalog.yaml CHANGED
@@ -92,6 +92,66 @@ rules:
92
92
  presets:
93
93
  - recommended
94
94
  - strict
95
+ - id: ts.correctness.assignment-in-condition
96
+ rulePath: ./rules/typescript/ts.correctness.assignment-in-condition.rule.yaml
97
+ presets:
98
+ - recommended
99
+ - strict
100
+ - id: ts.correctness.duplicate-function-parameter
101
+ rulePath: ./rules/typescript/ts.correctness.duplicate-function-parameter.rule.yaml
102
+ presets:
103
+ - recommended
104
+ - strict
105
+ - id: ts.correctness.duplicate-object-key
106
+ rulePath: ./rules/typescript/ts.correctness.duplicate-object-key.rule.yaml
107
+ presets:
108
+ - recommended
109
+ - strict
110
+ - id: ts.correctness.duplicate-switch-case
111
+ rulePath: ./rules/typescript/ts.correctness.duplicate-switch-case.rule.yaml
112
+ presets:
113
+ - recommended
114
+ - strict
115
+ - id: ts.correctness.async-promise-executor
116
+ rulePath: ./rules/typescript/ts.correctness.async-promise-executor.rule.yaml
117
+ presets:
118
+ - recommended
119
+ - strict
120
+ - id: ts.correctness.assignment-to-import-binding
121
+ rulePath: ./rules/typescript/ts.correctness.assignment-to-import-binding.rule.yaml
122
+ presets:
123
+ - recommended
124
+ - strict
125
+ - id: ts.correctness.self-assignment
126
+ rulePath: ./rules/typescript/ts.correctness.self-assignment.rule.yaml
127
+ presets:
128
+ - recommended
129
+ - strict
130
+ - id: ts.correctness.identical-comparison-operands
131
+ rulePath: ./rules/typescript/ts.correctness.identical-comparison-operands.rule.yaml
132
+ presets:
133
+ - recommended
134
+ - strict
135
+ - id: ts.correctness.duplicate-import-source
136
+ rulePath: ./rules/typescript/ts.correctness.duplicate-import-source.rule.yaml
137
+ presets:
138
+ - recommended
139
+ - strict
140
+ - id: ts.correctness.empty-block-statement
141
+ rulePath: ./rules/typescript/ts.correctness.empty-block-statement.rule.yaml
142
+ presets:
143
+ - recommended
144
+ - strict
145
+ - id: ts.correctness.reassign-catch-binding
146
+ rulePath: ./rules/typescript/ts.correctness.reassign-catch-binding.rule.yaml
147
+ presets:
148
+ - recommended
149
+ - strict
150
+ - id: ts.correctness.regexp-pattern-unusual-control-character
151
+ rulePath: ./rules/typescript/ts.correctness.regexp-pattern-unusual-control-character.rule.yaml
152
+ presets:
153
+ - recommended
154
+ - strict
95
155
  - id: ts.quality.swallowed-error
96
156
  rulePath: ./rules/typescript/ts.quality.swallowed-error.rule.yaml
97
157
  presets:
@@ -134,6 +194,84 @@ rules:
134
194
  rulePath: ./rules/typescript/ts.quality.logic-change-without-test-updates.rule.yaml
135
195
  presets:
136
196
  - strict
197
+ - id: ts.quality.no-boolean-parameter-trap
198
+ rulePath: ./rules/typescript/ts.quality.no-boolean-parameter-trap.rule.yaml
199
+ presets:
200
+ - recommended
201
+ - strict
202
+ - id: ts.quality.no-primitive-obsession-in-domain-model
203
+ rulePath: ./rules/typescript/ts.quality.no-primitive-obsession-in-domain-model.rule.yaml
204
+ presets:
205
+ - strict
206
+ - id: ts.quality.no-wide-public-surface
207
+ rulePath: ./rules/typescript/ts.quality.no-wide-public-surface.rule.yaml
208
+ presets:
209
+ - strict
210
+ - id: ts.quality.no-barrel-file-cycle
211
+ rulePath: ./rules/typescript/ts.quality.no-barrel-file-cycle.rule.yaml
212
+ presets:
213
+ - strict
214
+ - id: ts.quality.no-hidden-side-effect-import
215
+ rulePath: ./rules/typescript/ts.quality.no-hidden-side-effect-import.rule.yaml
216
+ presets:
217
+ - recommended
218
+ - strict
219
+ - id: ts.quality.no-mixed-abstraction-level
220
+ rulePath: ./rules/typescript/ts.quality.no-mixed-abstraction-level.rule.yaml
221
+ presets:
222
+ - strict
223
+ - id: ts.quality.no-ambiguous-abbreviations
224
+ rulePath: ./rules/typescript/ts.quality.no-ambiguous-abbreviations.rule.yaml
225
+ presets:
226
+ - strict
227
+ - id: ts.quality.no-inconsistent-error-shape
228
+ rulePath: ./rules/typescript/ts.quality.no-inconsistent-error-shape.rule.yaml
229
+ presets:
230
+ - recommended
231
+ - strict
232
+ - id: ts.quality.no-temporal-coupling
233
+ rulePath: ./rules/typescript/ts.quality.no-temporal-coupling.rule.yaml
234
+ presets:
235
+ - strict
236
+ - id: ts.quality.no-dead-export
237
+ rulePath: ./rules/typescript/ts.quality.no-dead-export.rule.yaml
238
+ presets:
239
+ - strict
240
+ - id: ts.testing.no-focused-test
241
+ rulePath: ./rules/typescript/ts.testing.no-focused-test.rule.yaml
242
+ presets:
243
+ - recommended
244
+ - strict
245
+ - id: ts.testing.no-skipped-test-without-ticket
246
+ rulePath: ./rules/typescript/ts.testing.no-skipped-test-without-ticket.rule.yaml
247
+ presets:
248
+ - recommended
249
+ - strict
250
+ - id: ts.testing.no-snapshot-without-intent
251
+ rulePath: ./rules/typescript/ts.testing.no-snapshot-without-intent.rule.yaml
252
+ presets:
253
+ - recommended
254
+ - strict
255
+ - id: ts.testing.no-flaky-timer-test
256
+ rulePath: ./rules/typescript/ts.testing.no-flaky-timer-test.rule.yaml
257
+ presets:
258
+ - recommended
259
+ - strict
260
+ - id: ts.testing.no-network-call-in-unit-test
261
+ rulePath: ./rules/typescript/ts.testing.no-network-call-in-unit-test.rule.yaml
262
+ presets:
263
+ - recommended
264
+ - strict
265
+ - id: ts.testing.no-missing-edge-case-tests
266
+ rulePath: ./rules/typescript/ts.testing.no-missing-edge-case-tests.rule.yaml
267
+ presets:
268
+ - recommended
269
+ - strict
270
+ - id: ts.testing.no-test-only-code-in-production
271
+ rulePath: ./rules/typescript/ts.testing.no-test-only-code-in-production.rule.yaml
272
+ presets:
273
+ - recommended
274
+ - strict
137
275
  - id: ts.config.no-process-env-outside-config
138
276
  rulePath: ./rules/typescript/ts.config.no-process-env-outside-config.rule.yaml
139
277
  presets:
@@ -186,14 +324,222 @@ rules:
186
324
  rulePath: ./rules/typescript/ts.performance.unnecessary-rerenders-from-state-misuse.rule.yaml
187
325
  presets:
188
326
  - experimental
327
+ - id: ts.performance.no-array-spread-in-hot-loop
328
+ rulePath: ./rules/typescript/ts.performance.no-array-spread-in-hot-loop.rule.yaml
329
+ presets:
330
+ - recommended
331
+ - strict
332
+ - id: ts.performance.no-regex-construction-in-loop
333
+ rulePath: ./rules/typescript/ts.performance.no-regex-construction-in-loop.rule.yaml
334
+ presets:
335
+ - recommended
336
+ - strict
337
+ - id: ts.performance.no-json-parse-stringify-clone
338
+ rulePath: ./rules/typescript/ts.performance.no-json-parse-stringify-clone.rule.yaml
339
+ presets:
340
+ - recommended
341
+ - strict
342
+ - id: ts.performance.no-sync-fs-in-request-path
343
+ rulePath: ./rules/typescript/ts.performance.no-sync-fs-in-request-path.rule.yaml
344
+ presets:
345
+ - recommended
346
+ - strict
347
+ - id: ts.performance.no-large-object-spread-in-loop
348
+ rulePath: ./rules/typescript/ts.performance.no-large-object-spread-in-loop.rule.yaml
349
+ presets:
350
+ - recommended
351
+ - strict
352
+ - id: ts.performance.no-n-plus-one-await-in-map
353
+ rulePath: ./rules/typescript/ts.performance.no-n-plus-one-await-in-map.rule.yaml
354
+ presets:
355
+ - recommended
356
+ - strict
357
+ - id: ts.performance.no-unbounded-concurrency
358
+ rulePath: ./rules/typescript/ts.performance.no-unbounded-concurrency.rule.yaml
359
+ presets:
360
+ - recommended
361
+ - strict
362
+ - id: ts.performance.no-redundant-network-fetch
363
+ rulePath: ./rules/typescript/ts.performance.no-redundant-network-fetch.rule.yaml
364
+ presets:
365
+ - recommended
366
+ - strict
367
+ - id: ts.performance.no-expensive-sort-in-render-path
368
+ rulePath: ./rules/typescript/ts.performance.no-expensive-sort-in-render-path.rule.yaml
369
+ presets:
370
+ - recommended
371
+ - strict
372
+ - id: ts.performance.no-cache-miss-from-unstable-key
373
+ rulePath: ./rules/typescript/ts.performance.no-cache-miss-from-unstable-key.rule.yaml
374
+ presets:
375
+ - recommended
376
+ - strict
377
+ - id: go.performance.no-regex-construction-in-loop
378
+ rulePath: ./rules/go/go.performance.no-regex-construction-in-loop.rule.yaml
379
+ presets:
380
+ - strict
381
+ - id: go.performance.no-sync-fs-in-request-path
382
+ rulePath: ./rules/go/go.performance.no-sync-fs-in-request-path.rule.yaml
383
+ presets:
384
+ - strict
385
+ - id: go.performance.no-unbounded-concurrency
386
+ rulePath: ./rules/go/go.performance.no-unbounded-concurrency.rule.yaml
387
+ presets:
388
+ - strict
389
+ - id: java.performance.no-regex-construction-in-loop
390
+ rulePath: ./rules/java/java.performance.no-regex-construction-in-loop.rule.yaml
391
+ presets:
392
+ - strict
393
+ - id: java.performance.no-sync-fs-in-request-path
394
+ rulePath: ./rules/java/java.performance.no-sync-fs-in-request-path.rule.yaml
395
+ presets:
396
+ - strict
397
+ - id: java.performance.no-unbounded-concurrency
398
+ rulePath: ./rules/java/java.performance.no-unbounded-concurrency.rule.yaml
399
+ presets:
400
+ - strict
401
+ - id: php.performance.no-regex-construction-in-loop
402
+ rulePath: ./rules/php/php.performance.no-regex-construction-in-loop.rule.yaml
403
+ presets:
404
+ - strict
405
+ - id: php.performance.no-sync-fs-in-request-path
406
+ rulePath: ./rules/php/php.performance.no-sync-fs-in-request-path.rule.yaml
407
+ presets:
408
+ - strict
409
+ - id: php.performance.no-unbounded-concurrency
410
+ rulePath: ./rules/php/php.performance.no-unbounded-concurrency.rule.yaml
411
+ presets:
412
+ - strict
413
+ - id: py.performance.no-regex-construction-in-loop
414
+ rulePath: ./rules/python/py.performance.no-regex-construction-in-loop.rule.yaml
415
+ presets:
416
+ - strict
417
+ - id: py.performance.no-sync-fs-in-request-path
418
+ rulePath: ./rules/python/py.performance.no-sync-fs-in-request-path.rule.yaml
419
+ presets:
420
+ - strict
421
+ - id: py.performance.no-unbounded-concurrency
422
+ rulePath: ./rules/python/py.performance.no-unbounded-concurrency.rule.yaml
423
+ presets:
424
+ - strict
425
+ - id: ruby.performance.no-regex-construction-in-loop
426
+ rulePath: ./rules/ruby/ruby.performance.no-regex-construction-in-loop.rule.yaml
427
+ presets:
428
+ - strict
429
+ - id: ruby.performance.no-sync-fs-in-request-path
430
+ rulePath: ./rules/ruby/ruby.performance.no-sync-fs-in-request-path.rule.yaml
431
+ presets:
432
+ - strict
433
+ - id: ruby.performance.no-unbounded-concurrency
434
+ rulePath: ./rules/ruby/ruby.performance.no-unbounded-concurrency.rule.yaml
435
+ presets:
436
+ - strict
437
+ - id: rust.performance.no-regex-construction-in-loop
438
+ rulePath: ./rules/rust/rust.performance.no-regex-construction-in-loop.rule.yaml
439
+ presets:
440
+ - strict
441
+ - id: rust.performance.no-sync-fs-in-request-path
442
+ rulePath: ./rules/rust/rust.performance.no-sync-fs-in-request-path.rule.yaml
443
+ presets:
444
+ - strict
445
+ - id: rust.performance.no-unbounded-concurrency
446
+ rulePath: ./rules/rust/rust.performance.no-unbounded-concurrency.rule.yaml
447
+ presets:
448
+ - strict
189
449
  - id: ts.react.no-cascaded-effect-fetches
190
450
  rulePath: ./rules/typescript/ts.react.no-cascaded-effect-fetches.rule.yaml
191
451
  presets:
192
452
  - strict
453
+ - id: ts.react.no-effect-fetch-without-cancellation
454
+ rulePath: ./rules/typescript/ts.react.no-effect-fetch-without-cancellation.rule.yaml
455
+ presets:
456
+ - strict
193
457
  - id: ts.next.no-server-client-boundary-leaks
194
458
  rulePath: ./rules/typescript/ts.next.no-server-client-boundary-leaks.rule.yaml
195
459
  presets:
196
460
  - strict
461
+ - id: ts.next.server-action-missing-local-auth
462
+ rulePath: ./rules/typescript/ts.next.server-action-missing-local-auth.rule.yaml
463
+ presets:
464
+ - recommended
465
+ - strict
466
+ - security
467
+ - id: ts.react.no-index-as-key-in-dynamic-list
468
+ rulePath: ./rules/typescript/ts.react.no-index-as-key-in-dynamic-list.rule.yaml
469
+ presets:
470
+ - strict
471
+ - id: ts.react.no-derived-state-from-props
472
+ rulePath: ./rules/typescript/ts.react.no-derived-state-from-props.rule.yaml
473
+ presets:
474
+ - strict
475
+ - id: ts.react.no-missing-error-boundary
476
+ rulePath: ./rules/typescript/ts.react.no-missing-error-boundary.rule.yaml
477
+ presets:
478
+ - strict
479
+ - id: ts.react.no-accessibility-label-missing
480
+ rulePath: ./rules/typescript/ts.react.no-accessibility-label-missing.rule.yaml
481
+ presets:
482
+ - strict
483
+ - id: ts.react.no-img-missing-alt-text
484
+ rulePath: ./rules/typescript/ts.react.no-img-missing-alt-text.rule.yaml
485
+ presets:
486
+ - strict
487
+ - id: ts.react.no-positive-tabindex
488
+ rulePath: ./rules/typescript/ts.react.no-positive-tabindex.rule.yaml
489
+ presets:
490
+ - strict
491
+ - id: ts.react.no-click-without-keyboard-handler
492
+ rulePath: ./rules/typescript/ts.react.no-click-without-keyboard-handler.rule.yaml
493
+ presets:
494
+ - strict
495
+ - id: ts.react.no-find-dom-node
496
+ rulePath: ./rules/typescript/ts.react.no-find-dom-node.rule.yaml
497
+ presets:
498
+ - strict
499
+ - id: ts.react.no-string-ref
500
+ rulePath: ./rules/typescript/ts.react.no-string-ref.rule.yaml
501
+ presets:
502
+ - strict
503
+ - id: ts.react.no-legacy-lifecycle
504
+ rulePath: ./rules/typescript/ts.react.no-legacy-lifecycle.rule.yaml
505
+ presets:
506
+ - strict
507
+ - id: ts.react.no-uncontrolled-to-controlled-input
508
+ rulePath: ./rules/typescript/ts.react.no-uncontrolled-to-controlled-input.rule.yaml
509
+ presets:
510
+ - strict
511
+ - id: ts.react.no-invalid-anchor-href
512
+ rulePath: ./rules/typescript/ts.react.no-invalid-anchor-href.rule.yaml
513
+ presets:
514
+ - strict
515
+ - id: ts.react.no-activedescendant-on-non-focusable-host
516
+ rulePath: ./rules/typescript/ts.react.no-activedescendant-on-non-focusable-host.rule.yaml
517
+ presets:
518
+ - strict
519
+ - id: ts.react.no-widget-role-without-tabindex
520
+ rulePath: ./rules/typescript/ts.react.no-widget-role-without-tabindex.rule.yaml
521
+ presets:
522
+ - strict
523
+ - id: ts.react.no-interactive-role-on-static-semantics
524
+ rulePath: ./rules/typescript/ts.react.no-interactive-role-on-static-semantics.rule.yaml
525
+ presets:
526
+ - strict
527
+ - id: ts.react.no-keyboard-interaction-without-widget-role
528
+ rulePath: ./rules/typescript/ts.react.no-keyboard-interaction-without-widget-role.rule.yaml
529
+ presets:
530
+ - strict
531
+ - id: ts.react.no-static-element-with-synthetic-handlers
532
+ rulePath: ./rules/typescript/ts.react.no-static-element-with-synthetic-handlers.rule.yaml
533
+ presets:
534
+ - strict
535
+ - id: ts.react.no-deprecated-react-dom-root-api
536
+ rulePath: ./rules/typescript/ts.react.no-deprecated-react-dom-root-api.rule.yaml
537
+ presets:
538
+ - strict
539
+ - id: ts.react.no-deprecated-create-factory
540
+ rulePath: ./rules/typescript/ts.react.no-deprecated-create-factory.rule.yaml
541
+ presets:
542
+ - strict
197
543
  - id: security.no-sql-interpolation
198
544
  rulePath: ./rules/shared/security.no-sql-interpolation.rule.yaml
199
545
  presets:
@@ -274,6 +620,54 @@ rules:
274
620
  - recommended
275
621
  - strict
276
622
  - security
623
+ - id: ts.security.angular-dom-sanitizer-bypass-untrusted-input
624
+ rulePath: ./rules/typescript/ts.security.angular-dom-sanitizer-bypass-untrusted-input.rule.yaml
625
+ presets:
626
+ - recommended
627
+ - strict
628
+ - security
629
+ - id: ts.security.astro-vite-public-secret-define
630
+ rulePath: ./rules/typescript/ts.security.astro-vite-public-secret-define.rule.yaml
631
+ presets:
632
+ - recommended
633
+ - strict
634
+ - security
635
+ - id: ts.security.nuxt-public-runtime-secret
636
+ rulePath: ./rules/typescript/ts.security.nuxt-public-runtime-secret.rule.yaml
637
+ presets:
638
+ - recommended
639
+ - strict
640
+ - security
641
+ - id: ts.security.apollo-server-csrf-disabled
642
+ rulePath: ./rules/typescript/ts.security.apollo-server-csrf-disabled.rule.yaml
643
+ presets:
644
+ - recommended
645
+ - strict
646
+ - security
647
+ - id: ts.security.apollo-server-introspection-exposure
648
+ rulePath: ./rules/typescript/ts.security.apollo-server-introspection-exposure.rule.yaml
649
+ presets:
650
+ - recommended
651
+ - strict
652
+ - security
653
+ - id: ts.security.apollo-server-missing-query-limits
654
+ rulePath: ./rules/typescript/ts.security.apollo-server-missing-query-limits.rule.yaml
655
+ presets:
656
+ - recommended
657
+ - strict
658
+ - security
659
+ - id: ts.security.apollo-server-graphql-dev-tooling-exposure
660
+ rulePath: ./rules/typescript/ts.security.apollo-server-graphql-dev-tooling-exposure.rule.yaml
661
+ presets:
662
+ - recommended
663
+ - strict
664
+ - security
665
+ - id: ts.security.graphql-upload-without-csrf-guard
666
+ rulePath: ./rules/typescript/ts.security.graphql-upload-without-csrf-guard.rule.yaml
667
+ presets:
668
+ - recommended
669
+ - strict
670
+ - security
277
671
  - id: ts.security.browser-token-storage
278
672
  rulePath: ./rules/typescript/ts.security.browser-token-storage.rule.yaml
279
673
  presets:
@@ -309,6 +703,21 @@ rules:
309
703
  presets:
310
704
  - strict
311
705
  - security
706
+ - id: security.sensitive-data-egress
707
+ rulePath: ./rules/shared/security.sensitive-data-egress.rule.yaml
708
+ presets:
709
+ - strict
710
+ - security
711
+ - id: ts.security.unsafe-dompurify-version
712
+ rulePath: ./rules/typescript/ts.security.unsafe-dompurify-version.rule.yaml
713
+ presets:
714
+ - strict
715
+ - security
716
+ - id: ts.security.unsafe-marked-version
717
+ rulePath: ./rules/typescript/ts.security.unsafe-marked-version.rule.yaml
718
+ presets:
719
+ - strict
720
+ - security
312
721
  - id: security.no-sensitive-data-in-logs-and-telemetry
313
722
  rulePath: ./rules/shared/security.no-sensitive-data-in-logs-and-telemetry.rule.yaml
314
723
  presets:
@@ -460,61 +869,103 @@ rules:
460
869
  - recommended
461
870
  - strict
462
871
  - security
463
- - id: ts.security.express-nosql-injection
464
- rulePath: ./rules/typescript/ts.security.express-nosql-injection.rule.yaml
872
+ - id: ts.security.nestjs-helmet-after-route-mount
873
+ rulePath: ./rules/typescript/ts.security.nestjs-helmet-after-route-mount.rule.yaml
465
874
  presets:
466
875
  - recommended
467
876
  - strict
468
877
  - security
469
- - id: ts.security.observable-timing-discrepancy
470
- rulePath: ./rules/typescript/ts.security.observable-timing-discrepancy.rule.yaml
878
+ - id: ts.security.nestjs-missing-global-validation-pipe
879
+ rulePath: ./rules/typescript/ts.security.nestjs-missing-global-validation-pipe.rule.yaml
471
880
  presets:
472
881
  - recommended
473
882
  - strict
474
883
  - security
475
- - id: ts.security.external-file-upload
476
- rulePath: ./rules/typescript/ts.security.external-file-upload.rule.yaml
884
+ - id: ts.security.nestjs-skip-throttle-sensitive-route
885
+ rulePath: ./rules/typescript/ts.security.nestjs-skip-throttle-sensitive-route.rule.yaml
477
886
  presets:
478
887
  - recommended
479
888
  - strict
480
889
  - security
481
- - id: ts.security.file-generation
482
- rulePath: ./rules/typescript/ts.security.file-generation.rule.yaml
890
+ - id: ts.security.nestjs-validation-pipe-without-whitelist
891
+ rulePath: ./rules/typescript/ts.security.nestjs-validation-pipe-without-whitelist.rule.yaml
483
892
  presets:
484
893
  - recommended
485
894
  - strict
486
895
  - security
487
- - id: ts.security.non-literal-fs-filename
488
- rulePath: ./rules/typescript/ts.security.non-literal-fs-filename.rule.yaml
896
+ - id: ts.security.express-nosql-injection
897
+ rulePath: ./rules/typescript/ts.security.express-nosql-injection.rule.yaml
489
898
  presets:
490
899
  - recommended
491
900
  - strict
492
901
  - security
493
- - id: ts.security.permissive-file-permissions
494
- rulePath: ./rules/typescript/ts.security.permissive-file-permissions.rule.yaml
902
+ - id: ts.security.observable-timing-discrepancy
903
+ rulePath: ./rules/typescript/ts.security.observable-timing-discrepancy.rule.yaml
495
904
  presets:
496
905
  - recommended
497
906
  - strict
498
907
  - security
499
- - id: ts.security.postmessage-wildcard-origin
500
- rulePath: ./rules/typescript/ts.security.postmessage-wildcard-origin.rule.yaml
908
+ - id: ts.security.external-file-upload
909
+ rulePath: ./rules/typescript/ts.security.external-file-upload.rule.yaml
501
910
  presets:
502
911
  - recommended
503
912
  - strict
504
913
  - security
505
- - id: ts.security.raw-html-using-user-input
506
- rulePath: ./rules/typescript/ts.security.raw-html-using-user-input.rule.yaml
914
+ - id: security.external-file-upload
915
+ rulePath: ./rules/shared/security.external-file-upload.rule.yaml
507
916
  presets:
508
917
  - recommended
509
918
  - strict
510
919
  - security
511
- - id: ts.security.sensitive-data-in-exception
512
- rulePath: ./rules/typescript/ts.security.sensitive-data-in-exception.rule.yaml
920
+ - id: security.archive-path-traversal
921
+ rulePath: ./rules/shared/security.archive-path-traversal.rule.yaml
513
922
  presets:
514
923
  - recommended
515
924
  - strict
516
925
  - security
517
- - id: ts.security.sensitive-data-written-to-file
926
+ - id: ts.security.file-generation
927
+ rulePath: ./rules/typescript/ts.security.file-generation.rule.yaml
928
+ presets:
929
+ - recommended
930
+ - strict
931
+ - security
932
+ - id: ts.security.non-literal-fs-filename
933
+ rulePath: ./rules/typescript/ts.security.non-literal-fs-filename.rule.yaml
934
+ presets:
935
+ - recommended
936
+ - strict
937
+ - security
938
+ - id: ts.security.permissive-file-permissions
939
+ rulePath: ./rules/typescript/ts.security.permissive-file-permissions.rule.yaml
940
+ presets:
941
+ - recommended
942
+ - strict
943
+ - security
944
+ - id: security.permissive-file-permissions
945
+ rulePath: ./rules/shared/security.permissive-file-permissions.rule.yaml
946
+ presets:
947
+ - recommended
948
+ - strict
949
+ - security
950
+ - id: ts.security.postmessage-wildcard-origin
951
+ rulePath: ./rules/typescript/ts.security.postmessage-wildcard-origin.rule.yaml
952
+ presets:
953
+ - recommended
954
+ - strict
955
+ - security
956
+ - id: ts.security.raw-html-using-user-input
957
+ rulePath: ./rules/typescript/ts.security.raw-html-using-user-input.rule.yaml
958
+ presets:
959
+ - recommended
960
+ - strict
961
+ - security
962
+ - id: ts.security.sensitive-data-in-exception
963
+ rulePath: ./rules/typescript/ts.security.sensitive-data-in-exception.rule.yaml
964
+ presets:
965
+ - recommended
966
+ - strict
967
+ - security
968
+ - id: ts.security.sensitive-data-written-to-file
518
969
  rulePath: ./rules/typescript/ts.security.sensitive-data-written-to-file.rule.yaml
519
970
  presets:
520
971
  - recommended
@@ -532,12 +983,95 @@ rules:
532
983
  - recommended
533
984
  - strict
534
985
  - security
986
+ - id: ts.security.insecure-helmet-hardening-options
987
+ rulePath: ./rules/typescript/ts.security.insecure-helmet-hardening-options.rule.yaml
988
+ presets:
989
+ - strict
990
+ - security
991
+ - id: ts.security.express-static-dotfiles-allow
992
+ rulePath: ./rules/typescript/ts.security.express-static-dotfiles-allow.rule.yaml
993
+ presets:
994
+ - strict
995
+ - security
996
+ - id: ts.security.insecure-content-security-policy-literal
997
+ rulePath: ./rules/typescript/ts.security.insecure-content-security-policy-literal.rule.yaml
998
+ presets:
999
+ - strict
1000
+ - security
1001
+ - id: ts.security.ajv-insecure-configuration
1002
+ rulePath: ./rules/typescript/ts.security.ajv-insecure-configuration.rule.yaml
1003
+ presets:
1004
+ - strict
1005
+ - security
1006
+ - id: ts.security.xml-parse-string-with-untrusted-input
1007
+ rulePath: ./rules/typescript/ts.security.xml-parse-string-with-untrusted-input.rule.yaml
1008
+ presets:
1009
+ - strict
1010
+ - security
1011
+ - id: ts.security.express-error-handler-information-disclosure
1012
+ rulePath: ./rules/typescript/ts.security.express-error-handler-information-disclosure.rule.yaml
1013
+ presets:
1014
+ - strict
1015
+ - security
1016
+ - id: ts.security.request-driven-array-index-access
1017
+ rulePath: ./rules/typescript/ts.security.request-driven-array-index-access.rule.yaml
1018
+ presets:
1019
+ - strict
1020
+ - security
1021
+ - id: ts.security.express-user-controlled-static-mount
1022
+ rulePath: ./rules/typescript/ts.security.express-user-controlled-static-mount.rule.yaml
1023
+ presets:
1024
+ - strict
1025
+ - security
1026
+ - id: ts.security.legacy-buffer-constructor
1027
+ rulePath: ./rules/typescript/ts.security.legacy-buffer-constructor.rule.yaml
1028
+ presets:
1029
+ - recommended
1030
+ - strict
1031
+ - security
1032
+ - id: ts.security.iframe-missing-sandbox-attribute
1033
+ rulePath: ./rules/typescript/ts.security.iframe-missing-sandbox-attribute.rule.yaml
1034
+ presets:
1035
+ - strict
1036
+ - security
1037
+ - id: ts.security.jwt-insecure-signing-algorithm
1038
+ rulePath: ./rules/typescript/ts.security.jwt-insecure-signing-algorithm.rule.yaml
1039
+ presets:
1040
+ - recommended
1041
+ - strict
1042
+ - security
1043
+ - id: ts.security.electron-dangerous-webpreferences
1044
+ rulePath: ./rules/typescript/ts.security.electron-dangerous-webpreferences.rule.yaml
1045
+ presets:
1046
+ - strict
1047
+ - security
1048
+ - id: ts.security.electron-missing-ipc-origin-check
1049
+ rulePath: ./rules/typescript/ts.security.electron-missing-ipc-origin-check.rule.yaml
1050
+ presets:
1051
+ - strict
1052
+ - security
1053
+ - id: ts.security.electron-insecure-local-state
1054
+ rulePath: ./rules/typescript/ts.security.electron-insecure-local-state.rule.yaml
1055
+ presets:
1056
+ - strict
1057
+ - security
1058
+ - id: ts.security.electron-shell-open-external-unvalidated
1059
+ rulePath: ./rules/typescript/ts.security.electron-shell-open-external-unvalidated.rule.yaml
1060
+ presets:
1061
+ - strict
1062
+ - security
535
1063
  - id: ts.security.format-string-using-user-input
536
1064
  rulePath: ./rules/typescript/ts.security.format-string-using-user-input.rule.yaml
537
1065
  presets:
538
1066
  - recommended
539
1067
  - strict
540
1068
  - security
1069
+ - id: ts.security.log-injection
1070
+ rulePath: ./rules/typescript/ts.security.log-injection.rule.yaml
1071
+ presets:
1072
+ - recommended
1073
+ - strict
1074
+ - security
541
1075
  - id: ts.security.user-controlled-sendfile
542
1076
  rulePath: ./rules/typescript/ts.security.user-controlled-sendfile.rule.yaml
543
1077
  presets:
@@ -575,6 +1109,24 @@ rules:
575
1109
  presets:
576
1110
  - strict
577
1111
  - security
1112
+ - id: ts.security.express-unbounded-body-parser
1113
+ rulePath: ./rules/typescript/ts.security.express-unbounded-body-parser.rule.yaml
1114
+ presets:
1115
+ - recommended
1116
+ - strict
1117
+ - security
1118
+ - id: ts.security.fastify-excessive-body-limit
1119
+ rulePath: ./rules/typescript/ts.security.fastify-excessive-body-limit.rule.yaml
1120
+ presets:
1121
+ - recommended
1122
+ - strict
1123
+ - security
1124
+ - id: ts.security.fastify-public-bind-without-trust-proxy
1125
+ rulePath: ./rules/typescript/ts.security.fastify-public-bind-without-trust-proxy.rule.yaml
1126
+ presets:
1127
+ - recommended
1128
+ - strict
1129
+ - security
578
1130
  - id: ts.security.express-missing-helmet
579
1131
  rulePath: ./rules/typescript/ts.security.express-missing-helmet.rule.yaml
580
1132
  presets:
@@ -591,9 +1143,423 @@ rules:
591
1143
  - recommended
592
1144
  - strict
593
1145
  - security
1146
+ - id: ts.security.debug-statement-in-source
1147
+ rulePath: ./rules/typescript/ts.security.debug-statement-in-source.rule.yaml
1148
+ presets:
1149
+ - recommended
1150
+ - strict
1151
+ - security
594
1152
  - id: ts.security.unsanitized-http-response
595
1153
  rulePath: ./rules/typescript/ts.security.unsanitized-http-response.rule.yaml
596
1154
  presets:
597
1155
  - recommended
598
1156
  - strict
599
1157
  - security
1158
+ - id: py.security.django-unsafe-production-settings
1159
+ rulePath: ./rules/python/py.security.django-unsafe-production-settings.rule.yaml
1160
+ presets:
1161
+ - strict
1162
+ - security
1163
+ - id: py.security.django-csrf-exempt-state-changing
1164
+ rulePath: ./rules/python/py.security.django-csrf-exempt-state-changing.rule.yaml
1165
+ presets:
1166
+ - strict
1167
+ - security
1168
+ - id: py.security.django-missing-csrf-middleware
1169
+ rulePath: ./rules/python/py.security.django-missing-csrf-middleware.rule.yaml
1170
+ presets:
1171
+ - strict
1172
+ - security
1173
+ - id: py.security.drf-allow-any-default
1174
+ rulePath: ./rules/python/py.security.drf-allow-any-default.rule.yaml
1175
+ presets:
1176
+ - strict
1177
+ - security
1178
+ - id: py.security.drf-allow-any-unsafe-method
1179
+ rulePath: ./rules/python/py.security.drf-allow-any-unsafe-method.rule.yaml
1180
+ presets:
1181
+ - strict
1182
+ - security
1183
+ - id: py.security.flask-unsafe-html-output
1184
+ rulePath: ./rules/python/py.security.flask-unsafe-html-output.rule.yaml
1185
+ presets:
1186
+ - strict
1187
+ - security
1188
+ - id: py.security.flask-unsafe-upload-filename
1189
+ rulePath: ./rules/python/py.security.flask-unsafe-upload-filename.rule.yaml
1190
+ presets:
1191
+ - strict
1192
+ - security
1193
+ - id: py.security.flask-missing-upload-body-limit
1194
+ rulePath: ./rules/python/py.security.flask-missing-upload-body-limit.rule.yaml
1195
+ presets:
1196
+ - strict
1197
+ - security
1198
+ - id: py.security.fastapi-insecure-cors
1199
+ rulePath: ./rules/python/py.security.fastapi-insecure-cors.rule.yaml
1200
+ presets:
1201
+ - strict
1202
+ - security
1203
+ - id: java.security.android-screenshot-exposure
1204
+ rulePath: ./rules/java/java.security.android-screenshot-exposure.rule.yaml
1205
+ presets:
1206
+ - recommended
1207
+ - strict
1208
+ - security
1209
+ - id: java.security.android-world-readable-mode
1210
+ rulePath: ./rules/java/java.security.android-world-readable-mode.rule.yaml
1211
+ presets:
1212
+ - recommended
1213
+ - strict
1214
+ - security
1215
+ - id: java.security.jpa-concatenated-query
1216
+ rulePath: ./rules/java/java.security.jpa-concatenated-query.rule.yaml
1217
+ presets:
1218
+ - strict
1219
+ - security
1220
+ - id: java.security.reflected-output-from-request
1221
+ rulePath: ./rules/java/java.security.reflected-output-from-request.rule.yaml
1222
+ presets:
1223
+ - strict
1224
+ - security
1225
+ - id: java.security.servlet-insecure-cookie
1226
+ rulePath: ./rules/java/java.security.servlet-insecure-cookie.rule.yaml
1227
+ presets:
1228
+ - recommended
1229
+ - strict
1230
+ - security
1231
+ - id: java.security.spring-actuator-health-details-always
1232
+ rulePath: ./rules/java/java.security.spring-actuator-health-details-always.rule.yaml
1233
+ presets:
1234
+ - strict
1235
+ - security
1236
+ - id: java.security.spring-actuator-sensitive-exposure
1237
+ rulePath: ./rules/java/java.security.spring-actuator-sensitive-exposure.rule.yaml
1238
+ presets:
1239
+ - strict
1240
+ - security
1241
+ - id: java.security.spring-csrf-globally-disabled
1242
+ rulePath: ./rules/java/java.security.spring-csrf-globally-disabled.rule.yaml
1243
+ presets:
1244
+ - strict
1245
+ - security
1246
+ - id: java.security.spring-debug-exposure
1247
+ rulePath: ./rules/java/java.security.spring-debug-exposure.rule.yaml
1248
+ presets:
1249
+ - strict
1250
+ - security
1251
+ - id: java.security.spring-permit-all-default
1252
+ rulePath: ./rules/java/java.security.spring-permit-all-default.rule.yaml
1253
+ presets:
1254
+ - strict
1255
+ - security
1256
+ - id: java.security.spring-webmvc-unrestricted-data-binding
1257
+ rulePath: ./rules/java/java.security.spring-webmvc-unrestricted-data-binding.rule.yaml
1258
+ presets:
1259
+ - strict
1260
+ - security
1261
+ - id: java.security.template-unescaped-user-output
1262
+ rulePath: ./rules/java/java.security.template-unescaped-user-output.rule.yaml
1263
+ presets:
1264
+ - strict
1265
+ - security
1266
+ - id: ruby.security.rails-csrf-disabled
1267
+ rulePath: ./rules/ruby/ruby.security.rails-csrf-disabled.rule.yaml
1268
+ presets:
1269
+ - strict
1270
+ - security
1271
+ - id: ruby.security.rails-detailed-exceptions-enabled
1272
+ rulePath: ./rules/ruby/ruby.security.rails-detailed-exceptions-enabled.rule.yaml
1273
+ presets:
1274
+ - strict
1275
+ - security
1276
+ - id: ruby.security.rails-open-redirect
1277
+ rulePath: ./rules/ruby/ruby.security.rails-open-redirect.rule.yaml
1278
+ presets:
1279
+ - strict
1280
+ - security
1281
+ - id: ruby.security.rails-unsafe-html-output
1282
+ rulePath: ./rules/ruby/ruby.security.rails-unsafe-html-output.rule.yaml
1283
+ presets:
1284
+ - strict
1285
+ - security
1286
+ - id: ruby.security.rails-unsafe-render
1287
+ rulePath: ./rules/ruby/ruby.security.rails-unsafe-render.rule.yaml
1288
+ presets:
1289
+ - strict
1290
+ - security
1291
+ - id: ruby.security.rails-unsafe-session-or-cookie-store
1292
+ rulePath: ./rules/ruby/ruby.security.rails-unsafe-session-or-cookie-store.rule.yaml
1293
+ presets:
1294
+ - strict
1295
+ - security
1296
+ - id: ruby.security.rails-unsafe-strong-parameters
1297
+ rulePath: ./rules/ruby/ruby.security.rails-unsafe-strong-parameters.rule.yaml
1298
+ presets:
1299
+ - strict
1300
+ - security
1301
+ - id: ruby.security.sensitive-data-egress
1302
+ rulePath: ./rules/ruby/ruby.security.sensitive-data-egress.rule.yaml
1303
+ presets:
1304
+ - strict
1305
+ - security
1306
+ - id: ruby.security.sidekiq-web-unauthenticated-mount
1307
+ rulePath: ./rules/ruby/ruby.security.sidekiq-web-unauthenticated-mount.rule.yaml
1308
+ presets:
1309
+ - strict
1310
+ - security
1311
+ - id: rust.security.actix-wildcard-cors-with-credentials
1312
+ rulePath: ./rules/rust/rust.security.actix-wildcard-cors-with-credentials.rule.yaml
1313
+ presets:
1314
+ - strict
1315
+ - security
1316
+ - id: rust.security.axum-body-limit-disabled
1317
+ rulePath: ./rules/rust/rust.security.axum-body-limit-disabled.rule.yaml
1318
+ presets:
1319
+ - strict
1320
+ - security
1321
+ - id: rust.security.axum-insecure-cors-with-credentials
1322
+ rulePath: ./rules/rust/rust.security.axum-insecure-cors-with-credentials.rule.yaml
1323
+ presets:
1324
+ - strict
1325
+ - security
1326
+ - id: rust.security.rocket-panic-prone-request-handler
1327
+ rulePath: ./rules/rust/rust.security.rocket-panic-prone-request-handler.rule.yaml
1328
+ presets:
1329
+ - strict
1330
+ - security
1331
+ - id: rust.security.rocket-unsafe-template-output
1332
+ rulePath: ./rules/rust/rust.security.rocket-unsafe-template-output.rule.yaml
1333
+ presets:
1334
+ - strict
1335
+ - security
1336
+ - id: rust.security.sqlx-diesel-raw-interpolated-query
1337
+ rulePath: ./rules/rust/rust.security.sqlx-diesel-raw-interpolated-query.rule.yaml
1338
+ presets:
1339
+ - strict
1340
+ - security
1341
+ - id: rust.security.template-unescaped-request-value
1342
+ rulePath: ./rules/rust/rust.security.template-unescaped-request-value.rule.yaml
1343
+ presets:
1344
+ - strict
1345
+ - security
1346
+ - id: rust.security.warp-blocking-or-panic-in-async-handler
1347
+ rulePath: ./rules/rust/rust.security.warp-blocking-or-panic-in-async-handler.rule.yaml
1348
+ presets:
1349
+ - strict
1350
+ - security
1351
+ - id: go.testing.t-skip-without-ticket-reference
1352
+ rulePath: ./rules/go/go.testing.t-skip-without-ticket-reference.rule.yaml
1353
+ presets:
1354
+ - recommended
1355
+ - strict
1356
+ - id: go.testing.time-sleep-in-unit-test
1357
+ rulePath: ./rules/go/go.testing.time-sleep-in-unit-test.rule.yaml
1358
+ presets:
1359
+ - recommended
1360
+ - strict
1361
+ - id: go.testing.real-network-in-unit-test
1362
+ rulePath: ./rules/go/go.testing.real-network-in-unit-test.rule.yaml
1363
+ presets:
1364
+ - recommended
1365
+ - strict
1366
+ - id: py.testing.pytest-skip-without-ticket-reference
1367
+ rulePath: ./rules/python/py.testing.pytest-skip-without-ticket-reference.rule.yaml
1368
+ presets:
1369
+ - recommended
1370
+ - strict
1371
+ - id: py.testing.real-network-in-unit-test
1372
+ rulePath: ./rules/python/py.testing.real-network-in-unit-test.rule.yaml
1373
+ presets:
1374
+ - recommended
1375
+ - strict
1376
+ - id: py.testing.time-sleep-in-unit-test
1377
+ rulePath: ./rules/python/py.testing.time-sleep-in-unit-test.rule.yaml
1378
+ presets:
1379
+ - recommended
1380
+ - strict
1381
+ - id: ruby.testing.focused-example
1382
+ rulePath: ./rules/ruby/ruby.testing.focused-example.rule.yaml
1383
+ presets:
1384
+ - recommended
1385
+ - strict
1386
+ - id: ruby.testing.skip-without-ticket-reference
1387
+ rulePath: ./rules/ruby/ruby.testing.skip-without-ticket-reference.rule.yaml
1388
+ presets:
1389
+ - recommended
1390
+ - strict
1391
+ - id: ruby.testing.pending-without-ticket-reference
1392
+ rulePath: ./rules/ruby/ruby.testing.pending-without-ticket-reference.rule.yaml
1393
+ presets:
1394
+ - recommended
1395
+ - strict
1396
+ - id: ruby.testing.real-network-in-unit-test
1397
+ rulePath: ./rules/ruby/ruby.testing.real-network-in-unit-test.rule.yaml
1398
+ presets:
1399
+ - recommended
1400
+ - strict
1401
+ - id: ruby.testing.sleep-in-unit-test
1402
+ rulePath: ./rules/ruby/ruby.testing.sleep-in-unit-test.rule.yaml
1403
+ presets:
1404
+ - recommended
1405
+ - strict
1406
+ - id: rust.testing.ignore-without-ticket-reference
1407
+ rulePath: ./rules/rust/rust.testing.ignore-without-ticket-reference.rule.yaml
1408
+ presets:
1409
+ - recommended
1410
+ - strict
1411
+ - id: rust.testing.real-network-in-unit-test
1412
+ rulePath: ./rules/rust/rust.testing.real-network-in-unit-test.rule.yaml
1413
+ presets:
1414
+ - recommended
1415
+ - strict
1416
+ - id: rust.testing.thread-sleep-in-unit-test
1417
+ rulePath: ./rules/rust/rust.testing.thread-sleep-in-unit-test.rule.yaml
1418
+ presets:
1419
+ - recommended
1420
+ - strict
1421
+ - id: java.testing.disabled-without-ticket-reference
1422
+ rulePath: ./rules/java/java.testing.disabled-without-ticket-reference.rule.yaml
1423
+ presets:
1424
+ - recommended
1425
+ - strict
1426
+ - id: java.testing.thread-sleep-in-unit-test
1427
+ rulePath: ./rules/java/java.testing.thread-sleep-in-unit-test.rule.yaml
1428
+ presets:
1429
+ - recommended
1430
+ - strict
1431
+ - id: java.testing.http-client-in-unit-test
1432
+ rulePath: ./rules/java/java.testing.http-client-in-unit-test.rule.yaml
1433
+ presets:
1434
+ - recommended
1435
+ - strict
1436
+ - id: php.testing.mark-test-skipped-without-ticket-reference
1437
+ rulePath: ./rules/php/php.testing.mark-test-skipped-without-ticket-reference.rule.yaml
1438
+ presets:
1439
+ - recommended
1440
+ - strict
1441
+ - id: php.testing.sleep-in-unit-test
1442
+ rulePath: ./rules/php/php.testing.sleep-in-unit-test.rule.yaml
1443
+ presets:
1444
+ - recommended
1445
+ - strict
1446
+ - id: php.testing.curl-in-unit-test
1447
+ rulePath: ./rules/php/php.testing.curl-in-unit-test.rule.yaml
1448
+ presets:
1449
+ - recommended
1450
+ - strict
1451
+ - id: go.security.echo-sensitive-binding-without-validation
1452
+ rulePath: ./rules/go/go.security.echo-sensitive-binding-without-validation.rule.yaml
1453
+ presets:
1454
+ - strict
1455
+ - security
1456
+ - id: go.security.echo-unsafe-multipart-upload
1457
+ rulePath: ./rules/go/go.security.echo-unsafe-multipart-upload.rule.yaml
1458
+ presets:
1459
+ - strict
1460
+ - security
1461
+ - id: go.security.fiber-sensitive-binding-without-validation
1462
+ rulePath: ./rules/go/go.security.fiber-sensitive-binding-without-validation.rule.yaml
1463
+ presets:
1464
+ - strict
1465
+ - security
1466
+ - id: go.security.fiber-unsafe-multipart-upload
1467
+ rulePath: ./rules/go/go.security.fiber-unsafe-multipart-upload.rule.yaml
1468
+ presets:
1469
+ - strict
1470
+ - security
1471
+ - id: go.security.gin-sensitive-binding-without-validation
1472
+ rulePath: ./rules/go/go.security.gin-sensitive-binding-without-validation.rule.yaml
1473
+ presets:
1474
+ - strict
1475
+ - security
1476
+ - id: go.security.gin-trust-all-proxies
1477
+ rulePath: ./rules/go/go.security.gin-trust-all-proxies.rule.yaml
1478
+ presets:
1479
+ - strict
1480
+ - security
1481
+ - id: go.security.gin-wildcard-cors-with-credentials
1482
+ rulePath: ./rules/go/go.security.gin-wildcard-cors-with-credentials.rule.yaml
1483
+ presets:
1484
+ - strict
1485
+ - security
1486
+ - id: go.security.net-http-missing-timeouts
1487
+ rulePath: ./rules/go/go.security.net-http-missing-timeouts.rule.yaml
1488
+ presets:
1489
+ - strict
1490
+ - security
1491
+ - id: go.security.sensitive-data-egress
1492
+ rulePath: ./rules/go/go.security.sensitive-data-egress.rule.yaml
1493
+ presets:
1494
+ - strict
1495
+ - security
1496
+ - id: go.security.tar-path-traversal
1497
+ rulePath: ./rules/go/go.security.tar-path-traversal.rule.yaml
1498
+ presets:
1499
+ - strict
1500
+ - security
1501
+ - id: go.security.template-unescaped-request-value
1502
+ rulePath: ./rules/go/go.security.template-unescaped-request-value.rule.yaml
1503
+ presets:
1504
+ - strict
1505
+ - security
1506
+ - id: php.security.insecure-cors-wildcard-with-credentials
1507
+ rulePath: ./rules/php/php.security.insecure-cors-wildcard-with-credentials.rule.yaml
1508
+ presets:
1509
+ - strict
1510
+ - security
1511
+ - id: php.security.insecure-mail-or-file-transport
1512
+ rulePath: ./rules/php/php.security.insecure-mail-or-file-transport.rule.yaml
1513
+ presets:
1514
+ - strict
1515
+ - security
1516
+ - id: php.security.insecure-session-or-cookie-config
1517
+ rulePath: ./rules/php/php.security.insecure-session-or-cookie-config.rule.yaml
1518
+ presets:
1519
+ - strict
1520
+ - security
1521
+ - id: php.security.laravel-sensitive-csrf-exclusion
1522
+ rulePath: ./rules/php/php.security.laravel-sensitive-csrf-exclusion.rule.yaml
1523
+ presets:
1524
+ - strict
1525
+ - security
1526
+ - id: php.security.laravel-unsafe-blade-output
1527
+ rulePath: ./rules/php/php.security.laravel-unsafe-blade-output.rule.yaml
1528
+ presets:
1529
+ - strict
1530
+ - security
1531
+ - id: php.security.laravel-unsafe-mass-assignment
1532
+ rulePath: ./rules/php/php.security.laravel-unsafe-mass-assignment.rule.yaml
1533
+ presets:
1534
+ - strict
1535
+ - security
1536
+ - id: php.security.sensitive-data-egress
1537
+ rulePath: ./rules/php/php.security.sensitive-data-egress.rule.yaml
1538
+ presets:
1539
+ - strict
1540
+ - security
1541
+ - id: php.security.symfony-csrf-disabled
1542
+ rulePath: ./rules/php/php.security.symfony-csrf-disabled.rule.yaml
1543
+ presets:
1544
+ - strict
1545
+ - security
1546
+ - id: php.security.symfony-debug-exposure
1547
+ rulePath: ./rules/php/php.security.symfony-debug-exposure.rule.yaml
1548
+ presets:
1549
+ - strict
1550
+ - security
1551
+ - id: php.security.unsafe-file-upload-handling
1552
+ rulePath: ./rules/php/php.security.unsafe-file-upload-handling.rule.yaml
1553
+ presets:
1554
+ - strict
1555
+ - security
1556
+ - id: php.security.wordpress-missing-nonce-or-capability
1557
+ rulePath: ./rules/php/php.security.wordpress-missing-nonce-or-capability.rule.yaml
1558
+ presets:
1559
+ - strict
1560
+ - security
1561
+ - id: php.security.wordpress-unprepared-sql
1562
+ rulePath: ./rules/php/php.security.wordpress-unprepared-sql.rule.yaml
1563
+ presets:
1564
+ - strict
1565
+ - security