@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,31 +0,0 @@
1
- import { extractTsxComponents } from '../shared/helpers/tsx-shared.js';
2
- import { resolveReactAllowedComponents } from './helpers/extract-react-allowed-components.js';
3
- import { synthesizeReactStructuralSlots } from './helpers/synthesize-react-structural-slots.js';
4
- import { resolveReactPropForwarding } from './helpers/resolve-react-prop-forwarding.js';
5
- import { extractFromReactSourceFile } from './helpers/extract-from-react-source-file.js';
6
- function isStencilFile(sourceFile) {
7
- return sourceFile.getImportDeclarations().some((imp) => imp.getModuleSpecifierValue() === '@stencil/core');
8
- }
9
- function isNextJsComponent(filePath, exportedNames) {
10
- const normalized = filePath.replace(/\\/g, '/');
11
- const isAppRouterFile = /\/app\/.*\/(page|layout)\.[jt]sx?$/.test(normalized);
12
- const hasNextExports = exportedNames.some((name) => name === 'generateMetadata' || name === 'generateStaticParams');
13
- return isAppRouterFile || hasNextExports;
14
- }
15
- export async function extractReactComponents(filePaths) {
16
- const { components, warnings, exclusions, project } = extractTsxComponents(filePaths, /\.[jt]sx$/, (sourceFile, exclusions) => {
17
- if (isStencilFile(sourceFile))
18
- return [];
19
- const fileExports = [...sourceFile.getExportedDeclarations().keys()];
20
- const isNext = isNextJsComponent(sourceFile.getFilePath(), fileExports);
21
- return extractFromReactSourceFile(sourceFile, isNext, exclusions);
22
- });
23
- resolveReactAllowedComponents(components);
24
- synthesizeReactStructuralSlots(components, project);
25
- resolveReactPropForwarding(components);
26
- return {
27
- components: components.sort((a, b) => a.name.localeCompare(b.name)),
28
- warnings,
29
- exclusions,
30
- };
31
- }
@@ -1,4 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { type ExpandableDomAttributeWrapperContext } from './dom-attribute-surfaces.js';
3
- export declare function getStringLiteralTypeValues(typeNode: Node): string[];
4
- export declare function collectExpandableDomAttributeWrapperContexts(typeNode: Node, seen?: Set<Node<import("ts-morph").ts.Node>>, excludedProps?: Set<string>): ExpandableDomAttributeWrapperContext[];
@@ -1,73 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { getTypeReferenceName, getNodeDefinitions } from '../../shared/helpers/tsx-shared.js';
3
- import { getTypeReferenceTargetNode, getTypeReferenceArguments } from '../../shared/helpers/tsx-node-utils.js';
4
- import { isExpandableDomAttributeWrapperName, } from './dom-attribute-surfaces.js';
5
- export function getStringLiteralTypeValues(typeNode) {
6
- if (Node.isLiteralTypeNode(typeNode)) {
7
- const literal = typeNode.getLiteral();
8
- if (Node.isStringLiteral(literal))
9
- return [literal.getLiteralText()];
10
- }
11
- if (!Node.isUnionTypeNode(typeNode))
12
- return [];
13
- return typeNode.getTypeNodes().flatMap((n) => getStringLiteralTypeValues(n));
14
- }
15
- export function collectExpandableDomAttributeWrapperContexts(typeNode, seen = new Set(), excludedProps = new Set()) {
16
- if (seen.has(typeNode))
17
- return [];
18
- seen.add(typeNode);
19
- if (Node.isParenthesizedTypeNode(typeNode) || Node.isTypeOperatorTypeNode(typeNode)) {
20
- return collectExpandableDomAttributeWrapperContexts(typeNode.getTypeNode(), seen, excludedProps);
21
- }
22
- if (Node.isIntersectionTypeNode(typeNode) || Node.isUnionTypeNode(typeNode)) {
23
- return typeNode
24
- .getTypeNodes()
25
- .flatMap((child) => collectExpandableDomAttributeWrapperContexts(child, seen, excludedProps));
26
- }
27
- const typeReferenceTarget = getTypeReferenceTargetNode(typeNode);
28
- if (typeReferenceTarget) {
29
- const typeName = getTypeReferenceName(typeNode);
30
- if (!typeName)
31
- return [];
32
- const typeArguments = getTypeReferenceArguments(typeNode);
33
- if (isExpandableDomAttributeWrapperName(typeName)) {
34
- return [{ name: typeName, excludedProps: new Set(excludedProps) }];
35
- }
36
- if (typeName === 'Omit') {
37
- const [wrappedType, omittedProps] = typeArguments;
38
- if (!wrappedType)
39
- return [];
40
- const nextExcludedProps = new Set(excludedProps);
41
- if (omittedProps) {
42
- for (const value of getStringLiteralTypeValues(omittedProps))
43
- nextExcludedProps.add(value);
44
- }
45
- return collectExpandableDomAttributeWrapperContexts(wrappedType, seen, nextExcludedProps);
46
- }
47
- if (typeName === 'Partial' || typeName === 'Readonly' || typeName === 'Required' || typeName === 'NonNullable') {
48
- const wrappedType = typeArguments[0];
49
- if (!wrappedType)
50
- return [];
51
- return collectExpandableDomAttributeWrapperContexts(wrappedType, seen, excludedProps);
52
- }
53
- for (const definition of getNodeDefinitions(typeReferenceTarget)) {
54
- const declaration = definition.getDeclarationNode();
55
- if (!declaration)
56
- continue;
57
- if (Node.isInterfaceDeclaration(declaration)) {
58
- return declaration
59
- .getHeritageClauses()
60
- .flatMap((clause) => clause
61
- .getTypeNodes()
62
- .flatMap((heritageTypeNode) => collectExpandableDomAttributeWrapperContexts(heritageTypeNode, seen, excludedProps)));
63
- }
64
- if (Node.isTypeAliasDeclaration(declaration)) {
65
- const aliasedTypeNode = declaration.getTypeNode();
66
- if (!aliasedTypeNode)
67
- return [];
68
- return collectExpandableDomAttributeWrapperContexts(aliasedTypeNode, seen, excludedProps);
69
- }
70
- }
71
- }
72
- return [];
73
- }
@@ -1,14 +0,0 @@
1
- import { type ParameterDeclaration } from 'ts-morph';
2
- import { type FunctionLike } from './resolve-component-function.js';
3
- export type PropForwardingEdge = {
4
- sourceProp: string;
5
- targetComponentIdentity: string;
6
- targetProp: string;
7
- };
8
- export type PropDataflow = {
9
- intrinsicDomProps: Set<string>;
10
- componentEdges: PropForwardingEdge[];
11
- };
12
- export declare function getComponentIdentity(func: FunctionLike): string;
13
- /** Trace only statically resolvable, component-local prop dataflow into JSX. */
14
- export declare function collectPropDataflow(func: FunctionLike, param: ParameterDeclaration, availablePropNames: Set<string>): PropDataflow;
@@ -1,220 +0,0 @@
1
- import { Node, SyntaxKind } from 'ts-morph';
2
- import { getJsxTagNameNode, getNodeDefinitions, getValueTargetDeclarations, isIntrinsicJsxElement, } from '../../shared/helpers/tsx-shared.js';
3
- import { resolveFunctionNode } from './resolve-component-function.js';
4
- function getDeclarationIdentity(node) {
5
- if (Node.isIdentifier(node)) {
6
- const parent = node.getParent();
7
- if ((Node.isVariableDeclaration(parent) || Node.isBindingElement(parent) || Node.isParameterDeclaration(parent)) &&
8
- parent.getNameNode() === node) {
9
- return parent;
10
- }
11
- }
12
- return getNodeDefinitions(node)[0]?.getDeclarationNode() ?? node;
13
- }
14
- export function getComponentIdentity(func) {
15
- return `${func.getSourceFile().getFilePath()}:${func.getStart()}`;
16
- }
17
- function resolveForwardedComponentIdentity(tagNameNode) {
18
- if (!Node.isIdentifier(tagNameNode))
19
- return undefined;
20
- for (const declaration of getValueTargetDeclarations(tagNameNode)) {
21
- const func = resolveFunctionNode(declaration);
22
- if (func)
23
- return getComponentIdentity(func);
24
- }
25
- return undefined;
26
- }
27
- /**
28
- * Declarations that are rebound somewhere in the body, so their initializer no
29
- * longer describes the value that reaches JSX.
30
- */
31
- function collectReboundDeclarations(body) {
32
- const rebound = new Set();
33
- const recordTarget = (target) => {
34
- if (Node.isIdentifier(target)) {
35
- rebound.add(getDeclarationIdentity(target));
36
- return;
37
- }
38
- if ((Node.isPropertyAccessExpression(target) || Node.isElementAccessExpression(target)) &&
39
- Node.isIdentifier(target.getExpression())) {
40
- rebound.add(getDeclarationIdentity(target.getExpression()));
41
- }
42
- };
43
- for (const assignment of body?.getDescendantsOfKind(SyntaxKind.BinaryExpression) ?? []) {
44
- // Covers `=` and every compound form (`+=`, `??=`, `>>>=`, ...).
45
- const operator = assignment.getOperatorToken().getKind();
46
- if (operator < SyntaxKind.FirstAssignment || operator > SyntaxKind.LastAssignment)
47
- continue;
48
- recordTarget(assignment.getLeft());
49
- }
50
- // Only `++`/`--` rebind the operand. Reading a prop through `!`, `-`, `+`, or
51
- // `~` leaves the alias intact, so those operators must not invalidate it.
52
- for (const update of body?.getDescendantsOfKind(SyntaxKind.PrefixUnaryExpression) ?? []) {
53
- const operator = update.getOperatorToken();
54
- if (operator !== SyntaxKind.PlusPlusToken && operator !== SyntaxKind.MinusMinusToken)
55
- continue;
56
- recordTarget(update.getOperand());
57
- }
58
- for (const update of body?.getDescendantsOfKind(SyntaxKind.PostfixUnaryExpression) ?? []) {
59
- recordTarget(update.getOperand());
60
- }
61
- return rebound;
62
- }
63
- /** Trace only statically resolvable, component-local prop dataflow into JSX. */
64
- export function collectPropDataflow(func, param, availablePropNames) {
65
- const valueAliases = new Map();
66
- const objectAliases = new Map();
67
- const fullPropsShape = new Map([...availablePropNames].map((name) => [name, name]));
68
- const belongsToComponentFunction = (node) => node.getFirstAncestor((ancestor) => Node.isFunctionDeclaration(ancestor) || Node.isArrowFunction(ancestor) || Node.isFunctionExpression(ancestor)) === func;
69
- const resolveValue = (expression) => {
70
- if (!expression)
71
- return undefined;
72
- if (Node.isParenthesizedExpression(expression))
73
- return resolveValue(expression.getExpression());
74
- if (Node.isIdentifier(expression))
75
- return valueAliases.get(getDeclarationIdentity(expression));
76
- if (Node.isPropertyAccessExpression(expression)) {
77
- const object = expression.getExpression();
78
- return Node.isIdentifier(object)
79
- ? objectAliases.get(getDeclarationIdentity(object))?.get(expression.getName())
80
- : undefined;
81
- }
82
- if (Node.isElementAccessExpression(expression)) {
83
- const argument = expression.getArgumentExpression();
84
- if (!argument || (!Node.isStringLiteral(argument) && !Node.isNoSubstitutionTemplateLiteral(argument))) {
85
- return undefined;
86
- }
87
- const object = expression.getExpression();
88
- return Node.isIdentifier(object)
89
- ? objectAliases.get(getDeclarationIdentity(object))?.get(argument.getLiteralText())
90
- : undefined;
91
- }
92
- return undefined;
93
- };
94
- const resolveObject = (expression) => {
95
- if (!expression)
96
- return undefined;
97
- if (Node.isParenthesizedExpression(expression))
98
- return resolveObject(expression.getExpression());
99
- if (Node.isIdentifier(expression))
100
- return objectAliases.get(getDeclarationIdentity(expression));
101
- if (!Node.isObjectLiteralExpression(expression))
102
- return undefined;
103
- const shape = new Map();
104
- for (const property of expression.getProperties()) {
105
- if (Node.isSpreadAssignment(property)) {
106
- const spreadShape = resolveObject(property.getExpression());
107
- for (const [targetProp, sourceProp] of spreadShape ?? [])
108
- shape.set(targetProp, sourceProp);
109
- }
110
- else if (Node.isShorthandPropertyAssignment(property)) {
111
- const sourceProp = resolveValue(property.getNameNode());
112
- if (sourceProp)
113
- shape.set(property.getName(), sourceProp);
114
- }
115
- else if (Node.isPropertyAssignment(property)) {
116
- const propertyNameNode = property.getNameNode();
117
- if (!Node.isIdentifier(propertyNameNode) && !Node.isStringLiteral(propertyNameNode))
118
- continue;
119
- const sourceProp = resolveValue(property.getInitializer());
120
- if (sourceProp)
121
- shape.set(property.getName(), sourceProp);
122
- }
123
- }
124
- return shape;
125
- };
126
- const addBindings = (pattern, sourceShape) => {
127
- const omittedProps = new Set(pattern
128
- .getElements()
129
- .filter((element) => !element.getDotDotDotToken())
130
- .map((element) => element.getPropertyNameNode()?.getText() ?? element.getNameNode().getText()));
131
- for (const element of pattern.getElements()) {
132
- const localName = element.getNameNode();
133
- if (!Node.isIdentifier(localName))
134
- continue;
135
- if (element.getDotDotDotToken()) {
136
- objectAliases.set(getDeclarationIdentity(localName), new Map([...sourceShape].filter(([targetProp]) => !omittedProps.has(targetProp))));
137
- continue;
138
- }
139
- const targetProp = element.getPropertyNameNode()?.getText() ?? localName.getText();
140
- const sourceProp = sourceShape.get(targetProp);
141
- if (sourceProp)
142
- valueAliases.set(getDeclarationIdentity(localName), sourceProp);
143
- }
144
- };
145
- const paramNameNode = param.getNameNode();
146
- if (Node.isIdentifier(paramNameNode))
147
- objectAliases.set(getDeclarationIdentity(paramNameNode), fullPropsShape);
148
- else if (Node.isObjectBindingPattern(paramNameNode))
149
- addBindings(paramNameNode, fullPropsShape);
150
- const body = func.getBody();
151
- const reboundDeclarations = collectReboundDeclarations(body);
152
- for (const declaration of reboundDeclarations) {
153
- valueAliases.delete(declaration);
154
- objectAliases.delete(declaration);
155
- }
156
- for (const declaration of body?.getDescendantsOfKind(SyntaxKind.VariableDeclaration) ?? []) {
157
- if (!belongsToComponentFunction(declaration))
158
- continue;
159
- const initializer = declaration.getInitializer();
160
- const declarationName = declaration.getNameNode();
161
- if (Node.isIdentifier(declarationName)) {
162
- const aliasDeclaration = getDeclarationIdentity(declarationName);
163
- if (reboundDeclarations.has(aliasDeclaration))
164
- continue;
165
- const sourceProp = resolveValue(initializer);
166
- if (sourceProp)
167
- valueAliases.set(aliasDeclaration, sourceProp);
168
- const sourceShape = resolveObject(initializer);
169
- if (sourceShape)
170
- objectAliases.set(aliasDeclaration, new Map(sourceShape));
171
- }
172
- else if (Node.isObjectBindingPattern(declarationName)) {
173
- const sourceShape = resolveObject(initializer);
174
- if (sourceShape) {
175
- const hasInvalidatedBinding = declarationName
176
- .getElements()
177
- .some((element) => reboundDeclarations.has(getDeclarationIdentity(element.getNameNode())));
178
- if (!hasInvalidatedBinding)
179
- addBindings(declarationName, sourceShape);
180
- }
181
- }
182
- }
183
- const intrinsicDomProps = new Set();
184
- const componentEdges = [];
185
- const recordForwarding = (tagNameNode, targetProp, sourceProp) => {
186
- const tagName = tagNameNode.getText();
187
- if (isIntrinsicJsxElement(tagName)) {
188
- if (targetProp === sourceProp)
189
- intrinsicDomProps.add(sourceProp);
190
- return;
191
- }
192
- const targetComponentIdentity = resolveForwardedComponentIdentity(tagNameNode);
193
- if (targetComponentIdentity)
194
- componentEdges.push({ sourceProp, targetComponentIdentity, targetProp });
195
- };
196
- for (const attribute of func.getDescendantsOfKind(SyntaxKind.JsxAttribute)) {
197
- if (!belongsToComponentFunction(attribute))
198
- continue;
199
- const tagNameNode = getJsxTagNameNode(attribute);
200
- if (!tagNameNode)
201
- continue;
202
- const initializer = attribute.getInitializer();
203
- if (!initializer || !Node.isJsxExpression(initializer))
204
- continue;
205
- const sourceProp = resolveValue(initializer.getExpression());
206
- if (sourceProp)
207
- recordForwarding(tagNameNode, attribute.getNameNode().getText(), sourceProp);
208
- }
209
- for (const spread of func.getDescendantsOfKind(SyntaxKind.JsxSpreadAttribute)) {
210
- if (!belongsToComponentFunction(spread))
211
- continue;
212
- const tagNameNode = getJsxTagNameNode(spread);
213
- if (!tagNameNode)
214
- continue;
215
- const shape = resolveObject(spread.getExpression());
216
- for (const [targetProp, sourceProp] of shape ?? [])
217
- recordForwarding(tagNameNode, targetProp, sourceProp);
218
- }
219
- return { intrinsicDomProps, componentEdges };
220
- }
@@ -1,5 +0,0 @@
1
- import { type ParameterDeclaration } from 'ts-morph';
2
- import type { FunctionLike } from './resolve-component-function.js';
3
- import { collectRestBindingNames, isComponentSpreadAttribute, inferPrimitiveDomPropsFromImplementation } from './infer-primitive-dom-props.js';
4
- export { collectRestBindingNames, isComponentSpreadAttribute, inferPrimitiveDomPropsFromImplementation };
5
- export declare function hasImplementationChildrenHint(funcNode: FunctionLike, param: ParameterDeclaration): boolean;
@@ -1,32 +0,0 @@
1
- import { Node, SyntaxKind } from 'ts-morph';
2
- import { collectRestBindingNames, isComponentSpreadAttribute, inferPrimitiveDomPropsFromImplementation, } from './infer-primitive-dom-props.js';
3
- export { collectRestBindingNames, isComponentSpreadAttribute, inferPrimitiveDomPropsFromImplementation };
4
- export function hasImplementationChildrenHint(funcNode, param) {
5
- const nameNode = param.getNameNode();
6
- const body = funcNode.getBody();
7
- if (!body)
8
- return false;
9
- if (Node.isObjectBindingPattern(nameNode)) {
10
- for (const element of nameNode.getElements()) {
11
- if (element.getNameNode().getText() === 'children')
12
- return true;
13
- }
14
- const restBindingNames = collectRestBindingNames(nameNode);
15
- if (restBindingNames.size === 0)
16
- return false;
17
- return body
18
- .getDescendantsOfKind(SyntaxKind.JsxSpreadAttribute)
19
- .some((attr) => isComponentSpreadAttribute(attr, restBindingNames));
20
- }
21
- if (!Node.isIdentifier(nameNode))
22
- return false;
23
- const paramName = nameNode.getText();
24
- if (body
25
- .getDescendantsOfKind(SyntaxKind.PropertyAccessExpression)
26
- .some((expr) => expr.getExpression().getText() === paramName && expr.getName() === 'children')) {
27
- return true;
28
- }
29
- return body
30
- .getDescendantsOfKind(SyntaxKind.JsxSpreadAttribute)
31
- .some((attr) => isComponentSpreadAttribute(attr, new Set([paramName])));
32
- }
@@ -1,2 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export declare function isPureExpandableDomAttributeWrapperType(typeNode: Node): boolean;
@@ -1,59 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { getTypeReferenceName, getNodeDefinitions } from '../../shared/helpers/tsx-shared.js';
3
- import { getTypeReferenceTargetNode, getTypeReferenceArguments } from '../../shared/helpers/tsx-node-utils.js';
4
- import { isExpandableDomAttributeWrapperName } from './dom-attribute-surfaces.js';
5
- function isPureExpandableDomAttributeWrapperTypeNode(typeNode, seen = new Set()) {
6
- if (seen.has(typeNode))
7
- return false;
8
- seen.add(typeNode);
9
- if (Node.isParenthesizedTypeNode(typeNode) || Node.isTypeOperatorTypeNode(typeNode)) {
10
- return isPureExpandableDomAttributeWrapperTypeNode(typeNode.getTypeNode(), seen);
11
- }
12
- if (Node.isIntersectionTypeNode(typeNode) || Node.isUnionTypeNode(typeNode)) {
13
- const childTypes = typeNode.getTypeNodes();
14
- return (childTypes.length > 0 && childTypes.every((child) => isPureExpandableDomAttributeWrapperTypeNode(child, seen)));
15
- }
16
- const typeReferenceTarget = getTypeReferenceTargetNode(typeNode);
17
- if (typeReferenceTarget) {
18
- const typeName = getTypeReferenceName(typeNode);
19
- if (!typeName)
20
- return false;
21
- const typeArguments = getTypeReferenceArguments(typeNode);
22
- if (isExpandableDomAttributeWrapperName(typeName))
23
- return true;
24
- if (typeName === 'Omit' ||
25
- typeName === 'Partial' ||
26
- typeName === 'Readonly' ||
27
- typeName === 'Required' ||
28
- typeName === 'NonNullable') {
29
- const wrappedType = typeArguments[0];
30
- return wrappedType ? isPureExpandableDomAttributeWrapperTypeNode(wrappedType, seen) : false;
31
- }
32
- if (typeName === 'Pick')
33
- return false;
34
- for (const definition of getNodeDefinitions(typeReferenceTarget)) {
35
- const declaration = definition.getDeclarationNode();
36
- if (!declaration)
37
- continue;
38
- if (Node.isInterfaceDeclaration(declaration)) {
39
- if (declaration.getMembers().length > 0)
40
- return false;
41
- const heritageClauses = declaration.getHeritageClauses();
42
- return (heritageClauses.length > 0 &&
43
- heritageClauses.every((clause) => clause
44
- .getTypeNodes()
45
- .every((heritageTypeNode) => isPureExpandableDomAttributeWrapperTypeNode(heritageTypeNode, seen))));
46
- }
47
- if (Node.isTypeAliasDeclaration(declaration)) {
48
- const aliasedTypeNode = declaration.getTypeNode();
49
- if (!aliasedTypeNode)
50
- return false;
51
- return isPureExpandableDomAttributeWrapperTypeNode(aliasedTypeNode, seen);
52
- }
53
- }
54
- }
55
- return false;
56
- }
57
- export function isPureExpandableDomAttributeWrapperType(typeNode) {
58
- return isPureExpandableDomAttributeWrapperTypeNode(typeNode);
59
- }
@@ -1,8 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import type { RawPropDefinition } from '../../../types/component.js';
3
- export { isPureExpandableDomAttributeWrapperType } from './detect-dom-is-pure-wrapper.js';
4
- export { containsImportedOmitWrappedCustomProps } from './detect-omit-wrapped-custom-props.js';
5
- export { containsSupportedDomPickType, containsAnyPickType, shouldMergeDomSyntaxExtraction, } from './detect-pick-type-patterns.js';
6
- export { collectExpandableDomAttributeWrapperContexts, getStringLiteralTypeValues, } from './collect-dom-wrapper-contexts.js';
7
- export declare function getSyntheticDomAttributeProps(typeNode: Node | undefined): RawPropDefinition[];
8
- export declare function hasSyntheticDomChildren(typeNode: Node | undefined): boolean;
@@ -1,29 +0,0 @@
1
- import { getDomAttributeSurface, DOM_ATTRIBUTE_WRAPPERS_WITH_SYNTHETIC_CHILDREN } from './dom-attribute-surfaces.js';
2
- import { collectExpandableDomAttributeWrapperContexts } from './collect-dom-wrapper-contexts.js';
3
- export { isPureExpandableDomAttributeWrapperType } from './detect-dom-is-pure-wrapper.js';
4
- export { containsImportedOmitWrappedCustomProps } from './detect-omit-wrapped-custom-props.js';
5
- export { containsSupportedDomPickType, containsAnyPickType, shouldMergeDomSyntaxExtraction, } from './detect-pick-type-patterns.js';
6
- export { collectExpandableDomAttributeWrapperContexts, getStringLiteralTypeValues, } from './collect-dom-wrapper-contexts.js';
7
- export function getSyntheticDomAttributeProps(typeNode) {
8
- if (!typeNode)
9
- return [];
10
- const contexts = collectExpandableDomAttributeWrapperContexts(typeNode);
11
- if (contexts.length === 0)
12
- return [];
13
- const propsByName = new Map();
14
- for (const context of contexts) {
15
- for (const prop of getDomAttributeSurface(context.name)) {
16
- if (context.excludedProps.has(prop.name))
17
- continue;
18
- if (propsByName.has(prop.name))
19
- continue;
20
- propsByName.set(prop.name, prop);
21
- }
22
- }
23
- return [...propsByName.values()].sort((a, b) => a.name.localeCompare(b.name));
24
- }
25
- export function hasSyntheticDomChildren(typeNode) {
26
- if (!typeNode)
27
- return false;
28
- return collectExpandableDomAttributeWrapperContexts(typeNode).some((context) => DOM_ATTRIBUTE_WRAPPERS_WITH_SYNTHETIC_CHILDREN.has(context.name));
29
- }
@@ -1,2 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export declare function containsImportedOmitWrappedCustomProps(typeNode: Node, seen?: Set<Node<import("ts-morph").ts.Node>>, originSourceFile?: import("ts-morph").SourceFile, sawOmit?: boolean): boolean;
@@ -1,64 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { getTypeReferenceName, getTypeTargetDeclarations } from '../../shared/helpers/tsx-shared.js';
3
- import { getTypeReferenceTargetNode } from '../../shared/helpers/tsx-node-utils.js';
4
- import { isPureExpandableDomAttributeWrapperType } from './detect-dom-is-pure-wrapper.js';
5
- export function containsImportedOmitWrappedCustomProps(typeNode, seen = new Set(), originSourceFile = typeNode.getSourceFile(), sawOmit = false) {
6
- if (seen.has(typeNode))
7
- return false;
8
- seen.add(typeNode);
9
- if (Node.isParenthesizedTypeNode(typeNode) || Node.isTypeOperatorTypeNode(typeNode)) {
10
- return containsImportedOmitWrappedCustomProps(typeNode.getTypeNode(), seen, originSourceFile, sawOmit);
11
- }
12
- if (Node.isIntersectionTypeNode(typeNode) || Node.isUnionTypeNode(typeNode)) {
13
- return typeNode
14
- .getTypeNodes()
15
- .some((child) => containsImportedOmitWrappedCustomProps(child, seen, originSourceFile, sawOmit));
16
- }
17
- if (Node.isTypeReference(typeNode) || Node.isExpressionWithTypeArguments(typeNode)) {
18
- const typeName = getTypeReferenceName(typeNode);
19
- if (!typeName)
20
- return false;
21
- if (typeName === 'PropsWithChildren') {
22
- const wrappedType = typeNode.getTypeArguments()[0];
23
- return wrappedType ? containsImportedOmitWrappedCustomProps(wrappedType, seen, originSourceFile, sawOmit) : false;
24
- }
25
- if (typeName === 'Omit') {
26
- const wrappedType = typeNode.getTypeArguments()[0];
27
- return wrappedType ? containsImportedOmitWrappedCustomProps(wrappedType, seen, originSourceFile, true) : false;
28
- }
29
- if (typeName === 'Partial' || typeName === 'Readonly' || typeName === 'Required' || typeName === 'NonNullable') {
30
- const wrappedType = typeNode.getTypeArguments()[0];
31
- return wrappedType ? containsImportedOmitWrappedCustomProps(wrappedType, seen, originSourceFile, sawOmit) : false;
32
- }
33
- const targetNode = getTypeReferenceTargetNode(typeNode);
34
- for (const declaration of getTypeTargetDeclarations(targetNode, sawOmit)) {
35
- if (!declaration)
36
- continue;
37
- const declarationSourceFile = declaration.getSourceFile();
38
- const isImportedDeclaration = declarationSourceFile.getFilePath() !== originSourceFile.getFilePath();
39
- if (sawOmit && isImportedDeclaration) {
40
- const declarationTypeNode = Node.isTypeAliasDeclaration(declaration) ? declaration.getTypeNode() : declaration;
41
- if (!declarationTypeNode || !isPureExpandableDomAttributeWrapperType(declarationTypeNode)) {
42
- return true;
43
- }
44
- }
45
- if (Node.isInterfaceDeclaration(declaration)) {
46
- if (declaration
47
- .getHeritageClauses()
48
- .some((clause) => clause
49
- .getTypeNodes()
50
- .some((heritageTypeNode) => containsImportedOmitWrappedCustomProps(heritageTypeNode, seen, originSourceFile, sawOmit)))) {
51
- return true;
52
- }
53
- }
54
- if (Node.isTypeAliasDeclaration(declaration)) {
55
- const aliasedTypeNode = declaration.getTypeNode();
56
- if (aliasedTypeNode &&
57
- containsImportedOmitWrappedCustomProps(aliasedTypeNode, seen, originSourceFile, sawOmit)) {
58
- return true;
59
- }
60
- }
61
- }
62
- }
63
- return false;
64
- }
@@ -1,4 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export declare function containsSupportedDomPickType(typeNode: Node, seen?: Set<Node<import("ts-morph").ts.Node>>): boolean;
3
- export declare function containsAnyPickType(typeNode: Node, seen?: Set<Node<import("ts-morph").ts.Node>>): boolean;
4
- export declare function shouldMergeDomSyntaxExtraction(typeNode: Node): boolean;
@@ -1,64 +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
- import { collectExpandableDomAttributeWrapperContexts } from './detect-dom-type-patterns.js';
5
- function containsPickType(typeNode, seen, mode) {
6
- if (seen.has(typeNode))
7
- return false;
8
- seen.add(typeNode);
9
- if (Node.isParenthesizedTypeNode(typeNode) || Node.isTypeOperatorTypeNode(typeNode)) {
10
- return containsPickType(typeNode.getTypeNode(), seen, mode);
11
- }
12
- if (Node.isIntersectionTypeNode(typeNode) || Node.isUnionTypeNode(typeNode)) {
13
- return typeNode.getTypeNodes().some((child) => containsPickType(child, seen, mode));
14
- }
15
- const typeReferenceTarget = getTypeReferenceTargetNode(typeNode);
16
- if (!typeReferenceTarget)
17
- return false;
18
- const typeName = getTypeReferenceName(typeNode);
19
- if (!typeName)
20
- return false;
21
- const typeArguments = getTypeReferenceArguments(typeNode);
22
- if (typeName === 'Pick') {
23
- if (mode === 'any')
24
- return true;
25
- const sourceTypeNode = typeArguments[0];
26
- return sourceTypeNode
27
- ? collectExpandableDomAttributeWrapperContexts(sourceTypeNode).length > 0 ||
28
- containsPickType(sourceTypeNode, seen, mode)
29
- : false;
30
- }
31
- const wrappedTypeNames = mode === 'any'
32
- ? ['PropsWithChildren', 'Omit', 'Partial', 'Readonly', 'Required', 'NonNullable']
33
- : ['Omit', 'Partial', 'Readonly', 'Required', 'NonNullable'];
34
- if (wrappedTypeNames.includes(typeName)) {
35
- const wrappedType = typeArguments[0];
36
- return wrappedType ? containsPickType(wrappedType, seen, mode) : false;
37
- }
38
- for (const declaration of getTypeTargetDeclarations(typeReferenceTarget, mode === 'any')) {
39
- if (!declaration)
40
- continue;
41
- if (Node.isInterfaceDeclaration(declaration)) {
42
- if (declaration
43
- .getHeritageClauses()
44
- .some((clause) => clause.getTypeNodes().some((heritageTypeNode) => containsPickType(heritageTypeNode, seen, mode)))) {
45
- return true;
46
- }
47
- }
48
- if (Node.isTypeAliasDeclaration(declaration)) {
49
- const aliasedTypeNode = declaration.getTypeNode();
50
- if (aliasedTypeNode && containsPickType(aliasedTypeNode, seen, mode))
51
- return true;
52
- }
53
- }
54
- return false;
55
- }
56
- export function containsSupportedDomPickType(typeNode, seen = new Set()) {
57
- return containsPickType(typeNode, seen, 'supported');
58
- }
59
- export function containsAnyPickType(typeNode, seen = new Set()) {
60
- return containsPickType(typeNode, seen, 'any');
61
- }
62
- export function shouldMergeDomSyntaxExtraction(typeNode) {
63
- return collectExpandableDomAttributeWrapperContexts(typeNode).length > 0 || containsSupportedDomPickType(typeNode);
64
- }
@@ -1,5 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export declare const TRANSPARENT_POLYMORPHIC_TYPE_NAMES: Set<string>;
3
- export declare function isRepoLocalTransparentPolymorphicWrapperDeclaration(declaration: Node, typeName: string): boolean;
4
- export declare function unwrapRepoLocalTransparentPolymorphicWrapper(typeNode: Node, allowWorkspaceImportFallback: boolean): Node | undefined;
5
- export declare function isRepoLocalSupportedPolymorphicChain(typeNode: Node, seen?: Set<Node<import("ts-morph").ts.Node>>, allowWorkspaceImportFallback?: boolean): boolean;