@memberjunction/react-test-harness 5.36.0 → 5.38.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 (342) hide show
  1. package/README.md +30 -0
  2. package/dist/cli/index.js +5 -1
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -5
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +10 -5
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/browser-context.d.ts +43 -0
  9. package/dist/lib/browser-context.d.ts.map +1 -1
  10. package/dist/lib/browser-context.js +87 -12
  11. package/dist/lib/browser-context.js.map +1 -1
  12. package/dist/lib/component-runner.d.ts +11 -22
  13. package/dist/lib/component-runner.d.ts.map +1 -1
  14. package/dist/lib/component-runner.js +1 -1
  15. package/dist/lib/component-runner.js.map +1 -1
  16. package/dist/lib/linter-test-tool.js +1 -1
  17. package/dist/lib/linter-test-tool.js.map +1 -1
  18. package/dist/lib/test-harness.d.ts +10 -0
  19. package/dist/lib/test-harness.d.ts.map +1 -1
  20. package/dist/lib/test-harness.js +10 -0
  21. package/dist/lib/test-harness.js.map +1 -1
  22. package/package.json +14 -13
  23. package/dist/lib/component-linter.d.ts +0 -77
  24. package/dist/lib/component-linter.d.ts.map +0 -1
  25. package/dist/lib/component-linter.js +0 -1205
  26. package/dist/lib/component-linter.js.map +0 -1
  27. package/dist/lib/control-flow-analyzer.d.ts +0 -184
  28. package/dist/lib/control-flow-analyzer.d.ts.map +0 -1
  29. package/dist/lib/control-flow-analyzer.js +0 -798
  30. package/dist/lib/control-flow-analyzer.js.map +0 -1
  31. package/dist/lib/library-lint-cache.d.ts +0 -50
  32. package/dist/lib/library-lint-cache.d.ts.map +0 -1
  33. package/dist/lib/library-lint-cache.js +0 -173
  34. package/dist/lib/library-lint-cache.js.map +0 -1
  35. package/dist/lib/lint-rule.d.ts +0 -70
  36. package/dist/lib/lint-rule.d.ts.map +0 -1
  37. package/dist/lib/lint-rule.js +0 -41
  38. package/dist/lib/lint-rule.js.map +0 -1
  39. package/dist/lib/lint-utils.d.ts +0 -131
  40. package/dist/lib/lint-utils.d.ts.map +0 -1
  41. package/dist/lib/lint-utils.js +0 -358
  42. package/dist/lib/lint-utils.js.map +0 -1
  43. package/dist/lib/prop-value-extractor.d.ts +0 -147
  44. package/dist/lib/prop-value-extractor.d.ts.map +0 -1
  45. package/dist/lib/prop-value-extractor.js +0 -472
  46. package/dist/lib/prop-value-extractor.js.map +0 -1
  47. package/dist/lib/runtime-rules/ai-tools-availability-check.d.ts +0 -9
  48. package/dist/lib/runtime-rules/ai-tools-availability-check.d.ts.map +0 -1
  49. package/dist/lib/runtime-rules/ai-tools-availability-check.js +0 -223
  50. package/dist/lib/runtime-rules/ai-tools-availability-check.js.map +0 -1
  51. package/dist/lib/runtime-rules/callback-event-validation.d.ts +0 -22
  52. package/dist/lib/runtime-rules/callback-event-validation.d.ts.map +0 -1
  53. package/dist/lib/runtime-rules/callback-event-validation.js +0 -561
  54. package/dist/lib/runtime-rules/callback-event-validation.js.map +0 -1
  55. package/dist/lib/runtime-rules/chart-field-validation.d.ts +0 -10
  56. package/dist/lib/runtime-rules/chart-field-validation.d.ts.map +0 -1
  57. package/dist/lib/runtime-rules/chart-field-validation.js +0 -270
  58. package/dist/lib/runtime-rules/chart-field-validation.js.map +0 -1
  59. package/dist/lib/runtime-rules/child-component-prop-validation.d.ts +0 -10
  60. package/dist/lib/runtime-rules/child-component-prop-validation.d.ts.map +0 -1
  61. package/dist/lib/runtime-rules/child-component-prop-validation.js +0 -443
  62. package/dist/lib/runtime-rules/child-component-prop-validation.js.map +0 -1
  63. package/dist/lib/runtime-rules/component-name-mismatch.d.ts +0 -19
  64. package/dist/lib/runtime-rules/component-name-mismatch.d.ts.map +0 -1
  65. package/dist/lib/runtime-rules/component-name-mismatch.js +0 -82
  66. package/dist/lib/runtime-rules/component-name-mismatch.js.map +0 -1
  67. package/dist/lib/runtime-rules/component-not-in-dependencies.d.ts +0 -20
  68. package/dist/lib/runtime-rules/component-not-in-dependencies.d.ts.map +0 -1
  69. package/dist/lib/runtime-rules/component-not-in-dependencies.js +0 -92
  70. package/dist/lib/runtime-rules/component-not-in-dependencies.js.map +0 -1
  71. package/dist/lib/runtime-rules/component-props-validation.d.ts +0 -25
  72. package/dist/lib/runtime-rules/component-props-validation.d.ts.map +0 -1
  73. package/dist/lib/runtime-rules/component-props-validation.js +0 -228
  74. package/dist/lib/runtime-rules/component-props-validation.js.map +0 -1
  75. package/dist/lib/runtime-rules/component-usage-without-destructuring.d.ts +0 -20
  76. package/dist/lib/runtime-rules/component-usage-without-destructuring.d.ts.map +0 -1
  77. package/dist/lib/runtime-rules/component-usage-without-destructuring.js +0 -124
  78. package/dist/lib/runtime-rules/component-usage-without-destructuring.js.map +0 -1
  79. package/dist/lib/runtime-rules/data-result-validation.d.ts +0 -9
  80. package/dist/lib/runtime-rules/data-result-validation.d.ts.map +0 -1
  81. package/dist/lib/runtime-rules/data-result-validation.js +0 -763
  82. package/dist/lib/runtime-rules/data-result-validation.js.map +0 -1
  83. package/dist/lib/runtime-rules/datagrid-field-validation.d.ts +0 -10
  84. package/dist/lib/runtime-rules/datagrid-field-validation.d.ts.map +0 -1
  85. package/dist/lib/runtime-rules/datagrid-field-validation.js +0 -249
  86. package/dist/lib/runtime-rules/datagrid-field-validation.js.map +0 -1
  87. package/dist/lib/runtime-rules/dependency-shadowing.d.ts +0 -20
  88. package/dist/lib/runtime-rules/dependency-shadowing.d.ts.map +0 -1
  89. package/dist/lib/runtime-rules/dependency-shadowing.js +0 -147
  90. package/dist/lib/runtime-rules/dependency-shadowing.js.map +0 -1
  91. package/dist/lib/runtime-rules/entity-field-access-validation.d.ts +0 -12
  92. package/dist/lib/runtime-rules/entity-field-access-validation.d.ts.map +0 -1
  93. package/dist/lib/runtime-rules/entity-field-access-validation.js +0 -304
  94. package/dist/lib/runtime-rules/entity-field-access-validation.js.map +0 -1
  95. package/dist/lib/runtime-rules/event-parameter-validation.d.ts +0 -22
  96. package/dist/lib/runtime-rules/event-parameter-validation.d.ts.map +0 -1
  97. package/dist/lib/runtime-rules/event-parameter-validation.js +0 -406
  98. package/dist/lib/runtime-rules/event-parameter-validation.js.map +0 -1
  99. package/dist/lib/runtime-rules/index.d.ts +0 -61
  100. package/dist/lib/runtime-rules/index.d.ts.map +0 -1
  101. package/dist/lib/runtime-rules/index.js +0 -62
  102. package/dist/lib/runtime-rules/index.js.map +0 -1
  103. package/dist/lib/runtime-rules/library-variable-names.d.ts +0 -24
  104. package/dist/lib/runtime-rules/library-variable-names.d.ts.map +0 -1
  105. package/dist/lib/runtime-rules/library-variable-names.js +0 -88
  106. package/dist/lib/runtime-rules/library-variable-names.js.map +0 -1
  107. package/dist/lib/runtime-rules/no-child-implementation.d.ts +0 -18
  108. package/dist/lib/runtime-rules/no-child-implementation.d.ts.map +0 -1
  109. package/dist/lib/runtime-rules/no-child-implementation.js +0 -57
  110. package/dist/lib/runtime-rules/no-child-implementation.js.map +0 -1
  111. package/dist/lib/runtime-rules/no-data-prop.d.ts +0 -22
  112. package/dist/lib/runtime-rules/no-data-prop.d.ts.map +0 -1
  113. package/dist/lib/runtime-rules/no-data-prop.js +0 -111
  114. package/dist/lib/runtime-rules/no-data-prop.js.map +0 -1
  115. package/dist/lib/runtime-rules/no-export-statements.d.ts +0 -18
  116. package/dist/lib/runtime-rules/no-export-statements.d.ts.map +0 -1
  117. package/dist/lib/runtime-rules/no-export-statements.js +0 -143
  118. package/dist/lib/runtime-rules/no-export-statements.js.map +0 -1
  119. package/dist/lib/runtime-rules/no-iife-wrapper.d.ts +0 -18
  120. package/dist/lib/runtime-rules/no-iife-wrapper.d.ts.map +0 -1
  121. package/dist/lib/runtime-rules/no-iife-wrapper.js +0 -217
  122. package/dist/lib/runtime-rules/no-iife-wrapper.js.map +0 -1
  123. package/dist/lib/runtime-rules/no-import-statements.d.ts +0 -18
  124. package/dist/lib/runtime-rules/no-import-statements.d.ts.map +0 -1
  125. package/dist/lib/runtime-rules/no-import-statements.js +0 -65
  126. package/dist/lib/runtime-rules/no-import-statements.js.map +0 -1
  127. package/dist/lib/runtime-rules/no-react-destructuring.d.ts +0 -18
  128. package/dist/lib/runtime-rules/no-react-destructuring.d.ts.map +0 -1
  129. package/dist/lib/runtime-rules/no-react-destructuring.js +0 -60
  130. package/dist/lib/runtime-rules/no-react-destructuring.js.map +0 -1
  131. package/dist/lib/runtime-rules/no-require-statements.d.ts +0 -18
  132. package/dist/lib/runtime-rules/no-require-statements.d.ts.map +0 -1
  133. package/dist/lib/runtime-rules/no-require-statements.js +0 -109
  134. package/dist/lib/runtime-rules/no-require-statements.js.map +0 -1
  135. package/dist/lib/runtime-rules/no-return-component.d.ts +0 -18
  136. package/dist/lib/runtime-rules/no-return-component.d.ts.map +0 -1
  137. package/dist/lib/runtime-rules/no-return-component.js +0 -106
  138. package/dist/lib/runtime-rules/no-return-component.js.map +0 -1
  139. package/dist/lib/runtime-rules/no-unwrap-utility-libs.d.ts +0 -20
  140. package/dist/lib/runtime-rules/no-unwrap-utility-libs.d.ts.map +0 -1
  141. package/dist/lib/runtime-rules/no-unwrap-utility-libs.js +0 -75
  142. package/dist/lib/runtime-rules/no-unwrap-utility-libs.js.map +0 -1
  143. package/dist/lib/runtime-rules/no-use-reducer.d.ts +0 -19
  144. package/dist/lib/runtime-rules/no-use-reducer.d.ts.map +0 -1
  145. package/dist/lib/runtime-rules/no-use-reducer.js +0 -78
  146. package/dist/lib/runtime-rules/no-use-reducer.js.map +0 -1
  147. package/dist/lib/runtime-rules/no-window-access.d.ts +0 -23
  148. package/dist/lib/runtime-rules/no-window-access.d.ts.map +0 -1
  149. package/dist/lib/runtime-rules/no-window-access.js +0 -136
  150. package/dist/lib/runtime-rules/no-window-access.js.map +0 -1
  151. package/dist/lib/runtime-rules/noisy-settings-updates.d.ts +0 -18
  152. package/dist/lib/runtime-rules/noisy-settings-updates.d.ts.map +0 -1
  153. package/dist/lib/runtime-rules/noisy-settings-updates.js +0 -110
  154. package/dist/lib/runtime-rules/noisy-settings-updates.js.map +0 -1
  155. package/dist/lib/runtime-rules/overflow-hidden-on-layout-container.d.ts +0 -30
  156. package/dist/lib/runtime-rules/overflow-hidden-on-layout-container.d.ts.map +0 -1
  157. package/dist/lib/runtime-rules/overflow-hidden-on-layout-container.js +0 -220
  158. package/dist/lib/runtime-rules/overflow-hidden-on-layout-container.js.map +0 -1
  159. package/dist/lib/runtime-rules/pass-standard-props.d.ts +0 -19
  160. package/dist/lib/runtime-rules/pass-standard-props.d.ts.map +0 -1
  161. package/dist/lib/runtime-rules/pass-standard-props.js +0 -82
  162. package/dist/lib/runtime-rules/pass-standard-props.js.map +0 -1
  163. package/dist/lib/runtime-rules/prefer-async-await.d.ts +0 -17
  164. package/dist/lib/runtime-rules/prefer-async-await.d.ts.map +0 -1
  165. package/dist/lib/runtime-rules/prefer-async-await.js +0 -52
  166. package/dist/lib/runtime-rules/prefer-async-await.js.map +0 -1
  167. package/dist/lib/runtime-rules/prefer-jsx-syntax.d.ts +0 -17
  168. package/dist/lib/runtime-rules/prefer-jsx-syntax.d.ts.map +0 -1
  169. package/dist/lib/runtime-rules/prefer-jsx-syntax.js +0 -51
  170. package/dist/lib/runtime-rules/prefer-jsx-syntax.js.map +0 -1
  171. package/dist/lib/runtime-rules/prop-state-sync.d.ts +0 -19
  172. package/dist/lib/runtime-rules/prop-state-sync.d.ts.map +0 -1
  173. package/dist/lib/runtime-rules/prop-state-sync.js +0 -76
  174. package/dist/lib/runtime-rules/prop-state-sync.js.map +0 -1
  175. package/dist/lib/runtime-rules/property-name-consistency.d.ts +0 -20
  176. package/dist/lib/runtime-rules/property-name-consistency.d.ts.map +0 -1
  177. package/dist/lib/runtime-rules/property-name-consistency.js +0 -172
  178. package/dist/lib/runtime-rules/property-name-consistency.js.map +0 -1
  179. package/dist/lib/runtime-rules/query-result-field-access-validation.d.ts +0 -10
  180. package/dist/lib/runtime-rules/query-result-field-access-validation.d.ts.map +0 -1
  181. package/dist/lib/runtime-rules/query-result-field-access-validation.js +0 -304
  182. package/dist/lib/runtime-rules/query-result-field-access-validation.js.map +0 -1
  183. package/dist/lib/runtime-rules/react-component-naming.d.ts +0 -19
  184. package/dist/lib/runtime-rules/react-component-naming.d.ts.map +0 -1
  185. package/dist/lib/runtime-rules/react-component-naming.js +0 -72
  186. package/dist/lib/runtime-rules/react-component-naming.js.map +0 -1
  187. package/dist/lib/runtime-rules/react-hooks-rules.d.ts +0 -27
  188. package/dist/lib/runtime-rules/react-hooks-rules.d.ts.map +0 -1
  189. package/dist/lib/runtime-rules/react-hooks-rules.js +0 -223
  190. package/dist/lib/runtime-rules/react-hooks-rules.js.map +0 -1
  191. package/dist/lib/runtime-rules/required-queries-not-called.d.ts +0 -19
  192. package/dist/lib/runtime-rules/required-queries-not-called.d.ts.map +0 -1
  193. package/dist/lib/runtime-rules/required-queries-not-called.js +0 -146
  194. package/dist/lib/runtime-rules/required-queries-not-called.js.map +0 -1
  195. package/dist/lib/runtime-rules/runquery-call-validation.d.ts +0 -11
  196. package/dist/lib/runtime-rules/runquery-call-validation.d.ts.map +0 -1
  197. package/dist/lib/runtime-rules/runquery-call-validation.js +0 -886
  198. package/dist/lib/runtime-rules/runquery-call-validation.js.map +0 -1
  199. package/dist/lib/runtime-rules/runview-call-validation.d.ts +0 -10
  200. package/dist/lib/runtime-rules/runview-call-validation.d.ts.map +0 -1
  201. package/dist/lib/runtime-rules/runview-call-validation.js +0 -336
  202. package/dist/lib/runtime-rules/runview-call-validation.js.map +0 -1
  203. package/dist/lib/runtime-rules/saved-user-settings-pattern.d.ts +0 -19
  204. package/dist/lib/runtime-rules/saved-user-settings-pattern.d.ts.map +0 -1
  205. package/dist/lib/runtime-rules/saved-user-settings-pattern.js +0 -90
  206. package/dist/lib/runtime-rules/saved-user-settings-pattern.js.map +0 -1
  207. package/dist/lib/runtime-rules/search-availability-check.d.ts +0 -9
  208. package/dist/lib/runtime-rules/search-availability-check.d.ts.map +0 -1
  209. package/dist/lib/runtime-rules/search-availability-check.js +0 -220
  210. package/dist/lib/runtime-rules/search-availability-check.js.map +0 -1
  211. package/dist/lib/runtime-rules/search-call-validation.d.ts +0 -9
  212. package/dist/lib/runtime-rules/search-call-validation.d.ts.map +0 -1
  213. package/dist/lib/runtime-rules/search-call-validation.js +0 -336
  214. package/dist/lib/runtime-rules/search-call-validation.js.map +0 -1
  215. package/dist/lib/runtime-rules/server-reload-on-client-operation.d.ts +0 -18
  216. package/dist/lib/runtime-rules/server-reload-on-client-operation.d.ts.map +0 -1
  217. package/dist/lib/runtime-rules/server-reload-on-client-operation.js +0 -107
  218. package/dist/lib/runtime-rules/server-reload-on-client-operation.js.map +0 -1
  219. package/dist/lib/runtime-rules/single-function-only.d.ts +0 -18
  220. package/dist/lib/runtime-rules/single-function-only.d.ts.map +0 -1
  221. package/dist/lib/runtime-rules/single-function-only.js +0 -103
  222. package/dist/lib/runtime-rules/single-function-only.js.map +0 -1
  223. package/dist/lib/runtime-rules/string-replace-all-occurrences.d.ts +0 -19
  224. package/dist/lib/runtime-rules/string-replace-all-occurrences.d.ts.map +0 -1
  225. package/dist/lib/runtime-rules/string-replace-all-occurrences.js +0 -109
  226. package/dist/lib/runtime-rules/string-replace-all-occurrences.js.map +0 -1
  227. package/dist/lib/runtime-rules/string-template-validation.d.ts +0 -22
  228. package/dist/lib/runtime-rules/string-template-validation.d.ts.map +0 -1
  229. package/dist/lib/runtime-rules/string-template-validation.js +0 -163
  230. package/dist/lib/runtime-rules/string-template-validation.js.map +0 -1
  231. package/dist/lib/runtime-rules/styles-validation.d.ts +0 -10
  232. package/dist/lib/runtime-rules/styles-validation.d.ts.map +0 -1
  233. package/dist/lib/runtime-rules/styles-validation.js +0 -153
  234. package/dist/lib/runtime-rules/styles-validation.js.map +0 -1
  235. package/dist/lib/runtime-rules/type-inference-errors.d.ts +0 -23
  236. package/dist/lib/runtime-rules/type-inference-errors.d.ts.map +0 -1
  237. package/dist/lib/runtime-rules/type-inference-errors.js +0 -53
  238. package/dist/lib/runtime-rules/type-inference-errors.js.map +0 -1
  239. package/dist/lib/runtime-rules/type-mismatch-operation.d.ts +0 -23
  240. package/dist/lib/runtime-rules/type-mismatch-operation.d.ts.map +0 -1
  241. package/dist/lib/runtime-rules/type-mismatch-operation.js +0 -141
  242. package/dist/lib/runtime-rules/type-mismatch-operation.js.map +0 -1
  243. package/dist/lib/runtime-rules/undefined-component-usage.d.ts +0 -20
  244. package/dist/lib/runtime-rules/undefined-component-usage.d.ts.map +0 -1
  245. package/dist/lib/runtime-rules/undefined-component-usage.js +0 -138
  246. package/dist/lib/runtime-rules/undefined-component-usage.js.map +0 -1
  247. package/dist/lib/runtime-rules/undefined-jsx-component.d.ts +0 -25
  248. package/dist/lib/runtime-rules/undefined-jsx-component.d.ts.map +0 -1
  249. package/dist/lib/runtime-rules/undefined-jsx-component.js +0 -269
  250. package/dist/lib/runtime-rules/undefined-jsx-component.js.map +0 -1
  251. package/dist/lib/runtime-rules/unsafe-array-operations.d.ts +0 -25
  252. package/dist/lib/runtime-rules/unsafe-array-operations.d.ts.map +0 -1
  253. package/dist/lib/runtime-rules/unsafe-array-operations.js +0 -347
  254. package/dist/lib/runtime-rules/unsafe-array-operations.js.map +0 -1
  255. package/dist/lib/runtime-rules/unsafe-formatting-methods.d.ts +0 -24
  256. package/dist/lib/runtime-rules/unsafe-formatting-methods.d.ts.map +0 -1
  257. package/dist/lib/runtime-rules/unsafe-formatting-methods.js +0 -277
  258. package/dist/lib/runtime-rules/unsafe-formatting-methods.js.map +0 -1
  259. package/dist/lib/runtime-rules/unused-component-dependencies.d.ts +0 -19
  260. package/dist/lib/runtime-rules/unused-component-dependencies.d.ts.map +0 -1
  261. package/dist/lib/runtime-rules/unused-component-dependencies.js +0 -90
  262. package/dist/lib/runtime-rules/unused-component-dependencies.js.map +0 -1
  263. package/dist/lib/runtime-rules/unused-libraries.d.ts +0 -19
  264. package/dist/lib/runtime-rules/unused-libraries.d.ts.map +0 -1
  265. package/dist/lib/runtime-rules/unused-libraries.js +0 -127
  266. package/dist/lib/runtime-rules/unused-libraries.js.map +0 -1
  267. package/dist/lib/runtime-rules/use-function-declaration.d.ts +0 -18
  268. package/dist/lib/runtime-rules/use-function-declaration.d.ts.map +0 -1
  269. package/dist/lib/runtime-rules/use-function-declaration.js +0 -127
  270. package/dist/lib/runtime-rules/use-function-declaration.js.map +0 -1
  271. package/dist/lib/runtime-rules/use-unwrap-components.d.ts +0 -19
  272. package/dist/lib/runtime-rules/use-unwrap-components.d.ts.map +0 -1
  273. package/dist/lib/runtime-rules/use-unwrap-components.js +0 -84
  274. package/dist/lib/runtime-rules/use-unwrap-components.js.map +0 -1
  275. package/dist/lib/runtime-rules/useeffect-unstable-dependencies.d.ts +0 -23
  276. package/dist/lib/runtime-rules/useeffect-unstable-dependencies.d.ts.map +0 -1
  277. package/dist/lib/runtime-rules/useeffect-unstable-dependencies.js +0 -215
  278. package/dist/lib/runtime-rules/useeffect-unstable-dependencies.js.map +0 -1
  279. package/dist/lib/runtime-rules/utilities-api-validation.d.ts +0 -24
  280. package/dist/lib/runtime-rules/utilities-api-validation.d.ts.map +0 -1
  281. package/dist/lib/runtime-rules/utilities-api-validation.js +0 -121
  282. package/dist/lib/runtime-rules/utilities-api-validation.js.map +0 -1
  283. package/dist/lib/runtime-rules/utilities-no-direct-instantiation.d.ts +0 -20
  284. package/dist/lib/runtime-rules/utilities-no-direct-instantiation.d.ts.map +0 -1
  285. package/dist/lib/runtime-rules/utilities-no-direct-instantiation.js +0 -58
  286. package/dist/lib/runtime-rules/utilities-no-direct-instantiation.js.map +0 -1
  287. package/dist/lib/runtime-rules/validate-component-references.d.ts +0 -19
  288. package/dist/lib/runtime-rules/validate-component-references.d.ts.map +0 -1
  289. package/dist/lib/runtime-rules/validate-component-references.js +0 -255
  290. package/dist/lib/runtime-rules/validate-component-references.js.map +0 -1
  291. package/dist/lib/schema-validation/component-prop-rule.d.ts +0 -125
  292. package/dist/lib/schema-validation/component-prop-rule.d.ts.map +0 -1
  293. package/dist/lib/schema-validation/component-prop-rule.js +0 -624
  294. package/dist/lib/schema-validation/component-prop-rule.js.map +0 -1
  295. package/dist/lib/schema-validation/index.d.ts +0 -26
  296. package/dist/lib/schema-validation/index.d.ts.map +0 -1
  297. package/dist/lib/schema-validation/index.js +0 -26
  298. package/dist/lib/schema-validation/index.js.map +0 -1
  299. package/dist/lib/schema-validation/semantic-validators/index.d.ts +0 -23
  300. package/dist/lib/schema-validation/semantic-validators/index.d.ts.map +0 -1
  301. package/dist/lib/schema-validation/semantic-validators/index.js +0 -23
  302. package/dist/lib/schema-validation/semantic-validators/index.js.map +0 -1
  303. package/dist/lib/schema-validation/semantic-validators/required-when-validator.d.ts +0 -43
  304. package/dist/lib/schema-validation/semantic-validators/required-when-validator.d.ts.map +0 -1
  305. package/dist/lib/schema-validation/semantic-validators/required-when-validator.js +0 -94
  306. package/dist/lib/schema-validation/semantic-validators/required-when-validator.js.map +0 -1
  307. package/dist/lib/schema-validation/semantic-validators/semantic-validator-registry.d.ts +0 -122
  308. package/dist/lib/schema-validation/semantic-validators/semantic-validator-registry.d.ts.map +0 -1
  309. package/dist/lib/schema-validation/semantic-validators/semantic-validator-registry.js +0 -166
  310. package/dist/lib/schema-validation/semantic-validators/semantic-validator-registry.js.map +0 -1
  311. package/dist/lib/schema-validation/semantic-validators/semantic-validator.d.ts +0 -260
  312. package/dist/lib/schema-validation/semantic-validators/semantic-validator.d.ts.map +0 -1
  313. package/dist/lib/schema-validation/semantic-validators/semantic-validator.js +0 -301
  314. package/dist/lib/schema-validation/semantic-validators/semantic-validator.js.map +0 -1
  315. package/dist/lib/schema-validation/semantic-validators/sql-where-clause-validator.d.ts +0 -115
  316. package/dist/lib/schema-validation/semantic-validators/sql-where-clause-validator.d.ts.map +0 -1
  317. package/dist/lib/schema-validation/semantic-validators/sql-where-clause-validator.js +0 -381
  318. package/dist/lib/schema-validation/semantic-validators/sql-where-clause-validator.js.map +0 -1
  319. package/dist/lib/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts +0 -60
  320. package/dist/lib/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts.map +0 -1
  321. package/dist/lib/schema-validation/semantic-validators/subset-of-entity-fields-validator.js +0 -195
  322. package/dist/lib/schema-validation/semantic-validators/subset-of-entity-fields-validator.js.map +0 -1
  323. package/dist/lib/schema-validation/semantic-validators/validation-context.d.ts +0 -335
  324. package/dist/lib/schema-validation/semantic-validators/validation-context.d.ts.map +0 -1
  325. package/dist/lib/schema-validation/semantic-validators/validation-context.js +0 -13
  326. package/dist/lib/schema-validation/semantic-validators/validation-context.js.map +0 -1
  327. package/dist/lib/styles-type-analyzer.d.ts +0 -64
  328. package/dist/lib/styles-type-analyzer.d.ts.map +0 -1
  329. package/dist/lib/styles-type-analyzer.js +0 -242
  330. package/dist/lib/styles-type-analyzer.js.map +0 -1
  331. package/dist/lib/type-context.d.ts +0 -184
  332. package/dist/lib/type-context.d.ts.map +0 -1
  333. package/dist/lib/type-context.js +0 -415
  334. package/dist/lib/type-context.js.map +0 -1
  335. package/dist/lib/type-inference-engine.d.ts +0 -181
  336. package/dist/lib/type-inference-engine.d.ts.map +0 -1
  337. package/dist/lib/type-inference-engine.js +0 -1151
  338. package/dist/lib/type-inference-engine.js.map +0 -1
  339. package/dist/lib/type-rules/type-compatibility-rule.d.ts +0 -79
  340. package/dist/lib/type-rules/type-compatibility-rule.d.ts.map +0 -1
  341. package/dist/lib/type-rules/type-compatibility-rule.js +0 -211
  342. package/dist/lib/type-rules/type-compatibility-rule.js.map +0 -1
