-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathindex.ts
More file actions
128 lines (115 loc) · 4.79 KB
/
Copy pathindex.ts
File metadata and controls
128 lines (115 loc) · 4.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
//
// @objectstack/lint — public API.
//
// Static, build-time validation over an ObjectStack metadata graph. Every rule
// is a pure `(stack) => Finding[]` function: no I/O, no runtime, no filesystem
// — it operates on an in-memory, schema-parsed stack object. Shared by the
// CLI's `os validate`/`compile` AND any other consumer (e.g. AI authoring) so
// hand-authored and generated apps are held to the same bar (ADR-0019).
//
// Dependency direction is one-way: lint → @objectstack/spec (the contract).
// It never depends on a runtime, and it is never bundled into a frontend.
export {
validateWidgetBindings,
WIDGET_DATASET_UNKNOWN,
WIDGET_DIMENSION_UNKNOWN,
WIDGET_MEASURE_UNKNOWN,
CHART_FIELD_UNKNOWN,
CHART_CONFIG_MISSING,
TABLE_COUNT_ONLY,
MEASURE_AGGREGATE_INCOHERENT,
DASHBOARD_FILTER_FIELD_UNKNOWN,
} from './validate-widget-bindings.js';
export type { WidgetBindingFinding, WidgetBindingSeverity } from './validate-widget-bindings.js';
export { validateStackExpressions } from './validate-expressions.js';
export type { ExprIssue } from './validate-expressions.js';
export { validateListViewMode, LIST_VIEW_FILTERS_IN_VIEWS_MODE } from './validate-list-view-mode.js';
export type { ListViewModeFinding, ListViewModeSeverity } from './validate-list-view-mode.js';
export {
validateFlowTriggerReadiness,
FLOW_TRIGGER_UNKNOWN_OBJECT,
FLOW_DRAFT_STATUS_AMBIGUOUS,
} from './validate-flow-trigger-readiness.js';
export type {
FlowTriggerReadinessFinding,
FlowTriggerReadinessSeverity,
} from './validate-flow-trigger-readiness.js';
export { validateViewContainers, VIEW_CONTAINER_SHAPE } from './validate-view-containers.js';
export type { ViewContainerFinding, ViewContainerSeverity } from './validate-view-containers.js';
export {
validateResponsiveStyles,
STYLE_NODE_MISSING_ID,
STYLE_CLASSNAME_TAILWIND,
STYLE_RESPONSIVE_NO_BASE,
STYLE_UNKNOWN_CSS_PROPERTY,
STYLE_UNKNOWN_TOKEN,
} from './validate-responsive-styles.js';
export type { StyleFinding, StyleSeverity } from './validate-responsive-styles.js';
export { validateJsxPages } from './validate-jsx-pages.js';
export type { JsxPageFinding, JsxPageSeverity } from './validate-jsx-pages.js';
export { validateReactPages } from './validate-react-pages.js';
export type { ReactPageFinding, ReactPageSeverity } from './validate-react-pages.js';
export { validateReactPageProps } from './validate-react-page-props.js';
export type { ReactPropFinding, ReactPropSeverity } from './validate-react-page-props.js';
export { validatePageSourceStyling, PAGE_SOURCE_CLASSNAME } from './validate-page-source-styling.js';
export type { SourceStyleFinding, SourceStyleSeverity } from './validate-page-source-styling.js';
export {
validateRecordTitle,
TITLE_FORMAT_RETIRED,
TITLE_UNRESOLVABLE,
} from './validate-record-title.js';
export type { RecordTitleFinding, RecordTitleSeverity } from './validate-record-title.js';
export {
validateSemanticRoles,
FIELD_GROUP_UNDECLARED,
FIELD_GROUP_EMPTY,
SEMANTIC_ROLE_FIELD_UNKNOWN,
} from './validate-semantic-roles.js';
export type { SemanticRoleFinding, SemanticRoleSeverity } from './validate-semantic-roles.js';
export {
validateFormLayout,
FORM_FIELD_UNKNOWN,
FORM_COLSPAN_ABSOLUTE,
} from './validate-form-layout.js';
export type { FormLayoutFinding, FormLayoutSeverity } from './validate-form-layout.js';
export {
validateVisibilityPredicates,
VISIBILITY_ALIAS_DEPRECATED,
VISIBILITY_ROOT_MISLAYERED,
} from './validate-visibility-predicates.js';
export type {
VisibilityFinding,
VisibilitySeverity,
VisibilityLayer,
VisibilityOptions,
} from './validate-visibility-predicates.js';
export {
validateCapabilityReferences,
CAPABILITY_REFERENCE_UNKNOWN,
} from './validate-capability-references.js';
export type { CapabilityRefFinding, CapabilityRefSeverity } from './validate-capability-references.js';
export {
validateApprovalApprovers,
APPROVAL_APPROVER_NOT_MEMBERSHIP_TIER,
APPROVAL_APPROVER_TYPE_DEPRECATED,
APPROVAL_APPROVER_TYPE_UNKNOWN,
APPROVAL_ESCALATION_REASSIGN_NO_TARGET,
} from './validate-approval-approvers.js';
export type { ApprovalApproverFinding, ApprovalApproverSeverity } from './validate-approval-approvers.js';
export {
validateSecurityPosture,
SECURITY_OWD_UNSET,
SECURITY_OWD_ALIAS,
SECURITY_EXTERNAL_WIDER,
SECURITY_WILDCARD_VAMA,
SECURITY_ANCHOR_HIGH_PRIVILEGE,
SECURITY_ROLE_WORD,
SECURITY_BOOK_AUDIENCE_UNKNOWN_SET,
SECURITY_PRIVATE_NO_READSCOPE,
SECURITY_MASTER_DETAIL_UNGRANTED,
SECURITY_GRANT_EXPIRED_AT_AUTHORING,
SECURITY_DELEGATION_MISSING_REASON,
} from './validate-security-posture.js';
export type { SecurityFinding, SecuritySeverity } from './validate-security-posture.js';
export { buildAccessMatrix, diffAccessMatrix } from './build-access-matrix.js';