@flow-scanner/lightning-flow-scanner-core 6.16.2 → 6.17.1

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 (508) hide show
  1. package/.husky/pre-commit +1 -0
  2. package/.husky/pre-push +1 -0
  3. package/.prettierignore +5 -0
  4. package/.swcrc +26 -0
  5. package/.turbo/turbo-build.log +17 -0
  6. package/.turbo/turbo-test.log +144 -0
  7. package/.turbo/turbo-vite$colon$dist.log +21 -0
  8. package/coverage/coverage-final.json +63 -0
  9. package/coverage/lcov-report/base.css +224 -0
  10. package/coverage/lcov-report/block-navigation.js +87 -0
  11. package/coverage/lcov-report/favicon.png +0 -0
  12. package/coverage/lcov-report/index.html +236 -0
  13. package/coverage/lcov-report/prettify.css +1 -0
  14. package/coverage/lcov-report/prettify.js +2 -0
  15. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  16. package/coverage/lcov-report/sorter.js +210 -0
  17. package/coverage/lcov-report/src/index.html +116 -0
  18. package/coverage/lcov-report/src/index.ts.html +238 -0
  19. package/coverage/lcov-report/src/main/adapters/RegexAdapter.ts.html +118 -0
  20. package/coverage/lcov-report/src/main/adapters/index.html +116 -0
  21. package/coverage/lcov-report/src/main/config/NodeIcons.ts.html +376 -0
  22. package/coverage/lcov-report/src/main/config/RuleRegistry.ts.html +646 -0
  23. package/coverage/lcov-report/src/main/config/VariableIcons.ts.html +253 -0
  24. package/coverage/lcov-report/src/main/config/index.html +146 -0
  25. package/coverage/lcov-report/src/main/enums/MetaType.ts.html +100 -0
  26. package/coverage/lcov-report/src/main/enums/MetadataType.ts.html +103 -0
  27. package/coverage/lcov-report/src/main/enums/MetadataTypes.ts.html +100 -0
  28. package/coverage/lcov-report/src/main/enums/index.html +116 -0
  29. package/coverage/lcov-report/src/main/interfaces/IRulesConfig.ts.html +133 -0
  30. package/coverage/lcov-report/src/main/interfaces/index.html +116 -0
  31. package/coverage/lcov-report/src/main/internals/index.html +116 -0
  32. package/coverage/lcov-report/src/main/internals/internals.ts.html +190 -0
  33. package/coverage/lcov-report/src/main/libs/BuildFlow.ts.html +127 -0
  34. package/coverage/lcov-report/src/main/libs/Compiler.ts.html +241 -0
  35. package/coverage/lcov-report/src/main/libs/ConvertFlowNodes.ts.html +97 -0
  36. package/coverage/lcov-report/src/main/libs/DynamicRule.ts.html +118 -0
  37. package/coverage/lcov-report/src/main/libs/ExportDetails.ts.html +256 -0
  38. package/coverage/lcov-report/src/main/libs/ExportDiagram.ts.html +331 -0
  39. package/coverage/lcov-report/src/main/libs/ExportSarif.ts.html +358 -0
  40. package/coverage/lcov-report/src/main/libs/FixFlows.ts.html +265 -0
  41. package/coverage/lcov-report/src/main/libs/GenerateMarkdown.ts.html +331 -0
  42. package/coverage/lcov-report/src/main/libs/GetRuleDefinitions.ts.html +274 -0
  43. package/coverage/lcov-report/src/main/libs/ParseFlows.ts.html +184 -0
  44. package/coverage/lcov-report/src/main/libs/RuleDocumentation.ts.html +190 -0
  45. package/coverage/lcov-report/src/main/libs/ScanFlows.ts.html +508 -0
  46. package/coverage/lcov-report/src/main/libs/exportAsDetails.ts.html +160 -0
  47. package/coverage/lcov-report/src/main/libs/exportAsSarif.ts.html +346 -0
  48. package/coverage/lcov-report/src/main/libs/index.html +251 -0
  49. package/coverage/lcov-report/src/main/models/FlatViolation.ts.html +106 -0
  50. package/coverage/lcov-report/src/main/models/Flow.ts.html +1057 -0
  51. package/coverage/lcov-report/src/main/models/FlowAttribute.ts.html +115 -0
  52. package/coverage/lcov-report/src/main/models/FlowElement.ts.html +133 -0
  53. package/coverage/lcov-report/src/main/models/FlowElementConnector.ts.html +169 -0
  54. package/coverage/lcov-report/src/main/models/FlowGraph.ts.html +1672 -0
  55. package/coverage/lcov-report/src/main/models/FlowMetadata.ts.html +106 -0
  56. package/coverage/lcov-report/src/main/models/FlowNode.ts.html +1252 -0
  57. package/coverage/lcov-report/src/main/models/FlowResource.ts.html +106 -0
  58. package/coverage/lcov-report/src/main/models/FlowType.ts.html +244 -0
  59. package/coverage/lcov-report/src/main/models/FlowVariable.ts.html +553 -0
  60. package/coverage/lcov-report/src/main/models/LoopRuleCommon.ts.html +235 -0
  61. package/coverage/lcov-report/src/main/models/ParsedFlow.ts.html +121 -0
  62. package/coverage/lcov-report/src/main/models/RuleCommon.ts.html +442 -0
  63. package/coverage/lcov-report/src/main/models/RuleResult.ts.html +172 -0
  64. package/coverage/lcov-report/src/main/models/ScanResult.ts.html +121 -0
  65. package/coverage/lcov-report/src/main/models/Violation.ts.html +316 -0
  66. package/coverage/lcov-report/src/main/models/index.html +341 -0
  67. package/coverage/lcov-report/src/main/rules/APIVersion.ts.html +361 -0
  68. package/coverage/lcov-report/src/main/rules/ActionCallsInLoop.ts.html +157 -0
  69. package/coverage/lcov-report/src/main/rules/AutoLayout.ts.html +220 -0
  70. package/coverage/lcov-report/src/main/rules/CopyAPIName.ts.html +175 -0
  71. package/coverage/lcov-report/src/main/rules/CyclomaticComplexity.ts.html +292 -0
  72. package/coverage/lcov-report/src/main/rules/DMLStatementInLoop.ts.html +163 -0
  73. package/coverage/lcov-report/src/main/rules/DuplicateDMLOperation.ts.html +334 -0
  74. package/coverage/lcov-report/src/main/rules/FlowDescription.ts.html +184 -0
  75. package/coverage/lcov-report/src/main/rules/FlowName.ts.html +229 -0
  76. package/coverage/lcov-report/src/main/rules/GetRecordAllFields.ts.html +280 -0
  77. package/coverage/lcov-report/src/main/rules/HardcodedId.ts.html +238 -0
  78. package/coverage/lcov-report/src/main/rules/HardcodedSecret.ts.html +238 -0
  79. package/coverage/lcov-report/src/main/rules/HardcodedUrl.ts.html +247 -0
  80. package/coverage/lcov-report/src/main/rules/InactiveFlow.ts.html +184 -0
  81. package/coverage/lcov-report/src/main/rules/MissingFaultPath.ts.html +397 -0
  82. package/coverage/lcov-report/src/main/rules/MissingFilterRecordTrigger.ts.html +229 -0
  83. package/coverage/lcov-report/src/main/rules/MissingMetadataDescription.ts.html +211 -0
  84. package/coverage/lcov-report/src/main/rules/MissingNullHandler.ts.html +460 -0
  85. package/coverage/lcov-report/src/main/rules/MissingRecordTriggerFilter.ts.html +235 -0
  86. package/coverage/lcov-report/src/main/rules/ProcessBuilder.ts.html +190 -0
  87. package/coverage/lcov-report/src/main/rules/RecordIdAsString.ts.html +274 -0
  88. package/coverage/lcov-report/src/main/rules/RecursiveAfterUpdate.ts.html +364 -0
  89. package/coverage/lcov-report/src/main/rules/SOQLQueryInLoop.ts.html +160 -0
  90. package/coverage/lcov-report/src/main/rules/SameRecordFieldUpdates.ts.html +283 -0
  91. package/coverage/lcov-report/src/main/rules/TransformInsteadOfLoop.ts.html +250 -0
  92. package/coverage/lcov-report/src/main/rules/TriggerOrder.ts.html +238 -0
  93. package/coverage/lcov-report/src/main/rules/UnconnectedElement.ts.html +178 -0
  94. package/coverage/lcov-report/src/main/rules/UnsafeRunningContext.ts.html +226 -0
  95. package/coverage/lcov-report/src/main/rules/UnusedVariable.ts.html +283 -0
  96. package/coverage/lcov-report/src/main/rules/index.html +521 -0
  97. package/coverage/lcov-report/src/main/store/DefaultRuleStore.ts.html +265 -0
  98. package/coverage/lcov-report/src/main/store/RuleRegistry.ts.html +118 -0
  99. package/coverage/lcov-report/src/main/store/index.html +116 -0
  100. package/coverage/lcov.info +6261 -0
  101. package/eslint.config.mjs +36 -0
  102. package/jest.config.cjs +32 -0
  103. package/jest.env-setup.js +101 -0
  104. package/lint-staged.config.mjs +8 -0
  105. package/out/main/config/RegexAdapter.d.ts +32 -0
  106. package/out/main/config/RegexAdapter.js +86 -0
  107. package/{main → out/main}/config/RuleRegistry.js +2 -0
  108. package/out/main/rules/FlowName.d.ts +15 -0
  109. package/{main → out/main}/rules/FlowName.js +24 -11
  110. package/out/main/rules/HardcodedId.d.ts +13 -0
  111. package/{main → out/main}/rules/HardcodedId.js +23 -4
  112. package/out/main/rules/HardcodedSecret.d.ts +13 -0
  113. package/out/main/rules/HardcodedSecret.js +101 -0
  114. package/{main → out/main}/rules/HardcodedUrl.d.ts +6 -0
  115. package/{main → out/main}/rules/HardcodedUrl.js +23 -5
  116. package/package.json +58 -8
  117. package/prettier.config.mjs +5 -0
  118. package/src/index.ts +52 -0
  119. package/src/main/config/NodeIcons.ts +98 -0
  120. package/src/main/config/RegexAdapter.ts +98 -0
  121. package/src/main/config/RuleRegistry.ts +188 -0
  122. package/src/main/config/VariableIcons.ts +57 -0
  123. package/src/main/enums/MetadataTypes.ts +6 -0
  124. package/src/main/interfaces/IExceptions.ts +6 -0
  125. package/src/main/interfaces/IRuleConfig.ts +6 -0
  126. package/src/main/interfaces/IRuleDefinition.ts +15 -0
  127. package/src/main/interfaces/IRuleOptions.ts +5 -0
  128. package/src/main/interfaces/IRulesConfig.ts +17 -0
  129. package/src/main/internals/internals.ts +35 -0
  130. package/src/main/libs/BuildFlow.ts +14 -0
  131. package/src/main/libs/Compiler.ts +53 -0
  132. package/src/main/libs/ExportDetails.ts +58 -0
  133. package/src/main/libs/ExportDiagram.ts +83 -0
  134. package/src/main/libs/ExportSarif.ts +92 -0
  135. package/src/main/libs/FixFlows.ts +61 -0
  136. package/src/main/libs/GetRuleDefinitions.ts +64 -0
  137. package/src/main/libs/ParseFlows.ts +34 -0
  138. package/src/main/libs/RuleDocumentation.ts +35 -0
  139. package/src/main/libs/ScanFlows.ts +142 -0
  140. package/src/main/models/FlatViolation.ts +16 -0
  141. package/src/main/models/Flow.ts +325 -0
  142. package/src/main/models/FlowAttribute.ts +11 -0
  143. package/src/main/models/FlowElement.ts +16 -0
  144. package/src/main/models/FlowElementConnector.ts +28 -0
  145. package/src/main/models/FlowGraph.ts +530 -0
  146. package/src/main/models/FlowMetadata.ts +8 -0
  147. package/src/main/models/FlowNode.ts +390 -0
  148. package/src/main/models/FlowResource.ts +8 -0
  149. package/src/main/models/FlowType.ts +53 -0
  150. package/src/main/models/FlowVariable.ts +157 -0
  151. package/src/main/models/LoopRuleCommon.ts +51 -0
  152. package/src/main/models/ParsedFlow.ts +13 -0
  153. package/src/main/models/RuleCommon.ts +120 -0
  154. package/src/main/models/RuleInfo.ts +54 -0
  155. package/src/main/models/RuleResult.ts +29 -0
  156. package/src/main/models/ScanResult.ts +12 -0
  157. package/src/main/models/Violation.ts +78 -0
  158. package/src/main/rules/APIVersion.ts +93 -0
  159. package/src/main/rules/ActionCallsInLoop.ts +25 -0
  160. package/src/main/rules/AutoLayout.ts +46 -0
  161. package/src/main/rules/CopyAPIName.ts +31 -0
  162. package/src/main/rules/CyclomaticComplexity.ts +70 -0
  163. package/src/main/rules/DMLStatementInLoop.ts +26 -0
  164. package/src/main/rules/DuplicateDMLOperation.ts +83 -0
  165. package/src/main/rules/FlowDescription.ts +34 -0
  166. package/src/main/rules/FlowName.ts +49 -0
  167. package/src/main/rules/GetRecordAllFields.ts +65 -0
  168. package/src/main/rules/HardcodedId.ts +51 -0
  169. package/src/main/rules/HardcodedSecret.ts +51 -0
  170. package/src/main/rules/HardcodedUrl.ts +54 -0
  171. package/src/main/rules/InactiveFlow.ts +33 -0
  172. package/src/main/rules/MissingFaultPath.ts +105 -0
  173. package/src/main/rules/MissingMetadataDescription.ts +42 -0
  174. package/src/main/rules/MissingNullHandler.ts +126 -0
  175. package/src/main/rules/MissingRecordTriggerFilter.ts +51 -0
  176. package/src/main/rules/ProcessBuilder.ts +35 -0
  177. package/src/main/rules/RecordIdAsString.ts +64 -0
  178. package/src/main/rules/RecursiveAfterUpdate.ts +94 -0
  179. package/src/main/rules/SOQLQueryInLoop.ts +26 -0
  180. package/src/main/rules/SameRecordFieldUpdates.ts +66 -0
  181. package/src/main/rules/TransformInsteadOfLoop.ts +56 -0
  182. package/src/main/rules/TriggerOrder.ts +51 -0
  183. package/src/main/rules/UnconnectedElement.ts +32 -0
  184. package/src/main/rules/UnsafeRunningContext.ts +47 -0
  185. package/src/main/rules/UnusedVariable.ts +66 -0
  186. package/stryker.config.mjs +23 -0
  187. package/tests/APIVersion.test.ts +87 -0
  188. package/tests/AutoLayout.test.ts +41 -0
  189. package/tests/Config.test.ts +122 -0
  190. package/tests/ConfigBetaMode.test.ts +26 -0
  191. package/tests/CopyAPIName.test.ts +45 -0
  192. package/tests/CyclomaticComplexity.test.ts +125 -0
  193. package/tests/DMLStatementInLoop.test.ts +32 -0
  194. package/tests/DuplicateDMLOperation.test.ts +43 -0
  195. package/tests/EnabledFalse.test.ts +63 -0
  196. package/tests/Exceptions.test.ts +815 -0
  197. package/tests/ExportSarif.test.ts +62 -0
  198. package/tests/FlowDescription.test.ts +44 -0
  199. package/tests/FlowDocumentation.test.ts +74 -0
  200. package/tests/FlowName.test.ts +61 -0
  201. package/tests/GetRecordElementAllFields.test.ts +182 -0
  202. package/tests/HardcodedId.test.ts +16 -0
  203. package/tests/HardcodedSecret.test.ts +32 -0
  204. package/tests/HardcodedUrl.test.ts +253 -0
  205. package/tests/InactiveFlow.test.ts +103 -0
  206. package/tests/MissingFaultPath.test.ts +52 -0
  207. package/tests/MissingMetadataDescription.test.ts +25 -0
  208. package/tests/MissingNullHandler.test.ts +45 -0
  209. package/tests/MissingRecordTriggerFilter.test.ts +54 -0
  210. package/tests/RecordIdAsString.test.ts +60 -0
  211. package/tests/RecursiveAfterUpdate.test.ts +183 -0
  212. package/tests/SOQLQueryInLoop.test.ts +33 -0
  213. package/tests/SameRecordFieldUpdates.test.ts +205 -0
  214. package/tests/SanityTest.test.ts +15 -0
  215. package/tests/TransformInsteadOfLoop.test.ts +33 -0
  216. package/tests/TriggerOrder.test.ts +112 -0
  217. package/tests/UnconnectedElement.test.ts +76 -0
  218. package/tests/UnsafeRunningContext.test.ts +46 -0
  219. package/tests/UnusedVariable.test.ts +59 -0
  220. package/tests/UnusedVariableExceptions.test.ts +87 -0
  221. package/tests/jsonfiles/MissingFaultPath_BeforeSave_Bypass.json +128 -0
  222. package/tests/jsonfiles/MissingFaultPath_WaitConditions.json +102 -0
  223. package/tests/jsonfiles/MissingFaultPath_WaitDate.json +88 -0
  224. package/tests/jsonfiles/MissingFaultPath_WaitDuration.json +90 -0
  225. package/tests/models/Flow.test.ts +107 -0
  226. package/tests/models/LoopRuleCommon.test.ts +246 -0
  227. package/tests/models/RuleCommon.test.ts +41 -0
  228. package/tsconfig.json +28 -0
  229. package/tsconfig.types.json +26 -0
  230. package/types/index.d.ts +27 -0
  231. package/types/index.d.ts.map +1 -0
  232. package/types/main/adapters/RegexAdapter.d.ts +33 -0
  233. package/types/main/adapters/RegexAdapter.d.ts.map +1 -0
  234. package/types/main/config/NodeIcons.d.ts +25 -0
  235. package/types/main/config/NodeIcons.d.ts.map +1 -0
  236. package/types/main/config/RegexAdapter.d.ts +33 -0
  237. package/types/main/config/RegexAdapter.d.ts.map +1 -0
  238. package/types/main/config/RuleRegistry.d.ts +23 -0
  239. package/types/main/config/RuleRegistry.d.ts.map +1 -0
  240. package/types/main/config/VariableIcons.d.ts +26 -0
  241. package/types/main/config/VariableIcons.d.ts.map +1 -0
  242. package/types/main/enums/MetadataTypes.d.ts +7 -0
  243. package/types/main/enums/MetadataTypes.d.ts.map +1 -0
  244. package/types/main/interfaces/IExceptions.d.ts +6 -0
  245. package/types/main/interfaces/IExceptions.d.ts.map +1 -0
  246. package/types/main/interfaces/IRuleConfig.d.ts +7 -0
  247. package/types/main/interfaces/IRuleConfig.d.ts.map +1 -0
  248. package/types/main/interfaces/IRuleDefinition.d.ts +18 -0
  249. package/types/main/interfaces/IRuleDefinition.d.ts.map +1 -0
  250. package/types/main/interfaces/IRuleOptions.d.ts +5 -0
  251. package/types/main/interfaces/IRuleOptions.d.ts.map +1 -0
  252. package/types/main/interfaces/IRulesConfig.d.ts +16 -0
  253. package/types/main/interfaces/IRulesConfig.d.ts.map +1 -0
  254. package/types/main/internals/internals.d.ts +19 -0
  255. package/types/main/internals/internals.d.ts.map +1 -0
  256. package/types/main/libs/BuildFlow.d.ts +2 -0
  257. package/types/main/libs/BuildFlow.d.ts.map +1 -0
  258. package/types/main/libs/Compiler.d.ts +8 -0
  259. package/types/main/libs/Compiler.d.ts.map +1 -0
  260. package/types/main/libs/ConvertFlowNodes.d.ts +2 -0
  261. package/types/main/libs/ConvertFlowNodes.d.ts.map +1 -0
  262. package/types/main/libs/DynamicRule.d.ts +5 -0
  263. package/types/main/libs/DynamicRule.d.ts.map +1 -0
  264. package/types/main/libs/ExportDetails.d.ts +4 -0
  265. package/types/main/libs/ExportDetails.d.ts.map +1 -0
  266. package/types/main/libs/ExportDiagram.d.ts +42 -0
  267. package/types/main/libs/ExportDiagram.d.ts.map +1 -0
  268. package/types/main/libs/ExportSarif.d.ts +3 -0
  269. package/types/main/libs/ExportSarif.d.ts.map +1 -0
  270. package/types/main/libs/FixFlows.d.ts +4 -0
  271. package/types/main/libs/FixFlows.d.ts.map +1 -0
  272. package/types/main/libs/GetRuleDefinitions.d.ts +5 -0
  273. package/types/main/libs/GetRuleDefinitions.d.ts.map +1 -0
  274. package/types/main/libs/ParseFlows.d.ts +3 -0
  275. package/types/main/libs/ParseFlows.d.ts.map +1 -0
  276. package/types/main/libs/RuleDocumentation.d.ts +21 -0
  277. package/types/main/libs/RuleDocumentation.d.ts.map +1 -0
  278. package/types/main/libs/ScanFlows.d.ts +5 -0
  279. package/types/main/libs/ScanFlows.d.ts.map +1 -0
  280. package/types/main/libs/exportAsDetails.d.ts +4 -0
  281. package/types/main/libs/exportAsDetails.d.ts.map +1 -0
  282. package/types/main/libs/exportAsSarif.d.ts +3 -0
  283. package/types/main/libs/exportAsSarif.d.ts.map +1 -0
  284. package/types/main/models/FlatViolation.d.ts +16 -0
  285. package/types/main/models/FlatViolation.d.ts.map +1 -0
  286. package/types/main/models/Flow.d.ts +70 -0
  287. package/types/main/models/Flow.d.ts.map +1 -0
  288. package/types/main/models/FlowAttribute.d.ts +6 -0
  289. package/types/main/models/FlowAttribute.d.ts.map +1 -0
  290. package/types/main/models/FlowElement.d.ts +11 -0
  291. package/types/main/models/FlowElement.d.ts.map +1 -0
  292. package/types/main/models/FlowElementConnector.d.ts +16 -0
  293. package/types/main/models/FlowElementConnector.d.ts.map +1 -0
  294. package/types/main/models/FlowGraph.d.ts +86 -0
  295. package/types/main/models/FlowGraph.d.ts.map +1 -0
  296. package/types/main/models/FlowMetadata.d.ts +5 -0
  297. package/types/main/models/FlowMetadata.d.ts.map +1 -0
  298. package/types/main/models/FlowNode.d.ts +66 -0
  299. package/types/main/models/FlowNode.d.ts.map +1 -0
  300. package/types/main/models/FlowResource.d.ts +5 -0
  301. package/types/main/models/FlowResource.d.ts.map +1 -0
  302. package/types/main/models/FlowType.d.ts +24 -0
  303. package/types/main/models/FlowType.d.ts.map +1 -0
  304. package/types/main/models/FlowVariable.d.ts +64 -0
  305. package/types/main/models/FlowVariable.d.ts.map +1 -0
  306. package/types/main/models/LoopRuleCommon.d.ts +15 -0
  307. package/types/main/models/LoopRuleCommon.d.ts.map +1 -0
  308. package/types/main/models/ParsedFlow.d.ts +8 -0
  309. package/types/main/models/ParsedFlow.d.ts.map +1 -0
  310. package/types/main/models/RuleCommon.d.ts +58 -0
  311. package/types/main/models/RuleCommon.d.ts.map +1 -0
  312. package/types/main/models/RuleInfo.d.ts +50 -0
  313. package/types/main/models/RuleInfo.d.ts.map +1 -0
  314. package/types/main/models/RuleResult.d.ts +15 -0
  315. package/types/main/models/RuleResult.d.ts.map +1 -0
  316. package/types/main/models/ScanResult.d.ts +8 -0
  317. package/types/main/models/ScanResult.d.ts.map +1 -0
  318. package/types/main/models/Violation.d.ts +12 -0
  319. package/types/main/models/Violation.d.ts.map +1 -0
  320. package/{main/rules/FlowName.d.ts → types/main/rules/APIVersion.d.ts} +2 -1
  321. package/types/main/rules/APIVersion.d.ts.map +1 -0
  322. package/types/main/rules/ActionCallsInLoop.d.ts +7 -0
  323. package/types/main/rules/ActionCallsInLoop.d.ts.map +1 -0
  324. package/types/main/rules/AutoLayout.d.ts +8 -0
  325. package/types/main/rules/AutoLayout.d.ts.map +1 -0
  326. package/types/main/rules/CopyAPIName.d.ts +8 -0
  327. package/types/main/rules/CopyAPIName.d.ts.map +1 -0
  328. package/types/main/rules/CyclomaticComplexity.d.ts +12 -0
  329. package/types/main/rules/CyclomaticComplexity.d.ts.map +1 -0
  330. package/types/main/rules/DMLStatementInLoop.d.ts +7 -0
  331. package/types/main/rules/DMLStatementInLoop.d.ts.map +1 -0
  332. package/types/main/rules/DuplicateDMLOperation.d.ts +9 -0
  333. package/types/main/rules/DuplicateDMLOperation.d.ts.map +1 -0
  334. package/{main/rules/HardcodedId.d.ts → types/main/rules/FlowDescription.d.ts} +2 -1
  335. package/types/main/rules/FlowDescription.d.ts.map +1 -0
  336. package/types/main/rules/FlowName.d.ts +16 -0
  337. package/types/main/rules/FlowName.d.ts.map +1 -0
  338. package/types/main/rules/GetRecordAllFields.d.ts +8 -0
  339. package/types/main/rules/GetRecordAllFields.d.ts.map +1 -0
  340. package/types/main/rules/HardcodedId.d.ts +14 -0
  341. package/types/main/rules/HardcodedId.d.ts.map +1 -0
  342. package/types/main/rules/HardcodedSecret.d.ts +14 -0
  343. package/types/main/rules/HardcodedSecret.d.ts.map +1 -0
  344. package/types/main/rules/HardcodedUrl.d.ts +14 -0
  345. package/types/main/rules/HardcodedUrl.d.ts.map +1 -0
  346. package/types/main/rules/InactiveFlow.d.ts +8 -0
  347. package/types/main/rules/InactiveFlow.d.ts.map +1 -0
  348. package/types/main/rules/MissingFaultPath.d.ts +15 -0
  349. package/types/main/rules/MissingFaultPath.d.ts.map +1 -0
  350. package/types/main/rules/MissingFilterRecordTrigger.d.ts +8 -0
  351. package/types/main/rules/MissingFilterRecordTrigger.d.ts.map +1 -0
  352. package/types/main/rules/MissingMetadataDescription.d.ts +8 -0
  353. package/types/main/rules/MissingMetadataDescription.d.ts.map +1 -0
  354. package/types/main/rules/MissingNullHandler.d.ts +8 -0
  355. package/types/main/rules/MissingNullHandler.d.ts.map +1 -0
  356. package/types/main/rules/MissingRecordTriggerFilter.d.ts +8 -0
  357. package/types/main/rules/MissingRecordTriggerFilter.d.ts.map +1 -0
  358. package/types/main/rules/ProcessBuilder.d.ts +8 -0
  359. package/types/main/rules/ProcessBuilder.d.ts.map +1 -0
  360. package/types/main/rules/RecordIdAsString.d.ts +8 -0
  361. package/types/main/rules/RecordIdAsString.d.ts.map +1 -0
  362. package/types/main/rules/RecursiveAfterUpdate.d.ts +9 -0
  363. package/types/main/rules/RecursiveAfterUpdate.d.ts.map +1 -0
  364. package/types/main/rules/SOQLQueryInLoop.d.ts +7 -0
  365. package/types/main/rules/SOQLQueryInLoop.d.ts.map +1 -0
  366. package/types/main/rules/SameRecordFieldUpdates.d.ts +9 -0
  367. package/types/main/rules/SameRecordFieldUpdates.d.ts.map +1 -0
  368. package/types/main/rules/TransformInsteadOfLoop.d.ts +8 -0
  369. package/types/main/rules/TransformInsteadOfLoop.d.ts.map +1 -0
  370. package/types/main/rules/TriggerOrder.d.ts +8 -0
  371. package/types/main/rules/TriggerOrder.d.ts.map +1 -0
  372. package/types/main/rules/UnconnectedElement.d.ts +8 -0
  373. package/types/main/rules/UnconnectedElement.d.ts.map +1 -0
  374. package/types/main/rules/UnsafeRunningContext.d.ts +8 -0
  375. package/types/main/rules/UnsafeRunningContext.d.ts.map +1 -0
  376. package/types/main/rules/UnusedVariable.d.ts +8 -0
  377. package/types/main/rules/UnusedVariable.d.ts.map +1 -0
  378. package/types/main/store/DefaultRuleStore.d.ts +3 -0
  379. package/types/main/store/DefaultRuleStore.d.ts.map +1 -0
  380. package/types/main/store/RuleRegistry.d.ts +23 -0
  381. package/types/main/store/RuleRegistry.d.ts.map +1 -0
  382. package/vite.config.ts +33 -0
  383. package/README.md +0 -635
  384. /package/{index.d.ts → out/index.d.ts} +0 -0
  385. /package/{index.js → out/index.js} +0 -0
  386. /package/{main → out/main}/config/NodeIcons.d.ts +0 -0
  387. /package/{main → out/main}/config/NodeIcons.js +0 -0
  388. /package/{main → out/main}/config/RuleRegistry.d.ts +0 -0
  389. /package/{main → out/main}/config/VariableIcons.d.ts +0 -0
  390. /package/{main → out/main}/config/VariableIcons.js +0 -0
  391. /package/{main → out/main}/enums/MetadataTypes.d.ts +0 -0
  392. /package/{main → out/main}/enums/MetadataTypes.js +0 -0
  393. /package/{main → out/main}/interfaces/IExceptions.d.ts +0 -0
  394. /package/{main → out/main}/interfaces/IExceptions.js +0 -0
  395. /package/{main → out/main}/interfaces/IRuleConfig.d.ts +0 -0
  396. /package/{main → out/main}/interfaces/IRuleConfig.js +0 -0
  397. /package/{main → out/main}/interfaces/IRuleDefinition.d.ts +0 -0
  398. /package/{main → out/main}/interfaces/IRuleDefinition.js +0 -0
  399. /package/{main → out/main}/interfaces/IRuleOptions.d.ts +0 -0
  400. /package/{main → out/main}/interfaces/IRuleOptions.js +0 -0
  401. /package/{main → out/main}/interfaces/IRulesConfig.d.ts +0 -0
  402. /package/{main → out/main}/interfaces/IRulesConfig.js +0 -0
  403. /package/{main → out/main}/internals/internals.d.ts +0 -0
  404. /package/{main → out/main}/internals/internals.js +0 -0
  405. /package/{main → out/main}/libs/BuildFlow.d.ts +0 -0
  406. /package/{main → out/main}/libs/BuildFlow.js +0 -0
  407. /package/{main → out/main}/libs/Compiler.d.ts +0 -0
  408. /package/{main → out/main}/libs/Compiler.js +0 -0
  409. /package/{main → out/main}/libs/ExportDetails.d.ts +0 -0
  410. /package/{main → out/main}/libs/ExportDetails.js +0 -0
  411. /package/{main → out/main}/libs/ExportDiagram.d.ts +0 -0
  412. /package/{main → out/main}/libs/ExportDiagram.js +0 -0
  413. /package/{main → out/main}/libs/ExportSarif.d.ts +0 -0
  414. /package/{main → out/main}/libs/ExportSarif.js +0 -0
  415. /package/{main → out/main}/libs/FixFlows.d.ts +0 -0
  416. /package/{main → out/main}/libs/FixFlows.js +0 -0
  417. /package/{main → out/main}/libs/GetRuleDefinitions.d.ts +0 -0
  418. /package/{main → out/main}/libs/GetRuleDefinitions.js +0 -0
  419. /package/{main → out/main}/libs/ParseFlows.d.ts +0 -0
  420. /package/{main → out/main}/libs/ParseFlows.js +0 -0
  421. /package/{main → out/main}/libs/RuleDocumentation.d.ts +0 -0
  422. /package/{main → out/main}/libs/RuleDocumentation.js +0 -0
  423. /package/{main → out/main}/libs/ScanFlows.d.ts +0 -0
  424. /package/{main → out/main}/libs/ScanFlows.js +0 -0
  425. /package/{main → out/main}/models/FlatViolation.d.ts +0 -0
  426. /package/{main → out/main}/models/FlatViolation.js +0 -0
  427. /package/{main → out/main}/models/Flow.d.ts +0 -0
  428. /package/{main → out/main}/models/Flow.js +0 -0
  429. /package/{main → out/main}/models/FlowAttribute.d.ts +0 -0
  430. /package/{main → out/main}/models/FlowAttribute.js +0 -0
  431. /package/{main → out/main}/models/FlowElement.d.ts +0 -0
  432. /package/{main → out/main}/models/FlowElement.js +0 -0
  433. /package/{main → out/main}/models/FlowElementConnector.d.ts +0 -0
  434. /package/{main → out/main}/models/FlowElementConnector.js +0 -0
  435. /package/{main → out/main}/models/FlowGraph.d.ts +0 -0
  436. /package/{main → out/main}/models/FlowGraph.js +0 -0
  437. /package/{main → out/main}/models/FlowMetadata.d.ts +0 -0
  438. /package/{main → out/main}/models/FlowMetadata.js +0 -0
  439. /package/{main → out/main}/models/FlowNode.d.ts +0 -0
  440. /package/{main → out/main}/models/FlowNode.js +0 -0
  441. /package/{main → out/main}/models/FlowResource.d.ts +0 -0
  442. /package/{main → out/main}/models/FlowResource.js +0 -0
  443. /package/{main → out/main}/models/FlowType.d.ts +0 -0
  444. /package/{main → out/main}/models/FlowType.js +0 -0
  445. /package/{main → out/main}/models/FlowVariable.d.ts +0 -0
  446. /package/{main → out/main}/models/FlowVariable.js +0 -0
  447. /package/{main → out/main}/models/LoopRuleCommon.d.ts +0 -0
  448. /package/{main → out/main}/models/LoopRuleCommon.js +0 -0
  449. /package/{main → out/main}/models/ParsedFlow.d.ts +0 -0
  450. /package/{main → out/main}/models/ParsedFlow.js +0 -0
  451. /package/{main → out/main}/models/RuleCommon.d.ts +0 -0
  452. /package/{main → out/main}/models/RuleCommon.js +0 -0
  453. /package/{main → out/main}/models/RuleInfo.d.ts +0 -0
  454. /package/{main → out/main}/models/RuleInfo.js +0 -0
  455. /package/{main → out/main}/models/RuleResult.d.ts +0 -0
  456. /package/{main → out/main}/models/RuleResult.js +0 -0
  457. /package/{main → out/main}/models/ScanResult.d.ts +0 -0
  458. /package/{main → out/main}/models/ScanResult.js +0 -0
  459. /package/{main → out/main}/models/Violation.d.ts +0 -0
  460. /package/{main → out/main}/models/Violation.js +0 -0
  461. /package/{main → out/main}/rules/APIVersion.d.ts +0 -0
  462. /package/{main → out/main}/rules/APIVersion.js +0 -0
  463. /package/{main → out/main}/rules/ActionCallsInLoop.d.ts +0 -0
  464. /package/{main → out/main}/rules/ActionCallsInLoop.js +0 -0
  465. /package/{main → out/main}/rules/AutoLayout.d.ts +0 -0
  466. /package/{main → out/main}/rules/AutoLayout.js +0 -0
  467. /package/{main → out/main}/rules/CopyAPIName.d.ts +0 -0
  468. /package/{main → out/main}/rules/CopyAPIName.js +0 -0
  469. /package/{main → out/main}/rules/CyclomaticComplexity.d.ts +0 -0
  470. /package/{main → out/main}/rules/CyclomaticComplexity.js +0 -0
  471. /package/{main → out/main}/rules/DMLStatementInLoop.d.ts +0 -0
  472. /package/{main → out/main}/rules/DMLStatementInLoop.js +0 -0
  473. /package/{main → out/main}/rules/DuplicateDMLOperation.d.ts +0 -0
  474. /package/{main → out/main}/rules/DuplicateDMLOperation.js +0 -0
  475. /package/{main → out/main}/rules/FlowDescription.d.ts +0 -0
  476. /package/{main → out/main}/rules/FlowDescription.js +0 -0
  477. /package/{main → out/main}/rules/GetRecordAllFields.d.ts +0 -0
  478. /package/{main → out/main}/rules/GetRecordAllFields.js +0 -0
  479. /package/{main → out/main}/rules/InactiveFlow.d.ts +0 -0
  480. /package/{main → out/main}/rules/InactiveFlow.js +0 -0
  481. /package/{main → out/main}/rules/MissingFaultPath.d.ts +0 -0
  482. /package/{main → out/main}/rules/MissingFaultPath.js +0 -0
  483. /package/{main → out/main}/rules/MissingMetadataDescription.d.ts +0 -0
  484. /package/{main → out/main}/rules/MissingMetadataDescription.js +0 -0
  485. /package/{main → out/main}/rules/MissingNullHandler.d.ts +0 -0
  486. /package/{main → out/main}/rules/MissingNullHandler.js +0 -0
  487. /package/{main → out/main}/rules/MissingRecordTriggerFilter.d.ts +0 -0
  488. /package/{main → out/main}/rules/MissingRecordTriggerFilter.js +0 -0
  489. /package/{main → out/main}/rules/ProcessBuilder.d.ts +0 -0
  490. /package/{main → out/main}/rules/ProcessBuilder.js +0 -0
  491. /package/{main → out/main}/rules/RecordIdAsString.d.ts +0 -0
  492. /package/{main → out/main}/rules/RecordIdAsString.js +0 -0
  493. /package/{main → out/main}/rules/RecursiveAfterUpdate.d.ts +0 -0
  494. /package/{main → out/main}/rules/RecursiveAfterUpdate.js +0 -0
  495. /package/{main → out/main}/rules/SOQLQueryInLoop.d.ts +0 -0
  496. /package/{main → out/main}/rules/SOQLQueryInLoop.js +0 -0
  497. /package/{main → out/main}/rules/SameRecordFieldUpdates.d.ts +0 -0
  498. /package/{main → out/main}/rules/SameRecordFieldUpdates.js +0 -0
  499. /package/{main → out/main}/rules/TransformInsteadOfLoop.d.ts +0 -0
  500. /package/{main → out/main}/rules/TransformInsteadOfLoop.js +0 -0
  501. /package/{main → out/main}/rules/TriggerOrder.d.ts +0 -0
  502. /package/{main → out/main}/rules/TriggerOrder.js +0 -0
  503. /package/{main → out/main}/rules/UnconnectedElement.d.ts +0 -0
  504. /package/{main → out/main}/rules/UnconnectedElement.js +0 -0
  505. /package/{main → out/main}/rules/UnsafeRunningContext.d.ts +0 -0
  506. /package/{main → out/main}/rules/UnsafeRunningContext.js +0 -0
  507. /package/{main → out/main}/rules/UnusedVariable.d.ts +0 -0
  508. /package/{main → out/main}/rules/UnusedVariable.js +0 -0
