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

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/README.md +642 -0
  2. package/package.json +9 -58
  3. package/.husky/pre-commit +0 -1
  4. package/.husky/pre-push +0 -1
  5. package/.prettierignore +0 -5
  6. package/.swcrc +0 -26
  7. package/.turbo/turbo-build.log +0 -17
  8. package/.turbo/turbo-test.log +0 -144
  9. package/.turbo/turbo-vite$colon$dist.log +0 -21
  10. package/coverage/coverage-final.json +0 -63
  11. package/coverage/lcov-report/base.css +0 -224
  12. package/coverage/lcov-report/block-navigation.js +0 -87
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +0 -236
  15. package/coverage/lcov-report/prettify.css +0 -1
  16. package/coverage/lcov-report/prettify.js +0 -2
  17. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/coverage/lcov-report/sorter.js +0 -210
  19. package/coverage/lcov-report/src/index.html +0 -116
  20. package/coverage/lcov-report/src/index.ts.html +0 -238
  21. package/coverage/lcov-report/src/main/adapters/RegexAdapter.ts.html +0 -118
  22. package/coverage/lcov-report/src/main/adapters/index.html +0 -116
  23. package/coverage/lcov-report/src/main/config/NodeIcons.ts.html +0 -376
  24. package/coverage/lcov-report/src/main/config/RuleRegistry.ts.html +0 -646
  25. package/coverage/lcov-report/src/main/config/VariableIcons.ts.html +0 -253
  26. package/coverage/lcov-report/src/main/config/index.html +0 -146
  27. package/coverage/lcov-report/src/main/enums/MetaType.ts.html +0 -100
  28. package/coverage/lcov-report/src/main/enums/MetadataType.ts.html +0 -103
  29. package/coverage/lcov-report/src/main/enums/MetadataTypes.ts.html +0 -100
  30. package/coverage/lcov-report/src/main/enums/index.html +0 -116
  31. package/coverage/lcov-report/src/main/interfaces/IRulesConfig.ts.html +0 -133
  32. package/coverage/lcov-report/src/main/interfaces/index.html +0 -116
  33. package/coverage/lcov-report/src/main/internals/index.html +0 -116
  34. package/coverage/lcov-report/src/main/internals/internals.ts.html +0 -190
  35. package/coverage/lcov-report/src/main/libs/BuildFlow.ts.html +0 -127
  36. package/coverage/lcov-report/src/main/libs/Compiler.ts.html +0 -241
  37. package/coverage/lcov-report/src/main/libs/ConvertFlowNodes.ts.html +0 -97
  38. package/coverage/lcov-report/src/main/libs/DynamicRule.ts.html +0 -118
  39. package/coverage/lcov-report/src/main/libs/ExportDetails.ts.html +0 -256
  40. package/coverage/lcov-report/src/main/libs/ExportDiagram.ts.html +0 -331
  41. package/coverage/lcov-report/src/main/libs/ExportSarif.ts.html +0 -358
  42. package/coverage/lcov-report/src/main/libs/FixFlows.ts.html +0 -265
  43. package/coverage/lcov-report/src/main/libs/GenerateMarkdown.ts.html +0 -331
  44. package/coverage/lcov-report/src/main/libs/GetRuleDefinitions.ts.html +0 -274
  45. package/coverage/lcov-report/src/main/libs/ParseFlows.ts.html +0 -184
  46. package/coverage/lcov-report/src/main/libs/RuleDocumentation.ts.html +0 -190
  47. package/coverage/lcov-report/src/main/libs/ScanFlows.ts.html +0 -508
  48. package/coverage/lcov-report/src/main/libs/exportAsDetails.ts.html +0 -160
  49. package/coverage/lcov-report/src/main/libs/exportAsSarif.ts.html +0 -346
  50. package/coverage/lcov-report/src/main/libs/index.html +0 -251
  51. package/coverage/lcov-report/src/main/models/FlatViolation.ts.html +0 -106
  52. package/coverage/lcov-report/src/main/models/Flow.ts.html +0 -1057
  53. package/coverage/lcov-report/src/main/models/FlowAttribute.ts.html +0 -115
  54. package/coverage/lcov-report/src/main/models/FlowElement.ts.html +0 -133
  55. package/coverage/lcov-report/src/main/models/FlowElementConnector.ts.html +0 -169
  56. package/coverage/lcov-report/src/main/models/FlowGraph.ts.html +0 -1672
  57. package/coverage/lcov-report/src/main/models/FlowMetadata.ts.html +0 -106
  58. package/coverage/lcov-report/src/main/models/FlowNode.ts.html +0 -1252
  59. package/coverage/lcov-report/src/main/models/FlowResource.ts.html +0 -106
  60. package/coverage/lcov-report/src/main/models/FlowType.ts.html +0 -244
  61. package/coverage/lcov-report/src/main/models/FlowVariable.ts.html +0 -553
  62. package/coverage/lcov-report/src/main/models/LoopRuleCommon.ts.html +0 -235
  63. package/coverage/lcov-report/src/main/models/ParsedFlow.ts.html +0 -121
  64. package/coverage/lcov-report/src/main/models/RuleCommon.ts.html +0 -442
  65. package/coverage/lcov-report/src/main/models/RuleResult.ts.html +0 -172
  66. package/coverage/lcov-report/src/main/models/ScanResult.ts.html +0 -121
  67. package/coverage/lcov-report/src/main/models/Violation.ts.html +0 -316
  68. package/coverage/lcov-report/src/main/models/index.html +0 -341
  69. package/coverage/lcov-report/src/main/rules/APIVersion.ts.html +0 -361
  70. package/coverage/lcov-report/src/main/rules/ActionCallsInLoop.ts.html +0 -157
  71. package/coverage/lcov-report/src/main/rules/AutoLayout.ts.html +0 -220
  72. package/coverage/lcov-report/src/main/rules/CopyAPIName.ts.html +0 -175
  73. package/coverage/lcov-report/src/main/rules/CyclomaticComplexity.ts.html +0 -292
  74. package/coverage/lcov-report/src/main/rules/DMLStatementInLoop.ts.html +0 -163
  75. package/coverage/lcov-report/src/main/rules/DuplicateDMLOperation.ts.html +0 -334
  76. package/coverage/lcov-report/src/main/rules/FlowDescription.ts.html +0 -184
  77. package/coverage/lcov-report/src/main/rules/FlowName.ts.html +0 -229
  78. package/coverage/lcov-report/src/main/rules/GetRecordAllFields.ts.html +0 -280
  79. package/coverage/lcov-report/src/main/rules/HardcodedId.ts.html +0 -238
  80. package/coverage/lcov-report/src/main/rules/HardcodedSecret.ts.html +0 -238
  81. package/coverage/lcov-report/src/main/rules/HardcodedUrl.ts.html +0 -247
  82. package/coverage/lcov-report/src/main/rules/InactiveFlow.ts.html +0 -184
  83. package/coverage/lcov-report/src/main/rules/MissingFaultPath.ts.html +0 -397
  84. package/coverage/lcov-report/src/main/rules/MissingFilterRecordTrigger.ts.html +0 -229
  85. package/coverage/lcov-report/src/main/rules/MissingMetadataDescription.ts.html +0 -211
  86. package/coverage/lcov-report/src/main/rules/MissingNullHandler.ts.html +0 -460
  87. package/coverage/lcov-report/src/main/rules/MissingRecordTriggerFilter.ts.html +0 -235
  88. package/coverage/lcov-report/src/main/rules/ProcessBuilder.ts.html +0 -190
  89. package/coverage/lcov-report/src/main/rules/RecordIdAsString.ts.html +0 -274
  90. package/coverage/lcov-report/src/main/rules/RecursiveAfterUpdate.ts.html +0 -364
  91. package/coverage/lcov-report/src/main/rules/SOQLQueryInLoop.ts.html +0 -160
  92. package/coverage/lcov-report/src/main/rules/SameRecordFieldUpdates.ts.html +0 -283
  93. package/coverage/lcov-report/src/main/rules/TransformInsteadOfLoop.ts.html +0 -250
  94. package/coverage/lcov-report/src/main/rules/TriggerOrder.ts.html +0 -238
  95. package/coverage/lcov-report/src/main/rules/UnconnectedElement.ts.html +0 -178
  96. package/coverage/lcov-report/src/main/rules/UnsafeRunningContext.ts.html +0 -226
  97. package/coverage/lcov-report/src/main/rules/UnusedVariable.ts.html +0 -283
  98. package/coverage/lcov-report/src/main/rules/index.html +0 -521
  99. package/coverage/lcov-report/src/main/store/DefaultRuleStore.ts.html +0 -265
  100. package/coverage/lcov-report/src/main/store/RuleRegistry.ts.html +0 -118
  101. package/coverage/lcov-report/src/main/store/index.html +0 -116
  102. package/coverage/lcov.info +0 -6261
  103. package/eslint.config.mjs +0 -36
  104. package/jest.config.cjs +0 -32
  105. package/jest.env-setup.js +0 -101
  106. package/lint-staged.config.mjs +0 -8
  107. package/prettier.config.mjs +0 -5
  108. package/src/index.ts +0 -52
  109. package/src/main/config/NodeIcons.ts +0 -98
  110. package/src/main/config/RegexAdapter.ts +0 -98
  111. package/src/main/config/RuleRegistry.ts +0 -188
  112. package/src/main/config/VariableIcons.ts +0 -57
  113. package/src/main/enums/MetadataTypes.ts +0 -6
  114. package/src/main/interfaces/IExceptions.ts +0 -6
  115. package/src/main/interfaces/IRuleConfig.ts +0 -6
  116. package/src/main/interfaces/IRuleDefinition.ts +0 -15
  117. package/src/main/interfaces/IRuleOptions.ts +0 -5
  118. package/src/main/interfaces/IRulesConfig.ts +0 -17
  119. package/src/main/internals/internals.ts +0 -35
  120. package/src/main/libs/BuildFlow.ts +0 -14
  121. package/src/main/libs/Compiler.ts +0 -53
  122. package/src/main/libs/ExportDetails.ts +0 -58
  123. package/src/main/libs/ExportDiagram.ts +0 -83
  124. package/src/main/libs/ExportSarif.ts +0 -92
  125. package/src/main/libs/FixFlows.ts +0 -61
  126. package/src/main/libs/GetRuleDefinitions.ts +0 -64
  127. package/src/main/libs/ParseFlows.ts +0 -34
  128. package/src/main/libs/RuleDocumentation.ts +0 -35
  129. package/src/main/libs/ScanFlows.ts +0 -142
  130. package/src/main/models/FlatViolation.ts +0 -16
  131. package/src/main/models/Flow.ts +0 -325
  132. package/src/main/models/FlowAttribute.ts +0 -11
  133. package/src/main/models/FlowElement.ts +0 -16
  134. package/src/main/models/FlowElementConnector.ts +0 -28
  135. package/src/main/models/FlowGraph.ts +0 -530
  136. package/src/main/models/FlowMetadata.ts +0 -8
  137. package/src/main/models/FlowNode.ts +0 -390
  138. package/src/main/models/FlowResource.ts +0 -8
  139. package/src/main/models/FlowType.ts +0 -53
  140. package/src/main/models/FlowVariable.ts +0 -157
  141. package/src/main/models/LoopRuleCommon.ts +0 -51
  142. package/src/main/models/ParsedFlow.ts +0 -13
  143. package/src/main/models/RuleCommon.ts +0 -120
  144. package/src/main/models/RuleInfo.ts +0 -54
  145. package/src/main/models/RuleResult.ts +0 -29
  146. package/src/main/models/ScanResult.ts +0 -12
  147. package/src/main/models/Violation.ts +0 -78
  148. package/src/main/rules/APIVersion.ts +0 -93
  149. package/src/main/rules/ActionCallsInLoop.ts +0 -25
  150. package/src/main/rules/AutoLayout.ts +0 -46
  151. package/src/main/rules/CopyAPIName.ts +0 -31
  152. package/src/main/rules/CyclomaticComplexity.ts +0 -70
  153. package/src/main/rules/DMLStatementInLoop.ts +0 -26
  154. package/src/main/rules/DuplicateDMLOperation.ts +0 -83
  155. package/src/main/rules/FlowDescription.ts +0 -34
  156. package/src/main/rules/FlowName.ts +0 -49
  157. package/src/main/rules/GetRecordAllFields.ts +0 -65
  158. package/src/main/rules/HardcodedId.ts +0 -51
  159. package/src/main/rules/HardcodedSecret.ts +0 -51
  160. package/src/main/rules/HardcodedUrl.ts +0 -54
  161. package/src/main/rules/InactiveFlow.ts +0 -33
  162. package/src/main/rules/MissingFaultPath.ts +0 -105
  163. package/src/main/rules/MissingMetadataDescription.ts +0 -42
  164. package/src/main/rules/MissingNullHandler.ts +0 -126
  165. package/src/main/rules/MissingRecordTriggerFilter.ts +0 -51
  166. package/src/main/rules/ProcessBuilder.ts +0 -35
  167. package/src/main/rules/RecordIdAsString.ts +0 -64
  168. package/src/main/rules/RecursiveAfterUpdate.ts +0 -94
  169. package/src/main/rules/SOQLQueryInLoop.ts +0 -26
  170. package/src/main/rules/SameRecordFieldUpdates.ts +0 -66
  171. package/src/main/rules/TransformInsteadOfLoop.ts +0 -56
  172. package/src/main/rules/TriggerOrder.ts +0 -51
  173. package/src/main/rules/UnconnectedElement.ts +0 -32
  174. package/src/main/rules/UnsafeRunningContext.ts +0 -47
  175. package/src/main/rules/UnusedVariable.ts +0 -66
  176. package/stryker.config.mjs +0 -23
  177. package/tests/APIVersion.test.ts +0 -87
  178. package/tests/AutoLayout.test.ts +0 -41
  179. package/tests/Config.test.ts +0 -122
  180. package/tests/ConfigBetaMode.test.ts +0 -26
  181. package/tests/CopyAPIName.test.ts +0 -45
  182. package/tests/CyclomaticComplexity.test.ts +0 -125
  183. package/tests/DMLStatementInLoop.test.ts +0 -32
  184. package/tests/DuplicateDMLOperation.test.ts +0 -43
  185. package/tests/EnabledFalse.test.ts +0 -63
  186. package/tests/Exceptions.test.ts +0 -815
  187. package/tests/ExportSarif.test.ts +0 -62
  188. package/tests/FlowDescription.test.ts +0 -44
  189. package/tests/FlowDocumentation.test.ts +0 -74
  190. package/tests/FlowName.test.ts +0 -61
  191. package/tests/GetRecordElementAllFields.test.ts +0 -182
  192. package/tests/HardcodedId.test.ts +0 -16
  193. package/tests/HardcodedSecret.test.ts +0 -32
  194. package/tests/HardcodedUrl.test.ts +0 -253
  195. package/tests/InactiveFlow.test.ts +0 -103
  196. package/tests/MissingFaultPath.test.ts +0 -52
  197. package/tests/MissingMetadataDescription.test.ts +0 -25
  198. package/tests/MissingNullHandler.test.ts +0 -45
  199. package/tests/MissingRecordTriggerFilter.test.ts +0 -54
  200. package/tests/RecordIdAsString.test.ts +0 -60
  201. package/tests/RecursiveAfterUpdate.test.ts +0 -183
  202. package/tests/SOQLQueryInLoop.test.ts +0 -33
  203. package/tests/SameRecordFieldUpdates.test.ts +0 -205
  204. package/tests/SanityTest.test.ts +0 -15
  205. package/tests/TransformInsteadOfLoop.test.ts +0 -33
  206. package/tests/TriggerOrder.test.ts +0 -112
  207. package/tests/UnconnectedElement.test.ts +0 -76
  208. package/tests/UnsafeRunningContext.test.ts +0 -46
  209. package/tests/UnusedVariable.test.ts +0 -59
  210. package/tests/UnusedVariableExceptions.test.ts +0 -87
  211. package/tests/jsonfiles/MissingFaultPath_BeforeSave_Bypass.json +0 -128
  212. package/tests/jsonfiles/MissingFaultPath_WaitConditions.json +0 -102
  213. package/tests/jsonfiles/MissingFaultPath_WaitDate.json +0 -88
  214. package/tests/jsonfiles/MissingFaultPath_WaitDuration.json +0 -90
  215. package/tests/models/Flow.test.ts +0 -107
  216. package/tests/models/LoopRuleCommon.test.ts +0 -246
  217. package/tests/models/RuleCommon.test.ts +0 -41
  218. package/tsconfig.json +0 -28
  219. package/tsconfig.types.json +0 -26
  220. package/types/index.d.ts +0 -27
  221. package/types/index.d.ts.map +0 -1
  222. package/types/main/adapters/RegexAdapter.d.ts +0 -33
  223. package/types/main/adapters/RegexAdapter.d.ts.map +0 -1
  224. package/types/main/config/NodeIcons.d.ts +0 -25
  225. package/types/main/config/NodeIcons.d.ts.map +0 -1
  226. package/types/main/config/RegexAdapter.d.ts +0 -33
  227. package/types/main/config/RegexAdapter.d.ts.map +0 -1
  228. package/types/main/config/RuleRegistry.d.ts +0 -23
  229. package/types/main/config/RuleRegistry.d.ts.map +0 -1
  230. package/types/main/config/VariableIcons.d.ts +0 -26
  231. package/types/main/config/VariableIcons.d.ts.map +0 -1
  232. package/types/main/enums/MetadataTypes.d.ts +0 -7
  233. package/types/main/enums/MetadataTypes.d.ts.map +0 -1
  234. package/types/main/interfaces/IExceptions.d.ts +0 -6
  235. package/types/main/interfaces/IExceptions.d.ts.map +0 -1
  236. package/types/main/interfaces/IRuleConfig.d.ts +0 -7
  237. package/types/main/interfaces/IRuleConfig.d.ts.map +0 -1
  238. package/types/main/interfaces/IRuleDefinition.d.ts +0 -18
  239. package/types/main/interfaces/IRuleDefinition.d.ts.map +0 -1
  240. package/types/main/interfaces/IRuleOptions.d.ts +0 -5
  241. package/types/main/interfaces/IRuleOptions.d.ts.map +0 -1
  242. package/types/main/interfaces/IRulesConfig.d.ts +0 -16
  243. package/types/main/interfaces/IRulesConfig.d.ts.map +0 -1
  244. package/types/main/internals/internals.d.ts +0 -19
  245. package/types/main/internals/internals.d.ts.map +0 -1
  246. package/types/main/libs/BuildFlow.d.ts +0 -2
  247. package/types/main/libs/BuildFlow.d.ts.map +0 -1
  248. package/types/main/libs/Compiler.d.ts +0 -8
  249. package/types/main/libs/Compiler.d.ts.map +0 -1
  250. package/types/main/libs/ConvertFlowNodes.d.ts +0 -2
  251. package/types/main/libs/ConvertFlowNodes.d.ts.map +0 -1
  252. package/types/main/libs/DynamicRule.d.ts +0 -5
  253. package/types/main/libs/DynamicRule.d.ts.map +0 -1
  254. package/types/main/libs/ExportDetails.d.ts +0 -4
  255. package/types/main/libs/ExportDetails.d.ts.map +0 -1
  256. package/types/main/libs/ExportDiagram.d.ts +0 -42
  257. package/types/main/libs/ExportDiagram.d.ts.map +0 -1
  258. package/types/main/libs/ExportSarif.d.ts +0 -3
  259. package/types/main/libs/ExportSarif.d.ts.map +0 -1
  260. package/types/main/libs/FixFlows.d.ts +0 -4
  261. package/types/main/libs/FixFlows.d.ts.map +0 -1
  262. package/types/main/libs/GetRuleDefinitions.d.ts +0 -5
  263. package/types/main/libs/GetRuleDefinitions.d.ts.map +0 -1
  264. package/types/main/libs/ParseFlows.d.ts +0 -3
  265. package/types/main/libs/ParseFlows.d.ts.map +0 -1
  266. package/types/main/libs/RuleDocumentation.d.ts +0 -21
  267. package/types/main/libs/RuleDocumentation.d.ts.map +0 -1
  268. package/types/main/libs/ScanFlows.d.ts +0 -5
  269. package/types/main/libs/ScanFlows.d.ts.map +0 -1
  270. package/types/main/libs/exportAsDetails.d.ts +0 -4
  271. package/types/main/libs/exportAsDetails.d.ts.map +0 -1
  272. package/types/main/libs/exportAsSarif.d.ts +0 -3
  273. package/types/main/libs/exportAsSarif.d.ts.map +0 -1
  274. package/types/main/models/FlatViolation.d.ts +0 -16
  275. package/types/main/models/FlatViolation.d.ts.map +0 -1
  276. package/types/main/models/Flow.d.ts +0 -70
  277. package/types/main/models/Flow.d.ts.map +0 -1
  278. package/types/main/models/FlowAttribute.d.ts +0 -6
  279. package/types/main/models/FlowAttribute.d.ts.map +0 -1
  280. package/types/main/models/FlowElement.d.ts +0 -11
  281. package/types/main/models/FlowElement.d.ts.map +0 -1
  282. package/types/main/models/FlowElementConnector.d.ts +0 -16
  283. package/types/main/models/FlowElementConnector.d.ts.map +0 -1
  284. package/types/main/models/FlowGraph.d.ts +0 -86
  285. package/types/main/models/FlowGraph.d.ts.map +0 -1
  286. package/types/main/models/FlowMetadata.d.ts +0 -5
  287. package/types/main/models/FlowMetadata.d.ts.map +0 -1
  288. package/types/main/models/FlowNode.d.ts +0 -66
  289. package/types/main/models/FlowNode.d.ts.map +0 -1
  290. package/types/main/models/FlowResource.d.ts +0 -5
  291. package/types/main/models/FlowResource.d.ts.map +0 -1
  292. package/types/main/models/FlowType.d.ts +0 -24
  293. package/types/main/models/FlowType.d.ts.map +0 -1
  294. package/types/main/models/FlowVariable.d.ts +0 -64
  295. package/types/main/models/FlowVariable.d.ts.map +0 -1
  296. package/types/main/models/LoopRuleCommon.d.ts +0 -15
  297. package/types/main/models/LoopRuleCommon.d.ts.map +0 -1
  298. package/types/main/models/ParsedFlow.d.ts +0 -8
  299. package/types/main/models/ParsedFlow.d.ts.map +0 -1
  300. package/types/main/models/RuleCommon.d.ts +0 -58
  301. package/types/main/models/RuleCommon.d.ts.map +0 -1
  302. package/types/main/models/RuleInfo.d.ts +0 -50
  303. package/types/main/models/RuleInfo.d.ts.map +0 -1
  304. package/types/main/models/RuleResult.d.ts +0 -15
  305. package/types/main/models/RuleResult.d.ts.map +0 -1
  306. package/types/main/models/ScanResult.d.ts +0 -8
  307. package/types/main/models/ScanResult.d.ts.map +0 -1
  308. package/types/main/models/Violation.d.ts +0 -12
  309. package/types/main/models/Violation.d.ts.map +0 -1
  310. package/types/main/rules/APIVersion.d.ts +0 -10
  311. package/types/main/rules/APIVersion.d.ts.map +0 -1
  312. package/types/main/rules/ActionCallsInLoop.d.ts +0 -7
  313. package/types/main/rules/ActionCallsInLoop.d.ts.map +0 -1
  314. package/types/main/rules/AutoLayout.d.ts +0 -8
  315. package/types/main/rules/AutoLayout.d.ts.map +0 -1
  316. package/types/main/rules/CopyAPIName.d.ts +0 -8
  317. package/types/main/rules/CopyAPIName.d.ts.map +0 -1
  318. package/types/main/rules/CyclomaticComplexity.d.ts +0 -12
  319. package/types/main/rules/CyclomaticComplexity.d.ts.map +0 -1
  320. package/types/main/rules/DMLStatementInLoop.d.ts +0 -7
  321. package/types/main/rules/DMLStatementInLoop.d.ts.map +0 -1
  322. package/types/main/rules/DuplicateDMLOperation.d.ts +0 -9
  323. package/types/main/rules/DuplicateDMLOperation.d.ts.map +0 -1
  324. package/types/main/rules/FlowDescription.d.ts +0 -8
  325. package/types/main/rules/FlowDescription.d.ts.map +0 -1
  326. package/types/main/rules/FlowName.d.ts +0 -16
  327. package/types/main/rules/FlowName.d.ts.map +0 -1
  328. package/types/main/rules/GetRecordAllFields.d.ts +0 -8
  329. package/types/main/rules/GetRecordAllFields.d.ts.map +0 -1
  330. package/types/main/rules/HardcodedId.d.ts +0 -14
  331. package/types/main/rules/HardcodedId.d.ts.map +0 -1
  332. package/types/main/rules/HardcodedSecret.d.ts +0 -14
  333. package/types/main/rules/HardcodedSecret.d.ts.map +0 -1
  334. package/types/main/rules/HardcodedUrl.d.ts +0 -14
  335. package/types/main/rules/HardcodedUrl.d.ts.map +0 -1
  336. package/types/main/rules/InactiveFlow.d.ts +0 -8
  337. package/types/main/rules/InactiveFlow.d.ts.map +0 -1
  338. package/types/main/rules/MissingFaultPath.d.ts +0 -15
  339. package/types/main/rules/MissingFaultPath.d.ts.map +0 -1
  340. package/types/main/rules/MissingFilterRecordTrigger.d.ts +0 -8
  341. package/types/main/rules/MissingFilterRecordTrigger.d.ts.map +0 -1
  342. package/types/main/rules/MissingMetadataDescription.d.ts +0 -8
  343. package/types/main/rules/MissingMetadataDescription.d.ts.map +0 -1
  344. package/types/main/rules/MissingNullHandler.d.ts +0 -8
  345. package/types/main/rules/MissingNullHandler.d.ts.map +0 -1
  346. package/types/main/rules/MissingRecordTriggerFilter.d.ts +0 -8
  347. package/types/main/rules/MissingRecordTriggerFilter.d.ts.map +0 -1
  348. package/types/main/rules/ProcessBuilder.d.ts +0 -8
  349. package/types/main/rules/ProcessBuilder.d.ts.map +0 -1
  350. package/types/main/rules/RecordIdAsString.d.ts +0 -8
  351. package/types/main/rules/RecordIdAsString.d.ts.map +0 -1
  352. package/types/main/rules/RecursiveAfterUpdate.d.ts +0 -9
  353. package/types/main/rules/RecursiveAfterUpdate.d.ts.map +0 -1
  354. package/types/main/rules/SOQLQueryInLoop.d.ts +0 -7
  355. package/types/main/rules/SOQLQueryInLoop.d.ts.map +0 -1
  356. package/types/main/rules/SameRecordFieldUpdates.d.ts +0 -9
  357. package/types/main/rules/SameRecordFieldUpdates.d.ts.map +0 -1
  358. package/types/main/rules/TransformInsteadOfLoop.d.ts +0 -8
  359. package/types/main/rules/TransformInsteadOfLoop.d.ts.map +0 -1
  360. package/types/main/rules/TriggerOrder.d.ts +0 -8
  361. package/types/main/rules/TriggerOrder.d.ts.map +0 -1
  362. package/types/main/rules/UnconnectedElement.d.ts +0 -8
  363. package/types/main/rules/UnconnectedElement.d.ts.map +0 -1
  364. package/types/main/rules/UnsafeRunningContext.d.ts +0 -8
  365. package/types/main/rules/UnsafeRunningContext.d.ts.map +0 -1
  366. package/types/main/rules/UnusedVariable.d.ts +0 -8
  367. package/types/main/rules/UnusedVariable.d.ts.map +0 -1
  368. package/types/main/store/DefaultRuleStore.d.ts +0 -3
  369. package/types/main/store/DefaultRuleStore.d.ts.map +0 -1
  370. package/types/main/store/RuleRegistry.d.ts +0 -23
  371. package/types/main/store/RuleRegistry.d.ts.map +0 -1
  372. package/vite.config.ts +0 -33
  373. /package/{out/index.d.ts → index.d.ts} +0 -0
  374. /package/{out/index.js → index.js} +0 -0
  375. /package/{out/main → main}/config/NodeIcons.d.ts +0 -0
  376. /package/{out/main → main}/config/NodeIcons.js +0 -0
  377. /package/{out/main → main}/config/RegexAdapter.d.ts +0 -0
  378. /package/{out/main → main}/config/RegexAdapter.js +0 -0
  379. /package/{out/main → main}/config/RuleRegistry.d.ts +0 -0
  380. /package/{out/main → main}/config/RuleRegistry.js +0 -0
  381. /package/{out/main → main}/config/VariableIcons.d.ts +0 -0
  382. /package/{out/main → main}/config/VariableIcons.js +0 -0
  383. /package/{out/main → main}/enums/MetadataTypes.d.ts +0 -0
  384. /package/{out/main → main}/enums/MetadataTypes.js +0 -0
  385. /package/{out/main → main}/interfaces/IExceptions.d.ts +0 -0
  386. /package/{out/main → main}/interfaces/IExceptions.js +0 -0
  387. /package/{out/main → main}/interfaces/IRuleConfig.d.ts +0 -0
  388. /package/{out/main → main}/interfaces/IRuleConfig.js +0 -0
  389. /package/{out/main → main}/interfaces/IRuleDefinition.d.ts +0 -0
  390. /package/{out/main → main}/interfaces/IRuleDefinition.js +0 -0
  391. /package/{out/main → main}/interfaces/IRuleOptions.d.ts +0 -0
  392. /package/{out/main → main}/interfaces/IRuleOptions.js +0 -0
  393. /package/{out/main → main}/interfaces/IRulesConfig.d.ts +0 -0
  394. /package/{out/main → main}/interfaces/IRulesConfig.js +0 -0
  395. /package/{out/main → main}/internals/internals.d.ts +0 -0
  396. /package/{out/main → main}/internals/internals.js +0 -0
  397. /package/{out/main → main}/libs/BuildFlow.d.ts +0 -0
  398. /package/{out/main → main}/libs/BuildFlow.js +0 -0
  399. /package/{out/main → main}/libs/Compiler.d.ts +0 -0
  400. /package/{out/main → main}/libs/Compiler.js +0 -0
  401. /package/{out/main → main}/libs/ExportDetails.d.ts +0 -0
  402. /package/{out/main → main}/libs/ExportDetails.js +0 -0
  403. /package/{out/main → main}/libs/ExportDiagram.d.ts +0 -0
  404. /package/{out/main → main}/libs/ExportDiagram.js +0 -0
  405. /package/{out/main → main}/libs/ExportSarif.d.ts +0 -0
  406. /package/{out/main → main}/libs/ExportSarif.js +0 -0
  407. /package/{out/main → main}/libs/FixFlows.d.ts +0 -0
  408. /package/{out/main → main}/libs/FixFlows.js +0 -0
  409. /package/{out/main → main}/libs/GetRuleDefinitions.d.ts +0 -0
  410. /package/{out/main → main}/libs/GetRuleDefinitions.js +0 -0
  411. /package/{out/main → main}/libs/ParseFlows.d.ts +0 -0
  412. /package/{out/main → main}/libs/ParseFlows.js +0 -0
  413. /package/{out/main → main}/libs/RuleDocumentation.d.ts +0 -0
  414. /package/{out/main → main}/libs/RuleDocumentation.js +0 -0
  415. /package/{out/main → main}/libs/ScanFlows.d.ts +0 -0
  416. /package/{out/main → main}/libs/ScanFlows.js +0 -0
  417. /package/{out/main → main}/models/FlatViolation.d.ts +0 -0
  418. /package/{out/main → main}/models/FlatViolation.js +0 -0
  419. /package/{out/main → main}/models/Flow.d.ts +0 -0
  420. /package/{out/main → main}/models/Flow.js +0 -0
  421. /package/{out/main → main}/models/FlowAttribute.d.ts +0 -0
  422. /package/{out/main → main}/models/FlowAttribute.js +0 -0
  423. /package/{out/main → main}/models/FlowElement.d.ts +0 -0
  424. /package/{out/main → main}/models/FlowElement.js +0 -0
  425. /package/{out/main → main}/models/FlowElementConnector.d.ts +0 -0
  426. /package/{out/main → main}/models/FlowElementConnector.js +0 -0
  427. /package/{out/main → main}/models/FlowGraph.d.ts +0 -0
  428. /package/{out/main → main}/models/FlowGraph.js +0 -0
  429. /package/{out/main → main}/models/FlowMetadata.d.ts +0 -0
  430. /package/{out/main → main}/models/FlowMetadata.js +0 -0
  431. /package/{out/main → main}/models/FlowNode.d.ts +0 -0
  432. /package/{out/main → main}/models/FlowNode.js +0 -0
  433. /package/{out/main → main}/models/FlowResource.d.ts +0 -0
  434. /package/{out/main → main}/models/FlowResource.js +0 -0
  435. /package/{out/main → main}/models/FlowType.d.ts +0 -0
  436. /package/{out/main → main}/models/FlowType.js +0 -0
  437. /package/{out/main → main}/models/FlowVariable.d.ts +0 -0
  438. /package/{out/main → main}/models/FlowVariable.js +0 -0
  439. /package/{out/main → main}/models/LoopRuleCommon.d.ts +0 -0
  440. /package/{out/main → main}/models/LoopRuleCommon.js +0 -0
  441. /package/{out/main → main}/models/ParsedFlow.d.ts +0 -0
  442. /package/{out/main → main}/models/ParsedFlow.js +0 -0
  443. /package/{out/main → main}/models/RuleCommon.d.ts +0 -0
  444. /package/{out/main → main}/models/RuleCommon.js +0 -0
  445. /package/{out/main → main}/models/RuleInfo.d.ts +0 -0
  446. /package/{out/main → main}/models/RuleInfo.js +0 -0
  447. /package/{out/main → main}/models/RuleResult.d.ts +0 -0
  448. /package/{out/main → main}/models/RuleResult.js +0 -0
  449. /package/{out/main → main}/models/ScanResult.d.ts +0 -0
  450. /package/{out/main → main}/models/ScanResult.js +0 -0
  451. /package/{out/main → main}/models/Violation.d.ts +0 -0
  452. /package/{out/main → main}/models/Violation.js +0 -0
  453. /package/{out/main → main}/rules/APIVersion.d.ts +0 -0
  454. /package/{out/main → main}/rules/APIVersion.js +0 -0
  455. /package/{out/main → main}/rules/ActionCallsInLoop.d.ts +0 -0
  456. /package/{out/main → main}/rules/ActionCallsInLoop.js +0 -0
  457. /package/{out/main → main}/rules/AutoLayout.d.ts +0 -0
  458. /package/{out/main → main}/rules/AutoLayout.js +0 -0
  459. /package/{out/main → main}/rules/CopyAPIName.d.ts +0 -0
  460. /package/{out/main → main}/rules/CopyAPIName.js +0 -0
  461. /package/{out/main → main}/rules/CyclomaticComplexity.d.ts +0 -0
  462. /package/{out/main → main}/rules/CyclomaticComplexity.js +0 -0
  463. /package/{out/main → main}/rules/DMLStatementInLoop.d.ts +0 -0
  464. /package/{out/main → main}/rules/DMLStatementInLoop.js +0 -0
  465. /package/{out/main → main}/rules/DuplicateDMLOperation.d.ts +0 -0
  466. /package/{out/main → main}/rules/DuplicateDMLOperation.js +0 -0
  467. /package/{out/main → main}/rules/FlowDescription.d.ts +0 -0
  468. /package/{out/main → main}/rules/FlowDescription.js +0 -0
  469. /package/{out/main → main}/rules/FlowName.d.ts +0 -0
  470. /package/{out/main → main}/rules/FlowName.js +0 -0
  471. /package/{out/main → main}/rules/GetRecordAllFields.d.ts +0 -0
  472. /package/{out/main → main}/rules/GetRecordAllFields.js +0 -0
  473. /package/{out/main → main}/rules/HardcodedId.d.ts +0 -0
  474. /package/{out/main → main}/rules/HardcodedId.js +0 -0
  475. /package/{out/main → main}/rules/HardcodedSecret.d.ts +0 -0
  476. /package/{out/main → main}/rules/HardcodedSecret.js +0 -0
  477. /package/{out/main → main}/rules/HardcodedUrl.d.ts +0 -0
  478. /package/{out/main → main}/rules/HardcodedUrl.js +0 -0
  479. /package/{out/main → main}/rules/InactiveFlow.d.ts +0 -0
  480. /package/{out/main → main}/rules/InactiveFlow.js +0 -0
  481. /package/{out/main → main}/rules/MissingFaultPath.d.ts +0 -0
  482. /package/{out/main → main}/rules/MissingFaultPath.js +0 -0
  483. /package/{out/main → main}/rules/MissingMetadataDescription.d.ts +0 -0
  484. /package/{out/main → main}/rules/MissingMetadataDescription.js +0 -0
  485. /package/{out/main → main}/rules/MissingNullHandler.d.ts +0 -0
  486. /package/{out/main → main}/rules/MissingNullHandler.js +0 -0
  487. /package/{out/main → main}/rules/MissingRecordTriggerFilter.d.ts +0 -0
  488. /package/{out/main → main}/rules/MissingRecordTriggerFilter.js +0 -0
  489. /package/{out/main → main}/rules/ProcessBuilder.d.ts +0 -0
  490. /package/{out/main → main}/rules/ProcessBuilder.js +0 -0
  491. /package/{out/main → main}/rules/RecordIdAsString.d.ts +0 -0
  492. /package/{out/main → main}/rules/RecordIdAsString.js +0 -0
  493. /package/{out/main → main}/rules/RecursiveAfterUpdate.d.ts +0 -0
  494. /package/{out/main → main}/rules/RecursiveAfterUpdate.js +0 -0
  495. /package/{out/main → main}/rules/SOQLQueryInLoop.d.ts +0 -0
  496. /package/{out/main → main}/rules/SOQLQueryInLoop.js +0 -0
  497. /package/{out/main → main}/rules/SameRecordFieldUpdates.d.ts +0 -0
  498. /package/{out/main → main}/rules/SameRecordFieldUpdates.js +0 -0
  499. /package/{out/main → main}/rules/TransformInsteadOfLoop.d.ts +0 -0
  500. /package/{out/main → main}/rules/TransformInsteadOfLoop.js +0 -0
  501. /package/{out/main → main}/rules/TriggerOrder.d.ts +0 -0
  502. /package/{out/main → main}/rules/TriggerOrder.js +0 -0
  503. /package/{out/main → main}/rules/UnconnectedElement.d.ts +0 -0
  504. /package/{out/main → main}/rules/UnconnectedElement.js +0 -0
  505. /package/{out/main → main}/rules/UnsafeRunningContext.d.ts +0 -0
  506. /package/{out/main → main}/rules/UnsafeRunningContext.js +0 -0
  507. /package/{out/main → main}/rules/UnusedVariable.d.ts +0 -0
  508. /package/{out/main → main}/rules/UnusedVariable.js +0 -0
