@objectstack/lint 17.0.0-rc.0 → 17.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/CHANGELOG.md +3627 -0
- package/dist/index.cjs +1836 -863
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +297 -61
- package/dist/index.d.ts +297 -61
- package/dist/index.js +1791 -840
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
package/dist/index.d.ts
CHANGED
|
@@ -94,7 +94,7 @@ interface WidgetBindingFinding {
|
|
|
94
94
|
/** How to fix (or deliberately suppress) it. */
|
|
95
95
|
hint: string;
|
|
96
96
|
}
|
|
97
|
-
type AnyRec$
|
|
97
|
+
type AnyRec$x = Record<string, unknown>;
|
|
98
98
|
/**
|
|
99
99
|
* Validate every dashboard widget's dataset binding. Returns the list of
|
|
100
100
|
* findings (empty = clean). Caller decides how to surface them: `error`
|
|
@@ -102,7 +102,7 @@ type AnyRec$t = Record<string, unknown>;
|
|
|
102
102
|
* should fail validate/build; `warning` findings are advisory and must
|
|
103
103
|
* never fail the build on their own.
|
|
104
104
|
*/
|
|
105
|
-
declare function validateWidgetBindings(stack: AnyRec$
|
|
105
|
+
declare function validateWidgetBindings(stack: AnyRec$x): WidgetBindingFinding[];
|
|
106
106
|
|
|
107
107
|
interface ExprIssue {
|
|
108
108
|
where: string;
|
|
@@ -115,12 +115,12 @@ interface ExprIssue {
|
|
|
115
115
|
*/
|
|
116
116
|
severity?: 'error' | 'warning';
|
|
117
117
|
}
|
|
118
|
-
type AnyRec$
|
|
118
|
+
type AnyRec$w = Record<string, unknown>;
|
|
119
119
|
/**
|
|
120
120
|
* Validate every predicate in the stack. Returns the list of issues (empty =
|
|
121
121
|
* clean). Caller decides how to surface / whether to fail the build.
|
|
122
122
|
*/
|
|
123
|
-
declare function validateStackExpressions(stack: AnyRec$
|
|
123
|
+
declare function validateStackExpressions(stack: AnyRec$w): ExprIssue[];
|
|
124
124
|
|
|
125
125
|
type ListViewModeSeverity = 'error' | 'warning';
|
|
126
126
|
interface ListViewModeFinding {
|
|
@@ -134,7 +134,7 @@ interface ListViewModeFinding {
|
|
|
134
134
|
hint: string;
|
|
135
135
|
}
|
|
136
136
|
declare const LIST_VIEW_FILTERS_IN_VIEWS_MODE = "list-view-filters-in-views-mode";
|
|
137
|
-
type AnyRec$
|
|
137
|
+
type AnyRec$v = Record<string, unknown>;
|
|
138
138
|
/**
|
|
139
139
|
* Flag ADR-0047 "views" mode violations on an object's built-in named views or a
|
|
140
140
|
* `defineView` default `list` / named `listViews`: `quickFilters`, or a `tabs`
|
|
@@ -144,7 +144,7 @@ type AnyRec$r = Record<string, unknown>;
|
|
|
144
144
|
*
|
|
145
145
|
* Feed the PRE-parse stack (normalizeStackInput output) — see file header.
|
|
146
146
|
*/
|
|
147
|
-
declare function validateListViewMode(stack: AnyRec$
|
|
147
|
+
declare function validateListViewMode(stack: AnyRec$v): ListViewModeFinding[];
|
|
148
148
|
|
|
149
149
|
type FlowTriggerReadinessSeverity = 'error' | 'warning';
|
|
150
150
|
interface FlowTriggerReadinessFinding {
|
|
@@ -159,12 +159,12 @@ interface FlowTriggerReadinessFinding {
|
|
|
159
159
|
}
|
|
160
160
|
declare const FLOW_TRIGGER_UNKNOWN_OBJECT = "flow-trigger-unknown-object";
|
|
161
161
|
declare const FLOW_DRAFT_STATUS_AMBIGUOUS = "flow-draft-status-ambiguous";
|
|
162
|
-
type AnyRec$
|
|
162
|
+
type AnyRec$u = Record<string, unknown>;
|
|
163
163
|
/**
|
|
164
164
|
* Validate auto-launched flow trigger wiring against the stack definition.
|
|
165
165
|
* Pure and dependency-free; safe on pre- or post-parse stacks.
|
|
166
166
|
*/
|
|
167
|
-
declare function validateFlowTriggerReadiness(stack: AnyRec$
|
|
167
|
+
declare function validateFlowTriggerReadiness(stack: AnyRec$u): FlowTriggerReadinessFinding[];
|
|
168
168
|
|
|
169
169
|
type FlowTemplatePathSeverity = 'error' | 'warning';
|
|
170
170
|
interface FlowTemplatePathFinding {
|
|
@@ -179,12 +179,12 @@ interface FlowTemplatePathFinding {
|
|
|
179
179
|
}
|
|
180
180
|
declare const FLOW_TEMPLATE_UNKNOWN_FIELD = "flow-template-unknown-field";
|
|
181
181
|
declare const FLOW_TEMPLATE_LOOKUP_TRAVERSAL = "flow-template-lookup-traversal";
|
|
182
|
-
type AnyRec$
|
|
182
|
+
type AnyRec$t = Record<string, unknown>;
|
|
183
183
|
/**
|
|
184
184
|
* Validate `{record.<path>}` template references across every record-change
|
|
185
185
|
* flow. Pure and dependency-free; safe on pre- or post-parse stacks.
|
|
186
186
|
*/
|
|
187
|
-
declare function validateFlowTemplatePaths(stack: AnyRec$
|
|
187
|
+
declare function validateFlowTemplatePaths(stack: AnyRec$t): FlowTemplatePathFinding[];
|
|
188
188
|
|
|
189
189
|
type ReadonlyFlowWriteSeverity = 'error' | 'warning';
|
|
190
190
|
interface ReadonlyFlowWriteFinding {
|
|
@@ -199,12 +199,12 @@ interface ReadonlyFlowWriteFinding {
|
|
|
199
199
|
}
|
|
200
200
|
declare const FLOW_UPDATE_READONLY_FIELD = "flow-update-readonly-field";
|
|
201
201
|
declare const FLOW_UPDATE_READONLY_WHEN_FIELD = "flow-update-readonly-when-field";
|
|
202
|
-
type AnyRec$
|
|
202
|
+
type AnyRec$s = Record<string, unknown>;
|
|
203
203
|
/**
|
|
204
204
|
* Validate flow `update_record` writes against target-object readonly
|
|
205
205
|
* declarations. Pure and dependency-free; safe on pre- or post-parse stacks.
|
|
206
206
|
*/
|
|
207
|
-
declare function validateReadonlyFlowWrites(stack: AnyRec$
|
|
207
|
+
declare function validateReadonlyFlowWrites(stack: AnyRec$s): ReadonlyFlowWriteFinding[];
|
|
208
208
|
|
|
209
209
|
type ViewContainerSeverity = 'error' | 'warning';
|
|
210
210
|
interface ViewContainerFinding {
|
|
@@ -241,14 +241,14 @@ declare const STYLE_CLASSNAME_TAILWIND = "style-classname-tailwind";
|
|
|
241
241
|
declare const STYLE_RESPONSIVE_NO_BASE = "style-responsive-no-base";
|
|
242
242
|
declare const STYLE_UNKNOWN_CSS_PROPERTY = "style-unknown-css-property";
|
|
243
243
|
declare const STYLE_UNKNOWN_TOKEN = "style-unknown-token";
|
|
244
|
-
type AnyRec$
|
|
244
|
+
type AnyRec$r = Record<string, unknown>;
|
|
245
245
|
/**
|
|
246
246
|
* Validate every page's component tree for SDUI styling correctness (ADR-0065).
|
|
247
247
|
* Returns findings (empty = clean). `error` findings describe styles that are
|
|
248
248
|
* silently dropped and should fail validate/build; `warning` findings are
|
|
249
249
|
* advisory (typos, drift, footguns).
|
|
250
250
|
*/
|
|
251
|
-
declare function validateResponsiveStyles(stack: AnyRec$
|
|
251
|
+
declare function validateResponsiveStyles(stack: AnyRec$r): StyleFinding[];
|
|
252
252
|
|
|
253
253
|
type JsxPageSeverity = 'error' | 'warning';
|
|
254
254
|
interface JsxPageFinding {
|
|
@@ -261,8 +261,8 @@ interface JsxPageFinding {
|
|
|
261
261
|
message: string;
|
|
262
262
|
hint: string;
|
|
263
263
|
}
|
|
264
|
-
type AnyRec$
|
|
265
|
-
declare function validateJsxPages(stack: AnyRec$
|
|
264
|
+
type AnyRec$q = Record<string, unknown>;
|
|
265
|
+
declare function validateJsxPages(stack: AnyRec$q, opts?: {
|
|
266
266
|
manifest?: Manifest;
|
|
267
267
|
}): JsxPageFinding[];
|
|
268
268
|
|
|
@@ -275,8 +275,8 @@ interface ReactPageFinding {
|
|
|
275
275
|
message: string;
|
|
276
276
|
hint: string;
|
|
277
277
|
}
|
|
278
|
-
type AnyRec$
|
|
279
|
-
declare function validateReactPages(stack: AnyRec$
|
|
278
|
+
type AnyRec$p = Record<string, unknown>;
|
|
279
|
+
declare function validateReactPages(stack: AnyRec$p): ReactPageFinding[];
|
|
280
280
|
|
|
281
281
|
type ReactPropSeverity = 'error' | 'warning';
|
|
282
282
|
interface ReactPropFinding {
|
|
@@ -287,11 +287,11 @@ interface ReactPropFinding {
|
|
|
287
287
|
message: string;
|
|
288
288
|
hint: string;
|
|
289
289
|
}
|
|
290
|
-
type AnyRec$
|
|
290
|
+
type AnyRec$o = Record<string, unknown>;
|
|
291
291
|
declare const REACT_CHART_FIELD_UNKNOWN = "react-chart-field-unknown";
|
|
292
292
|
declare const REACT_CHART_AGGREGATE_INVALID = "react-chart-aggregate-invalid";
|
|
293
293
|
declare const REACT_CHART_AXIS_UNKNOWN = "react-chart-axis-unknown";
|
|
294
|
-
declare function validateReactPageProps(stack: AnyRec$
|
|
294
|
+
declare function validateReactPageProps(stack: AnyRec$o): ReactPropFinding[];
|
|
295
295
|
|
|
296
296
|
type SourceStyleSeverity = 'error' | 'warning';
|
|
297
297
|
interface SourceStyleFinding {
|
|
@@ -303,8 +303,8 @@ interface SourceStyleFinding {
|
|
|
303
303
|
hint: string;
|
|
304
304
|
}
|
|
305
305
|
declare const PAGE_SOURCE_CLASSNAME = "page-source-className-tailwind";
|
|
306
|
-
type AnyRec$
|
|
307
|
-
declare function validatePageSourceStyling(stack: AnyRec$
|
|
306
|
+
type AnyRec$n = Record<string, unknown>;
|
|
307
|
+
declare function validatePageSourceStyling(stack: AnyRec$n): SourceStyleFinding[];
|
|
308
308
|
|
|
309
309
|
/**
|
|
310
310
|
* Build-time record-title diagnostics (ADR-0079).
|
|
@@ -348,14 +348,14 @@ interface RecordTitleFinding {
|
|
|
348
348
|
/** How to fix it. */
|
|
349
349
|
hint: string;
|
|
350
350
|
}
|
|
351
|
-
type AnyRec$
|
|
351
|
+
type AnyRec$m = Record<string, unknown>;
|
|
352
352
|
/**
|
|
353
353
|
* Validate every object's record-title declaration. Returns the list of
|
|
354
354
|
* findings (empty = clean). Both rules are advisory (`warning`): the caller
|
|
355
355
|
* must never fail the build on them alone — auto-provision + the `Record #<id>`
|
|
356
356
|
* floor guarantee a resolvable title at runtime.
|
|
357
357
|
*/
|
|
358
|
-
declare function validateRecordTitle(stack: AnyRec$
|
|
358
|
+
declare function validateRecordTitle(stack: AnyRec$m): RecordTitleFinding[];
|
|
359
359
|
|
|
360
360
|
/**
|
|
361
361
|
* Build-time semantic-role diagnostics (ADR-0085).
|
|
@@ -392,13 +392,13 @@ interface SemanticRoleFinding {
|
|
|
392
392
|
/** How to fix it. */
|
|
393
393
|
hint: string;
|
|
394
394
|
}
|
|
395
|
-
type AnyRec$
|
|
395
|
+
type AnyRec$l = Record<string, unknown>;
|
|
396
396
|
/**
|
|
397
397
|
* Validate every object's semantic-role pointers. Returns the list of
|
|
398
398
|
* findings (empty = clean). Advisory only — the caller must never fail the
|
|
399
399
|
* build on these alone.
|
|
400
400
|
*/
|
|
401
|
-
declare function validateSemanticRoles(stack: AnyRec$
|
|
401
|
+
declare function validateSemanticRoles(stack: AnyRec$l): SemanticRoleFinding[];
|
|
402
402
|
|
|
403
403
|
/**
|
|
404
404
|
* Build-time form-layout diagnostics (#2578).
|
|
@@ -441,12 +441,12 @@ interface FormLayoutFinding {
|
|
|
441
441
|
/** How to fix it. */
|
|
442
442
|
hint: string;
|
|
443
443
|
}
|
|
444
|
-
type AnyRec$
|
|
444
|
+
type AnyRec$k = Record<string, unknown>;
|
|
445
445
|
/**
|
|
446
446
|
* Validate authored form-view layout. Returns findings (empty = clean).
|
|
447
447
|
* Advisory only — the caller must never fail the build on these alone.
|
|
448
448
|
*/
|
|
449
|
-
declare function validateFormLayout(stack: AnyRec$
|
|
449
|
+
declare function validateFormLayout(stack: AnyRec$k): FormLayoutFinding[];
|
|
450
450
|
|
|
451
451
|
/**
|
|
452
452
|
* Build-time conditional-visibility diagnostics (ADR-0089 D3b).
|
|
@@ -508,7 +508,7 @@ interface VisibilityFinding {
|
|
|
508
508
|
/** How to fix it. */
|
|
509
509
|
hint: string;
|
|
510
510
|
}
|
|
511
|
-
type AnyRec$
|
|
511
|
+
type AnyRec$j = Record<string, unknown>;
|
|
512
512
|
/**
|
|
513
513
|
* Validate conditional-visibility keys across authored views and pages.
|
|
514
514
|
*
|
|
@@ -523,7 +523,7 @@ type AnyRec$f = Record<string, unknown>;
|
|
|
523
523
|
* `*.view.ts` / `*.page.ts` surfaces (so a `data.`-rooted predicate is flagged). The
|
|
524
524
|
* alias-deprecated check is layer-agnostic.
|
|
525
525
|
*/
|
|
526
|
-
declare function validateVisibilityPredicates(stack: AnyRec$
|
|
526
|
+
declare function validateVisibilityPredicates(stack: AnyRec$j, opts?: VisibilityOptions): VisibilityFinding[];
|
|
527
527
|
|
|
528
528
|
declare const CAPABILITY_REFERENCE_UNKNOWN = "capability-reference-unknown";
|
|
529
529
|
type CapabilityRefSeverity = 'error' | 'warning';
|
|
@@ -541,12 +541,12 @@ interface CapabilityRefFinding {
|
|
|
541
541
|
/** How to fix it. */
|
|
542
542
|
hint: string;
|
|
543
543
|
}
|
|
544
|
-
type AnyRec$
|
|
544
|
+
type AnyRec$i = Record<string, unknown>;
|
|
545
545
|
/**
|
|
546
546
|
* Validate every capability reference in a stack. Returns findings (empty =
|
|
547
547
|
* clean). Advisory only — callers must not fail the build on these alone.
|
|
548
548
|
*/
|
|
549
|
-
declare function validateCapabilityReferences(stack: AnyRec$
|
|
549
|
+
declare function validateCapabilityReferences(stack: AnyRec$i): CapabilityRefFinding[];
|
|
550
550
|
|
|
551
551
|
declare const APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER = "approval-approver-not-membership-tier";
|
|
552
552
|
declare const APPROVAL_APPROVER_TYPE_DEPRECATED = "approval-approver-type-deprecated";
|
|
@@ -571,12 +571,12 @@ interface ApprovalApproverFinding {
|
|
|
571
571
|
/** How to fix it. */
|
|
572
572
|
hint: string;
|
|
573
573
|
}
|
|
574
|
-
type AnyRec$
|
|
574
|
+
type AnyRec$h = Record<string, unknown>;
|
|
575
575
|
/**
|
|
576
576
|
* Validate the approvers of every Approval node in the stack's flows.
|
|
577
577
|
* Returns findings (empty = clean).
|
|
578
578
|
*/
|
|
579
|
-
declare function validateApprovalApprovers(stack: AnyRec$
|
|
579
|
+
declare function validateApprovalApprovers(stack: AnyRec$h): ApprovalApproverFinding[];
|
|
580
580
|
|
|
581
581
|
type SeedReplaySafetySeverity = 'error' | 'warning';
|
|
582
582
|
interface SeedReplaySafetyFinding {
|
|
@@ -590,7 +590,7 @@ interface SeedReplaySafetyFinding {
|
|
|
590
590
|
hint: string;
|
|
591
591
|
}
|
|
592
592
|
declare const SEED_INSERT_MODE_DUPLICATES_ON_REPLAY = "seed-insert-mode-duplicates-on-replay";
|
|
593
|
-
type AnyRec$
|
|
593
|
+
type AnyRec$g = Record<string, unknown>;
|
|
594
594
|
/**
|
|
595
595
|
* Flag every seed dataset declared with `mode: 'insert'` — the one non-idempotent
|
|
596
596
|
* mode, which duplicates its rows on every replay boot (framework#3434). Returns
|
|
@@ -600,7 +600,7 @@ type AnyRec$c = Record<string, unknown>;
|
|
|
600
600
|
* Reads `stack.data` (the `SeedSchema[]` fixtures). Safe on any shape — a stack
|
|
601
601
|
* with no `data` array yields no findings.
|
|
602
602
|
*/
|
|
603
|
-
declare function validateSeedReplaySafety(stack: AnyRec$
|
|
603
|
+
declare function validateSeedReplaySafety(stack: AnyRec$g): SeedReplaySafetyFinding[];
|
|
604
604
|
|
|
605
605
|
type SeedStateMachineSeverity = 'warning';
|
|
606
606
|
interface SeedStateMachineFinding {
|
|
@@ -614,7 +614,7 @@ interface SeedStateMachineFinding {
|
|
|
614
614
|
hint: string;
|
|
615
615
|
}
|
|
616
616
|
declare const SEED_VALUE_OUTSIDE_STATE_MACHINE = "seed-value-outside-state-machine";
|
|
617
|
-
type AnyRec$
|
|
617
|
+
type AnyRec$f = Record<string, unknown>;
|
|
618
618
|
/**
|
|
619
619
|
* Flag every seed record whose `state_machine`-governed field carries a value
|
|
620
620
|
* the machine does not declare (framework#3433 follow-up). Returns the findings
|
|
@@ -627,7 +627,7 @@ type AnyRec$b = Record<string, unknown>;
|
|
|
627
627
|
* unresolved `cel` Expression envelope, a number) is skipped: it cannot be
|
|
628
628
|
* statically compared to the declared-state set.
|
|
629
629
|
*/
|
|
630
|
-
declare function validateSeedStateMachine(stack: AnyRec$
|
|
630
|
+
declare function validateSeedStateMachine(stack: AnyRec$f): SeedStateMachineFinding[];
|
|
631
631
|
|
|
632
632
|
declare const SECURITY_OWD_UNSET = "security-owd-unset";
|
|
633
633
|
declare const SECURITY_OWD_ALIAS = "security-owd-alias";
|
|
@@ -654,7 +654,7 @@ interface SecurityFinding {
|
|
|
654
654
|
/** How to fix it. */
|
|
655
655
|
hint: string;
|
|
656
656
|
}
|
|
657
|
-
type AnyRec$
|
|
657
|
+
type AnyRec$e = Record<string, unknown>;
|
|
658
658
|
/**
|
|
659
659
|
* Validate the security posture of a stack. Returns findings (empty = clean).
|
|
660
660
|
* `error` findings gate the build in `os compile`; `info` is advisory.
|
|
@@ -662,7 +662,7 @@ type AnyRec$a = Record<string, unknown>;
|
|
|
662
662
|
* `opts.nowMs` injects the clock for the ADR-0091 authoring-time expiry rule
|
|
663
663
|
* (tests); production callers omit it.
|
|
664
664
|
*/
|
|
665
|
-
declare function validateSecurityPosture(stack: AnyRec$
|
|
665
|
+
declare function validateSecurityPosture(stack: AnyRec$e, opts?: {
|
|
666
666
|
nowMs?: number;
|
|
667
667
|
}): SecurityFinding[];
|
|
668
668
|
|
|
@@ -796,13 +796,13 @@ interface DashboardActionRefFinding {
|
|
|
796
796
|
/** How to fix it. */
|
|
797
797
|
hint: string;
|
|
798
798
|
}
|
|
799
|
-
type AnyRec$
|
|
799
|
+
type AnyRec$d = Record<string, unknown>;
|
|
800
800
|
/**
|
|
801
801
|
* Validate every dashboard header / widget action reference in a stack. Returns
|
|
802
802
|
* findings (empty = clean). `script`/`modal` dead targets are errors; `url`
|
|
803
803
|
* unresolved routes are warnings.
|
|
804
804
|
*/
|
|
805
|
-
declare function validateDashboardActionRefs(stack: AnyRec$
|
|
805
|
+
declare function validateDashboardActionRefs(stack: AnyRec$d): DashboardActionRefFinding[];
|
|
806
806
|
|
|
807
807
|
/**
|
|
808
808
|
* Build-time filter-placeholder diagnostics (issue #3574).
|
|
@@ -900,12 +900,41 @@ interface ObjectRefFinding {
|
|
|
900
900
|
/** How to fix it. */
|
|
901
901
|
hint: string;
|
|
902
902
|
}
|
|
903
|
-
type AnyRec$
|
|
903
|
+
type AnyRec$c = Record<string, unknown>;
|
|
904
904
|
/**
|
|
905
905
|
* Validate every object-name reference on the surfaces listed in the module
|
|
906
906
|
* header. Returns findings (empty = clean).
|
|
907
907
|
*/
|
|
908
|
-
declare function validateObjectReferences(stack: AnyRec$
|
|
908
|
+
declare function validateObjectReferences(stack: AnyRec$c): ObjectRefFinding[];
|
|
909
|
+
|
|
910
|
+
declare const SEARCHABLE_FIELD_UNKNOWN = "searchable-field-unknown";
|
|
911
|
+
type SearchableFieldSeverity = 'error' | 'warning';
|
|
912
|
+
interface SearchableFieldFinding {
|
|
913
|
+
/** Always `error` — a stale entry narrows, widens or refuses the search (see module note). */
|
|
914
|
+
severity: SearchableFieldSeverity;
|
|
915
|
+
/** Diagnostic rule id. */
|
|
916
|
+
rule: string;
|
|
917
|
+
/** Human-readable location, e.g. `object "crm_lead"`. */
|
|
918
|
+
where: string;
|
|
919
|
+
/** Config path, e.g. `objects[0].searchableFields[2]`. */
|
|
920
|
+
path: string;
|
|
921
|
+
/** What is wrong. */
|
|
922
|
+
message: string;
|
|
923
|
+
/** How to fix it. */
|
|
924
|
+
hint: string;
|
|
925
|
+
}
|
|
926
|
+
type AnyRec$b = Record<string, unknown>;
|
|
927
|
+
/**
|
|
928
|
+
* Validate every `searchableFields` declaration in the stack — the object's own
|
|
929
|
+
* (the canonical set, ADR-0061) and the list views that narrow it. Returns
|
|
930
|
+
* findings (empty = clean).
|
|
931
|
+
*
|
|
932
|
+
* The react page surface (`<ListView searchableFields={…}>`) is deliberately
|
|
933
|
+
* NOT walked here: its declaration lives inside JSX source, and
|
|
934
|
+
* `validate-react-page-props` — the gate that already parses that source —
|
|
935
|
+
* runs the same `checkSearchableFieldList` core on it (#4329).
|
|
936
|
+
*/
|
|
937
|
+
declare function validateSearchableFields(stack: AnyRec$b): SearchableFieldFinding[];
|
|
909
938
|
|
|
910
939
|
declare const ACTION_NAME_UNDEFINED = "action-name-undefined";
|
|
911
940
|
type ActionNameRefSeverity = 'error' | 'warning';
|
|
@@ -923,12 +952,12 @@ interface ActionNameRefFinding {
|
|
|
923
952
|
/** How to fix it. */
|
|
924
953
|
hint: string;
|
|
925
954
|
}
|
|
926
|
-
type AnyRec$
|
|
955
|
+
type AnyRec$a = Record<string, unknown>;
|
|
927
956
|
/**
|
|
928
957
|
* Validate every name-bound action reference in a stack. Returns findings
|
|
929
958
|
* (empty = clean).
|
|
930
959
|
*/
|
|
931
|
-
declare function validateActionNameRefs(stack: AnyRec$
|
|
960
|
+
declare function validateActionNameRefs(stack: AnyRec$a): ActionNameRefFinding[];
|
|
932
961
|
|
|
933
962
|
/**
|
|
934
963
|
* Shared page-component traversal for the lint rules that inspect
|
|
@@ -954,7 +983,7 @@ declare function validateActionNameRefs(stack: AnyRec$7): ActionNameRefFinding[]
|
|
|
954
983
|
* author never wrote, so those pages are skipped here and covered by
|
|
955
984
|
* `validate-jsx-pages` / `validate-react-page-props` instead.
|
|
956
985
|
*/
|
|
957
|
-
type AnyRec$
|
|
986
|
+
type AnyRec$9 = Record<string, unknown>;
|
|
958
987
|
|
|
959
988
|
/**
|
|
960
989
|
* [ADR-0078 — completeness] Field-reference integrity for page components
|
|
@@ -993,11 +1022,28 @@ type AnyRec$6 = Record<string, unknown>;
|
|
|
993
1022
|
* `record:details` `sections[].fields[]` and `hideFields[]`, and the record
|
|
994
1023
|
* picker's `labelField`. Linting the schema's shape alone would find nothing on
|
|
995
1024
|
* the actual corpus.
|
|
1025
|
+
*
|
|
1026
|
+
* ── Shared with the react page surface ──────────────────────────────────
|
|
1027
|
+
*
|
|
1028
|
+
* A `kind:'react'` page authors the SAME components, one surface over, as JSX
|
|
1029
|
+
* props instead of a `properties` bag (`<RecordHighlights fields={…}>`). The
|
|
1030
|
+
* extraction and the check are therefore exported — `COMPONENT_FIELD_SPECS`,
|
|
1031
|
+
* {@link componentFieldRefs}, {@link relatedListFieldRefs},
|
|
1032
|
+
* {@link indexObjectFields}, {@link checkFieldRefs} — and
|
|
1033
|
+
* `validate-react-page-props` runs them on the parsed JSX (#4340). Same table,
|
|
1034
|
+
* same skips, same rule id: the two surfaces agree on what counts as a field by
|
|
1035
|
+
* construction rather than by two lists that happen to match, which is the
|
|
1036
|
+
* drift #4330 had just finished removing from the system-field lists.
|
|
996
1037
|
*/
|
|
997
1038
|
declare const PAGE_FIELD_UNKNOWN = "page-field-unknown";
|
|
998
1039
|
type PageFieldSeverity = 'error' | 'warning';
|
|
999
1040
|
interface PageFieldFinding {
|
|
1000
|
-
/**
|
|
1041
|
+
/**
|
|
1042
|
+
* `warning` on every surface this rule itself walks — page renderers skip an
|
|
1043
|
+
* unknown field rather than fail. The shared {@link checkFieldRefs} core also
|
|
1044
|
+
* serves the react page surface, where one batch of refs reaches a QUERY
|
|
1045
|
+
* rather than a renderer and gates instead; see {@link FieldRefConsequence}.
|
|
1046
|
+
*/
|
|
1001
1047
|
severity: PageFieldSeverity;
|
|
1002
1048
|
/** Diagnostic rule id. */
|
|
1003
1049
|
rule: string;
|
|
@@ -1011,7 +1057,7 @@ interface PageFieldFinding {
|
|
|
1011
1057
|
hint: string;
|
|
1012
1058
|
}
|
|
1013
1059
|
|
|
1014
|
-
declare function validatePageFieldBindings(stack: AnyRec$
|
|
1060
|
+
declare function validatePageFieldBindings(stack: AnyRec$9): PageFieldFinding[];
|
|
1015
1061
|
|
|
1016
1062
|
/**
|
|
1017
1063
|
* [ADR-0021 — semantic layer] Chart-binding integrity for the surfaces the
|
|
@@ -1068,7 +1114,7 @@ interface ChartBindingFinding {
|
|
|
1068
1114
|
hint: string;
|
|
1069
1115
|
}
|
|
1070
1116
|
|
|
1071
|
-
declare function validateChartBindings(stack: AnyRec$
|
|
1117
|
+
declare function validateChartBindings(stack: AnyRec$9): ChartBindingFinding[];
|
|
1072
1118
|
|
|
1073
1119
|
declare const NAV_OBJECT_UNGRANTED = "nav-object-ungranted";
|
|
1074
1120
|
type NavAccessSeverity = 'error' | 'warning';
|
|
@@ -1086,12 +1132,12 @@ interface NavAccessFinding {
|
|
|
1086
1132
|
/** How to fix it. */
|
|
1087
1133
|
hint: string;
|
|
1088
1134
|
}
|
|
1089
|
-
type AnyRec$
|
|
1135
|
+
type AnyRec$8 = Record<string, unknown>;
|
|
1090
1136
|
/**
|
|
1091
1137
|
* Validate that every object a stack's navigation exposes is readable by at
|
|
1092
1138
|
* least one permission set the stack declares. Returns findings (empty = clean).
|
|
1093
1139
|
*/
|
|
1094
|
-
declare function validateNavAccess(stack: AnyRec$
|
|
1140
|
+
declare function validateNavAccess(stack: AnyRec$8): NavAccessFinding[];
|
|
1095
1141
|
|
|
1096
1142
|
declare const TRANSLATION_TARGET_UNKNOWN = "translation-target-unknown";
|
|
1097
1143
|
declare const TRANSLATION_OPTION_KEY_UNKNOWN = "translation-option-key-unknown";
|
|
@@ -1110,12 +1156,12 @@ interface TranslationRefFinding {
|
|
|
1110
1156
|
/** How to fix it. */
|
|
1111
1157
|
hint: string;
|
|
1112
1158
|
}
|
|
1113
|
-
type AnyRec$
|
|
1159
|
+
type AnyRec$7 = Record<string, unknown>;
|
|
1114
1160
|
/**
|
|
1115
1161
|
* Validate every reference a translation bundle makes against the metadata it
|
|
1116
1162
|
* claims to translate. Returns findings (empty = clean).
|
|
1117
1163
|
*/
|
|
1118
|
-
declare function validateTranslationReferences(stack: AnyRec$
|
|
1164
|
+
declare function validateTranslationReferences(stack: AnyRec$7): TranslationRefFinding[];
|
|
1119
1165
|
|
|
1120
1166
|
/**
|
|
1121
1167
|
* [ADR-0064 §3] Skill ↔ agent surface affinity (issue #3820).
|
|
@@ -1160,12 +1206,12 @@ interface AiSurfaceAffinityFinding {
|
|
|
1160
1206
|
/** How to fix it. */
|
|
1161
1207
|
hint: string;
|
|
1162
1208
|
}
|
|
1163
|
-
type AnyRec$
|
|
1209
|
+
type AnyRec$6 = Record<string, unknown>;
|
|
1164
1210
|
/**
|
|
1165
1211
|
* Validate every in-stack agent→skill binding against the ADR-0064 §3 surface
|
|
1166
1212
|
* affinity contract. Returns findings (empty = clean).
|
|
1167
1213
|
*/
|
|
1168
|
-
declare function validateAiSurfaceAffinity(stack: AnyRec$
|
|
1214
|
+
declare function validateAiSurfaceAffinity(stack: AnyRec$6): AiSurfaceAffinityFinding[];
|
|
1169
1215
|
|
|
1170
1216
|
declare const AI_SKILL_TOOL_UNRESOLVED = "ai-skill-tool-unresolved";
|
|
1171
1217
|
type AiToolRefSeverity = 'error' | 'warning';
|
|
@@ -1183,12 +1229,12 @@ interface AiToolRefFinding {
|
|
|
1183
1229
|
/** How to fix it. */
|
|
1184
1230
|
hint: string;
|
|
1185
1231
|
}
|
|
1186
|
-
type AnyRec$
|
|
1232
|
+
type AnyRec$5 = Record<string, unknown>;
|
|
1187
1233
|
/**
|
|
1188
1234
|
* Validate every `skill.tools[]` reference in a stack. Returns findings
|
|
1189
1235
|
* (empty = clean).
|
|
1190
1236
|
*/
|
|
1191
|
-
declare function validateAiToolReferences(stack: AnyRec$
|
|
1237
|
+
declare function validateAiToolReferences(stack: AnyRec$5): AiToolRefFinding[];
|
|
1192
1238
|
|
|
1193
1239
|
/**
|
|
1194
1240
|
* [ADR-0063 §2] `stack.agents` is a platform-internal slot (issue #3820).
|
|
@@ -1233,12 +1279,202 @@ interface AiAgentAuthoringFinding {
|
|
|
1233
1279
|
/** How to fix it. */
|
|
1234
1280
|
hint: string;
|
|
1235
1281
|
}
|
|
1236
|
-
type AnyRec$
|
|
1282
|
+
type AnyRec$4 = Record<string, unknown>;
|
|
1237
1283
|
/**
|
|
1238
1284
|
* Flag every agent declared in a stack. Returns findings (empty = clean,
|
|
1239
1285
|
* which is what every app package should be).
|
|
1240
1286
|
*/
|
|
1241
|
-
declare function validateAiAgentAuthoring(stack: AnyRec$
|
|
1287
|
+
declare function validateAiAgentAuthoring(stack: AnyRec$4): AiAgentAuthoringFinding[];
|
|
1288
|
+
|
|
1289
|
+
type HookBodyWriteSeverity = 'warning';
|
|
1290
|
+
interface HookBodyWriteFinding {
|
|
1291
|
+
/** v1 is advisory-only by contract — the type says so. */
|
|
1292
|
+
severity: HookBodyWriteSeverity;
|
|
1293
|
+
rule: string;
|
|
1294
|
+
/** Human-readable location, e.g. `hook "normalize_lead" › body`. */
|
|
1295
|
+
where: string;
|
|
1296
|
+
/** Config path, e.g. `hooks[0].body.source`. */
|
|
1297
|
+
path: string;
|
|
1298
|
+
message: string;
|
|
1299
|
+
hint: string;
|
|
1300
|
+
}
|
|
1301
|
+
declare const HOOK_BODY_WRITE_UNKNOWN_FIELD = "hook-body-write-unknown-field";
|
|
1302
|
+
/** One syntactic write shape the extractor recognizes. */
|
|
1303
|
+
interface HookBodyWritePattern {
|
|
1304
|
+
/** Stable pattern id, carried on every extracted write. */
|
|
1305
|
+
readonly id: string;
|
|
1306
|
+
/** Author-facing syntax summary (for docs/diagnostics, not matching). */
|
|
1307
|
+
readonly syntax: string;
|
|
1308
|
+
/** Reconciliation fixture: extracting `source` must yield exactly `writes`. */
|
|
1309
|
+
readonly example: {
|
|
1310
|
+
readonly source: string;
|
|
1311
|
+
readonly writes: ReadonlyArray<{
|
|
1312
|
+
field: string;
|
|
1313
|
+
object?: string;
|
|
1314
|
+
}>;
|
|
1315
|
+
};
|
|
1316
|
+
}
|
|
1317
|
+
declare const HOOK_BODY_WRITE_PATTERNS: readonly HookBodyWritePattern[];
|
|
1318
|
+
/** A ledger pattern a given rule does NOT consume, and why. */
|
|
1319
|
+
interface BodyWritePatternExclusion {
|
|
1320
|
+
/** The {@link HOOK_BODY_WRITE_PATTERNS} entry id being excluded. */
|
|
1321
|
+
readonly id: string;
|
|
1322
|
+
/** Why the shape does not mean the same thing on this rule's surface. */
|
|
1323
|
+
readonly reason: string;
|
|
1324
|
+
}
|
|
1325
|
+
/**
|
|
1326
|
+
* The ledger shapes THIS rule consumes.
|
|
1327
|
+
*
|
|
1328
|
+
* Declared rather than implied: before the ledger carried a shape the hook
|
|
1329
|
+
* surface does not have, every write with no `object` was necessarily a
|
|
1330
|
+
* `ctx.input` write, and the rule could branch on that alone. It no longer can
|
|
1331
|
+
* — a `record-property-assign` write also carries no object, and would have
|
|
1332
|
+
* been reported as "the hook writes 'stage' to its input", which is false.
|
|
1333
|
+
* Each consumer declaring its own subset is what stops the next added shape
|
|
1334
|
+
* from silently landing in a branch that was never written for it.
|
|
1335
|
+
*/
|
|
1336
|
+
declare const HOOK_BODY_WRITE_PATTERN_IDS: readonly string[];
|
|
1337
|
+
/** Ledger shapes this rule leaves alone, each with its reason. */
|
|
1338
|
+
declare const HOOK_BODY_WRITE_EXCLUSIONS: readonly BodyWritePatternExclusion[];
|
|
1339
|
+
type AnyRec$3 = Record<string, unknown>;
|
|
1340
|
+
/** One statically-extracted field write found in an L2 body. */
|
|
1341
|
+
interface ExtractedHookBodyWrite {
|
|
1342
|
+
/** Which {@link HOOK_BODY_WRITE_PATTERNS} entry matched. */
|
|
1343
|
+
patternId: string;
|
|
1344
|
+
/** Target object name; `undefined` = the hook's own target object(s). */
|
|
1345
|
+
object?: string;
|
|
1346
|
+
/** The `ctx.api` method for diagnostics (`insert`/`create`/`update`/`updateById`). */
|
|
1347
|
+
method?: string;
|
|
1348
|
+
field: string;
|
|
1349
|
+
}
|
|
1350
|
+
/** Everything one parse of an L2 body yields. */
|
|
1351
|
+
interface ExtractedHookBodyWriteSet {
|
|
1352
|
+
/** Every literal write the {@link HOOK_BODY_WRITE_PATTERNS} ledger declares. */
|
|
1353
|
+
writes: ExtractedHookBodyWrite[];
|
|
1354
|
+
/**
|
|
1355
|
+
* `ctx.record` is handed to something as a VALUE somewhere in the body — an
|
|
1356
|
+
* argument, an assignment RHS, a spread, a return — rather than only having
|
|
1357
|
+
* its properties read and written, or being truthiness/type tested.
|
|
1358
|
+
*
|
|
1359
|
+
* The action rule needs this to tell a dead snapshot write from a live one:
|
|
1360
|
+
* `ctx.record.stage = 'won'; await ctx.api.object('d').update(ctx.record)`
|
|
1361
|
+
* builds a payload and persists it, so the assignment is not a no-op. When
|
|
1362
|
+
* this is true, no record write in the body can be judged, and none is
|
|
1363
|
+
* reported. (One-level aliasing — `const r = ctx.record` — reads as an
|
|
1364
|
+
* escape too, which is the safe direction: it suppresses findings.)
|
|
1365
|
+
*/
|
|
1366
|
+
ctxRecordEscapes: boolean;
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* Extract every literal field write the pattern ledger declares from an L2
|
|
1370
|
+
* body's source. Parse-only (the source is never executed), error-tolerant
|
|
1371
|
+
* (a body with syntax errors simply yields fewer matches), and lazy: the
|
|
1372
|
+
* TypeScript compiler is not loaded when no pattern can possibly match.
|
|
1373
|
+
*
|
|
1374
|
+
* Thin projection of {@link extractHookBodyWriteSet} — use that one when the
|
|
1375
|
+
* `ctx.record` liveness signal matters, so the body is parsed once, not twice.
|
|
1376
|
+
*/
|
|
1377
|
+
declare function extractHookBodyWrites(source: string): ExtractedHookBodyWrite[];
|
|
1378
|
+
/** {@link extractHookBodyWrites} plus the `ctx.record` liveness signal, one parse. */
|
|
1379
|
+
declare function extractHookBodyWriteSet(source: string): ExtractedHookBodyWriteSet;
|
|
1380
|
+
/**
|
|
1381
|
+
* Validate L2 hook-body writes against target-object field declarations.
|
|
1382
|
+
* Pure `(stack) => Finding[]` (ADR-0019); safe on pre- or post-parse stacks.
|
|
1383
|
+
*/
|
|
1384
|
+
declare function validateHookBodyWrites(stack: AnyRec$3): HookBodyWriteFinding[];
|
|
1385
|
+
|
|
1386
|
+
type ActionBodyWriteSeverity = 'warning';
|
|
1387
|
+
interface ActionBodyWriteFinding {
|
|
1388
|
+
/** Advisory-only by contract, exactly like the hook rule — the type says so. */
|
|
1389
|
+
severity: ActionBodyWriteSeverity;
|
|
1390
|
+
rule: string;
|
|
1391
|
+
/** Human-readable location, e.g. `action "close_deal" › body`. */
|
|
1392
|
+
where: string;
|
|
1393
|
+
/** Config path, e.g. `actions[0].body.source`. */
|
|
1394
|
+
path: string;
|
|
1395
|
+
message: string;
|
|
1396
|
+
hint: string;
|
|
1397
|
+
}
|
|
1398
|
+
declare const ACTION_BODY_WRITE_UNKNOWN_FIELD = "action-body-write-unknown-field";
|
|
1399
|
+
declare const ACTION_RECORD_WRITE_DISCARDED = "action-record-write-discarded";
|
|
1400
|
+
/** @deprecated alias — the exclusion shape is shared with the hook rule. */
|
|
1401
|
+
type ActionBodyWriteExclusion = BodyWritePatternExclusion;
|
|
1402
|
+
/**
|
|
1403
|
+
* Ledger shapes the UNKNOWN-FIELD check consumes — resolved against the named
|
|
1404
|
+
* object's declared fields.
|
|
1405
|
+
*
|
|
1406
|
+
* Include-list, not exclude-list, on purpose: an unclassified new pattern is
|
|
1407
|
+
* then inert here (a missed finding) rather than live against a context it was
|
|
1408
|
+
* never reasoned about (a false one) — the same asymmetry the extractor's
|
|
1409
|
+
* silent bails follow.
|
|
1410
|
+
*/
|
|
1411
|
+
declare const ACTION_BODY_WRITE_PATTERN_IDS: readonly string[];
|
|
1412
|
+
/**
|
|
1413
|
+
* Ledger shapes the DISCARDED-RECORD-WRITE check consumes — never resolved
|
|
1414
|
+
* against anything, because no field name can make a discarded write land.
|
|
1415
|
+
*/
|
|
1416
|
+
declare const ACTION_RECORD_WRITE_PATTERN_IDS: readonly string[];
|
|
1417
|
+
/** Shared-ledger patterns neither check consumes, each with its reason. */
|
|
1418
|
+
declare const ACTION_BODY_WRITE_EXCLUSIONS: readonly BodyWritePatternExclusion[];
|
|
1419
|
+
/**
|
|
1420
|
+
* The subset of the shared ledger the unknown-field check sees — the published
|
|
1421
|
+
* answer to "which writes does the action lint resolve against fields?".
|
|
1422
|
+
*/
|
|
1423
|
+
declare const ACTION_BODY_WRITE_PATTERNS: readonly HookBodyWritePattern[];
|
|
1424
|
+
/** The subset the discarded-record-write check sees. */
|
|
1425
|
+
declare const ACTION_RECORD_WRITE_PATTERNS: readonly HookBodyWritePattern[];
|
|
1426
|
+
type AnyRec$2 = Record<string, unknown>;
|
|
1427
|
+
/**
|
|
1428
|
+
* Validate L2 action-body writes against target-object field declarations.
|
|
1429
|
+
* Pure `(stack) => Finding[]` (ADR-0019); safe on pre- or post-parse stacks.
|
|
1430
|
+
*/
|
|
1431
|
+
declare function validateActionBodyWrites(stack: AnyRec$2): ActionBodyWriteFinding[];
|
|
1432
|
+
|
|
1433
|
+
type FlowNodeWriteSeverity = 'error';
|
|
1434
|
+
interface FlowNodeWriteFinding {
|
|
1435
|
+
/** Always `error` — a literal key against a literal object is a certainty (see module note). */
|
|
1436
|
+
severity: FlowNodeWriteSeverity;
|
|
1437
|
+
rule: string;
|
|
1438
|
+
/** Human-readable location, e.g. `flow "close_deal" › node "Mark won"`. */
|
|
1439
|
+
where: string;
|
|
1440
|
+
/** Config path, e.g. `flows[0].nodes[3].config.fields.stagee`. */
|
|
1441
|
+
path: string;
|
|
1442
|
+
message: string;
|
|
1443
|
+
hint: string;
|
|
1444
|
+
}
|
|
1445
|
+
declare const FLOW_NODE_WRITE_UNKNOWN_FIELD = "flow-node-write-unknown-field";
|
|
1446
|
+
/** Flow node types whose `config.fields` keys this rule resolves. */
|
|
1447
|
+
declare const FLOW_WRITE_NODE_TYPES: readonly string[];
|
|
1448
|
+
/** A `fields`-bearing node type this rule does NOT cover yet, and why. */
|
|
1449
|
+
interface FlowWriteNodeDeferral {
|
|
1450
|
+
/** The `FlowNode.type` left uncovered. */
|
|
1451
|
+
readonly type: string;
|
|
1452
|
+
/** Why it is not covered, in terms a reviewer can act on. */
|
|
1453
|
+
readonly reason: string;
|
|
1454
|
+
}
|
|
1455
|
+
/**
|
|
1456
|
+
* `fields`-bearing CRUD node types deliberately left uncovered.
|
|
1457
|
+
*
|
|
1458
|
+
* **Empty, and that is the point.** #4369 shipped `update_record` alone and
|
|
1459
|
+
* parked `create_record` here with its reason — a gating rule earning its
|
|
1460
|
+
* severity one measured surface at a time — rather than leaving the other half
|
|
1461
|
+
* as silence. #4371 measured the INSERT path (`table deal has no column named
|
|
1462
|
+
* stagee`, and the row never created at all), found it strictly worse than the
|
|
1463
|
+
* UPDATE one, and moved it across.
|
|
1464
|
+
*
|
|
1465
|
+
* The slot stays because the partition test derives the full `fields`-write-map
|
|
1466
|
+
* set from the spec's own config schemas: a node type that grows one later
|
|
1467
|
+
* belongs to neither list and fails that test until someone puts it in one.
|
|
1468
|
+
* Deleting this array would turn that forced decision back into a default.
|
|
1469
|
+
*/
|
|
1470
|
+
declare const FLOW_WRITE_NODE_TYPES_DEFERRED: readonly FlowWriteNodeDeferral[];
|
|
1471
|
+
type AnyRec$1 = Record<string, unknown>;
|
|
1472
|
+
/**
|
|
1473
|
+
* Validate flow write-node `fields` keys against the target object's declared
|
|
1474
|
+
* fields. Pure `(stack) => Finding[]` (ADR-0019); safe on pre- or post-parse
|
|
1475
|
+
* stacks.
|
|
1476
|
+
*/
|
|
1477
|
+
declare function validateFlowNodeWrites(stack: AnyRec$1): FlowNodeWriteFinding[];
|
|
1242
1478
|
|
|
1243
1479
|
type ReferenceIntegritySeverity = 'error' | 'warning';
|
|
1244
1480
|
/**
|
|
@@ -1302,4 +1538,4 @@ declare function buildAccessMatrix(stack: AnyRec): AccessMatrix;
|
|
|
1302
1538
|
*/
|
|
1303
1539
|
declare function diffAccessMatrix(before: AccessMatrix, after: AccessMatrix): string[];
|
|
1304
1540
|
|
|
1305
|
-
export { ACTION_NAME_UNDEFINED, AGENT_AUTHORING_WITHDRAWN, AI_SKILL_SURFACE_MISMATCH, AI_SKILL_TOOL_UNRESOLVED, APPROVAL_APPROVERS_MAY_RESOLVE_EMPTY, APPROVAL_APPROVER_CROSS_ORG_UNSUPPORTED, APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER, APPROVAL_APPROVER_TYPE_DEPRECATED, APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_DECISION_OUTPUTS_RESERVED, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, APPROVAL_EXPRESSION_INVALID, APPROVAL_EXPRESSION_NO_EMPTY_POLICY, type ActionNameRefFinding, type ActionNameRefSeverity, type AiAgentAuthoringFinding, type AiAgentAuthoringSeverity, type AiSurfaceAffinityFinding, type AiSurfaceAffinitySeverity, type AiToolRefFinding, type AiToolRefSeverity, type ApprovalApproverFinding, type ApprovalApproverSeverity, CAPABILITY_REFERENCE_UNKNOWN, CHART_AXIS_NOT_SELECTED, CHART_CONFIG_MISSING, CHART_DATASET_UNKNOWN, CHART_DIMENSION_UNKNOWN, CHART_FIELD_UNKNOWN, CHART_MEASURE_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ChartBindingFinding, type ChartBindingSeverity, DASHBOARD_ACTION_ROUTE_UNRESOLVED, DASHBOARD_ACTION_TARGET_UNDEFINED, DASHBOARD_FILTER_FIELD_UNKNOWN, type DashboardActionRefFinding, type DashboardActionRefSeverity, type ExprIssue, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FILTER_TOKEN_UNKNOWN, FLOW_DRAFT_STATUS_AMBIGUOUS, FLOW_TEMPLATE_LOOKUP_TRAVERSAL, FLOW_TEMPLATE_UNKNOWN_FIELD, FLOW_TRIGGER_UNKNOWN_OBJECT, FLOW_UPDATE_READONLY_FIELD, FLOW_UPDATE_READONLY_WHEN_FIELD, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FilterTokenFinding, type FilterTokenSeverity, type FlowTemplatePathFinding, type FlowTemplatePathSeverity, 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, NAV_OBJECT_UNGRANTED, type NavAccessFinding, type NavAccessSeverity, OBJECT_REFERENCE_UNKNOWN, OBJECT_REFERENCE_UNREGISTERED_PLATFORM, ORG_AXIS_CROSS_ORG_BU_GRANT, ORG_AXIS_PERMISSION_INHERITANCE, type ObjectRefFinding, type ObjectRefSeverity, type OrgAxisFinding, type OrgAxisSeverity, PAGE_FIELD_UNKNOWN, PAGE_SOURCE_CLASSNAME, type PageFieldFinding, type PageFieldSeverity, REACT_CHART_AGGREGATE_INVALID, REACT_CHART_AXIS_UNKNOWN, REACT_CHART_FIELD_UNKNOWN, REFERENCE_INTEGRITY_RULES, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type ReadonlyFlowWriteFinding, type ReadonlyFlowWriteSeverity, type RecordTitleFinding, type RecordTitleSeverity, type ReferenceIntegrityFinding, type ReferenceIntegrityRule, type ReferenceIntegritySeverity, 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, SEED_INSERT_MODE_DUPLICATES_ON_REPLAY, SEED_VALUE_OUTSIDE_STATE_MACHINE, 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 SeedReplaySafetyFinding, type SeedReplaySafetySeverity, type SeedStateMachineFinding, type SeedStateMachineSeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, TRANSLATION_OPTION_KEY_UNKNOWN, TRANSLATION_TARGET_UNKNOWN, type TranslationRefFinding, type TranslationRefSeverity, 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, validateActionNameRefs, validateAiAgentAuthoring, validateAiSurfaceAffinity, validateAiToolReferences, validateApprovalApprovers, validateCapabilityReferences, validateChartBindings, validateDashboardActionRefs, validateFilterTokens, validateFlowTemplatePaths, validateFlowTriggerReadiness, validateFormLayout, validateJsxPages, validateListViewMode, validateNavAccess, validateObjectReferences, validateOrgAxisRedLines, validatePageFieldBindings, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateReadonlyFlowWrites, validateRecordTitle, validateReferenceIntegrity, validateResponsiveStyles, validateSecurityPosture, validateSeedReplaySafety, validateSeedStateMachine, validateSemanticRoles, validateStackExpressions, validateTranslationReferences, validateViewContainers, validateVisibilityPredicates, validateWidgetBindings };
|
|
1541
|
+
export { ACTION_BODY_WRITE_EXCLUSIONS, ACTION_BODY_WRITE_PATTERNS, ACTION_BODY_WRITE_PATTERN_IDS, ACTION_BODY_WRITE_UNKNOWN_FIELD, ACTION_NAME_UNDEFINED, ACTION_RECORD_WRITE_DISCARDED, ACTION_RECORD_WRITE_PATTERNS, ACTION_RECORD_WRITE_PATTERN_IDS, AGENT_AUTHORING_WITHDRAWN, AI_SKILL_SURFACE_MISMATCH, AI_SKILL_TOOL_UNRESOLVED, APPROVAL_APPROVERS_MAY_RESOLVE_EMPTY, APPROVAL_APPROVER_CROSS_ORG_UNSUPPORTED, APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER, APPROVAL_APPROVER_TYPE_DEPRECATED, APPROVAL_APPROVER_TYPE_UNKNOWN, APPROVAL_DECISION_OUTPUTS_RESERVED, APPROVAL_ESCALATION_REASSIGN_NO_TARGET, APPROVAL_EXPRESSION_INVALID, APPROVAL_EXPRESSION_NO_EMPTY_POLICY, type ActionBodyWriteExclusion, type ActionBodyWriteFinding, type ActionBodyWriteSeverity, type ActionNameRefFinding, type ActionNameRefSeverity, type AiAgentAuthoringFinding, type AiAgentAuthoringSeverity, type AiSurfaceAffinityFinding, type AiSurfaceAffinitySeverity, type AiToolRefFinding, type AiToolRefSeverity, type ApprovalApproverFinding, type ApprovalApproverSeverity, type BodyWritePatternExclusion, CAPABILITY_REFERENCE_UNKNOWN, CHART_AXIS_NOT_SELECTED, CHART_CONFIG_MISSING, CHART_DATASET_UNKNOWN, CHART_DIMENSION_UNKNOWN, CHART_FIELD_UNKNOWN, CHART_MEASURE_UNKNOWN, type CapabilityRefFinding, type CapabilityRefSeverity, type ChartBindingFinding, type ChartBindingSeverity, DASHBOARD_ACTION_ROUTE_UNRESOLVED, DASHBOARD_ACTION_TARGET_UNDEFINED, DASHBOARD_FILTER_FIELD_UNKNOWN, type DashboardActionRefFinding, type DashboardActionRefSeverity, type ExprIssue, type ExtractedHookBodyWrite, type ExtractedHookBodyWriteSet, FIELD_GROUP_EMPTY, FIELD_GROUP_UNDECLARED, FILTER_TOKEN_UNKNOWN, FLOW_DRAFT_STATUS_AMBIGUOUS, FLOW_NODE_WRITE_UNKNOWN_FIELD, FLOW_TEMPLATE_LOOKUP_TRAVERSAL, FLOW_TEMPLATE_UNKNOWN_FIELD, FLOW_TRIGGER_UNKNOWN_OBJECT, FLOW_UPDATE_READONLY_FIELD, FLOW_UPDATE_READONLY_WHEN_FIELD, FLOW_WRITE_NODE_TYPES, FLOW_WRITE_NODE_TYPES_DEFERRED, FORM_COLSPAN_ABSOLUTE, FORM_FIELD_UNKNOWN, type FilterTokenFinding, type FilterTokenSeverity, type FlowNodeWriteFinding, type FlowNodeWriteSeverity, type FlowTemplatePathFinding, type FlowTemplatePathSeverity, type FlowTriggerReadinessFinding, type FlowTriggerReadinessSeverity, type FlowWriteNodeDeferral, type FormLayoutFinding, type FormLayoutSeverity, HOOK_BODY_WRITE_EXCLUSIONS, HOOK_BODY_WRITE_PATTERNS, HOOK_BODY_WRITE_PATTERN_IDS, HOOK_BODY_WRITE_UNKNOWN_FIELD, type HookBodyWriteFinding, type HookBodyWritePattern, type HookBodyWriteSeverity, type JsxPageFinding, type JsxPageSeverity, LIST_VIEW_FILTERS_IN_VIEWS_MODE, type ListViewModeFinding, type ListViewModeSeverity, MEASURE_AGGREGATE_INCOHERENT, NAV_OBJECT_UNGRANTED, type NavAccessFinding, type NavAccessSeverity, OBJECT_REFERENCE_UNKNOWN, OBJECT_REFERENCE_UNREGISTERED_PLATFORM, ORG_AXIS_CROSS_ORG_BU_GRANT, ORG_AXIS_PERMISSION_INHERITANCE, type ObjectRefFinding, type ObjectRefSeverity, type OrgAxisFinding, type OrgAxisSeverity, PAGE_FIELD_UNKNOWN, PAGE_SOURCE_CLASSNAME, type PageFieldFinding, type PageFieldSeverity, REACT_CHART_AGGREGATE_INVALID, REACT_CHART_AXIS_UNKNOWN, REACT_CHART_FIELD_UNKNOWN, REFERENCE_INTEGRITY_RULES, type ReactPageFinding, type ReactPageSeverity, type ReactPropFinding, type ReactPropSeverity, type ReadonlyFlowWriteFinding, type ReadonlyFlowWriteSeverity, type RecordTitleFinding, type RecordTitleSeverity, type ReferenceIntegrityFinding, type ReferenceIntegrityRule, type ReferenceIntegritySeverity, SEARCHABLE_FIELD_UNKNOWN, 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, SEED_INSERT_MODE_DUPLICATES_ON_REPLAY, SEED_VALUE_OUTSIDE_STATE_MACHINE, SEMANTIC_ROLE_FIELD_UNKNOWN, STYLE_CLASSNAME_TAILWIND, STYLE_NODE_MISSING_ID, STYLE_RESPONSIVE_NO_BASE, STYLE_UNKNOWN_CSS_PROPERTY, STYLE_UNKNOWN_TOKEN, type SearchableFieldFinding, type SearchableFieldSeverity, type SecurityFinding, type SecuritySeverity, type SeedReplaySafetyFinding, type SeedReplaySafetySeverity, type SeedStateMachineFinding, type SeedStateMachineSeverity, type SemanticRoleFinding, type SemanticRoleSeverity, type SourceStyleFinding, type SourceStyleSeverity, type StyleFinding, type StyleSeverity, TABLE_COUNT_ONLY, TITLE_FORMAT_RETIRED, TITLE_UNRESOLVABLE, TRANSLATION_OPTION_KEY_UNKNOWN, TRANSLATION_TARGET_UNKNOWN, type TranslationRefFinding, type TranslationRefSeverity, 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, extractHookBodyWriteSet, extractHookBodyWrites, validateActionBodyWrites, validateActionNameRefs, validateAiAgentAuthoring, validateAiSurfaceAffinity, validateAiToolReferences, validateApprovalApprovers, validateCapabilityReferences, validateChartBindings, validateDashboardActionRefs, validateFilterTokens, validateFlowNodeWrites, validateFlowTemplatePaths, validateFlowTriggerReadiness, validateFormLayout, validateHookBodyWrites, validateJsxPages, validateListViewMode, validateNavAccess, validateObjectReferences, validateOrgAxisRedLines, validatePageFieldBindings, validatePageSourceStyling, validateReactPageProps, validateReactPages, validateReadonlyFlowWrites, validateRecordTitle, validateReferenceIntegrity, validateResponsiveStyles, validateSearchableFields, validateSecurityPosture, validateSeedReplaySafety, validateSeedStateMachine, validateSemanticRoles, validateStackExpressions, validateTranslationReferences, validateViewContainers, validateVisibilityPredicates, validateWidgetBindings };
|