@memberjunction/react-linter 0.0.1 → 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 (330) hide show
  1. package/dist/component-linter.d.ts +77 -0
  2. package/dist/component-linter.d.ts.map +1 -0
  3. package/dist/component-linter.js +1206 -0
  4. package/dist/component-linter.js.map +1 -0
  5. package/dist/control-flow-analyzer.d.ts +184 -0
  6. package/dist/control-flow-analyzer.d.ts.map +1 -0
  7. package/dist/control-flow-analyzer.js +798 -0
  8. package/dist/control-flow-analyzer.js.map +1 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +8 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/library-lint-cache.d.ts +50 -0
  14. package/dist/library-lint-cache.d.ts.map +1 -0
  15. package/dist/library-lint-cache.js +173 -0
  16. package/dist/library-lint-cache.js.map +1 -0
  17. package/dist/lint-rule.d.ts +70 -0
  18. package/dist/lint-rule.d.ts.map +1 -0
  19. package/dist/lint-rule.js +30 -0
  20. package/dist/lint-rule.js.map +1 -0
  21. package/dist/lint-utils.d.ts +131 -0
  22. package/dist/lint-utils.d.ts.map +1 -0
  23. package/dist/lint-utils.js +358 -0
  24. package/dist/lint-utils.js.map +1 -0
  25. package/dist/linter-options.d.ts +51 -0
  26. package/dist/linter-options.d.ts.map +1 -0
  27. package/dist/linter-options.js +2 -0
  28. package/dist/linter-options.js.map +1 -0
  29. package/dist/prop-value-extractor.d.ts +147 -0
  30. package/dist/prop-value-extractor.d.ts.map +1 -0
  31. package/dist/prop-value-extractor.js +472 -0
  32. package/dist/prop-value-extractor.js.map +1 -0
  33. package/dist/runtime-rules/ai-tools-availability-check.d.ts +9 -0
  34. package/dist/runtime-rules/ai-tools-availability-check.d.ts.map +1 -0
  35. package/dist/runtime-rules/ai-tools-availability-check.js +223 -0
  36. package/dist/runtime-rules/ai-tools-availability-check.js.map +1 -0
  37. package/dist/runtime-rules/callback-event-validation.d.ts +22 -0
  38. package/dist/runtime-rules/callback-event-validation.d.ts.map +1 -0
  39. package/dist/runtime-rules/callback-event-validation.js +561 -0
  40. package/dist/runtime-rules/callback-event-validation.js.map +1 -0
  41. package/dist/runtime-rules/chart-field-validation.d.ts +10 -0
  42. package/dist/runtime-rules/chart-field-validation.d.ts.map +1 -0
  43. package/dist/runtime-rules/chart-field-validation.js +270 -0
  44. package/dist/runtime-rules/chart-field-validation.js.map +1 -0
  45. package/dist/runtime-rules/child-component-prop-validation.d.ts +11 -0
  46. package/dist/runtime-rules/child-component-prop-validation.d.ts.map +1 -0
  47. package/dist/runtime-rules/child-component-prop-validation.js +443 -0
  48. package/dist/runtime-rules/child-component-prop-validation.js.map +1 -0
  49. package/dist/runtime-rules/component-name-mismatch.d.ts +19 -0
  50. package/dist/runtime-rules/component-name-mismatch.d.ts.map +1 -0
  51. package/dist/runtime-rules/component-name-mismatch.js +82 -0
  52. package/dist/runtime-rules/component-name-mismatch.js.map +1 -0
  53. package/dist/runtime-rules/component-not-in-dependencies.d.ts +20 -0
  54. package/dist/runtime-rules/component-not-in-dependencies.d.ts.map +1 -0
  55. package/dist/runtime-rules/component-not-in-dependencies.js +92 -0
  56. package/dist/runtime-rules/component-not-in-dependencies.js.map +1 -0
  57. package/dist/runtime-rules/component-props-validation.d.ts +25 -0
  58. package/dist/runtime-rules/component-props-validation.d.ts.map +1 -0
  59. package/dist/runtime-rules/component-props-validation.js +228 -0
  60. package/dist/runtime-rules/component-props-validation.js.map +1 -0
  61. package/dist/runtime-rules/component-usage-without-destructuring.d.ts +20 -0
  62. package/dist/runtime-rules/component-usage-without-destructuring.d.ts.map +1 -0
  63. package/dist/runtime-rules/component-usage-without-destructuring.js +124 -0
  64. package/dist/runtime-rules/component-usage-without-destructuring.js.map +1 -0
  65. package/dist/runtime-rules/data-result-validation.d.ts +9 -0
  66. package/dist/runtime-rules/data-result-validation.d.ts.map +1 -0
  67. package/dist/runtime-rules/data-result-validation.js +763 -0
  68. package/dist/runtime-rules/data-result-validation.js.map +1 -0
  69. package/dist/runtime-rules/datagrid-field-validation.d.ts +10 -0
  70. package/dist/runtime-rules/datagrid-field-validation.d.ts.map +1 -0
  71. package/dist/runtime-rules/datagrid-field-validation.js +249 -0
  72. package/dist/runtime-rules/datagrid-field-validation.js.map +1 -0
  73. package/dist/runtime-rules/dependency-shadowing.d.ts +20 -0
  74. package/dist/runtime-rules/dependency-shadowing.d.ts.map +1 -0
  75. package/dist/runtime-rules/dependency-shadowing.js +147 -0
  76. package/dist/runtime-rules/dependency-shadowing.js.map +1 -0
  77. package/dist/runtime-rules/entity-field-access-validation.d.ts +12 -0
  78. package/dist/runtime-rules/entity-field-access-validation.d.ts.map +1 -0
  79. package/dist/runtime-rules/entity-field-access-validation.js +304 -0
  80. package/dist/runtime-rules/entity-field-access-validation.js.map +1 -0
  81. package/dist/runtime-rules/event-parameter-validation.d.ts +22 -0
  82. package/dist/runtime-rules/event-parameter-validation.d.ts.map +1 -0
  83. package/dist/runtime-rules/event-parameter-validation.js +406 -0
  84. package/dist/runtime-rules/event-parameter-validation.js.map +1 -0
  85. package/dist/runtime-rules/index.d.ts +61 -0
  86. package/dist/runtime-rules/index.d.ts.map +1 -0
  87. package/dist/runtime-rules/index.js +62 -0
  88. package/dist/runtime-rules/index.js.map +1 -0
  89. package/dist/runtime-rules/library-variable-names.d.ts +24 -0
  90. package/dist/runtime-rules/library-variable-names.d.ts.map +1 -0
  91. package/dist/runtime-rules/library-variable-names.js +88 -0
  92. package/dist/runtime-rules/library-variable-names.js.map +1 -0
  93. package/dist/runtime-rules/no-child-implementation.d.ts +18 -0
  94. package/dist/runtime-rules/no-child-implementation.d.ts.map +1 -0
  95. package/dist/runtime-rules/no-child-implementation.js +57 -0
  96. package/dist/runtime-rules/no-child-implementation.js.map +1 -0
  97. package/dist/runtime-rules/no-data-prop.d.ts +22 -0
  98. package/dist/runtime-rules/no-data-prop.d.ts.map +1 -0
  99. package/dist/runtime-rules/no-data-prop.js +111 -0
  100. package/dist/runtime-rules/no-data-prop.js.map +1 -0
  101. package/dist/runtime-rules/no-export-statements.d.ts +18 -0
  102. package/dist/runtime-rules/no-export-statements.d.ts.map +1 -0
  103. package/dist/runtime-rules/no-export-statements.js +143 -0
  104. package/dist/runtime-rules/no-export-statements.js.map +1 -0
  105. package/dist/runtime-rules/no-iife-wrapper.d.ts +18 -0
  106. package/dist/runtime-rules/no-iife-wrapper.d.ts.map +1 -0
  107. package/dist/runtime-rules/no-iife-wrapper.js +217 -0
  108. package/dist/runtime-rules/no-iife-wrapper.js.map +1 -0
  109. package/dist/runtime-rules/no-import-statements.d.ts +18 -0
  110. package/dist/runtime-rules/no-import-statements.d.ts.map +1 -0
  111. package/dist/runtime-rules/no-import-statements.js +65 -0
  112. package/dist/runtime-rules/no-import-statements.js.map +1 -0
  113. package/dist/runtime-rules/no-react-destructuring.d.ts +18 -0
  114. package/dist/runtime-rules/no-react-destructuring.d.ts.map +1 -0
  115. package/dist/runtime-rules/no-react-destructuring.js +60 -0
  116. package/dist/runtime-rules/no-react-destructuring.js.map +1 -0
  117. package/dist/runtime-rules/no-require-statements.d.ts +18 -0
  118. package/dist/runtime-rules/no-require-statements.d.ts.map +1 -0
  119. package/dist/runtime-rules/no-require-statements.js +109 -0
  120. package/dist/runtime-rules/no-require-statements.js.map +1 -0
  121. package/dist/runtime-rules/no-return-component.d.ts +18 -0
  122. package/dist/runtime-rules/no-return-component.d.ts.map +1 -0
  123. package/dist/runtime-rules/no-return-component.js +106 -0
  124. package/dist/runtime-rules/no-return-component.js.map +1 -0
  125. package/dist/runtime-rules/no-unwrap-utility-libs.d.ts +20 -0
  126. package/dist/runtime-rules/no-unwrap-utility-libs.d.ts.map +1 -0
  127. package/dist/runtime-rules/no-unwrap-utility-libs.js +75 -0
  128. package/dist/runtime-rules/no-unwrap-utility-libs.js.map +1 -0
  129. package/dist/runtime-rules/no-use-reducer.d.ts +19 -0
  130. package/dist/runtime-rules/no-use-reducer.d.ts.map +1 -0
  131. package/dist/runtime-rules/no-use-reducer.js +78 -0
  132. package/dist/runtime-rules/no-use-reducer.js.map +1 -0
  133. package/dist/runtime-rules/no-window-access.d.ts +23 -0
  134. package/dist/runtime-rules/no-window-access.d.ts.map +1 -0
  135. package/dist/runtime-rules/no-window-access.js +136 -0
  136. package/dist/runtime-rules/no-window-access.js.map +1 -0
  137. package/dist/runtime-rules/noisy-settings-updates.d.ts +18 -0
  138. package/dist/runtime-rules/noisy-settings-updates.d.ts.map +1 -0
  139. package/dist/runtime-rules/noisy-settings-updates.js +110 -0
  140. package/dist/runtime-rules/noisy-settings-updates.js.map +1 -0
  141. package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts +30 -0
  142. package/dist/runtime-rules/overflow-hidden-on-layout-container.d.ts.map +1 -0
  143. package/dist/runtime-rules/overflow-hidden-on-layout-container.js +220 -0
  144. package/dist/runtime-rules/overflow-hidden-on-layout-container.js.map +1 -0
  145. package/dist/runtime-rules/pass-standard-props.d.ts +19 -0
  146. package/dist/runtime-rules/pass-standard-props.d.ts.map +1 -0
  147. package/dist/runtime-rules/pass-standard-props.js +82 -0
  148. package/dist/runtime-rules/pass-standard-props.js.map +1 -0
  149. package/dist/runtime-rules/prefer-async-await.d.ts +17 -0
  150. package/dist/runtime-rules/prefer-async-await.d.ts.map +1 -0
  151. package/dist/runtime-rules/prefer-async-await.js +52 -0
  152. package/dist/runtime-rules/prefer-async-await.js.map +1 -0
  153. package/dist/runtime-rules/prefer-jsx-syntax.d.ts +17 -0
  154. package/dist/runtime-rules/prefer-jsx-syntax.d.ts.map +1 -0
  155. package/dist/runtime-rules/prefer-jsx-syntax.js +51 -0
  156. package/dist/runtime-rules/prefer-jsx-syntax.js.map +1 -0
  157. package/dist/runtime-rules/prop-state-sync.d.ts +19 -0
  158. package/dist/runtime-rules/prop-state-sync.d.ts.map +1 -0
  159. package/dist/runtime-rules/prop-state-sync.js +76 -0
  160. package/dist/runtime-rules/prop-state-sync.js.map +1 -0
  161. package/dist/runtime-rules/property-name-consistency.d.ts +20 -0
  162. package/dist/runtime-rules/property-name-consistency.d.ts.map +1 -0
  163. package/dist/runtime-rules/property-name-consistency.js +172 -0
  164. package/dist/runtime-rules/property-name-consistency.js.map +1 -0
  165. package/dist/runtime-rules/query-result-field-access-validation.d.ts +10 -0
  166. package/dist/runtime-rules/query-result-field-access-validation.d.ts.map +1 -0
  167. package/dist/runtime-rules/query-result-field-access-validation.js +304 -0
  168. package/dist/runtime-rules/query-result-field-access-validation.js.map +1 -0
  169. package/dist/runtime-rules/react-component-naming.d.ts +19 -0
  170. package/dist/runtime-rules/react-component-naming.d.ts.map +1 -0
  171. package/dist/runtime-rules/react-component-naming.js +72 -0
  172. package/dist/runtime-rules/react-component-naming.js.map +1 -0
  173. package/dist/runtime-rules/react-hooks-rules.d.ts +27 -0
  174. package/dist/runtime-rules/react-hooks-rules.d.ts.map +1 -0
  175. package/dist/runtime-rules/react-hooks-rules.js +223 -0
  176. package/dist/runtime-rules/react-hooks-rules.js.map +1 -0
  177. package/dist/runtime-rules/required-queries-not-called.d.ts +19 -0
  178. package/dist/runtime-rules/required-queries-not-called.d.ts.map +1 -0
  179. package/dist/runtime-rules/required-queries-not-called.js +146 -0
  180. package/dist/runtime-rules/required-queries-not-called.js.map +1 -0
  181. package/dist/runtime-rules/runquery-call-validation.d.ts +11 -0
  182. package/dist/runtime-rules/runquery-call-validation.d.ts.map +1 -0
  183. package/dist/runtime-rules/runquery-call-validation.js +886 -0
  184. package/dist/runtime-rules/runquery-call-validation.js.map +1 -0
  185. package/dist/runtime-rules/runview-call-validation.d.ts +10 -0
  186. package/dist/runtime-rules/runview-call-validation.d.ts.map +1 -0
  187. package/dist/runtime-rules/runview-call-validation.js +336 -0
  188. package/dist/runtime-rules/runview-call-validation.js.map +1 -0
  189. package/dist/runtime-rules/saved-user-settings-pattern.d.ts +19 -0
  190. package/dist/runtime-rules/saved-user-settings-pattern.d.ts.map +1 -0
  191. package/dist/runtime-rules/saved-user-settings-pattern.js +90 -0
  192. package/dist/runtime-rules/saved-user-settings-pattern.js.map +1 -0
  193. package/dist/runtime-rules/search-availability-check.d.ts +9 -0
  194. package/dist/runtime-rules/search-availability-check.d.ts.map +1 -0
  195. package/dist/runtime-rules/search-availability-check.js +220 -0
  196. package/dist/runtime-rules/search-availability-check.js.map +1 -0
  197. package/dist/runtime-rules/search-call-validation.d.ts +9 -0
  198. package/dist/runtime-rules/search-call-validation.d.ts.map +1 -0
  199. package/dist/runtime-rules/search-call-validation.js +336 -0
  200. package/dist/runtime-rules/search-call-validation.js.map +1 -0
  201. package/dist/runtime-rules/server-reload-on-client-operation.d.ts +18 -0
  202. package/dist/runtime-rules/server-reload-on-client-operation.d.ts.map +1 -0
  203. package/dist/runtime-rules/server-reload-on-client-operation.js +107 -0
  204. package/dist/runtime-rules/server-reload-on-client-operation.js.map +1 -0
  205. package/dist/runtime-rules/single-function-only.d.ts +18 -0
  206. package/dist/runtime-rules/single-function-only.d.ts.map +1 -0
  207. package/dist/runtime-rules/single-function-only.js +103 -0
  208. package/dist/runtime-rules/single-function-only.js.map +1 -0
  209. package/dist/runtime-rules/string-replace-all-occurrences.d.ts +19 -0
  210. package/dist/runtime-rules/string-replace-all-occurrences.d.ts.map +1 -0
  211. package/dist/runtime-rules/string-replace-all-occurrences.js +109 -0
  212. package/dist/runtime-rules/string-replace-all-occurrences.js.map +1 -0
  213. package/dist/runtime-rules/string-template-validation.d.ts +22 -0
  214. package/dist/runtime-rules/string-template-validation.d.ts.map +1 -0
  215. package/dist/runtime-rules/string-template-validation.js +163 -0
  216. package/dist/runtime-rules/string-template-validation.js.map +1 -0
  217. package/dist/runtime-rules/styles-validation.d.ts +10 -0
  218. package/dist/runtime-rules/styles-validation.d.ts.map +1 -0
  219. package/dist/runtime-rules/styles-validation.js +153 -0
  220. package/dist/runtime-rules/styles-validation.js.map +1 -0
  221. package/dist/runtime-rules/type-inference-errors.d.ts +23 -0
  222. package/dist/runtime-rules/type-inference-errors.d.ts.map +1 -0
  223. package/dist/runtime-rules/type-inference-errors.js +53 -0
  224. package/dist/runtime-rules/type-inference-errors.js.map +1 -0
  225. package/dist/runtime-rules/type-mismatch-operation.d.ts +23 -0
  226. package/dist/runtime-rules/type-mismatch-operation.d.ts.map +1 -0
  227. package/dist/runtime-rules/type-mismatch-operation.js +145 -0
  228. package/dist/runtime-rules/type-mismatch-operation.js.map +1 -0
  229. package/dist/runtime-rules/undefined-component-usage.d.ts +20 -0
  230. package/dist/runtime-rules/undefined-component-usage.d.ts.map +1 -0
  231. package/dist/runtime-rules/undefined-component-usage.js +138 -0
  232. package/dist/runtime-rules/undefined-component-usage.js.map +1 -0
  233. package/dist/runtime-rules/undefined-jsx-component.d.ts +25 -0
  234. package/dist/runtime-rules/undefined-jsx-component.d.ts.map +1 -0
  235. package/dist/runtime-rules/undefined-jsx-component.js +269 -0
  236. package/dist/runtime-rules/undefined-jsx-component.js.map +1 -0
  237. package/dist/runtime-rules/unsafe-array-operations.d.ts +25 -0
  238. package/dist/runtime-rules/unsafe-array-operations.d.ts.map +1 -0
  239. package/dist/runtime-rules/unsafe-array-operations.js +347 -0
  240. package/dist/runtime-rules/unsafe-array-operations.js.map +1 -0
  241. package/dist/runtime-rules/unsafe-formatting-methods.d.ts +24 -0
  242. package/dist/runtime-rules/unsafe-formatting-methods.d.ts.map +1 -0
  243. package/dist/runtime-rules/unsafe-formatting-methods.js +277 -0
  244. package/dist/runtime-rules/unsafe-formatting-methods.js.map +1 -0
  245. package/dist/runtime-rules/unused-component-dependencies.d.ts +19 -0
  246. package/dist/runtime-rules/unused-component-dependencies.d.ts.map +1 -0
  247. package/dist/runtime-rules/unused-component-dependencies.js +90 -0
  248. package/dist/runtime-rules/unused-component-dependencies.js.map +1 -0
  249. package/dist/runtime-rules/unused-libraries.d.ts +19 -0
  250. package/dist/runtime-rules/unused-libraries.d.ts.map +1 -0
  251. package/dist/runtime-rules/unused-libraries.js +127 -0
  252. package/dist/runtime-rules/unused-libraries.js.map +1 -0
  253. package/dist/runtime-rules/use-function-declaration.d.ts +18 -0
  254. package/dist/runtime-rules/use-function-declaration.d.ts.map +1 -0
  255. package/dist/runtime-rules/use-function-declaration.js +127 -0
  256. package/dist/runtime-rules/use-function-declaration.js.map +1 -0
  257. package/dist/runtime-rules/use-unwrap-components.d.ts +19 -0
  258. package/dist/runtime-rules/use-unwrap-components.d.ts.map +1 -0
  259. package/dist/runtime-rules/use-unwrap-components.js +84 -0
  260. package/dist/runtime-rules/use-unwrap-components.js.map +1 -0
  261. package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts +23 -0
  262. package/dist/runtime-rules/useeffect-unstable-dependencies.d.ts.map +1 -0
  263. package/dist/runtime-rules/useeffect-unstable-dependencies.js +215 -0
  264. package/dist/runtime-rules/useeffect-unstable-dependencies.js.map +1 -0
  265. package/dist/runtime-rules/utilities-api-validation.d.ts +24 -0
  266. package/dist/runtime-rules/utilities-api-validation.d.ts.map +1 -0
  267. package/dist/runtime-rules/utilities-api-validation.js +121 -0
  268. package/dist/runtime-rules/utilities-api-validation.js.map +1 -0
  269. package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts +20 -0
  270. package/dist/runtime-rules/utilities-no-direct-instantiation.d.ts.map +1 -0
  271. package/dist/runtime-rules/utilities-no-direct-instantiation.js +58 -0
  272. package/dist/runtime-rules/utilities-no-direct-instantiation.js.map +1 -0
  273. package/dist/runtime-rules/validate-component-references.d.ts +19 -0
  274. package/dist/runtime-rules/validate-component-references.d.ts.map +1 -0
  275. package/dist/runtime-rules/validate-component-references.js +255 -0
  276. package/dist/runtime-rules/validate-component-references.js.map +1 -0
  277. package/dist/schema-validation/component-prop-rule.d.ts +131 -0
  278. package/dist/schema-validation/component-prop-rule.d.ts.map +1 -0
  279. package/dist/schema-validation/component-prop-rule.js +625 -0
  280. package/dist/schema-validation/component-prop-rule.js.map +1 -0
  281. package/dist/schema-validation/index.d.ts +26 -0
  282. package/dist/schema-validation/index.d.ts.map +1 -0
  283. package/dist/schema-validation/index.js +26 -0
  284. package/dist/schema-validation/index.js.map +1 -0
  285. package/dist/schema-validation/semantic-validators/index.d.ts +23 -0
  286. package/dist/schema-validation/semantic-validators/index.d.ts.map +1 -0
  287. package/dist/schema-validation/semantic-validators/index.js +23 -0
  288. package/dist/schema-validation/semantic-validators/index.js.map +1 -0
  289. package/dist/schema-validation/semantic-validators/required-when-validator.d.ts +43 -0
  290. package/dist/schema-validation/semantic-validators/required-when-validator.d.ts.map +1 -0
  291. package/dist/schema-validation/semantic-validators/required-when-validator.js +94 -0
  292. package/dist/schema-validation/semantic-validators/required-when-validator.js.map +1 -0
  293. package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts +122 -0
  294. package/dist/schema-validation/semantic-validators/semantic-validator-registry.d.ts.map +1 -0
  295. package/dist/schema-validation/semantic-validators/semantic-validator-registry.js +166 -0
  296. package/dist/schema-validation/semantic-validators/semantic-validator-registry.js.map +1 -0
  297. package/dist/schema-validation/semantic-validators/semantic-validator.d.ts +260 -0
  298. package/dist/schema-validation/semantic-validators/semantic-validator.d.ts.map +1 -0
  299. package/dist/schema-validation/semantic-validators/semantic-validator.js +301 -0
  300. package/dist/schema-validation/semantic-validators/semantic-validator.js.map +1 -0
  301. package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts +115 -0
  302. package/dist/schema-validation/semantic-validators/sql-where-clause-validator.d.ts.map +1 -0
  303. package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js +381 -0
  304. package/dist/schema-validation/semantic-validators/sql-where-clause-validator.js.map +1 -0
  305. package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts +60 -0
  306. package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.d.ts.map +1 -0
  307. package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js +195 -0
  308. package/dist/schema-validation/semantic-validators/subset-of-entity-fields-validator.js.map +1 -0
  309. package/dist/schema-validation/semantic-validators/validation-context.d.ts +335 -0
  310. package/dist/schema-validation/semantic-validators/validation-context.d.ts.map +1 -0
  311. package/dist/schema-validation/semantic-validators/validation-context.js +13 -0
  312. package/dist/schema-validation/semantic-validators/validation-context.js.map +1 -0
  313. package/dist/styles-type-analyzer.d.ts +64 -0
  314. package/dist/styles-type-analyzer.d.ts.map +1 -0
  315. package/dist/styles-type-analyzer.js +242 -0
  316. package/dist/styles-type-analyzer.js.map +1 -0
  317. package/dist/type-context.d.ts +184 -0
  318. package/dist/type-context.d.ts.map +1 -0
  319. package/dist/type-context.js +415 -0
  320. package/dist/type-context.js.map +1 -0
  321. package/dist/type-inference-engine.d.ts +181 -0
  322. package/dist/type-inference-engine.d.ts.map +1 -0
  323. package/dist/type-inference-engine.js +1151 -0
  324. package/dist/type-inference-engine.js.map +1 -0
  325. package/dist/type-rules/type-compatibility-rule.d.ts +85 -0
  326. package/dist/type-rules/type-compatibility-rule.d.ts.map +1 -0
  327. package/dist/type-rules/type-compatibility-rule.js +211 -0
  328. package/dist/type-rules/type-compatibility-rule.js.map +1 -0
  329. package/package.json +35 -7
  330. package/README.md +0 -45
