@objectstack/lint 15.1.1 → 16.0.0-rc.1
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.cjs +251 -69
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +61 -8
- package/dist/index.d.ts +61 -8
- package/dist/index.js +250 -69
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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,
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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,
|
|
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 };
|