@contentful/experience-design-system-extraction 2.36.2-dev-build-c4497102.0 → 2.36.2-dev-build-a6f80ae6.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 (292) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/extract/{framework-adapters/astro/extractor.d.ts → astro.d.ts} +1 -1
  3. package/dist/src/extract/astro.js +226 -0
  4. package/dist/src/extract/{framework-adapters/shared/helpers/file-processing/file-workers.d.ts → file-extraction-workers.d.ts} +13 -1
  5. package/dist/src/extract/{framework-adapters/shared/helpers/file-processing/file-workers.js → file-extraction-workers.js} +19 -0
  6. package/dist/src/extract/non-authorable-filter.d.ts +17 -0
  7. package/dist/src/extract/non-authorable-filter.js +60 -0
  8. package/dist/src/extract/pipeline.d.ts +7 -0
  9. package/dist/src/extract/pipeline.js +343 -0
  10. package/dist/src/extract/{framework-adapters/react/extractor.d.ts → react.d.ts} +1 -1
  11. package/dist/src/extract/react.js +2069 -0
  12. package/dist/src/extract/scoring.d.ts +12 -0
  13. package/dist/src/extract/{services/quality/helpers/scoring/collect-scoring-inputs.js → scoring.js} +24 -10
  14. package/dist/src/extract/slot-detection.d.ts +35 -0
  15. package/dist/src/extract/slot-detection.js +98 -0
  16. package/dist/src/extract/{services/quality/helpers/inspection/inspect-component-source.d.ts → source-inspection.d.ts} +6 -3
  17. package/dist/src/extract/{services/quality/helpers/inspection/inspect-component-source.js → source-inspection.js} +65 -5
  18. package/dist/src/extract/{framework-adapters/shared/helpers/get-node-source-lines.d.ts → source-line-metadata.d.ts} +1 -1
  19. package/dist/src/extract/{framework-adapters/stencil/extractor.d.ts → stencil.d.ts} +1 -1
  20. package/dist/src/extract/stencil.js +312 -0
  21. package/dist/src/extract/structural-slot-evidence.d.ts +63 -0
  22. package/dist/src/extract/structural-slot-evidence.js +278 -0
  23. package/dist/src/extract/{framework-adapters/svelte/extractor.d.ts → svelte.d.ts} +1 -2
  24. package/dist/src/extract/svelte.js +1309 -0
  25. package/dist/src/extract/tsx-shared.d.ts +37 -0
  26. package/dist/src/extract/tsx-shared.js +368 -0
  27. package/dist/src/extract/{services/quality/helpers/inspection/validate-extracted-components.d.ts → validate.d.ts} +1 -1
  28. package/dist/src/extract/{framework-adapters/vue-tsx/extractor.d.ts → vue-tsx.d.ts} +1 -1
  29. package/dist/src/extract/vue-tsx.js +449 -0
  30. package/dist/src/extract/{framework-adapters/vue/extractor.d.ts → vue.d.ts} +1 -1
  31. package/dist/src/extract/vue.js +605 -0
  32. package/dist/src/extract/{framework-adapters/web-components/extractor.d.ts → web-components.d.ts} +1 -1
  33. package/dist/src/extract/web-components.js +863 -0
  34. package/dist/src/index.d.ts +21 -27
  35. package/dist/src/index.js +17 -21
  36. package/dist/src/{extract/services/classification/classify-component-props.d.ts → pre-classify.d.ts} +5 -3
  37. package/dist/src/{extract/services/classification/classify-component-props.js → pre-classify.js} +100 -8
  38. package/dist/src/{extract/types/component.d.ts → types.d.ts} +22 -0
  39. package/dist/src/{extract/types/display.js → types.js} +1 -1
  40. package/package.json +1 -1
  41. package/dist/src/extract/controller/extract-controller.d.ts +0 -10
  42. package/dist/src/extract/controller/extract-controller.js +0 -33
  43. package/dist/src/extract/controller/helpers/validate-endpoint-request.d.ts +0 -2
  44. package/dist/src/extract/controller/helpers/validate-endpoint-request.js +0 -24
  45. package/dist/src/extract/framework-adapters/astro/extractor.js +0 -45
  46. package/dist/src/extract/framework-adapters/astro/frontmatter.d.ts +0 -11
  47. package/dist/src/extract/framework-adapters/astro/frontmatter.js +0 -96
  48. package/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.d.ts +0 -4
  49. package/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js +0 -47
  50. package/dist/src/extract/framework-adapters/astro/slots.d.ts +0 -7
  51. package/dist/src/extract/framework-adapters/astro/slots.js +0 -44
  52. package/dist/src/extract/framework-adapters/react/extractor.js +0 -31
  53. package/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.d.ts +0 -4
  54. package/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js +0 -73
  55. package/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.d.ts +0 -14
  56. package/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js +0 -220
  57. package/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.d.ts +0 -5
  58. package/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js +0 -32
  59. package/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.d.ts +0 -2
  60. package/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js +0 -59
  61. package/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.d.ts +0 -8
  62. package/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js +0 -29
  63. package/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.d.ts +0 -2
  64. package/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js +0 -64
  65. package/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.d.ts +0 -4
  66. package/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js +0 -64
  67. package/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.d.ts +0 -5
  68. package/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js +0 -170
  69. package/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.d.ts +0 -15
  70. package/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js +0 -231
  71. package/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.d.ts +0 -4
  72. package/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js +0 -50
  73. package/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.d.ts +0 -5
  74. package/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js +0 -23
  75. package/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.d.ts +0 -2
  76. package/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js +0 -25
  77. package/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.d.ts +0 -6
  78. package/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js +0 -48
  79. package/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.d.ts +0 -15
  80. package/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js +0 -106
  81. package/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.d.ts +0 -3
  82. package/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js +0 -64
  83. package/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.d.ts +0 -15
  84. package/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js +0 -318
  85. package/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.d.ts +0 -6
  86. package/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js +0 -44
  87. package/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.d.ts +0 -4
  88. package/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js +0 -52
  89. package/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.d.ts +0 -6
  90. package/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js +0 -69
  91. package/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.d.ts +0 -4
  92. package/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js +0 -131
  93. package/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.d.ts +0 -8
  94. package/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js +0 -22
  95. package/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.d.ts +0 -14
  96. package/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js +0 -86
  97. package/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.d.ts +0 -8
  98. package/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js +0 -44
  99. package/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.d.ts +0 -5
  100. package/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js +0 -10
  101. package/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.d.ts +0 -2
  102. package/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js +0 -13
  103. package/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.d.ts +0 -5
  104. package/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js +0 -13
  105. package/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.d.ts +0 -6
  106. package/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js +0 -6
  107. package/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.d.ts +0 -2
  108. package/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js +0 -62
  109. package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.d.ts +0 -7
  110. package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js +0 -93
  111. package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.d.ts +0 -6
  112. package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js +0 -58
  113. package/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.d.ts +0 -13
  114. package/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js +0 -76
  115. package/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.d.ts +0 -12
  116. package/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js +0 -35
  117. package/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.d.ts +0 -14
  118. package/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js +0 -54
  119. package/dist/src/extract/framework-adapters/stencil/extractor.js +0 -82
  120. package/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.d.ts +0 -7
  121. package/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js +0 -32
  122. package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.d.ts +0 -5
  123. package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js +0 -62
  124. package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.d.ts +0 -6
  125. package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js +0 -87
  126. package/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.d.ts +0 -5
  127. package/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js +0 -39
  128. package/dist/src/extract/framework-adapters/svelte/extractor.js +0 -27
  129. package/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.d.ts +0 -6
  130. package/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js +0 -51
  131. package/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.d.ts +0 -3
  132. package/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js +0 -52
  133. package/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.d.ts +0 -7
  134. package/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js +0 -90
  135. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.d.ts +0 -15
  136. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js +0 -46
  137. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.d.ts +0 -7
  138. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js +0 -64
  139. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.d.ts +0 -4
  140. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js +0 -58
  141. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.d.ts +0 -4
  142. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js +0 -85
  143. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.d.ts +0 -22
  144. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js +0 -55
  145. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.d.ts +0 -7
  146. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js +0 -63
  147. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.d.ts +0 -3
  148. package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js +0 -31
  149. package/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.d.ts +0 -8
  150. package/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js +0 -91
  151. package/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.d.ts +0 -1
  152. package/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js +0 -26
  153. package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.d.ts +0 -3
  154. package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js +0 -91
  155. package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.d.ts +0 -11
  156. package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js +0 -68
  157. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.d.ts +0 -1
  158. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js +0 -90
  159. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.d.ts +0 -2
  160. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js +0 -20
  161. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.d.ts +0 -3
  162. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js +0 -68
  163. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.d.ts +0 -4
  164. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js +0 -68
  165. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.d.ts +0 -6
  166. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js +0 -30
  167. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.d.ts +0 -13
  168. package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js +0 -192
  169. package/dist/src/extract/framework-adapters/svelte/types/svelte-ast-node.d.ts +0 -12
  170. package/dist/src/extract/framework-adapters/svelte/types/svelte-ast-node.js +0 -1
  171. package/dist/src/extract/framework-adapters/vue/extractor.js +0 -61
  172. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.d.ts +0 -3
  173. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js +0 -67
  174. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.d.ts +0 -4
  175. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js +0 -72
  176. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.d.ts +0 -8
  177. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js +0 -64
  178. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.d.ts +0 -2
  179. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js +0 -66
  180. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.d.ts +0 -24
  181. package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js +0 -56
  182. package/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.d.ts +0 -2
  183. package/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js +0 -9
  184. package/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.d.ts +0 -1
  185. package/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js +0 -76
  186. package/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.d.ts +0 -2
  187. package/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js +0 -77
  188. package/dist/src/extract/framework-adapters/vue-tsx/extractor.js +0 -82
  189. package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.d.ts +0 -5
  190. package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js +0 -189
  191. package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.d.ts +0 -4
  192. package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js +0 -91
  193. package/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.d.ts +0 -11
  194. package/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js +0 -95
  195. package/dist/src/extract/framework-adapters/web-components/extractor.js +0 -55
  196. package/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.d.ts +0 -4
  197. package/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js +0 -67
  198. package/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.d.ts +0 -9
  199. package/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js +0 -11
  200. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.d.ts +0 -3
  201. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js +0 -65
  202. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.d.ts +0 -3
  203. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js +0 -60
  204. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.d.ts +0 -4
  205. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js +0 -16
  206. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.d.ts +0 -3
  207. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js +0 -24
  208. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.d.ts +0 -3
  209. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js +0 -27
  210. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.d.ts +0 -6
  211. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js +0 -56
  212. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.d.ts +0 -4
  213. package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js +0 -49
  214. package/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.d.ts +0 -9
  215. package/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js +0 -19
  216. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.d.ts +0 -2
  217. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js +0 -59
  218. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.d.ts +0 -2
  219. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js +0 -54
  220. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.d.ts +0 -7
  221. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js +0 -47
  222. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.d.ts +0 -4
  223. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js +0 -93
  224. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.d.ts +0 -4
  225. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js +0 -79
  226. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.d.ts +0 -7
  227. package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js +0 -62
  228. package/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.d.ts +0 -5
  229. package/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js +0 -63
  230. package/dist/src/extract/helpers/evidence/ast/detect-react-node-types.d.ts +0 -2
  231. package/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js +0 -24
  232. package/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.d.ts +0 -14
  233. package/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js +0 -85
  234. package/dist/src/extract/helpers/evidence/collect-jsx-component-references.d.ts +0 -5
  235. package/dist/src/extract/helpers/evidence/collect-jsx-component-references.js +0 -52
  236. package/dist/src/extract/helpers/evidence/detect-slot-from-prop.d.ts +0 -16
  237. package/dist/src/extract/helpers/evidence/detect-slot-from-prop.js +0 -39
  238. package/dist/src/extract/orchestrator/execute-extraction-orchestrator.d.ts +0 -13
  239. package/dist/src/extract/orchestrator/execute-extraction-orchestrator.js +0 -17
  240. package/dist/src/extract/services/classification/helpers/check-prop-types.d.ts +0 -7
  241. package/dist/src/extract/services/classification/helpers/check-prop-types.js +0 -22
  242. package/dist/src/extract/services/classification/helpers/detect-dom-props.d.ts +0 -2
  243. package/dist/src/extract/services/classification/helpers/detect-dom-props.js +0 -63
  244. package/dist/src/extract/services/deduplication/deduplicate-components.d.ts +0 -2
  245. package/dist/src/extract/services/deduplication/deduplicate-components.js +0 -58
  246. package/dist/src/extract/services/deduplication/helpers/component-path-analysis.d.ts +0 -10
  247. package/dist/src/extract/services/deduplication/helpers/component-path-analysis.js +0 -85
  248. package/dist/src/extract/services/deduplication/helpers/component-path-scoring.d.ts +0 -10
  249. package/dist/src/extract/services/deduplication/helpers/component-path-scoring.js +0 -73
  250. package/dist/src/extract/services/extraction/extract-components.d.ts +0 -3
  251. package/dist/src/extract/services/extraction/extract-components.js +0 -19
  252. package/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.d.ts +0 -2
  253. package/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js +0 -18
  254. package/dist/src/extract/services/extraction/helpers/filter-hook-components.d.ts +0 -6
  255. package/dist/src/extract/services/extraction/helpers/filter-hook-components.js +0 -18
  256. package/dist/src/extract/services/extraction/helpers/register-extractors.d.ts +0 -8
  257. package/dist/src/extract/services/extraction/helpers/register-extractors.js +0 -71
  258. package/dist/src/extract/services/extraction/helpers/run-extractor-batches.d.ts +0 -4
  259. package/dist/src/extract/services/extraction/helpers/run-extractor-batches.js +0 -24
  260. package/dist/src/extract/services/quality/evaluate-extraction-quality.d.ts +0 -4
  261. package/dist/src/extract/services/quality/evaluate-extraction-quality.js +0 -61
  262. package/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.d.ts +0 -28
  263. package/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js +0 -67
  264. package/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.d.ts +0 -16
  265. package/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js +0 -63
  266. package/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.d.ts +0 -14
  267. package/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.d.ts +0 -6
  268. package/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js +0 -12
  269. package/dist/src/extract/types/classification.d.ts +0 -4
  270. package/dist/src/extract/types/classification.js +0 -1
  271. package/dist/src/extract/types/component-extractor.d.ts +0 -7
  272. package/dist/src/extract/types/component-extractor.js +0 -1
  273. package/dist/src/extract/types/component.js +0 -1
  274. package/dist/src/extract/types/contract.d.ts +0 -16
  275. package/dist/src/extract/types/contract.js +0 -1
  276. package/dist/src/extract/types/display.d.ts +0 -3
  277. package/dist/src/extract/types/options.d.ts +0 -15
  278. package/dist/src/extract/types/options.js +0 -1
  279. package/dist/src/extract/types/scoring.d.ts +0 -9
  280. package/dist/src/extract/types/scoring.js +0 -1
  281. package/dist/src/extract/types/source-inspection.d.ts +0 -5
  282. package/dist/src/extract/types/source-inspection.js +0 -1
  283. /package/dist/src/extract/{helpers/evidence/parse-source-imports.d.ts → parse-imported-names.d.ts} +0 -0
  284. /package/dist/src/extract/{helpers/evidence/parse-source-imports.js → parse-imported-names.js} +0 -0
  285. /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-import-file-path.d.ts → resolve-local-module.d.ts} +0 -0
  286. /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-import-file-path.js → resolve-local-module.js} +0 -0
  287. /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-type-symbol.d.ts → resolve-type-property.d.ts} +0 -0
  288. /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-type-symbol.js → resolve-type-property.js} +0 -0
  289. /package/dist/src/extract/{helpers/evidence/collect-allowed-component-names.d.ts → slot-allowed-components.d.ts} +0 -0
  290. /package/dist/src/extract/{helpers/evidence/collect-allowed-component-names.js → slot-allowed-components.js} +0 -0
  291. /package/dist/src/extract/{framework-adapters/shared/helpers/get-node-source-lines.js → source-line-metadata.js} +0 -0
  292. /package/dist/src/extract/{services/quality/helpers/inspection/validate-extracted-components.js → validate.js} +0 -0
