@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,76 +0,0 @@
1
- import { dirname, join, resolve } from 'node:path';
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { findWorkspaceRoot, collectWorkspacePackageDirs } from './workspace-package-dirs.js';
4
- export function resolveWorkspaceVueImport(specifier, importingFilePath) {
5
- const workspaceRoot = findWorkspaceRoot(dirname(importingFilePath));
6
- if (!workspaceRoot)
7
- return null;
8
- const packageDirs = collectWorkspacePackageDirs(workspaceRoot);
9
- let packageName;
10
- let subpath;
11
- if (specifier.startsWith('@')) {
12
- const parts = specifier.split('/');
13
- if (parts.length < 2)
14
- return null;
15
- packageName = `${parts[0]}/${parts[1]}`;
16
- subpath = parts.length > 2 ? './' + parts.slice(2).join('/') : '.';
17
- }
18
- else {
19
- const slashIndex = specifier.indexOf('/');
20
- if (slashIndex === -1) {
21
- packageName = specifier;
22
- subpath = '.';
23
- }
24
- else {
25
- packageName = specifier.substring(0, slashIndex);
26
- subpath = './' + specifier.substring(slashIndex + 1);
27
- }
28
- }
29
- const packageDir = packageDirs.get(packageName);
30
- if (!packageDir)
31
- return null;
32
- const pkgJsonPath = join(packageDir, 'package.json');
33
- try {
34
- const pkg = JSON.parse(readFileSync(pkgJsonPath, 'utf8'));
35
- if (pkg.exports && subpath !== '.') {
36
- const exportValue = pkg.exports[subpath];
37
- if (typeof exportValue === 'string' && exportValue.endsWith('.vue')) {
38
- const resolved = resolve(packageDir, exportValue);
39
- if (existsSync(resolved))
40
- return resolved;
41
- }
42
- }
43
- if (subpath !== '.') {
44
- const subDir = resolve(packageDir, subpath.replace(/^\.\//, ''));
45
- for (const base of [join(packageDir, 'src', subpath.replace(/^\.\//, '')), subDir]) {
46
- const subPkgPath = join(base, 'package.json');
47
- if (existsSync(subPkgPath)) {
48
- try {
49
- const subPkg = JSON.parse(readFileSync(subPkgPath, 'utf8'));
50
- const main = subPkg.main || subPkg.module;
51
- if (typeof main === 'string' && main.endsWith('.vue')) {
52
- const resolved = resolve(base, main);
53
- if (existsSync(resolved))
54
- return resolved;
55
- }
56
- }
57
- catch {
58
- /* skip */
59
- }
60
- }
61
- }
62
- }
63
- if (subpath === '.') {
64
- const main = pkg.main || pkg.module;
65
- if (typeof main === 'string' && main.endsWith('.vue')) {
66
- const resolved = resolve(packageDir, main);
67
- if (existsSync(resolved))
68
- return resolved;
69
- }
70
- }
71
- }
72
- catch {
73
- /* skip malformed */
74
- }
75
- return null;
76
- }
@@ -1,2 +0,0 @@
1
- export declare function findWorkspaceRoot(startDir: string): string | null;
2
- export declare function collectWorkspacePackageDirs(workspaceRoot: string): Map<string, string>;
@@ -1,77 +0,0 @@
1
- import { dirname, join } from 'node:path';
2
- import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
3
- const workspaceRootCache = new Map();
4
- export function findWorkspaceRoot(startDir) {
5
- if (workspaceRootCache.has(startDir))
6
- return workspaceRootCache.get(startDir);
7
- let dir = startDir;
8
- while (true) {
9
- const pkgJsonPath = join(dir, 'package.json');
10
- if (existsSync(pkgJsonPath)) {
11
- try {
12
- const pkg = JSON.parse(readFileSync(pkgJsonPath, 'utf8'));
13
- if (pkg.workspaces || existsSync(join(dir, 'pnpm-workspace.yaml'))) {
14
- workspaceRootCache.set(startDir, dir);
15
- return dir;
16
- }
17
- }
18
- catch {
19
- /* skip malformed */
20
- }
21
- }
22
- const parent = dirname(dir);
23
- if (parent === dir) {
24
- workspaceRootCache.set(startDir, null);
25
- return null;
26
- }
27
- dir = parent;
28
- }
29
- }
30
- const workspacePackageDirsCache = new Map();
31
- export function collectWorkspacePackageDirs(workspaceRoot) {
32
- if (workspacePackageDirsCache.has(workspaceRoot))
33
- return workspacePackageDirsCache.get(workspaceRoot);
34
- const packageMap = new Map();
35
- const packagesDir = join(workspaceRoot, 'packages');
36
- if (!existsSync(packagesDir)) {
37
- workspacePackageDirsCache.set(workspaceRoot, packageMap);
38
- return packageMap;
39
- }
40
- function scanDir(dir, depth) {
41
- if (depth > 3)
42
- return;
43
- let entries;
44
- try {
45
- entries = readdirSync(dir);
46
- }
47
- catch {
48
- return;
49
- }
50
- const pkgJsonPath = join(dir, 'package.json');
51
- if (existsSync(pkgJsonPath)) {
52
- try {
53
- const pkg = JSON.parse(readFileSync(pkgJsonPath, 'utf8'));
54
- if (typeof pkg.name === 'string')
55
- packageMap.set(pkg.name, dir);
56
- }
57
- catch {
58
- /* skip */
59
- }
60
- }
61
- for (const entry of entries) {
62
- if (entry === 'node_modules' || entry === '.git' || entry.startsWith('.'))
63
- continue;
64
- const entryPath = join(dir, entry);
65
- try {
66
- if (statSync(entryPath).isDirectory())
67
- scanDir(entryPath, depth + 1);
68
- }
69
- catch {
70
- /* skip */
71
- }
72
- }
73
- }
74
- scanDir(packagesDir, 0);
75
- workspacePackageDirsCache.set(workspaceRoot, packageMap);
76
- return packageMap;
77
- }
@@ -1,82 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { extractTsxComponents, getRenderableExports } from '../shared/helpers/tsx-shared.js';
3
- import { extractVueTsxComponentProps } from './helpers/extract-vue-tsx-props.js';
4
- import { extractVueTsxComponentSlots } from './helpers/extract-vue-tsx-slots.js';
5
- export async function extractVueTsxComponents(filePaths) {
6
- const { components, warnings, exclusions } = extractTsxComponents(filePaths, /\.tsx$/, extractFromSourceFile);
7
- return {
8
- components: components.sort((a, b) => a.name.localeCompare(b.name)),
9
- warnings,
10
- exclusions,
11
- };
12
- }
13
- function extractFromSourceFile(sourceFile, exclusions) {
14
- const components = [];
15
- for (const { name, declarations } of getRenderableExports(sourceFile, exclusions, {
16
- hookReason: 'Vue composition hook names are not renderable components',
17
- })) {
18
- const component = extractVueTsxComponent(declarations, name, sourceFile);
19
- if (component)
20
- components.push(component);
21
- }
22
- return components;
23
- }
24
- function extractVueTsxComponent(declarations, exportName, sourceFile) {
25
- for (const declaration of declarations) {
26
- if (!Node.isVariableDeclaration(declaration))
27
- continue;
28
- if (declaration.getSourceFile().getFilePath() !== sourceFile.getFilePath())
29
- continue;
30
- const resolved = resolveDefineComponentCall(declaration.getInitializer());
31
- if (!resolved)
32
- continue;
33
- const name = readComponentName(resolved.options) ?? exportName;
34
- const props = extractVueTsxComponentProps(resolved.options);
35
- const slots = extractVueTsxComponentSlots(resolved.options, resolved.slotsTypeNode);
36
- return {
37
- name,
38
- source: sourceFile.getFilePath(),
39
- framework: 'vue',
40
- props,
41
- slots,
42
- };
43
- }
44
- return undefined;
45
- }
46
- function resolveDefineComponentCall(node) {
47
- if (!node || !Node.isCallExpression(node))
48
- return undefined;
49
- const directExpressionText = node.getExpression().getText();
50
- if (/(^|\.)defineComponent$/.test(directExpressionText)) {
51
- const optionsArg = node.getArguments()[0];
52
- if (!optionsArg || !Node.isObjectLiteralExpression(optionsArg))
53
- return undefined;
54
- return { options: optionsArg };
55
- }
56
- if (!Node.isCallExpression(node.getExpression()))
57
- return undefined;
58
- const outerArgs = node.getArguments();
59
- if (outerArgs.length !== 1)
60
- return undefined;
61
- const optionsArg = outerArgs[0];
62
- if (!Node.isObjectLiteralExpression(optionsArg))
63
- return undefined;
64
- const innerCall = node.getExpression();
65
- if (!Node.isCallExpression(innerCall))
66
- return undefined;
67
- if (!/(^|\.)genericComponent$/.test(innerCall.getExpression().getText()))
68
- return undefined;
69
- return {
70
- options: optionsArg,
71
- slotsTypeNode: innerCall.getTypeArguments()[0],
72
- };
73
- }
74
- function readComponentName(options) {
75
- const nameProp = options.getProperty('name');
76
- if (!nameProp || !Node.isPropertyAssignment(nameProp))
77
- return undefined;
78
- const initializer = nameProp.getInitializer();
79
- if (!initializer || !Node.isStringLiteral(initializer))
80
- return undefined;
81
- return initializer.getLiteralText();
82
- }
@@ -1,5 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import type { RawPropDefinition } from '../../../types/component.js';
3
- export declare function extractPropsFromExpression(node: Node, seen: Set<Node>): RawPropDefinition[];
4
- /** Extracts all props from a `defineComponent({ props: ... })` options object. */
5
- export declare function extractVueTsxComponentProps(options: import('ts-morph').ObjectLiteralExpression): RawPropDefinition[];
@@ -1,189 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { extractAllowedValues, getTypeReferenceName, getValueTargetDeclarations, } from '../../shared/helpers/tsx-shared.js';
3
- import { resolveReturnedObjectLiteral, resolveObjectLiteralFromCallExpression, getExpressionTerminalName, extractStringArrayLiteralValues, } from './resolve-ast-object.js';
4
- const VUE_PROP_VALUE_TYPE_MAP = {
5
- String: 'string',
6
- Number: 'number',
7
- Boolean: 'boolean',
8
- Array: 'any[]',
9
- Object: 'object',
10
- Function: 'function',
11
- };
12
- function extractPropTypeArgument(typeNode) {
13
- if (!typeNode || !Node.isTypeReference(typeNode))
14
- return undefined;
15
- if (getTypeReferenceName(typeNode) !== 'PropType')
16
- return undefined;
17
- return typeNode.getTypeArguments()[0]?.getText();
18
- }
19
- function resolveVueTsxPropType(node) {
20
- if (Node.isAsExpression(node) || Node.isTypeAssertion(node)) {
21
- const typeNode = node.getTypeNode();
22
- const propTypeArg = extractPropTypeArgument(typeNode);
23
- if (propTypeArg)
24
- return propTypeArg;
25
- return resolveVueTsxPropType(node.getExpression());
26
- }
27
- if (Node.isParenthesizedExpression(node)) {
28
- return resolveVueTsxPropType(node.getExpression());
29
- }
30
- if (Node.isArrayLiteralExpression(node)) {
31
- const memberTypes = node.getElements().flatMap((element) => {
32
- const memberType = resolveVueTsxPropType(element);
33
- return memberType === 'any' ? [] : [memberType];
34
- });
35
- return memberTypes.length > 0 ? [...new Set(memberTypes)].sort().join(' | ') : 'any';
36
- }
37
- if (Node.isIdentifier(node)) {
38
- return VUE_PROP_VALUE_TYPE_MAP[node.getText()] ?? node.getText();
39
- }
40
- if (Node.isNullLiteral(node))
41
- return 'any';
42
- return node.getType().getText(node);
43
- }
44
- function readVueTsxObjectPropertyName(property) {
45
- const nameNode = property.getNameNode();
46
- if (Node.isIdentifier(nameNode) || Node.isPrivateIdentifier(nameNode))
47
- return nameNode.getText();
48
- if (Node.isStringLiteral(nameNode) || Node.isNoSubstitutionTemplateLiteral(nameNode))
49
- return nameNode.getLiteralText();
50
- if (Node.isComputedPropertyName(nameNode)) {
51
- const expression = nameNode.getExpression();
52
- if (Node.isStringLiteral(expression) || Node.isNoSubstitutionTemplateLiteral(expression)) {
53
- return expression.getLiteralText();
54
- }
55
- }
56
- return property.getName();
57
- }
58
- function buildPropFromObjectLiteral(propName, initializer) {
59
- let type = 'any';
60
- let required = false;
61
- let defaultValue;
62
- let allowedValues;
63
- for (const property of initializer.getProperties()) {
64
- if (!Node.isPropertyAssignment(property))
65
- continue;
66
- const name = property.getName();
67
- const value = property.getInitializer();
68
- if (!value)
69
- continue;
70
- if (name === 'type') {
71
- type = resolveVueTsxPropType(value);
72
- allowedValues = extractAllowedValues(value.getType());
73
- }
74
- else if (name === 'required') {
75
- required = value.getText() === 'true';
76
- }
77
- else if (name === 'default') {
78
- defaultValue = value.getText();
79
- }
80
- }
81
- return {
82
- name: propName,
83
- type,
84
- required,
85
- ...(defaultValue !== undefined && { defaultValue }),
86
- ...(allowedValues && { allowedValues }),
87
- };
88
- }
89
- function buildPropFromInitializer(propName, initializer) {
90
- if (!initializer)
91
- return undefined;
92
- if (Node.isObjectLiteralExpression(initializer)) {
93
- return buildPropFromObjectLiteral(propName, initializer);
94
- }
95
- return {
96
- name: propName,
97
- type: resolveVueTsxPropType(initializer),
98
- required: false,
99
- };
100
- }
101
- function extractPropsFromObjectLiteral(objectLiteral, seen) {
102
- const propsByName = new Map();
103
- for (const property of objectLiteral.getProperties()) {
104
- if (Node.isPropertyAssignment(property)) {
105
- const propName = readVueTsxObjectPropertyName(property);
106
- if (!propName)
107
- continue;
108
- const definition = buildPropFromInitializer(propName, property.getInitializer());
109
- if (definition)
110
- propsByName.set(definition.name, definition);
111
- continue;
112
- }
113
- if (Node.isSpreadAssignment(property)) {
114
- for (const definition of extractPropsFromExpression(property.getExpression(), seen)) {
115
- propsByName.set(definition.name, definition);
116
- }
117
- }
118
- }
119
- return [...propsByName.values()];
120
- }
121
- function resolvePropsObjectLiteral(node) {
122
- if (Node.isObjectLiteralExpression(node))
123
- return node;
124
- if (!Node.isCallExpression(node))
125
- return undefined;
126
- const returnedObject = resolveObjectLiteralFromCallExpression(node, new Set());
127
- if (returnedObject)
128
- return returnedObject;
129
- const expression = node.getExpression();
130
- if (Node.isIdentifier(expression)) {
131
- for (const declaration of getValueTargetDeclarations(expression)) {
132
- if (!Node.isVariableDeclaration(declaration))
133
- continue;
134
- const initializer = declaration.getInitializer();
135
- if (!initializer || !Node.isCallExpression(initializer))
136
- continue;
137
- if (!/(^|\.)propsFactory$/.test(initializer.getExpression().getText()))
138
- continue;
139
- const propsArg = initializer.getArguments()[0];
140
- if (propsArg && Node.isObjectLiteralExpression(propsArg))
141
- return propsArg;
142
- }
143
- }
144
- return undefined;
145
- }
146
- export function extractPropsFromExpression(node, seen) {
147
- if (seen.has(node))
148
- return [];
149
- seen.add(node);
150
- if (Node.isObjectLiteralExpression(node)) {
151
- return extractPropsFromObjectLiteral(node, seen);
152
- }
153
- if (Node.isCallExpression(node)) {
154
- const expressionName = getExpressionTerminalName(node.getExpression());
155
- if (expressionName === 'pick' || expressionName === 'omit') {
156
- const sourceArg = node.getArguments()[0];
157
- const keyArg = node.getArguments()[1];
158
- if (!sourceArg || !keyArg)
159
- return [];
160
- const keys = extractStringArrayLiteralValues(keyArg);
161
- if (!keys)
162
- return [];
163
- const sourceProps = extractPropsFromExpression(sourceArg, seen);
164
- const keySet = new Set(keys);
165
- return sourceProps.filter((p) => (expressionName === 'pick' ? keySet.has(p.name) : !keySet.has(p.name)));
166
- }
167
- const propsObject = resolvePropsObjectLiteral(node);
168
- if (propsObject)
169
- return extractPropsFromObjectLiteral(propsObject, seen);
170
- }
171
- if (Node.isIdentifier(node)) {
172
- for (const declaration of getValueTargetDeclarations(node)) {
173
- const resolved = resolveReturnedObjectLiteral(declaration, seen);
174
- if (resolved)
175
- return extractPropsFromObjectLiteral(resolved, seen);
176
- }
177
- }
178
- return [];
179
- }
180
- /** Extracts all props from a `defineComponent({ props: ... })` options object. */
181
- export function extractVueTsxComponentProps(options) {
182
- const propsProp = options.getProperty('props');
183
- if (!propsProp || !Node.isPropertyAssignment(propsProp))
184
- return [];
185
- const initializer = propsProp.getInitializer();
186
- if (!initializer)
187
- return [];
188
- return extractPropsFromExpression(initializer, new Set()).sort((a, b) => a.name.localeCompare(b.name));
189
- }
@@ -1,4 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import type { RawSlotDefinition } from '../../../types/component.js';
3
- /** Extracts slots from a `defineComponent` options object, preferring type-level declarations over setup access. */
4
- export declare function extractVueTsxComponentSlots(options: import('ts-morph').ObjectLiteralExpression, slotsTypeNode: Node | undefined): RawSlotDefinition[];
@@ -1,91 +0,0 @@
1
- import { Node, SyntaxKind } from 'ts-morph';
2
- import { getTypeTargetDeclarations } from '../../shared/helpers/tsx-shared.js';
3
- function extractTypeMemberSlots(members, allowMethods) {
4
- return members
5
- .flatMap((member) => {
6
- if (!Node.isPropertySignature(member) && (!allowMethods || !Node.isMethodSignature(member)))
7
- return [];
8
- const slotName = member.getName();
9
- return [{ name: slotName, isDefault: slotName === 'default' }];
10
- })
11
- .sort((a, b) => a.name.localeCompare(b.name));
12
- }
13
- function extractSlotsFromTypeNode(typeNode, seen) {
14
- if (!typeNode || seen.has(typeNode))
15
- return [];
16
- seen.add(typeNode);
17
- if (Node.isTypeLiteral(typeNode)) {
18
- return extractTypeMemberSlots(typeNode.getMembers(), false);
19
- }
20
- if (Node.isTypeReference(typeNode)) {
21
- for (const declaration of getTypeTargetDeclarations(typeNode.getTypeName(), false)) {
22
- if (Node.isTypeAliasDeclaration(declaration)) {
23
- return extractSlotsFromTypeNode(declaration.getTypeNode(), seen);
24
- }
25
- if (Node.isInterfaceDeclaration(declaration)) {
26
- return extractTypeMemberSlots(declaration.getMembers(), true);
27
- }
28
- }
29
- }
30
- return [];
31
- }
32
- function extractSlotsFromSetupFunction(options) {
33
- const setupProp = options.getProperty('setup');
34
- if (!setupProp)
35
- return [];
36
- const setupFunction = Node.isMethodDeclaration(setupProp)
37
- ? setupProp
38
- : Node.isPropertyAssignment(setupProp)
39
- ? setupProp.getInitializer()
40
- : undefined;
41
- if (!setupFunction)
42
- return [];
43
- if (!Node.isMethodDeclaration(setupFunction) &&
44
- !Node.isArrowFunction(setupFunction) &&
45
- !Node.isFunctionExpression(setupFunction)) {
46
- return [];
47
- }
48
- const params = setupFunction.getParameters();
49
- if (params.length < 2)
50
- return [];
51
- const contextParam = params[1];
52
- const nameNode = contextParam.getNameNode();
53
- if (!Node.isObjectBindingPattern(nameNode))
54
- return [];
55
- const slotsBinding = nameNode
56
- .getElements()
57
- .find((el) => el.getPropertyNameNode()?.getText() === 'slots' || el.getName() === 'slots');
58
- if (!slotsBinding)
59
- return [];
60
- const slotsName = slotsBinding.getName();
61
- const body = setupFunction.getBody();
62
- if (!body)
63
- return [];
64
- const slotsByName = new Map();
65
- for (const access of body.getDescendantsOfKind(SyntaxKind.PropertyAccessExpression)) {
66
- if (access.getExpression().getText() !== slotsName)
67
- continue;
68
- const slotName = access.getName();
69
- if (!slotsByName.has(slotName)) {
70
- slotsByName.set(slotName, {
71
- name: slotName,
72
- isDefault: slotName === 'default',
73
- });
74
- }
75
- }
76
- return [...slotsByName.values()].sort((a, b) => a.name.localeCompare(b.name));
77
- }
78
- /** Extracts slots from a `defineComponent` options object, preferring type-level declarations over setup access. */
79
- export function extractVueTsxComponentSlots(options, slotsTypeNode) {
80
- const slotsByName = new Map();
81
- if (slotsTypeNode) {
82
- for (const slot of extractSlotsFromTypeNode(slotsTypeNode, new Set())) {
83
- slotsByName.set(slot.name, slot);
84
- }
85
- }
86
- for (const slot of extractSlotsFromSetupFunction(options)) {
87
- if (!slotsByName.has(slot.name))
88
- slotsByName.set(slot.name, slot);
89
- }
90
- return [...slotsByName.values()].sort((a, b) => a.name.localeCompare(b.name));
91
- }
@@ -1,11 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- /** Recursively resolves a node to the object literal it represents or returns, or undefined. */
3
- export declare function resolveReturnedObjectLiteral(node: Node, seen: Set<Node>): import('ts-morph').ObjectLiteralExpression | undefined;
4
- /** Scans a list of statements for a `return <object literal>` and resolves it. */
5
- export declare function resolveObjectLiteralFromStatements(statements: import('ts-morph').Statement[], seen: Set<Node>): import('ts-morph').ObjectLiteralExpression | undefined;
6
- /** Resolves a call expression's callee to an object literal it returns. */
7
- export declare function resolveObjectLiteralFromCallExpression(callExpression: import('ts-morph').CallExpression, seen: Set<Node>): import('ts-morph').ObjectLiteralExpression | undefined;
8
- /** Returns the trailing identifier name from an expression (e.g. `foo.bar` → `'bar'`). */
9
- export declare function getExpressionTerminalName(node: Node): string | undefined;
10
- /** Extracts an array of string literal values, or returns undefined if any element is not a string literal. */
11
- export declare function extractStringArrayLiteralValues(node: Node): string[] | undefined;
@@ -1,95 +0,0 @@
1
- import { Node, SyntaxKind } from 'ts-morph';
2
- import { getValueTargetDeclarations } from '../../shared/helpers/tsx-shared.js';
3
- /** Recursively resolves a node to the object literal it represents or returns, or undefined. */
4
- export function resolveReturnedObjectLiteral(node, seen) {
5
- if (seen.has(node))
6
- return undefined;
7
- seen.add(node);
8
- if (Node.isObjectLiteralExpression(node))
9
- return node;
10
- if (Node.isParenthesizedExpression(node)) {
11
- return resolveReturnedObjectLiteral(node.getExpression(), seen);
12
- }
13
- if (Node.isVariableDeclaration(node)) {
14
- const initializer = node.getInitializer();
15
- if (!initializer)
16
- return undefined;
17
- return resolveReturnedObjectLiteral(initializer, seen);
18
- }
19
- if (Node.isArrowFunction(node)) {
20
- const body = node.getBody();
21
- if (Node.isObjectLiteralExpression(body))
22
- return body;
23
- const block = body.asKind(SyntaxKind.Block);
24
- if (block)
25
- return resolveObjectLiteralFromStatements(block.getStatements(), seen);
26
- return resolveReturnedObjectLiteral(body, seen);
27
- }
28
- if (Node.isFunctionDeclaration(node) || Node.isFunctionExpression(node)) {
29
- const body = node.getBody();
30
- if (!body)
31
- return undefined;
32
- const block = body.asKind(SyntaxKind.Block);
33
- if (!block)
34
- return undefined;
35
- return resolveObjectLiteralFromStatements(block.getStatements(), seen);
36
- }
37
- if (Node.isCallExpression(node)) {
38
- return resolveObjectLiteralFromCallExpression(node, seen);
39
- }
40
- if (Node.isIdentifier(node)) {
41
- for (const declaration of getValueTargetDeclarations(node)) {
42
- const resolved = resolveReturnedObjectLiteral(declaration, seen);
43
- if (resolved)
44
- return resolved;
45
- }
46
- }
47
- return undefined;
48
- }
49
- /** Scans a list of statements for a `return <object literal>` and resolves it. */
50
- export function resolveObjectLiteralFromStatements(statements, seen) {
51
- for (const statement of statements) {
52
- if (!Node.isReturnStatement(statement))
53
- continue;
54
- const expression = statement.getExpression();
55
- if (!expression)
56
- continue;
57
- const resolved = resolveReturnedObjectLiteral(expression, seen);
58
- if (resolved)
59
- return resolved;
60
- }
61
- return undefined;
62
- }
63
- /** Resolves a call expression's callee to an object literal it returns. */
64
- export function resolveObjectLiteralFromCallExpression(callExpression, seen) {
65
- const expression = callExpression.getExpression();
66
- if (!Node.isIdentifier(expression))
67
- return undefined;
68
- for (const declaration of getValueTargetDeclarations(expression)) {
69
- const resolved = resolveReturnedObjectLiteral(declaration, seen);
70
- if (resolved)
71
- return resolved;
72
- }
73
- return undefined;
74
- }
75
- /** Returns the trailing identifier name from an expression (e.g. `foo.bar` → `'bar'`). */
76
- export function getExpressionTerminalName(node) {
77
- if (Node.isIdentifier(node))
78
- return node.getText();
79
- if (Node.isPropertyAccessExpression(node))
80
- return node.getName();
81
- return undefined;
82
- }
83
- /** Extracts an array of string literal values, or returns undefined if any element is not a string literal. */
84
- export function extractStringArrayLiteralValues(node) {
85
- if (!Node.isArrayLiteralExpression(node))
86
- return undefined;
87
- const keys = [];
88
- for (const element of node.getElements()) {
89
- if (!Node.isStringLiteral(element) && !Node.isNoSubstitutionTemplateLiteral(element)) {
90
- return undefined;
91
- }
92
- keys.push(element.getLiteralText());
93
- }
94
- return keys;
95
- }