@@ -0,0 +1,235 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/main/rules/MissingRecordTriggerFilter.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/main/rules</a> MissingRecordTriggerFilter.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>51/51</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>8/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>51/51</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-yes">1x</span>
119
+ <span class="cline-any cline-yes">1x</span>
120
+ <span class="cline-any cline-yes">1x</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-yes">6x</span>
123
+ <span class="cline-any cline-yes">6x</span>
124
+ <span class="cline-any cline-yes">6x</span>
125
+ <span class="cline-any cline-yes">6x</span>
126
+ <span class="cline-any cline-yes">6x</span>
127
+ <span class="cline-any cline-yes">6x</span>
128
+ <span class="cline-any cline-yes">6x</span>
129
+ <span class="cline-any cline-yes">6x</span>
130
+ <span class="cline-any cline-yes">6x</span>
131
+ <span class="cline-any cline-yes">6x</span>
132
+ <span class="cline-any cline-yes">6x</span>
133
+ <span class="cline-any cline-yes">1x</span>
134
+ <span class="cline-any cline-yes">1x</span>
135
+ <span class="cline-any cline-yes">5x</span>
136
+ <span class="cline-any cline-yes">5x</span>
137
+ <span class="cline-any cline-yes">5x</span>
138
+ <span class="cline-any cline-yes">5x</span>
139
+ <span class="cline-any cline-yes">5x</span>
140
+ <span class="cline-any cline-yes">5x</span>
141
+ <span class="cline-any cline-yes">5x</span>
142
+ <span class="cline-any cline-yes">5x</span>
143
+ <span class="cline-any cline-yes">5x</span>
144
+ <span class="cline-any cline-yes">3x</span>
145
+ <span class="cline-any cline-yes">3x</span>
146
+ <span class="cline-any cline-yes">2x</span>
147
+ <span class="cline-any cline-yes">2x</span>
148
+ <span class="cline-any cline-yes">2x</span>
149
+ <span class="cline-any cline-yes">2x</span>
150
+ <span class="cline-any cline-yes">2x</span>
151
+ <span class="cline-any cline-yes">5x</span>
152
+ <span class="cline-any cline-yes">5x</span>
153
+ <span class="cline-any cline-yes">5x</span>
154
+ <span class="cline-any cline-yes">1x</span>
155
+ <span class="cline-any cline-yes">1x</span>
156
+ <span class="cline-any cline-yes">1x</span>
157
+ <span class="cline-any cline-yes">1x</span>
158
+ <span class="cline-any cline-yes">1x</span>
159
+ <span class="cline-any cline-yes">1x</span>
160
+ <span class="cline-any cline-yes">1x</span>
161
+ <span class="cline-any cline-yes">1x</span>
162
+ <span class="cline-any cline-yes">1x</span>
163
+ <span class="cline-any cline-yes">1x</span>
164
+ <span class="cline-any cline-yes">2x</span>
165
+ <span class="cline-any cline-yes">2x</span>
166
+ <span class="cline-any cline-yes">1x</span></td><td class="text"><pre class="prettyprint lang-js">import * as core from "../internals/internals";
167
+ import { RuleCommon } from "../models/RuleCommon";
168
+ import { IRuleDefinition } from "../interfaces/IRuleDefinition";
169
+ &nbsp;
170
+ export class MissingRecordTriggerFilter extends RuleCommon implements IRuleDefinition {
171
+ constructor() {
172
+ super({
173
+ ruleId: "missing-record-trigger-filter",
174
+ category: "suggestion",
175
+ name: "MissingRecordTriggerFilter",
176
+ label: "Missing Filter Record Trigger",
177
+ description: "Record-triggered Flows without filters on changed fields or entry conditions execute on every record change. Adding filters ensures the Flow runs only when needed, improving performance.",
178
+ summary: "Filters ensure Flows run only when needed",
179
+ supportedTypes: [core.FlowType.autolaunchedType],
180
+ docRefs: [],
181
+ }, { severity: "warning" });
182
+ }
183
+ &nbsp;
184
+ protected check(
185
+ flow: core.Flow,
186
+ _options: object | undefined,
187
+ _suppressions: Set&lt;string&gt;
188
+ ): core.Violation[] {
189
+ const violations: core.Violation[] = [];
190
+ // Check if this is a record-triggered flow
191
+ const triggerType = this.getStartProperty(flow, 'triggerType');
192
+ // Only check flows with record trigger types
193
+ if (!triggerType || !["RecordAfterSave", "RecordBeforeSave"].includes(triggerType)) {
194
+ return violations;
195
+ }
196
+ // Check if the flow has filters or entry conditions at the flow level
197
+ const filters = this.getStartProperty(flow, 'filters');
198
+ &nbsp;
199
+ const hasFilters = !!filters;
200
+ const scheduledPaths = flow.xmldata?.start?.scheduledPaths;
201
+ const hasScheduledPaths = !!scheduledPaths;
202
+ // If no filters or scheduled paths (which have their own conditions), flag as violation
203
+ if (!hasFilters &amp;&amp; !hasScheduledPaths) {
204
+ violations.push(
205
+ new core.Violation(
206
+ new core.FlowAttribute(
207
+ triggerType,
208
+ "triggerType",
209
+ "autolaunched &amp;&amp; triggerType"
210
+ )
211
+ )
212
+ );
213
+ }
214
+ return violations;
215
+ }
216
+ }</pre></td></tr></table></pre>
217
+
218
+ <div class='push'></div><!-- for sticky footer -->
219
+ </div><!-- /wrapper -->
220
+ <div class='footer quiet pad2 space-top1 center small'>
221
+ Code coverage generated by
222
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
223
+ at 2026-01-15T13:06:16.572Z
224
+ </div>
225
+ <script src="../../../prettify.js"></script>
226
+ <script>
227
+ window.onload = function () {
228
+ prettyPrint();
229
+ };
230
+ </script>
231
+ <script src="../../../sorter.js"></script>
232
+ <script src="../../../block-navigation.js"></script>
233
+ </body>
234
+ </html>
235
+
@@ -0,0 +1,190 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/main/rules/ProcessBuilder.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/main/rules</a> ProcessBuilder.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">71.42% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>25/35</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>1/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">71.42% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>25/35</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-yes">1x</span>
105
+ <span class="cline-any cline-yes">1x</span>
106
+ <span class="cline-any cline-yes">1x</span>
107
+ <span class="cline-any cline-yes">18x</span>
108
+ <span class="cline-any cline-yes">18x</span>
109
+ <span class="cline-any cline-yes">18x</span>
110
+ <span class="cline-any cline-yes">18x</span>
111
+ <span class="cline-any cline-yes">18x</span>
112
+ <span class="cline-any cline-yes">18x</span>
113
+ <span class="cline-any cline-yes">18x</span>
114
+ <span class="cline-any cline-yes">18x</span>
115
+ <span class="cline-any cline-yes">18x</span>
116
+ <span class="cline-any cline-yes">18x</span>
117
+ <span class="cline-any cline-yes">18x</span>
118
+ <span class="cline-any cline-yes">18x</span>
119
+ <span class="cline-any cline-yes">18x</span>
120
+ <span class="cline-any cline-yes">18x</span>
121
+ <span class="cline-any cline-yes">18x</span>
122
+ <span class="cline-any cline-yes">18x</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-yes">1x</span>
125
+ <span class="cline-any cline-no">&nbsp;</span>
126
+ <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-no">&nbsp;</span>
128
+ <span class="cline-any cline-no">&nbsp;</span>
129
+ <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-no">&nbsp;</span>
131
+ <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-no">&nbsp;</span>
133
+ <span class="cline-any cline-no">&nbsp;</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-yes">1x</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as core from "../internals/internals";
137
+ import { RuleCommon } from "../models/RuleCommon";
138
+ import { IRuleDefinition } from "../interfaces/IRuleDefinition";
139
+ &nbsp;
140
+ export class ProcessBuilder extends RuleCommon implements IRuleDefinition {
141
+ constructor() {
142
+ super({
143
+ ruleId: "process-builder-usage",
144
+ category: "problem",
145
+ name: "ProcessBuilder",
146
+ label: "Process Builder",
147
+ description: "Process Builder is retired. Continuing to use it increases maintenance overhead and risks future compatibility issues. Migrating automation to Flow reduces risk and improves maintainability.",
148
+ summary: "Process Builder is retired, migrate to Flow",
149
+ supportedTypes: core.FlowType.processBuilder,
150
+ docRefs: [
151
+ {
152
+ label: "Process Builder Retirement",
153
+ path: "https://help.salesforce.com/s/articleView?id=000389396&amp;type=1",
154
+ },
155
+ ],
156
+ }, { severity: "error" });
157
+ }
158
+ &nbsp;
159
+ protected <span class="fstat-no" title="function not covered" >check(</span>
160
+ <span class="cstat-no" title="statement not covered" > flow: core.Flow,</span>
161
+ <span class="cstat-no" title="statement not covered" > _options: object | undefined,</span>
162
+ <span class="cstat-no" title="statement not covered" > _suppressions: Set&lt;string&gt;</span>
163
+ <span class="cstat-no" title="statement not covered" > ): core.Violation[] {</span>
164
+ <span class="cstat-no" title="statement not covered" > return [</span>
165
+ <span class="cstat-no" title="statement not covered" > new core.Violation(</span>
166
+ <span class="cstat-no" title="statement not covered" > new core.FlowAttribute("Workflow", "processType", "== Workflow")</span>
167
+ <span class="cstat-no" title="statement not covered" > ),</span>
168
+ <span class="cstat-no" title="statement not covered" > ];</span>
169
+ <span class="cstat-no" title="statement not covered" > }</span>
170
+ }
171
+ &nbsp;</pre></td></tr></table></pre>
172
+
173
+ <div class='push'></div><!-- for sticky footer -->
174
+ </div><!-- /wrapper -->
175
+ <div class='footer quiet pad2 space-top1 center small'>
176
+ Code coverage generated by
177
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178
+ at 2026-01-15T13:06:16.572Z
179
+ </div>
180
+ <script src="../../../prettify.js"></script>
181
+ <script>
182
+ window.onload = function () {
183
+ prettyPrint();
184
+ };
185
+ </script>
186
+ <script src="../../../sorter.js"></script>
187
+ <script src="../../../block-navigation.js"></script>
188
+ </body>
189
+ </html>
190
+