@objectstack/lint 15.1.0 → 16.0.0-rc.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.d.cts CHANGED
@@ -26,6 +26,13 @@ import { AccessMatrix } from '@objectstack/spec/security';
26
26
  * (`values`). Post-cutover (ADR-0021) the result rows are keyed by
27
27
  * measure NAME (e.g. `sum_amount`), not the base column (`amount`) — a
28
28
  * stale base-column reference renders the axis but an empty series.
29
+ * - `widget-legacy-analytics-unrenderable` (#1878/#1894) — a widget uses the
30
+ * removed pre-ADR-0021 inline-analytics shape (`categoryField`/`rowField`/…)
31
+ * as its ONLY data wiring: no `dataset`, no `object`, no inline `data`. The
32
+ * renderer reads only the dataset path, so the widget has no data at all and
33
+ * renders nothing. Errored (not warned) so this class of authoring mistake —
34
+ * very often an AI emitting a removed shape — fails the build instead of
35
+ * shipping a blank widget past human review.
29
36
  *
30
37
  * Advisory rules — severity `warning`, build stays green:
31
38
  *
@@ -43,6 +50,12 @@ import { AccessMatrix } from '@objectstack/spec/security';
43
50
  * `count_distinct`) of a `percent`/rate field, whose total routinely
44
51
  * exceeds 100%. Rates must AVG. Checked once per dataset (independent of
45
52
  * any widget) when the bound object's field types are known.