@@ -1,561 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { traverse } from '../lint-utils.js';
8
- import * as t from '@babel/types';
9
- import { RegisterClass } from '@memberjunction/global';
10
- import { BaseLintRule } from '../lint-rule.js';
11
- /**
12
- * The set of methods allowed on the ComponentCallbacks interface.
13
- * Any access to `callbacks.X` where X is not in this set is a violation.
14
- */
15
- const ALLOWED_CALLBACK_METHODS = new Set(['OpenEntityRecord', 'RegisterMethod', 'CreateSimpleNotification']);
16
- /** Valid notification style values for CreateSimpleNotification. */
17
- const VALID_NOTIFICATION_STYLES = ['none', 'success', 'error', 'warning', 'info'];
18
- /** Shared rule name used for all violations emitted by this consolidated rule. */
19
- const RULE_NAME = 'callback-event-validation';
20
- /**
21
- * Rule: callback-event-validation
22
- *
23
- * Consolidated rule that replaces four separate rules:
24
- * - callback-parameter-validation: validates callback method parameter counts and types
25
- * - callbacks-passthrough-only: ensures callbacks are passed through unchanged to children
26
- * - callbacks-usage-validation: validates callbacks are only accessed via allowed methods
27
- * - event-invocation-pattern: ensures event props are null-checked before invocation
28
- *
29
- * Severity: critical / high / medium / low (varies by check)
30
- * Applies to: all components
31
- */
32
- let CallbackEventValidationRule = class CallbackEventValidationRule extends BaseLintRule {
33
- get Name() { return RULE_NAME; }
34
- get AppliesTo() { return 'all'; }
35
- Test(ast, _componentName, componentSpec) {
36
- const violations = [];
37
- const componentEvents = buildComponentEventsSet(componentSpec);
38
- traverse(ast, {
39
- CallExpression: (path) => {
40
- checkCallbackParameterValidation(path, violations);
41
- checkObjectAssignOnCallbacks(path, violations);
42
- checkEventInvocationNullCheck(path, violations, componentEvents);
43
- },
44
- MemberExpression: (path) => {
45
- checkCallbackMethodUsage(path, violations, componentEvents);
46
- },
47
- OptionalCallExpression: (path) => {
48
- // Optional chaining on events (e.g. onFoo?.(data)) is the correct pattern — no violation
49
- checkOptionalCallOnEvent(path, componentEvents);
50
- },
51
- JSXAttribute: (path) => {
52
- checkCallbacksPassthrough(path, violations);
53
- },
54
- VariableDeclarator: (path) => {
55
- checkCallbacksDestructuring(path, violations, componentEvents);
56
- checkCallbacksSpreadInVariable(path, violations);
57
- },
58
- });
59
- return violations;
60
- }
61
- };
62
- CallbackEventValidationRule = __decorate([
63
- RegisterClass(BaseLintRule, 'callback-event-validation')
64
- ], CallbackEventValidationRule);
65
- export { CallbackEventValidationRule };
66
- // ---------------------------------------------------------------------------
67
- // Helper: build component events set from spec
68
- // ---------------------------------------------------------------------------
69
- function buildComponentEventsSet(componentSpec) {
70
- const componentEvents = new Set();
71
- if (componentSpec?.events) {
72
- for (const event of componentSpec.events) {
73
- if (event.name) {
74
- componentEvents.add(event.name);
75
- }
76
- }
77
- }
78
- return componentEvents;
79
- }
80
- // ---------------------------------------------------------------------------
81
- // Callback parameter validation helpers
82
- // ---------------------------------------------------------------------------
83
- function isCallbacksMemberCall(callee) {
84
- if (!t.isOptionalMemberExpression(callee) && !t.isMemberExpression(callee)) {
85
- return false;
86
- }
87
- return ((t.isIdentifier(callee.object) && callee.object.name === 'callbacks') ||
88
- (t.isOptionalMemberExpression(callee) && t.isIdentifier(callee.object) && callee.object.name === 'callbacks'));
89
- }
90
- function checkCallbackParameterValidation(path, violations) {
91
- const callee = path.node.callee;
92
- if (!isCallbacksMemberCall(callee)) {
93
- return;
94
- }
95
- if (!t.isIdentifier(callee.property)) {
96
- return;
97
- }
98
- const methodName = callee.property.name;
99
- const args = path.node.arguments;
100
- if (methodName === 'OpenEntityRecord') {
101
- validateOpenEntityRecord(path, args, violations);
102
- }
103
- else if (methodName === 'RegisterMethod') {
104
- validateRegisterMethod(path, args, violations);
105
- }
106
- else if (methodName === 'CreateSimpleNotification') {
107
- validateCreateSimpleNotification(path, args, violations);
108
- }
109
- }
110
- function validateOpenEntityRecord(path, args, violations) {
111
- if (args.length < 2) {
112
- violations.push({
113
- rule: RULE_NAME,
114
- severity: 'high',
115
- line: path.node.loc?.start.line || 0,
116
- column: path.node.loc?.start.column || 0,
117
- message: `OpenEntityRecord requires 2 parameters (entityName, key), but ${args.length} provided`,
118
- suggestion: {
119
- text: `OpenEntityRecord expects an entity name and a key parameter.`,
120
- example: `callbacks?.OpenEntityRecord?.(entityName, recordKey);`,
121
- },
122
- });
123
- }
124
- }
125
- function validateRegisterMethod(path, args, violations) {
126
- if (args.length < 2) {
127
- violations.push({
128
- rule: RULE_NAME,
129
- severity: 'high',
130
- line: path.node.loc?.start.line || 0,
131
- column: path.node.loc?.start.column || 0,
132
- message: `RegisterMethod requires 2 parameters (methodName, handler), but ${args.length} provided`,
133
- suggestion: {
134
- text: `RegisterMethod expects a method name and a handler function.`,
135
- example: `callbacks?.RegisterMethod?.('myMethod', myHandler);`,
136
- },
137
- });
138
- }
139
- }
140
- function validateCreateSimpleNotification(path, args, violations) {
141
- if (args.length < 1) {
142
- violations.push({
143
- rule: RULE_NAME,
144
- severity: 'high',
145
- line: path.node.loc?.start.line || 0,
146
- column: path.node.loc?.start.column || 0,
147
- message: `CreateSimpleNotification requires at least 1 parameter (message), but ${args.length} provided`,
148
- suggestion: {
149
- text: `CreateSimpleNotification expects a message and optional style and hideAfter parameters.`,
150
- example: `callbacks?.CreateSimpleNotification?.('Success!', 'success', 3000);`,
151
- },
152
- });
153
- }
154
- else if (args.length >= 2) {
155
- validateNotificationStyle(args[1], violations);
156
- }
157
- if (args.length >= 3) {
158
- validateHideAfterParam(args[2], violations);
159
- }
160
- }
161
- function validateNotificationStyle(styleArg, violations) {
162
- if (t.isStringLiteral(styleArg) && !VALID_NOTIFICATION_STYLES.includes(styleArg.value)) {
163
- violations.push({
164
- rule: RULE_NAME,
165
- severity: 'medium',
166
- line: styleArg.loc?.start.line || 0,
167
- column: styleArg.loc?.start.column || 0,
168
- message: `Invalid notification style "${styleArg.value}". Must be one of: ${VALID_NOTIFICATION_STYLES.join(', ')}`,
169
- suggestion: {
170
- text: `Use one of the valid notification styles.`,
171
- example: `callbacks?.CreateSimpleNotification?.('Message', 'success', 3000);`,
172
- },
173
- });
174
- }
175
- }
176
- function validateHideAfterParam(hideAfterArg, violations) {
177
- if (t.isNumericLiteral(hideAfterArg) && hideAfterArg.value < 0) {
178
- violations.push({
179
- rule: RULE_NAME,
180
- severity: 'low',
181
- line: hideAfterArg.loc?.start.line || 0,
182
- column: hideAfterArg.loc?.start.column || 0,
183
- message: `hideAfter parameter should be a positive number (milliseconds)`,
184
- suggestion: {
185
- text: `Use a positive number for auto-hide duration in milliseconds.`,
186
- example: `callbacks?.CreateSimpleNotification?.('Message', 'success', 3000); // Hide after 3 seconds`,
187
- },
188
- });
189
- }
190
- }
191
- // ---------------------------------------------------------------------------
192
- // Callbacks usage validation helpers (allowed methods only, not events)
193
- // ---------------------------------------------------------------------------
194
- function checkCallbackMethodUsage(path, violations, componentEvents) {
195
- if (!t.isIdentifier(path.node.object) || path.node.object.name !== 'callbacks') {
196
- return;
197
- }
198
- if (!t.isIdentifier(path.node.property)) {
199
- return;
200
- }
201
- const methodName = path.node.property.name;
202
- // Valid runtime callback — allow it
203
- if (ALLOWED_CALLBACK_METHODS.has(methodName)) {
204
- return;
205
- }
206
- if (componentEvents.has(methodName)) {
207
- violations.push({
208
- rule: RULE_NAME,
209
- severity: 'critical',
210
- line: path.node.loc?.start.line || 0,
211
- column: path.node.loc?.start.column || 0,
212
- message: `Event "${methodName}" should not be accessed from callbacks. Events are passed as direct props to the component. Use the prop directly: ${methodName}`,
213
- suggestion: {
214
- text: `Events defined in the component spec are passed as direct props, not through callbacks. Access the event directly as a prop.`,
215
- example: `// ❌ WRONG - Accessing event from callbacks
216
- const { ${methodName} } = callbacks || {};
217
- callbacks?.${methodName}?.(data);
218
-
219
- // ✅ CORRECT - Event is a direct prop
220
- // In the component props destructuring:
221
- function MyComponent({ ..., ${methodName} }) {
222
- // Use with null checking:
223
- if (${methodName}) {
224
- ${methodName}(data);
225
- }
226
- }`,
227
- },
228
- });
229
- }
230
- else {
231
- violations.push({
232
- rule: RULE_NAME,
233
- severity: 'critical',
234
- line: path.node.loc?.start.line || 0,
235
- column: path.node.loc?.start.column || 0,
236
- message: `Invalid callback method "${methodName}". The callbacks prop only supports: ${Array.from(ALLOWED_CALLBACK_METHODS).join(', ')}`,
237
- suggestion: {
238
- text: `The callbacks prop is reserved for specific MemberJunction framework methods. Custom events should be defined in the component spec's events array and passed as props.`,
239
- example: `// Allowed callbacks methods:
240
- callbacks?.OpenEntityRecord?.(entityName, key);
241
- callbacks?.RegisterMethod?.(methodName, handler);
242
- callbacks?.CreateSimpleNotification?.(message, style, hideAfter);
243
-
244
- // For custom events, define them in the spec and use as props:
245
- function MyComponent({ onCustomEvent }) {
246
- if (onCustomEvent) {
247
- onCustomEvent(data);
248
- }
249
- }`,
250
- },
251
- });
252
- }
253
- }
254
- // ---------------------------------------------------------------------------
255
- // Callbacks destructuring validation (from VariableDeclarator)
256
- // ---------------------------------------------------------------------------
257
- function checkCallbacksDestructuring(path, violations, componentEvents) {
258
- if (!t.isObjectPattern(path.node.id)) {
259
- return;
260
- }
261
- // Match: const { X } = callbacks
262
- const isDirectCallbacks = t.isIdentifier(path.node.init) && path.node.init.name === 'callbacks';
263
- // Match: const { X } = callbacks || {}
264
- const isCallbacksWithFallback = t.isLogicalExpression(path.node.init) &&
265
- path.node.init.operator === '||' &&
266
- t.isIdentifier(path.node.init.left) &&
267
- path.node.init.left.name === 'callbacks';
268
- if (!isDirectCallbacks && !isCallbacksWithFallback) {
269
- return;
270
- }
271
- for (const prop of path.node.id.properties) {
272
- if (!t.isObjectProperty(prop) || !t.isIdentifier(prop.key)) {
273
- continue;
274
- }
275
- const methodName = prop.key.name;
276
- // Valid runtime callback — allow it
277
- if (ALLOWED_CALLBACK_METHODS.has(methodName)) {
278
- continue;
279
- }
280
- if (componentEvents.has(methodName)) {
281
- violations.push({
282
- rule: RULE_NAME,
283
- severity: 'critical',
284
- line: prop.loc?.start.line || 0,
285
- column: prop.loc?.start.column || 0,
286
- message: `Event "${methodName}" should not be destructured from callbacks. Events are passed as direct props to the component.`,
287
- suggestion: {
288
- text: `Events should be destructured from the component props, not from callbacks.`,
289
- example: `// ❌ WRONG
290
- const { ${methodName} } = callbacks || {};
291
-
292
- // ✅ CORRECT
293
- function MyComponent({ utilities, styles, callbacks, ${methodName} }) {
294
- // ${methodName} is now available as a prop
295
- }`,
296
- },
297
- });
298
- }
299
- else {
300
- violations.push({
301
- rule: RULE_NAME,
302
- severity: 'critical',
303
- line: prop.loc?.start.line || 0,
304
- column: prop.loc?.start.column || 0,
305
- message: `Invalid callback method "${methodName}" being destructured. The callbacks prop only supports: ${Array.from(ALLOWED_CALLBACK_METHODS).join(', ')}`,
306
- });
307
- }
308
- }
309
- }
310
- // ---------------------------------------------------------------------------
311
- // Callbacks passthrough validation helpers
312
- // ---------------------------------------------------------------------------
313
- function checkCallbacksPassthrough(path, violations) {
314
- if (!t.isJSXIdentifier(path.node.name) || path.node.name.name !== 'callbacks') {
315
- return;
316
- }
317
- const value = path.node.value;
318
- if (!t.isJSXExpressionContainer(value)) {
319
- return;
320
- }
321
- const expr = value.expression;
322
- // Valid patterns: callbacks={callbacks} or callbacks={props.callbacks}
323
- const isValidPassthrough = (t.isIdentifier(expr) && expr.name === 'callbacks') ||
324
- (t.isMemberExpression(expr) && t.isIdentifier(expr.property) && expr.property.name === 'callbacks');
325
- if (isValidPassthrough) {
326
- return;
327
- }
328
- if (t.isObjectExpression(expr)) {
329
- checkObjectExpressionPassthrough(path, expr, violations);
330
- }
331
- else if (t.isConditionalExpression(expr) || t.isLogicalExpression(expr)) {
332
- violations.push({
333
- rule: RULE_NAME,
334
- severity: 'medium',
335
- line: path.node.loc?.start.line || 0,
336
- column: path.node.loc?.start.column || 0,
337
- message: `Callbacks should be passed through directly without conditional logic. Consider handling the condition at a higher level.`,
338
- suggestion: {
339
- text: `Pass callbacks directly or handle conditions in parent component.`,
340
- example: `// ⚠️ AVOID - Conditional callbacks
341
- <ChildComponent
342
- callbacks={someCondition ? callbacks : undefined}
343
- />
344
-
345
- // ✅ BETTER - Pass callbacks directly
346
- <ChildComponent
347
- callbacks={callbacks}
348
- />`,
349
- },
350
- });
351
- }
352
- else if (!t.isIdentifier(expr) && !t.isMemberExpression(expr)) {
353
- violations.push({
354
- rule: RULE_NAME,
355
- severity: 'critical',
356
- line: path.node.loc?.start.line || 0,
357
- column: path.node.loc?.start.column || 0,
358
- message: `Callbacks must be passed through unchanged. Found complex expression instead of direct passthrough.`,
359
- suggestion: {
360
- text: `Pass the callbacks prop directly without modification.`,
361
- example: `// ✅ CORRECT
362
- <ChildComponent callbacks={callbacks} />`,
363
- },
364
- });
365
- }
366
- }
367
- function checkObjectExpressionPassthrough(path, expr, violations) {
368
- const hasSpread = expr.properties.some((prop) => t.isSpreadElement(prop) && t.isIdentifier(prop.argument) && prop.argument.name === 'callbacks');
369
- if (hasSpread) {
370
- const addedProps = expr.properties
371
- .filter((prop) => !t.isSpreadElement(prop) && t.isObjectProperty(prop))
372
- .map((prop) => {
373
- if (t.isObjectProperty(prop)) {
374
- if (t.isIdentifier(prop.key)) {
375
- return prop.key.name;
376
- }
377
- else if (t.isStringLiteral(prop.key)) {
378
- return prop.key.value;
379
- }
380
- }
381
- return 'unknown';
382
- });
383
- violations.push({
384
- rule: RULE_NAME,
385
- severity: 'critical',
386
- line: path.node.loc?.start.line || 0,
387
- column: path.node.loc?.start.column || 0,
388
- message: `Callbacks must be passed through unchanged. Found spreading with additional properties: ${addedProps.join(', ')}. Component events should be passed as direct props, not added to callbacks.`,
389
- suggestion: {
390
- text: `The callbacks prop should only contain OpenEntityRecord and RegisterMethod. Pass component events as separate props.`,
391
- example: `// ❌ WRONG - Modifying callbacks
392
- <ChildComponent
393
- callbacks={{ ...callbacks, onOpen: handleOpen }}
394
- />
395
-
396
- // ✅ CORRECT - Pass callbacks unchanged, events as props
397
- <ChildComponent
398
- callbacks={callbacks}
399
- onOpen={handleOpen}
400
- />`,
401
- },
402
- });
403
- }
404
- else if (expr.properties.length > 0) {
405
- violations.push({
406
- rule: RULE_NAME,
407
- severity: 'critical',
408
- line: path.node.loc?.start.line || 0,
409
- column: path.node.loc?.start.column || 0,
410
- message: `Callbacks must be passed through unchanged. Do not create new callback objects. Pass the callbacks prop directly.`,
411
- suggestion: {
412
- text: `Pass callbacks directly without modification.`,
413
- example: `// ❌ WRONG - Creating new callbacks object
414
- <ChildComponent
415
- callbacks={{ OpenEntityRecord: customHandler }}
416
- />
417
-
418
- // ✅ CORRECT - Pass callbacks unchanged
419
- <ChildComponent
420
- callbacks={callbacks}
421
- />`,
422
- },
423
- });
424
- }
425
- }
426
- /** Check for Object.assign(callbacks, ...) */
427
- function checkObjectAssignOnCallbacks(path, violations) {
428
- if (t.isMemberExpression(path.node.callee) &&
429
- t.isIdentifier(path.node.callee.object) &&
430
- path.node.callee.object.name === 'Object' &&
431
- t.isIdentifier(path.node.callee.property) &&
432
- path.node.callee.property.name === 'assign') {
433
- const args = path.node.arguments;
434
- const hasCallbacks = args.some((arg) => t.isIdentifier(arg) && arg.name === 'callbacks');
435
- if (hasCallbacks) {
436
- violations.push({
437
- rule: RULE_NAME,
438
- severity: 'critical',
439
- line: path.node.loc?.start.line || 0,
440
- column: path.node.loc?.start.column || 0,
441
- message: `Do not modify callbacks with Object.assign. Callbacks should be passed through unchanged.`,
442
- suggestion: {
443
- text: `Pass callbacks directly and use separate props for component events.`,
444
- example: `// ❌ WRONG
445
- const modifiedCallbacks = Object.assign({}, callbacks, { onOpen: handler });
446
-
447
- // ✅ CORRECT - Keep callbacks separate from events
448
- <Component callbacks={callbacks} onOpen={handler} />`,
449
- },
450
- });
451
- }
452
- }
453
- }
454
- /** Check for variable assignments that spread callbacks with additional props. */
455
- function checkCallbacksSpreadInVariable(path, violations) {
456
- if (!t.isObjectExpression(path.node.init)) {
457
- return;
458
- }
459
- const hasCallbacksSpread = path.node.init.properties.some((prop) => t.isSpreadElement(prop) && t.isIdentifier(prop.argument) && prop.argument.name === 'callbacks');
460
- if (!hasCallbacksSpread) {
461
- return;
462
- }
463
- const hasAdditionalProps = path.node.init.properties.some((prop) => !t.isSpreadElement(prop));
464
- if (hasAdditionalProps) {
465
- violations.push({
466
- rule: RULE_NAME,
467
- severity: 'critical',
468
- line: path.node.loc?.start.line || 0,
469
- column: path.node.loc?.start.column || 0,
470
- message: `Do not create modified copies of callbacks. Pass callbacks unchanged and use separate props for events.`,
471
- suggestion: {
472
- text: `Keep callbacks immutable and pass component events as separate props.`,
473
- example: `// ❌ WRONG
474
- const extendedCallbacks = { ...callbacks, onCustomEvent: handler };
475
-
476
- // ✅ CORRECT - Keep them separate
477
- // Pass to child component:
478
- <Component callbacks={callbacks} onCustomEvent={handler} />`,
479
- },
480
- });
481
- }
482
- }
483
- // ---------------------------------------------------------------------------
484
- // Event invocation null-check validation helpers
485
- // ---------------------------------------------------------------------------
486
- function checkEventInvocationNullCheck(path, violations, componentEvents) {
487
- if (componentEvents.size === 0) {
488
- return;
489
- }
490
- if (!t.isIdentifier(path.node.callee)) {
491
- return;
492
- }
493
- const eventName = path.node.callee.name;
494
- if (!componentEvents.has(eventName)) {
495
- return;
496
- }
497
- if (!hasNullCheckAncestor(path, eventName)) {
498
- violations.push({
499
- rule: RULE_NAME,
500
- severity: 'medium',
501
- line: path.node.loc?.start.line || 0,
502
- column: path.node.loc?.start.column || 0,
503
- message: `Event "${eventName}" is being invoked without null-checking. Events are optional props and should be checked before invocation.`,
504
- suggestion: {
505
- text: `Always check that an event prop exists before invoking it, as events are optional.`,
506
- example: `// ❌ WRONG - No null check
507
- ${eventName}(data);
508
-
509
- // ✅ CORRECT - With null check
510
- if (${eventName}) {
511
- ${eventName}(data);
512
- }
513
-
514
- // ✅ ALSO CORRECT - Inline check
515
- ${eventName} && ${eventName}(data);
516
-
517
- // ✅ ALSO CORRECT - Optional chaining
518
- ${eventName}?.(data);`,
519
- },
520
- });
521
- }
522
- }
523
- function hasNullCheckAncestor(path, eventName) {
524
- let currentPath = path.parentPath;
525
- while (currentPath) {
526
- if (t.isIfStatement(currentPath.node)) {
527
- if (isEventNameTest(currentPath.node.test, eventName)) {
528
- return true;
529
- }
530
- }
531
- else if (t.isLogicalExpression(currentPath.node) && currentPath.node.operator === '&&') {
532
- if (t.isIdentifier(currentPath.node.left) && currentPath.node.left.name === eventName) {
533
- return true;
534
- }
535
- }
536
- else if (t.isConditionalExpression(currentPath.node)) {
537
- if (t.isIdentifier(currentPath.node.test) && currentPath.node.test.name === eventName) {
538
- return true;
539
- }
540
- }
541
- currentPath = currentPath.parentPath || null;
542
- }
543
- return false;
544
- }
545
- function isEventNameTest(test, eventName) {
546
- if (t.isIdentifier(test) && test.name === eventName) {
547
- return true;
548
- }
549
- if (t.isLogicalExpression(test) && test.operator === '&&') {
550
- if (t.isIdentifier(test.left) && test.left.name === eventName) {
551
- return true;
552
- }
553
- }
554
- return false;
555
- }
556
- /** Optional chaining on events is the correct pattern — no-op. */
557
- function checkOptionalCallOnEvent(_path, _componentEvents) {
558
- // This is the correct pattern, no violation needed.
559
- return;
560
- }
561
- //# sourceMappingURL=callback-event-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callback-event-validation.js","sourceRoot":"","sources":["../../../src/lib/runtime-rules/callback-event-validation.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import * as t from '@babel/types';
2
- import { BaseLintRule } from '../lint-rule.js';
3
- import { Violation } from '../component-linter.js';
4
- import { ComponentSpec } from '@memberjunction/interactive-component-types';
5
- export declare class ChartFieldValidationRule extends BaseLintRule {
6
- get Name(): string;
7
- get AppliesTo(): 'all' | 'child' | 'root';
8
- Test(ast: t.File, _componentName: string, componentSpec?: ComponentSpec): Violation[];
9
- }
10
- //# sourceMappingURL=chart-field-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart-field-validation.d.ts","sourceRoot":"","sources":["../../../src/lib/runtime-rules/chart-field-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AA4N5E,qBACa,wBAAyB,SAAQ,YAAY;IACxD,IAAI,IAAI,WAAuC;IAC/C,IAAI,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAkB;IAE3D,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,EAAE;CA6EtF"}