@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
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experience-design-system-extraction",
3
- "version": "2.36.2-dev-build-c4497102.0",
3
+ "version": "2.36.2-dev-build-a6f80ae6.0",
4
4
  "description": "Component extraction engine for the Contentful Experience Design System SDK",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,4 +1,4 @@
1
- import type { ComponentExtractionResult } from '../../types/component.js';
1
+ import type { ComponentExtractionResult } from '../types.js';
2
2
  export declare function extractAstroComponents(filePaths: string[], onProgress?: (p: {
3
3
  filesProcessed: number;
4
4
  componentsFound: number;
@@ -0,0 +1,226 @@
1
+ import os from 'node:os';
2
+ import { basename } from 'node:path';
3
+ import { Project, Node } from 'ts-morph';
4
+ import { createSortedExtractionResult, runFileExtractionWorkers } from './file-extraction-workers.js';
5
+ import { resolveTypeProperty } from './resolve-type-property.js';
6
+ import { getSourceLineMetadata } from './source-line-metadata.js';
7
+ function extractAllowedValues(typeText) {
8
+ // Check if the type is a union of string literals like 'a' | 'b' | 'c'
9
+ const parts = typeText.split('|').map((p) => p.trim());
10
+ const literals = parts.filter((p) => /^['"]/.test(p)).map((p) => p.replace(/^['"]|['"]$/g, ''));
11
+ return literals.length >= 2 ? literals.sort() : undefined;
12
+ }
13
+ function usesAstroProps(initializer) {
14
+ if (!initializer)
15
+ return false;
16
+ if (initializer.getText() === 'Astro.props')
17
+ return true;
18
+ let found = false;
19
+ initializer.forEachDescendant((node) => {
20
+ if (found)
21
+ return false;
22
+ if (Node.isPropertyAccessExpression(node) && node.getText() === 'Astro.props') {
23
+ found = true;
24
+ return false;
25
+ }
26
+ return undefined;
27
+ });
28
+ return found;
29
+ }
30
+ function extractBindingPropName(element) {
31
+ if (element.getText().startsWith('...'))
32
+ return null;
33
+ return element.getPropertyNameNode()?.getText() ?? element.getNameNode().getText();
34
+ }
35
+ function createAstroFrontmatterProject() {
36
+ return new Project({
37
+ compilerOptions: {
38
+ strict: false,
39
+ target: 99,
40
+ module: 99,
41
+ allowJs: true,
42
+ },
43
+ useInMemoryFileSystem: true,
44
+ skipAddingFilesFromTsConfig: true,
45
+ });
46
+ }
47
+ function forEachAstroPropsBinding(frontmatter, visit) {
48
+ const sf = createAstroFrontmatterProject().createSourceFile('__frontmatter__.ts', frontmatter);
49
+ sf.forEachDescendant((node) => {
50
+ if (!Node.isVariableDeclaration(node))
51
+ return;
52
+ const initializer = node.getInitializer();
53
+ if (!initializer || !usesAstroProps(initializer))
54
+ return;
55
+ const nameNode = node.getNameNode();
56
+ if (!Node.isObjectBindingPattern(nameNode))
57
+ return;
58
+ for (const element of nameNode.getElements())
59
+ visit(element);
60
+ });
61
+ }
62
+ function extractFallbackPropsFromFrontmatter(frontmatter) {
63
+ const props = new Map();
64
+ forEachAstroPropsBinding(frontmatter, (element) => {
65
+ const propName = extractBindingPropName(element);
66
+ if (!propName)
67
+ return;
68
+ props.set(propName, {
69
+ name: propName,
70
+ type: 'any',
71
+ required: !element.getInitializer(),
72
+ });
73
+ });
74
+ return [...props.values()].sort((a, b) => a.name.localeCompare(b.name));
75
+ }
76
+ function mergeProps(...propGroups) {
77
+ const merged = new Map();
78
+ for (const props of propGroups) {
79
+ for (const prop of props) {
80
+ const existing = merged.get(prop.name);
81
+ merged.set(prop.name, existing
82
+ ? {
83
+ ...existing,
84
+ ...prop,
85
+ required: existing.required && prop.required,
86
+ }
87
+ : prop);
88
+ }
89
+ }
90
+ return [...merged.values()].sort((a, b) => a.name.localeCompare(b.name));
91
+ }
92
+ function extractPropsFromFrontmatter(frontmatter) {
93
+ const sf = createAstroFrontmatterProject().createSourceFile('__frontmatter__.ts', frontmatter);
94
+ const props = [];
95
+ // Find `interface Props` or `type Props = ...`
96
+ const propsInterface = sf.getInterface('Props');
97
+ const propsTypeAlias = sf.getTypeAlias('Props');
98
+ if (propsInterface) {
99
+ for (const member of propsInterface.getProperties()) {
100
+ const name = member.getName();
101
+ const typeText = member.getTypeNode()?.getText() ?? 'any';
102
+ const required = !member.hasQuestionToken();
103
+ const allowedValues = extractAllowedValues(typeText);
104
+ props.push({
105
+ name,
106
+ type: typeText,
107
+ required,
108
+ ...(allowedValues && { allowedValues }),
109
+ sourceStartLine: member.getStartLineNumber(),
110
+ sourceEndLine: member.getEndLineNumber(),
111
+ });
112
+ }
113
+ }
114
+ else if (propsTypeAlias) {
115
+ const type = propsTypeAlias.getType();
116
+ for (const property of type.getProperties()) {
117
+ const resolved = resolveTypeProperty(property);
118
+ if (!resolved)
119
+ continue;
120
+ const { name, declaration: decl, typeText, required } = resolved;
121
+ const allowedValues = extractAllowedValues(typeText);
122
+ props.push({
123
+ name,
124
+ type: typeText,
125
+ required,
126
+ ...(allowedValues && { allowedValues }),
127
+ ...getSourceLineMetadata(decl),
128
+ });
129
+ }
130
+ }
131
+ return props.sort((a, b) => a.name.localeCompare(b.name));
132
+ }
133
+ function extractDefaultsFromFrontmatter(frontmatter) {
134
+ const defaults = new Map();
135
+ forEachAstroPropsBinding(frontmatter, (element) => {
136
+ const propName = extractBindingPropName(element);
137
+ if (!propName)
138
+ return;
139
+ const elementInitializer = element.getInitializer();
140
+ if (!elementInitializer)
141
+ return;
142
+ const value = elementInitializer.getText().replace(/^['"]|['"]$/g, '');
143
+ defaults.set(propName, value);
144
+ });
145
+ return defaults;
146
+ }
147
+ function extractSlotsFromTemplate(template) {
148
+ const slots = [];
149
+ const seen = new Set();
150
+ const slotRegex = /<slot(?:\s+name=["']([^"']+)["'])?\s*\/?>/g;
151
+ let match;
152
+ while ((match = slotRegex.exec(template)) !== null) {
153
+ const slotName = match[1] ?? 'default';
154
+ if (!seen.has(slotName)) {
155
+ seen.add(slotName);
156
+ slots.push({ name: slotName, isDefault: slotName === 'default' });
157
+ }
158
+ }
159
+ return slots;
160
+ }
161
+ function extractSlotsFromFrontmatter(frontmatter) {
162
+ const slots = [];
163
+ const seen = new Set();
164
+ const slotRenderRegex = /Astro\.slots\.render\(\s*['"]([^'"]+)['"]\s*\)/g;
165
+ let match;
166
+ while ((match = slotRenderRegex.exec(frontmatter)) !== null) {
167
+ const slotName = match[1];
168
+ if (!seen.has(slotName)) {
169
+ seen.add(slotName);
170
+ slots.push({ name: slotName, isDefault: slotName === 'default' });
171
+ }
172
+ }
173
+ return slots;
174
+ }
175
+ function mergeSlots(...slotGroups) {
176
+ const merged = [];
177
+ const seen = new Set();
178
+ for (const slots of slotGroups) {
179
+ for (const slot of slots) {
180
+ if (seen.has(slot.name))
181
+ continue;
182
+ seen.add(slot.name);
183
+ merged.push(slot);
184
+ }
185
+ }
186
+ return merged;
187
+ }
188
+ function extractFromAstroFile(filePath, source) {
189
+ const name = basename(filePath, '.astro');
190
+ // Split on `---` fences: frontmatter is between first and second `---`
191
+ // If there is no `---`, the entire file is a template-only component
192
+ const fenceIndex = source.startsWith('---') ? 0 : -1;
193
+ let frontmatter = '';
194
+ let template = source;
195
+ if (fenceIndex !== -1) {
196
+ const endFenceIndex = source.indexOf('---', fenceIndex + 3);
197
+ if (endFenceIndex !== -1) {
198
+ frontmatter = source.slice(fenceIndex + 3, endFenceIndex);
199
+ template = source.slice(endFenceIndex + 3);
200
+ }
201
+ }
202
+ const props = frontmatter
203
+ ? mergeProps(extractFallbackPropsFromFrontmatter(frontmatter), extractPropsFromFrontmatter(frontmatter))
204
+ : [];
205
+ const defaults = frontmatter ? extractDefaultsFromFrontmatter(frontmatter) : new Map();
206
+ const propsWithDefaults = props.map((p) => {
207
+ const defaultValue = defaults.get(p.name);
208
+ return defaultValue ? { ...p, defaultValue } : p;
209
+ });
210
+ const slots = mergeSlots(extractSlotsFromTemplate(template), extractSlotsFromFrontmatter(frontmatter));
211
+ return {
212
+ name,
213
+ source: filePath,
214
+ sourcePath: filePath,
215
+ framework: 'astro',
216
+ props: propsWithDefaults,
217
+ slots,
218
+ };
219
+ }
220
+ export async function extractAstroComponents(filePaths, onProgress) {
221
+ const astroFiles = filePaths.filter((f) => f.endsWith('.astro'));
222
+ const { items: components, warnings } = await runFileExtractionWorkers(astroFiles, os.cpus().length, async (filePath, source) => ({
223
+ item: extractFromAstroFile(filePath, source),
224
+ }), (filePath, error) => `Failed to extract from ${filePath}: ${error instanceof Error ? error.message : String(error)}`, onProgress);
225
+ return createSortedExtractionResult(components, warnings);
226
+ }
@@ -1,9 +1,10 @@
1
+ import type { Project, SourceFile } from 'ts-morph';
1
2
  export type FileExtractionOutcome<T, M = undefined> = {
2
3
  item: T | null;
3
4
  warnings?: string[];
4
5
  metadata?: M;
5
6
  };
6
- export type FileExtractionProgress = {
7
+ type FileExtractionProgress = {
7
8
  filesProcessed: number;
8
9
  componentsFound: number;
9
10
  };
@@ -11,3 +12,14 @@ export declare function runFileExtractionWorkers<T, M = undefined>(filePaths: st
11
12
  items: T[];
12
13
  warnings: string[];
13
14
  }>;
15
+ export declare function createSortedExtractionResult<T extends {
16
+ name: string;
17
+ }>(components: T[], warnings: string[]): {
18
+ components: T[];
19
+ warnings: string[];
20
+ };
21
+ export declare function extractProjectSourceFiles<T>(project: Project, extractFile: (sourceFile: SourceFile, warnings: string[]) => T[]): {
22
+ items: T[];
23
+ warnings: string[];
24
+ };
25
+ export {};
@@ -27,3 +27,22 @@ export async function runFileExtractionWorkers(filePaths, concurrency, extractFi
27
27
  await Promise.all(Array.from({ length: Math.min(concurrency, filePaths.length) }, worker));
28
28
  return { items, warnings };
29
29
  }
30
+ export function createSortedExtractionResult(components, warnings) {
31
+ return {
32
+ components: components.sort((a, b) => a.name.localeCompare(b.name)),
33
+ warnings,
34
+ };
35
+ }
36
+ export function extractProjectSourceFiles(project, extractFile) {
37
+ const warnings = [];
38
+ const items = [];
39
+ for (const sourceFile of project.getSourceFiles()) {
40
+ try {
41
+ items.push(...extractFile(sourceFile, warnings));
42
+ }
43
+ catch (error) {
44
+ warnings.push(`Failed to extract from ${sourceFile.getFilePath()}: ${error instanceof Error ? error.message : String(error)}`);
45
+ }
46
+ }
47
+ return { items, warnings };
48
+ }
@@ -0,0 +1,17 @@
1
+ import type { RawComponentDefinition } from '../types.js';
2
+ interface NonAuthorableResult {
3
+ skip: boolean;
4
+ reason?: string;
5
+ }
6
+ /**
7
+ * Decides whether a component is non-authorable infrastructure (Context.Provider,
8
+ * analytics shim, layout-only utility, etc.) and should be filtered out of the
9
+ * analyze TUI before authoring-token generation.
10
+ *
11
+ * Uses prop-shape signals only — no component-name or source-path patterns.
12
+ * A design system can live anywhere under any naming convention; relying on
13
+ * suffixes like `*Provider` or paths like `src/lib/` would silently fail in
14
+ * other repos.
15
+ */
16
+ export declare function isNonAuthorableComponent(component: RawComponentDefinition): NonAuthorableResult;
17
+ export {};
@@ -0,0 +1,60 @@
1
+ const HANDLER_TYPE_PATTERN = /=>|EventHandler|Dispatch<|SetStateAction/;
2
+ const REF_TYPE_PATTERN = /Ref<|RefObject<|MutableRefObject/;
3
+ function isHandlerOrRefProp(prop) {
4
+ if (HANDLER_TYPE_PATTERN.test(prop.type))
5
+ return true;
6
+ if (REF_TYPE_PATTERN.test(prop.type))
7
+ return true;
8
+ if (/^on[A-Z]/.test(prop.name) || /^set[A-Z]/.test(prop.name))
9
+ return true;
10
+ if (prop.name === 'ref' || prop.name === 'innerRef')
11
+ return true;
12
+ return false;
13
+ }
14
+ /**
15
+ * Decides whether a component is non-authorable infrastructure (Context.Provider,
16
+ * analytics shim, layout-only utility, etc.) and should be filtered out of the
17
+ * analyze TUI before authoring-token generation.
18
+ *
19
+ * Uses prop-shape signals only — no component-name or source-path patterns.
20
+ * A design system can live anywhere under any naming convention; relying on
21
+ * suffixes like `*Provider` or paths like `src/lib/` would silently fail in
22
+ * other repos.
23
+ */
24
+ export function isNonAuthorableComponent(component) {
25
+ const { props, slots, usesCreateContext } = component;
26
+ // R1: zero props AND zero slots — nothing for an editor to author.
27
+ // Catches analytics scripts, GTM tags, layout fixers, security tokens, etc.
28
+ if (props.length === 0 && slots.length === 0) {
29
+ return { skip: true, reason: 'component has no props and no slots' };
30
+ }
31
+ // R2: createContext source + prop literally named `value` — canonical
32
+ // `<Context.Provider value={...}>` call site.
33
+ if (usesCreateContext && props.some((p) => p.name === 'value')) {
34
+ return {
35
+ skip: true,
36
+ reason: 'source uses createContext and component exposes a Context.Provider value prop',
37
+ };
38
+ }
39
+ // R3: createContext source + zero props — Provider wrapper that hard-codes
40
+ // the context value internally (e.g. FontProvider, BottomSheetProvider).
41
+ if (usesCreateContext && props.length === 0) {
42
+ return { skip: true, reason: 'source uses createContext and component has no props' };
43
+ }
44
+ // R4: createContext source + exactly one non-handler prop — Provider that
45
+ // takes the context value as its sole data prop, named after the data
46
+ // (e.g. `LocaleProvider({ locale })`, `NavigationProvider({ navItems })`).
47
+ if (usesCreateContext && props.length === 1 && !isHandlerOrRefProp(props[0])) {
48
+ return {
49
+ skip: true,
50
+ reason: 'source uses createContext and component has a single non-handler prop',
51
+ };
52
+ }
53
+ // R5: every prop is a handler/ref — pure data plumbing, no authoring surface.
54
+ // Catches components like `OsanoCookiePlaceholder({ onBannerLoaded })` or
55
+ // `FeedbackCard({ setShowModal })`.
56
+ if (props.length > 0 && props.every(isHandlerOrRefProp)) {
57
+ return { skip: true, reason: 'every prop is a handler or ref' };
58
+ }
59
+ return { skip: false };
60
+ }
@@ -0,0 +1,7 @@
1
+ import type { ComponentExtractionResult, ExtractorOptions } from '../types.js';
2
+ type ExtractProgress = {
3
+ filesProcessed: number;
4
+ componentsFound: number;
5
+ };
6
+ export declare function extractComponents(filePaths: string[], onProgress?: (progress: ExtractProgress) => void, opts?: ExtractorOptions): Promise<ComponentExtractionResult>;
7
+ export {};