53
+ * - `widget-legacy-analytics-shape` (#1878/#1894) — a widget sets a
54
+ * pre-ADR-0021 inline key (`categoryField`/`valueField`/`xAxisField`/
55
+ * `yAxisFields`/`aggregate`/`aggregation`/`rowField`/`columnField`) that the
56
+ * single-form cutover removed. The dashboard renderer routes dataset-bound
57
+ * widgets through `DatasetWidget` and never reads these, so they are a
58
+ * silent no-op. Steers the author onto `dataset`+`dimensions`+`values`.
46
59
  *
47
60
  * Warnings can be deliberately suppressed per widget via
48
61
  * `suppressWarnings: ['<rule-id>']`; errors cannot — they describe a
@@ -70,7 +83,7 @@ interface WidgetBindingFinding {
70
83
  /** How to fix (or deliberately suppress) it. */
71
84
  hint: string;
72
85
  }
73
- type AnyRec$f = Record<string, unknown>;
86
+ type AnyRec$g = Record<string, unknown>;
74
87
  /**
75
88
  * Validate every dashboard widget's dataset binding. Returns the list of
76
89
  * findings (empty = clean). Caller decides how to surface them: `error`
@@ -78,7 +91,7 @@ type AnyRec$f = Record<string, unknown>;
78
91
  * should fail validate/build; `warning` findings are advisory and must
79
92
  * never fail the build on their own.
80
93
  */
81
- declare function validateWidgetBindings(stack: AnyRec$f): WidgetBindingFinding[];
94
+ declare function validateWidgetBindings(stack: AnyRec$g): WidgetBindingFinding[];
82
95
 
83
96
  interface ExprIssue {
84
97
  where: string;
@@ -91,12 +104,12 @@ interface ExprIssue {
91
104
  */
92
105
  severity?: 'error' | 'warning';
93
106
  }
94
- type AnyRec$e = Record<string, unknown>;
107
+ type AnyRec$f = Record<string, unknown>;
95
108
  /**
96
109
  * Validate every predicate in the stack. Returns the list of issues (empty =
97
110
  * clean). Caller decides how to surface / whether to fail the build.
98
111
  */
99
- declare function validateStackExpressions(stack: AnyRec$e): ExprIssue[];
112
+ declare function validateStackExpressions(stack: AnyRec$f): ExprIssue[];
100
113
 
101
114
  type ListViewModeSeverity = 'error' | 'warning';
102
115
  interface ListViewModeFinding {
@@ -110,7 +123,7 @@ interface ListViewModeFinding {
110
123
  hint: string;
111
124
  }
112
125
  declare const LIST_VIEW_FILTERS_IN_VIEWS_MODE = "list-view-filters-in-views-mode";
113
- type AnyRec$d = Record<string, unknown>;
126
+ type AnyRec$e = Record<string, unknown>;
114
127
  /**
115
128
  * Flag ADR-0047 "views" mode violations on an object's built-in named views or a
116
129
  * `defineView` default `list` / named `listViews`: `quickFilters`, or a `tabs`
@@ -120,7 +133,46 @@ type AnyRec$d = Record<string, unknown>;
120
133
  *
121
134
  * Feed the PRE-parse stack (normalizeStackInput output) — see file header.
122
135
  */
123
- declare function validateListViewMode(stack: AnyRec$d): ListViewModeFinding[];
136
+ declare function validateListViewMode(stack: AnyRec$e): ListViewModeFinding[];
137
+
138
+ type FlowTriggerReadinessSeverity = 'error' | 'warning';
139
+ interface FlowTriggerReadinessFinding {
140
+ severity: FlowTriggerReadinessSeverity;
141
+ rule: string;
142
+ /** Human-readable location, e.g. `flow "notify_on_done" › start node`. */
143
+ where: string;
144
+ /** Config path, e.g. `flows[0].nodes[0].config.objectName`. */
145
+ path: string;
146
+ message: string;
147
+ hint: string;
148
+ }
149
+ declare const FLOW_TRIGGER_UNKNOWN_OBJECT = "flow-trigger-unknown-object";
150
+ declare const FLOW_DRAFT_STATUS_AMBIGUOUS = "flow-draft-status-ambiguous";
151
+ type AnyRec$d = Record<string, unknown>;
152
+ /**
153
+ * Validate auto-launched flow trigger wiring against the stack definition.
154
+ * Pure and dependency-free; safe on pre- or post-parse stacks.
155
+ */
156
+ declare function validateFlowTriggerReadiness(stack: AnyRec$d): FlowTriggerReadinessFinding[];
157
+
158
+ type ViewContainerSeverity = 'error' | 'warning';
159
+ interface ViewContainerFinding {
160
+ severity: ViewContainerSeverity;
161
+ rule: string;
162
+ /** Human-readable location, e.g. `views[0] ("all_tasks")`. */
163
+ where: string;
164
+ /** Config path, e.g. `views[0]`. */
165
+ path: string;
166
+ message: string;
167
+ hint: string;
168
+ }
169
+ declare const VIEW_CONTAINER_SHAPE = "view-container-shape";
170
+ /**
171
+ * Validate that every stack-level `views` entry is a real view container (or
172
+ * an independent ViewItem). Flat list-view objects and view-less containers
173
+ * are reported as errors with a wrap-it fix hint.
174
+ */
175
+ declare function validateViewContainers(stack: Record<string, unknown>): ViewContainerFinding[];
124
176
 
125
177
  type StyleSeverity = 'error' | 'warning';
126
178
  interface StyleFinding {
@@ -442,7 +494,8 @@ type AnyRec$3 = Record<string, unknown>;
442
494
  */
443
495
  declare function validateCapabilityReferences(stack: AnyRec$3): CapabilityRefFinding[];
444
496
 
445
- declare const APPROVAL_ROLE_NOT_MEMBERSHIP_TIER = "approval-role-not-membership-tier";
497
+ declare const APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER = "approval-approver-not-membership-tier";
498
+ declare const APPROVAL_APPROVER_TYPE_DEPRECATED = "approval-approver-type-deprecated";
446
499
  declare const APPROVAL_APPROVER_TYPE_UNKNOWN = "approval-approver-type-unknown";
447
500
  declare const APPROVAL_ESCALATION_REASSIGN_NO_TARGET = "approval-escalation-reassign-no-target";
448
501
  type ApprovalApproverSeverity = 'error' | 'warning' | 'info';
@@ -527,4 +580,4 @@ declare function buildAccessMatrix(stack: AnyRec): AccessMatrix;
527
580
  */
528
581
  declare function diffAccessMatrix(before: AccessMatrix, after: AccessMatrix): string[];
529
582
 
530
- export { APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, APPROVAL_ROLE_NOT_MEMBERSHIP_TIER, type ApprovalApproverFinding, type ApprovalApproverSeverity, CAPABILITY_REFERENCE_UNKNOWN, CHART_CONFIG_MISSING, CHART_FIELD_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ExprIssue, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FormLayoutFinding, type FormLayoutSeverity, type JsxPageFinding, type JsxPageSeverity, LIST_VIEW_FILTERS_IN_VIEWS_MODE, type ListViewModeFinding, type ListViewModeSeverity, MEASURE_AGGREGATE_INCOHERENT, PAGE_SOURCE_CLASSNAME, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type RecordTitleFinding, type RecordTitleSeverity, SECURITY_ANCHOR_HIGH_PRIVILEGE, SECURITY_BOOK_AUDIENCE_UNKNOWN_SET, SECURITY_DELEGATION_MISSING_REASON, SECURITY_EXTERNAL_WIDER, SECURITY_GRANT_EXPIRED_AT_AUTHORING, SECURITY_MASTER_DETAIL_UNGRANTED, SECURITY_OWD_ALIAS, SECURITY_OWD_UNSET, SECURITY_PRIVATE_NO_READSCOPE, SECURITY_ROLE_WORD, SECURITY_WILDCARD_VAMA, SEMANTIC_ROLE_FIELD_UNKNOWN, STYLE_CLASSNAME_TAILWIND, STYLE_NODE_MISSING_ID, STYLE_RESPONSIVE_NO_BASE, STYLE_UNKNOWN_CSS_PROPERTY, STYLE_UNKNOWN_TOKEN, type SecurityFinding, type SecuritySeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, VISIBILITY_ALIAS_DEPRECATED, VISIBILITY_ROOT_MISLAYERED, type VisibilityFinding, type VisibilityLayer, type VisibilityOptions, type VisibilitySeverity, WIDGET_DATASET_UNKNOWN, WIDGET_DIMENSION_UNKNOWN, WIDGET_MEASURE_UNKNOWN, type WidgetBindingFinding, type WidgetBindingSeverity, buildAccessMatrix, diffAccessMatrix, validateApprovalApprovers, validateCapabilityReferences, validateFormLayout, validateJsxPages, validateListViewMode, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateRecordTitle, validateResponsiveStyles, validateSecurityPosture, validateSemanticRoles, validateStackExpressions, validateVisibilityPredicates, validateWidgetBindings };
583
+ export { APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER, APPROVAL_APPROVER_TYPE_DEPRECATED, APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, type ApprovalApproverFinding, type ApprovalApproverSeverity, CAPABILITY_REFERENCE_UNKNOWN, CHART_CONFIG_MISSING, CHART_FIELD_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ExprIssue, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FLOW_DRAFT_STATUS_AMBIGUOUS, FLOW_TRIGGER_UNKNOWN_OBJECT, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FlowTriggerReadinessFinding, type FlowTriggerReadinessSeverity, type FormLayoutFinding, type FormLayoutSeverity, type JsxPageFinding, type JsxPageSeverity, LIST_VIEW_FILTERS_IN_VIEWS_MODE, type ListViewModeFinding, type ListViewModeSeverity, MEASURE_AGGREGATE_INCOHERENT, PAGE_SOURCE_CLASSNAME, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type RecordTitleFinding, type RecordTitleSeverity, SECURITY_ANCHOR_HIGH_PRIVILEGE, SECURITY_BOOK_AUDIENCE_UNKNOWN_SET, SECURITY_DELEGATION_MISSING_REASON, SECURITY_EXTERNAL_WIDER, SECURITY_GRANT_EXPIRED_AT_AUTHORING, SECURITY_MASTER_DETAIL_UNGRANTED, SECURITY_OWD_ALIAS, SECURITY_OWD_UNSET, SECURITY_PRIVATE_NO_READSCOPE, SECURITY_ROLE_WORD, SECURITY_WILDCARD_VAMA, SEMANTIC_ROLE_FIELD_UNKNOWN, STYLE_CLASSNAME_TAILWIND, STYLE_NODE_MISSING_ID, STYLE_RESPONSIVE_NO_BASE, STYLE_UNKNOWN_CSS_PROPERTY, STYLE_UNKNOWN_TOKEN, type SecurityFinding, type SecuritySeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, VIEW_CONTAINER_SHAPE, VISIBILITY_ALIAS_DEPRECATED, VISIBILITY_ROOT_MISLAYERED, type ViewContainerFinding, type ViewContainerSeverity, type VisibilityFinding, type VisibilityLayer, type VisibilityOptions, type VisibilitySeverity, WIDGET_DATASET_UNKNOWN, WIDGET_DIMENSION_UNKNOWN, WIDGET_MEASURE_UNKNOWN, type WidgetBindingFinding, type WidgetBindingSeverity, buildAccessMatrix, diffAccessMatrix, validateApprovalApprovers, validateCapabilityReferences, validateFlowTriggerReadiness, validateFormLayout, validateJsxPages, validateListViewMode, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateRecordTitle, validateResponsiveStyles, validateSecurityPosture, validateSemanticRoles, validateStackExpressions, validateViewContainers, validateVisibilityPredicates, validateWidgetBindings };
package/dist/index.d.ts CHANGED
@@ -26,6 +26,13 @@ import { AccessMatrix } from '@objectstack/spec/security';
26
26
  * (`values`). Post-cutover (ADR-0021) the result rows are keyed by
27
27
  * measure NAME (e.g. `sum_amount`), not the base column (`amount`) — a
28
28
  * stale base-column reference renders the axis but an empty series.
29
+ * - `widget-legacy-analytics-unrenderable` (#1878/#1894) — a widget uses the
30
+ * removed pre-ADR-0021 inline-analytics shape (`categoryField`/`rowField`/…)
31
+ * as its ONLY data wiring: no `dataset`, no `object`, no inline `data`. The
32
+ * renderer reads only the dataset path, so the widget has no data at all and
33
+ * renders nothing. Errored (not warned) so this class of authoring mistake —
34
+ * very often an AI emitting a removed shape — fails the build instead of
35
+ * shipping a blank widget past human review.
29
36
  *
30
37
  * Advisory rules — severity `warning`, build stays green:
31
38
  *
@@ -43,6 +50,12 @@ import { AccessMatrix } from '@objectstack/spec/security';
43
50
  * `count_distinct`) of a `percent`/rate field, whose total routinely
44
51
  * exceeds 100%. Rates must AVG. Checked once per dataset (independent of
45
52
  * any widget) when the bound object's field types are known.
53
+ * - `widget-legacy-analytics-shape` (#1878/#1894) — a widget sets a
54
+ * pre-ADR-0021 inline key (`categoryField`/`valueField`/`xAxisField`/
55
+ * `yAxisFields`/`aggregate`/`aggregation`/`rowField`/`columnField`) that the
56
+ * single-form cutover removed. The dashboard renderer routes dataset-bound
57
+ * widgets through `DatasetWidget` and never reads these, so they are a
58
+ * silent no-op. Steers the author onto `dataset`+`dimensions`+`values`.
46
59
  *
47
60
  * Warnings can be deliberately suppressed per widget via
48
61
  * `suppressWarnings: ['<rule-id>']`; errors cannot — they describe a
@@ -70,7 +83,7 @@ interface WidgetBindingFinding {
70
83
  /** How to fix (or deliberately suppress) it. */
71
84
  hint: string;
72
85
  }
73
- type AnyRec$f = Record<string, unknown>;
86
+ type AnyRec$g = Record<string, unknown>;
74
87
  /**
75
88
  * Validate every dashboard widget's dataset binding. Returns the list of
76
89
  * findings (empty = clean). Caller decides how to surface them: `error`
@@ -78,7 +91,7 @@ type AnyRec$f = Record<string, unknown>;
78
91
  * should fail validate/build; `warning` findings are advisory and must
79
92
  * never fail the build on their own.
80
93
  */
81
- declare function validateWidgetBindings(stack: AnyRec$f): WidgetBindingFinding[];
94
+ declare function validateWidgetBindings(stack: AnyRec$g): WidgetBindingFinding[];
82
95
 
83
96
  interface ExprIssue {
84
97
  where: string;
@@ -91,12 +104,12 @@ interface ExprIssue {
91
104
  */
92
105
  severity?: 'error' | 'warning';
93
106
  }
94
- type AnyRec$e = Record<string, unknown>;
107
+ type AnyRec$f = Record<string, unknown>;
95
108
  /**
96
109
  * Validate every predicate in the stack. Returns the list of issues (empty =
97
110
  * clean). Caller decides how to surface / whether to fail the build.
98
111
  */
99
- declare function validateStackExpressions(stack: AnyRec$e): ExprIssue[];
112
+ declare function validateStackExpressions(stack: AnyRec$f): ExprIssue[];
100
113
 
101
114
  type ListViewModeSeverity = 'error' | 'warning';
102
115
  interface ListViewModeFinding {
@@ -110,7 +123,7 @@ interface ListViewModeFinding {
110
123
  hint: string;
111
124
  }
112
125
  declare const LIST_VIEW_FILTERS_IN_VIEWS_MODE = "list-view-filters-in-views-mode";
113
- type AnyRec$d = Record<string, unknown>;
126
+ type AnyRec$e = Record<string, unknown>;
114
127
  /**
115
128
  * Flag ADR-0047 "views" mode violations on an object's built-in named views or a
116
129
  * `defineView` default `list` / named `listViews`: `quickFilters`, or a `tabs`
@@ -120,7 +133,46 @@ type AnyRec$d = Record<string, unknown>;
120
133
  *
121
134
  * Feed the PRE-parse stack (normalizeStackInput output) — see file header.
122
135
  */
123
- declare function validateListViewMode(stack: AnyRec$d): ListViewModeFinding[];
136
+ declare function validateListViewMode(stack: AnyRec$e): ListViewModeFinding[];
137
+
138
+ type FlowTriggerReadinessSeverity = 'error' | 'warning';
139
+ interface FlowTriggerReadinessFinding {
140
+ severity: FlowTriggerReadinessSeverity;
141
+ rule: string;
142
+ /** Human-readable location, e.g. `flow "notify_on_done" › start node`. */
143
+ where: string;
144
+ /** Config path, e.g. `flows[0].nodes[0].config.objectName`. */
145
+ path: string;
146
+ message: string;
147
+ hint: string;
148
+ }
149
+ declare const FLOW_TRIGGER_UNKNOWN_OBJECT = "flow-trigger-unknown-object";
150
+ declare const FLOW_DRAFT_STATUS_AMBIGUOUS = "flow-draft-status-ambiguous";
151
+ type AnyRec$d = Record<string, unknown>;
152
+ /**
153
+ * Validate auto-launched flow trigger wiring against the stack definition.
154
+ * Pure and dependency-free; safe on pre- or post-parse stacks.
155
+ */
156
+ declare function validateFlowTriggerReadiness(stack: AnyRec$d): FlowTriggerReadinessFinding[];
157
+
158
+ type ViewContainerSeverity = 'error' | 'warning';
159
+ interface ViewContainerFinding {
160
+ severity: ViewContainerSeverity;
161
+ rule: string;
162
+ /** Human-readable location, e.g. `views[0] ("all_tasks")`. */
163
+ where: string;
164
+ /** Config path, e.g. `views[0]`. */
165
+ path: string;
166
+ message: string;
167
+ hint: string;
168
+ }
169
+ declare const VIEW_CONTAINER_SHAPE = "view-container-shape";
170
+ /**
171
+ * Validate that every stack-level `views` entry is a real view container (or
172
+ * an independent ViewItem). Flat list-view objects and view-less containers
173
+ * are reported as errors with a wrap-it fix hint.
174
+ */
175
+ declare function validateViewContainers(stack: Record<string, unknown>): ViewContainerFinding[];
124
176
 
125
177
  type StyleSeverity = 'error' | 'warning';
126
178
  interface StyleFinding {
@@ -442,7 +494,8 @@ type AnyRec$3 = Record<string, unknown>;
442
494
  */
443
495
  declare function validateCapabilityReferences(stack: AnyRec$3): CapabilityRefFinding[];
444
496
 
445
- declare const APPROVAL_ROLE_NOT_MEMBERSHIP_TIER = "approval-role-not-membership-tier";
497
+ declare const APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER = "approval-approver-not-membership-tier";
498
+ declare const APPROVAL_APPROVER_TYPE_DEPRECATED = "approval-approver-type-deprecated";
446
499
  declare const APPROVAL_APPROVER_TYPE_UNKNOWN = "approval-approver-type-unknown";
447
500
  declare const APPROVAL_ESCALATION_REASSIGN_NO_TARGET = "approval-escalation-reassign-no-target";
448
501
  type ApprovalApproverSeverity = 'error' | 'warning' | 'info';
@@ -527,4 +580,4 @@ declare function buildAccessMatrix(stack: AnyRec): AccessMatrix;
527
580
  */
528
581
  declare function diffAccessMatrix(before: AccessMatrix, after: AccessMatrix): string[];
529
582
 
530
- export { APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, APPROVAL_ROLE_NOT_MEMBERSHIP_TIER, type ApprovalApproverFinding, type ApprovalApproverSeverity, CAPABILITY_REFERENCE_UNKNOWN, CHART_CONFIG_MISSING, CHART_FIELD_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ExprIssue, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FormLayoutFinding, type FormLayoutSeverity, type JsxPageFinding, type JsxPageSeverity, LIST_VIEW_FILTERS_IN_VIEWS_MODE, type ListViewModeFinding, type ListViewModeSeverity, MEASURE_AGGREGATE_INCOHERENT, PAGE_SOURCE_CLASSNAME, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type RecordTitleFinding, type RecordTitleSeverity, SECURITY_ANCHOR_HIGH_PRIVILEGE, SECURITY_BOOK_AUDIENCE_UNKNOWN_SET, SECURITY_DELEGATION_MISSING_REASON, SECURITY_EXTERNAL_WIDER, SECURITY_GRANT_EXPIRED_AT_AUTHORING, SECURITY_MASTER_DETAIL_UNGRANTED, SECURITY_OWD_ALIAS, SECURITY_OWD_UNSET, SECURITY_PRIVATE_NO_READSCOPE, SECURITY_ROLE_WORD, SECURITY_WILDCARD_VAMA, SEMANTIC_ROLE_FIELD_UNKNOWN, STYLE_CLASSNAME_TAILWIND, STYLE_NODE_MISSING_ID, STYLE_RESPONSIVE_NO_BASE, STYLE_UNKNOWN_CSS_PROPERTY, STYLE_UNKNOWN_TOKEN, type SecurityFinding, type SecuritySeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, VISIBILITY_ALIAS_DEPRECATED, VISIBILITY_ROOT_MISLAYERED, type VisibilityFinding, type VisibilityLayer, type VisibilityOptions, type VisibilitySeverity, WIDGET_DATASET_UNKNOWN, WIDGET_DIMENSION_UNKNOWN, WIDGET_MEASURE_UNKNOWN, type WidgetBindingFinding, type WidgetBindingSeverity, buildAccessMatrix, diffAccessMatrix, validateApprovalApprovers, validateCapabilityReferences, validateFormLayout, validateJsxPages, validateListViewMode, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateRecordTitle, validateResponsiveStyles, validateSecurityPosture, validateSemanticRoles, validateStackExpressions, validateVisibilityPredicates, validateWidgetBindings };
583
+ export { APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER, APPROVAL_APPROVER_TYPE_DEPRECATED, APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, type ApprovalApproverFinding, type ApprovalApproverSeverity, CAPABILITY_REFERENCE_UNKNOWN, CHART_CONFIG_MISSING, CHART_FIELD_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ExprIssue, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FLOW_DRAFT_STATUS_AMBIGUOUS, FLOW_TRIGGER_UNKNOWN_OBJECT, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FlowTriggerReadinessFinding, type FlowTriggerReadinessSeverity, type FormLayoutFinding, type FormLayoutSeverity, type JsxPageFinding, type JsxPageSeverity, LIST_VIEW_FILTERS_IN_VIEWS_MODE, type ListViewModeFinding, type ListViewModeSeverity, MEASURE_AGGREGATE_INCOHERENT, PAGE_SOURCE_CLASSNAME, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type RecordTitleFinding, type RecordTitleSeverity, SECURITY_ANCHOR_HIGH_PRIVILEGE, SECURITY_BOOK_AUDIENCE_UNKNOWN_SET, SECURITY_DELEGATION_MISSING_REASON, SECURITY_EXTERNAL_WIDER, SECURITY_GRANT_EXPIRED_AT_AUTHORING, SECURITY_MASTER_DETAIL_UNGRANTED, SECURITY_OWD_ALIAS, SECURITY_OWD_UNSET, SECURITY_PRIVATE_NO_READSCOPE, SECURITY_ROLE_WORD, SECURITY_WILDCARD_VAMA, SEMANTIC_ROLE_FIELD_UNKNOWN, STYLE_CLASSNAME_TAILWIND, STYLE_NODE_MISSING_ID, STYLE_RESPONSIVE_NO_BASE, STYLE_UNKNOWN_CSS_PROPERTY, STYLE_UNKNOWN_TOKEN, type SecurityFinding, type SecuritySeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, VIEW_CONTAINER_SHAPE, VISIBILITY_ALIAS_DEPRECATED, VISIBILITY_ROOT_MISLAYERED, type ViewContainerFinding, type ViewContainerSeverity, type VisibilityFinding, type VisibilityLayer, type VisibilityOptions, type VisibilitySeverity, WIDGET_DATASET_UNKNOWN, WIDGET_DIMENSION_UNKNOWN, WIDGET_MEASURE_UNKNOWN, type WidgetBindingFinding, type WidgetBindingSeverity, buildAccessMatrix, diffAccessMatrix, validateApprovalApprovers, validateCapabilityReferences, validateFlowTriggerReadiness, validateFormLayout, validateJsxPages, validateListViewMode, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateRecordTitle, validateResponsiveStyles, validateSecurityPosture, validateSemanticRoles, validateStackExpressions, validateViewContainers, validateVisibilityPredicates, validateWidgetBindings };