@@ -0,0 +1,472 @@
1
+ /**
2
+ * Prop Value Extractor Utility
3
+ *
4
+ * Extracts static values from JSX attribute AST nodes for validation purposes.
5
+ * This utility is foundational for semantic validation - it converts AST nodes
6
+ * into analyzable values that semantic validators can work with.
7
+ *
8
+ * Supported Extractions:
9
+ * - Literal values: strings, numbers, booleans, null
10
+ * - Arrays of literals
11
+ * - Object literals (nested)
12
+ * - Identifies dynamic values (identifiers/expressions) that can't be extracted
13
+ *
14
+ * Usage:
15
+ * ```typescript
16
+ * const value = PropValueExtractor.extract(jsxAttribute);
17
+ * if (value._type === 'identifier') {
18
+ * // Can't validate statically - skip with warning
19
+ * } else {
20
+ * // Can validate - proceed with constraint checking
21
+ * }
22
+ * ```
23
+ */
24
+ import * as t from '@babel/types';
25
+ /**
26
+ * Utility class for extracting static values from JSX attribute AST nodes
27
+ */
28
+ export class PropValueExtractor {
29
+ /**
30
+ * Extract a value from a JSX attribute
31
+ *
32
+ * @param attr - The JSX attribute node
33
+ * @returns The extracted value, or a DynamicValue object if it can't be extracted statically
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Boolean shorthand: <Component show />
38
+ * PropValueExtractor.extract(attr) // => true
39
+ *
40
+ * // String literal: <Component name="test" />
41
+ * PropValueExtractor.extract(attr) // => "test"
42
+ *
43
+ * // Expression: <Component count={42} />
44
+ * PropValueExtractor.extract(attr) // => 42
45
+ *
46
+ * // Array: <Component items={['a', 'b']} />
47
+ * PropValueExtractor.extract(attr) // => ['a', 'b']
48
+ *
49
+ * // Dynamic: <Component name={userName} />
50
+ * PropValueExtractor.extract(attr) // => { _type: 'identifier', name: 'userName' }
51
+ * ```
52
+ */
53
+ static extract(attr) {
54
+ // Boolean shorthand: <Component show />
55
+ if (!attr.value) {
56
+ return true;
57
+ }
58
+ // String literal: <Component name="test" />
59
+ if (t.isStringLiteral(attr.value)) {
60
+ return attr.value.value;
61
+ }
62
+ // Expression container: <Component prop={...} />
63
+ if (t.isJSXExpressionContainer(attr.value)) {
64
+ const expr = attr.value.expression;
65
+ // Handle JSXEmptyExpression (e.g., {/* comment */})
66
+ if (t.isJSXEmptyExpression(expr)) {
67
+ return undefined;
68
+ }
69
+ return this.extractExpression(expr);
70
+ }
71
+ // JSX element or fragment (rare but possible)
72
+ if (t.isJSXElement(attr.value) || t.isJSXFragment(attr.value)) {
73
+ return {
74
+ _type: 'expression',
75
+ description: 'JSX element as prop value',
76
+ };
77
+ }
78
+ return undefined;
79
+ }
80
+ /**
81
+ * Extract a value from an expression node
82
+ *
83
+ * @param expr - The expression node
84
+ * @returns The extracted value
85
+ */
86
+ static extractExpression(expr) {
87
+ // Simple literals
88
+ if (t.isStringLiteral(expr))
89
+ return expr.value;
90
+ if (t.isNumericLiteral(expr))
91
+ return expr.value;
92
+ if (t.isBooleanLiteral(expr))
93
+ return expr.value;
94
+ if (t.isNullLiteral(expr))
95
+ return null;
96
+ // Template literals (can be static)
97
+ if (t.isTemplateLiteral(expr)) {
98
+ return this.extractTemplateLiteral(expr);
99
+ }
100
+ // Arrays
101
+ if (t.isArrayExpression(expr)) {
102
+ return this.extractArray(expr);
103
+ }
104
+ // Objects
105
+ if (t.isObjectExpression(expr)) {
106
+ return this.extractObjectLiteral(expr);
107
+ }
108
+ // Unary expressions (e.g., -5, !true)
109
+ if (t.isUnaryExpression(expr)) {
110
+ return this.extractUnaryExpression(expr);
111
+ }
112
+ // Binary expressions (e.g., 1 + 2, 'hello' + 'world')
113
+ if (t.isBinaryExpression(expr)) {
114
+ return this.extractBinaryExpression(expr);
115
+ }
116
+ // Identifiers - can't extract statically
117
+ if (t.isIdentifier(expr)) {
118
+ return {
119
+ _type: 'identifier',
120
+ name: expr.name,
121
+ };
122
+ }
123
+ // Member expressions (e.g., obj.prop)
124
+ if (t.isMemberExpression(expr)) {
125
+ return {
126
+ _type: 'expression',
127
+ description: 'member expression',
128
+ };
129
+ }
130
+ // Call expressions (e.g., func())
131
+ if (t.isCallExpression(expr)) {
132
+ return {
133
+ _type: 'expression',
134
+ description: 'function call',
135
+ };
136
+ }
137
+ // Arrow functions, function expressions
138
+ if (t.isArrowFunctionExpression(expr) || t.isFunctionExpression(expr)) {
139
+ return {
140
+ _type: 'expression',
141
+ description: 'function',
142
+ };
143
+ }
144
+ // Conditional expressions (ternary)
145
+ if (t.isConditionalExpression(expr)) {
146
+ return this.extractConditionalExpression(expr);
147
+ }
148
+ // All other expression types
149
+ return {
150
+ _type: 'expression',
151
+ description: expr.type,
152
+ };
153
+ }
154
+ /**
155
+ * Extract template literal if it's static
156
+ *
157
+ * @param node - Template literal node
158
+ * @returns Concatenated string if all expressions are literals, otherwise DynamicValue
159
+ */
160
+ static extractTemplateLiteral(node) {
161
+ // Check if all expressions are static literals
162
+ const parts = [];
163
+ for (let i = 0; i < node.quasis.length; i++) {
164
+ parts.push(node.quasis[i].value.cooked || node.quasis[i].value.raw);
165
+ if (i < node.expressions.length) {
166
+ const expr = node.expressions[i];
167
+ // Handle TSType nodes (TypeScript types in template literals)
168
+ if (!t.isExpression(expr) && !t.isJSXEmptyExpression(expr)) {
169
+ return {
170
+ _type: 'expression',
171
+ description: 'template literal with type annotation',
172
+ };
173
+ }
174
+ const value = this.extractExpression(expr);
175
+ // If any expression is dynamic, the whole template is dynamic
176
+ if (this.isDynamicValue(value)) {
177
+ return {
178
+ _type: 'expression',
179
+ description: 'template literal with dynamic expressions',
180
+ };
181
+ }
182
+ // Convert to string
183
+ parts.push(String(value));
184
+ }
185
+ }
186
+ return parts.join('');
187
+ }
188
+ /**
189
+ * Extract array expression
190
+ *
191
+ * @param node - Array expression node
192
+ * @returns Array of extracted values
193
+ */
194
+ static extractArray(node) {
195
+ const result = [];
196
+ for (const element of node.elements) {
197
+ if (!element) {
198
+ // Sparse array: [1, , 3]
199
+ result.push(undefined);
200
+ continue;
201
+ }
202
+ if (t.isSpreadElement(element)) {
203
+ // Spread element: [...items] - can't extract statically
204
+ result.push({
205
+ _type: 'expression',
206
+ description: 'spread element',
207
+ });
208
+ continue;
209
+ }
210
+ result.push(this.extractExpression(element));
211
+ }
212
+ return result;
213
+ }
214
+ /**
215
+ * Extract object literal
216
+ *
217
+ * @param node - Object expression node
218
+ * @returns Object with extracted property values
219
+ */
220
+ static extractObjectLiteral(node) {
221
+ const result = {};
222
+ for (const prop of node.properties) {
223
+ // Spread properties: { ...obj }
224
+ if (t.isSpreadElement(prop)) {
225
+ result['...'] = {
226
+ _type: 'expression',
227
+ description: 'spread property',
228
+ };
229
+ continue;
230
+ }
231
+ // Object method: { foo() {} }
232
+ if (t.isObjectMethod(prop)) {
233
+ const key = this.getPropertyKey(prop.key, prop.computed);
234
+ if (key) {
235
+ result[key] = {
236
+ _type: 'expression',
237
+ description: 'object method',
238
+ };
239
+ }
240
+ continue;
241
+ }
242
+ // Regular property: { foo: 'bar' }
243
+ if (t.isObjectProperty(prop)) {
244
+ const key = this.getPropertyKey(prop.key, prop.computed);
245
+ if (key) {
246
+ result[key] = this.extractExpression(prop.value);
247
+ }
248
+ continue;
249
+ }
250
+ }
251
+ return result;
252
+ }
253
+ /**
254
+ * Get property key as string
255
+ *
256
+ * @param key - Property key node
257
+ * @param computed - Whether the property is computed
258
+ * @returns String key or null if can't be extracted
259
+ */
260
+ static getPropertyKey(key, computed) {
261
+ if (t.isIdentifier(key)) {
262
+ return key.name;
263
+ }
264
+ if (t.isStringLiteral(key)) {
265
+ return key.value;
266
+ }
267
+ if (t.isNumericLiteral(key)) {
268
+ return String(key.value);
269
+ }
270
+ if (computed && t.isExpression(key)) {
271
+ // Computed property: { [expr]: value }
272
+ const value = this.extractExpression(key);
273
+ if (!this.isDynamicValue(value)) {
274
+ return String(value);
275
+ }
276
+ }
277
+ return null;
278
+ }
279
+ /**
280
+ * Extract unary expression if operand is static
281
+ *
282
+ * @param node - Unary expression node
283
+ * @returns Computed value or DynamicValue
284
+ */
285
+ static extractUnaryExpression(node) {
286
+ const operand = this.extractExpression(node.argument);
287
+ if (this.isDynamicValue(operand)) {
288
+ return operand;
289
+ }
290
+ // Apply unary operator
291
+ switch (node.operator) {
292
+ case '-':
293
+ return typeof operand === 'number' ? -operand : operand;
294
+ case '+':
295
+ return typeof operand === 'number' ? +operand : operand;
296
+ case '!':
297
+ return !operand;
298
+ case '~':
299
+ return typeof operand === 'number' ? ~operand : operand;
300
+ case 'typeof':
301
+ return typeof operand;
302
+ case 'void':
303
+ return undefined;
304
+ default:
305
+ return {
306
+ _type: 'expression',
307
+ description: `unary ${node.operator}`,
308
+ };
309
+ }
310
+ }
311
+ /**
312
+ * Extract binary expression if both operands are static
313
+ *
314
+ * @param node - Binary expression node
315
+ * @returns Computed value or DynamicValue
316
+ */
317
+ static extractBinaryExpression(node) {
318
+ // Handle PrivateName in left operand (shouldn't happen in normal code but TypeScript allows it)
319
+ if (t.isPrivateName(node.left)) {
320
+ return {
321
+ _type: 'expression',
322
+ description: 'binary expression with private name',
323
+ };
324
+ }
325
+ const left = this.extractExpression(node.left);
326
+ const right = this.extractExpression(node.right);
327
+ // If either side is dynamic, can't compute
328
+ if (this.isDynamicValue(left) || this.isDynamicValue(right)) {
329
+ return {
330
+ _type: 'expression',
331
+ description: `binary ${node.operator}`,
332
+ };
333
+ }
334
+ // Try to compute the result
335
+ try {
336
+ switch (node.operator) {
337
+ case '+':
338
+ return left + right;
339
+ case '-':
340
+ return left - right;
341
+ case '*':
342
+ return left * right;
343
+ case '/':
344
+ return left / right;
345
+ case '%':
346
+ return left % right;
347
+ case '**':
348
+ return left ** right;
349
+ case '==':
350
+ return left == right;
351
+ case '!=':
352
+ return left != right;
353
+ case '===':
354
+ return left === right;
355
+ case '!==':
356
+ return left !== right;
357
+ case '<':
358
+ return left < right;
359
+ case '<=':
360
+ return left <= right;
361
+ case '>':
362
+ return left > right;
363
+ case '>=':
364
+ return left >= right;
365
+ case '&':
366
+ return left & right;
367
+ case '|':
368
+ return left | right;
369
+ case '^':
370
+ return left ^ right;
371
+ case '<<':
372
+ return left << right;
373
+ case '>>':
374
+ return left >> right;
375
+ case '>>>':
376
+ return left >>> right;
377
+ default:
378
+ return {
379
+ _type: 'expression',
380
+ description: `binary ${node.operator}`,
381
+ };
382
+ }
383
+ }
384
+ catch {
385
+ // Computation failed (e.g., type error)
386
+ return {
387
+ _type: 'expression',
388
+ description: `binary ${node.operator}`,
389
+ };
390
+ }
391
+ }
392
+ /**
393
+ * Extract conditional expression (ternary) if all parts are static
394
+ *
395
+ * @param node - Conditional expression node
396
+ * @returns Value of the taken branch or DynamicValue
397
+ */
398
+ static extractConditionalExpression(node) {
399
+ const test = this.extractExpression(node.test);
400
+ // If test is dynamic, we can't determine which branch is taken
401
+ if (this.isDynamicValue(test)) {
402
+ return {
403
+ _type: 'expression',
404
+ description: 'conditional expression',
405
+ };
406
+ }
407
+ // Evaluate which branch is taken
408
+ const consequent = this.extractExpression(node.consequent);
409
+ const alternate = this.extractExpression(node.alternate);
410
+ return test ? consequent : alternate;
411
+ }
412
+ /**
413
+ * Check if a value is a DynamicValue (can't be validated statically)
414
+ *
415
+ * @param value - The extracted value
416
+ * @returns True if the value is dynamic
417
+ */
418
+ static isDynamicValue(value) {
419
+ return (typeof value === 'object' &&
420
+ value !== null &&
421
+ '_type' in value &&
422
+ (value._type === 'identifier' || value._type === 'expression'));
423
+ }
424
+ /**
425
+ * Check if an array contains any dynamic values
426
+ *
427
+ * @param arr - The array to check
428
+ * @returns True if any element is dynamic
429
+ */
430
+ static hasAnyDynamicValue(arr) {
431
+ return arr.some((val) => {
432
+ if (this.isDynamicValue(val))
433
+ return true;
434
+ if (Array.isArray(val))
435
+ return this.hasAnyDynamicValue(val);
436
+ if (typeof val === 'object' && val !== null && !('_type' in val)) {
437
+ return Object.values(val).some((v) => this.isDynamicValue(v));
438
+ }
439
+ return false;
440
+ });
441
+ }
442
+ /**
443
+ * Get a human-readable description of the value
444
+ *
445
+ * @param value - The extracted value
446
+ * @returns Description string
447
+ */
448
+ static describe(value) {
449
+ if (value === null)
450
+ return 'null';
451
+ if (value === undefined)
452
+ return 'undefined';
453
+ if (this.isDynamicValue(value)) {
454
+ if (value._type === 'identifier' && value.name) {
455
+ return `identifier '${value.name}'`;
456
+ }
457
+ return value.description || 'dynamic expression';
458
+ }
459
+ if (Array.isArray(value)) {
460
+ return `array with ${value.length} element${value.length !== 1 ? 's' : ''}`;
461
+ }
462
+ if (typeof value === 'object') {
463
+ const keys = Object.keys(value);
464
+ return `object with ${keys.length} propert${keys.length !== 1 ? 'ies' : 'y'}: {${keys.slice(0, 3).join(', ')}${keys.length > 3 ? '...' : ''}}`;
465
+ }
466
+ if (typeof value === 'string') {
467
+ return `"${value.length > 50 ? value.substring(0, 50) + '...' : value}"`;
468
+ }
469
+ return String(value);
470
+ }
471
+ }
472
+ //# sourceMappingURL=prop-value-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-value-extractor.js","sourceRoot":"","sources":["../src/prop-value-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as t from '@babel/types';
2
+ import { BaseLintRule } from '../lint-rule.js';
3
+ import { Violation } from '../component-linter.js';
4
+ export declare class AiToolsAvailabilityCheckRule extends BaseLintRule {
5
+ get Name(): string;
6
+ get AppliesTo(): 'all' | 'child' | 'root';
7
+ Test(ast: t.File): Violation[];
8
+ }
9
+ //# sourceMappingURL=ai-tools-availability-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tools-availability-check.d.ts","sourceRoot":"","sources":["../../src/runtime-rules/ai-tools-availability-check.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;AAsLhD,qBACa,4BAA6B,SAAQ,YAAY;IAC5D,IAAI,IAAI,WAA4C;IACpD,IAAI,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAkB;IAE3D,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE;CAmD/B"}