@contentful/experience-design-system-cli 2.37.1-dev-build-414ce827.0 → 2.37.1-dev-build-e051d273.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/index.js CHANGED
@@ -8266,8 +8266,8 @@ function getWorkspacePackageDirs(workspaceRoot) {
8266
8266
  continue;
8267
8267
  const entryPath = join5(dir, entry);
8268
8268
  try {
8269
- const stat5 = statSync2(entryPath);
8270
- if (stat5.isDirectory()) {
8269
+ const stat6 = statSync2(entryPath);
8270
+ if (stat6.isDirectory()) {
8271
8271
  scanDir(entryPath, depth + 1);
8272
8272
  }
8273
8273
  } catch {
@@ -9164,8 +9164,8 @@ function extractAccessorProperties(classDecl, applyRuntimeFieldDenylist = false)
9164
9164
  accessors.set(name, entry);
9165
9165
  }
9166
9166
  for (const [name, { getter, setter }] of accessors) {
9167
- const hasPropertyDecorator2 = getter?.getDecorators().some((decorator) => decorator.getName() === "property") || setter?.getDecorators().some((decorator) => decorator.getName() === "property");
9168
- if (!hasPropertyDecorator2 && !(getter && setter))
9167
+ const hasPropertyDecorator = getter?.getDecorators().some((decorator) => decorator.getName() === "property") || setter?.getDecorators().some((decorator) => decorator.getName() === "property");
9168
+ if (!hasPropertyDecorator && !(getter && setter))
9169
9169
  continue;
9170
9170
  const type = getter?.getReturnTypeNode()?.getText() ?? setter?.getParameters()[0]?.getTypeNode()?.getText() ?? "any";
9171
9171
  const accessorNode = getter ?? setter;
@@ -12911,15 +12911,15 @@ import { statSync as statSync3 } from "node:fs";
12911
12911
  import path4 from "node:path";
12912
12912
  function collectFiles(root, options = {}) {
12913
12913
  const resolved = path4.resolve(root);
12914
- let stat5;
12914
+ let stat6;
12915
12915
  try {
12916
- stat5 = statSync3(resolved);
12916
+ stat6 = statSync3(resolved);
12917
12917
  } catch (err) {
12918
12918
  return { ok: false, failure: classifyStatError(err.code), rootPath: resolved };
12919
12919
  }
12920
- if (stat5.isFile())
12920
+ if (stat6.isFile())
12921
12921
  return { ok: false, failure: "is-file", rootPath: resolved };
12922
- if (!stat5.isDirectory())
12922
+ if (!stat6.isDirectory())
12923
12923
  return { ok: false, failure: "not-directory", rootPath: resolved };
12924
12924
  const result = {
12925
12925
  filePaths: [],
@@ -12979,9 +12979,9 @@ function generateUlid(now = Date.now()) {
12979
12979
  tsBytes[i] = n & 255;
12980
12980
  n = Math.floor(n / 256);
12981
12981
  }
12982
- const ts6 = encodeBase32(tsBytes, 10);
12982
+ const ts3 = encodeBase32(tsBytes, 10);
12983
12983
  const rand = encodeBase32(randomBytes2(10), 16);
12984
- return (ts6 + rand).toUpperCase();
12984
+ return (ts3 + rand).toUpperCase();
12985
12985
  }
12986
12986
  var CROCKFORD;
12987
12987
  var init_generate_ulid = __esm({
@@ -16475,1506 +16475,7 @@ var init_component = __esm({
16475
16475
  }
16476
16476
  });
16477
16477
 
16478
- // packages/experience-design-system-extraction/dist/src/extract/types/display.js
16479
- var init_display = __esm({
16480
- "packages/experience-design-system-extraction/dist/src/extract/types/display.js"() {
16481
- "use strict";
16482
- }
16483
- });
16484
-
16485
- // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-analysis.js
16486
- var init_component_path_analysis = __esm({
16487
- "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-analysis.js"() {
16488
- "use strict";
16489
- }
16490
- });
16491
-
16492
- // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-scoring.js
16493
- var init_component_path_scoring = __esm({
16494
- "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-scoring.js"() {
16495
- "use strict";
16496
- init_component_path_analysis();
16497
- }
16498
- });
16499
-
16500
- // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/deduplicate-components.js
16501
- var init_deduplicate_components = __esm({
16502
- "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/deduplicate-components.js"() {
16503
- "use strict";
16504
- init_component_path_scoring();
16505
- }
16506
- });
16507
-
16508
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/file-workers.js
16509
- var init_file_workers = __esm({
16510
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/file-workers.js"() {
16511
- "use strict";
16512
- }
16513
- });
16514
-
16515
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js
16516
- var init_result_normalizer = __esm({
16517
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js"() {
16518
- "use strict";
16519
- }
16520
- });
16521
-
16522
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-type-symbol.js
16523
- var init_resolve_type_symbol = __esm({
16524
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-type-symbol.js"() {
16525
- "use strict";
16526
- }
16527
- });
16528
-
16529
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/get-node-source-lines.js
16530
- var init_get_node_source_lines = __esm({
16531
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/get-node-source-lines.js"() {
16532
- "use strict";
16533
- }
16534
- });
16535
-
16536
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js
16537
- import { Node as Node10, Project as Project7 } from "ts-morph";
16538
- var init_collect_astro_props_bindings = __esm({
16539
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js"() {
16540
- "use strict";
16541
- }
16542
- });
16543
-
16544
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/frontmatter.js
16545
- var init_frontmatter = __esm({
16546
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/frontmatter.js"() {
16547
- "use strict";
16548
- init_resolve_type_symbol();
16549
- init_get_node_source_lines();
16550
- init_collect_astro_props_bindings();
16551
- }
16552
- });
16553
-
16554
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/slots.js
16555
- var init_slots = __esm({
16556
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/slots.js"() {
16557
- "use strict";
16558
- }
16559
- });
16560
-
16561
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/extractor.js
16562
- var init_extractor = __esm({
16563
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/extractor.js"() {
16564
- "use strict";
16565
- init_file_workers();
16566
- init_result_normalizer();
16567
- init_frontmatter();
16568
- init_slots();
16569
- }
16570
- });
16571
-
16572
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js
16573
- import ts3 from "typescript";
16574
- var init_resolve_tsx_tsconfig_path = __esm({
16575
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js"() {
16576
- "use strict";
16577
- }
16578
- });
16579
-
16580
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js
16581
- var init_find_tsx_workspace_package = __esm({
16582
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js"() {
16583
- "use strict";
16584
- }
16585
- });
16586
-
16587
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js
16588
- import { Node as Node11 } from "ts-morph";
16589
- var init_resolve_tsx_workspace_imports = __esm({
16590
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js"() {
16591
- "use strict";
16592
- init_resolve_tsx_tsconfig_path();
16593
- init_find_tsx_workspace_package();
16594
- }
16595
- });
16596
-
16597
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js
16598
- import { Node as Node12, SyntaxKind as SyntaxKind7 } from "ts-morph";
16599
- var init_tsx_node_utils = __esm({
16600
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js"() {
16601
- "use strict";
16602
- init_resolve_tsx_workspace_imports();
16603
- }
16604
- });
16605
-
16606
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js
16607
- import { Node as Node13 } from "ts-morph";
16608
- var init_tsx_renderable_exports = __esm({
16609
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js"() {
16610
- "use strict";
16611
- }
16612
- });
16613
-
16614
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js
16615
- import { Project as Project8 } from "ts-morph";
16616
- var init_tsx_shared = __esm({
16617
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js"() {
16618
- "use strict";
16619
- init_tsx_node_utils();
16620
- init_tsx_renderable_exports();
16621
- }
16622
- });
16623
-
16624
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-allowed-component-names.js
16625
- var init_collect_allowed_component_names = __esm({
16626
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-allowed-component-names.js"() {
16627
- "use strict";
16628
- }
16629
- });
16630
-
16631
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js
16632
- var init_build_component_lookup_maps = __esm({
16633
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js"() {
16634
- "use strict";
16635
- }
16636
- });
16637
-
16638
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js
16639
- var init_extract_react_allowed_components = __esm({
16640
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js"() {
16641
- "use strict";
16642
- init_collect_allowed_component_names();
16643
- init_build_component_lookup_maps();
16644
- }
16645
- });
16646
-
16647
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js
16648
- import { Node as Node14 } from "ts-morph";
16649
- var init_get_jsx_ast_data = __esm({
16650
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js"() {
16651
- "use strict";
16652
- }
16653
- });
16654
-
16655
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js
16656
- import { SyntaxKind as SyntaxKind8 } from "ts-morph";
16657
- var init_collect_structural_jsx_evidence = __esm({
16658
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js"() {
16659
- "use strict";
16660
- init_tsx_shared();
16661
- init_get_jsx_ast_data();
16662
- }
16663
- });
16664
-
16665
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-jsx-component-references.js
16666
- import { Node as Node15, SyntaxKind as SyntaxKind9 } from "ts-morph";
16667
- var init_collect_jsx_component_references = __esm({
16668
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-jsx-component-references.js"() {
16669
- "use strict";
16670
- init_collect_allowed_component_names();
16671
- init_get_jsx_ast_data();
16672
- init_collect_structural_jsx_evidence();
16673
- }
16674
- });
16675
-
16676
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js
16677
- var init_synthesize_react_structural_slots = __esm({
16678
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js"() {
16679
- "use strict";
16680
- init_collect_jsx_component_references();
16681
- init_build_component_lookup_maps();
16682
- }
16683
- });
16684
-
16685
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js
16686
- var init_resolve_react_prop_forwarding = __esm({
16687
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js"() {
16688
- "use strict";
16689
- }
16690
- });
16691
-
16692
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js
16693
- var init_detect_react_node_types = __esm({
16694
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js"() {
16695
- "use strict";
16696
- }
16697
- });
16698
-
16699
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/detect-slot-from-prop.js
16700
- var init_detect_slot_from_prop = __esm({
16701
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/detect-slot-from-prop.js"() {
16702
- "use strict";
16703
- init_detect_react_node_types();
16704
- init_detect_react_node_types();
16705
- }
16706
- });
16707
-
16708
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js
16709
- import { Node as Node16 } from "ts-morph";
16710
- var init_resolve_component_function = __esm({
16711
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js"() {
16712
- "use strict";
16713
- init_tsx_shared();
16714
- }
16715
- });
16716
-
16717
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js
16718
- import { Node as Node17, SyntaxKind as SyntaxKind10 } from "ts-morph";
16719
- var init_collect_prop_dataflow = __esm({
16720
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js"() {
16721
- "use strict";
16722
- init_tsx_shared();
16723
- init_resolve_component_function();
16724
- }
16725
- });
16726
-
16727
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js
16728
- var init_extract_react_slots = __esm({
16729
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js"() {
16730
- "use strict";
16731
- }
16732
- });
16733
-
16734
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js
16735
- import { Node as Node18 } from "ts-morph";
16736
- function createTextControlSurface2(onChangeType, specificProps) {
16737
- return [
16738
- { name: "autoComplete", type: "string", required: false },
16739
- ...specificProps,
16740
- { name: "disabled", type: "boolean", required: false },
16741
- { name: "name", type: "string", required: false },
16742
- { name: "onChange", type: onChangeType, required: false },
16743
- { name: "placeholder", type: "string", required: false },
16744
- { name: "readOnly", type: "boolean", required: false },
16745
- { name: "required", type: "boolean", required: false },
16746
- {
16747
- name: "value",
16748
- type: "string | number | readonly string[]",
16749
- required: false
16750
- }
16751
- ];
16752
- }
16753
- var DOM_ATTRIBUTE_PROP_SURFACES2;
16754
- var init_dom_attribute_surfaces = __esm({
16755
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js"() {
16756
- "use strict";
16757
- DOM_ATTRIBUTE_PROP_SURFACES2 = {
16758
- HTMLProps: [],
16759
- HTMLAttributes: [
16760
- { name: "className", type: "string", required: false },
16761
- { name: "hidden", type: "boolean", required: false },
16762
- { name: "id", type: "string", required: false },
16763
- {
16764
- name: "onClick",
16765
- type: "MouseEventHandler<HTMLElement>",
16766
- required: false
16767
- },
16768
- { name: "style", type: "CSSProperties", required: false },
16769
- { name: "tabIndex", type: "number", required: false },
16770
- { name: "title", type: "string", required: false }
16771
- ],
16772
- ImgHTMLAttributes: [
16773
- { name: "alt", type: "string", required: false },
16774
- { name: "crossOrigin", type: "string", required: false },
16775
- { name: "height", type: "number | string", required: false },
16776
- {
16777
- name: "loading",
16778
- type: "string",
16779
- required: false,
16780
- allowedValues: ["eager", "lazy"]
16781
- },
16782
- { name: "sizes", type: "string", required: false },
16783
- { name: "src", type: "string", required: false },
16784
- { name: "srcSet", type: "string", required: false },
16785
- { name: "width", type: "number | string", required: false }
16786
- ],
16787
- LiHTMLAttributes: [],
16788
- AnchorHTMLAttributes: [
16789
- { name: "download", type: "boolean | string", required: false },
16790
- { name: "href", type: "string", required: false },
16791
- { name: "hrefLang", type: "string", required: false },
16792
- { name: "referrerPolicy", type: "string", required: false },
16793
- { name: "rel", type: "string", required: false },
16794
- {
16795
- name: "target",
16796
- type: "string",
16797
- required: false,
16798
- allowedValues: ["_blank", "_parent", "_self", "_top"]
16799
- }
16800
- ],
16801
- ButtonHTMLAttributes: [
16802
- { name: "autoFocus", type: "boolean", required: false },
16803
- { name: "disabled", type: "boolean", required: false },
16804
- { name: "form", type: "string", required: false },
16805
- { name: "formAction", type: "string", required: false },
16806
- { name: "formMethod", type: "string", required: false },
16807
- { name: "formNoValidate", type: "boolean", required: false },
16808
- { name: "formTarget", type: "string", required: false },
16809
- { name: "name", type: "string", required: false },
16810
- {
16811
- name: "type",
16812
- type: "string",
16813
- required: false,
16814
- allowedValues: ["button", "reset", "submit"]
16815
- },
16816
- {
16817
- name: "value",
16818
- type: "string | number | readonly string[]",
16819
- required: false
16820
- }
16821
- ],
16822
- InputHTMLAttributes: createTextControlSurface2("ChangeEventHandler<HTMLInputElement>", [
16823
- { name: "checked", type: "boolean", required: false },
16824
- { name: "max", type: "number | string", required: false },
16825
- { name: "maxLength", type: "number", required: false },
16826
- { name: "min", type: "number | string", required: false },
16827
- { name: "minLength", type: "number", required: false },
16828
- { name: "type", type: "string", required: false }
16829
- ]),
16830
- FieldsetHTMLAttributes: [
16831
- { name: "disabled", type: "boolean", required: false },
16832
- { name: "form", type: "string", required: false },
16833
- { name: "name", type: "string", required: false }
16834
- ],
16835
- LabelHTMLAttributes: [
16836
- { name: "form", type: "string", required: false },
16837
- { name: "htmlFor", type: "string", required: false }
16838
- ],
16839
- SelectHTMLAttributes: [
16840
- { name: "autoComplete", type: "string", required: false },
16841
- { name: "disabled", type: "boolean", required: false },
16842
- { name: "form", type: "string", required: false },
16843
- { name: "multiple", type: "boolean", required: false },
16844
- { name: "name", type: "string", required: false },
16845
- {
16846
- name: "onChange",
16847
- type: "ChangeEventHandler<HTMLSelectElement>",
16848
- required: false
16849
- },
16850
- { name: "required", type: "boolean", required: false },
16851
- { name: "size", type: "number", required: false },
16852
- {
16853
- name: "value",
16854
- type: "string | number | readonly string[]",
16855
- required: false
16856
- }
16857
- ],
16858
- SVGAttributes: [
16859
- {
16860
- name: "focusable",
16861
- type: 'boolean | "auto"',
16862
- required: false,
16863
- allowedValues: ["auto"]
16864
- },
16865
- { name: "height", type: "number | string", required: false },
16866
- { name: "viewBox", type: "string", required: false },
16867
- { name: "width", type: "number | string", required: false }
16868
- ],
16869
- SVGProps: [],
16870
- TextareaHTMLAttributes: createTextControlSurface2("ChangeEventHandler<HTMLTextAreaElement>", [
16871
- { name: "cols", type: "number", required: false },
16872
- { name: "rows", type: "number", required: false },
16873
- { name: "wrap", type: "string", required: false }
16874
- ]),
16875
- TdHTMLAttributes: [
16876
- {
16877
- name: "align",
16878
- type: "string",
16879
- required: false,
16880
- allowedValues: ["center", "char", "justify", "left", "right"]
16881
- },
16882
- { name: "colSpan", type: "number", required: false },
16883
- { name: "headers", type: "string", required: false },
16884
- { name: "rowSpan", type: "number", required: false },
16885
- { name: "scope", type: "string", required: false }
16886
- ]
16887
- };
16888
- }
16889
- });
16890
-
16891
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js
16892
- import { Node as Node19 } from "ts-morph";
16893
- var init_collect_dom_wrapper_contexts = __esm({
16894
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js"() {
16895
- "use strict";
16896
- init_tsx_shared();
16897
- init_tsx_node_utils();
16898
- init_dom_attribute_surfaces();
16899
- }
16900
- });
16901
-
16902
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js
16903
- import { Node as Node20 } from "ts-morph";
16904
- var init_detect_dom_is_pure_wrapper = __esm({
16905
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js"() {
16906
- "use strict";
16907
- init_tsx_shared();
16908
- init_tsx_node_utils();
16909
- init_dom_attribute_surfaces();
16910
- }
16911
- });
16912
-
16913
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js
16914
- import { Node as Node21 } from "ts-morph";
16915
- var init_detect_omit_wrapped_custom_props = __esm({
16916
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js"() {
16917
- "use strict";
16918
- init_tsx_shared();
16919
- init_tsx_node_utils();
16920
- init_detect_dom_is_pure_wrapper();
16921
- }
16922
- });
16923
-
16924
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js
16925
- import { Node as Node22 } from "ts-morph";
16926
- var init_detect_pick_type_patterns = __esm({
16927
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js"() {
16928
- "use strict";
16929
- init_tsx_shared();
16930
- init_tsx_node_utils();
16931
- init_detect_dom_type_patterns();
16932
- }
16933
- });
16934
-
16935
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js
16936
- var init_detect_dom_type_patterns = __esm({
16937
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js"() {
16938
- "use strict";
16939
- init_dom_attribute_surfaces();
16940
- init_collect_dom_wrapper_contexts();
16941
- init_detect_dom_is_pure_wrapper();
16942
- init_detect_omit_wrapped_custom_props();
16943
- init_detect_pick_type_patterns();
16944
- init_collect_dom_wrapper_contexts();
16945
- }
16946
- });
16947
-
16948
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js
16949
- import { Node as Node23 } from "ts-morph";
16950
- var init_detect_react_polymorphic = __esm({
16951
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js"() {
16952
- "use strict";
16953
- init_tsx_shared();
16954
- init_tsx_node_utils();
16955
- }
16956
- });
16957
-
16958
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js
16959
- import { Node as Node24 } from "ts-morph";
16960
- var init_extract_react_props_from_type = __esm({
16961
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js"() {
16962
- "use strict";
16963
- init_tsx_shared();
16964
- init_get_node_source_lines();
16965
- init_detect_dom_type_patterns();
16966
- init_detect_react_polymorphic();
16967
- init_dom_attribute_surfaces();
16968
- }
16969
- });
16970
-
16971
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js
16972
- import { Node as Node25 } from "ts-morph";
16973
- var init_resolve_react_props_type = __esm({
16974
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js"() {
16975
- "use strict";
16976
- init_tsx_shared();
16977
- init_detect_dom_type_patterns();
16978
- }
16979
- });
16980
-
16981
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js
16982
- import { Node as Node26 } from "ts-morph";
16983
- var init_filter_impl_alias_props = __esm({
16984
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js"() {
16985
- "use strict";
16986
- }
16987
- });
16988
-
16989
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js
16990
- import { Node as Node27, SyntaxKind as SyntaxKind11 } from "ts-morph";
16991
- var init_extract_binding_fallback_props = __esm({
16992
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js"() {
16993
- "use strict";
16994
- init_get_node_source_lines();
16995
- }
16996
- });
16997
-
16998
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js
16999
- import { Node as Node28 } from "ts-morph";
17000
- var init_extract_react_binding_defaults = __esm({
17001
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js"() {
17002
- "use strict";
17003
- init_filter_impl_alias_props();
17004
- init_extract_binding_fallback_props();
17005
- }
17006
- });
17007
-
17008
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js
17009
- import { Node as Node29, SyntaxKind as SyntaxKind12 } from "ts-morph";
17010
- var init_infer_primitive_dom_props = __esm({
17011
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js"() {
17012
- "use strict";
17013
- init_tsx_shared();
17014
- init_dom_attribute_surfaces();
17015
- }
17016
- });
17017
-
17018
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js
17019
- import { Node as Node30, SyntaxKind as SyntaxKind13 } from "ts-morph";
17020
- var init_collect_react_impl_hints = __esm({
17021
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js"() {
17022
- "use strict";
17023
- init_infer_primitive_dom_props();
17024
- }
17025
- });
17026
-
17027
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js
17028
- import { Node as Node31 } from "ts-morph";
17029
- var init_extract_react_prop_types = __esm({
17030
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js"() {
17031
- "use strict";
17032
- }
17033
- });
17034
-
17035
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js
17036
- import { Node as Node32 } from "ts-morph";
17037
- var init_extract_react_component_from_export = __esm({
17038
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js"() {
17039
- "use strict";
17040
- init_detect_slot_from_prop();
17041
- init_collect_prop_dataflow();
17042
- init_resolve_component_function();
17043
- init_extract_react_slots();
17044
- init_extract_react_props_from_type();
17045
- init_detect_dom_type_patterns();
17046
- init_resolve_react_props_type();
17047
- init_extract_react_binding_defaults();
17048
- init_collect_react_impl_hints();
17049
- init_extract_react_prop_types();
17050
- }
17051
- });
17052
-
17053
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js
17054
- import { SyntaxKind as SyntaxKind14 } from "ts-morph";
17055
- var init_extract_from_react_source_file = __esm({
17056
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js"() {
17057
- "use strict";
17058
- init_tsx_shared();
17059
- init_extract_react_component_from_export();
17060
- }
17061
- });
17062
-
17063
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/extractor.js
17064
- var init_extractor2 = __esm({
17065
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/extractor.js"() {
17066
- "use strict";
17067
- init_tsx_shared();
17068
- init_extract_react_allowed_components();
17069
- init_synthesize_react_structural_slots();
17070
- init_resolve_react_prop_forwarding();
17071
- init_extract_from_react_source_file();
17072
- }
17073
- });
17074
-
17075
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js
17076
- var init_project_source_files = __esm({
17077
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js"() {
17078
- "use strict";
17079
- }
17080
- });
17081
-
17082
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js
17083
- import { Node as Node33 } from "ts-morph";
17084
- var init_detect_stencil_class = __esm({
17085
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js"() {
17086
- "use strict";
17087
- }
17088
- });
17089
-
17090
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js
17091
- import { Node as Node34, SyntaxKind as SyntaxKind15 } from "ts-morph";
17092
- var init_stencil_prop_helpers = __esm({
17093
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js"() {
17094
- "use strict";
17095
- init_tsx_shared();
17096
- }
17097
- });
17098
-
17099
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js
17100
- import { Node as Node35 } from "ts-morph";
17101
- var init_extract_stencil_props = __esm({
17102
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js"() {
17103
- "use strict";
17104
- init_detect_stencil_class();
17105
- init_stencil_prop_helpers();
17106
- init_stencil_prop_helpers();
17107
- }
17108
- });
17109
-
17110
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js
17111
- var init_collect_jsdoc_slot_comments = __esm({
17112
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js"() {
17113
- "use strict";
17114
- }
17115
- });
17116
-
17117
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js
17118
- import { Node as Node36 } from "ts-morph";
17119
- var init_extract_stencil_slots = __esm({
17120
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js"() {
17121
- "use strict";
17122
- init_collect_jsdoc_slot_comments();
17123
- }
17124
- });
17125
-
17126
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/extractor.js
17127
- import { Project as Project9, Node as Node37 } from "ts-morph";
17128
- var init_extractor3 = __esm({
17129
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/extractor.js"() {
17130
- "use strict";
17131
- init_tsx_shared();
17132
- init_result_normalizer();
17133
- init_project_source_files();
17134
- init_detect_stencil_class();
17135
- init_extract_stencil_props();
17136
- init_extract_stencil_slots();
17137
- }
17138
- });
17139
-
17140
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js
17141
- var init_get_svelte_component_name = __esm({
17142
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js"() {
17143
- "use strict";
17144
- }
17145
- });
17146
-
17147
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.js
17148
- function isWidePrimitiveUnion2(type) {
17149
- const parts = type.split("|").map((p) => p.trim());
17150
- if (parts.length < 3)
17151
- return false;
17152
- const basePrimitives = /* @__PURE__ */ new Set(["string", "number", "boolean"]);
17153
- const nullability = /* @__PURE__ */ new Set(["null", "undefined"]);
17154
- const baseCount = parts.filter((p) => basePrimitives.has(p)).length;
17155
- const nullabilityCount = parts.filter((p) => nullability.has(p)).length;
17156
- return baseCount >= 3 || baseCount >= 2 && nullabilityCount > 0 && baseCount + nullabilityCount >= 3;
17157
- }
17158
- function countExtractionIssues(component, options = {}) {
17159
- let count = 0;
17160
- const reasons = [];
17161
- if (component.props.length === 0 && component.slots.length === 0) {
17162
- count++;
17163
- reasons.push("no-props-or-slots");
17164
- }
17165
- if (component.props.length > 50) {
17166
- count++;
17167
- reasons.push(`high-prop-count:${component.props.length}`);
17168
- }
17169
- for (const prop of component.props) {
17170
- if (OPAQUE_TYPES2.has(prop.type.trim())) {
17171
- count++;
17172
- reasons.push(`opaque-type:${prop.name}`);
17173
- break;
17174
- }
17175
- if (isWidePrimitiveUnion2(prop.type)) {
17176
- count++;
17177
- reasons.push(`wide-union:${prop.name}`);
17178
- break;
17179
- }
17180
- if (!prop.description && !OBVIOUS_PROP_NAMES2.has(prop.name)) {
17181
- count++;
17182
- reasons.push("props-missing-description");
17183
- break;
17184
- }
17185
- }
17186
- count += options.additionalIssueCount ?? 0;
17187
- if (options.additionalReasons && options.additionalReasons.length > 0) {
17188
- reasons.push(...options.additionalReasons);
17189
- }
17190
- return { count, reasons: [...new Set(reasons)] };
17191
- }
17192
- function mapIssueCountToConfidence(count) {
17193
- if (count === 0)
17194
- return 5;
17195
- if (count === 1)
17196
- return 4;
17197
- if (count === 2)
17198
- return 3;
17199
- if (count === 3)
17200
- return 2;
17201
- return 1;
17202
- }
17203
- var OPAQUE_TYPES2, OBVIOUS_PROP_NAMES2;
17204
- var init_collect_scoring_inputs = __esm({
17205
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.js"() {
17206
- "use strict";
17207
- OPAQUE_TYPES2 = /* @__PURE__ */ new Set(["any", "unknown", "object", "Record<string, unknown>", "Record<string, any>"]);
17208
- OBVIOUS_PROP_NAMES2 = /* @__PURE__ */ new Set([
17209
- "className",
17210
- "style",
17211
- "id",
17212
- "children",
17213
- "disabled",
17214
- "hidden",
17215
- "onClick",
17216
- "onChange",
17217
- "onSubmit",
17218
- "onBlur",
17219
- "onFocus",
17220
- "href",
17221
- "src",
17222
- "alt",
17223
- "type",
17224
- "value",
17225
- "checked",
17226
- "placeholder",
17227
- "label",
17228
- "title",
17229
- "name",
17230
- "required",
17231
- "readOnly",
17232
- "autoFocus",
17233
- "tabIndex",
17234
- "role",
17235
- "aria-label",
17236
- "aria-describedby"
17237
- ]);
17238
- }
17239
- });
17240
-
17241
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js
17242
- function computeExtractionScore2(component, options = {}) {
17243
- const { count, reasons } = countExtractionIssues(component, options);
17244
- return {
17245
- confidence: mapIssueCountToConfidence(count),
17246
- reasons
17247
- };
17248
- }
17249
- function deriveNeedsReview2(confidence) {
17250
- return confidence <= 2;
17251
- }
17252
- var init_compute_extraction_score = __esm({
17253
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js"() {
17254
- "use strict";
17255
- init_collect_scoring_inputs();
17256
- }
17257
- });
17258
-
17259
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js
17260
- var init_extract_svelte_template_slots = __esm({
17261
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js"() {
17262
- "use strict";
17263
- }
17264
- });
17265
-
17266
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js
17267
- var init_collect_svelte_type_references = __esm({
17268
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js"() {
17269
- "use strict";
17270
- }
17271
- });
17272
-
17273
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js
17274
- var init_find_svelte_script_declarations = __esm({
17275
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js"() {
17276
- "use strict";
17277
- init_collect_svelte_type_references();
17278
- }
17279
- });
17280
-
17281
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js
17282
- var init_render_svelte_type_strings = __esm({
17283
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js"() {
17284
- "use strict";
17285
- }
17286
- });
17287
-
17288
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js
17289
- var init_render_svelte_type = __esm({
17290
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js"() {
17291
- "use strict";
17292
- init_render_svelte_type_strings();
17293
- }
17294
- });
17295
-
17296
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js
17297
- var init_extract_svelte_ast_type_members = __esm({
17298
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js"() {
17299
- "use strict";
17300
- init_render_svelte_type();
17301
- }
17302
- });
17303
-
17304
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js
17305
- import { Node as Node38 } from "ts-morph";
17306
- var init_extract_svelte_declaration_data = __esm({
17307
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js"() {
17308
- "use strict";
17309
- }
17310
- });
17311
-
17312
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js
17313
- import { Project as Project10, ScriptTarget as ScriptTarget2, ModuleKind as ModuleKind2, ts as ts4 } from "ts-morph";
17314
- var init_resolve_svelte_type_checker = __esm({
17315
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js"() {
17316
- "use strict";
17317
- init_render_svelte_type();
17318
- init_extract_svelte_declaration_data();
17319
- }
17320
- });
17321
-
17322
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-import-file-path.js
17323
- var init_resolve_import_file_path = __esm({
17324
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-import-file-path.js"() {
17325
- "use strict";
17326
- }
17327
- });
17328
-
17329
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js
17330
- import { Node as Node39 } from "ts-morph";
17331
- var init_extract_svelte_external_type_members = __esm({
17332
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js"() {
17333
- "use strict";
17334
- init_render_svelte_type();
17335
- }
17336
- });
17337
-
17338
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js
17339
- import { Node as Node40, Project as Project11, ScriptTarget as ScriptTarget3, ModuleKind as ModuleKind3 } from "ts-morph";
17340
- var init_resolve_svelte_external_type_readers = __esm({
17341
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js"() {
17342
- "use strict";
17343
- init_resolve_import_file_path();
17344
- init_extract_svelte_external_type_members();
17345
- }
17346
- });
17347
-
17348
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js
17349
- var init_resolve_svelte_type_members = __esm({
17350
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js"() {
17351
- "use strict";
17352
- init_find_svelte_script_declarations();
17353
- init_extract_svelte_ast_type_members();
17354
- init_resolve_svelte_type_checker();
17355
- init_resolve_svelte_external_type_readers();
17356
- init_extract_svelte_ast_type_members();
17357
- init_resolve_svelte_type_checker();
17358
- }
17359
- });
17360
-
17361
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js
17362
- var init_extract_svelte_from_destructure = __esm({
17363
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js"() {
17364
- "use strict";
17365
- init_render_svelte_type();
17366
- }
17367
- });
17368
-
17369
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js
17370
- var init_extract_svelte_type_member_props = __esm({
17371
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js"() {
17372
- "use strict";
17373
- }
17374
- });
17375
-
17376
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js
17377
- var init_classify_svelte_props_annotation = __esm({
17378
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js"() {
17379
- "use strict";
17380
- init_find_svelte_script_declarations();
17381
- }
17382
- });
17383
-
17384
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js
17385
- var init_extract_svelte_props = __esm({
17386
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js"() {
17387
- "use strict";
17388
- init_resolve_svelte_type_members();
17389
- init_extract_svelte_from_destructure();
17390
- init_extract_svelte_type_member_props();
17391
- init_classify_svelte_props_annotation();
17392
- init_classify_svelte_props_annotation();
17393
- }
17394
- });
17395
-
17396
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js
17397
- var init_resolve_dts_location = __esm({
17398
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js"() {
17399
- "use strict";
17400
- }
17401
- });
17402
-
17403
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js
17404
- import { Project as Project12, ScriptTarget as ScriptTarget4, ModuleKind as ModuleKind4, ts as ts5 } from "ts-morph";
17405
- var init_resolve_svelte_unresolved_retry = __esm({
17406
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js"() {
17407
- "use strict";
17408
- init_compute_extraction_score();
17409
- init_extract_svelte_template_slots();
17410
- init_find_svelte_script_declarations();
17411
- init_resolve_svelte_type_members();
17412
- init_extract_svelte_props();
17413
- init_resolve_dts_location();
17414
- }
17415
- });
17416
-
17417
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js
17418
- var init_resolve_svelte_allowed_components = __esm({
17419
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js"() {
17420
- "use strict";
17421
- init_collect_allowed_component_names();
17422
- init_build_component_lookup_maps();
17423
- }
17424
- });
17425
-
17426
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js
17427
- import { parse as parseSvelte2 } from "svelte/compiler";
17428
- var init_extract_from_svelte_file = __esm({
17429
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js"() {
17430
- "use strict";
17431
- init_compute_extraction_score();
17432
- init_get_svelte_component_name();
17433
- init_extract_svelte_template_slots();
17434
- init_find_svelte_script_declarations();
17435
- init_extract_svelte_props();
17436
- }
17437
- });
17438
-
17439
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/extractor.js
17440
- var init_extractor4 = __esm({
17441
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/extractor.js"() {
17442
- "use strict";
17443
- init_file_workers();
17444
- init_get_svelte_component_name();
17445
- init_resolve_svelte_unresolved_retry();
17446
- init_resolve_svelte_allowed_components();
17447
- init_extract_from_svelte_file();
17448
- }
17449
- });
17450
-
17451
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js
17452
- import { Node as Node41, SyntaxKind as SyntaxKind16 } from "ts-morph";
17453
- var init_resolve_ast_object = __esm({
17454
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js"() {
17455
- "use strict";
17456
- init_tsx_shared();
17457
- }
17458
- });
17459
-
17460
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js
17461
- import { Node as Node42 } from "ts-morph";
17462
- var init_extract_vue_tsx_props = __esm({
17463
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js"() {
17464
- "use strict";
17465
- init_tsx_shared();
17466
- init_resolve_ast_object();
17467
- }
17468
- });
17469
-
17470
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js
17471
- import { Node as Node43, SyntaxKind as SyntaxKind17 } from "ts-morph";
17472
- var init_extract_vue_tsx_slots = __esm({
17473
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js"() {
17474
- "use strict";
17475
- init_tsx_shared();
17476
- }
17477
- });
17478
-
17479
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/extractor.js
17480
- import { Node as Node44 } from "ts-morph";
17481
- var init_extractor5 = __esm({
17482
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/extractor.js"() {
17483
- "use strict";
17484
- init_tsx_shared();
17485
- init_extract_vue_tsx_props();
17486
- init_extract_vue_tsx_slots();
17487
- }
17488
- });
17489
-
17490
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js
17491
- var init_resolve_vue_component_name = __esm({
17492
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js"() {
17493
- "use strict";
17494
- }
17495
- });
17496
-
17497
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js
17498
- var init_extract_vue_slots = __esm({
17499
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js"() {
17500
- "use strict";
17501
- }
17502
- });
17503
-
17504
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js
17505
- import { Node as Node45 } from "ts-morph";
17506
- var init_extract_vue_object_props = __esm({
17507
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js"() {
17508
- "use strict";
17509
- }
17510
- });
17511
-
17512
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js
17513
- import { Project as Project13, Node as Node46 } from "ts-morph";
17514
- var init_extract_vue_setup_object_props = __esm({
17515
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js"() {
17516
- "use strict";
17517
- init_resolve_import_file_path();
17518
- init_extract_vue_object_props();
17519
- }
17520
- });
17521
-
17522
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js
17523
- import { Project as Project14, Node as Node47 } from "ts-morph";
17524
- var init_extract_vue_setup_props = __esm({
17525
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js"() {
17526
- "use strict";
17527
- init_resolve_type_symbol();
17528
- init_extract_vue_setup_object_props();
17529
- }
17530
- });
17531
-
17532
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js
17533
- var init_workspace_package_dirs = __esm({
17534
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js"() {
17535
- "use strict";
17536
- }
17537
- });
17538
-
17539
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js
17540
- var init_resolve_workspace_module = __esm({
17541
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js"() {
17542
- "use strict";
17543
- init_workspace_package_dirs();
17544
- }
17545
- });
17546
-
17547
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js
17548
- import { parse as parseSFC2 } from "@vue/compiler-sfc";
17549
- import { Node as Node48, Project as Project15 } from "ts-morph";
17550
- var init_extract_vue_options_props = __esm({
17551
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js"() {
17552
- "use strict";
17553
- init_resolve_workspace_module();
17554
- init_extract_vue_object_props();
17555
- init_extract_vue_object_props();
17556
- }
17557
- });
17558
-
17559
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/extractor.js
17560
- import { parse as parseSFC3 } from "@vue/compiler-sfc";
17561
- var init_extractor6 = __esm({
17562
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/extractor.js"() {
17563
- "use strict";
17564
- init_file_workers();
17565
- init_result_normalizer();
17566
- init_resolve_vue_component_name();
17567
- init_extract_vue_slots();
17568
- init_extract_vue_setup_props();
17569
- init_extract_vue_options_props();
17570
- }
17571
- });
17572
-
17573
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js
17574
- import { Node as Node49 } from "ts-morph";
17575
- var init_extract_wc_observed_attrs = __esm({
17576
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js"() {
17577
- "use strict";
17578
- }
17579
- });
17580
-
17581
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js
17582
- var init_detect_wc_non_public_members = __esm({
17583
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js"() {
17584
- "use strict";
17585
- }
17586
- });
17587
-
17588
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js
17589
- var init_extract_wc_accessor_props = __esm({
17590
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js"() {
17591
- "use strict";
17592
- init_detect_wc_non_public_members();
17593
- }
17594
- });
17595
-
17596
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js
17597
- var init_extract_wc_jsdoc_attr_props = __esm({
17598
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js"() {
17599
- "use strict";
17600
- }
17601
- });
17602
-
17603
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js
17604
- import { Node as Node50 } from "ts-morph";
17605
- var init_extract_wc_class_properties = __esm({
17606
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js"() {
17607
- "use strict";
17608
- init_detect_wc_non_public_members();
17609
- }
17610
- });
17611
-
17612
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js
17613
- var init_merge_wc_prop_lists = __esm({
17614
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js"() {
17615
- "use strict";
17616
- init_extract_wc_observed_attrs();
17617
- init_extract_wc_accessor_props();
17618
- init_extract_wc_jsdoc_attr_props();
17619
- init_extract_wc_class_properties();
17620
- }
17621
- });
17622
-
17623
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js
17624
- import { Node as Node51 } from "ts-morph";
17625
- var init_resolve_wc_decorator_tag = __esm({
17626
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js"() {
17627
- "use strict";
17628
- }
17629
- });
17630
-
17631
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js
17632
- import { Node as Node52 } from "ts-morph";
17633
- var init_resolve_wc_import_source = __esm({
17634
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js"() {
17635
- "use strict";
17636
- }
17637
- });
17638
-
17639
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js
17640
- import { Node as Node53, SyntaxKind as SyntaxKind18 } from "ts-morph";
17641
- var init_resolve_wc_import = __esm({
17642
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js"() {
17643
- "use strict";
17644
- init_resolve_wc_import_source();
17645
- }
17646
- });
17647
-
17648
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js
17649
- import { Node as Node54, SyntaxKind as SyntaxKind19 } from "ts-morph";
17650
- var init_resolve_wc_sibling_definition = __esm({
17651
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js"() {
17652
- "use strict";
17653
- init_resolve_wc_import();
17654
- }
17655
- });
17656
-
17657
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js
17658
- var init_resolve_wc_tag_name = __esm({
17659
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js"() {
17660
- "use strict";
17661
- init_tsx_shared();
17662
- init_resolve_wc_decorator_tag();
17663
- init_resolve_wc_sibling_definition();
17664
- }
17665
- });
17666
-
17667
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js
17668
- import { Node as Node55 } from "ts-morph";
17669
- var init_collect_wc_html_templates = __esm({
17670
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js"() {
17671
- "use strict";
17672
- init_resolve_wc_import();
17673
- }
17674
- });
17675
-
17676
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js
17677
- import { Node as Node56 } from "ts-morph";
17678
- var init_extract_wc_template_content = __esm({
17679
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js"() {
17680
- "use strict";
17681
- init_resolve_wc_import();
17682
- init_extract_wc_slots();
17683
- init_collect_wc_html_templates();
17684
- }
17685
- });
17686
-
17687
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js
17688
- var init_extract_wc_slots = __esm({
17689
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js"() {
17690
- "use strict";
17691
- init_collect_jsdoc_slot_comments();
17692
- init_extract_wc_template_content();
17693
- }
17694
- });
17695
-
17696
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js
17697
- import { Node as Node57, SyntaxKind as SyntaxKind20 } from "ts-morph";
17698
- var init_resolve_wc_base_class = __esm({
17699
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js"() {
17700
- "use strict";
17701
- init_resolve_wc_import();
17702
- }
17703
- });
17704
-
17705
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js
17706
- var init_extract_wc_inheritance = __esm({
17707
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js"() {
17708
- "use strict";
17709
- init_merge_wc_prop_lists();
17710
- init_extract_wc_slots();
17711
- init_resolve_wc_base_class();
17712
- }
17713
- });
17714
-
17715
- // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/extractor.js
17716
- import { Project as Project16 } from "ts-morph";
17717
- var init_extractor7 = __esm({
17718
- "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/extractor.js"() {
17719
- "use strict";
17720
- init_result_normalizer();
17721
- init_project_source_files();
17722
- init_merge_wc_prop_lists();
17723
- init_resolve_wc_tag_name();
17724
- init_extract_wc_slots();
17725
- init_extract_wc_inheritance();
17726
- }
17727
- });
17728
-
17729
- // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/register-extractors.js
17730
- var init_register_extractors = __esm({
17731
- "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/register-extractors.js"() {
17732
- "use strict";
17733
- init_extractor();
17734
- init_extractor2();
17735
- init_extractor3();
17736
- init_extractor4();
17737
- init_extractor5();
17738
- init_extractor6();
17739
- init_extractor7();
17740
- }
17741
- });
17742
-
17743
- // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/run-extractor-batches.js
17744
- var init_run_extractor_batches = __esm({
17745
- "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/run-extractor-batches.js"() {
17746
- "use strict";
17747
- }
17748
- });
17749
-
17750
- // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js
17751
- var init_collect_sveltekit_route_exclusions = __esm({
17752
- "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js"() {
17753
- "use strict";
17754
- }
17755
- });
17756
-
17757
- // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/filter-hook-components.js
17758
- var init_filter_hook_components = __esm({
17759
- "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/filter-hook-components.js"() {
17760
- "use strict";
17761
- }
17762
- });
17763
-
17764
- // packages/experience-design-system-extraction/dist/src/extract/services/extraction/extract-components.js
17765
- var init_extract_components = __esm({
17766
- "packages/experience-design-system-extraction/dist/src/extract/services/extraction/extract-components.js"() {
17767
- "use strict";
17768
- init_deduplicate_components();
17769
- init_register_extractors();
17770
- init_run_extractor_batches();
17771
- init_collect_sveltekit_route_exclusions();
17772
- init_filter_hook_components();
17773
- }
17774
- });
17775
-
17776
- // packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/check-prop-types.js
17777
- function isStringLiteralUnion(type) {
17778
- return type.includes("|") && type.includes("'");
17779
- }
17780
- function isSimpleType(type) {
17781
- const t = type.trim();
17782
- if (t === "string" || t === "boolean" || t === "number")
17783
- return true;
17784
- return isStringLiteralUnion(t);
17785
- }
17786
- function isBooleanType(type) {
17787
- return type.trim() === "boolean";
17788
- }
17789
- function isStringType(type) {
17790
- return type.trim() === "string";
17791
- }
17792
- function isNumberType(type) {
17793
- return type.trim() === "number";
17794
- }
17795
- function isComplexType(type) {
17796
- return !isSimpleType(type);
17797
- }
17798
- var init_check_prop_types = __esm({
17799
- "packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/check-prop-types.js"() {
17800
- "use strict";
17801
- }
17802
- });
17803
-
17804
- // packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/detect-dom-props.js
17805
- function isDomPassThroughProp(name) {
17806
- if (DOM_PASS_THROUGH_PROPS.has(name))
17807
- return true;
17808
- if (/^aria[-A-Z]/.test(name))
17809
- return true;
17810
- return name.startsWith("data-");
17811
- }
17812
- var DOM_PASS_THROUGH_PROPS;
17813
- var init_detect_dom_props = __esm({
17814
- "packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/detect-dom-props.js"() {
17815
- "use strict";
17816
- DOM_PASS_THROUGH_PROPS = /* @__PURE__ */ new Set([
17817
- // Bare HTML / framework styling pass-through
17818
- "className",
17819
- "class",
17820
- "classes",
17821
- "classNames",
17822
- "rootClassName",
17823
- "prefixCls",
17824
- "style",
17825
- "styles",
17826
- // Bare HTML attributes
17827
- "id",
17828
- "role",
17829
- "tabIndex",
17830
- "tabindex",
17831
- "htmlFor",
17832
- "for",
17833
- "slot",
17834
- "is",
17835
- "lang",
17836
- "dir",
17837
- "hidden",
17838
- "draggable",
17839
- "spellCheck",
17840
- "spellcheck",
17841
- "contentEditable",
17842
- "contenteditable",
17843
- "inputMode",
17844
- "inputmode",
17845
- "autoComplete",
17846
- "autocomplete",
17847
- "autoFocus",
17848
- "autofocus",
17849
- "translate",
17850
- "part",
17851
- "exportparts",
17852
- "aria",
17853
- // Framework theming / pass-through escape hatches — dev-facing, never marketer-configurable
17854
- "dt",
17855
- "pt",
17856
- "ptOptions",
17857
- "unstyled",
17858
- "sx",
17859
- // Polymorphic component props — change rendered HTML/component, not marketer-visible behavior
17860
- "as",
17861
- "element",
17862
- "component",
17863
- // QA / vendor test attributes
17864
- "dataQa",
17865
- "data-qa",
17866
- // Vue v-model internals — framework wiring, never marketer-configurable
17867
- "modelValue",
17868
- "modelModifiers"
17869
- ]);
17870
- }
17871
- });
17872
-
17873
- // packages/experience-design-system-extraction/dist/src/extract/services/classification/classify-component-props.js
17874
- function preClassifyProp(prop) {
17875
- const { name, type } = prop;
17876
- if (/^on[A-Z]/.test(name) || type.includes("=> void") || type.includes("EventHandler")) {
17877
- return { category: "exclude" };
17878
- }
17879
- if (name === "ref" || name === "innerRef" || type.includes("Ref<") || type.includes("RefObject<")) {
17880
- return { category: "exclude" };
17881
- }
17882
- if (name === "testId" || name === "data-testid" || name === "dataTestId") {
17883
- return { category: "exclude" };
17884
- }
17885
- if (name === "key") {
17886
- return { category: "exclude" };
17887
- }
17888
- if (type.includes("Dispatch<") || type.includes("SetStateAction")) {
17889
- return { category: "exclude" };
17890
- }
17891
- if (isDomPassThroughProp(name)) {
17892
- return { category: "exclude" };
17893
- }
17894
- if (name === "name" && prop.domAttribute) {
17895
- return { category: "exclude" };
17896
- }
17897
- if (isStringLiteralUnion(type)) {
17898
- return { category: "design", cdfTypeHint: "enum" };
17899
- }
17900
- if (!isComplexType(type)) {
17901
- const designNameStart = /^(variant|size|spacing|gap|color|bg|theme|align|layout|orientation|position)/i;
17902
- const designNameEnd = /(Color|Size|Variant|Style)$/;
17903
- if (designNameStart.test(name) || designNameEnd.test(name)) {
17904
- return { category: "design", cdfTypeHint: "string" };
17905
- }
17906
- }
17907
- if (isBooleanType(type)) {
17908
- const stateNames = ["disabled", "loading", "expanded", "isOpen", "selected", "checked", "active", "preview"];
17909
- if (stateNames.includes(name)) {
17910
- return { category: "state", cdfTypeHint: "boolean" };
17911
- }
17912
- }
17913
- if (isBooleanType(type)) {
17914
- const visualToggle = /^(hide|show|enable|disable|vertical|horizontal|reverse|bold|italic|imageOn|with)/i;
17915
- if (visualToggle.test(name)) {
17916
- return { category: "design", cdfTypeHint: "boolean" };
17917
- }
17918
- }
17919
- if (name === "componentId" || name === "sectionKey" || name === "locale" || name === "variantIndex") {
17920
- return { category: "state", cdfTypeHint: "string" };
17921
- }
17922
- if (isStringType(type)) {
17923
- const urlNameStart = /^(href|url|link|src)/i;
17924
- const urlNameEnd = /(Url|Href|Link|Src)$/;
17925
- if (urlNameStart.test(name) || urlNameEnd.test(name)) {
17926
- return { category: "content", cdfTypeHint: "string" };
17927
- }
17928
- }
17929
- if (isStringType(type)) {
17930
- const textNameStart = /^(label|title|text|description|caption|heading|subheading|body|alt|name|placeholder|summary)/i;
17931
- const textNameEnd = /(Text|Label|Title|Name)$/;
17932
- if (textNameStart.test(name) || textNameEnd.test(name)) {
17933
- return { category: "content", cdfTypeHint: "string" };
17934
- }
17935
- }
17936
- if (isStringType(type)) {
17937
- return { category: "content", cdfTypeHint: "string" };
17938
- }
17939
- if (isBooleanType(type)) {
17940
- return { category: "design", cdfTypeHint: "boolean" };
17941
- }
17942
- if (isNumberType(type)) {
17943
- return { category: "design", cdfTypeHint: "string" };
17944
- }
17945
- return void 0;
17946
- }
17947
- function preClassifyComponent(component) {
17948
- const props = component.props.flatMap((prop) => {
17949
- const result = preClassifyProp(prop);
17950
- if (result?.category === "exclude") {
17951
- return [];
17952
- }
17953
- const { domAttribute: _domAttribute, ...authorableProp } = prop;
17954
- if (prop.category) {
17955
- return [authorableProp];
17956
- }
17957
- if (!result) {
17958
- return [authorableProp];
17959
- }
17960
- return [
17961
- {
17962
- ...authorableProp,
17963
- category: result.category
17964
- }
17965
- ];
17966
- });
17967
- return { ...component, props };
17968
- }
17969
- var init_classify_component_props = __esm({
17970
- "packages/experience-design-system-extraction/dist/src/extract/services/classification/classify-component-props.js"() {
17971
- "use strict";
17972
- init_check_prop_types();
17973
- init_detect_dom_props();
17974
- }
17975
- });
17976
-
17977
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js
16478
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/non-authorable-filter.js
17978
16479
  function isHandlerOrRefProp(prop) {
17979
16480
  if (HANDLER_TYPE_PATTERN.test(prop.type))
17980
16481
  return true;
@@ -18025,15 +16526,34 @@ function hasNoAuthoringSurface(component) {
18025
16526
  return { skip: false };
18026
16527
  }
18027
16528
  var HANDLER_TYPE_PATTERN, REF_TYPE_PATTERN;
18028
- var init_evaluate_authorability = __esm({
18029
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js"() {
16529
+ var init_non_authorable_filter = __esm({
16530
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/non-authorable-filter.js"() {
18030
16531
  "use strict";
18031
16532
  HANDLER_TYPE_PATTERN = /=>|EventHandler|Dispatch<|SetStateAction/;
18032
16533
  REF_TYPE_PATTERN = /Ref<|RefObject<|MutableRefObject/;
18033
16534
  }
18034
16535
  });
18035
16536
 
18036
- // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/parse-source-imports.js
16537
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/review-reasons.js
16538
+ var HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON, POSSIBLE_DATA_FETCH_WRAPPER_REASON, ZERO_SURFACE_RENDERED_UI_REASON;
16539
+ var init_review_reasons = __esm({
16540
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/review-reasons.js"() {
16541
+ "use strict";
16542
+ HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON = "data-fetch-wrapper";
16543
+ POSSIBLE_DATA_FETCH_WRAPPER_REASON = "possible-data-fetch-wrapper";
16544
+ ZERO_SURFACE_RENDERED_UI_REASON = "zero-surface:rendered-ui";
16545
+ }
16546
+ });
16547
+
16548
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/index.js
16549
+ var init_constants7 = __esm({
16550
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/index.js"() {
16551
+ "use strict";
16552
+ init_review_reasons();
16553
+ }
16554
+ });
16555
+
16556
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/framework-adapters/shared/parse-imported-names.js
18037
16557
  function parseImportedNames(importClause) {
18038
16558
  const trimmed = importClause.trim();
18039
16559
  if (!trimmed)
@@ -18057,13 +16577,14 @@ function parseImportedNames(importClause) {
18057
16577
  }
18058
16578
  return names;
18059
16579
  }
