@nordcraft/search 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/README.md +5 -0
  2. package/dist/problems.worker.js +181 -0
  3. package/dist/problems.worker.js.map +1 -0
  4. package/dist/rules/actions/createActionNameRule.js +22 -0
  5. package/dist/rules/actions/createActionNameRule.js.map +1 -0
  6. package/dist/rules/actions/createActionNameRule.test.js +97 -0
  7. package/dist/rules/actions/createActionNameRule.test.js.map +1 -0
  8. package/dist/rules/actions/legacyActionRule.js +21 -0
  9. package/dist/rules/actions/legacyActionRule.js.map +1 -0
  10. package/dist/rules/actions/legacyActionRule.test.js +87 -0
  11. package/dist/rules/actions/legacyActionRule.test.js.map +1 -0
  12. package/dist/rules/actions/noReferenceProjectActionRule.js +40 -0
  13. package/dist/rules/actions/noReferenceProjectActionRule.js.map +1 -0
  14. package/dist/rules/actions/noReferenceProjectActionRule.test.js +119 -0
  15. package/dist/rules/actions/noReferenceProjectActionRule.test.js.map +1 -0
  16. package/dist/rules/actions/unknownProjectActionRule.js +18 -0
  17. package/dist/rules/actions/unknownProjectActionRule.js.map +1 -0
  18. package/dist/rules/actions/unknownProjectActionRule.test.js +111 -0
  19. package/dist/rules/actions/unknownProjectActionRule.test.js.map +1 -0
  20. package/dist/rules/apis/invalidApiParserModeRule.js +22 -0
  21. package/dist/rules/apis/invalidApiParserModeRule.js.map +1 -0
  22. package/dist/rules/apis/invalidApiParserModeRule.test.js +82 -0
  23. package/dist/rules/apis/invalidApiParserModeRule.test.js.map +1 -0
  24. package/dist/rules/apis/legacyApiRule.js +13 -0
  25. package/dist/rules/apis/legacyApiRule.js.map +1 -0
  26. package/dist/rules/apis/legacyApiRule.test.js +89 -0
  27. package/dist/rules/apis/legacyApiRule.test.js.map +1 -0
  28. package/dist/rules/apis/noReferenceApiInputRule.js +38 -0
  29. package/dist/rules/apis/noReferenceApiInputRule.js.map +1 -0
  30. package/dist/rules/apis/noReferenceApiInputRule.test.js +146 -0
  31. package/dist/rules/apis/noReferenceApiInputRule.test.js.map +1 -0
  32. package/dist/rules/apis/noReferenceApiRule.js +35 -0
  33. package/dist/rules/apis/noReferenceApiRule.js.map +1 -0
  34. package/dist/rules/apis/noReferenceApiRule.test.js +151 -0
  35. package/dist/rules/apis/noReferenceApiRule.test.js.map +1 -0
  36. package/dist/rules/apis/unknownApiInputRule.js +23 -0
  37. package/dist/rules/apis/unknownApiInputRule.js.map +1 -0
  38. package/dist/rules/apis/unknownApiInputRule.test.js +78 -0
  39. package/dist/rules/apis/unknownApiInputRule.test.js.map +1 -0
  40. package/dist/rules/apis/unknownApiRule.js +28 -0
  41. package/dist/rules/apis/unknownApiRule.js.map +1 -0
  42. package/dist/rules/apis/unknownApiRule.test.js +148 -0
  43. package/dist/rules/apis/unknownApiRule.test.js.map +1 -0
  44. package/dist/rules/attributes/noReferenceAttributeRule.js +29 -0
  45. package/dist/rules/attributes/noReferenceAttributeRule.js.map +1 -0
  46. package/dist/rules/attributes/noReferenceAttributeRule.test.js +127 -0
  47. package/dist/rules/attributes/noReferenceAttributeRule.test.js.map +1 -0
  48. package/dist/rules/attributes/unknownAttributeRule.js +19 -0
  49. package/dist/rules/attributes/unknownAttributeRule.js.map +1 -0
  50. package/dist/rules/attributes/unknownAttributeRule.test.js +85 -0
  51. package/dist/rules/attributes/unknownAttributeRule.test.js.map +1 -0
  52. package/dist/rules/components/noReferenceComponentRule.js +27 -0
  53. package/dist/rules/components/noReferenceComponentRule.js.map +1 -0
  54. package/dist/rules/components/noReferenceComponentRule.test.js +130 -0
  55. package/dist/rules/components/noReferenceComponentRule.test.js.map +1 -0
  56. package/dist/rules/components/unknownComponentRule.js +19 -0
  57. package/dist/rules/components/unknownComponentRule.js.map +1 -0
  58. package/dist/rules/components/unknownComponentRule.test.js +107 -0
  59. package/dist/rules/components/unknownComponentRule.test.js.map +1 -0
  60. package/dist/rules/context/noContextConsumersRule.js +29 -0
  61. package/dist/rules/context/noContextConsumersRule.js.map +1 -0
  62. package/dist/rules/context/noContextConsumersRule.test.js +224 -0
  63. package/dist/rules/context/noContextConsumersRule.test.js.map +1 -0
  64. package/dist/rules/context/unknownContextFormulaRule.js +22 -0
  65. package/dist/rules/context/unknownContextFormulaRule.js.map +1 -0
  66. package/dist/rules/context/unknownContextFormulaRule.test.js +86 -0
  67. package/dist/rules/context/unknownContextFormulaRule.test.js.map +1 -0
  68. package/dist/rules/context/unknownContextProviderFormulaRule.js +28 -0
  69. package/dist/rules/context/unknownContextProviderFormulaRule.js.map +1 -0
  70. package/dist/rules/context/unknownContextProviderFormulaRule.test.js +165 -0
  71. package/dist/rules/context/unknownContextProviderFormulaRule.test.js.map +1 -0
  72. package/dist/rules/context/unknownContextProviderRule.js +27 -0
  73. package/dist/rules/context/unknownContextProviderRule.js.map +1 -0
  74. package/dist/rules/context/unknownContextProviderRule.test.js +72 -0
  75. package/dist/rules/context/unknownContextProviderRule.test.js.map +1 -0
  76. package/dist/rules/dom/createRequiredDirectChildRule.js +30 -0
  77. package/dist/rules/dom/createRequiredDirectChildRule.js.map +1 -0
  78. package/dist/rules/dom/createRequiredDirectChildRule.test.js +113 -0
  79. package/dist/rules/dom/createRequiredDirectChildRule.test.js.map +1 -0
  80. package/dist/rules/dom/createRequiredDirectParentRule.js +28 -0
  81. package/dist/rules/dom/createRequiredDirectParentRule.js.map +1 -0
  82. package/dist/rules/dom/createRequiredDirectParentRule.test.js +115 -0
  83. package/dist/rules/dom/createRequiredDirectParentRule.test.js.map +1 -0
  84. package/dist/rules/dom/createRequiredElementAttributeRule.js +17 -0
  85. package/dist/rules/dom/createRequiredElementAttributeRule.js.map +1 -0
  86. package/dist/rules/dom/createRequiredElementAttributeRule.test.js +36 -0
  87. package/dist/rules/dom/createRequiredElementAttributeRule.test.js.map +1 -0
  88. package/dist/rules/dom/createRequiredMetaTagRule.js +23 -0
  89. package/dist/rules/dom/createRequiredMetaTagRule.js.map +1 -0
  90. package/dist/rules/dom/createRequiredMetaTagRule.test.js +70 -0
  91. package/dist/rules/dom/createRequiredMetaTagRule.test.js.map +1 -0
  92. package/dist/rules/dom/imageWithoutDimensionRule.js +40 -0
  93. package/dist/rules/dom/imageWithoutDimensionRule.js.map +1 -0
  94. package/dist/rules/dom/imageWithoutDimensionRule.test.js +146 -0
  95. package/dist/rules/dom/imageWithoutDimensionRule.test.js.map +1 -0
  96. package/dist/rules/dom/nonEmptyVoidElementRule.js +20 -0
  97. package/dist/rules/dom/nonEmptyVoidElementRule.js.map +1 -0
  98. package/dist/rules/dom/nonEmptyVoidElementRule.test.js +75 -0
  99. package/dist/rules/dom/nonEmptyVoidElementRule.test.js.map +1 -0
  100. package/dist/rules/duplicateRouteRule.js +65 -0
  101. package/dist/rules/duplicateRouteRule.js.map +1 -0
  102. package/dist/rules/duplicateRouteRule.test.js +200 -0
  103. package/dist/rules/duplicateRouteRule.test.js.map +1 -0
  104. package/dist/rules/events/duplicateEventTriggerRule.js +21 -0
  105. package/dist/rules/events/duplicateEventTriggerRule.js.map +1 -0
  106. package/dist/rules/events/duplicateEventTriggerRule.test.js +91 -0
  107. package/dist/rules/events/duplicateEventTriggerRule.test.js.map +1 -0
  108. package/dist/rules/events/noReferenceEventRule.js +39 -0
  109. package/dist/rules/events/noReferenceEventRule.js.map +1 -0
  110. package/dist/rules/events/noReferenceEventRule.test.js +141 -0
  111. package/dist/rules/events/noReferenceEventRule.test.js.map +1 -0
  112. package/dist/rules/events/unknownEventRule.js +24 -0
  113. package/dist/rules/events/unknownEventRule.js.map +1 -0
  114. package/dist/rules/events/unknownEventRule.test.js +230 -0
  115. package/dist/rules/events/unknownEventRule.test.js.map +1 -0
  116. package/dist/rules/events/unknownTriggerEventRule.js +16 -0
  117. package/dist/rules/events/unknownTriggerEventRule.js.map +1 -0
  118. package/dist/rules/events/unknownTriggerEventRule.test.js +110 -0
  119. package/dist/rules/events/unknownTriggerEventRule.test.js.map +1 -0
  120. package/dist/rules/formulas/legacyFormulaRule.js +142 -0
  121. package/dist/rules/formulas/legacyFormulaRule.js.map +1 -0
  122. package/dist/rules/formulas/legacyFormulaRule.test.js +310 -0
  123. package/dist/rules/formulas/legacyFormulaRule.test.js.map +1 -0
  124. package/dist/rules/formulas/noReferenceComponentFormulaRule.js +57 -0
  125. package/dist/rules/formulas/noReferenceComponentFormulaRule.js.map +1 -0
  126. package/dist/rules/formulas/noReferenceComponentFormulaRule.test.js +322 -0
  127. package/dist/rules/formulas/noReferenceComponentFormulaRule.test.js.map +1 -0
  128. package/dist/rules/formulas/noReferenceProjectFormulaRule.js +99 -0
  129. package/dist/rules/formulas/noReferenceProjectFormulaRule.js.map +1 -0
  130. package/dist/rules/formulas/noReferenceProjectFormulaRule.test.js +269 -0
  131. package/dist/rules/formulas/noReferenceProjectFormulaRule.test.js.map +1 -0
  132. package/dist/rules/formulas/unknownComponentFormulaInputRule.js +32 -0
  133. package/dist/rules/formulas/unknownComponentFormulaInputRule.js.map +1 -0
  134. package/dist/rules/formulas/unknownComponentFormulaInputRule.test.js +131 -0
  135. package/dist/rules/formulas/unknownComponentFormulaInputRule.test.js.map +1 -0
  136. package/dist/rules/formulas/unknownFormulaRule.js +17 -0
  137. package/dist/rules/formulas/unknownFormulaRule.js.map +1 -0
  138. package/dist/rules/formulas/unknownFormulaRule.test.js +91 -0
  139. package/dist/rules/formulas/unknownFormulaRule.test.js.map +1 -0
  140. package/dist/rules/formulas/unknownProjectFormulaInputRule.js +26 -0
  141. package/dist/rules/formulas/unknownProjectFormulaInputRule.js.map +1 -0
  142. package/dist/rules/formulas/unknownProjectFormulaInputRule.test.js +102 -0
  143. package/dist/rules/formulas/unknownProjectFormulaInputRule.test.js.map +1 -0
  144. package/dist/rules/formulas/unknownProjectFormulaRule.js +18 -0
  145. package/dist/rules/formulas/unknownProjectFormulaRule.js.map +1 -0
  146. package/dist/rules/formulas/unknownProjectFormulaRule.test.js +116 -0
  147. package/dist/rules/formulas/unknownProjectFormulaRule.test.js.map +1 -0
  148. package/dist/rules/formulas/unknownRepeatIndexFormulaRule.js +38 -0
  149. package/dist/rules/formulas/unknownRepeatIndexFormulaRule.js.map +1 -0
  150. package/dist/rules/formulas/unknownRepeatIndexFormulaRule.test.js +132 -0
  151. package/dist/rules/formulas/unknownRepeatIndexFormulaRule.test.js.map +1 -0
  152. package/dist/rules/formulas/unknownRepeatItemFormulaRule.js +38 -0
  153. package/dist/rules/formulas/unknownRepeatItemFormulaRule.js.map +1 -0
  154. package/dist/rules/formulas/unknownRepeatItemFormulaRule.test.js +132 -0
  155. package/dist/rules/formulas/unknownRepeatItemFormulaRule.test.js.map +1 -0
  156. package/dist/rules/logic/noUnnecessaryConditionFalsy.js +14 -0
  157. package/dist/rules/logic/noUnnecessaryConditionFalsy.js.map +1 -0
  158. package/dist/rules/logic/noUnnecessaryConditionFalsy.test.js +94 -0
  159. package/dist/rules/logic/noUnnecessaryConditionFalsy.test.js.map +1 -0
  160. package/dist/rules/logic/noUnnecessaryConditionTruthy.js +18 -0
  161. package/dist/rules/logic/noUnnecessaryConditionTruthy.js.map +1 -0
  162. package/dist/rules/logic/noUnnecessaryConditionTruthy.test.js +118 -0
  163. package/dist/rules/logic/noUnnecessaryConditionTruthy.test.js.map +1 -0
  164. package/dist/rules/requireExtensionRule.js +16 -0
  165. package/dist/rules/requireExtensionRule.js.map +1 -0
  166. package/dist/rules/requireExtensionRule.test.js +67 -0
  167. package/dist/rules/requireExtensionRule.test.js.map +1 -0
  168. package/dist/rules/slots/unknownClassnameRule.js +15 -0
  169. package/dist/rules/slots/unknownClassnameRule.js.map +1 -0
  170. package/dist/rules/slots/unknownClassnameRule.test.js +86 -0
  171. package/dist/rules/slots/unknownClassnameRule.test.js.map +1 -0
  172. package/dist/rules/slots/unknownComponentSlotRule.js +42 -0
  173. package/dist/rules/slots/unknownComponentSlotRule.js.map +1 -0
  174. package/dist/rules/slots/unknownComponentSlotRule.test.js +162 -0
  175. package/dist/rules/slots/unknownComponentSlotRule.test.js.map +1 -0
  176. package/dist/rules/unknownCookieRule.js +27 -0
  177. package/dist/rules/unknownCookieRule.js.map +1 -0
  178. package/dist/rules/unknownCookieRule.test.js +105 -0
  179. package/dist/rules/unknownCookieRule.test.js.map +1 -0
  180. package/dist/rules/urlParameters/duplicateUrlParameterRule.js +27 -0
  181. package/dist/rules/urlParameters/duplicateUrlParameterRule.js.map +1 -0
  182. package/dist/rules/urlParameters/duplicateUrlParameterRule.test.js +126 -0
  183. package/dist/rules/urlParameters/duplicateUrlParameterRule.test.js.map +1 -0
  184. package/dist/rules/urlParameters/unknownSetUrlParameterRule.js +23 -0
  185. package/dist/rules/urlParameters/unknownSetUrlParameterRule.js.map +1 -0
  186. package/dist/rules/urlParameters/unknownSetUrlParameterRule.test.js +151 -0
  187. package/dist/rules/urlParameters/unknownSetUrlParameterRule.test.js.map +1 -0
  188. package/dist/rules/urlParameters/unknownUrlParameterRule.js +20 -0
  189. package/dist/rules/urlParameters/unknownUrlParameterRule.js.map +1 -0
  190. package/dist/rules/urlParameters/unknownUrlParameterRule.test.js +92 -0
  191. package/dist/rules/urlParameters/unknownUrlParameterRule.test.js.map +1 -0
  192. package/dist/rules/variables/noReferenceVariableRule.js +22 -0
  193. package/dist/rules/variables/noReferenceVariableRule.js.map +1 -0
  194. package/dist/rules/variables/noReferenceVariableRule.test.js +87 -0
  195. package/dist/rules/variables/noReferenceVariableRule.test.js.map +1 -0
  196. package/dist/rules/variables/unknownVariableRule.js +19 -0
  197. package/dist/rules/variables/unknownVariableRule.js.map +1 -0
  198. package/dist/rules/variables/unknownVariableRule.test.js +84 -0
  199. package/dist/rules/variables/unknownVariableRule.test.js.map +1 -0
  200. package/dist/rules/variables/unknownVariableSetterRule.js +16 -0
  201. package/dist/rules/variables/unknownVariableSetterRule.js.map +1 -0
  202. package/dist/rules/variables/unknownVariableSetterRule.test.js +98 -0
  203. package/dist/rules/variables/unknownVariableSetterRule.test.js.map +1 -0
  204. package/dist/rules/workflows/duplicateWorkflowParameterRule.js +20 -0
  205. package/dist/rules/workflows/duplicateWorkflowParameterRule.js.map +1 -0
  206. package/dist/rules/workflows/duplicateWorkflowParameterRule.test.js +99 -0
  207. package/dist/rules/workflows/duplicateWorkflowParameterRule.test.js.map +1 -0
  208. package/dist/rules/workflows/noReferenceComponentWorkflowRule.js +57 -0
  209. package/dist/rules/workflows/noReferenceComponentWorkflowRule.js.map +1 -0
  210. package/dist/rules/workflows/noReferenceComponentWorkflowRule.test.js +261 -0
  211. package/dist/rules/workflows/noReferenceComponentWorkflowRule.test.js.map +1 -0
  212. package/dist/rules/workflows/unknownContextProviderWorkflowRule.js +28 -0
  213. package/dist/rules/workflows/unknownContextProviderWorkflowRule.js.map +1 -0
  214. package/dist/rules/workflows/unknownContextProviderWorkflowRule.test.js +137 -0
  215. package/dist/rules/workflows/unknownContextProviderWorkflowRule.test.js.map +1 -0
  216. package/dist/rules/workflows/unknownContextWorkflowRule.js +22 -0
  217. package/dist/rules/workflows/unknownContextWorkflowRule.js.map +1 -0
  218. package/dist/rules/workflows/unknownContextWorkflowRule.test.js +85 -0
  219. package/dist/rules/workflows/unknownContextWorkflowRule.test.js.map +1 -0
  220. package/dist/rules/workflows/unknownTriggerWorkflowParameterRule.js +43 -0
  221. package/dist/rules/workflows/unknownTriggerWorkflowParameterRule.js.map +1 -0
  222. package/dist/rules/workflows/unknownTriggerWorkflowParameterRule.test.js +466 -0
  223. package/dist/rules/workflows/unknownTriggerWorkflowParameterRule.test.js.map +1 -0
  224. package/dist/rules/workflows/unknownTriggerWorkflowRule.js +18 -0
  225. package/dist/rules/workflows/unknownTriggerWorkflowRule.js.map +1 -0
  226. package/dist/rules/workflows/unknownTriggerWorkflowRule.test.js +98 -0
  227. package/dist/rules/workflows/unknownTriggerWorkflowRule.test.js.map +1 -0
  228. package/dist/rules/workflows/unknownWorkflowParameterRule.js +31 -0
  229. package/dist/rules/workflows/unknownWorkflowParameterRule.js.map +1 -0
  230. package/dist/rules/workflows/unknownWorkflowParameterRule.test.js +109 -0
  231. package/dist/rules/workflows/unknownWorkflowParameterRule.test.js.map +1 -0
  232. package/dist/search.worker.js +10 -0
  233. package/dist/search.worker.js.map +1 -0
  234. package/dist/searchProject.js +368 -0
  235. package/dist/searchProject.js.map +1 -0
  236. package/dist/util/helpers.js +34 -0
  237. package/dist/util/helpers.js.map +1 -0
  238. package/package.json +21 -0
  239. package/src/problems.worker.ts +225 -0
  240. package/src/rules/actions/createActionNameRule.test.ts +100 -0
  241. package/src/rules/actions/createActionNameRule.ts +38 -0
  242. package/src/rules/actions/legacyActionRule.test.ts +91 -0
  243. package/src/rules/actions/legacyActionRule.ts +26 -0
  244. package/src/rules/actions/noReferenceProjectActionRule.test.ts +130 -0
  245. package/src/rules/actions/noReferenceProjectActionRule.ts +47 -0
  246. package/src/rules/actions/unknownProjectActionRule.test.ts +117 -0
  247. package/src/rules/actions/unknownProjectActionRule.ts +23 -0
  248. package/src/rules/apis/invalidApiParserModeRule.test.ts +89 -0
  249. package/src/rules/apis/invalidApiParserModeRule.ts +26 -0
  250. package/src/rules/apis/legacyApiRule.test.ts +96 -0
  251. package/src/rules/apis/legacyApiRule.ts +16 -0
  252. package/src/rules/apis/noReferenceApiInputRule.test.ts +159 -0
  253. package/src/rules/apis/noReferenceApiInputRule.ts +42 -0
  254. package/src/rules/apis/noReferenceApiRule.test.ts +164 -0
  255. package/src/rules/apis/noReferenceApiRule.ts +42 -0
  256. package/src/rules/apis/unknownApiInputRule.test.ts +85 -0
  257. package/src/rules/apis/unknownApiInputRule.ts +33 -0
  258. package/src/rules/apis/unknownApiRule.test.ts +159 -0
  259. package/src/rules/apis/unknownApiRule.ts +31 -0
  260. package/src/rules/attributes/noReferenceAttributeRule.test.ts +138 -0
  261. package/src/rules/attributes/noReferenceAttributeRule.ts +32 -0
  262. package/src/rules/attributes/unknownAttributeRule.test.ts +92 -0
  263. package/src/rules/attributes/unknownAttributeRule.ts +25 -0
  264. package/src/rules/components/noReferenceComponentRule.test.ts +140 -0
  265. package/src/rules/components/noReferenceComponentRule.ts +37 -0
  266. package/src/rules/components/unknownComponentRule.test.ts +114 -0
  267. package/src/rules/components/unknownComponentRule.ts +24 -0
  268. package/src/rules/context/noContextConsumersRule.test.ts +239 -0
  269. package/src/rules/context/noContextConsumersRule.ts +39 -0
  270. package/src/rules/context/unknownContextFormulaRule.test.ts +93 -0
  271. package/src/rules/context/unknownContextFormulaRule.ts +30 -0
  272. package/src/rules/context/unknownContextProviderFormulaRule.test.ts +174 -0
  273. package/src/rules/context/unknownContextProviderFormulaRule.ts +35 -0
  274. package/src/rules/context/unknownContextProviderRule.test.ts +79 -0
  275. package/src/rules/context/unknownContextProviderRule.ts +30 -0
  276. package/src/rules/dom/createRequiredDirectChildRule.test.ts +119 -0
  277. package/src/rules/dom/createRequiredDirectChildRule.ts +43 -0
  278. package/src/rules/dom/createRequiredDirectParentRule.test.ts +124 -0
  279. package/src/rules/dom/createRequiredDirectParentRule.ts +41 -0
  280. package/src/rules/dom/createRequiredElementAttributeRule.test.ts +39 -0
  281. package/src/rules/dom/createRequiredElementAttributeRule.ts +27 -0
  282. package/src/rules/dom/createRequiredMetaTagRule.test.ts +76 -0
  283. package/src/rules/dom/createRequiredMetaTagRule.ts +33 -0
  284. package/src/rules/dom/imageWithoutDimensionRule.test.ts +161 -0
  285. package/src/rules/dom/imageWithoutDimensionRule.ts +50 -0
  286. package/src/rules/dom/nonEmptyVoidElementRule.test.ts +82 -0
  287. package/src/rules/dom/nonEmptyVoidElementRule.ts +23 -0
  288. package/src/rules/duplicateRouteRule.test.ts +209 -0
  289. package/src/rules/duplicateRouteRule.ts +83 -0
  290. package/src/rules/events/duplicateEventTriggerRule.test.ts +97 -0
  291. package/src/rules/events/duplicateEventTriggerRule.ts +23 -0
  292. package/src/rules/events/noReferenceEventRule.test.ts +147 -0
  293. package/src/rules/events/noReferenceEventRule.ts +46 -0
  294. package/src/rules/events/unknownEventRule.test.ts +237 -0
  295. package/src/rules/events/unknownEventRule.ts +32 -0
  296. package/src/rules/events/unknownTriggerEventRule.test.ts +117 -0
  297. package/src/rules/events/unknownTriggerEventRule.ts +20 -0
  298. package/src/rules/formulas/legacyFormulaRule.test.ts +329 -0
  299. package/src/rules/formulas/legacyFormulaRule.ts +158 -0
  300. package/src/rules/formulas/noReferenceComponentFormulaRule.test.ts +343 -0
  301. package/src/rules/formulas/noReferenceComponentFormulaRule.ts +72 -0
  302. package/src/rules/formulas/noReferenceProjectFormulaRule.test.ts +290 -0
  303. package/src/rules/formulas/noReferenceProjectFormulaRule.ts +120 -0
  304. package/src/rules/formulas/unknownComponentFormulaInputRule.test.ts +140 -0
  305. package/src/rules/formulas/unknownComponentFormulaInputRule.ts +38 -0
  306. package/src/rules/formulas/unknownFormulaRule.test.ts +98 -0
  307. package/src/rules/formulas/unknownFormulaRule.ts +21 -0
  308. package/src/rules/formulas/unknownProjectFormulaInputRule.test.ts +111 -0
  309. package/src/rules/formulas/unknownProjectFormulaInputRule.ts +32 -0
  310. package/src/rules/formulas/unknownProjectFormulaRule.test.ts +125 -0
  311. package/src/rules/formulas/unknownProjectFormulaRule.ts +23 -0
  312. package/src/rules/formulas/unknownRepeatIndexFormulaRule.test.ts +138 -0
  313. package/src/rules/formulas/unknownRepeatIndexFormulaRule.ts +46 -0
  314. package/src/rules/formulas/unknownRepeatItemFormulaRule.test.ts +138 -0
  315. package/src/rules/formulas/unknownRepeatItemFormulaRule.ts +46 -0
  316. package/src/rules/logic/noUnnecessaryConditionFalsy.test.ts +101 -0
  317. package/src/rules/logic/noUnnecessaryConditionFalsy.ts +21 -0
  318. package/src/rules/logic/noUnnecessaryConditionTruthy.test.ts +125 -0
  319. package/src/rules/logic/noUnnecessaryConditionTruthy.ts +25 -0
  320. package/src/rules/requireExtensionRule.test.ts +73 -0
  321. package/src/rules/requireExtensionRule.ts +21 -0
  322. package/src/rules/slots/unknownClassnameRule.test.ts +93 -0
  323. package/src/rules/slots/unknownClassnameRule.ts +20 -0
  324. package/src/rules/slots/unknownComponentSlotRule.test.ts +169 -0
  325. package/src/rules/slots/unknownComponentSlotRule.ts +50 -0
  326. package/src/rules/unknownCookieRule.test.ts +111 -0
  327. package/src/rules/unknownCookieRule.ts +34 -0
  328. package/src/rules/urlParameters/duplicateUrlParameterRule.test.ts +134 -0
  329. package/src/rules/urlParameters/duplicateUrlParameterRule.ts +30 -0
  330. package/src/rules/urlParameters/unknownSetUrlParameterRule.test.ts +162 -0
  331. package/src/rules/urlParameters/unknownSetUrlParameterRule.ts +34 -0
  332. package/src/rules/urlParameters/unknownUrlParameterRule.test.ts +99 -0
  333. package/src/rules/urlParameters/unknownUrlParameterRule.ts +28 -0
  334. package/src/rules/variables/noReferenceVariableRule.test.ts +94 -0
  335. package/src/rules/variables/noReferenceVariableRule.ts +36 -0
  336. package/src/rules/variables/unknownVariableRule.test.ts +91 -0
  337. package/src/rules/variables/unknownVariableRule.ts +25 -0
  338. package/src/rules/variables/unknownVariableSetterRule.test.ts +105 -0
  339. package/src/rules/variables/unknownVariableSetterRule.ts +20 -0
  340. package/src/rules/workflows/duplicateWorkflowParameterRule.test.ts +105 -0
  341. package/src/rules/workflows/duplicateWorkflowParameterRule.ts +23 -0
  342. package/src/rules/workflows/noReferenceComponentWorkflowRule.test.ts +279 -0
  343. package/src/rules/workflows/noReferenceComponentWorkflowRule.ts +77 -0
  344. package/src/rules/workflows/unknownContextProviderWorkflowRule.test.ts +146 -0
  345. package/src/rules/workflows/unknownContextProviderWorkflowRule.ts +35 -0
  346. package/src/rules/workflows/unknownContextWorkflowRule.test.ts +92 -0
  347. package/src/rules/workflows/unknownContextWorkflowRule.ts +30 -0
  348. package/src/rules/workflows/unknownTriggerWorkflowParameterRule.test.ts +484 -0
  349. package/src/rules/workflows/unknownTriggerWorkflowParameterRule.ts +54 -0
  350. package/src/rules/workflows/unknownTriggerWorkflowRule.test.ts +104 -0
  351. package/src/rules/workflows/unknownTriggerWorkflowRule.ts +22 -0
  352. package/src/rules/workflows/unknownWorkflowParameterRule.test.ts +115 -0
  353. package/src/rules/workflows/unknownWorkflowParameterRule.ts +38 -0
  354. package/src/search.worker.ts +49 -0
  355. package/src/searchProject.ts +484 -0
  356. package/src/types.d.ts +312 -0
  357. package/src/util/helpers.ts +44 -0
