@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 @@
1
+ {"version":3,"file":"control-flow-analyzer.js","sourceRoot":"","sources":["../src/control-flow-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,MAAM,OAAO,mBAAmB;IAK9B,YAAY,GAAW,EAAE,aAA6B;QACpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAY,EAAE,IAAc;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,oCAAoC;QACpC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,gCAAgC;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,8DAA8D;QAC9D,IAAI,WAAW,GAAoB,IAAI,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,WAAW,EAAE,CAAC;YACnB,MAAM,UAAU,GAAoB,WAAW,CAAC,UAAU,CAAC;YAE3D,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;YACnH,CAAC;YAED,IAAI,UAAU,IAAI,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBAElC,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzE,CAAC;gBAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;oBACrF,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;oBACnD,CAAC;oBAED,0DAA0D;oBAC1D,qDAAqD;oBACrD,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpD,IAAI,YAAY,EAAE,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;wBAClE,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,uDAAuD;oBACvD,IAAI,SAAS,GAAoB,IAAI,CAAC;oBACtC,OAAO,SAAS,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;wBAC7C,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BAClD,IAAI,YAAY,EAAE,CAAC;gCACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;4BAC7D,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;oBACnC,CAAC;oBAED,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;qBAAM,IAAI,YAAY,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,WAAW,GAAG,UAAU,CAAC;YACzB,KAAK,EAAE,CAAC;QACV,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,IAAY,EAAE,IAAc;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,mGAAmG;QACnG,+DAA+D;QAC/D,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAClB,CAAC,CAAC,IAAI,CAAC;QAE1B,IAAI,WAAW,GAAoB,IAAI,CAAC,UAAU,CAAC;QAEnD,OAAO,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAE9B,qDAAqD;YACrD,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAEvB,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBAClG,iDAAiD;oBACjD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,oDAAoD;gBACpD,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBAC9G,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1D,+DAA+D;gBAC/D,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC9C,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBAC3D,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBACtE,oCAAoC;oBACpC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC1C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1D,yEAAyE;gBACzE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC3C,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBACnE,oCAAoC;oBACpC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC1C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,qFAAqF;gBACrF,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;oBAC9C,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBAC3D,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;oBACtE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,qEAAqE;gBACrE,+CAA+C;gBAC/C,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC1C,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;wBAC/C,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;wBACvE,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,IAAY,EAAE,IAAc,EAAE,YAAoB;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,IAAI,WAAW,GAAoB,IAAI,CAAC,UAAU,CAAC;QAEnD,OAAO,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAE9B,4DAA4D;YAC5D,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,gCAAgC;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChE,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;oBAClC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,wDAAwD;gBACxD,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpE,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC1E,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;wBACnC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;4BAC3C,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChE,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;oBAClC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC1C,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,+CAA+C;gBAC/C,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACvE,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;wBAChC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;4BAC1C,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,0BAA0B,CAAC,IAAkB,EAAE,OAAe;QACpE,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1D,kBAAkB;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5D,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvE,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;QAClC,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAkB,EAAE,OAAe;QAC3D,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,sBAAsB;QACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBAC/B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO;gBACnC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAE,kBAAkB;YAC9C,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAChC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,IAAkB,EAAE,OAAe;QACzD,oDAAoD;QACpD,uFAAuF;QACvF,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1D,kCAAkC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,4DAA4D;YAC5D,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;gBAClD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpE,0DAA0D;gBAC1D,uEAAuE;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,2CAA2C;YAC3C,uDAAuD;YACvD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;gBAClD,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1C,uDAAuD;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,mDAAmD;YACnD,kDAAkD;YAClD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9C,6CAA6C;QAC7C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEzB,gCAAgC;YAChC,iEAAiE;YACjE,IAAI,WAAW,GAAkB,IAAI,CAAC;YACtC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YAED,sCAAsC;YACtC,MAAM,SAAS,GAAG,CAChB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBACtB,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CACtD,CAAC;YAEF,OAAO,WAAW,KAAK,OAAO,IAAI,SAAS,CAAC;QAC9C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB,CAAC,IAAkB,EAAE,OAAe;QAC/D,4BAA4B;QAC5B,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mFAAmF;QACnF,iDAAiD;QACjD,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,4DAA4D;QAC5D,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1D,wBAAwB;YACxB,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,oFAAoF;YACpF,qCAAqC;YACrC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CAAC,IAAkB,EAAE,OAAe;QAC5D,sBAAsB;QACtB,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAAC,IAAkB,EAAE,OAAe;QAChE,+CAA+C;QAC/C,uDAAuD;QACvD,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,kDAAkD;YAClD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACvD,kDAAkD;gBAClD,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpE,mEAAmE;oBACnE,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACnC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC1C,4DAA4D;oBAC5D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACK,mBAAmB,CAAC,IAAY;QACtC,yBAAyB;QACzB,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACK,yBAAyB,CAAC,IAAqD;QACrF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,GAA2C,IAAI,CAAC;QAE3D,sCAAsC;QACtC,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,wBAAwB;YACxB,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,qBAAqB;YACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,UAAoB,EAAE,MAAgB;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAE3B,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,sDAAsD;YACtD,IAAI,OAAO,GAAoB,UAAU,CAAC;YAC1C,OAAO,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,0CAA0C;YAC1C,IAAI,OAAO,GAAoB,UAAU,CAAC;YAC1C,OAAO,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,UAAoB,EAAE,MAAgB;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAE3B,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,qDAAqD;YACrD,IAAI,OAAO,GAAoB,UAAU,CAAC;YAC1C,OAAO,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,yCAAyC;YACzC,IAAI,OAAO,GAAoB,UAAU,CAAC;YAC1C,OAAO,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,UAAoB,EAAE,WAAqB;QAC/D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;QAErC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,GAAoB,UAAU,CAAC;QAC1C,OAAO,OAAO,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,SAAiB,EAAE,WAAmB,EAAE,IAAc;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7B,qDAAqD;QACrD,8DAA8D;QAC9D,yDAAyD;QACzD,IAAI,WAAW,GAAoB,IAAI,CAAC,UAAU,CAAC;QACnD,OAAO,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEnC,iDAAiD;gBACjD,8DAA8D;gBAC9D,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,IAAI,SAAS,GAAoB,IAAI,CAAC;gBACtC,OAAO,SAAS,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;oBAC9C,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBACnD,YAAY,GAAG,IAAI,CAAC;wBACpB,MAAM;oBACR,CAAC;oBACD,4CAA4C;oBAC5C,IAAI,MAAM,GAAoB,SAAS,CAAC,UAAU,CAAC;oBACnD,OAAO,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;wBACxC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChD,YAAY,GAAG,IAAI,CAAC;4BACpB,MAAM;wBACR,CAAC;wBACD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;oBAC7B,CAAC;oBACD,IAAI,YAAY;wBAAE,MAAM;oBACxB,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;gBACnC,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACjB,4CAA4C;oBAC5C,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACpD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,uBAAuB;oBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC1E,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;wBAChC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,6BAA6B;QAC7B,4CAA4C;QAC5C,iDAAiD;QACjD,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,OAAO,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAClF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEnC,mCAAmC;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC1C,mBAAmB;oBACnB,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACpD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,eAAe;oBACf,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC1E,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;wBAChC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,qCAAqC;QACrC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,OAAO,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAE1E,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;oBAChC,yCAAyC;oBACzC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,iCAAiC;oBACjC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;wBACpC,kCAAkC;wBAClC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,oDAAoD;gBACpD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;oBAClD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtE,oDAAoD;oBACpD,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;wBACrD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,8BAA8B,CAAC,IAAkB,EAAE,SAAiB;QAC1E,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAEvC,4EAA4E;YAC5E,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE/B,+CAA+C;gBAC/C,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBACrB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBAED,kDAAkD;gBAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO,UAAU,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAED,4DAA4D;gBAC5D,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE9B,+CAA+C;gBAC/C,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBACrB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBAED,kDAAkD;gBAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO,UAAU,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAoB,EAAE,SAAS,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,KAAqB,EAAE,SAAS,CAAC,CAAC;YAE5F,4DAA4D;YAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;YAED,4DAA4D;YAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,IAAkC,EAAE,SAAiB;QAC1E,uDAAuD;QACvD,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,2FAA2F;QAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;QAEtE,mDAAmD;QACnD,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2DAA2D;QAC3D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,SAAsB;QAC3C,IAAI,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export { ComponentLinter, LintResult, Violation } from './component-linter.js';
2
+ export { BaseLintRule } from './lint-rule.js';
3
+ export { LibraryLintCache, CompiledLibraryRules, CompiledValidator, } from './library-lint-cache.js';
4
+ export type { LinterOptions } from './linter-options.js';
5
+ import './runtime-rules/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { ComponentLinter } from './component-linter.js';
2
+ export { BaseLintRule } from './lint-rule.js';
3
+ export { LibraryLintCache, } from './library-lint-cache.js';
4
+ // Side-effect import — ensures all built-in @RegisterClass rules are registered
5
+ // when the package is imported. The barrel pulls in component-linter, which
6
+ // already has this side-effect import internally, so this line is defensive.
7
+ import './runtime-rules/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAyB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAE9B,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,OAAO,iBAAiB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Library lint rule cache with compiled validators
3
+ * Ensures we only load and compile library lint rules once
4
+ */
5
+ import { MJComponentLibraryEntity } from '@memberjunction/core-entities';
6
+ import { UserInfo } from '@memberjunction/core';
7
+ import * as t from '@babel/types';
8
+ export interface CompiledValidator {
9
+ description: string;
10
+ severity: 'critical' | 'high' | 'medium' | 'low';
11
+ validateFn: (ast: t.File, path: any, t: typeof import('@babel/types'), context: any) => any;
12
+ }
13
+ export interface CompiledLibraryRules {
14
+ library: MJComponentLibraryEntity;
15
+ initialization?: any;
16
+ lifecycle?: any;
17
+ validators?: Record<string, CompiledValidator>;
18
+ options?: any;
19
+ }
20
+ export declare class LibraryLintCache {
21
+ private static instance;
22
+ private compiledRules;
23
+ private loadingPromise;
24
+ private isLoaded;
25
+ private constructor();
26
+ static getInstance(): LibraryLintCache;
27
+ /**
28
+ * Load and compile all library lint rules
29
+ * Returns existing promise if already loading
30
+ */
31
+ loadLibraryRules(contextUser?: UserInfo): Promise<void>;
32
+ private performLoad;
33
+ /**
34
+ * Get compiled rules for a specific library
35
+ */
36
+ getLibraryRules(libraryName: string): CompiledLibraryRules | undefined;
37
+ /**
38
+ * Get all compiled library rules
39
+ */
40
+ getAllLibraryRules(): CompiledLibraryRules[];
41
+ /**
42
+ * Clear the cache (useful for testing or when libraries are updated)
43
+ */
44
+ clearCache(): void;
45
+ /**
46
+ * Manually add library rules for testing without database access
47
+ */
48
+ addTestLibraryRules(libraryName: string, lintRules: any): void;
49
+ }
50
+ //# sourceMappingURL=library-lint-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-lint-cache.d.ts","sourceRoot":"","sources":["../src/library-lint-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAA2B,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC;CAC7F;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;WAEO,WAAW,IAAI,gBAAgB;IAO7C;;;OAGG;IACU,gBAAgB,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YA4BtD,WAAW;IAmEzB;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAI7E;;OAEG;IACI,kBAAkB,IAAI,oBAAoB,EAAE;IAInD;;OAEG;IACI,UAAU,IAAI,IAAI;IAMzB;;OAEG;IACI,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI;CAkDtE"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Library lint rule cache with compiled validators
3
+ * Ensures we only load and compile library lint rules once
4
+ */
5
+ import { ComponentMetadataEngine } from '@memberjunction/core-entities';
6
+ export class LibraryLintCache {
7
+ constructor() {
8
+ this.compiledRules = new Map();
9
+ this.loadingPromise = null;
10
+ this.isLoaded = false;
11
+ }
12
+ static getInstance() {
13
+ if (!LibraryLintCache.instance) {
14
+ LibraryLintCache.instance = new LibraryLintCache();
15
+ }
16
+ return LibraryLintCache.instance;
17
+ }
18
+ /**
19
+ * Load and compile all library lint rules
20
+ * Returns existing promise if already loading
21
+ */
22
+ async loadLibraryRules(contextUser) {
23
+ // If already loaded, return immediately
24
+ if (this.isLoaded) {
25
+ return Promise.resolve();
26
+ }
27
+ // If we have manually added rules, consider it loaded
28
+ if (this.compiledRules.size > 0) {
29
+ this.isLoaded = true;
30
+ return Promise.resolve();
31
+ }
32
+ // If loading is in progress, return the existing promise
33
+ if (this.loadingPromise) {
34
+ return this.loadingPromise;
35
+ }
36
+ // Start loading
37
+ this.loadingPromise = this.performLoad(contextUser);
38
+ try {
39
+ await this.loadingPromise;
40
+ this.isLoaded = true;
41
+ }
42
+ finally {
43
+ this.loadingPromise = null;
44
+ }
45
+ }
46
+ async performLoad(contextUser) {
47
+ // Initialize ComponentMetadataEngine if needed
48
+ await ComponentMetadataEngine.Instance.Config(false, contextUser);
49
+ // Get all libraries
50
+ const allLibraries = ComponentMetadataEngine.Instance.ComponentLibraries;
51
+ // Process each library
52
+ for (const library of allLibraries) {
53
+ if (library.LintRules) {
54
+ try {
55
+ // Parse the LintRules JSON
56
+ const lintRules = typeof library.LintRules === 'string'
57
+ ? JSON.parse(library.LintRules)
58
+ : library.LintRules;
59
+ // Compile validators if they exist
60
+ const compiledRules = {
61
+ library,
62
+ initialization: lintRules.initialization,
63
+ lifecycle: lintRules.lifecycle,
64
+ options: lintRules.options
65
+ };
66
+ // Compile validator functions
67
+ if (lintRules.validators) {
68
+ compiledRules.validators = {};
69
+ for (const [name, validator] of Object.entries(lintRules.validators)) {
70
+ if (validator && typeof validator === 'object') {
71
+ const validatorDef = validator;
72
+ if (validatorDef.validate) {
73
+ try {
74
+ // The validate property already contains the resolved JavaScript code from the DB
75
+ // The validator returns a violation object, so we need to push it to context.violations
76
+ const validateFn = new Function('ast', 'path', 't', 'context', `const result = (${validatorDef.validate})(ast, path, t, context);
77
+ if (result) {
78
+ // If the validator returned a violation, push it to context
79
+ context.violations.push(result);
80
+ }
81
+ return result;`);
82
+ compiledRules.validators[name] = {
83
+ description: validatorDef.description,
84
+ severity: validatorDef.severity,
85
+ validateFn
86
+ };
87
+ }
88
+ catch (error) {
89
+ console.warn(`Failed to compile validator ${name} for library ${library.Name}:`, error);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ // Cache the compiled rules
96
+ this.compiledRules.set(library.Name || '', compiledRules);
97
+ }
98
+ catch (error) {
99
+ console.warn(`Failed to parse LintRules for library ${library.Name}:`, error);
100
+ }
101
+ }
102
+ }
103
+ }
104
+ /**
105
+ * Get compiled rules for a specific library
106
+ */
107
+ getLibraryRules(libraryName) {
108
+ return this.compiledRules.get(libraryName);
109
+ }
110
+ /**
111
+ * Get all compiled library rules
112
+ */
113
+ getAllLibraryRules() {
114
+ return Array.from(this.compiledRules.values());
115
+ }
116
+ /**
117
+ * Clear the cache (useful for testing or when libraries are updated)
118
+ */
119
+ clearCache() {
120
+ this.compiledRules.clear();
121
+ this.isLoaded = false;
122
+ this.loadingPromise = null;
123
+ }
124
+ /**
125
+ * Manually add library rules for testing without database access
126
+ */
127
+ addTestLibraryRules(libraryName, lintRules) {
128
+ try {
129
+ // Compile validators if they exist
130
+ const compiledRules = {
131
+ library: { Name: libraryName },
132
+ initialization: lintRules.initialization,
133
+ lifecycle: lintRules.lifecycle,
134
+ options: lintRules.options
135
+ };
136
+ // Compile validator functions
137
+ if (lintRules.validators) {
138
+ compiledRules.validators = {};
139
+ for (const [name, validator] of Object.entries(lintRules.validators)) {
140
+ if (validator && typeof validator === 'object') {
141
+ const validatorDef = validator;
142
+ if (validatorDef.validate) {
143
+ try {
144
+ // The validate property already contains the resolved JavaScript code
145
+ // The validator returns a violation object, so we need to push it to context.violations
146
+ const validateFn = new Function('ast', 'path', 't', 'context', `const result = (${validatorDef.validate})(ast, path, t, context);
147
+ if (result) {
148
+ // If the validator returned a violation, push it to context
149
+ context.violations.push(result);
150
+ }
151
+ return result;`);
152
+ compiledRules.validators[name] = {
153
+ description: validatorDef.description,
154
+ severity: validatorDef.severity,
155
+ validateFn
156
+ };
157
+ }
158
+ catch (error) {
159
+ console.warn(`Failed to compile validator ${name} for library ${libraryName}:`, error);
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ // Cache the compiled rules
166
+ this.compiledRules.set(libraryName, compiledRules);
167
+ }
168
+ catch (error) {
169
+ console.warn(`Failed to add test rules for library ${libraryName}:`, error);
170
+ }
171
+ }
172
+ }
173
+ //# sourceMappingURL=library-lint-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-lint-cache.js","sourceRoot":"","sources":["../src/library-lint-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import * as t from '@babel/types';
2
+ import { ComponentSpec } from '@memberjunction/interactive-component-types';
3
+ import type { LinterOptions } from './linter-options.js';
4
+ import { Violation } from './component-linter.js';
5
+ import { TypeContext } from './type-context.js';
6
+ /**
7
+ * Base class for all component linter rules.
8
+ *
9
+ * Rules extend this class and decorate with `@RegisterClass(BaseLintRule, 'rule-name')`
10
+ * to be automatically discovered by the linter via MJGlobal's ClassFactory.
11
+ *
12
+ * External packages (e.g., Skip-Brain) can define custom rules by extending this class
13
+ * and registering them — the linter will discover them at runtime through the manifest system.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { BaseLintRule } from '@memberjunction/react-linter';
18
+ * import { RegisterClass } from '@memberjunction/global';
19
+ *
20
+ * @RegisterClass(BaseLintRule, 'my-custom-rule')
21
+ * export class MyCustomRule extends BaseLintRule {
22
+ * Name = 'my-custom-rule';
23
+ * AppliesTo = 'all' as const;
24
+ *
25
+ * Test(ast, componentName) {
26
+ * const violations = [];
27
+ * // ... your validation logic
28
+ * return violations;
29
+ * }
30
+ * }
31
+ * ```
32
+ */
33
+ export declare abstract class BaseLintRule {
34
+ /**
35
+ * Unique name of the rule (e.g., 'no-import-statements').
36
+ * Must match the key used in @RegisterClass(BaseLintRule, 'rule-name').
37
+ */
38
+ abstract get Name(): string;
39
+ /**
40
+ * Scope where this rule applies:
41
+ * - 'all': Applies to all components (root and child)
42
+ * - 'child': Only applies to child components
43
+ * - 'root': Only applies to root components
44
+ */
45
+ abstract get AppliesTo(): 'all' | 'child' | 'root';
46
+ /**
47
+ * Test function that analyzes the AST and returns violations.
48
+ *
49
+ * @param ast - The parsed Babel AST of the component code
50
+ * @param componentName - Name of the component being linted
51
+ * @param componentSpec - Optional component specification with metadata
52
+ * @param options - Optional execution options for the component
53
+ * @param typeContext - Optional shared type context with inferred variable types,
54
+ * entity/query field metadata, and callback parameter types
55
+ * @returns Array of violations found by this rule
56
+ */
57
+ abstract Test(ast: t.File, componentName: string, componentSpec?: ComponentSpec, options?: LinterOptions, typeContext?: TypeContext): Violation[];
58
+ }
59
+ /**
60
+ * Legacy interface — kept for backward compatibility during migration.
61
+ * New rules should extend BaseLintRule instead.
62
+ * @deprecated Use BaseLintRule class with @RegisterClass decorator
63
+ */
64
+ export interface LintRule {
65
+ name: string;
66
+ appliesTo: 'all' | 'child' | 'root';
67
+ deprecated?: boolean;
68
+ test: (ast: t.File, componentName: string, componentSpec?: ComponentSpec, options?: LinterOptions, typeContext?: TypeContext) => Violation[];
69
+ }
70
+ //# sourceMappingURL=lint-rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-rule.d.ts","sourceRoot":"","sources":["../src/lint-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,YAAY;IAChC;;;OAGG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,CACX,GAAG,EAAE,CAAC,CAAC,IAAI,EACX,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,WAAW,GACxB,SAAS,EAAE;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CACJ,GAAG,EAAE,CAAC,CAAC,IAAI,EACX,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,WAAW,KACtB,SAAS,EAAE,CAAC;CAClB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Base class for all component linter rules.
3
+ *
4
+ * Rules extend this class and decorate with `@RegisterClass(BaseLintRule, 'rule-name')`
5
+ * to be automatically discovered by the linter via MJGlobal's ClassFactory.
6
+ *
7
+ * External packages (e.g., Skip-Brain) can define custom rules by extending this class
8
+ * and registering them — the linter will discover them at runtime through the manifest system.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { BaseLintRule } from '@memberjunction/react-linter';
13
+ * import { RegisterClass } from '@memberjunction/global';
14
+ *
15
+ * @RegisterClass(BaseLintRule, 'my-custom-rule')
16
+ * export class MyCustomRule extends BaseLintRule {
17
+ * Name = 'my-custom-rule';
18
+ * AppliesTo = 'all' as const;
19
+ *
20
+ * Test(ast, componentName) {
21
+ * const violations = [];
22
+ * // ... your validation logic
23
+ * return violations;
24
+ * }
25
+ * }
26
+ * ```
27
+ */
28
+ export class BaseLintRule {
29
+ }
30
+ //# sourceMappingURL=lint-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-rule.js","sourceRoot":"","sources":["../src/lint-rule.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAgB,YAAY;CAiCjC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Shared utility functions and constants for component linter rules.
3
+ *
4
+ * All commonly-used patterns are consolidated here to avoid duplication
5
+ * across rule files. Rules should import from this module rather than
6
+ * reimplementing these helpers.
7
+ */
8
+ import _traverse, { NodePath } from '@babel/traverse';
9
+ import * as t from '@babel/types';
10
+ import { Violation } from './component-linter.js';
11
+ export declare const traverse: typeof _traverse;
12
+ /** Re-export NodePath for convenience so rules don't need a separate @babel/traverse import */
13
+ export type { NodePath };
14
+ /**
15
+ * Creates a violation object with consistent structure.
16
+ */
17
+ export declare function createViolation(rule: string, severity: 'critical' | 'high' | 'medium' | 'low', node: t.Node | null | undefined, message: string, code?: string, suggestion?: {
18
+ text: string;
19
+ example?: string;
20
+ }): Violation;
21
+ /**
22
+ * Truncates code to a maximum length for display in violations.
23
+ */
24
+ export declare function truncateCode(code: string, maxLength?: number): string;
25
+ /**
26
+ * Levenshtein distance between two strings (case-insensitive).
27
+ */
28
+ export declare function levenshteinDistance(a: string, b: string): number;
29
+ /**
30
+ * Find the closest matching string from a list of candidates using Levenshtein distance.
31
+ * Returns null if no match is within the maximum allowed distance.
32
+ */
33
+ export declare function findClosestMatch(target: string, candidates: string[] | Set<string>, maxDistance?: number): string | null;
34
+ /**
35
+ * Find a case-insensitive match that differs only in casing.
36
+ */
37
+ export declare function findCaseMismatch(target: string, candidates: string[] | Set<string>): string | null;
38
+ /** Checks if a node is null or undefined literal */
39
+ export declare function isNullOrUndefined(node: t.Node): boolean;
40
+ /** Checks if a node is likely a string value (literal, template, identifier, call, etc.) */
41
+ export declare function isStringLike(node: t.Node, depth?: number): boolean;
42
+ /** Checks if a node is likely a number value */
43
+ export declare function isNumberLike(node: t.Node): boolean;
44
+ /** Checks if a node is likely an array value */
45
+ export declare function isArrayLike(node: t.Node): boolean;
46
+ /** Checks if a node is likely an object value (not array) */
47
+ export declare function isObjectLike(node: t.Node): boolean;
48
+ /**
49
+ * Extract a string literal value from an ObjectExpression property by key name.
50
+ * Returns null if the property doesn't exist or its value isn't a string literal.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * // For: { QueryName: 'My Query', MaxRows: 100 }
55
+ * getStringProperty(objectExpr, 'QueryName') // → 'My Query'
56
+ * getStringProperty(objectExpr, 'MaxRows') // → null (not a string)
57
+ * ```
58
+ */
59
+ export declare function getStringProperty(objectExpr: t.ObjectExpression, propName: string): string | null;
60
+ /**
61
+ * Get the AST node for a specific property value in an ObjectExpression.
62
+ * Returns the ObjectProperty if found, null otherwise.
63
+ */
64
+ export declare function getObjectProperty(objectExpr: t.ObjectExpression, propName: string): t.ObjectProperty | null;
65
+ /**
66
+ * Get all property names from an ObjectExpression.
67
+ */
68
+ export declare function getPropertyNames(objectExpr: t.ObjectExpression): string[];
69
+ /**
70
+ * Check if a CallExpression callee matches the pattern `utilities.<service>.<method>`.
71
+ * Returns the service and method names if matched, null otherwise.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * // For: utilities.rv.RunView(...)
76
+ * getUtilitiesCallInfo(callee) // → { service: 'rv', method: 'RunView' }
77
+ *
78
+ * // For: utilities.rq.RunQuery(...)
79
+ * getUtilitiesCallInfo(callee) // → { service: 'rq', method: 'RunQuery' }
80
+ *
81
+ * // For: utilities.search?.Search(...)
82
+ * getUtilitiesCallInfo(callee) // → { service: 'search', method: 'Search' }
83
+ * ```
84
+ */
85
+ export declare function getUtilitiesCallInfo(callee: t.Node): {
86
+ service: string;
87
+ method: string;
88
+ } | null;
89
+ /** Check if a CallExpression callee is `utilities.rv.RunView` or `utilities.rv.RunViews` */
90
+ export declare function isRunViewCall(callee: t.Node): boolean;
91
+ /** Check if a CallExpression callee is `utilities.rq.RunQuery` */
92
+ export declare function isRunQueryCall(callee: t.Node): boolean;
93
+ /** Check if a CallExpression callee is `utilities.search.Search` or `PreviewSearch` */
94
+ export declare function isSearchCall(callee: t.Node): boolean;
95
+ /**
96
+ * Parse component code and extract QueryName values from RunQuery calls.
97
+ * Uses full AST analysis to avoid false positives from comments or string literals.
98
+ */
99
+ export declare function extractRunQueryNamesFromCode(code: string): Set<string>;
100
+ /** Standard array iteration method names */
101
+ export declare const ARRAY_METHODS: Set<string>;
102
+ /** Functions that expect array arguments */
103
+ export declare const ARRAY_EXPECTING_FUNCS: Set<string>;
104
+ /** Functions that coerce values to numbers */
105
+ export declare const NUMERIC_COERCION_FUNCTIONS: Set<string>;
106
+ /**
107
+ * Common DOM/React/JS properties that should never be validated as entity fields.
108
+ * Used to prevent false positives when scope resolution picks up a variable name
109
+ * collision (e.g., `e` used as both a .map() callback param and an onChange event param).
110
+ */
111
+ export declare const NON_ENTITY_PROPERTIES: Set<string>;
112
+ /** Extracts the name of a JSX element (handles member expressions like Antd.Button) */
113
+ export declare function getJSXElementName(node: t.JSXOpeningElement): string | null;
114
+ /** Checks if a JSX element has a specific attribute */
115
+ export declare function hasJSXAttribute(element: t.JSXOpeningElement, attributeName: string): boolean;
116
+ /** Gets a JSX attribute by name */
117
+ export declare function getJSXAttribute(element: t.JSXOpeningElement, attributeName: string): t.JSXAttribute | null;
118
+ /** Checks if a function parameter is destructuring props */
119
+ export declare function isPropsDestructuring(param: t.LVal): boolean;
120
+ /** Extracts property names from an object pattern (destructuring) */
121
+ export declare function extractDestructuredProps(pattern: t.ObjectPattern): string[];
122
+ /** Checks if a node is at the top level of the program */
123
+ export declare function isTopLevel(path: {
124
+ getFunctionParent: () => unknown;
125
+ scope: {
126
+ path: {
127
+ type: string;
128
+ };
129
+ };
130
+ }): boolean;
131
+ //# sourceMappingURL=lint-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-utils.d.ts","sourceRoot":"","sources":["../src/lint-utils.ts"],"names":[],"mappings":"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"}