18060
- var init_parse_source_imports = __esm({
18061
- "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/parse-source-imports.js"() {
16580
+ var init_parse_imported_names = __esm({
16581
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/framework-adapters/shared/parse-imported-names.js"() {
18062
16582
  "use strict";
18063
16583
  }
18064
16584
  });
18065
16585
 
18066
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js
16586
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/evidence/source-inspection.js
16587
+ import { readFile as readFile15 } from "node:fs/promises";
18067
16588
  function escapeRegExp(value) {
18068
16589
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
18069
16590
  }
@@ -18098,11 +16619,11 @@ function hasSiblingForwardRender(sourceText, siblingImports) {
18098
16619
  function hasVisibleUiRender(sourceText) {
18099
16620
  return /return\s*(?:\(|<)/.test(sourceText) && VISIBLE_UI_TAG_PATTERN.test(sourceText);
18100
16621
  }
18101
- function collectInfraPropNames(component) {
16622
+ function infraPropNames(component) {
18102
16623
  const props = component.props.map((prop) => prop.name);
18103
16624
  return props.length > 0 && props.every((prop) => INFRA_PROP_NAMES.has(prop)) ? props : [];
18104
16625
  }
18105
- function mapScoreToWrapperConfidence(score) {
16626
+ function scoreToConfidence(score) {
18106
16627
  if (score <= 0)
18107
16628
  return 0;
18108
16629
  if (score <= 2)
@@ -18113,26 +16634,9 @@ function mapScoreToWrapperConfidence(score) {
18113
16634
  return 4;
18114
16635
  return 5;
18115
16636
  }
18116
- function dedupeStrings(values) {
18117
- return [...new Set(values)];
16637
+ function dedupeReasons(reasons) {
16638
+ return [...new Set(reasons)];
18118
16639
  }
18119
- var INFRA_PROP_NAMES, VISIBLE_UI_TAG_PATTERN, GENERATED_IMPORT_PATTERN, GENERATED_QUERY_HOOK_PATTERN, GQL_FILENAME_PATTERN, LOADING_NULL_GUARD_PATTERN, IMPORT_PATTERN;
18120
- var init_detect_data_wrapper_patterns = __esm({
18121
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js"() {
18122
- "use strict";
18123
- init_parse_source_imports();
18124
- INFRA_PROP_NAMES = /* @__PURE__ */ new Set(["id", "locale", "preview", "slug", "topic", "previousComponent", "__typename"]);
18125
- VISIBLE_UI_TAG_PATTERN = /<(?:[A-Z][A-Za-z0-9_.]*|div|span|section|main|article|header|footer|nav|aside|img|video|p|h[1-6]|ul|ol|li|button|input|textarea|select|form|label|table|tbody|thead|tr|td|th)\b/;
18126
- GENERATED_IMPORT_PATTERN = /from\s+['"][^'"]*__generated[^'"]*['"]/;
18127
- GENERATED_QUERY_HOOK_PATTERN = /\buse[A-Z][A-Za-z0-9]*(?:Lazy|Suspense)?Query\s*\(/;
18128
- GQL_FILENAME_PATTERN = /(?:-gql|-ggl)\.[cm]?[jt]sx?$/i;
18129
- LOADING_NULL_GUARD_PATTERN = /if\s*\([^)]*(?:isLoading|loading|!data|!\w+Collection|!\w+Item|!\w+)\s*[^)]*\)\s*return\s+null\b/;
18130
- IMPORT_PATTERN = /import\s+(?:type\s+)?(.+?)\s+from\s+['"]([^'"]+)['"]/g;
18131
- }
18132
- });
18133
-
18134
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/inspect-component-source.js
18135
- import { readFile as readFile15 } from "node:fs/promises";
18136
16640
  async function inspectComponentSource(component) {
18137
16641
  let sourceText = "";
18138
16642
  try {
@@ -18147,7 +16651,7 @@ async function inspectComponentSource(component) {
18147
16651
  const reviewReasons = [];
18148
16652
  let wrapperScore = 0;
18149
16653
  const hasGeneratedQueryHook = GENERATED_IMPORT_PATTERN.test(sourceText) && GENERATED_QUERY_HOOK_PATTERN.test(sourceText);
18150
- const infraProps = collectInfraPropNames(component);
16654
+ const infraProps = infraPropNames(component);
18151
16655
  const siblingImports = collectSiblingRendererImports(sourceText);
18152
16656
  if (GQL_FILENAME_PATTERN.test(component.source)) {
18153
16657
  reviewReasons.push("data-wrapper:gql-filename");
@@ -18177,7 +16681,7 @@ async function inspectComponentSource(component) {
18177
16681
  reviewReasons.push("data-wrapper:loading-null-guard");
18178
16682
  wrapperScore += 1;
18179
16683
  }
18180
- const wrapperConfidence = mapScoreToWrapperConfidence(wrapperScore);
16684
+ const wrapperConfidence = scoreToConfidence(wrapperScore);
18181
16685
  if (wrapperConfidence >= 4) {
18182
16686
  reviewReasons.unshift(HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON);
18183
16687
  } else if (wrapperConfidence === 3) {
@@ -18189,7 +16693,7 @@ async function inspectComponentSource(component) {
18189
16693
  }
18190
16694
  return {
18191
16695
  wrapperConfidence,
18192
- reviewReasons: dedupeStrings(reviewReasons),
16696
+ reviewReasons: dedupeReasons(reviewReasons),
18193
16697
  keepDespiteZeroSurface
18194
16698
  };
18195
16699
  }
@@ -18220,92 +16724,25 @@ function describeReviewReason(reason) {
18220
16724
  }
18221
16725
  }
18222
16726
  function describeReviewReasons(reasons) {
18223
- return dedupeStrings(reasons.map(describeReviewReason));
18224
- }
18225
- var HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON, POSSIBLE_DATA_FETCH_WRAPPER_REASON, ZERO_SURFACE_RENDERED_UI_REASON;
18226
- var init_inspect_component_source = __esm({
18227
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/inspect-component-source.js"() {
18228
- "use strict";
18229
- init_detect_data_wrapper_patterns();
18230
- HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON = "data-fetch-wrapper";
18231
- POSSIBLE_DATA_FETCH_WRAPPER_REASON = "possible-data-fetch-wrapper";
18232
- ZERO_SURFACE_RENDERED_UI_REASON = "zero-surface:rendered-ui";
18233
- }
18234
- });
18235
-
18236
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/validate-extracted-components.js
18237
- function validateExtractedComponents2(components) {
18238
- const nameCounts = /* @__PURE__ */ new Map();
18239
- for (const component of components) {
18240
- const key = component.name.trim();
18241
- nameCounts.set(key, (nameCounts.get(key) ?? 0) + 1);
18242
- }
18243
- return components.map((component) => {
18244
- const issues = [];
18245
- if (!component.name.trim()) {
18246
- issues.push({
18247
- severity: "error",
18248
- code: "EMPTY_COMPONENT_NAME",
18249
- message: "Component name must not be empty"
18250
- });
18251
- }
18252
- for (let i = 0; i < component.props.length; i++) {
18253
- if (!component.props[i].name.trim()) {
18254
- issues.push({
18255
- severity: "error",
18256
- code: "EMPTY_PROP_NAME",
18257
- message: `Prop at index ${i} has an empty name`,
18258
- field: `props[${i}].name`
18259
- });
18260
- }
18261
- }
18262
- for (let i = 0; i < component.slots.length; i++) {
18263
- if (!component.slots[i].name.trim()) {
18264
- issues.push({
18265
- severity: "warning",
18266
- code: "EMPTY_SLOT_NAME",
18267
- message: `Slot at index ${i} has an empty name`,
18268
- field: `slots[${i}].name`
18269
- });
18270
- }
18271
- }
18272
- const propNames = new Set(component.props.map((p) => p.name.trim()).filter(Boolean));
18273
- for (let i = 0; i < component.slots.length; i++) {
18274
- const slotName = component.slots[i].name.trim();
18275
- if (slotName && propNames.has(slotName)) {
18276
- issues.push({
18277
- severity: "error",
18278
- code: "PROP_SLOT_NAME_COLLISION",
18279
- message: `"${slotName}" is used as both a prop name and a slot name`,
18280
- field: `slots[${i}].name`
18281
- });
18282
- }
18283
- }
18284
- const nameKey = component.name.trim();
18285
- if (nameKey && (nameCounts.get(nameKey) ?? 0) > 1) {
18286
- issues.push({
18287
- severity: "error",
18288
- code: "DUPLICATE_COMPONENT_NAME",
18289
- message: `Component name "${component.name}" appears more than once in the extracted set`
18290
- });
18291
- }
18292
- if (component.props.length === 0 && component.slots.length === 0) {
18293
- issues.push({
18294
- severity: "warning",
18295
- code: "EMPTY_COMPONENT",
18296
- message: "Component has no props or slots and will be filtered out during generation"
18297
- });
18298
- }
18299
- return { ...component, validationIssues: issues };
18300
- });
16727
+ return dedupeReasons(reasons.map(describeReviewReason));
18301
16728
  }
18302
- var init_validate_extracted_components = __esm({
18303
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/validate-extracted-components.js"() {
16729
+ var INFRA_PROP_NAMES, VISIBLE_UI_TAG_PATTERN, GENERATED_IMPORT_PATTERN, GENERATED_QUERY_HOOK_PATTERN, GQL_FILENAME_PATTERN, LOADING_NULL_GUARD_PATTERN, IMPORT_PATTERN;
16730
+ var init_source_inspection = __esm({
16731
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/evidence/source-inspection.js"() {
18304
16732
  "use strict";
16733
+ init_constants7();
16734
+ init_parse_imported_names();
16735
+ INFRA_PROP_NAMES = /* @__PURE__ */ new Set(["id", "locale", "preview", "slug", "topic", "previousComponent", "__typename"]);
16736
+ VISIBLE_UI_TAG_PATTERN = /<(?:[A-Z][A-Za-z0-9_.]*|div|span|section|main|article|header|footer|nav|aside|img|video|p|h[1-6]|ul|ol|li|button|input|textarea|select|form|label|table|tbody|thead|tr|td|th)\b/;
16737
+ GENERATED_IMPORT_PATTERN = /from\s+['"][^'"]*__generated[^'"]*['"]/;
16738
+ GENERATED_QUERY_HOOK_PATTERN = /\buse[A-Z][A-Za-z0-9]*(?:Lazy|Suspense)?Query\s*\(/;
16739
+ GQL_FILENAME_PATTERN = /(?:-gql|-ggl)\.[cm]?[jt]sx?$/i;
16740
+ LOADING_NULL_GUARD_PATTERN = /if\s*\([^)]*(?:isLoading|loading|!data|!\w+Collection|!\w+Item|!\w+)\s*[^)]*\)\s*return\s+null\b/;
16741
+ IMPORT_PATTERN = /import\s+(?:type\s+)?(.+?)\s+from\s+['"]([^'"]+)['"]/g;
18305
16742
  }
18306
16743
  });
18307
16744
 
18308
- // packages/experience-design-system-extraction/dist/src/extract/services/quality/evaluate-extraction-quality.js
16745
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/evaluate-extraction-quality.js
18309
16746
  function wrapperConfidenceToIssueCount(confidence) {
18310
16747
  if (confidence >= 4)
18311
16748
  return 2;
@@ -18327,92 +16764,224 @@ async function evaluateExtractionQuality(components, initialWarnings = []) {
18327
16764
  if (retainedForReview) {
18328
16765
  warnings.push(`${component.name}: requires operator review (${verdict.reason})`);
18329
16766
  }
18330
- if (keepDespiteZeroSurface) {
18331
- warnings.push(`${component.name}: retained despite 0 props/slots because the source renders visible or compositional UI`);
16767
+ if (keepDespiteZeroSurface) {
16768
+ warnings.push(`${component.name}: retained despite 0 props/slots because the source renders visible or compositional UI`);
16769
+ }
16770
+ if (inspection.reviewReasons.length > 0) {
16771
+ const reviewNotes = describeReviewReasons(inspection.reviewReasons).filter((note) => note !== "high-confidence data-fetch wrapper").join("; ");
16772
+ if (reviewNotes)
16773
+ warnings.push(`${component.name}: ${reviewNotes}`);
16774
+ }
16775
+ const extractorReasons = component.reviewReasons ?? [];
16776
+ const nonAuthorableReason = retainedForReview ? [`non-authorable:${verdict.reason}`] : [];
16777
+ const { confidence, reasons } = computeExtractionScore(component, {
16778
+ additionalIssueCount: wrapperConfidenceToIssueCount(inspection.wrapperConfidence) + extractorReasons.length + nonAuthorableReason.length,
16779
+ additionalReasons: [...extractorReasons, ...inspection.reviewReasons, ...nonAuthorableReason]
16780
+ });
16781
+ scoredComponents.push({
16782
+ ...component,
16783
+ extractionConfidence: confidence,
16784
+ reviewReasons: reasons,
16785
+ needsReview: deriveNeedsReview(confidence) || inspection.wrapperConfidence >= 4 || inspection.keepDespiteZeroSurface || retainedForReview || extractorReasons.includes("props-type-unresolved") || (component.needsReview ?? false)
16786
+ });
16787
+ }
16788
+ return {
16789
+ components: validateExtractedComponents(scoredComponents),
16790
+ warnings
16791
+ };
16792
+ }
16793
+ var init_evaluate_extraction_quality = __esm({
16794
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/evaluate-extraction-quality.js"() {
16795
+ "use strict";
16796
+ init_non_authorable_filter();
16797
+ init_scoring();
16798
+ init_source_inspection();
16799
+ init_validate3();
16800
+ }
16801
+ });
16802
+
16803
+ // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/pre-classify.js
16804
+ function isStringLiteralUnion(type) {
16805
+ return type.includes("|") && type.includes("'");
16806
+ }
16807
+ function isSimpleType(type) {
16808
+ const t = type.trim();
16809
+ if (t === "string" || t === "boolean" || t === "number")
16810
+ return true;
16811
+ return isStringLiteralUnion(t);
16812
+ }
16813
+ function isBooleanType(type) {
16814
+ return type.trim() === "boolean";
16815
+ }
16816
+ function isStringType(type) {
16817
+ return type.trim() === "string";
16818
+ }
16819
+ function isNumberType(type) {
16820
+ return type.trim() === "number";
16821
+ }
16822
+ function isComplexType(type) {
16823
+ return !isSimpleType(type);
16824
+ }
16825
+ function isDomPassThroughProp(name) {
16826
+ if (DOM_PASS_THROUGH_PROPS.has(name))
16827
+ return true;
16828
+ if (/^aria[-A-Z]/.test(name))
16829
+ return true;
16830
+ return name.startsWith("data-");
16831
+ }
16832
+ function preClassifyProp(prop) {
16833
+ const { name, type } = prop;
16834
+ if (/^on[A-Z]/.test(name) || type.includes("=> void") || type.includes("EventHandler")) {
16835
+ return { category: "exclude" };
16836
+ }
16837
+ if (name === "ref" || name === "innerRef" || type.includes("Ref<") || type.includes("RefObject<")) {
16838
+ return { category: "exclude" };
16839
+ }
16840
+ if (name === "testId" || name === "data-testid" || name === "dataTestId") {
16841
+ return { category: "exclude" };
16842
+ }
16843
+ if (name === "key") {
16844
+ return { category: "exclude" };
16845
+ }
16846
+ if (type.includes("Dispatch<") || type.includes("SetStateAction")) {
16847
+ return { category: "exclude" };
16848
+ }
16849
+ if (isDomPassThroughProp(name)) {
16850
+ return { category: "exclude" };
16851
+ }
16852
+ if (name === "name" && prop.domAttribute) {
16853
+ return { category: "exclude" };
16854
+ }
16855
+ if (isStringLiteralUnion(type)) {
16856
+ return { category: "design", cdfTypeHint: "enum" };
16857
+ }
16858
+ if (!isComplexType(type)) {
16859
+ const designNameStart = /^(variant|size|spacing|gap|color|bg|theme|align|layout|orientation|position)/i;
16860
+ const designNameEnd = /(Color|Size|Variant|Style)$/;
16861
+ if (designNameStart.test(name) || designNameEnd.test(name)) {
16862
+ return { category: "design", cdfTypeHint: "string" };
16863
+ }
16864
+ }
16865
+ if (isBooleanType(type)) {
16866
+ const stateNames = ["disabled", "loading", "expanded", "isOpen", "selected", "checked", "active", "preview"];
16867
+ if (stateNames.includes(name)) {
16868
+ return { category: "state", cdfTypeHint: "boolean" };
16869
+ }
16870
+ }
16871
+ if (isBooleanType(type)) {
16872
+ const visualToggle = /^(hide|show|enable|disable|vertical|horizontal|reverse|bold|italic|imageOn|with)/i;
16873
+ if (visualToggle.test(name)) {
16874
+ return { category: "design", cdfTypeHint: "boolean" };
16875
+ }
16876
+ }
16877
+ if (name === "componentId" || name === "sectionKey" || name === "locale" || name === "variantIndex") {
16878
+ return { category: "state", cdfTypeHint: "string" };
16879
+ }
16880
+ if (isStringType(type)) {
16881
+ const urlNameStart = /^(href|url|link|src)/i;
16882
+ const urlNameEnd = /(Url|Href|Link|Src)$/;
16883
+ if (urlNameStart.test(name) || urlNameEnd.test(name)) {
16884
+ return { category: "content", cdfTypeHint: "string" };
18332
16885
  }
18333
- if (inspection.reviewReasons.length > 0) {
18334
- const reviewNotes = describeReviewReasons(inspection.reviewReasons).filter((note) => note !== "high-confidence data-fetch wrapper").join("; ");
18335
- if (reviewNotes)
18336
- warnings.push(`${component.name}: ${reviewNotes}`);
16886
+ }
16887
+ if (isStringType(type)) {
16888
+ const textNameStart = /^(label|title|text|description|caption|heading|subheading|body|alt|name|placeholder|summary)/i;
16889
+ const textNameEnd = /(Text|Label|Title|Name)$/;
16890
+ if (textNameStart.test(name) || textNameEnd.test(name)) {
16891
+ return { category: "content", cdfTypeHint: "string" };
18337
16892
  }
18338
- const extractorReasons = component.reviewReasons ?? [];
18339
- const nonAuthorableReason = retainedForReview ? [`non-authorable:${verdict.reason}`] : [];
18340
- const { confidence, reasons } = computeExtractionScore2(component, {
18341
- additionalIssueCount: wrapperConfidenceToIssueCount(inspection.wrapperConfidence) + extractorReasons.length + nonAuthorableReason.length,
18342
- additionalReasons: [...extractorReasons, ...inspection.reviewReasons, ...nonAuthorableReason]
18343
- });
18344
- scoredComponents.push({
18345
- ...component,
18346
- extractionConfidence: confidence,
18347
- reviewReasons: reasons,
18348
- needsReview: deriveNeedsReview2(confidence) || inspection.wrapperConfidence >= 4 || inspection.keepDespiteZeroSurface || retainedForReview || extractorReasons.includes("props-type-unresolved") || (component.needsReview ?? false)
18349
- });
18350
16893
  }
18351
- return {
18352
- components: validateExtractedComponents2(scoredComponents),
18353
- warnings
18354
- };
18355
- }
18356
- var init_evaluate_extraction_quality = __esm({
18357
- "packages/experience-design-system-extraction/dist/src/extract/services/quality/evaluate-extraction-quality.js"() {
18358
- "use strict";
18359
- init_evaluate_authorability();
18360
- init_compute_extraction_score();
18361
- init_inspect_component_source();
18362
- init_validate_extracted_components();
16894
+ if (isStringType(type)) {
16895
+ return { category: "content", cdfTypeHint: "string" };
18363
16896
  }
18364
- });
18365
-
18366
- // packages/experience-design-system-extraction/dist/src/extract/orchestrator/execute-extraction-orchestrator.js
18367
- var init_execute_extraction_orchestrator = __esm({
18368
- "packages/experience-design-system-extraction/dist/src/extract/orchestrator/execute-extraction-orchestrator.js"() {
18369
- "use strict";
18370
- init_extract_components();
18371
- init_classify_component_props();
18372
- init_evaluate_extraction_quality();
16897
+ if (isBooleanType(type)) {
16898
+ return { category: "design", cdfTypeHint: "boolean" };
18373
16899
  }
18374
- });
18375
-
18376
- // packages/experience-design-system-extraction/dist/src/extract/controller/helpers/validate-endpoint-request.js
18377
- var init_validate_endpoint_request = __esm({
18378
- "packages/experience-design-system-extraction/dist/src/extract/controller/helpers/validate-endpoint-request.js"() {
18379
- "use strict";
16900
+ if (isNumberType(type)) {
16901
+ return { category: "design", cdfTypeHint: "string" };
18380
16902
  }
18381
- });
18382
-
18383
- // packages/experience-design-system-extraction/dist/src/extract/controller/extract-controller.js
18384
- var init_extract_controller = __esm({
18385
- "packages/experience-design-system-extraction/dist/src/extract/controller/extract-controller.js"() {
16903
+ return void 0;
16904
+ }
16905
+ function preClassifyComponent(component) {
16906
+ const props = component.props.flatMap((prop) => {
16907
+ const result = preClassifyProp(prop);
16908
+ if (result?.category === "exclude") {
16909
+ return [];
16910
+ }
16911
+ const { domAttribute: _domAttribute, ...authorableProp } = prop;
16912
+ if (prop.category) {
16913
+ return [authorableProp];
16914
+ }
16915
+ if (!result) {
16916
+ return [authorableProp];
16917
+ }
16918
+ return [
16919
+ {
16920
+ ...authorableProp,
16921
+ category: result.category
16922
+ }
16923
+ ];
16924
+ });
16925
+ return { ...component, props };
16926
+ }
16927
+ var DOM_PASS_THROUGH_PROPS;
16928
+ var init_pre_classify = __esm({
16929
+ "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/pre-classify.js"() {
18386
16930
  "use strict";
18387
- init_execute_extraction_orchestrator();
18388
- init_validate_endpoint_request();
18389
- }
18390
- });
18391
-
18392
- // packages/experience-design-system-extraction/dist/src/index.js
18393
- var init_src3 = __esm({
18394
- "packages/experience-design-system-extraction/dist/src/index.js"() {
18395
- "use strict";
18396
- init_display();
18397
- init_extract_components();
18398
- init_extract_controller();
18399
- init_extractor2();
18400
- init_extractor6();
18401
- init_extractor5();
18402
- init_extractor3();
18403
- init_extractor();
18404
- init_extractor7();
18405
- init_extractor4();
18406
- init_collect_allowed_component_names();
18407
- init_evaluate_extraction_quality();
18408
- init_evaluate_authorability();
18409
- init_evaluate_authorability();
18410
- init_compute_extraction_score();
18411
- init_inspect_component_source();
18412
- init_validate_extracted_components();
18413
- init_parse_source_imports();
18414
- init_detect_slot_from_prop();
18415
- init_classify_component_props();
16931
+ DOM_PASS_THROUGH_PROPS = /* @__PURE__ */ new Set([
16932
+ // Bare HTML / framework styling pass-through
16933
+ "className",
16934
+ "class",
16935
+ "classes",
16936
+ "classNames",
16937
+ "rootClassName",
16938
+ "prefixCls",
16939
+ "style",
16940
+ "styles",
16941
+ // Bare HTML attributes
16942
+ "id",
16943
+ "role",
16944
+ "tabIndex",
16945
+ "tabindex",
16946
+ "htmlFor",
16947
+ "for",
16948
+ "slot",
16949
+ "is",
16950
+ "lang",
16951
+ "dir",
16952
+ "hidden",
16953
+ "draggable",
16954
+ "spellCheck",
16955
+ "spellcheck",
16956
+ "contentEditable",
16957
+ "contenteditable",
16958
+ "inputMode",
16959
+ "inputmode",
16960
+ "autoComplete",
16961
+ "autocomplete",
16962
+ "autoFocus",
16963
+ "autofocus",
16964
+ "translate",
16965
+ "part",
16966
+ "exportparts",
16967
+ "aria",
16968
+ // Framework theming / pass-through escape hatches — dev-facing, never marketer-configurable
16969
+ "dt",
16970
+ "pt",
16971
+ "ptOptions",
16972
+ "unstyled",
16973
+ "sx",
16974
+ // Polymorphic component props — change rendered HTML/component, not marketer-visible behavior
16975
+ "as",
16976
+ "element",
16977
+ "component",
16978
+ // QA / vendor test attributes
16979
+ "dataQa",
16980
+ "data-qa",
16981
+ // Vue v-model internals — framework wiring, never marketer-configurable
16982
+ "modelValue",
16983
+ "modelModifiers"
16984
+ ]);
18416
16985
  }
18417
16986
  });
18418
16987
 
@@ -18441,7 +17010,7 @@ function emitPreClassificationExclusions(extraction, onExclusion) {
18441
17010
  var init_emit_pre_classification_exclusions = __esm({
18442
17011
  "packages/experience-design-system-backend-pipeline/dist/src/orchestrators/run-extract-and-compose-session/helpers/emit-pre-classification-exclusions.js"() {
18443
17012
  "use strict";
18444
- init_src3();
17013
+ init_pre_classify();
18445
17014
  }
18446
17015
  });
18447
17016
 
@@ -18784,7 +17353,8 @@ async function runExtractAndComposeSession(request) {
18784
17353
  var init_run_extract_and_compose_session = __esm({
18785
17354
  "packages/experience-design-system-backend-pipeline/dist/src/orchestrators/run-extract-and-compose-session/run-extract-and-compose-session.js"() {
18786
17355
  "use strict";
18787
- init_src3();
17356
+ init_evaluate_extraction_quality();
17357
+ init_pre_classify();
18788
17358
  init_resolve_composition_sources();
18789
17359
  init_db();
18790
17360
  init_emit_pre_classification_exclusions();
@@ -19375,7 +17945,7 @@ var init_run_generate_components_session = __esm({
19375
17945
  });
19376
17946
 
19377
17947
  // packages/experience-design-system-backend-pipeline/dist/src/index.js
19378
- var init_src4 = __esm({
17948
+ var init_src3 = __esm({
19379
17949
  "packages/experience-design-system-backend-pipeline/dist/src/index.js"() {
19380
17950
  "use strict";
19381
17951
  init_export_cdf_document();
@@ -19613,7 +18183,7 @@ var AGENT_LABELS, asString;
19613
18183
  var init_agent_store = __esm({
19614
18184
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-store.ts"() {
19615
18185
  "use strict";
19616
- init_src4();
18186
+ init_src3();
19617
18187
  init_v1_store();
19618
18188
  AGENT_LABELS = {
19619
18189
  claude: "Claude Code",
@@ -19646,7 +18216,7 @@ var shellValues;
19646
18216
  var init_apply_binary_overrides = __esm({
19647
18217
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/apply-binary-overrides.ts"() {
19648
18218
  "use strict";
19649
- init_src4();
18219
+ init_src3();
19650
18220
  shellValues = /* @__PURE__ */ new Map();
19651
18221
  }
19652
18222
  });
@@ -20003,8 +18573,7 @@ function WelcomeScreen({ onContinue, onQuit, initialPath = "" }) {
20003
18573
  /* @__PURE__ */ jsxs3(Box3, { flexDirection: "column", gap: 1, children: [
20004
18574
  /* @__PURE__ */ jsx4(Text4, { children: "Where is your component library?" }),
20005
18575
  /* @__PURE__ */ jsxs3(Box3, { children: [
20006
- /* @__PURE__ */ jsx4(Text4, { color: PALETTE.text, children: "?" }),
20007
- /* @__PURE__ */ jsx4(Text4, { children: "Project path:" }),
18576
+ /* @__PURE__ */ jsx4(Text4, { children: "Project path: " }),
20008
18577
  /* @__PURE__ */ jsx4(TextInput, { value: projectPath, onChange: setProjectPath, onSubmit: submit })
20009
18578
  ] })
20010
18579
  ] }),
@@ -20304,7 +18873,7 @@ function foldSvelteAndMdIntoOther(counts) {
20304
18873
  var init_scan_files = __esm({
20305
18874
  "packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/helpers/scan-files.ts"() {
20306
18875
  "use strict";
20307
- init_src4();
18876
+ init_src3();
20308
18877
  }
20309
18878
  });
20310
18879
 
@@ -20426,7 +18995,7 @@ var FIELDS;
20426
18995
  var init_logic4 = __esm({
20427
18996
  "packages/experience-design-system-cli/src/tui/import/steps/04-credentials/logic.ts"() {
20428
18997
  "use strict";
20429
- init_src4();
18998
+ init_src3();
20430
18999
  FIELDS = ["spaceId", "environmentId", "cmaToken", "host"];
20431
19000
  }
20432
19001
  });
@@ -20463,7 +19032,7 @@ function cliUserAgent() {
20463
19032
  var init_user_agent = __esm({
20464
19033
  "packages/experience-design-system-cli/src/tui/user-agent.ts"() {
20465
19034
  "use strict";
20466
- init_src4();
19035
+ init_src3();
20467
19036
  init_version();
20468
19037
  }
20469
19038
  });
@@ -20498,7 +19067,7 @@ function toUserError(error, host) {
20498
19067
  var init_validate4 = __esm({
20499
19068
  "packages/experience-design-system-cli/src/tui/import/steps/04-credentials/validate.ts"() {
20500
19069
  "use strict";
20501
- init_src4();
19070
+ init_src3();
20502
19071
  init_user_agent();
20503
19072
  }
20504
19073
  });
@@ -20601,7 +19170,7 @@ var init_screen4 = __esm({
20601
19170
  "use strict";
20602
19171
  init_theme();
20603
19172
  init_controls4();
20604
- init_src4();
19173
+ init_src3();
20605
19174
  init_logic4();
20606
19175
  init_validate4();
20607
19176
  LABELS = {
@@ -21067,7 +19636,7 @@ function resolveAgentChoice(flag, stored) {
21067
19636
  var init_logic9 = __esm({
21068
19637
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/logic.ts"() {
21069
19638
  "use strict";
21070
- init_src4();
19639
+ init_src3();
21071
19640
  }
21072
19641
  });
21073
19642
 
@@ -21223,7 +19792,7 @@ var SELECT_SKILL_PATH, DEFAULT_TIMEOUT_MS5;
21223
19792
  var init_selection2 = __esm({
21224
19793
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/selection.ts"() {
21225
19794
  "use strict";
21226
- init_src4();
19795
+ init_src3();
21227
19796
  init_find_skill_path();
21228
19797
  SELECT_SKILL_PATH = findSkillPath("select-components.md");
21229
19798
  DEFAULT_TIMEOUT_MS5 = Number(process.env.EDS_AGENT_TIMEOUT_MS ?? 5 * 60 * 1e3);
@@ -21368,7 +19937,7 @@ var TOKENS_SKILL_PATH, realDeps, fail, errorMessage2;
21368
19937
  var init_run = __esm({
21369
19938
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/run.ts"() {
21370
19939
  "use strict";
21371
- init_src4();
19940
+ init_src3();
21372
19941
  init_find_skill_path();
21373
19942
  init_logic9();
21374
19943
  init_selection2();
@@ -24465,7 +23034,7 @@ async function checkGenerationCache(input) {
24465
23034
  var init_cache_check = __esm({
24466
23035
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/cache-check.ts"() {
24467
23036
  "use strict";
24468
- init_src4();
23037
+ init_src3();
24469
23038
  }
24470
23039
  });
24471
23040
 
@@ -24492,7 +23061,7 @@ function loadScopeGate(sessionId) {
24492
23061
  var init_load = __esm({
24493
23062
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/load.ts"() {
24494
23063
  "use strict";
24495
- init_src4();
23064
+ init_src3();
24496
23065
  }
24497
23066
  });
24498
23067
 
@@ -24622,7 +23191,7 @@ async function prepareMapTokens(input, generatedSessionId) {
24622
23191
  var init_map_tokens = __esm({
24623
23192
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/map-tokens.ts"() {
24624
23193
  "use strict";
24625
- init_src4();
23194
+ init_src3();
24626
23195
  init_logic10();
24627
23196
  }
24628
23197
  });
@@ -24640,7 +23209,7 @@ async function saveDecisions(input) {
24640
23209
  var init_save_decisions = __esm({
24641
23210
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/save-decisions.ts"() {
24642
23211
  "use strict";
24643
- init_src4();
23212
+ init_src3();
24644
23213
  }
24645
23214
  });
24646
23215
 
@@ -24758,7 +23327,7 @@ var COMPONENTS_SKILL_PATH, MAP_TOKENS_SKILL_PATH, realDeps3, fail2, errorMessage
24758
23327
  var init_run2 = __esm({
24759
23328
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/run.ts"() {
24760
23329
  "use strict";
24761
- init_src4();
23330
+ init_src3();
24762
23331
  init_find_skill_path();
24763
23332
  init_logic9();
24764
23333
  init_map_tokens();
@@ -24836,7 +23405,7 @@ function buildFlowStart(input) {
24836
23405
  var init_build_flow_start = __esm({
24837
23406
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/build-flow-start.ts"() {
24838
23407
  "use strict";
24839
- init_src4();
23408
+ init_src3();
24840
23409
  }
24841
23410
  });
24842
23411
 
@@ -25210,7 +23779,7 @@ var init_dtcg2 = __esm({
25210
23779
  });
25211
23780
 
25212
23781
  // packages/experience-design-system-types/dist/src/index.js
25213
- var init_src5 = __esm({
23782
+ var init_src4 = __esm({
25214
23783
  "packages/experience-design-system-types/dist/src/index.js"() {
25215
23784
  "use strict";
25216
23785
  init_cdf2();
@@ -27358,7 +25927,7 @@ var init_FieldEditor = __esm({
27358
25927
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx"() {
27359
25928
  "use strict";
27360
25929
  init_theme();
27361
- init_src5();
25930
+ init_src4();
27362
25931
  init_useImmediateInput();
27363
25932
  init_scroll_offset();
27364
25933
  init_cycle_detection();
@@ -28273,7 +26842,7 @@ function finalizeReviewSession(extractSessionId, components) {
28273
26842
  var init_session3 = __esm({
28274
26843
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/session.ts"() {
28275
26844
  "use strict";
28276
- init_src4();
26845
+ init_src3();
28277
26846
  }
28278
26847
  });
28279
26848
 
@@ -28386,10 +26955,10 @@ var TimeoutError, DEFAULT_TIMEOUT_MS6;
28386
26955
  var init_run_live_preview = __esm({
28387
26956
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/run-live-preview.ts"() {
28388
26957
  "use strict";
28389
- init_src5();
28390
- init_src4();
28391
- init_src4();
28392
26958
  init_src4();
26959
+ init_src3();
26960
+ init_src3();
26961
+ init_src3();
28393
26962
  init_user_agent();
28394
26963
  TimeoutError = class extends Error {
28395
26964
  constructor(message = "live-preview timed out") {
@@ -28715,7 +27284,7 @@ function useReviewFinalize({
28715
27284
  var init_use_review_session = __esm({
28716
27285
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-review-session.ts"() {
28717
27286
  "use strict";
28718
- init_src4();
27287
+ init_src3();
28719
27288
  init_history();
28720
27289
  init_session3();
28721
27290
  init_use_finalize_preview();
@@ -28893,7 +27462,7 @@ function useReviewEditor({
28893
27462
  var init_use_review_editor = __esm({
28894
27463
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-review-editor.ts"() {
28895
27464
  "use strict";
28896
- init_src4();
27465
+ init_src3();
28897
27466
  init_token_suggestions();
28898
27467
  }
28899
27468
  });
@@ -29343,7 +27912,7 @@ var DEFAULT_DEBOUNCE_MS;
29343
27912
  var init_use_live_preview = __esm({
29344
27913
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-live-preview.ts"() {
29345
27914
  "use strict";
29346
- init_src4();
27915
+ init_src3();
29347
27916
  init_run_live_preview();
29348
27917
  DEFAULT_DEBOUNCE_MS = 500;
29349
27918
  }
@@ -30726,7 +29295,7 @@ var init_generate_review_step = __esm({
30726
29295
  init_issue_inheritance();
30727
29296
  init_removed_components_text();
30728
29297
  init_useImmediateInput();
30729
- init_src4();
29298
+ init_src3();
30730
29299
  init_cycle_detection();
30731
29300
  init_cycle_panel_scroll();
30732
29301
  init_fuzzy_search();
@@ -31683,7 +30252,7 @@ var init_WizardPreviewStep = __esm({
31683
30252
  init_theme();
31684
30253
  init_useImmediateInput();
31685
30254
  init_use_terminal_size();
31686
- init_src4();
30255
+ init_src3();
31687
30256
  init_preview_diff();
31688
30257
  init_StepHeader();
31689
30258
  init_SpaceEnvironment();
@@ -31849,7 +30418,7 @@ function FlowScreen({
31849
30418
  var init_screen10 = __esm({
31850
30419
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx"() {
31851
30420
  "use strict";
31852
- init_src5();
30421
+ init_src4();
31853
30422
  init_shared2();
31854
30423
  init_screen9();
31855
30424
  init_generate_review_step();
@@ -32038,8 +30607,8 @@ var realPreviewDeps;
32038
30607
  var init_preview2 = __esm({
32039
30608
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/preview.ts"() {
32040
30609
  "use strict";
30610
+ init_src3();
32041
30611
  init_src4();
32042
- init_src5();
32043
30612
  init_user_agent();
32044
30613
  init_wizard_state_transitions();
32045
30614
  realPreviewDeps = () => ({
@@ -32212,8 +30781,8 @@ var realPushDeps, zeroResult, componentsOf;
32212
30781
  var init_push = __esm({
32213
30782
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/push.ts"() {
32214
30783
  "use strict";
30784
+ init_src3();
32215
30785
  init_src4();
32216
- init_src5();
32217
30786
  init_user_agent();
32218
30787
  init_wizard_state_transitions();
32219
30788
  realPushDeps = (log) => ({
@@ -32334,8 +30903,8 @@ var SAVE_CONFIRMATION_DELAY_MS, realSaveDeps;
32334
30903
  var init_save = __esm({
32335
30904
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/save.ts"() {
32336
30905
  "use strict";
30906
+ init_src3();
32337
30907
  init_src4();
32338
- init_src5();
32339
30908
  init_run_print_files_helpers();
32340
30909
  SAVE_CONFIRMATION_DELAY_MS = 1e3;
32341
30910
  realSaveDeps = () => ({
@@ -32638,7 +31207,7 @@ var WIZARD_LOG;
32638
31207
  var init_controller = __esm({
32639
31208
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/controller.ts"() {
32640
31209
  "use strict";
32641
- init_src4();
31210
+ init_src3();
32642
31211
  init_slot_graph();
32643
31212
  init_cycle_detection();
32644
31213
  init_wizard_state_transitions();
@@ -32683,21 +31252,71 @@ var init_use_flow = __esm({
32683
31252
  });
32684
31253
 
32685
31254
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/debug-mode-store.ts
31255
+ function toRetentionDays(value) {
31256
+ return RETENTION_CHOICES.find((choice) => choice === value) ?? DEFAULT_RETENTION_DAYS;
31257
+ }
32686
31258
  async function readDebugModeSetting() {
32687
31259
  const { debugMode } = await readSettings2();
32688
- return { ...DEFAULT_DEBUG_MODE_SETTING, ...debugMode };
31260
+ const saved = debugMode ?? {};
31261
+ return {
31262
+ enabled: typeof saved.enabled === "boolean" ? saved.enabled : true,
31263
+ retentionDays: toRetentionDays(saved.retentionDays)
31264
+ };
32689
31265
  }
32690
- async function writeDebugModeSetting(setting) {
32691
- await updateSettings2({ debugMode: setting });
31266
+ async function writeDebugModeSetting(change) {
31267
+ await updateSettings2({ debugMode: { ...await readDebugModeSetting(), ...change } });
32692
31268
  }
32693
- var DEFAULT_DEBUG_MODE_SETTING;
31269
+ var RETENTION_CHOICES, DEFAULT_RETENTION_DAYS;
32694
31270
  var init_debug_mode_store = __esm({
32695
31271
  "packages/experience-design-system-cli/src/tui/settings/debug-mode/debug-mode-store.ts"() {
32696
31272
  "use strict";
32697
31273
  init_config();
32698
- DEFAULT_DEBUG_MODE_SETTING = {
32699
- enabled: true
32700
- };
31274
+ RETENTION_CHOICES = [30, 60, 90];
31275
+ DEFAULT_RETENTION_DAYS = 30;
31276
+ }
31277
+ });
31278
+
31279
+ // packages/experience-design-system-cli/src/tui/debug-prune.ts
31280
+ import { readdir as readdir3, rm, stat as stat5 } from "node:fs/promises";
31281
+ import { join as join25 } from "node:path";
31282
+ async function logFilesIn(dir) {
31283
+ const entries = await readdir3(dir, { withFileTypes: true });
31284
+ const nested = await Promise.all(
31285
+ entries.map(async (entry) => {
31286
+ const path5 = join25(dir, entry.name);
31287
+ if (entry.isDirectory()) return logFilesIn(path5);
31288
+ return entry.isFile() && entry.name.endsWith(".md") ? [path5] : [];
31289
+ })
31290
+ );
31291
+ return nested.flat();
31292
+ }
31293
+ async function pruneExpiredLogs(base, retentionDays, now = Date.now()) {
31294
+ const cutoff = now - retentionDays * DAY_MS;
31295
+ const contentfulDir = join25(base, ".contentful");
31296
+ let deleted = 0;
31297
+ try {
31298
+ const sessions = (await readdir3(contentfulDir)).filter((name) => SESSION_FOLDER.test(name));
31299
+ for (const session of sessions) {
31300
+ const files = await logFilesIn(join25(contentfulDir, session, "debug")).catch(() => []);
31301
+ for (const file of files) {
31302
+ try {
31303
+ if ((await stat5(file)).mtimeMs >= cutoff) continue;
31304
+ await rm(file);
31305
+ deleted += 1;
31306
+ } catch {
31307
+ }
31308
+ }
31309
+ }
31310
+ } catch {
31311
+ }
31312
+ return deleted;
31313
+ }
31314
+ var DAY_MS, SESSION_FOLDER;
31315
+ var init_debug_prune = __esm({
31316
+ "packages/experience-design-system-cli/src/tui/debug-prune.ts"() {
31317
+ "use strict";
31318
+ DAY_MS = 24 * 60 * 60 * 1e3;
31319
+ SESSION_FOLDER = /^\d{2}-\d{2}-\d{4}-session-\d+$/;
32701
31320
  }
32702
31321
  });
32703
31322
 
@@ -32713,7 +31332,7 @@ __export(debug_store_exports, {
32713
31332
  });
32714
31333
  import { mkdir as mkdir9, writeFile as writeFile8 } from "node:fs/promises";
32715
31334
  import { existsSync as existsSync10, readdirSync as readdirSync4 } from "node:fs";
32716
- import { join as join25, resolve as resolve26 } from "node:path";
31335
+ import { join as join26, resolve as resolve26 } from "node:path";
32717
31336
  function generateRunId() {
32718
31337
  const now = /* @__PURE__ */ new Date();
32719
31338
  const pad = (n) => String(n).padStart(2, "0");
@@ -32745,12 +31364,12 @@ function nextSessionId(contentfulDir) {
32745
31364
  return `${today}-session-${maxSeq + 1}`;
32746
31365
  }
32747
31366
  function startSession(base, { replace }) {
32748
- const contentfulDir = join25(base, ".contentful");
32749
- if (replace || !sessionDir) sessionDir = join25(contentfulDir, nextSessionId(contentfulDir));
31367
+ const contentfulDir = join26(base, ".contentful");
31368
+ if (replace || !sessionDir) sessionDir = join26(contentfulDir, nextSessionId(contentfulDir));
32750
31369
  return sessionDir;
32751
31370
  }
32752
31371
  function currentDebugSessionDir() {
32753
- return sessionDir && join25(sessionDir, "debug");
31372
+ return sessionDir && join26(sessionDir, "debug");
32754
31373
  }
32755
31374
  function currentSessionDir() {
32756
31375
  return sessionDir;
@@ -32758,7 +31377,7 @@ function currentSessionDir() {
32758
31377
  async function startDebugSessionIn(base, { replace = false } = {}) {
32759
31378
  try {
32760
31379
  if (!await isDebugModeEnabled()) return;
32761
- await mkdir9(join25(startSession(resolve26(base), { replace }), "debug"), { recursive: true });
31380
+ await mkdir9(join26(startSession(resolve26(base), { replace }), "debug"), { recursive: true });
32762
31381
  } catch {
32763
31382
  }
32764
31383
  }
@@ -32768,11 +31387,11 @@ function nextImportRunDir(session) {
32768
31387
  const match2 = /^dsi-import-(\d+)$/.exec(entry);
32769
31388
  return match2 ? Math.max(max, Number(match2[1])) : max;
32770
31389
  }, 0);
32771
- return join25(session, `dsi-import-${maxRun + 1}`);
31390
+ return join26(session, `dsi-import-${maxRun + 1}`);
32772
31391
  }
32773
31392
  async function startImportRun(projectPath) {
32774
31393
  await startDebugSessionIn(projectPath);
32775
- if (!sessionDir) return join25(resolve26(projectPath), ".contentful");
31394
+ if (!sessionDir) return join26(resolve26(projectPath), ".contentful");
32776
31395
  const dir = nextImportRunDir(sessionDir);
32777
31396
  await mkdir9(dir, { recursive: true });
32778
31397
  return dir;
@@ -32819,10 +31438,10 @@ async function finishDebugRun({
32819
31438
  const root = currentDebugSessionDir();
32820
31439
  if (!root) return;
32821
31440
  const flowSegments = run.flow.split("/");
32822
- const dir = join25(root, ...flowSegments);
31441
+ const dir = join26(root, ...flowSegments);
32823
31442
  await mkdir9(dir, { recursive: true });
32824
31443
  const filename = nextAttemptFilename(dir, run.menuOption);
32825
- await writeFile8(join25(dir, filename), content, { mode: 384 });
31444
+ await writeFile8(join26(dir, filename), content, { mode: 384 });
32826
31445
  }
32827
31446
  function nextAttemptFilename(dir, menuOption) {
32828
31447
  const today = datePrefix();
@@ -32873,9 +31492,11 @@ var init_debug_store = __esm({
32873
31492
  init_config();
32874
31493
  init_version();
32875
31494
  init_debug_mode_store();
32876
- void Promise.all([isDebugModeEnabled(), readBaseDir()]).then(([enabled, base]) => {
32877
- if (!enabled || !base) return void 0;
32878
- return mkdir9(join25(startSession(base, { replace: false }), "debug"), { recursive: true });
31495
+ init_debug_prune();
31496
+ void Promise.all([isDebugModeEnabled(), readBaseDir()]).then(async ([enabled, base]) => {
31497
+ if (!base) return;
31498
+ await readDebugModeSetting().then(({ retentionDays }) => pruneExpiredLogs(base, retentionDays)).catch(() => void 0);
31499
+ if (enabled) await mkdir9(join26(startSession(base, { replace: false }), "debug"), { recursive: true });
32879
31500
  });
32880
31501
  process.once("uncaughtException", (err) => {
32881
31502
  void handleCrash().finally(() => {
@@ -32896,7 +31517,7 @@ var init_debug_store = __esm({
32896
31517
  });
32897
31518
 
32898
31519
  // packages/experience-design-system-cli/src/tui/help/file-locations.ts
32899
- import { join as join26, resolve as resolve27 } from "node:path";
31520
+ import { join as join27, resolve as resolve27 } from "node:path";
32900
31521
  function describeFileLocations({
32901
31522
  contentfulBaseDir,
32902
31523
  debugModeEnabled,
@@ -32905,14 +31526,14 @@ function describeFileLocations({
32905
31526
  if (!debugModeEnabled) {
32906
31527
  return {
32907
31528
  debugLogs: "none while Debug Mode is off",
32908
- importFiles: `${join26("<project>", ".contentful")}/ (tokens.json, components.json)`
31529
+ importFiles: `${join27("<project>", ".contentful")}/ (tokens.json, components.json)`
32909
31530
  };
32910
31531
  }
32911
31532
  const base = contentfulBaseDir ? resolve27(contentfulBaseDir) : "<project>";
32912
- const session = currentSessionDir2 ?? join26(base, ".contentful", "<date>-session-<n>");
31533
+ const session = currentSessionDir2 ?? join27(base, ".contentful", "<date>-session-<n>");
32913
31534
  return {
32914
- debugLogs: join26(session, "debug"),
32915
- importFiles: `${join26(session, "dsi-import-<n>")}/ (tokens.json, components.json)`
31535
+ debugLogs: join27(session, "debug"),
31536
+ importFiles: `${join27(session, "dsi-import-<n>")}/ (tokens.json, components.json)`
32916
31537
  };
32917
31538
  }
32918
31539
  var init_file_locations = __esm({
@@ -33299,7 +31920,7 @@ var VERSION_TIMEOUT_MS, PROMPT_TIMEOUT_MS, TEST_PROMPT, INSTALL_HINTS, LOGIN_HIN
33299
31920
  var init_agent_status = __esm({
33300
31921
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-status.ts"() {
33301
31922
  "use strict";
33302
- init_src4();
31923
+ init_src3();
33303
31924
  VERSION_TIMEOUT_MS = 5e3;
33304
31925
  PROMPT_TIMEOUT_MS = 6e4;
33305
31926
  TEST_PROMPT = "Reply with the single word: ok";
@@ -33366,7 +31987,7 @@ async function describeAgents(config) {
33366
31987
  var init_agent_debug = __esm({
33367
31988
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-debug.ts"() {
33368
31989
  "use strict";
33369
- init_src4();
31990
+ init_src3();
33370
31991
  init_agent_status();
33371
31992
  }
33372
31993
  });
@@ -33646,7 +32267,7 @@ var fields, INSPECT_DELAY_MS;
33646
32267
  var init_AgentDetail = __esm({
33647
32268
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx"() {
33648
32269
  "use strict";
33649
- init_src4();
32270
+ init_src3();
33650
32271
  init_theme();
33651
32272
  init_FieldForm();
33652
32273
  init_agent_store();
@@ -33864,7 +32485,7 @@ var NAME_WIDTH, PANEL_LABEL_WIDTH;
33864
32485
  var init_AgentsScreen = __esm({
33865
32486
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx"() {
33866
32487
  "use strict";
33867
- init_src4();
32488
+ init_src3();
33868
32489
  init_theme();
33869
32490
  init_control_hints();
33870
32491
  init_debug_store();
@@ -34194,57 +32815,79 @@ var init_screen11 = __esm({
34194
32815
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
34195
32816
  import { useEffect as useEffect26, useState as useState35 } from "react";
34196
32817
  import { Box as Box50, Text as Text53, useInput as useInput16 } from "ink";
34197
- import { jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
32818
+ import { Fragment as Fragment21, jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
34198
32819
  function DebugModeScreen({ onDone }) {
34199
- const [loading, setLoading] = useState35(true);
34200
- const [enabled, setEnabled] = useState35(true);
32820
+ const [setting, setSetting] = useState35(null);
32821
+ const [focus, setFocus] = useState35("enabled");
34201
32822
  useEffect26(() => {
34202
- readDebugModeSetting().then((setting) => {
34203
- setEnabled(setting.enabled);
34204
- setLoading(false);
32823
+ readDebugModeSetting().then((loaded) => {
32824
+ setSetting(loaded);
34205
32825
  startDebugRun({
34206
32826
  flow: "settings/debug-mode",
34207
32827
  step: "01-debug-mode",
34208
32828
  menuOption: "Debug Mode",
34209
- inputs: { enabled: setting.enabled }
32829
+ inputs: { ...loaded }
34210
32830
  });
34211
32831
  });
34212
32832
  }, []);
32833
+ const change = (patch) => {
32834
+ if (!setting) return;
32835
+ setSetting({ ...setting, ...patch });
32836
+ void writeDebugModeSetting(patch);
32837
+ };
34213
32838
  useInput16((input, key) => {
34214
- if (loading) return;
32839
+ if (!setting) return;
32840
+ if (key.upArrow || key.downArrow) {
32841
+ setFocus((current) => ROWS[(ROWS.indexOf(current) + (key.downArrow ? 1 : ROWS.length - 1)) % ROWS.length]);
32842
+ return;
32843
+ }
34215
32844
  if (key.return || input === " ") {
34216
- setEnabled((current) => {
34217
- const next = !current;
34218
- void writeDebugModeSetting({ enabled: next });
34219
- return next;
34220
- });
32845
+ if (focus === "enabled") change({ enabled: !setting.enabled });
32846
+ else change({ retentionDays: nextRetention(setting.retentionDays) });
34221
32847
  return;
34222
32848
  }
34223
32849
  if (key.escape || input === "q") {
34224
- void finishDebugRun({ outputs: { enabled }, status: "success", exitMethod: "saved" });
32850
+ void finishDebugRun({ outputs: { ...setting }, status: "success", exitMethod: "saved" });
34225
32851
  onDone();
34226
32852
  }
34227
32853
  });
32854
+ const marker = (row) => focus === row ? "\u276F" : " ";
34228
32855
  return /* @__PURE__ */ jsxs51(Box50, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
34229
32856
  /* @__PURE__ */ jsx62(Text53, { bold: true, children: "Settings \u203A Debug Mode" }),
34230
32857
  /* @__PURE__ */ jsx62(Text53, { children: " " }),
34231
- loading ? /* @__PURE__ */ jsx62(Text53, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs51(Text53, { children: [
34232
- "Debug logging:",
34233
- " ",
34234
- /* @__PURE__ */ jsx62(Text53, { bold: true, color: enabled ? PALETTE.success : PALETTE.muted, children: enabled ? "On" : "Off" })
34235
- ] }),
32858
+ setting ? /* @__PURE__ */ jsxs51(Fragment21, { children: [
32859
+ /* @__PURE__ */ jsxs51(Text53, { children: [
32860
+ marker("enabled"),
32861
+ " Debug logging:",
32862
+ " ",
32863
+ /* @__PURE__ */ jsx62(Text53, { bold: true, color: setting.enabled ? PALETTE.success : PALETTE.muted, children: setting.enabled ? "On" : "Off" })
32864
+ ] }),
32865
+ /* @__PURE__ */ jsxs51(Text53, { children: [
32866
+ marker("retentionDays"),
32867
+ " Delete logs after:",
32868
+ " ",
32869
+ /* @__PURE__ */ jsxs51(Text53, { bold: true, color: PALETTE.accent, children: [
32870
+ setting.retentionDays,
32871
+ " days"
32872
+ ] })
32873
+ ] }),
32874
+ /* @__PURE__ */ jsx62(Text53, { children: " " }),
32875
+ /* @__PURE__ */ jsx62(Text53, { color: PALETTE.muted, children: "Older logs are deleted the next time the CLI starts." })
32876
+ ] }) : /* @__PURE__ */ jsx62(Text53, { color: PALETTE.muted, children: "Loading\u2026" }),
34236
32877
  /* @__PURE__ */ jsx62(Text53, { children: " " }),
34237
32878
  /* @__PURE__ */ jsx62(
34238
32879
  ControlHints,
34239
32880
  {
34240
32881
  hints: [
34241
- { keys: "\u23CE/Space", label: "toggle" },
32882
+ { keys: "\u2191/\u2193", label: "move" },
32883
+ { keys: "\u23CE/Space", label: "change" },
34242
32884
  { keys: "Esc/q", label: "back" }
34243
32885
  ]
34244
32886
  }
34245
32887
  )
34246
32888
  ] });
34247
32889
  }
32890
+ var ROWS, nextRetention;
34248
32891
  var init_screen12 = __esm({
34249
32892
  "packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx"() {
34250
32893
  "use strict";
@@ -34252,6 +32895,8 @@ var init_screen12 = __esm({
34252
32895
  init_debug_mode_store();
34253
32896
  init_debug_store();
34254
32897
  init_control_hints();
32898
+ ROWS = ["enabled", "retentionDays"];
32899
+ nextRetention = (current) => RETENTION_CHOICES[(RETENTION_CHOICES.indexOf(current) + 1) % RETENTION_CHOICES.length];
34255
32900
  }
34256
32901
  });
34257
32902
 
@@ -34260,9 +32905,9 @@ var app_exports = {};
34260
32905
  __export(app_exports, {
34261
32906
  runApp: () => runApp
34262
32907
  });
34263
- import { join as join27 } from "node:path";
32908
+ import { join as join28 } from "node:path";
34264
32909
  import { useEffect as useEffect27, useState as useState36 } from "react";
34265
- import { Fragment as Fragment21, jsx as jsx63 } from "react/jsx-runtime";
32910
+ import { Fragment as Fragment22, jsx as jsx63 } from "react/jsx-runtime";
34266
32911
  function App({ importOptions, inkClear }) {
34267
32912
  const [screen, setScreen] = useState36("start");
34268
32913
  const [importExitCode, setImportExitCode] = useState36();
@@ -34311,7 +32956,7 @@ function App({ importOptions, inkClear }) {
34311
32956
  const launch = { projectPath: projectPath2, tokens, filePaths, ...importOptions };
34312
32957
  const state2 = await inspectTokens({
34313
32958
  rawTokensPath: tokens,
34314
- contentfulDir: join27(resolveUserPath(projectPath2), ".contentful"),
32959
+ contentfulDir: join28(resolveUserPath(projectPath2), ".contentful"),
34315
32960
  cache: importOptions.cache
34316
32961
  });
34317
32962
  if (state2.kind === "cached") {
@@ -34431,7 +33076,7 @@ function App({ importOptions, inkClear }) {
34431
33076
  }
34432
33077
  );
34433
33078
  }
34434
- if (importDefaults === void 0) return /* @__PURE__ */ jsx63(Fragment21, {});
33079
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx63(Fragment22, {});
34435
33080
  if (projectPath === void 0) {
34436
33081
  return /* @__PURE__ */ jsx63(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
34437
33082
  }
@@ -34470,7 +33115,7 @@ function App({ importOptions, inkClear }) {
34470
33115
  }
34471
33116
  );
34472
33117
  }
34473
- return /* @__PURE__ */ jsx63(Fragment21, {});
33118
+ return /* @__PURE__ */ jsx63(Fragment22, {});
34474
33119
  }
34475
33120
  if (scopeRun && scopeFlow) {
34476
33121
  if (scopeFlow.status === "failed") {
@@ -34507,7 +33152,7 @@ function App({ importOptions, inkClear }) {
34507
33152
  }
34508
33153
  );
34509
33154
  }
34510
- return /* @__PURE__ */ jsx63(Fragment21, {});
33155
+ return /* @__PURE__ */ jsx63(Fragment22, {});
34511
33156
  }
34512
33157
  if (pendingLaunch?.cached) {
34513
33158
  return /* @__PURE__ */ jsx63(
@@ -34580,9 +33225,9 @@ var init_app = __esm({
34580
33225
  });
34581
33226
 
34582
33227
  // packages/experience-design-system-cli/program.ts
34583
- init_src4();
33228
+ init_src3();
34584
33229
  import { readFileSync as readFileSync9 } from "node:fs";
34585
- import { join as join28 } from "node:path";
33230
+ import { join as join29 } from "node:path";
34586
33231
  import { Command } from "commander";
34587
33232
 
34588
33233
  // packages/experience-design-system-cli/src/commands/import-options.ts
@@ -34648,7 +33293,7 @@ init_analytics_store();
34648
33293
  init_package_root();
34649
33294
  var pkg = JSON.parse(
34650
33295
  readFileSync9(
34651
- join28(findPackageRoot(import.meta.url, "@contentful/experience-design-system-cli"), "package.json"),
33296
+ join29(findPackageRoot(import.meta.url, "@contentful/experience-design-system-cli"), "package.json"),
34652
33297
  "utf8"
34653
33298
  )
34654
33299
  );
@@ -34689,7 +33334,7 @@ init_config();
34689
33334
  init_package_root();
34690
33335
  import { existsSync as existsSync12 } from "node:fs";
34691
33336
  import { mkdir as mkdir10, readFile as readFile19, rename as rename3, rmdir, unlink } from "node:fs/promises";
34692
- import { dirname as dirname16, join as join29 } from "node:path";
33337
+ import { dirname as dirname16, join as join30 } from "node:path";
34693
33338
  var PACKAGE_NAME3 = "@contentful/experience-design-system-cli";
34694
33339
  async function readJson(path5) {
34695
33340
  try {
@@ -34700,9 +33345,9 @@ async function readJson(path5) {
34700
33345
  }
34701
33346
  async function migrateOldConfig() {
34702
33347
  try {
34703
- const oldCredentials = join29(oldConfigDir2(), "credentials.json");
34704
- const oldRuns = join29(oldConfigDir2(), "runs.json");
34705
- const oldDebugMode = join29(
33348
+ const oldCredentials = join30(oldConfigDir2(), "credentials.json");
33349
+ const oldRuns = join30(oldConfigDir2(), "runs.json");
33350
+ const oldDebugMode = join30(
34706
33351
  findPackageRoot(import.meta.url, PACKAGE_NAME3),
34707
33352
  ".contentful",
34708
33353
  "config",