@@ -1,170 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { getTypeReferenceName, getTypeTargetDeclarations } from '../../shared/helpers/tsx-shared.js';
3
- import { getTypeReferenceTargetNode, getTypeReferenceArguments } from '../../shared/helpers/tsx-node-utils.js';
4
- export const TRANSPARENT_POLYMORPHIC_TYPE_NAMES = new Set(['PolymorphicProps', 'PropsWithAs', 'PropsWithHTMLElement']);
5
- export function isRepoLocalTransparentPolymorphicWrapperDeclaration(declaration, typeName) {
6
- if (!Node.isTypeAliasDeclaration(declaration))
7
- return false;
8
- if (declaration.getSourceFile().getFilePath().includes('/node_modules/'))
9
- return false;
10
- if (!TRANSPARENT_POLYMORPHIC_TYPE_NAMES.has(typeName))
11
- return false;
12
- const typeParameters = declaration.getTypeParameters();
13
- const typeNode = declaration.getTypeNode();
14
- if (!typeNode)
15
- return false;
16
- if (typeName === 'PropsWithAs') {
17
- if (typeParameters.length !== 2 || !Node.isIntersectionTypeNode(typeNode))
18
- return false;
19
- const [propsTypeNode, wrapperTypeNode] = typeNode.getTypeNodes();
20
- if (!propsTypeNode || !wrapperTypeNode)
21
- return false;
22
- if (propsTypeNode.getText() !== typeParameters[0].getName())
23
- return false;
24
- if (!Node.isTypeLiteral(wrapperTypeNode))
25
- return false;
26
- if (wrapperTypeNode.getMembers().length !== 1)
27
- return false;
28
- const asProperty = wrapperTypeNode.getProperty('as');
29
- if (!asProperty || !asProperty.hasQuestionToken())
30
- return false;
31
- return asProperty.getTypeNode()?.getText() === typeParameters[1].getName();
32
- }
33
- if (typeName === 'PropsWithHTMLElement') {
34
- if (typeParameters.length !== 3)
35
- return false;
36
- if (!Node.isTypeReference(typeNode) && !Node.isExpressionWithTypeArguments(typeNode))
37
- return false;
38
- if (getTypeReferenceName(typeNode) !== 'Overwrite')
39
- return false;
40
- const [omittedDomPropsTypeNode, propsTypeNode] = typeNode.getTypeArguments();
41
- if (!omittedDomPropsTypeNode || !propsTypeNode)
42
- return false;
43
- if (!Node.isTypeReference(omittedDomPropsTypeNode) &&
44
- !Node.isExpressionWithTypeArguments(omittedDomPropsTypeNode)) {
45
- return false;
46
- }
47
- if (getTypeReferenceName(omittedDomPropsTypeNode) !== 'Omit')
48
- return false;
49
- const [componentPropsTypeNode, omittedAdditionalPropsTypeNode] = omittedDomPropsTypeNode.getTypeArguments();
50
- if (!componentPropsTypeNode || !omittedAdditionalPropsTypeNode)
51
- return false;
52
- if (getTypeReferenceName(componentPropsTypeNode) !== 'ComponentPropsWithoutRef')
53
- return false;
54
- if (!Node.isTypeReference(componentPropsTypeNode) && !Node.isExpressionWithTypeArguments(componentPropsTypeNode)) {
55
- return false;
56
- }
57
- if (componentPropsTypeNode.getTypeArguments()[0]?.getText() !== typeParameters[1].getName())
58
- return false;
59
- if (omittedAdditionalPropsTypeNode.getText() !== typeParameters[2].getName())
60
- return false;
61
- return propsTypeNode.getText() === typeParameters[0].getName();
62
- }
63
- if (typeName === 'PolymorphicProps') {
64
- if (typeParameters.length !== 3)
65
- return false;
66
- if (!Node.isTypeReference(typeNode) && !Node.isExpressionWithTypeArguments(typeNode))
67
- return false;
68
- if (getTypeReferenceName(typeNode) !== 'PropsWithAs')
69
- return false;
70
- const [propsTypeNode, elementTypeNode] = typeNode.getTypeArguments();
71
- if (!propsTypeNode || !elementTypeNode)
72
- return false;
73
- if (!Node.isTypeReference(propsTypeNode) && !Node.isExpressionWithTypeArguments(propsTypeNode))
74
- return false;
75
- if (getTypeReferenceName(propsTypeNode) !== 'PropsWithHTMLElement')
76
- return false;
77
- const propsTypeArgs = propsTypeNode.getTypeArguments();
78
- const propsWithAsTargetNode = Node.isTypeReference(typeNode) ? typeNode.getTypeName() : typeNode.getExpression();
79
- const propsWithHTMLElementTargetNode = Node.isTypeReference(propsTypeNode)
80
- ? propsTypeNode.getTypeName()
81
- : propsTypeNode.getExpression();
82
- const hasExactPropsWithAsDeclaration = getTypeTargetDeclarations(propsWithAsTargetNode, true).some((declaration) => isRepoLocalTransparentPolymorphicWrapperDeclaration(declaration, 'PropsWithAs'));
83
- const hasExactPropsWithHTMLElementDeclaration = getTypeTargetDeclarations(propsWithHTMLElementTargetNode, true).some((declaration) => isRepoLocalTransparentPolymorphicWrapperDeclaration(declaration, 'PropsWithHTMLElement'));
84
- return (hasExactPropsWithAsDeclaration &&
85
- hasExactPropsWithHTMLElementDeclaration &&
86
- propsTypeArgs[0]?.getText() === typeParameters[0].getName() &&
87
- propsTypeArgs[1]?.getText() === typeParameters[1].getName() &&
88
- propsTypeArgs[2]?.getText() === typeParameters[2].getName() &&
89
- elementTypeNode.getText() === typeParameters[1].getName());
90
- }
91
- return false;
92
- }
93
- export function unwrapRepoLocalTransparentPolymorphicWrapper(typeNode, allowWorkspaceImportFallback) {
94
- if (!Node.isTypeReference(typeNode) && !Node.isExpressionWithTypeArguments(typeNode))
95
- return undefined;
96
- const typeName = getTypeReferenceName(typeNode);
97
- if (!typeName || !TRANSPARENT_POLYMORPHIC_TYPE_NAMES.has(typeName))
98
- return undefined;
99
- const firstTypeArg = typeNode.getTypeArguments()[0];
100
- if (!firstTypeArg)
101
- return undefined;
102
- const targetNode = Node.isTypeReference(typeNode) ? typeNode.getTypeName() : typeNode.getExpression();
103
- const declarations = getTypeTargetDeclarations(targetNode, allowWorkspaceImportFallback);
104
- if (!declarations.some((declaration) => isRepoLocalTransparentPolymorphicWrapperDeclaration(declaration, typeName))) {
105
- return undefined;
106
- }
107
- return firstTypeArg;
108
- }
109
- export function isRepoLocalSupportedPolymorphicChain(typeNode, seen = new Set(), allowWorkspaceImportFallback = false) {
110
- if (seen.has(typeNode))
111
- return false;
112
- seen.add(typeNode);
113
- if (Node.isParenthesizedTypeNode(typeNode) || Node.isTypeOperatorTypeNode(typeNode)) {
114
- return isRepoLocalSupportedPolymorphicChain(typeNode.getTypeNode(), seen, allowWorkspaceImportFallback);
115
- }
116
- if (Node.isIntersectionTypeNode(typeNode) || Node.isUnionTypeNode(typeNode)) {
117
- const childTypes = typeNode.getTypeNodes();
118
- return (childTypes.length > 0 &&
119
- childTypes.every((child) => isRepoLocalSupportedPolymorphicChain(child, seen, allowWorkspaceImportFallback)));
120
- }
121
- if (Node.isTypeLiteral(typeNode) || Node.isInterfaceDeclaration(typeNode))
122
- return true;
123
- if (Node.isTypeReference(typeNode) || Node.isExpressionWithTypeArguments(typeNode)) {
124
- const typeName = getTypeReferenceName(typeNode);
125
- if (!typeName)
126
- return false;
127
- if (typeName === 'Omit' ||
128
- typeName === 'Partial' ||
129
- typeName === 'Readonly' ||
130
- typeName === 'Required' ||
131
- typeName === 'NonNullable' ||
132
- typeName === 'MappedOmit') {
133
- const wrappedType = getTypeReferenceArguments(typeNode)[0];
134
- return wrappedType
135
- ? isRepoLocalSupportedPolymorphicChain(wrappedType, seen, allowWorkspaceImportFallback)
136
- : false;
137
- }
138
- if (!TRANSPARENT_POLYMORPHIC_TYPE_NAMES.has(typeName)) {
139
- const targetNode = getTypeReferenceTargetNode(typeNode);
140
- if (!targetNode)
141
- return false;
142
- for (const declaration of getTypeTargetDeclarations(targetNode, allowWorkspaceImportFallback)) {
143
- if (!declaration)
144
- continue;
145
- if (Node.isInterfaceDeclaration(declaration)) {
146
- if (declaration
147
- .getHeritageClauses()
148
- .some((clause) => clause
149
- .getTypeNodes()
150
- .every((heritageTypeNode) => isRepoLocalSupportedPolymorphicChain(heritageTypeNode, seen, allowWorkspaceImportFallback)))) {
151
- return true;
152
- }
153
- }
154
- if (Node.isTypeAliasDeclaration(declaration)) {
155
- const aliasedTypeNode = declaration.getTypeNode();
156
- if (aliasedTypeNode &&
157
- isRepoLocalSupportedPolymorphicChain(aliasedTypeNode, seen, allowWorkspaceImportFallback)) {
158
- return true;
159
- }
160
- }
161
- }
162
- return false;
163
- }
164
- const wrappedTypeNode = unwrapRepoLocalTransparentPolymorphicWrapper(typeNode, allowWorkspaceImportFallback);
165
- return wrappedTypeNode
166
- ? isRepoLocalSupportedPolymorphicChain(wrappedTypeNode, seen, allowWorkspaceImportFallback)
167
- : false;
168
- }
169
- return false;
170
- }
@@ -1,15 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import type { RawPropDefinition } from '../../../types/component.js';
3
- export declare const EXPANDABLE_DOM_ATTRIBUTE_TYPE_NAMES: Set<string>;
4
- export type ExpandableDomAttributeWrapperName = (typeof EXPANDABLE_DOM_ATTRIBUTE_TYPE_NAMES extends Set<infer T> ? T : never) & string;
5
- export type ExpandableDomAttributeWrapperContext = {
6
- name: ExpandableDomAttributeWrapperName;
7
- excludedProps: Set<string>;
8
- };
9
- export declare const DOM_ATTRIBUTE_PROP_SURFACES: Record<ExpandableDomAttributeWrapperName, RawPropDefinition[]>;
10
- export declare const DOM_ATTRIBUTE_WRAPPER_PARENTS: Partial<Record<ExpandableDomAttributeWrapperName, ExpandableDomAttributeWrapperName[]>>;
11
- export declare const DOM_ATTRIBUTE_WRAPPERS_WITH_SYNTHETIC_CHILDREN: Set<string>;
12
- export declare const JSX_PRIMITIVE_DOM_ATTRIBUTE_SURFACES: Partial<Record<string, ExpandableDomAttributeWrapperName>>;
13
- export declare function isExpandableDomAttributeWrapperName(typeName: string): typeName is ExpandableDomAttributeWrapperName;
14
- export declare function getDomAttributeSurface(name: ExpandableDomAttributeWrapperName, seen?: Set<string>): RawPropDefinition[];
15
- export declare function getBoundedImportedJsxDomSurface(tagNameNode: Node): ExpandableDomAttributeWrapperName | undefined;
@@ -1,231 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export const EXPANDABLE_DOM_ATTRIBUTE_TYPE_NAMES = new Set([
3
- 'HTMLProps',
4
- 'HTMLAttributes',
5
- 'ImgHTMLAttributes',
6
- 'LiHTMLAttributes',
7
- 'AnchorHTMLAttributes',
8
- 'ButtonHTMLAttributes',
9
- 'InputHTMLAttributes',
10
- 'FieldsetHTMLAttributes',
11
- 'LabelHTMLAttributes',
12
- 'SelectHTMLAttributes',
13
- 'SVGAttributes',
14
- 'SVGProps',
15
- 'TextareaHTMLAttributes',
16
- 'TdHTMLAttributes',
17
- ]);
18
- function createTextControlSurface(onChangeType, specificProps) {
19
- return [
20
- { name: 'autoComplete', type: 'string', required: false },
21
- ...specificProps,
22
- { name: 'disabled', type: 'boolean', required: false },
23
- { name: 'name', type: 'string', required: false },
24
- { name: 'onChange', type: onChangeType, required: false },
25
- { name: 'placeholder', type: 'string', required: false },
26
- { name: 'readOnly', type: 'boolean', required: false },
27
- { name: 'required', type: 'boolean', required: false },
28
- {
29
- name: 'value',
30
- type: 'string | number | readonly string[]',
31
- required: false,
32
- },
33
- ];
34
- }
35
- export const DOM_ATTRIBUTE_PROP_SURFACES = {
36
- HTMLProps: [],
37
- HTMLAttributes: [
38
- { name: 'className', type: 'string', required: false },
39
- { name: 'hidden', type: 'boolean', required: false },
40
- { name: 'id', type: 'string', required: false },
41
- {
42
- name: 'onClick',
43
- type: 'MouseEventHandler<HTMLElement>',
44
- required: false,
45
- },
46
- { name: 'style', type: 'CSSProperties', required: false },
47
- { name: 'tabIndex', type: 'number', required: false },
48
- { name: 'title', type: 'string', required: false },
49
- ],
50
- ImgHTMLAttributes: [
51
- { name: 'alt', type: 'string', required: false },
52
- { name: 'crossOrigin', type: 'string', required: false },
53
- { name: 'height', type: 'number | string', required: false },
54
- {
55
- name: 'loading',
56
- type: 'string',
57
- required: false,
58
- allowedValues: ['eager', 'lazy'],
59
- },
60
- { name: 'sizes', type: 'string', required: false },
61
- { name: 'src', type: 'string', required: false },
62
- { name: 'srcSet', type: 'string', required: false },
63
- { name: 'width', type: 'number | string', required: false },
64
- ],
65
- LiHTMLAttributes: [],
66
- AnchorHTMLAttributes: [
67
- { name: 'download', type: 'boolean | string', required: false },
68
- { name: 'href', type: 'string', required: false },
69
- { name: 'hrefLang', type: 'string', required: false },
70
- { name: 'referrerPolicy', type: 'string', required: false },
71
- { name: 'rel', type: 'string', required: false },
72
- {
73
- name: 'target',
74
- type: 'string',
75
- required: false,
76
- allowedValues: ['_blank', '_parent', '_self', '_top'],
77
- },
78
- ],
79
- ButtonHTMLAttributes: [
80
- { name: 'autoFocus', type: 'boolean', required: false },
81
- { name: 'disabled', type: 'boolean', required: false },
82
- { name: 'form', type: 'string', required: false },
83
- { name: 'formAction', type: 'string', required: false },
84
- { name: 'formMethod', type: 'string', required: false },
85
- { name: 'formNoValidate', type: 'boolean', required: false },
86
- { name: 'formTarget', type: 'string', required: false },
87
- { name: 'name', type: 'string', required: false },
88
- {
89
- name: 'type',
90
- type: 'string',
91
- required: false,
92
- allowedValues: ['button', 'reset', 'submit'],
93
- },
94
- {
95
- name: 'value',
96
- type: 'string | number | readonly string[]',
97
- required: false,
98
- },
99
- ],
100
- InputHTMLAttributes: createTextControlSurface('ChangeEventHandler<HTMLInputElement>', [
101
- { name: 'checked', type: 'boolean', required: false },
102
- { name: 'max', type: 'number | string', required: false },
103
- { name: 'maxLength', type: 'number', required: false },
104
- { name: 'min', type: 'number | string', required: false },
105
- { name: 'minLength', type: 'number', required: false },
106
- { name: 'type', type: 'string', required: false },
107
- ]),
108
- FieldsetHTMLAttributes: [
109
- { name: 'disabled', type: 'boolean', required: false },
110
- { name: 'form', type: 'string', required: false },
111
- { name: 'name', type: 'string', required: false },
112
- ],
113
- LabelHTMLAttributes: [
114
- { name: 'form', type: 'string', required: false },
115
- { name: 'htmlFor', type: 'string', required: false },
116
- ],
117
- SelectHTMLAttributes: [
118
- { name: 'autoComplete', type: 'string', required: false },
119
- { name: 'disabled', type: 'boolean', required: false },
120
- { name: 'form', type: 'string', required: false },
121
- { name: 'multiple', type: 'boolean', required: false },
122
- { name: 'name', type: 'string', required: false },
123
- {
124
- name: 'onChange',
125
- type: 'ChangeEventHandler<HTMLSelectElement>',
126
- required: false,
127
- },
128
- { name: 'required', type: 'boolean', required: false },
129
- { name: 'size', type: 'number', required: false },
130
- {
131
- name: 'value',
132
- type: 'string | number | readonly string[]',
133
- required: false,
134
- },
135
- ],
136
- SVGAttributes: [
137
- {
138
- name: 'focusable',
139
- type: 'boolean | "auto"',
140
- required: false,
141
- allowedValues: ['auto'],
142
- },
143
- { name: 'height', type: 'number | string', required: false },
144
- { name: 'viewBox', type: 'string', required: false },
145
- { name: 'width', type: 'number | string', required: false },
146
- ],
147
- SVGProps: [],
148
- TextareaHTMLAttributes: createTextControlSurface('ChangeEventHandler<HTMLTextAreaElement>', [
149
- { name: 'cols', type: 'number', required: false },
150
- { name: 'rows', type: 'number', required: false },
151
- { name: 'wrap', type: 'string', required: false },
152
- ]),
153
- TdHTMLAttributes: [
154
- {
155
- name: 'align',
156
- type: 'string',
157
- required: false,
158
- allowedValues: ['center', 'char', 'justify', 'left', 'right'],
159
- },
160
- { name: 'colSpan', type: 'number', required: false },
161
- { name: 'headers', type: 'string', required: false },
162
- { name: 'rowSpan', type: 'number', required: false },
163
- { name: 'scope', type: 'string', required: false },
164
- ],
165
- };
166
- export const DOM_ATTRIBUTE_WRAPPER_PARENTS = {
167
- HTMLProps: ['HTMLAttributes'],
168
- AnchorHTMLAttributes: ['HTMLAttributes'],
169
- ButtonHTMLAttributes: ['HTMLAttributes'],
170
- ImgHTMLAttributes: ['HTMLAttributes'],
171
- InputHTMLAttributes: ['HTMLAttributes'],
172
- FieldsetHTMLAttributes: ['HTMLAttributes'],
173
- LabelHTMLAttributes: ['HTMLAttributes'],
174
- LiHTMLAttributes: ['HTMLAttributes'],
175
- SelectHTMLAttributes: ['HTMLAttributes'],
176
- SVGAttributes: ['HTMLAttributes'],
177
- SVGProps: ['SVGAttributes'],
178
- TdHTMLAttributes: ['HTMLAttributes'],
179
- TextareaHTMLAttributes: ['HTMLAttributes'],
180
- };
181
- export const DOM_ATTRIBUTE_WRAPPERS_WITH_SYNTHETIC_CHILDREN = new Set([
182
- 'LabelHTMLAttributes',
183
- ]);
184
- export const JSX_PRIMITIVE_DOM_ATTRIBUTE_SURFACES = {
185
- 'Primitive.button': 'ButtonHTMLAttributes',
186
- 'Primitive.input': 'InputHTMLAttributes',
187
- 'Primitive.label': 'LabelHTMLAttributes',
188
- };
189
- export function isExpandableDomAttributeWrapperName(typeName) {
190
- return EXPANDABLE_DOM_ATTRIBUTE_TYPE_NAMES.has(typeName);
191
- }
192
- export function getDomAttributeSurface(name, seen = new Set()) {
193
- if (seen.has(name))
194
- return [];
195
- seen.add(name);
196
- const propsByName = new Map();
197
- for (const parentName of DOM_ATTRIBUTE_WRAPPER_PARENTS[name] ?? []) {
198
- for (const prop of getDomAttributeSurface(parentName, seen)) {
199
- propsByName.set(prop.name, prop);
200
- }
201
- }
202
- for (const prop of DOM_ATTRIBUTE_PROP_SURFACES[name]) {
203
- propsByName.set(prop.name, prop);
204
- }
205
- return [...propsByName.values()].map((prop) => ({
206
- ...prop,
207
- domAttribute: true,
208
- }));
209
- }
210
- export function getBoundedImportedJsxDomSurface(tagNameNode) {
211
- if (!Node.isIdentifier(tagNameNode))
212
- return undefined;
213
- const localName = tagNameNode.getText();
214
- if (!/label/i.test(localName))
215
- return undefined;
216
- const declarations = tagNameNode.getSymbol()?.getDeclarations() ?? [];
217
- for (const declaration of declarations) {
218
- if (!Node.isImportSpecifier(declaration))
219
- continue;
220
- const importDeclaration = declaration.getImportDeclaration();
221
- const moduleSpecifier = importDeclaration.getModuleSpecifierValue();
222
- const importedName = declaration.getNameNode().getText();
223
- const aliasName = declaration.getAliasNode()?.getText();
224
- if (/label/i.test(moduleSpecifier) ||
225
- /label/i.test(importedName) ||
226
- (aliasName !== undefined && /label/i.test(aliasName))) {
227
- return 'LabelHTMLAttributes';
228
- }
229
- }
230
- return undefined;
231
- }
@@ -1,4 +0,0 @@
1
- import { type ParameterDeclaration } from 'ts-morph';
2
- import type { RawPropDefinition } from '../../../types/component.js';
3
- import type { FunctionLike } from './resolve-component-function.js';
4
- export declare function extractDestructuredBindingFallbackProps(func: FunctionLike, param: ParameterDeclaration, existingPropNames: Set<string>, slotNames: Set<string>): RawPropDefinition[];
@@ -1,50 +0,0 @@
1
- import { Node, SyntaxKind } from 'ts-morph';
2
- import { getSourceLineMetadata } from '../../shared/helpers/get-node-source-lines.js';
3
- export function extractDestructuredBindingFallbackProps(func, param, existingPropNames, slotNames) {
4
- const nameNode = param.getNameNode();
5
- const bindingPatterns = [];
6
- if (Node.isObjectBindingPattern(nameNode)) {
7
- bindingPatterns.push(nameNode);
8
- }
9
- else if (Node.isIdentifier(nameNode)) {
10
- const body = func.getBody();
11
- const paramName = nameNode.getText();
12
- if (body) {
13
- for (const declaration of body.getDescendantsOfKind(SyntaxKind.VariableDeclaration)) {
14
- const declarationName = declaration.getNameNode();
15
- const initializer = declaration.getInitializer();
16
- if (!Node.isObjectBindingPattern(declarationName))
17
- continue;
18
- if (!initializer || !Node.isIdentifier(initializer) || initializer.getText() !== paramName)
19
- continue;
20
- bindingPatterns.push(declarationName);
21
- }
22
- }
23
- }
24
- else {
25
- return [];
26
- }
27
- const propsByName = new Map();
28
- const paramType = param.getType();
29
- for (const bindingPattern of bindingPatterns) {
30
- for (const element of bindingPattern.getElements()) {
31
- if (element.getDotDotDotToken())
32
- continue;
33
- const propName = element.getPropertyNameNode()?.getText() ?? element.getNameNode().getText();
34
- if (propName === 'children' || existingPropNames.has(propName) || slotNames.has(propName))
35
- continue;
36
- if (propsByName.has(propName))
37
- continue;
38
- const property = paramType.getProperty(propName);
39
- const declaration = property?.getValueDeclaration() ?? property?.getDeclarations()[0];
40
- const propertyType = property && declaration ? property.getTypeAtLocation(declaration).getText(declaration) : 'any';
41
- propsByName.set(propName, {
42
- name: propName,
43
- type: propertyType === 'unknown' ? 'any' : propertyType,
44
- required: property ? !property.isOptional() : false,
45
- ...getSourceLineMetadata(declaration),
46
- });
47
- }
48
- }
49
- return [...propsByName.values()].sort((a, b) => a.name.localeCompare(b.name));
50
- }
@@ -1,5 +0,0 @@
1
- import { type SourceFile } from 'ts-morph';
2
- import type { ExtractionExclusion } from '../../../types/component.js';
3
- import { type RawComponentDefinitionInternal } from './extract-react-component-from-export.js';
4
- export declare function sourceFileUsesCreateContext(sourceFile: SourceFile): boolean;
5
- export declare function extractFromReactSourceFile(sourceFile: SourceFile, isNext: boolean, exclusions: ExtractionExclusion[]): RawComponentDefinitionInternal[];
@@ -1,23 +0,0 @@
1
- import { SyntaxKind } from 'ts-morph';
2
- import { getRenderableExports } from '../../shared/helpers/tsx-shared.js';
3
- import { extractReactComponentFromExport, } from './extract-react-component-from-export.js';
4
- export function sourceFileUsesCreateContext(sourceFile) {
5
- return sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression).some((call) => {
6
- const expr = call.getExpression();
7
- const text = expr.getText();
8
- return text === 'createContext' || text === 'React.createContext';
9
- });
10
- }
11
- export function extractFromReactSourceFile(sourceFile, isNext, exclusions) {
12
- const components = [];
13
- const usesCreateContext = sourceFileUsesCreateContext(sourceFile);
14
- for (const { name, declarations } of getRenderableExports(sourceFile, exclusions, {
15
- allowVariableDeclaration: true,
16
- hookReason: 'React hook names are not renderable components',
17
- })) {
18
- const component = extractReactComponentFromExport(name, declarations, sourceFile, isNext, usesCreateContext);
19
- if (component)
20
- components.push(component);
21
- }
22
- return components;
23
- }
@@ -1,2 +0,0 @@
1
- import type { RawComponentDefinition } from '../../../types/component.js';
2
- export declare function resolveReactAllowedComponents(components: RawComponentDefinition[]): void;
@@ -1,25 +0,0 @@
1
- import { extractAllowedComponentsFromTypeText, extractAllowedComponentsFromJsdoc, } from '../../../helpers/evidence/collect-allowed-component-names.js';
2
- import { buildComponentLookupMaps } from '../../shared/helpers/build-component-lookup-maps.js';
3
- export function resolveReactAllowedComponents(components) {
4
- const { propsToComponent, componentNames } = buildComponentLookupMaps(components);
5
- for (const c of components) {
6
- for (const slot of c.slots) {
7
- const found = new Set();
8
- if (slot._rawTypeText) {
9
- for (const n of extractAllowedComponentsFromTypeText(slot._rawTypeText, { propsToComponent, componentNames })) {
10
- found.add(n);
11
- }
12
- }
13
- if (slot._rawJsdoc) {
14
- for (const n of extractAllowedComponentsFromJsdoc(slot._rawJsdoc, componentNames)) {
15
- found.add(n);
16
- }
17
- }
18
- delete slot._rawTypeText;
19
- delete slot._rawJsdoc;
20
- if (found.size > 0)
21
- slot.allowedComponents = [...found].sort();
22
- }
23
- delete c._propsTypeName;
24
- }
25
- }
@@ -1,6 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import type { FunctionLike } from './resolve-component-function.js';
3
- export { isImplementationOnlyAliasProp, filterImplementationOnlyAliasProps } from './filter-impl-alias-props.js';
4
- export { extractDestructuredBindingFallbackProps } from './extract-binding-fallback-props.js';
5
- export declare function recordBindingPatternDefaults(nameNode: Node, defaults: Map<string, string>): void;
6
- export declare function extractDefaultValues(func: FunctionLike): Map<string, string>;
@@ -1,48 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export { isImplementationOnlyAliasProp, filterImplementationOnlyAliasProps } from './filter-impl-alias-props.js';
3
- export { extractDestructuredBindingFallbackProps } from './extract-binding-fallback-props.js';
4
- export function recordBindingPatternDefaults(nameNode, defaults) {
5
- if (!Node.isObjectBindingPattern(nameNode))
6
- return;
7
- for (const element of nameNode.getElements()) {
8
- const initializer = element.getInitializer();
9
- if (!initializer)
10
- continue;
11
- const propertyNameNode = element.getPropertyNameNode();
12
- const propName = propertyNameNode?.getText().replace(/^['"]|['"]$/g, '') ?? element.getNameNode().getText();
13
- const value = initializer.getText().replace(/^['"]|['"]$/g, '');
14
- defaults.set(propName, value);
15
- }
16
- }
17
- export function extractDefaultValues(func) {
18
- const defaults = new Map();
19
- const params = func.getParameters();
20
- if (params.length === 0)
21
- return defaults;
22
- const firstParam = params[0];
23
- const nameNode = firstParam.getNameNode();
24
- if (Node.isObjectBindingPattern(nameNode)) {
25
- recordBindingPatternDefaults(nameNode, defaults);
26
- return defaults;
27
- }
28
- if (!Node.isIdentifier(nameNode))
29
- return defaults;
30
- const body = func.getBody();
31
- if (!body || !Node.isBlock(body))
32
- return defaults;
33
- for (const statement of body.getStatements()) {
34
- if (!Node.isVariableStatement(statement))
35
- continue;
36
- for (const declaration of statement.getDeclarationList().getDeclarations()) {
37
- const declarationName = declaration.getNameNode();
38
- const initializer = declaration.getInitializer();
39
- if (!Node.isObjectBindingPattern(declarationName))
40
- continue;
41
- if (!initializer || !Node.isIdentifier(initializer) || initializer.getText() !== nameNode.getText())
42
- continue;
43
- recordBindingPatternDefaults(declarationName, defaults);
44
- return defaults;
45
- }
46
- }
47
- return defaults;
48
- }
@@ -1,15 +0,0 @@
1
- import { Node, type SourceFile } from 'ts-morph';
2
- import type { RawComponentDefinition, RawSlotDefinition } from '../../../types/component.js';
3
- import { type PropForwardingEdge } from './collect-prop-dataflow.js';
4
- import { type FunctionLike } from './resolve-component-function.js';
5
- export type RawSlotDefinitionInternal = RawSlotDefinition & {
6
- _rawTypeText?: string;
7
- _rawJsdoc?: string;
8
- };
9
- export type RawComponentDefinitionInternal = RawComponentDefinition & {
10
- _componentIdentity?: string;
11
- _propsTypeName?: string;
12
- _propForwardingEdges?: PropForwardingEdge[];
13
- _funcNode?: FunctionLike;
14
- };
15
- export declare function extractReactComponentFromExport(name: string, declarations: Node[], sourceFile: SourceFile, isNext: boolean, usesCreateContext: boolean): RawComponentDefinitionInternal | null;