@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.
- package/dist/package.json +1 -1
- package/dist/src/extract/{framework-adapters/astro/extractor.d.ts → astro.d.ts} +1 -1
- package/dist/src/extract/astro.js +226 -0
- package/dist/src/extract/{framework-adapters/shared/helpers/file-processing/file-workers.d.ts → file-extraction-workers.d.ts} +13 -1
- package/dist/src/extract/{framework-adapters/shared/helpers/file-processing/file-workers.js → file-extraction-workers.js} +19 -0
- package/dist/src/extract/non-authorable-filter.d.ts +17 -0
- package/dist/src/extract/non-authorable-filter.js +60 -0
- package/dist/src/extract/pipeline.d.ts +7 -0
- package/dist/src/extract/pipeline.js +343 -0
- package/dist/src/extract/{framework-adapters/react/extractor.d.ts → react.d.ts} +1 -1
- package/dist/src/extract/react.js +2069 -0
- package/dist/src/extract/scoring.d.ts +12 -0
- package/dist/src/extract/{services/quality/helpers/scoring/collect-scoring-inputs.js → scoring.js} +24 -10
- package/dist/src/extract/slot-detection.d.ts +35 -0
- package/dist/src/extract/slot-detection.js +98 -0
- package/dist/src/extract/{services/quality/helpers/inspection/inspect-component-source.d.ts → source-inspection.d.ts} +6 -3
- package/dist/src/extract/{services/quality/helpers/inspection/inspect-component-source.js → source-inspection.js} +65 -5
- package/dist/src/extract/{framework-adapters/shared/helpers/get-node-source-lines.d.ts → source-line-metadata.d.ts} +1 -1
- package/dist/src/extract/{framework-adapters/stencil/extractor.d.ts → stencil.d.ts} +1 -1
- package/dist/src/extract/stencil.js +312 -0
- package/dist/src/extract/structural-slot-evidence.d.ts +63 -0
- package/dist/src/extract/structural-slot-evidence.js +278 -0
- package/dist/src/extract/{framework-adapters/svelte/extractor.d.ts → svelte.d.ts} +1 -2
- package/dist/src/extract/svelte.js +1309 -0
- package/dist/src/extract/tsx-shared.d.ts +37 -0
- package/dist/src/extract/tsx-shared.js +368 -0
- package/dist/src/extract/{services/quality/helpers/inspection/validate-extracted-components.d.ts → validate.d.ts} +1 -1
- package/dist/src/extract/{framework-adapters/vue-tsx/extractor.d.ts → vue-tsx.d.ts} +1 -1
- package/dist/src/extract/vue-tsx.js +449 -0
- package/dist/src/extract/{framework-adapters/vue/extractor.d.ts → vue.d.ts} +1 -1
- package/dist/src/extract/vue.js +605 -0
- package/dist/src/extract/{framework-adapters/web-components/extractor.d.ts → web-components.d.ts} +1 -1
- package/dist/src/extract/web-components.js +863 -0
- package/dist/src/index.d.ts +21 -27
- package/dist/src/index.js +17 -21
- package/dist/src/{extract/services/classification/classify-component-props.d.ts → pre-classify.d.ts} +5 -3
- package/dist/src/{extract/services/classification/classify-component-props.js → pre-classify.js} +100 -8
- package/dist/src/{extract/types/component.d.ts → types.d.ts} +22 -0
- package/dist/src/{extract/types/display.js → types.js} +1 -1
- package/package.json +1 -1
- package/dist/src/extract/controller/extract-controller.d.ts +0 -10
- package/dist/src/extract/controller/extract-controller.js +0 -33
- package/dist/src/extract/controller/helpers/validate-endpoint-request.d.ts +0 -2
- package/dist/src/extract/controller/helpers/validate-endpoint-request.js +0 -24
- package/dist/src/extract/framework-adapters/astro/extractor.js +0 -45
- package/dist/src/extract/framework-adapters/astro/frontmatter.d.ts +0 -11
- package/dist/src/extract/framework-adapters/astro/frontmatter.js +0 -96
- package/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.d.ts +0 -4
- package/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js +0 -47
- package/dist/src/extract/framework-adapters/astro/slots.d.ts +0 -7
- package/dist/src/extract/framework-adapters/astro/slots.js +0 -44
- package/dist/src/extract/framework-adapters/react/extractor.js +0 -31
- package/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.d.ts +0 -4
- package/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js +0 -73
- package/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.d.ts +0 -14
- package/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js +0 -220
- package/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.d.ts +0 -5
- package/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js +0 -32
- package/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.d.ts +0 -2
- package/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js +0 -59
- package/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.d.ts +0 -8
- package/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js +0 -29
- package/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.d.ts +0 -2
- package/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js +0 -64
- package/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.d.ts +0 -4
- package/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js +0 -64
- package/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.d.ts +0 -5
- package/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js +0 -170
- package/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.d.ts +0 -15
- package/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js +0 -231
- package/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.d.ts +0 -4
- package/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js +0 -50
- package/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.d.ts +0 -5
- package/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js +0 -23
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.d.ts +0 -2
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js +0 -25
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.d.ts +0 -6
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js +0 -48
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.d.ts +0 -15
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js +0 -106
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.d.ts +0 -3
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js +0 -64
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.d.ts +0 -15
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js +0 -318
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.d.ts +0 -6
- package/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js +0 -44
- package/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.d.ts +0 -4
- package/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js +0 -52
- package/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.d.ts +0 -6
- package/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js +0 -69
- package/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.d.ts +0 -4
- package/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js +0 -131
- package/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.d.ts +0 -8
- package/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js +0 -22
- package/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.d.ts +0 -14
- package/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js +0 -86
- package/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.d.ts +0 -8
- package/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js +0 -44
- package/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.d.ts +0 -5
- package/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js +0 -10
- package/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.d.ts +0 -2
- package/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js +0 -13
- package/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.d.ts +0 -5
- package/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js +0 -13
- package/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.d.ts +0 -6
- package/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js +0 -6
- package/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.d.ts +0 -2
- package/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js +0 -62
- package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.d.ts +0 -7
- package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js +0 -93
- package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.d.ts +0 -6
- package/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js +0 -58
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.d.ts +0 -13
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js +0 -76
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.d.ts +0 -12
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js +0 -35
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.d.ts +0 -14
- package/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js +0 -54
- package/dist/src/extract/framework-adapters/stencil/extractor.js +0 -82
- package/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.d.ts +0 -7
- package/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js +0 -32
- package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.d.ts +0 -5
- package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js +0 -62
- package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.d.ts +0 -6
- package/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js +0 -87
- package/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.d.ts +0 -5
- package/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js +0 -39
- package/dist/src/extract/framework-adapters/svelte/extractor.js +0 -27
- package/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.d.ts +0 -6
- package/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js +0 -51
- package/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.d.ts +0 -3
- package/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js +0 -52
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.d.ts +0 -7
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js +0 -90
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.d.ts +0 -15
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js +0 -46
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.d.ts +0 -7
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js +0 -64
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.d.ts +0 -4
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js +0 -58
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.d.ts +0 -4
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js +0 -85
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.d.ts +0 -22
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js +0 -55
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.d.ts +0 -7
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js +0 -63
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.d.ts +0 -3
- package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js +0 -31
- package/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.d.ts +0 -8
- package/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js +0 -91
- package/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.d.ts +0 -1
- package/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js +0 -26
- package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.d.ts +0 -3
- package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js +0 -91
- package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.d.ts +0 -11
- package/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js +0 -68
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.d.ts +0 -1
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js +0 -90
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.d.ts +0 -2
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js +0 -20
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.d.ts +0 -3
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js +0 -68
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.d.ts +0 -4
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js +0 -68
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.d.ts +0 -6
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js +0 -30
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.d.ts +0 -13
- package/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js +0 -192
- package/dist/src/extract/framework-adapters/svelte/types/svelte-ast-node.d.ts +0 -12
- package/dist/src/extract/framework-adapters/svelte/types/svelte-ast-node.js +0 -1
- package/dist/src/extract/framework-adapters/vue/extractor.js +0 -61
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.d.ts +0 -3
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js +0 -67
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.d.ts +0 -4
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js +0 -72
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.d.ts +0 -8
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js +0 -64
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.d.ts +0 -2
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js +0 -66
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.d.ts +0 -24
- package/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js +0 -56
- package/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.d.ts +0 -2
- package/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js +0 -9
- package/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.d.ts +0 -1
- package/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js +0 -76
- package/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.d.ts +0 -2
- package/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js +0 -77
- package/dist/src/extract/framework-adapters/vue-tsx/extractor.js +0 -82
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.d.ts +0 -5
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js +0 -189
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.d.ts +0 -4
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js +0 -91
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.d.ts +0 -11
- package/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js +0 -95
- package/dist/src/extract/framework-adapters/web-components/extractor.js +0 -55
- package/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.d.ts +0 -4
- package/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js +0 -67
- package/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.d.ts +0 -9
- package/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js +0 -11
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.d.ts +0 -3
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js +0 -65
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.d.ts +0 -3
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js +0 -60
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.d.ts +0 -4
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js +0 -16
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.d.ts +0 -3
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js +0 -24
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.d.ts +0 -3
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js +0 -27
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.d.ts +0 -6
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js +0 -56
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.d.ts +0 -4
- package/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js +0 -49
- package/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.d.ts +0 -9
- package/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js +0 -19
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.d.ts +0 -2
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js +0 -59
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.d.ts +0 -2
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js +0 -54
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.d.ts +0 -7
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js +0 -47
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.d.ts +0 -4
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js +0 -93
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.d.ts +0 -4
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js +0 -79
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.d.ts +0 -7
- package/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js +0 -62
- package/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.d.ts +0 -5
- package/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js +0 -63
- package/dist/src/extract/helpers/evidence/ast/detect-react-node-types.d.ts +0 -2
- package/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js +0 -24
- package/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.d.ts +0 -14
- package/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js +0 -85
- package/dist/src/extract/helpers/evidence/collect-jsx-component-references.d.ts +0 -5
- package/dist/src/extract/helpers/evidence/collect-jsx-component-references.js +0 -52
- package/dist/src/extract/helpers/evidence/detect-slot-from-prop.d.ts +0 -16
- package/dist/src/extract/helpers/evidence/detect-slot-from-prop.js +0 -39
- package/dist/src/extract/orchestrator/execute-extraction-orchestrator.d.ts +0 -13
- package/dist/src/extract/orchestrator/execute-extraction-orchestrator.js +0 -17
- package/dist/src/extract/services/classification/helpers/check-prop-types.d.ts +0 -7
- package/dist/src/extract/services/classification/helpers/check-prop-types.js +0 -22
- package/dist/src/extract/services/classification/helpers/detect-dom-props.d.ts +0 -2
- package/dist/src/extract/services/classification/helpers/detect-dom-props.js +0 -63
- package/dist/src/extract/services/deduplication/deduplicate-components.d.ts +0 -2
- package/dist/src/extract/services/deduplication/deduplicate-components.js +0 -58
- package/dist/src/extract/services/deduplication/helpers/component-path-analysis.d.ts +0 -10
- package/dist/src/extract/services/deduplication/helpers/component-path-analysis.js +0 -85
- package/dist/src/extract/services/deduplication/helpers/component-path-scoring.d.ts +0 -10
- package/dist/src/extract/services/deduplication/helpers/component-path-scoring.js +0 -73
- package/dist/src/extract/services/extraction/extract-components.d.ts +0 -3
- package/dist/src/extract/services/extraction/extract-components.js +0 -19
- package/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.d.ts +0 -2
- package/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js +0 -18
- package/dist/src/extract/services/extraction/helpers/filter-hook-components.d.ts +0 -6
- package/dist/src/extract/services/extraction/helpers/filter-hook-components.js +0 -18
- package/dist/src/extract/services/extraction/helpers/register-extractors.d.ts +0 -8
- package/dist/src/extract/services/extraction/helpers/register-extractors.js +0 -71
- package/dist/src/extract/services/extraction/helpers/run-extractor-batches.d.ts +0 -4
- package/dist/src/extract/services/extraction/helpers/run-extractor-batches.js +0 -24
- package/dist/src/extract/services/quality/evaluate-extraction-quality.d.ts +0 -4
- package/dist/src/extract/services/quality/evaluate-extraction-quality.js +0 -61
- package/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.d.ts +0 -28
- package/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js +0 -67
- package/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.d.ts +0 -16
- package/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js +0 -63
- package/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.d.ts +0 -14
- package/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.d.ts +0 -6
- package/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js +0 -12
- package/dist/src/extract/types/classification.d.ts +0 -4
- package/dist/src/extract/types/classification.js +0 -1
- package/dist/src/extract/types/component-extractor.d.ts +0 -7
- package/dist/src/extract/types/component-extractor.js +0 -1
- package/dist/src/extract/types/component.js +0 -1
- package/dist/src/extract/types/contract.d.ts +0 -16
- package/dist/src/extract/types/contract.js +0 -1
- package/dist/src/extract/types/display.d.ts +0 -3
- package/dist/src/extract/types/options.d.ts +0 -15
- package/dist/src/extract/types/options.js +0 -1
- package/dist/src/extract/types/scoring.d.ts +0 -9
- package/dist/src/extract/types/scoring.js +0 -1
- package/dist/src/extract/types/source-inspection.d.ts +0 -5
- package/dist/src/extract/types/source-inspection.js +0 -1
- /package/dist/src/extract/{helpers/evidence/parse-source-imports.d.ts → parse-imported-names.d.ts} +0 -0
- /package/dist/src/extract/{helpers/evidence/parse-source-imports.js → parse-imported-names.js} +0 -0
- /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-import-file-path.d.ts → resolve-local-module.d.ts} +0 -0
- /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-import-file-path.js → resolve-local-module.js} +0 -0
- /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-type-symbol.d.ts → resolve-type-property.d.ts} +0 -0
- /package/dist/src/extract/{framework-adapters/shared/helpers/resolve-type-symbol.js → resolve-type-property.js} +0 -0
- /package/dist/src/extract/{helpers/evidence/collect-allowed-component-names.d.ts → slot-allowed-components.d.ts} +0 -0
- /package/dist/src/extract/{helpers/evidence/collect-allowed-component-names.js → slot-allowed-components.js} +0 -0
- /package/dist/src/extract/{framework-adapters/shared/helpers/get-node-source-lines.js → source-line-metadata.js} +0 -0
- /package/dist/src/extract/{services/quality/helpers/inspection/validate-extracted-components.js → validate.js} +0 -0
package/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.d.ts
DELETED
|
@@ -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[];
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.d.ts
DELETED
|
@@ -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;
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.d.ts
DELETED
|
@@ -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[];
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.d.ts
DELETED
|
@@ -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;
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js
DELETED
|
@@ -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
|
-
}
|
package/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.d.ts
DELETED
|
@@ -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
|
-
}
|