@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,51 +0,0 @@
1
- import { findLocalTypeDeclaration, declarationHasHeritage } from './find-svelte-script-declarations.js';
2
- export function formatAnnotation(annotation) {
3
- if (!annotation)
4
- return '<unknown>';
5
- if (annotation.type === 'TSTypeReference') {
6
- const name = annotation['typeName']?.['name'] ?? null;
7
- return name ? `'${name}'` : '<unnamed reference>';
8
- }
9
- if (annotation.type === 'TSIntersectionType')
10
- return '<intersection>';
11
- if (annotation.type === 'TSUnionType')
12
- return '<union>';
13
- if (annotation.type === 'TSTypeLiteral')
14
- return '<inline literal>';
15
- return `<${annotation.type}>`;
16
- }
17
- export function classifyUnresolved(annotation, members, instance, moduleScript) {
18
- if (!annotation)
19
- return null;
20
- if (annotation.type === 'TSTypeLiteral') {
21
- const litMembers = annotation['members'] ?? [];
22
- if (litMembers.length === 0)
23
- return null;
24
- }
25
- if (members === null || members.length === 0)
26
- return 'empty';
27
- if (annotation.type === 'TSTypeReference') {
28
- const refName = annotation['typeName']?.['name'] ?? null;
29
- if (refName) {
30
- const decl = findLocalTypeDeclaration(instance, refName, moduleScript);
31
- if (decl && declarationHasHeritage(decl) && members.every((m) => m.isSnippet)) {
32
- return 'partial-heritage';
33
- }
34
- }
35
- }
36
- return null;
37
- }
38
- export function getPropsTypeName(propsCall) {
39
- const id = propsCall['id'];
40
- const annotation = id?.['typeAnnotation']?.['typeAnnotation'];
41
- if (annotation?.type === 'TSTypeReference') {
42
- const tn = annotation['typeName']?.['name'];
43
- if (tn && /^[A-Za-z_$][\w$]*$/.test(tn))
44
- return tn;
45
- }
46
- return undefined;
47
- }
48
- export function getRetryAnnotation(propsCall) {
49
- const id = propsCall['id'];
50
- return id?.['typeAnnotation']?.['typeAnnotation'];
51
- }
@@ -1,3 +0,0 @@
1
- import type { AstNode } from '../types/svelte-ast-node.js';
2
- export declare function collectReferencedTypeNames(node: AstNode): Set<string>;
3
- export declare function collectImportSpecifiersForNames(script: AstNode, names: Set<string>): Map<string, string>;
@@ -1,52 +0,0 @@
1
- export function collectReferencedTypeNames(node) {
2
- const names = new Set();
3
- walk(node);
4
- return names;
5
- function walk(n) {
6
- if (!n || typeof n !== 'object')
7
- return;
8
- if (n.type === 'TSTypeReference') {
9
- const tn = n['typeName']?.['name'];
10
- if (tn)
11
- names.add(tn);
12
- }
13
- if (n.type === 'TSExpressionWithTypeArguments') {
14
- const exprName = n['expression']?.['name'];
15
- if (exprName)
16
- names.add(exprName);
17
- }
18
- for (const value of Object.values(n)) {
19
- if (Array.isArray(value)) {
20
- for (const v of value) {
21
- if (v && typeof v === 'object')
22
- walk(v);
23
- }
24
- }
25
- else if (value && typeof value === 'object' && value.type) {
26
- walk(value);
27
- }
28
- }
29
- }
30
- }
31
- export function collectImportSpecifiersForNames(script, names) {
32
- const out = new Map();
33
- const body = script['content']?.['body'];
34
- if (!body)
35
- return out;
36
- for (const stmt of body) {
37
- if (stmt.type !== 'ImportDeclaration')
38
- continue;
39
- const specifierValue = stmt['source']?.['value'];
40
- if (!specifierValue)
41
- continue;
42
- const specifiers = stmt['specifiers'] ?? [];
43
- for (const spec of specifiers) {
44
- if (spec.type !== 'ImportSpecifier' && spec.type !== 'ImportDefaultSpecifier')
45
- continue;
46
- const localName = spec['local']?.['name'];
47
- if (localName && names.has(localName))
48
- out.set(localName, specifierValue);
49
- }
50
- }
51
- return out;
52
- }
@@ -1,7 +0,0 @@
1
- import type { RawComponentDefinition } from '../../../types/component.js';
2
- import type { RetryContext } from './resolve-svelte-unresolved-retry.js';
3
- export declare function extractFromSvelteFile(filePath: string, source: string): Promise<{
4
- component: RawComponentDefinition | null;
5
- warnings: string[];
6
- retryContext?: RetryContext;
7
- }>;
@@ -1,90 +0,0 @@
1
- import { parse as parseSvelte } from 'svelte/compiler';
2
- import { computeExtractionScore, deriveNeedsReview, } from '../../../services/quality/helpers/scoring/compute-extraction-score.js';
3
- import { getSvelteComponentName } from './get-svelte-component-name.js';
4
- import { extractTemplateSlots, mergeSlots } from './extract-svelte-template-slots.js';
5
- import { hasV4ExportLetProps, findPropsCall, collectSnippetImportLocals } from './find-svelte-script-declarations.js';
6
- import { extractPropsFromCall, getPropsTypeName, getRetryAnnotation } from './extract-svelte-props.js';
7
- export async function extractFromSvelteFile(filePath, source) {
8
- const warnings = [];
9
- const name = getSvelteComponentName(filePath);
10
- let ast;
11
- try {
12
- ast = parseSvelte(source, { modern: true });
13
- }
14
- catch (e) {
15
- return {
16
- component: null,
17
- warnings: [`${name}: parse error in ${filePath}: ${e instanceof Error ? e.message : String(e)}`],
18
- };
19
- }
20
- const instance = ast['instance'];
21
- const moduleScript = ast['module'];
22
- const fragment = ast['fragment'];
23
- if (instance && hasV4ExportLetProps(instance)) {
24
- warnings.push(`${name}: Svelte 4 export let syntax not yet supported (${filePath}); see INTEG-4267 for v5-only scope and follow-up`);
25
- return { component: null, warnings };
26
- }
27
- const propsCall = instance ? findPropsCall(instance) : null;
28
- const snippetLocals = instance ? collectSnippetImportLocals(instance) : new Set();
29
- let props = [];
30
- let propNamesTreatedAsSnippet = new Set();
31
- let snippetSlotsFromProps = [];
32
- const extractionReasons = [];
33
- if (propsCall) {
34
- const result = await extractPropsFromCall({
35
- propsCall,
36
- instance: instance,
37
- moduleScript,
38
- filePath,
39
- componentName: name,
40
- source,
41
- snippetLocals,
42
- });
43
- props = result.props;
44
- propNamesTreatedAsSnippet = result.snippetNames;
45
- snippetSlotsFromProps = result.snippetSlots;
46
- warnings.push(...result.warnings);
47
- if (result.additionalReasons)
48
- extractionReasons.push(...result.additionalReasons);
49
- }
50
- else if (!instance) {
51
- warnings.push(`${name}: no instance script block (${filePath}); no props extracted`);
52
- }
53
- const templateSlots = fragment ? extractTemplateSlots(fragment) : [];
54
- const { slots, mixedWarning } = mergeSlots(snippetSlotsFromProps, templateSlots);
55
- if (mixedWarning) {
56
- warnings.push(`${name}: mixed Snippet and <slot> usage detected (${filePath}); preferring Snippet entries`);
57
- }
58
- const propsTypeNameCapture = propsCall ? getPropsTypeName(propsCall) : undefined;
59
- const component = {
60
- name,
61
- source: filePath,
62
- framework: 'svelte',
63
- props,
64
- slots,
65
- ...(propsTypeNameCapture ? { _propsTypeName: propsTypeNameCapture } : {}),
66
- };
67
- const score = computeExtractionScore(component, {
68
- additionalIssueCount: extractionReasons.length,
69
- additionalReasons: extractionReasons,
70
- });
71
- component.extractionConfidence = score.confidence;
72
- component.reviewReasons = score.reasons;
73
- component.needsReview = deriveNeedsReview(score.confidence) || extractionReasons.includes('props-type-unresolved');
74
- void propNamesTreatedAsSnippet;
75
- let retryContext;
76
- if (extractionReasons.includes('props-type-unresolved') && propsCall && instance) {
77
- const annotation = getRetryAnnotation(propsCall);
78
- if (annotation) {
79
- retryContext = {
80
- filePath,
81
- source,
82
- instance,
83
- moduleScript,
84
- annotation,
85
- componentName: name,
86
- };
87
- }
88
- }
89
- return { component, warnings, ...(retryContext ? { retryContext } : {}) };
90
- }
@@ -1,15 +0,0 @@
1
- import type { AstNode } from '../types/svelte-ast-node.js';
2
- export interface ResolvedTypeMember {
3
- name: string;
4
- optional: boolean;
5
- typeText: string;
6
- declaredTypeText?: string;
7
- isSnippet: boolean;
8
- allowedValues?: string[];
9
- description?: string;
10
- line?: number;
11
- endLine?: number;
12
- }
13
- export declare function readPropertySignature(member: AstNode, snippetLocals: Set<string>): ResolvedTypeMember | null;
14
- export declare function readMembersFromTypeLiteral(literal: AstNode, snippetLocals: Set<string>): ResolvedTypeMember[];
15
- export declare function readMembersFromInterfaceOrAlias(decl: AstNode, snippetLocals: Set<string>): ResolvedTypeMember[];
@@ -1,46 +0,0 @@
1
- import { isSnippetType, renderType, collectStringLiteralUnion, extractJsdocText } from './render-svelte-type.js';
2
- export function readPropertySignature(member, snippetLocals) {
3
- if (member.type !== 'TSPropertySignature')
4
- return null;
5
- const key = member['key'];
6
- const name = key?.['name'] ?? null;
7
- if (!name)
8
- return null;
9
- const optional = !!member['optional'];
10
- const typeNode = member['typeAnnotation']?.['typeAnnotation'];
11
- const typeText = renderType(typeNode);
12
- const isSnippet = isSnippetType(typeNode, snippetLocals);
13
- const allowedValues = collectStringLiteralUnion(typeNode);
14
- const leading = member['leadingComments'] ?? [];
15
- const description = extractJsdocText(leading);
16
- return {
17
- name,
18
- optional,
19
- typeText,
20
- isSnippet,
21
- allowedValues,
22
- description,
23
- line: member.loc?.start?.line,
24
- endLine: member.loc?.end?.line,
25
- };
26
- }
27
- export function readMembersFromTypeLiteral(literal, snippetLocals) {
28
- const members = literal['members'];
29
- if (!members)
30
- return [];
31
- return members.map((m) => readPropertySignature(m, snippetLocals)).filter((m) => !!m);
32
- }
33
- export function readMembersFromInterfaceOrAlias(decl, snippetLocals) {
34
- if (decl.type === 'TSInterfaceDeclaration') {
35
- const body = decl['body']?.['body'];
36
- if (!body)
37
- return [];
38
- return body.map((m) => readPropertySignature(m, snippetLocals)).filter((m) => !!m);
39
- }
40
- if (decl.type === 'TSTypeAliasDeclaration') {
41
- const ann = decl['typeAnnotation'];
42
- if (ann?.type === 'TSTypeLiteral')
43
- return readMembersFromTypeLiteral(ann, snippetLocals);
44
- }
45
- return [];
46
- }
@@ -1,7 +0,0 @@
1
- import type { AstNode } from '../types/svelte-ast-node.js';
2
- export declare function getSourceText(source: string, node: AstNode): string | null;
3
- export declare function getScriptText(source: string, script: AstNode | undefined): string | null;
4
- export declare function extractAllowedValuesFromType(type: import('ts-morph').Type): string[] | undefined;
5
- export declare function readJsDocFromDeclaration(decl: import('ts-morph').Node): string | undefined;
6
- export declare function readDeclaredTypeNodeText(decl: import('ts-morph').Node): string | null;
7
- export declare function typeRefersToSnippet(propType: import('ts-morph').Type): boolean;
@@ -1,64 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- export function getSourceText(source, node) {
3
- const start = node['start'] ?? null;
4
- const end = node['end'] ?? null;
5
- if (start == null || end == null)
6
- return null;
7
- return source.slice(start, end);
8
- }
9
- export function getScriptText(source, script) {
10
- if (!script)
11
- return null;
12
- const content = script['content'];
13
- if (!content)
14
- return null;
15
- return getSourceText(source, content);
16
- }
17
- export function extractAllowedValuesFromType(type) {
18
- if (!type.isUnion())
19
- return undefined;
20
- const out = [];
21
- for (const t of type.getUnionTypes()) {
22
- if (!t.isStringLiteral())
23
- return undefined;
24
- out.push(t.getLiteralValueOrThrow());
25
- }
26
- return out.length > 0 ? out : undefined;
27
- }
28
- export function readJsDocFromDeclaration(decl) {
29
- if (Node.isPropertySignature(decl) || Node.isInterfaceDeclaration(decl) || Node.isTypeAliasDeclaration(decl)) {
30
- const jsdocs = decl.getJsDocs();
31
- if (jsdocs.length > 0)
32
- return jsdocs[0].getDescription().trim() || undefined;
33
- }
34
- return undefined;
35
- }
36
- export function readDeclaredTypeNodeText(decl) {
37
- if (Node.isPropertySignature(decl))
38
- return decl.getTypeNode()?.getText() ?? null;
39
- return null;
40
- }
41
- export function typeRefersToSnippet(propType) {
42
- const seen = new Set();
43
- let cursor = propType;
44
- while (cursor && !seen.has(cursor)) {
45
- seen.add(cursor);
46
- const aliasName = cursor.getAliasSymbol()?.getName();
47
- const symName = cursor.getSymbol()?.getName();
48
- if (aliasName === 'Snippet' || symName === 'Snippet') {
49
- const decl = cursor.getAliasSymbol()?.getDeclarations()[0] ?? cursor.getSymbol()?.getDeclarations()[0];
50
- const file = decl?.getSourceFile().getFilePath() ?? '';
51
- if (file.includes('/svelte/') || file.includes('\\svelte\\') || file === '')
52
- return true;
53
- }
54
- if (cursor.isUnion()) {
55
- const nonUndef = cursor.getUnionTypes().filter((t) => !t.isUndefined() && !t.isNull());
56
- if (nonUndef.length === 1) {
57
- cursor = nonUndef[0];
58
- continue;
59
- }
60
- }
61
- break;
62
- }
63
- return false;
64
- }
@@ -1,4 +0,0 @@
1
- import type { ResolvedTypeMember } from './extract-svelte-ast-type-members.js';
2
- export declare function collectSnippetLocalsFromSourceFile(sf: import('ts-morph').SourceFile): Set<string>;
3
- export declare function readInterfaceMembers(iface: import('ts-morph').InterfaceDeclaration, snippetLocals: Set<string>): ResolvedTypeMember[];
4
- export declare function readTypeLiteralMembers(typeNode: import('ts-morph').TypeLiteralNode, snippetLocals: Set<string>): ResolvedTypeMember[];
@@ -1,58 +0,0 @@
1
- import { Node } from 'ts-morph';
2
- import { isSnippetTypeText, extractAllowedValuesFromText } from './render-svelte-type.js';
3
- export function collectSnippetLocalsFromSourceFile(sf) {
4
- const locals = new Set();
5
- for (const importDecl of sf.getImportDeclarations()) {
6
- if (importDecl.getModuleSpecifierValue() !== 'svelte')
7
- continue;
8
- for (const named of importDecl.getNamedImports()) {
9
- if (named.getName() === 'Snippet') {
10
- const aliasNode = named.getAliasNode();
11
- locals.add(aliasNode ? aliasNode.getText() : named.getName());
12
- }
13
- }
14
- }
15
- return locals;
16
- }
17
- export function readInterfaceMembers(iface, snippetLocals) {
18
- return iface.getProperties().map((prop) => {
19
- const typeNode = prop.getTypeNode();
20
- const typeText = typeNode ? typeNode.getText() : prop.getType().getText(prop);
21
- const allowed = extractAllowedValuesFromText(typeText);
22
- const jsdocs = prop.getJsDocs();
23
- const description = jsdocs.length > 0 ? jsdocs[0].getDescription().trim() : undefined;
24
- return {
25
- name: prop.getName(),
26
- optional: prop.hasQuestionToken(),
27
- typeText,
28
- isSnippet: isSnippetTypeText(typeText, snippetLocals),
29
- ...(allowed ? { allowedValues: allowed } : {}),
30
- ...(description ? { description } : {}),
31
- line: prop.getStartLineNumber(),
32
- endLine: prop.getEndLineNumber(),
33
- };
34
- });
35
- }
36
- export function readTypeLiteralMembers(typeNode, snippetLocals) {
37
- return typeNode.getMembers().flatMap((m) => {
38
- if (!Node.isPropertySignature(m))
39
- return [];
40
- const tn = m.getTypeNode();
41
- const typeText = tn ? tn.getText() : 'unknown';
42
- const allowed = extractAllowedValuesFromText(typeText);
43
- const jsdocs = m.getJsDocs();
44
- const description = jsdocs.length > 0 ? jsdocs[0].getDescription().trim() : undefined;
45
- return [
46
- {
47
- name: m.getName(),
48
- optional: m.hasQuestionToken(),
49
- typeText,
50
- isSnippet: isSnippetTypeText(typeText, snippetLocals),
51
- ...(allowed ? { allowedValues: allowed } : {}),
52
- ...(description ? { description } : {}),
53
- line: m.getStartLineNumber(),
54
- endLine: m.getEndLineNumber(),
55
- },
56
- ];
57
- });
58
- }
@@ -1,4 +0,0 @@
1
- import type { AstNode } from '../types/svelte-ast-node.js';
2
- import type { ResolvedTypeMember } from './resolve-svelte-type-members.js';
3
- import type { PropsExtractionResult } from './extract-svelte-props.js';
4
- export declare function extractFromDestructure(propsCall: AstNode, typeMembers: ResolvedTypeMember[] | null, warnings: string[], additionalReasons?: string[]): PropsExtractionResult;
@@ -1,85 +0,0 @@
1
- import { renderLiteral } from './render-svelte-type.js';
2
- function propertyOrder(properties) {
3
- const m = new Map();
4
- let i = 0;
5
- for (const p of properties) {
6
- if (p.type !== 'Property')
7
- continue;
8
- const name = p['key']?.['name'] ?? null;
9
- if (name)
10
- m.set(name, i++);
11
- }
12
- return m;
13
- }
14
- function sortStable(a, b, order) {
15
- const ai = order.get(a) ?? Infinity;
16
- const bi = order.get(b) ?? Infinity;
17
- if (ai !== bi)
18
- return ai - bi;
19
- return a.localeCompare(b);
20
- }
21
- export function extractFromDestructure(propsCall, typeMembers, warnings, additionalReasons) {
22
- const id = propsCall['id'];
23
- const properties = id['properties'] ?? [];
24
- const typeByName = new Map();
25
- if (typeMembers)
26
- for (const m of typeMembers)
27
- typeByName.set(m.name, m);
28
- const props = [];
29
- const snippetNames = new Set();
30
- const snippetSlots = [];
31
- const seenInDestructure = new Set();
32
- let dropsRest = false;
33
- for (const p of properties) {
34
- if (p.type === 'RestElement') {
35
- dropsRest = true;
36
- continue;
37
- }
38
- if (p.type !== 'Property')
39
- continue;
40
- const key = p['key'];
41
- const name = key?.['name'] ?? null;
42
- if (!name)
43
- continue;
44
- seenInDestructure.add(name);
45
- const value = p['value'];
46
- const hasDefault = value?.type === 'AssignmentPattern';
47
- const defaultValueRaw = hasDefault ? renderLiteral(value['right']) : undefined;
48
- const typeMember = typeByName.get(name);
49
- if (typeMember?.isSnippet) {
50
- snippetNames.add(name);
51
- const slot = {
52
- name,
53
- isDefault: name === 'children',
54
- ...(typeMember.description ? { description: typeMember.description } : {}),
55
- };
56
- const authorText = typeMember.declaredTypeText ?? typeMember.typeText;
57
- if (authorText)
58
- slot._rawTypeText = authorText;
59
- snippetSlots.push(slot);
60
- continue;
61
- }
62
- const required = typeMember ? !typeMember.optional && !hasDefault : !hasDefault;
63
- const propDef = {
64
- name,
65
- type: typeMember?.typeText ?? 'unknown',
66
- required,
67
- };
68
- if (defaultValueRaw !== undefined)
69
- propDef.defaultValue = defaultValueRaw;
70
- if (typeMember?.allowedValues)
71
- propDef.allowedValues = typeMember.allowedValues;
72
- if (typeMember?.description)
73
- propDef.description = typeMember.description;
74
- props.push(propDef);
75
- }
76
- void dropsRest;
77
- void seenInDestructure;
78
- return {
79
- props: props.sort((a, b) => sortStable(a.name, b.name, propertyOrder(properties))),
80
- snippetNames,
81
- snippetSlots,
82
- warnings,
83
- ...(additionalReasons && additionalReasons.length > 0 ? { additionalReasons } : {}),
84
- };
85
- }
@@ -1,22 +0,0 @@
1
- import type { RawSlotDefinition } from '../../../types/component.js';
2
- import type { AstNode } from '../types/svelte-ast-node.js';
3
- import { extractFromTypeMembersOnly } from './extract-svelte-type-member-props.js';
4
- export { extractFromTypeMembersOnly };
5
- export { getPropsTypeName, getRetryAnnotation } from './classify-svelte-props-annotation.js';
6
- export interface PropsCallContext {
7
- propsCall: AstNode;
8
- instance: AstNode;
9
- moduleScript?: AstNode;
10
- filePath: string;
11
- componentName: string;
12
- source: string;
13
- snippetLocals: Set<string>;
14
- }
15
- export interface PropsExtractionResult {
16
- props: import('../../../types/component.js').RawPropDefinition[];
17
- snippetNames: Set<string>;
18
- snippetSlots: RawSlotDefinition[];
19
- warnings: string[];
20
- additionalReasons?: string[];
21
- }
22
- export declare function extractPropsFromCall(ctx: PropsCallContext): Promise<PropsExtractionResult>;
@@ -1,55 +0,0 @@
1
- import { resolveTypeMembers } from './resolve-svelte-type-members.js';
2
- import { extractFromDestructure } from './extract-svelte-from-destructure.js';
3
- import { extractFromTypeMembersOnly } from './extract-svelte-type-member-props.js';
4
- import { formatAnnotation, classifyUnresolved } from './classify-svelte-props-annotation.js';
5
- export { extractFromTypeMembersOnly };
6
- export { getPropsTypeName, getRetryAnnotation } from './classify-svelte-props-annotation.js';
7
- export async function extractPropsFromCall(ctx) {
8
- const warnings = [];
9
- const propsCall = ctx.propsCall;
10
- const id = propsCall['id'];
11
- const idType = id?.type;
12
- const annotation = id?.['typeAnnotation']?.['typeAnnotation'];
13
- const typeMembers = annotation
14
- ? await resolveTypeMembers(annotation, ctx.instance, ctx.moduleScript, ctx.filePath, ctx.source)
15
- : null;
16
- const unresolved = classifyUnresolved(annotation, typeMembers, ctx.instance, ctx.moduleScript);
17
- const additionalReasons = [];
18
- if (unresolved) {
19
- const refLabel = formatAnnotation(annotation);
20
- const heritageNote = unresolved === 'partial-heritage' ? ' (heritage clauses extending unreachable types)' : '';
21
- warnings.push(`${ctx.componentName}: declared Props type ${refLabel} resolved to ${unresolved === 'empty' ? '0' : 'only Snippet-typed'} properties${heritageNote} (${ctx.filePath}) — possible cross-package extends or unreachable type. ` +
22
- `See https://github.com/contentful/experience-design-system-sdk-public/pull/44 for context and partner workarounds.`);
23
- additionalReasons.push('props-type-unresolved');
24
- }
25
- if (idType === 'ObjectPattern') {
26
- return extractFromDestructure(ctx.propsCall, typeMembers, warnings, additionalReasons);
27
- }
28
- if (idType === 'Identifier') {
29
- if (typeMembers && typeMembers.length > 0) {
30
- return {
31
- ...extractFromTypeMembersOnly(typeMembers),
32
- warnings,
33
- additionalReasons,
34
- };
35
- }
36
- if (!unresolved) {
37
- warnings.push(`${ctx.componentName}: $props() called without destructuring (${ctx.filePath}); cannot extract individual props`);
38
- }
39
- return {
40
- props: [],
41
- snippetNames: new Set(),
42
- snippetSlots: [],
43
- warnings,
44
- additionalReasons,
45
- };
46
- }
47
- warnings.push(`${ctx.componentName}: unrecognized $props() binding pattern '${idType}' (${ctx.filePath})`);
48
- return {
49
- props: [],
50
- snippetNames: new Set(),
51
- snippetSlots: [],
52
- warnings,
53
- additionalReasons,
54
- };
55
- }
@@ -1,7 +0,0 @@
1
- import type { RawSlotDefinition } from '../../../types/component.js';
2
- import type { AstNode } from '../types/svelte-ast-node.js';
3
- export declare function extractTemplateSlots(fragment: AstNode): RawSlotDefinition[];
4
- export declare function mergeSlots(fromSnippetProps: RawSlotDefinition[], fromTemplate: RawSlotDefinition[]): {
5
- slots: RawSlotDefinition[];
6
- mixedWarning: boolean;
7
- };
@@ -1,63 +0,0 @@
1
- export function extractTemplateSlots(fragment) {
2
- const slots = new Map();
3
- const seen = new Set();
4
- walk(fragment);
5
- return [...slots.entries()]
6
- .map(([name, isDefault]) => ({ name, isDefault }))
7
- .sort((a, b) => a.name.localeCompare(b.name));
8
- function walk(node) {
9
- if (!node)
10
- return;
11
- if (node.type === 'SlotElement') {
12
- const name = readSlotName(node);
13
- if (!seen.has(name)) {
14
- seen.add(name);
15
- slots.set(name, name === 'default');
16
- }
17
- }
18
- const children = node['nodes'] ?? node['children'] ?? [];
19
- for (const child of children)
20
- walk(child);
21
- const fragmentChild = node['fragment'];
22
- if (fragmentChild)
23
- walk(fragmentChild);
24
- }
25
- }
26
- function readSlotName(slotElement) {
27
- const attrs = slotElement['attributes'] ?? [];
28
- for (const attr of attrs) {
29
- if (attr['name'] !== 'name')
30
- continue;
31
- const value = attr['value'];
32
- if (Array.isArray(value)) {
33
- for (const item of value) {
34
- if (item.type === 'Text' && typeof item['data'] === 'string')
35
- return item['data'];
36
- }
37
- }
38
- }
39
- return 'default';
40
- }
41
- export function mergeSlots(fromSnippetProps, fromTemplate) {
42
- if (fromSnippetProps.length === 0)
43
- return { slots: fromTemplate, mixedWarning: false };
44
- if (fromTemplate.length === 0)
45
- return { slots: fromSnippetProps, mixedWarning: false };
46
- const byName = new Map();
47
- for (const slot of fromSnippetProps)
48
- byName.set(slot.name, slot);
49
- const snippetHasDefault = fromSnippetProps.some((slot) => slot.isDefault);
50
- let mixed = false;
51
- for (const slot of fromTemplate) {
52
- if (slot.isDefault && snippetHasDefault) {
53
- mixed = true;
54
- continue;
55
- }
56
- if (byName.has(slot.name)) {
57
- mixed = true;
58
- continue;
59
- }
60
- byName.set(slot.name, slot);
61
- }
62
- return { slots: [...byName.values()], mixedWarning: mixed };
63
- }
@@ -1,3 +0,0 @@
1
- import type { ResolvedTypeMember } from './resolve-svelte-type-members.js';
2
- import type { PropsExtractionResult } from './extract-svelte-props.js';
3
- export declare function extractFromTypeMembersOnly(typeMembers: ResolvedTypeMember[]): PropsExtractionResult;