@@ -0,0 +1,43 @@
1
+ export const unknownTriggerWorkflowParameterRule = {
2
+ code: 'unknown trigger workflow parameter',
3
+ level: 'error',
4
+ category: 'Unknown Reference',
5
+ visit: (report, args) => {
6
+ const { path, files, value, nodeType } = args;
7
+ if (nodeType !== 'action-model' ||
8
+ value.type !== 'TriggerWorkflow' ||
9
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
10
+ Object.entries(value?.parameters ?? {}).length === 0) {
11
+ return;
12
+ }
13
+ let workflow;
14
+ if (typeof value.contextProvider === 'string') {
15
+ const subscription = args.component.contexts?.[value.contextProvider];
16
+ const isSubscribed = subscription?.workflows?.includes(value.workflow);
17
+ if (!isSubscribed || typeof subscription?.componentName !== 'string') {
18
+ return;
19
+ }
20
+ workflow = subscription?.package
21
+ ? files.packages?.[subscription.package]?.components[subscription.componentName]?.workflows?.[value.workflow]
22
+ : files.components[subscription.componentName]?.workflows?.[value.workflow];
23
+ if (!workflow) {
24
+ return;
25
+ }
26
+ }
27
+ else {
28
+ workflow = args.component.workflows?.[value.workflow];
29
+ }
30
+ if (!workflow) {
31
+ return;
32
+ }
33
+ const workflowParameters = new Set(Object.values(workflow.parameters).map((p) => p.name));
34
+ Object.keys(value.parameters).forEach((parameterKey) => {
35
+ if (!workflowParameters.has(parameterKey)) {
36
+ report([...path, 'parameters', parameterKey], {
37
+ parameter: parameterKey,
38
+ });
39
+ }
40
+ });
41
+ },
42
+ };
43
+ //# sourceMappingURL=unknownTriggerWorkflowParameterRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownTriggerWorkflowParameterRule.js","sourceRoot":"","sources":["../../../src/rules/workflows/unknownTriggerWorkflowParameterRule.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mCAAmC,GAC9C;IACE,IAAI,EAAE,oCAAoC;IAC1C,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC7C,IACE,QAAQ,KAAK,cAAc;YAC3B,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,uEAAuE;YACvE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EACpD,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,QAAuC,CAAA;QAC3C,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YACrE,MAAM,YAAY,GAAG,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACtE,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACrE,OAAM;YACR,CAAC;YACD,QAAQ,GAAG,YAAY,EAAE,OAAO;gBAC9B,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU,CAChD,YAAY,CAAC,aAAa,CAC3B,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CACvD,KAAK,CAAC,QAAQ,CACf,CAAA;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAM;QACR,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtD,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACrD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE;oBAC5C,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1,466 @@
1
+ import { valueFormula } from '@nordcraft/core/dist/formula/formulaUtils';
2
+ import { searchProject } from '../../searchProject';
3
+ import { unknownTriggerWorkflowParameterRule } from './unknownTriggerWorkflowParameterRule';
4
+ describe('unknownTriggerWorkflowParameterRule', () => {
5
+ test('should detect unknown workflow parameters', () => {
6
+ const problems = Array.from(searchProject({
7
+ files: {
8
+ components: {
9
+ myComponent: {
10
+ name: 'myComponent',
11
+ nodes: {
12
+ root: {
13
+ type: 'element',
14
+ attrs: {},
15
+ classes: {},
16
+ events: {
17
+ click: {
18
+ trigger: 'click',
19
+ actions: [
20
+ {
21
+ type: 'TriggerWorkflow',
22
+ workflow: 'my-workflow',
23
+ parameters: {
24
+ unknownParameter: {
25
+ formula: valueFormula(4),
26
+ },
27
+ },
28
+ },
29
+ ],
30
+ },
31
+ },
32
+ tag: 'div',
33
+ children: [],
34
+ style: {},
35
+ },
36
+ },
37
+ formulas: {},
38
+ apis: {},
39
+ attributes: {},
40
+ variables: {},
41
+ workflows: {
42
+ ['my-workflow']: {
43
+ actions: [],
44
+ name: 'my-workflow',
45
+ parameters: [
46
+ {
47
+ name: 'parameter',
48
+ testValue: 4,
49
+ },
50
+ ],
51
+ '@toddle/metadata': {
52
+ comments: null,
53
+ },
54
+ },
55
+ },
56
+ },
57
+ },
58
+ },
59
+ rules: [unknownTriggerWorkflowParameterRule],
60
+ }));
61
+ expect(problems).toHaveLength(1);
62
+ expect(problems[0].code).toBe('unknown trigger workflow parameter');
63
+ expect(problems[0].details).toEqual({ parameter: 'unknownParameter' });
64
+ });
65
+ test('should not fail on valid workflow parameters', () => {
66
+ const problems = Array.from(searchProject({
67
+ files: {
68
+ components: {
69
+ myComponent: {
70
+ name: 'myComponent',
71
+ nodes: {
72
+ root: {
73
+ type: 'element',
74
+ attrs: {},
75
+ classes: {},
76
+ events: {
77
+ click: {
78
+ trigger: 'click',
79
+ actions: [
80
+ {
81
+ type: 'TriggerWorkflow',
82
+ workflow: 'my-workflow',
83
+ parameters: {
84
+ parameter: {
85
+ formula: valueFormula(4),
86
+ },
87
+ },
88
+ },
89
+ ],
90
+ },
91
+ },
92
+ tag: 'div',
93
+ children: [],
94
+ style: {},
95
+ },
96
+ },
97
+ formulas: {},
98
+ apis: {},
99
+ attributes: {},
100
+ variables: {},
101
+ workflows: {
102
+ ['my-workflow']: {
103
+ actions: [],
104
+ name: 'my-workflow',
105
+ parameters: [
106
+ {
107
+ name: 'parameter',
108
+ testValue: 4,
109
+ },
110
+ ],
111
+ '@toddle/metadata': {
112
+ comments: null,
113
+ },
114
+ },
115
+ },
116
+ },
117
+ },
118
+ },
119
+ rules: [unknownTriggerWorkflowParameterRule],
120
+ }));
121
+ expect(problems).toHaveLength(0);
122
+ });
123
+ test('should detect unknown workflow parameters in context workflows', () => {
124
+ const problems = Array.from(searchProject({
125
+ files: {
126
+ components: {
127
+ myComponent: {
128
+ name: 'myComponent',
129
+ nodes: {
130
+ root: {
131
+ type: 'component',
132
+ name: 'consumer',
133
+ attrs: {},
134
+ children: [],
135
+ events: {},
136
+ },
137
+ },
138
+ formulas: {},
139
+ apis: {},
140
+ attributes: {},
141
+ variables: {},
142
+ workflows: {
143
+ ['my-workflow']: {
144
+ actions: [],
145
+ name: 'my-workflow',
146
+ parameters: [
147
+ {
148
+ name: 'parameter',
149
+ testValue: 4,
150
+ },
151
+ ],
152
+ exposeInContext: true,
153
+ '@toddle/metadata': {
154
+ comments: null,
155
+ },
156
+ },
157
+ },
158
+ },
159
+ consumer: {
160
+ name: 'consumer',
161
+ nodes: {
162
+ root: {
163
+ type: 'element',
164
+ attrs: {},
165
+ classes: {},
166
+ events: {
167
+ click: {
168
+ trigger: 'click',
169
+ actions: [
170
+ {
171
+ type: 'TriggerWorkflow',
172
+ workflow: 'my-workflow',
173
+ contextProvider: 'bla',
174
+ parameters: {
175
+ unknownParameter: {
176
+ formula: valueFormula(4),
177
+ },
178
+ },
179
+ },
180
+ ],
181
+ },
182
+ },
183
+ tag: 'div',
184
+ children: [],
185
+ style: {},
186
+ },
187
+ },
188
+ formulas: {},
189
+ apis: {},
190
+ attributes: {},
191
+ variables: {},
192
+ contexts: {
193
+ bla: {
194
+ workflows: ['my-workflow'],
195
+ formulas: [],
196
+ componentName: 'myComponent',
197
+ },
198
+ },
199
+ },
200
+ },
201
+ },
202
+ rules: [unknownTriggerWorkflowParameterRule],
203
+ }));
204
+ expect(problems).toHaveLength(1);
205
+ expect(problems[0].code).toBe('unknown trigger workflow parameter');
206
+ expect(problems[0].details).toEqual({ parameter: 'unknownParameter' });
207
+ });
208
+ test('should not fail on valid context workflow parameters', () => {
209
+ const problems = Array.from(searchProject({
210
+ files: {
211
+ components: {
212
+ myComponent: {
213
+ name: 'myComponent',
214
+ nodes: {
215
+ root: {
216
+ type: 'component',
217
+ name: 'consumer',
218
+ attrs: {},
219
+ children: [],
220
+ events: {},
221
+ },
222
+ },
223
+ formulas: {},
224
+ apis: {},
225
+ attributes: {},
226
+ variables: {},
227
+ workflows: {
228
+ ['my-workflow']: {
229
+ actions: [],
230
+ name: 'my-workflow',
231
+ parameters: [
232
+ {
233
+ name: 'parameter',
234
+ testValue: 4,
235
+ },
236
+ ],
237
+ exposeInContext: true,
238
+ '@toddle/metadata': {
239
+ comments: null,
240
+ },
241
+ },
242
+ },
243
+ },
244
+ consumer: {
245
+ name: 'consumer',
246
+ nodes: {
247
+ root: {
248
+ type: 'element',
249
+ attrs: {},
250
+ classes: {},
251
+ events: {
252
+ click: {
253
+ trigger: 'click',
254
+ actions: [
255
+ {
256
+ type: 'TriggerWorkflow',
257
+ workflow: 'my-workflow',
258
+ contextProvider: 'bla',
259
+ parameters: {
260
+ parameter: {
261
+ formula: valueFormula(4),
262
+ },
263
+ },
264
+ },
265
+ ],
266
+ },
267
+ },
268
+ tag: 'div',
269
+ children: [],
270
+ style: {},
271
+ },
272
+ },
273
+ formulas: {},
274
+ apis: {},
275
+ attributes: {},
276
+ variables: {},
277
+ contexts: {
278
+ bla: {
279
+ workflows: ['my-workflow'],
280
+ formulas: [],
281
+ componentName: 'myComponent',
282
+ },
283
+ },
284
+ },
285
+ },
286
+ },
287
+ rules: [unknownTriggerWorkflowParameterRule],
288
+ }));
289
+ expect(problems).toHaveLength(0);
290
+ });
291
+ test('should detect unknown workflow parameters in context workflows from packages', () => {
292
+ const problems = Array.from(searchProject({
293
+ files: {
294
+ packages: {
295
+ myPackage: {
296
+ manifest: {
297
+ commit: 'commit',
298
+ name: 'myPackage',
299
+ },
300
+ components: {
301
+ myComponent: {
302
+ name: 'myComponent',
303
+ nodes: {},
304
+ formulas: {},
305
+ apis: {},
306
+ attributes: {},
307
+ variables: {},
308
+ workflows: {
309
+ ['package-workflow']: {
310
+ actions: [],
311
+ name: 'package-workflow',
312
+ parameters: [
313
+ {
314
+ name: 'parameter',
315
+ testValue: 4,
316
+ },
317
+ ],
318
+ exposeInContext: true,
319
+ '@toddle/metadata': {
320
+ comments: null,
321
+ },
322
+ },
323
+ },
324
+ },
325
+ },
326
+ },
327
+ },
328
+ components: {
329
+ consumer: {
330
+ name: 'consumer',
331
+ nodes: {
332
+ root: {
333
+ type: 'element',
334
+ attrs: {},
335
+ classes: {},
336
+ events: {
337
+ click: {
338
+ trigger: 'click',
339
+ actions: [
340
+ {
341
+ type: 'TriggerWorkflow',
342
+ workflow: 'package-workflow',
343
+ contextProvider: 'bla',
344
+ parameters: {
345
+ unknownParameter: {
346
+ formula: valueFormula(4),
347
+ },
348
+ },
349
+ },
350
+ ],
351
+ },
352
+ },
353
+ tag: 'div',
354
+ children: [],
355
+ style: {},
356
+ },
357
+ },
358
+ formulas: {},
359
+ apis: {},
360
+ attributes: {},
361
+ variables: {},
362
+ contexts: {
363
+ bla: {
364
+ workflows: ['package-workflow'],
365
+ formulas: [],
366
+ componentName: 'myComponent',
367
+ package: 'myPackage',
368
+ },
369
+ },
370
+ },
371
+ },
372
+ },
373
+ rules: [unknownTriggerWorkflowParameterRule],
374
+ }));
375
+ expect(problems).toHaveLength(1);
376
+ expect(problems[0].code).toBe('unknown trigger workflow parameter');
377
+ expect(problems[0].details).toEqual({ parameter: 'unknownParameter' });
378
+ });
379
+ test('should not fail on valid package workflow parameters', () => {
380
+ const problems = Array.from(searchProject({
381
+ files: {
382
+ packages: {
383
+ myPackage: {
384
+ manifest: {
385
+ commit: 'commit',
386
+ name: 'myPackage',
387
+ },
388
+ components: {
389
+ myComponent: {
390
+ name: 'myComponent',
391
+ nodes: {},
392
+ formulas: {},
393
+ apis: {},
394
+ attributes: {},
395
+ variables: {},
396
+ workflows: {
397
+ ['package-workflow']: {
398
+ actions: [],
399
+ name: 'package-workflow',
400
+ parameters: [
401
+ {
402
+ name: 'parameter',
403
+ testValue: 4,
404
+ },
405
+ ],
406
+ exposeInContext: true,
407
+ '@toddle/metadata': {
408
+ comments: null,
409
+ },
410
+ },
411
+ },
412
+ },
413
+ },
414
+ },
415
+ },
416
+ components: {
417
+ consumer: {
418
+ name: 'consumer',
419
+ nodes: {
420
+ root: {
421
+ type: 'element',
422
+ attrs: {},
423
+ classes: {},
424
+ events: {
425
+ click: {
426
+ trigger: 'click',
427
+ actions: [
428
+ {
429
+ type: 'TriggerWorkflow',
430
+ workflow: 'package-workflow',
431
+ contextProvider: 'bla',
432
+ parameters: {
433
+ parameter: {
434
+ formula: valueFormula(4),
435
+ },
436
+ },
437
+ },
438
+ ],
439
+ },
440
+ },
441
+ tag: 'div',
442
+ children: [],
443
+ style: {},
444
+ },
445
+ },
446
+ formulas: {},
447
+ apis: {},
448
+ attributes: {},
449
+ variables: {},
450
+ contexts: {
451
+ bla: {
452
+ workflows: ['package-workflow'],
453
+ formulas: [],
454
+ componentName: 'myComponent',
455
+ package: 'myPackage',
456
+ },
457
+ },
458
+ },
459
+ },
460
+ },
461
+ rules: [unknownTriggerWorkflowParameterRule],
462
+ }));
463
+ expect(problems).toHaveLength(0);
464
+ });
465
+ });
466
+ //# sourceMappingURL=unknownTriggerWorkflowParameterRule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownTriggerWorkflowParameterRule.test.js","sourceRoot":"","sources":["../../../src/rules/workflows/unknownTriggerWorkflowParameterRule.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export const unknownTriggerWorkflowRule = {
2
+ code: 'unknown trigger workflow',
3
+ level: 'error',
4
+ category: 'Unknown Reference',
5
+ visit: (report, args) => {
6
+ const { path, value, nodeType } = args;
7
+ if (nodeType !== 'action-model' ||
8
+ value.type !== 'TriggerWorkflow' ||
9
+ typeof value.contextProvider === 'string') {
10
+ return;
11
+ }
12
+ const workflow = args.component.workflows?.[value.workflow];
13
+ if (!workflow) {
14
+ report(path);
15
+ }
16
+ },
17
+ };
18
+ //# sourceMappingURL=unknownTriggerWorkflowRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownTriggerWorkflowRule.js","sourceRoot":"","sources":["../../../src/rules/workflows/unknownTriggerWorkflowRule.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0BAA0B,GAAe;IACpD,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACtC,IACE,QAAQ,KAAK,cAAc;YAC3B,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EACzC,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,CAAA;QACd,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,98 @@
1
+ import { searchProject } from '../../searchProject';
2
+ import { unknownTriggerWorkflowRule } from './unknownTriggerWorkflowRule';
3
+ describe('unknownTriggerWorkflowRule', () => {
4
+ test('should detect unknown workflows', () => {
5
+ const problems = Array.from(searchProject({
6
+ files: {
7
+ components: {
8
+ myComponent: {
9
+ name: 'myComponent',
10
+ nodes: {
11
+ root: {
12
+ type: 'element',
13
+ attrs: {},
14
+ classes: {},
15
+ events: {
16
+ click: {
17
+ trigger: 'click',
18
+ actions: [
19
+ {
20
+ type: 'TriggerWorkflow',
21
+ workflow: 'unknown-workflow',
22
+ parameters: {},
23
+ },
24
+ ],
25
+ },
26
+ },
27
+ tag: 'div',
28
+ children: [],
29
+ style: {},
30
+ },
31
+ },
32
+ formulas: {},
33
+ apis: {},
34
+ attributes: {},
35
+ variables: {},
36
+ workflows: {
37
+ ['my-workflow']: {
38
+ actions: [],
39
+ name: 'my-workflow',
40
+ parameters: [],
41
+ },
42
+ },
43
+ },
44
+ },
45
+ },
46
+ rules: [unknownTriggerWorkflowRule],
47
+ }));
48
+ expect(problems).toHaveLength(1);
49
+ expect(problems[0].code).toBe('unknown trigger workflow');
50
+ });
51
+ test('should not fail on valid workflow triggers', () => {
52
+ const problems = Array.from(searchProject({
53
+ files: {
54
+ components: {
55
+ myComponent: {
56
+ name: 'myComponent',
57
+ nodes: {
58
+ root: {
59
+ type: 'element',
60
+ attrs: {},
61
+ classes: {},
62
+ events: {
63
+ click: {
64
+ trigger: 'click',
65
+ actions: [
66
+ {
67
+ type: 'TriggerWorkflow',
68
+ workflow: 'my-workflow',
69
+ parameters: {},
70
+ },
71
+ ],
72
+ },
73
+ },
74
+ tag: 'div',
75
+ children: [],
76
+ style: {},
77
+ },
78
+ },
79
+ formulas: {},
80
+ apis: {},
81
+ attributes: {},
82
+ variables: {},
83
+ workflows: {
84
+ ['my-workflow']: {
85
+ actions: [],
86
+ name: 'my-workflow',
87
+ parameters: [],
88
+ },
89
+ },
90
+ },
91
+ },
92
+ },
93
+ rules: [unknownTriggerWorkflowRule],
94
+ }));
95
+ expect(problems).toHaveLength(0);
96
+ });
97
+ });
98
+ //# sourceMappingURL=unknownTriggerWorkflowRule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unknownTriggerWorkflowRule.test.js","sourceRoot":"","sources":["../../../src/rules/workflows/unknownTriggerWorkflowRule.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,aAAa,CAAC;YACZ,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,EAAE;gCACT,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE;oCACN,KAAK,EAAE;wCACL,OAAO,EAAE,OAAO;wCAChB,OAAO,EAAE;4CACP;gDACE,IAAI,EAAE,iBAAiB;gDACvB,QAAQ,EAAE,kBAAkB;gDAC5B,UAAU,EAAE,EAAE;6CACf;yCACF;qCACF;iCACF;gCACD,GAAG,EAAE,KAAK;gCACV,QAAQ,EAAE,EAAE;gCACZ,KAAK,EAAE,EAAE;6BACV;yBACF;wBACD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,EAAE;wBACR,UAAU,EAAE,EAAE;wBACd,SAAS,EAAE,EAAE;wBACb,SAAS,EAAE;4BACT,CAAC,aAAa,CAAC,EAAE;gCACf,OAAO,EAAE,EAAE;gCACX,IAAI,EAAE,aAAa;gCACnB,UAAU,EAAE,EAAE;6BACf;yBACF;qBACF;iBACF;aACF;YACD,KAAK,EAAE,CAAC,0BAA0B,CAAC;SACpC,CAAC,CACH,CAAA;QAED,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,aAAa,CAAC;YACZ,KAAK,EAAE;gBACL,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,EAAE;gCACT,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE;oCACN,KAAK,EAAE;wCACL,OAAO,EAAE,OAAO;wCAChB,OAAO,EAAE;4CACP;gDACE,IAAI,EAAE,iBAAiB;gDACvB,QAAQ,EAAE,aAAa;gDACvB,UAAU,EAAE,EAAE;6CACf;yCACF;qCACF;iCACF;gCACD,GAAG,EAAE,KAAK;gCACV,QAAQ,EAAE,EAAE;gCACZ,KAAK,EAAE,EAAE;6BACV;yBACF;wBACD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,EAAE;wBACR,UAAU,EAAE,EAAE;wBACd,SAAS,EAAE,EAAE;wBACb,SAAS,EAAE;4BACT,CAAC,aAAa,CAAC,EAAE;gCACf,OAAO,EAAE,EAAE;gCACX,IAAI,EAAE,aAAa;gCACnB,UAAU,EAAE,EAAE;6BACf;yBACF;qBACF;iBACF;aACF;YACD,KAAK,EAAE,CAAC,0BAA0B,CAAC;SACpC,CAAC,CACH,CAAA;QAED,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}