@@ -1,815 +0,0 @@
1
- import * as core from "../src";
2
- import { ParsedFlow } from "../src/main/models/ParsedFlow";
3
-
4
- import { describe, it, expect } from "@jest/globals";
5
-
6
- describe("Exceptions", () => {
7
- it("should show exceptions on wrong configuration", async () => {
8
- const flows: ParsedFlow[] = [
9
- {
10
- uri: "something",
11
- flow: {
12
- flowVariables: ["choices", "constants", "dynamicChoiceSets", "formulas", "variables"],
13
- flowResources: ["textTemplates", "stages"],
14
- flowMetadata: [
15
- "description",
16
- "apiVersion",
17
- "processMetadataValues",
18
- "processType",
19
- "interviewLabel",
20
- "label",
21
- "status",
22
- "runInMode",
23
- "startElementReference",
24
- "isTemplate",
25
- "fullName",
26
- "timeZoneSidKey",
27
- "isAdditionalPermissionRequiredToRun",
28
- "migratedFromWorkflowRuleName",
29
- "triggerOrder",
30
- "environments",
31
- "segment",
32
- ],
33
- flowNodes: [
34
- "actionCalls",
35
- "apexPluginCalls",
36
- "assignments",
37
- "collectionProcessors",
38
- "decisions",
39
- "loops",
40
- "orchestratedStages",
41
- "recordCreates",
42
- "recordDeletes",
43
- "recordLookups",
44
- "recordUpdates",
45
- "recordRollbacks",
46
- "screens",
47
- "start",
48
- "steps",
49
- "subflows",
50
- "waits",
51
- ],
52
- fsPath: "./tests/xmlfiles/random.flow-meta.xml",
53
- name: "Flow1API60",
54
- xmldata: {
55
- "@xmlns": "http://soap.sforce.com/2006/04/metadata",
56
- apiVersion: "60.0",
57
- environments: "Default",
58
- interviewLabel: "test {!$Flow.CurrentDateTime}",
59
- label: "test",
60
- processMetadataValues: [
61
- {
62
- name: "BuilderType",
63
- value: { stringValue: "LightningFlowBuilder" },
64
- },
65
- {
66
- name: "CanvasMode",
67
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
68
- },
69
- {
70
- name: "OriginBuilderType",
71
- value: { stringValue: "LightningFlowBuilder" },
72
- },
73
- ],
74
- processType: "Flow",
75
- runInMode: "SystemModeWithoutSharing",
76
- screens: {
77
- name: "testtest",
78
- label: "test",
79
- locationX: "176",
80
- locationY: "134",
81
- allowBack: "true",
82
- allowFinish: "true",
83
- allowPause: "true",
84
- showFooter: "true",
85
- showHeader: "true",
86
- },
87
- start: {
88
- locationX: "50",
89
- locationY: "0",
90
- connector: { targetReference: "testtest" },
91
- },
92
- status: "Draft",
93
- },
94
- label: "test",
95
- interviewLabel: "test {!$Flow.CurrentDateTime}",
96
- processType: "Flow",
97
- processMetadataValues: [
98
- {
99
- name: "BuilderType",
100
- value: { stringValue: "LightningFlowBuilder" },
101
- },
102
- { name: "CanvasMode", value: { stringValue: "AUTO_LAYOUT_CANVAS" } },
103
- {
104
- name: "OriginBuilderType",
105
- value: { stringValue: "LightningFlowBuilder" },
106
- },
107
- ],
108
- start: {
109
- locationX: "50",
110
- locationY: "0",
111
- connector: { targetReference: "testtest" },
112
- },
113
- status: "Draft",
114
- type: "Flow",
115
- elements: [
116
- { element: "61.0", subtype: "apiVersion", metaType: "attribute" },
117
- { element: "Default", subtype: "environments", metaType: "attribute" },
118
- {
119
- element: "test {!$Flow.CurrentDateTime}",
120
- subtype: "interviewLabel",
121
- metaType: "attribute",
122
- },
123
- { element: "test", subtype: "label", metaType: "attribute" },
124
- {
125
- element: {
126
- name: "BuilderType",
127
- value: { stringValue: "LightningFlowBuilder" },
128
- },
129
- subtype: "processMetadataValues",
130
- metaType: "attribute",
131
- },
132
- {
133
- element: {
134
- name: "CanvasMode",
135
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
136
- },
137
- subtype: "processMetadataValues",
138
- metaType: "attribute",
139
- },
140
- {
141
- element: {
142
- name: "OriginBuilderType",
143
- value: { stringValue: "LightningFlowBuilder" },
144
- },
145
- subtype: "processMetadataValues",
146
- metaType: "attribute",
147
- },
148
- { element: "Flow", subtype: "processType", metaType: "attribute" },
149
- {
150
- element: "SystemModeWithoutSharing",
151
- subtype: "runInMode",
152
- metaType: "attribute",
153
- },
154
- {
155
- element: {
156
- name: "testtest",
157
- label: "test",
158
- locationX: "176",
159
- locationY: "134",
160
- allowBack: "true",
161
- allowFinish: "true",
162
- allowPause: "true",
163
- showFooter: "true",
164
- showHeader: "true",
165
- },
166
- subtype: "screens",
167
- metaType: "node",
168
- connectors: [],
169
- name: "testtest",
170
- locationX: "176",
171
- locationY: "134",
172
- },
173
- {
174
- element: {
175
- locationX: "50",
176
- locationY: "0",
177
- connector: { targetReference: "testtest" },
178
- },
179
- subtype: "start",
180
- metaType: "node",
181
- connectors: [
182
- {
183
- element: { targetReference: "testtest" },
184
- processed: false,
185
- type: "connector",
186
- reference: "testtest",
187
- },
188
- ],
189
- name: "flowstart",
190
- locationX: "50",
191
- locationY: "0",
192
- },
193
- { element: "Draft", subtype: "status", metaType: "attribute" },
194
- ],
195
- startReference: "testtest",
196
- } as Partial<core.Flow> as core.Flow,
197
- },
198
- ];
199
- const ruleConfig = {
200
- ruleMode: "isolated",
201
- rules: {
202
- APIVersion: {
203
- severity: "error",
204
- expression: "===62",
205
- },
206
- },
207
- exceptions: {
208
- Flow1API60: { APIVersion: ["60.0"] },
209
- Flow2API61: { APIVersion: ["60.0"] },
210
- Flow3API59: { APIVersion: ["60.0"] },
211
- },
212
- };
213
- const results: core.ScanResult[] = core.scan(flows, ruleConfig);
214
- const { ruleResults } = results.pop() as core.ScanResult;
215
- expect(
216
- ruleResults.filter((rule) => {
217
- return rule.occurs;
218
- })
219
- ).toHaveLength(1);
220
- });
221
-
222
- it("should show not show any exceptions on api version", async () => {
223
- const flows: ParsedFlow[] = [
224
- {
225
- uri: "something",
226
- flow: {
227
- flowVariables: ["choices", "constants", "dynamicChoiceSets", "formulas", "variables"],
228
- flowResources: ["textTemplates", "stages"],
229
- flowMetadata: [
230
- "description",
231
- "apiVersion",
232
- "processMetadataValues",
233
- "processType",
234
- "interviewLabel",
235
- "label",
236
- "status",
237
- "runInMode",
238
- "startElementReference",
239
- "isTemplate",
240
- "fullName",
241
- "timeZoneSidKey",
242
- "isAdditionalPermissionRequiredToRun",
243
- "migratedFromWorkflowRuleName",
244
- "triggerOrder",
245
- "environments",
246
- "segment",
247
- ],
248
- flowNodes: [
249
- "actionCalls",
250
- "apexPluginCalls",
251
- "assignments",
252
- "collectionProcessors",
253
- "decisions",
254
- "loops",
255
- "orchestratedStages",
256
- "recordCreates",
257
- "recordDeletes",
258
- "recordLookups",
259
- "recordUpdates",
260
- "recordRollbacks",
261
- "screens",
262
- "start",
263
- "steps",
264
- "subflows",
265
- "waits",
266
- ],
267
- fsPath: "./tests/xmlfiles/random.flow-meta.xml",
268
- name: "Flow1API60",
269
- xmldata: {
270
- "@xmlns": "http://soap.sforce.com/2006/04/metadata",
271
- apiVersion: "60.0",
272
- environments: "Default",
273
- interviewLabel: "test {!$Flow.CurrentDateTime}",
274
- label: "test",
275
- processMetadataValues: [
276
- {
277
- name: "BuilderType",
278
- value: { stringValue: "LightningFlowBuilder" },
279
- },
280
- {
281
- name: "CanvasMode",
282
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
283
- },
284
- {
285
- name: "OriginBuilderType",
286
- value: { stringValue: "LightningFlowBuilder" },
287
- },
288
- ],
289
- processType: "Flow",
290
- runInMode: "SystemModeWithoutSharing",
291
- screens: {
292
- name: "testtest",
293
- label: "test",
294
- locationX: "176",
295
- locationY: "134",
296
- allowBack: "true",
297
- allowFinish: "true",
298
- allowPause: "true",
299
- showFooter: "true",
300
- showHeader: "true",
301
- },
302
- start: {
303
- locationX: "50",
304
- locationY: "0",
305
- connector: { targetReference: "testtest" },
306
- },
307
- status: "Draft",
308
- },
309
- label: "test",
310
- interviewLabel: "test {!$Flow.CurrentDateTime}",
311
- processType: "Flow",
312
- processMetadataValues: [
313
- {
314
- name: "BuilderType",
315
- value: { stringValue: "LightningFlowBuilder" },
316
- },
317
- { name: "CanvasMode", value: { stringValue: "AUTO_LAYOUT_CANVAS" } },
318
- {
319
- name: "OriginBuilderType",
320
- value: { stringValue: "LightningFlowBuilder" },
321
- },
322
- ],
323
- start: {
324
- locationX: "50",
325
- locationY: "0",
326
- connector: { targetReference: "testtest" },
327
- },
328
- status: "Draft",
329
- type: "Flow",
330
- elements: [
331
- { element: "61.0", subtype: "apiVersion", metaType: "attribute" },
332
- { element: "Default", subtype: "environments", metaType: "attribute" },
333
- {
334
- element: "test {!$Flow.CurrentDateTime}",
335
- subtype: "interviewLabel",
336
- metaType: "attribute",
337
- },
338
- { element: "test", subtype: "label", metaType: "attribute" },
339
- {
340
- element: {
341
- name: "BuilderType",
342
- value: { stringValue: "LightningFlowBuilder" },
343
- },
344
- subtype: "processMetadataValues",
345
- metaType: "attribute",
346
- },
347
- {
348
- element: {
349
- name: "CanvasMode",
350
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
351
- },
352
- subtype: "processMetadataValues",
353
- metaType: "attribute",
354
- },
355
- {
356
- element: {
357
- name: "OriginBuilderType",
358
- value: { stringValue: "LightningFlowBuilder" },
359
- },
360
- subtype: "processMetadataValues",
361
- metaType: "attribute",
362
- },
363
- { element: "Flow", subtype: "processType", metaType: "attribute" },
364
- {
365
- element: "SystemModeWithoutSharing",
366
- subtype: "runInMode",
367
- metaType: "attribute",
368
- },
369
- {
370
- element: {
371
- name: "testtest",
372
- label: "test",
373
- locationX: "176",
374
- locationY: "134",
375
- allowBack: "true",
376
- allowFinish: "true",
377
- allowPause: "true",
378
- showFooter: "true",
379
- showHeader: "true",
380
- },
381
- subtype: "screens",
382
- metaType: "node",
383
- connectors: [],
384
- name: "testtest",
385
- locationX: "176",
386
- locationY: "134",
387
- },
388
- {
389
- element: {
390
- locationX: "50",
391
- locationY: "0",
392
- connector: { targetReference: "testtest" },
393
- },
394
- subtype: "start",
395
- metaType: "node",
396
- connectors: [
397
- {
398
- element: { targetReference: "testtest" },
399
- processed: false,
400
- type: "connector",
401
- reference: "testtest",
402
- },
403
- ],
404
- name: "flowstart",
405
- locationX: "50",
406
- locationY: "0",
407
- },
408
- { element: "Draft", subtype: "status", metaType: "attribute" },
409
- ],
410
- startReference: "testtest",
411
- } as Partial<core.Flow> as core.Flow,
412
- },
413
- {
414
- uri: "something",
415
- flow: {
416
- flowVariables: ["choices", "constants", "dynamicChoiceSets", "formulas", "variables"],
417
- flowResources: ["textTemplates", "stages"],
418
- flowMetadata: [
419
- "description",
420
- "apiVersion",
421
- "processMetadataValues",
422
- "processType",
423
- "interviewLabel",
424
- "label",
425
- "status",
426
- "runInMode",
427
- "startElementReference",
428
- "isTemplate",
429
- "fullName",
430
- "timeZoneSidKey",
431
- "isAdditionalPermissionRequiredToRun",
432
- "migratedFromWorkflowRuleName",
433
- "triggerOrder",
434
- "environments",
435
- "segment",
436
- ],
437
- flowNodes: [
438
- "actionCalls",
439
- "apexPluginCalls",
440
- "assignments",
441
- "collectionProcessors",
442
- "decisions",
443
- "loops",
444
- "orchestratedStages",
445
- "recordCreates",
446
- "recordDeletes",
447
- "recordLookups",
448
- "recordUpdates",
449
- "recordRollbacks",
450
- "screens",
451
- "start",
452
- "steps",
453
- "subflows",
454
- "waits",
455
- ],
456
- fsPath: "./tests/xmlfiles/random.flow-meta.xml",
457
- name: "Flow2API61",
458
- xmldata: {
459
- "@xmlns": "http://soap.sforce.com/2006/04/metadata",
460
- apiVersion: "61.0",
461
- environments: "Default",
462
- interviewLabel: "test {!$Flow.CurrentDateTime}",
463
- label: "test",
464
- processMetadataValues: [
465
- {
466
- name: "BuilderType",
467
- value: { stringValue: "LightningFlowBuilder" },
468
- },
469
- {
470
- name: "CanvasMode",
471
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
472
- },
473
- {
474
- name: "OriginBuilderType",
475
- value: { stringValue: "LightningFlowBuilder" },
476
- },
477
- ],
478
- processType: "Flow",
479
- runInMode: "SystemModeWithoutSharing",
480
- screens: {
481
- name: "testtest",
482
- label: "test",
483
- locationX: "176",
484
- locationY: "134",
485
- allowBack: "true",
486
- allowFinish: "true",
487
- allowPause: "true",
488
- showFooter: "true",
489
- showHeader: "true",
490
- },
491
- start: {
492
- locationX: "50",
493
- locationY: "0",
494
- connector: { targetReference: "testtest" },
495
- },
496
- status: "Draft",
497
- },
498
- label: "test",
499
- interviewLabel: "test {!$Flow.CurrentDateTime}",
500
- processType: "Flow",
501
- processMetadataValues: [
502
- {
503
- name: "BuilderType",
504
- value: { stringValue: "LightningFlowBuilder" },
505
- },
506
- { name: "CanvasMode", value: { stringValue: "AUTO_LAYOUT_CANVAS" } },
507
- {
508
- name: "OriginBuilderType",
509
- value: { stringValue: "LightningFlowBuilder" },
510
- },
511
- ],
512
- start: {
513
- locationX: "50",
514
- locationY: "0",
515
- connector: { targetReference: "testtest" },
516
- },
517
- status: "Draft",
518
- type: "Flow",
519
- elements: [
520
- { element: "61.0", subtype: "apiVersion", metaType: "attribute" },
521
- { element: "Default", subtype: "environments", metaType: "attribute" },
522
- {
523
- element: "test {!$Flow.CurrentDateTime}",
524
- subtype: "interviewLabel",
525
- metaType: "attribute",
526
- },
527
- { element: "test", subtype: "label", metaType: "attribute" },
528
- {
529
- element: {
530
- name: "BuilderType",
531
- value: { stringValue: "LightningFlowBuilder" },
532
- },
533
- subtype: "processMetadataValues",
534
- metaType: "attribute",
535
- },
536
- {
537
- element: {
538
- name: "CanvasMode",
539
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
540
- },
541
- subtype: "processMetadataValues",
542
- metaType: "attribute",
543
- },
544
- {
545
- element: {
546
- name: "OriginBuilderType",
547
- value: { stringValue: "LightningFlowBuilder" },
548
- },
549
- subtype: "processMetadataValues",
550
- metaType: "attribute",
551
- },
552
- { element: "Flow", subtype: "processType", metaType: "attribute" },
553
- {
554
- element: "SystemModeWithoutSharing",
555
- subtype: "runInMode",
556
- metaType: "attribute",
557
- },
558
- {
559
- element: {
560
- name: "testtest",
561
- label: "test",
562
- locationX: "176",
563
- locationY: "134",
564
- allowBack: "true",
565
- allowFinish: "true",
566
- allowPause: "true",
567
- showFooter: "true",
568
- showHeader: "true",
569
- },
570
- subtype: "screens",
571
- metaType: "node",
572
- connectors: [],
573
- name: "testtest",
574
- locationX: "176",
575
- locationY: "134",
576
- },
577
- {
578
- element: {
579
- locationX: "50",
580
- locationY: "0",
581
- connector: { targetReference: "testtest" },
582
- },
583
- subtype: "start",
584
- metaType: "node",
585
- connectors: [
586
- {
587
- element: { targetReference: "testtest" },
588
- processed: false,
589
- type: "connector",
590
- reference: "testtest",
591
- },
592
- ],
593
- name: "flowstart",
594
- locationX: "50",
595
- locationY: "0",
596
- },
597
- { element: "Draft", subtype: "status", metaType: "attribute" },
598
- ],
599
- startReference: "testtest",
600
- } as Partial<core.Flow> as core.Flow,
601
- },
602
- {
603
- uri: "something",
604
- flow: {
605
- flowVariables: ["choices", "constants", "dynamicChoiceSets", "formulas", "variables"],
606
- flowResources: ["textTemplates", "stages"],
607
- flowMetadata: [
608
- "description",
609
- "apiVersion",
610
- "processMetadataValues",
611
- "processType",
612
- "interviewLabel",
613
- "label",
614
- "status",
615
- "runInMode",
616
- "startElementReference",
617
- "isTemplate",
618
- "fullName",
619
- "timeZoneSidKey",
620
- "isAdditionalPermissionRequiredToRun",
621
- "migratedFromWorkflowRuleName",
622
- "triggerOrder",
623
- "environments",
624
- "segment",
625
- ],
626
- flowNodes: [
627
- "actionCalls",
628
- "apexPluginCalls",
629
- "assignments",
630
- "collectionProcessors",
631
- "decisions",
632
- "loops",
633
- "orchestratedStages",
634
- "recordCreates",
635
- "recordDeletes",
636
- "recordLookups",
637
- "recordUpdates",
638
- "recordRollbacks",
639
- "screens",
640
- "start",
641
- "steps",
642
- "subflows",
643
- "waits",
644
- ],
645
- fsPath: "./tests/xmlfiles/random.flow-meta.xml",
646
- name: "Flow3API59",
647
- xmldata: {
648
- "@xmlns": "http://soap.sforce.com/2006/04/metadata",
649
- apiVersion: "59.0",
650
- environments: "Default",
651
- interviewLabel: "test {!$Flow.CurrentDateTime}",
652
- label: "test",
653
- processMetadataValues: [
654
- {
655
- name: "BuilderType",
656
- value: { stringValue: "LightningFlowBuilder" },
657
- },
658
- {
659
- name: "CanvasMode",
660
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
661
- },
662
- {
663
- name: "OriginBuilderType",
664
- value: { stringValue: "LightningFlowBuilder" },
665
- },
666
- ],
667
- processType: "Flow",
668
- runInMode: "SystemModeWithoutSharing",
669
- screens: {
670
- name: "testtest",
671
- label: "test",
672
- locationX: "176",
673
- locationY: "134",
674
- allowBack: "true",
675
- allowFinish: "true",
676
- allowPause: "true",
677
- showFooter: "true",
678
- showHeader: "true",
679
- },
680
- start: {
681
- locationX: "50",
682
- locationY: "0",
683
- connector: { targetReference: "testtest" },
684
- },
685
- status: "Draft",
686
- },
687
- label: "test",
688
- interviewLabel: "test {!$Flow.CurrentDateTime}",
689
- processType: "Flow",
690
- processMetadataValues: [
691
- {
692
- name: "BuilderType",
693
- value: { stringValue: "LightningFlowBuilder" },
694
- },
695
- { name: "CanvasMode", value: { stringValue: "AUTO_LAYOUT_CANVAS" } },
696
- {
697
- name: "OriginBuilderType",
698
- value: { stringValue: "LightningFlowBuilder" },
699
- },
700
- ],
701
- start: {
702
- locationX: "50",
703
- locationY: "0",
704
- connector: { targetReference: "testtest" },
705
- },
706
- status: "Draft",
707
- type: "Flow",
708
- elements: [
709
- { element: "59.0", subtype: "apiVersion", metaType: "attribute" },
710
- { element: "Default", subtype: "environments", metaType: "attribute" },
711
- {
712
- element: "test {!$Flow.CurrentDateTime}",
713
- subtype: "interviewLabel",
714
- metaType: "attribute",
715
- },
716
- { element: "test", subtype: "label", metaType: "attribute" },
717
- {
718
- element: {
719
- name: "BuilderType",
720
- value: { stringValue: "LightningFlowBuilder" },
721
- },
722
- subtype: "processMetadataValues",
723
- metaType: "attribute",
724
- },
725
- {
726
- element: {
727
- name: "CanvasMode",
728
- value: { stringValue: "AUTO_LAYOUT_CANVAS" },
729
- },
730
- subtype: "processMetadataValues",
731
- metaType: "attribute",
732
- },
733
- {
734
- element: {
735
- name: "OriginBuilderType",
736
- value: { stringValue: "LightningFlowBuilder" },
737
- },
738
- subtype: "processMetadataValues",
739
- metaType: "attribute",
740
- },
741
- { element: "Flow", subtype: "processType", metaType: "attribute" },
742
- {
743
- element: "SystemModeWithoutSharing",
744
- subtype: "runInMode",
745
- metaType: "attribute",
746
- },
747
- {
748
- element: {
749
- name: "testtest",
750
- label: "test",
751
- locationX: "176",
752
- locationY: "134",
753
- allowBack: "true",
754
- allowFinish: "true",
755
- allowPause: "true",
756
- showFooter: "true",
757
- showHeader: "true",
758
- },
759
- subtype: "screens",
760
- metaType: "node",
761
- connectors: [],
762
- name: "testtest",
763
- locationX: "176",
764
- locationY: "134",
765
- },
766
- {
767
- element: {
768
- locationX: "50",
769
- locationY: "0",
770
- connector: { targetReference: "testtest" },
771
- },
772
- subtype: "start",
773
- metaType: "node",
774
- connectors: [
775
- {
776
- element: { targetReference: "testtest" },
777
- processed: false,
778
- type: "connector",
779
- reference: "testtest",
780
- },
781
- ],
782
- name: "flowstart",
783
- locationX: "50",
784
- locationY: "0",
785
- },
786
- { element: "Draft", subtype: "status", metaType: "attribute" },
787
- ],
788
- startReference: "testtest",
789
- } as Partial<core.Flow> as core.Flow,
790
- },
791
- ];
792
- const ruleConfig = {
793
- ruleMode: "isolated",
794
- rules: {
795
- APIVersion: {
796
- severity: "error",
797
- expression: "===62",
798
- },
799
- },
800
- exceptions: {
801
- Flow1API60: { APIVersion: ["60"] },
802
- Flow2API61: { APIVersion: ["61"] },
803
- Flow3API59: { APIVersion: ["59"] },
804
- },
805
- };
806
- const results: core.ScanResult[] = core.scan(flows, ruleConfig);
807
- results.forEach(({ ruleResults }) => {
808
- expect(
809
- ruleResults.filter((result) => {
810
- return result.occurs;
811
- })
812
- ).toHaveLength(0);
813
- });
814
- });
815
- });