@sap/ux-specification 1.84.129 → 1.84.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CHANGELOG.md +466 -399
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
  3. package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
  4. package/dist/documentation/v2/v2-ListReport.html +2 -2
  5. package/dist/documentation/v2/v2-ListReportNew.html +2 -2
  6. package/dist/documentation/v2/v2-ObjectPage.html +2 -2
  7. package/dist/documentation/v2/v2-OverviewPage.html +2 -2
  8. package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
  9. package/dist/documentation/v4/v4-ListReport.html +2 -2
  10. package/dist/documentation/v4/v4-ObjectPage.html +2 -2
  11. package/dist/index-min.js +182 -180
  12. package/dist/index-min.js.map +4 -4
  13. package/dist/schemas/v2/AnalyticalListPageConfig.json +3 -3
  14. package/dist/schemas/v2/ListReportConfig.json +5 -5
  15. package/dist/schemas/v2/ListReportNewConfig.json +1 -1
  16. package/dist/schemas/v2/ObjectPageConfig.json +5 -5
  17. package/dist/specification/package.json +12 -9
  18. package/dist/specification/scripts/extractDocu.js +18 -1
  19. package/dist/specification/scripts/extractDocu.js.map +1 -1
  20. package/dist/specification/scripts/generate-validity-report.d.ts +15 -0
  21. package/dist/specification/scripts/generate-validity-report.d.ts.map +1 -0
  22. package/dist/specification/scripts/generate-validity-report.js +320 -0
  23. package/dist/specification/scripts/generate-validity-report.js.map +1 -0
  24. package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +501 -0
  25. package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -0
  26. package/dist/specification/src/sync/common/decoration/decorator-paths.js +497 -0
  27. package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -0
  28. package/dist/specification/src/sync/common/decoration/decorators.d.ts +149 -23
  29. package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
  30. package/dist/specification/src/sync/common/decoration/decorators.js +369 -74
  31. package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
  32. package/dist/specification/src/sync/common/decoration/index.d.ts +1 -0
  33. package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
  34. package/dist/specification/src/sync/common/decoration/index.js +1 -0
  35. package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
  36. package/dist/specification/src/sync/common/dist_tag.json +8 -3
  37. package/dist/specification/src/sync/common/i18n.json +2 -1
  38. package/dist/specification/src/sync/common/importProject.d.ts.map +1 -1
  39. package/dist/specification/src/sync/common/importProject.js +2 -0
  40. package/dist/specification/src/sync/common/importProject.js.map +1 -1
  41. package/dist/specification/src/sync/common/utils.d.ts +35 -7
  42. package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
  43. package/dist/specification/src/sync/common/utils.js +224 -21
  44. package/dist/specification/src/sync/common/utils.js.map +1 -1
  45. package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
  46. package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
  47. package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
  48. package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
  49. package/dist/specification/src/sync/v2/generate/analyticalListReport.js +48 -0
  50. package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  51. package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
  52. package/dist/specification/src/sync/v2/generate/listReport.js +3 -1
  53. package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
  54. package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
  55. package/dist/specification/src/sync/v2/generate/objectPage.js +2 -0
  56. package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
  57. package/dist/specification/src/sync/v2/generate/overviewPage.d.ts +1 -8
  58. package/dist/specification/src/sync/v2/generate/overviewPage.d.ts.map +1 -1
  59. package/dist/specification/src/sync/v2/generate/overviewPage.js +30 -1
  60. package/dist/specification/src/sync/v2/generate/overviewPage.js.map +1 -1
  61. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
  62. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +28 -1
  63. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
  64. package/dist/specification/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
  65. package/dist/specification/src/sync/v2/import/app/appProvider.js +2 -0
  66. package/dist/specification/src/sync/v2/import/app/appProvider.js.map +1 -1
  67. package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
  68. package/dist/specification/src/sync/v2/import/importPage.js +5 -6
  69. package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
  70. package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts +2 -1
  71. package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts.map +1 -1
  72. package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js +5 -0
  73. package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
  74. package/dist/specification/src/sync/v2/import/pages/listReport.d.ts +2 -1
  75. package/dist/specification/src/sync/v2/import/pages/listReport.d.ts.map +1 -1
  76. package/dist/specification/src/sync/v2/import/pages/listReport.js +5 -0
  77. package/dist/specification/src/sync/v2/import/pages/listReport.js.map +1 -1
  78. package/dist/specification/src/sync/v2/import/pages/objectPage.d.ts.map +1 -1
  79. package/dist/specification/src/sync/v2/import/pages/objectPage.js +2 -1
  80. package/dist/specification/src/sync/v2/import/pages/objectPage.js.map +1 -1
  81. package/dist/specification/src/sync/v2/import/utils.d.ts +28 -1
  82. package/dist/specification/src/sync/v2/import/utils.d.ts.map +1 -1
  83. package/dist/specification/src/sync/v2/import/utils.js +37 -0
  84. package/dist/specification/src/sync/v2/import/utils.js.map +1 -1
  85. package/dist/specification/src/sync/v2/utils.d.ts +12 -2
  86. package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
  87. package/dist/specification/src/sync/v2/utils.js +19 -2
  88. package/dist/specification/src/sync/v2/utils.js.map +1 -1
  89. package/dist/specification/src/sync/v4/application.d.ts +39 -4
  90. package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
  91. package/dist/specification/src/sync/v4/application.js +67 -6
  92. package/dist/specification/src/sync/v4/application.js.map +1 -1
  93. package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts +2 -1
  94. package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
  95. package/dist/specification/src/sync/v4/export/controls/FilterBar.js +2 -1
  96. package/dist/specification/src/sync/v4/export/controls/FilterBar.js.map +1 -1
  97. package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +2 -1
  98. package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
  99. package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -1
  100. package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
  101. package/dist/specification/src/sync/v4/export/controls/Table.d.ts +19 -6
  102. package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
  103. package/dist/specification/src/sync/v4/export/controls/Table.js +24 -8
  104. package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
  105. package/dist/specification/src/sync/v4/export/controls/TableColumn.d.ts.map +1 -1
  106. package/dist/specification/src/sync/v4/export/controls/TableColumn.js +2 -2
  107. package/dist/specification/src/sync/v4/export/controls/TableColumn.js.map +1 -1
  108. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +2 -1
  109. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
  110. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +2 -1
  111. package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
  112. package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
  113. package/dist/specification/src/sync/v4/export/export.js +38 -8
  114. package/dist/specification/src/sync/v4/export/export.js.map +1 -1
  115. package/dist/specification/src/sync/v4/export/pages/ListReport.js +1 -1
  116. package/dist/specification/src/sync/v4/export/pages/ListReport.js.map +1 -1
  117. package/dist/specification/src/sync/v4/generate/index.d.ts +1 -1
  118. package/dist/specification/src/sync/v4/generate/index.d.ts.map +1 -1
  119. package/dist/specification/src/sync/v4/generate/index.js +1 -1
  120. package/dist/specification/src/sync/v4/generate/index.js.map +1 -1
  121. package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +72 -0
  122. package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -0
  123. package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +299 -0
  124. package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -0
  125. package/dist/specification/src/sync/v4/generate/{listReport.d.ts → list-report/listReport.d.ts} +24 -14
  126. package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -0
  127. package/dist/specification/src/sync/v4/generate/{listReport.js → list-report/listReport.js} +135 -130
  128. package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -0
  129. package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  130. package/dist/specification/src/sync/v4/generate/objectPage.js +99 -16
  131. package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
  132. package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
  133. package/dist/specification/src/sync/v4/import/pages/listReport.js +15 -9
  134. package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
  135. package/dist/specification/src/sync/v4/sync-rules/App.d.ts +9 -7
  136. package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
  137. package/dist/specification/src/sync/v4/sync-rules/App.js +4 -8
  138. package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -1
  139. package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +2 -9
  140. package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
  141. package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +2 -11
  142. package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
  143. package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +177 -46
  144. package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
  145. package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +498 -152
  146. package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
  147. package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +17 -22
  148. package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
  149. package/dist/specification/src/sync/v4/sync-rules/Page.js +15 -22
  150. package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
  151. package/dist/specification/src/sync/v4/sync-rules/index.d.ts +5 -0
  152. package/dist/specification/src/sync/v4/sync-rules/index.d.ts.map +1 -0
  153. package/dist/specification/src/sync/v4/sync-rules/index.js +21 -0
  154. package/dist/specification/src/sync/v4/sync-rules/index.js.map +1 -0
  155. package/dist/specification/src/sync/v4/sync-rules/utils.d.ts.map +1 -1
  156. package/dist/specification/src/sync/v4/sync-rules/utils.js +4 -0
  157. package/dist/specification/src/sync/v4/sync-rules/utils.js.map +1 -1
  158. package/dist/specification/src/sync/v4/utils/index.d.ts +2 -0
  159. package/dist/specification/src/sync/v4/utils/index.d.ts.map +1 -0
  160. package/dist/specification/src/sync/v4/utils/index.js +18 -0
  161. package/dist/specification/src/sync/v4/utils/index.js.map +1 -0
  162. package/dist/specification/src/sync/v4/utils/utils.d.ts +9 -1
  163. package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
  164. package/dist/specification/src/sync/v4/utils/utils.js +19 -4
  165. package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
  166. package/dist/specification/test/test-projects/v2sttaProdMan2/webapp/manifest.json +549 -0
  167. package/dist/specification/test/test-projects/v4new/webapp/manifest.json +147 -0
  168. package/dist/specification/test/test-utils/utils.d.ts +55 -0
  169. package/dist/specification/test/test-utils/utils.d.ts.map +1 -0
  170. package/dist/specification/test/test-utils/utils.js +346 -0
  171. package/dist/specification/test/test-utils/utils.js.map +1 -0
  172. package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +274 -0
  173. package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -0
  174. package/dist/specification/test/unit/decorators/validity-test-utils.js +583 -0
  175. package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -0
  176. package/dist/types/src/apiTypes.d.ts +2 -3
  177. package/dist/types/src/apiTypes.d.ts.map +1 -1
  178. package/dist/types/src/apiTypes.js.map +1 -1
  179. package/dist/types/src/common/types.d.ts +126 -13
  180. package/dist/types/src/common/types.d.ts.map +1 -1
  181. package/dist/types/src/common/types.js +5 -1
  182. package/dist/types/src/common/types.js.map +1 -1
  183. package/dist/types/src/v2/controls/ObjectPageTable.d.ts +1 -1
  184. package/dist/types/src/v2/controls/Table.d.ts +1 -1
  185. package/package.json +13 -10
  186. package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts +0 -74
  187. package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +0 -1
  188. package/dist/specification/src/sync/v4/generate/ListReportUtils.js +0 -262
  189. package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +0 -1
  190. package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +0 -1
  191. package/dist/specification/src/sync/v4/generate/listReport.js.map +0 -1
@@ -0,0 +1,274 @@
1
+ /**
2
+ * @file Test utilities for validating @validity decorator behavior
3
+ *
4
+ * This module provides helper functions for:
5
+ * - Extracting validity metadata from decorated classes
6
+ * - Generating expected vs actual visibility tables
7
+ * - Comparing property visibility across UI5 versions
8
+ * - Formatting results as markdown for snapshot testing
9
+ */
10
+ import type { Definition } from 'typescript-json-schema';
11
+ /** Emoji indicator for a visible/available property */
12
+ export declare const EMOJI_VISIBLE = "\u2705";
13
+ /** Emoji indicator for a hidden/unavailable property */
14
+ export declare const EMOJI_HIDDEN = "\uD83D\uDEAB";
15
+ /** Emoji indicator for property not found in schema */
16
+ export declare const EMOJI_NOT_FOUND = "\u2753";
17
+ /**
18
+ * Enum to specify which type of visibility table to generate
19
+ */
20
+ export declare enum SchemaResults {
21
+ /** Generate expected visibility based on @validity decorator metadata */
22
+ Expected = "expected",
23
+ /** Generate actual visibility from generated schemas */
24
+ Actual = "actual"
25
+ }
26
+ /**
27
+ * Information about a property with a @validity decorator
28
+ */
29
+ export interface ValidityInfo {
30
+ /** The property name */
31
+ property: string;
32
+ /** The UI5 version since which the property is available */
33
+ since: string;
34
+ }
35
+ /**
36
+ * A row in the version visibility table showing property availability across versions
37
+ */
38
+ export interface VersionVisibilityRow {
39
+ /** The property name */
40
+ property: string;
41
+ /** The UI5 version since which the property is available */
42
+ since: string;
43
+ /** Dynamic keys for each version (e.g., '1.84.0': '✅') */
44
+ [version: string]: string;
45
+ }
46
+ /**
47
+ * Function type for finding a specific definition within a schema
48
+ */
49
+ export type DefinitionFinder = (schema: Definition) => Definition | undefined;
50
+ /**
51
+ * Resolves a definition by following $ref chains in the schema
52
+ *
53
+ * @param schema - The JSON schema containing definitions
54
+ * @param definitionName - The name of the definition to resolve
55
+ * @returns The resolved definition, or undefined if not found
56
+ * @example
57
+ * const tableDef = resolveDefinition(schema, 'Table');
58
+ */
59
+ export declare function resolveDefinition(schema: Definition, definitionName: string): Definition | undefined;
60
+ /**
61
+ * Finds the definition containing table properties by searching common patterns
62
+ *
63
+ * Searches for definitions with names like 'TableSPV', 'LRTableView', 'Table',
64
+ * or any definition containing key table properties like 'condensedTableLayout'.
65
+ *
66
+ * @param schema - The JSON schema to search
67
+ * @returns The table definition, or undefined if not found
68
+ */
69
+ export declare function findTableDefinition(schema: Definition): Definition | undefined;
70
+ /**
71
+ * Creates a definition finder function for a specific definition name
72
+ *
73
+ * @param definitionName - The name of the definition to find
74
+ * @returns A function that finds the definition in a given schema
75
+ * @example
76
+ * const finder = findDefinitionByName('CustomHeaderAction');
77
+ * const def = finder(schema);
78
+ */
79
+ export declare function findDefinitionByName(definitionName: string): DefinitionFinder;
80
+ /**
81
+ * Gets all property names from a schema definition
82
+ *
83
+ * @param schema - The JSON schema containing definitions
84
+ * @param definitionName - The name of the definition to get properties from
85
+ * @returns Array of property names, or empty array if definition not found
86
+ */
87
+ export declare function getSchemaPropertyNames(schema: Definition, definitionName: string): string[];
88
+ /**
89
+ * Checks if a property exists in a schema definition
90
+ *
91
+ * @param schema - The JSON schema containing definitions
92
+ * @param definitionName - The name of the definition to check
93
+ * @param propertyName - The name of the property to check for
94
+ * @returns True if the property exists, false otherwise
95
+ */
96
+ export declare function propertyExists(schema: Definition, definitionName: string, propertyName: string): boolean;
97
+ /**
98
+ * Checks if a property is marked as hidden in a schema definition
99
+ *
100
+ * @param schema - The JSON schema containing definitions
101
+ * @param definitionName - The name of the definition to check
102
+ * @param propertyName - The name of the property to check
103
+ * @returns True if hidden, false if visible, undefined if property not found
104
+ */
105
+ export declare function isPropertyHidden(schema: Definition, definitionName: string, propertyName: string): boolean | undefined;
106
+ /** Special version string representing the latest/newest version */
107
+ export declare const VERSION_LATEST = "latest";
108
+ /**
109
+ * Compares two semantic version strings
110
+ *
111
+ * Handles the special 'latest' version which is always considered
112
+ * greater than any other version.
113
+ *
114
+ * @param a - First version string (e.g., '1.84.0' or 'latest')
115
+ * @param b - Second version string (e.g., '1.96.0' or 'latest')
116
+ * @returns Negative if a < b, positive if a > b, zero if equal
117
+ * @example
118
+ * compareVersions('1.84.0', '1.96.0') // returns negative
119
+ * compareVersions('1.96.0', '1.84.0') // returns positive
120
+ * compareVersions('1.84.0', '1.84.0') // returns 0
121
+ * compareVersions('1.142.0', 'latest') // returns negative
122
+ * compareVersions('latest', '1.84.0') // returns positive
123
+ */
124
+ export declare function compareVersions(a: string, b: string): number;
125
+ /**
126
+ * Extracts all properties from a class, including those with @validity decorator
127
+ *
128
+ * Walks the prototype chain to find all properties, then checks each
129
+ * for validity metadata. Properties without @validity are marked with since: '-'.
130
+ * Results are sorted by version (ascending), then alphabetically by property name.
131
+ *
132
+ * @param ClassConstructor - The class constructor to inspect
133
+ * @param schemaPropertyNames - Optional list of additional property names to check
134
+ * @param onlyWithValidity - If true, only return properties with @validity decorator (default: false)
135
+ * @returns Array of ValidityInfo objects sorted by version then name
136
+ * @example
137
+ * const validityProps = getValidityPropertiesFromClass(TableSettings, ['type', 'selectAll']);
138
+ * // Returns: [{ property: 'enableOnSelect', since: '-' }, { property: 'type', since: '1.84.0' }, ...]
139
+ */
140
+ export declare function getValidityPropertiesFromClass(ClassConstructor: new () => object, schemaPropertyNames?: string[], onlyWithValidity?: boolean): ValidityInfo[];
141
+ /**
142
+ * Generates expected visibility table based on @validity decorator metadata
143
+ *
144
+ * For each property, determines if it should be visible in each version
145
+ * based on comparing the version against the property's 'since' value.
146
+ * Properties with since: '-' (no @validity) are always visible.
147
+ *
148
+ * @param validityInfos - Array of properties with their validity info
149
+ * @param versions - Array of version strings to generate columns for
150
+ * @returns Array of rows with visibility status for each version
151
+ */
152
+ export declare function generateExpectedVisibilityTable(validityInfos: ValidityInfo[], versions: string[]): VersionVisibilityRow[];
153
+ /**
154
+ * Generates actual visibility table from generated schemas
155
+ *
156
+ * For each property and version, checks the actual generated schema
157
+ * to determine if the property is visible (not hidden).
158
+ *
159
+ * @param validityInfos - Array of properties with their validity info
160
+ * @param versions - Array of version strings to check
161
+ * @param schemaResults - Map of version strings to generated schemas
162
+ * @param findDefinition - Function to locate the definition within each schema
163
+ * @returns Array of rows with actual visibility status for each version
164
+ * @remarks
165
+ * Status symbols:
166
+ * - ✅ = property exists and is visible
167
+ * - 🚫 = property exists but is hidden
168
+ * - ? = schema or definition not found
169
+ * - - = property not found in definition
170
+ */
171
+ export declare function generateActualVisibilityTable(validityInfos: ValidityInfo[], versions: string[], schemaResults: Map<string, Definition>, findDefinition: DefinitionFinder): VersionVisibilityRow[];
172
+ /**
173
+ * Formats visibility table as a markdown string for snapshot testing
174
+ *
175
+ * Generates a properly aligned markdown table with:
176
+ * - Header row with Property, Since, and version columns
177
+ * - Separator row
178
+ * - Data rows with centered emoji indicators
179
+ * - Legend explaining the emoji meanings
180
+ *
181
+ * @param rows - Array of visibility rows to format
182
+ * @param versions - Array of version strings for column headers
183
+ * @returns Formatted markdown table string
184
+ * @example
185
+ * ```
186
+ * | Property | Since | 1.84.0 | 1.96.0 |
187
+ * | -------- | ------ | ------ | ------ |
188
+ * | type | 1.84.0 | ✅ | ✅ |
189
+ *
190
+ * Legend: ✅ = visible, 🚫 = hidden
191
+ * ```
192
+ */
193
+ export declare function formatVisibilityTableMarkdown(rows: VersionVisibilityRow[], versions: string[]): string;
194
+ /**
195
+ * Generates an app schema with a specific minUI5Version
196
+ *
197
+ * Creates a schema for the v4new test project with the specified
198
+ * UI5 version, using the provided generic schema as base.
199
+ *
200
+ * @param genericSchema - The generic schema to use as base
201
+ * @param minUI5Version - The minimum UI5 version to set (e.g., '1.84.0')
202
+ * @returns The generated app schema
203
+ */
204
+ export declare function generateSchemaWithVersion(genericSchema: Definition, minUI5Version: string): Promise<Definition>;
205
+ /**
206
+ * Generates schemas for multiple UI5 versions
207
+ *
208
+ * @param genericSchema - The generic schema to use as base for all versions
209
+ * @param versions - Array of version strings to generate schemas for
210
+ * @returns Map of version string to generated schema
211
+ * @example
212
+ * const schemas = await generateSchemasForVersions(genericSchema, ['1.84.0', '1.96.0']);
213
+ * const schema84 = schemas.get('1.84.0');
214
+ */
215
+ export declare function generateSchemasForVersions(genericSchema: Definition, versions: string[]): Promise<Map<string, Definition>>;
216
+ /**
217
+ * Gets validity properties for a class from a generic schema
218
+ *
219
+ * Combines schema property names with validity decorator metadata
220
+ * to get complete validity information for testing.
221
+ *
222
+ * @param genericSchema - The generic schema containing the definition
223
+ * @param classRef - The class constructor to extract validity metadata from
224
+ * @param schemaName - Optional schema definition name (defaults to class name)
225
+ * @returns Array of ValidityInfo objects
226
+ */
227
+ export declare function getValidityProperties(genericSchema: Definition, classRef: new () => object, schemaName?: string): ValidityInfo[];
228
+ /**
229
+ * Generates a markdown visibility table for a decorated class
230
+ *
231
+ * @param config - Configuration object with classRef and optional schemaName
232
+ * @param config.classRef - The class constructor containing @validity decorators
233
+ * @param config.schemaName - Optional schema definition name (defaults to class name)
234
+ * @param schemaType - Whether to generate expected or actual visibility
235
+ * @param context - Test context containing genericSchema, versions, and schemaResults
236
+ * @returns Formatted markdown table string
237
+ */
238
+ export declare const getPropertiesWithValidity: ({ classRef, schemaName }: {
239
+ classRef: new () => object;
240
+ schemaName?: string;
241
+ }, schemaType: SchemaResults, { genericSchema, versions, schemaResults }: {
242
+ genericSchema: any;
243
+ versions: any;
244
+ schemaResults: any;
245
+ }) => string;
246
+ /** Emoji indicator for a difference between expected and actual */
247
+ export declare const EMOJI_DIFF = "\u26A0\uFE0F";
248
+ /** Emoji indicator for match between expected and actual */
249
+ export declare const EMOJI_MATCH = "\u2705";
250
+ /**
251
+ * Generates a diff table comparing expected vs actual visibility
252
+ *
253
+ * For each property and version, compares expected (from @validity metadata)
254
+ * vs actual (from generated schema) and highlights differences.
255
+ *
256
+ * @param validityInfos - Array of properties with their validity info
257
+ * @param versions - Array of version strings to check
258
+ * @param schemaResults - Map of version strings to generated schemas
259
+ * @param findDefinition - Function to locate the definition within each schema
260
+ * @returns Array of rows showing expected vs actual comparison per version
261
+ */
262
+ export declare function generateDiffVisibilityTable(validityInfos: ValidityInfo[], versions: string[], schemaResults: Map<string, Definition>, findDefinition: DefinitionFinder): VersionVisibilityRow[];
263
+ /**
264
+ * Formats diff table as a markdown string for snapshot testing
265
+ *
266
+ * Shows which property/version combinations have mismatches between
267
+ * expected (decorator metadata) and actual (generated schema) visibility.
268
+ *
269
+ * @param rows - Array of diff rows to format
270
+ * @param versions - Array of version strings for column headers
271
+ * @returns Formatted markdown table string with diff indicators
272
+ */
273
+ export declare function formatDiffTableMarkdown(rows: VersionVisibilityRow[], versions: string[]): string;
274
+ //# sourceMappingURL=validity-test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validity-test-utils.d.ts","sourceRoot":"","sources":["../../../../../test/unit/decorators/validity-test-utils.ts"],"names":[],"mappings":"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"}