@objectstack/spec 0.1.0 → 0.1.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/README.md +66 -125
- package/dist/ai/agent.zod.d.ts +164 -0
- package/dist/ai/agent.zod.d.ts.map +1 -0
- package/dist/ai/agent.zod.js +51 -0
- package/dist/data/dataset.zod.d.ts +60 -0
- package/dist/data/dataset.zod.d.ts.map +1 -0
- package/dist/data/dataset.zod.js +54 -0
- package/dist/data/field.zod.d.ts +170 -0
- package/dist/data/field.zod.d.ts.map +1 -0
- package/dist/data/field.zod.js +81 -0
- package/dist/data/flow.zod.d.ts +242 -0
- package/dist/data/flow.zod.d.ts.map +1 -0
- package/dist/data/flow.zod.js +77 -0
- package/dist/data/mapping.zod.d.ts +257 -0
- package/dist/data/mapping.zod.d.ts.map +1 -0
- package/dist/data/mapping.zod.js +65 -0
- package/dist/data/object.zod.d.ts +364 -0
- package/dist/data/object.zod.d.ts.map +1 -0
- package/dist/data/object.zod.js +54 -0
- package/dist/data/permission.zod.d.ts +163 -0
- package/dist/data/permission.zod.d.ts.map +1 -0
- package/dist/data/permission.zod.js +62 -0
- package/dist/data/query.zod.d.ts +89 -0
- package/dist/data/query.zod.d.ts.map +1 -0
- package/dist/data/query.zod.js +71 -0
- package/dist/data/sharing.zod.d.ts +63 -0
- package/dist/data/sharing.zod.d.ts.map +1 -0
- package/dist/data/sharing.zod.js +57 -0
- package/dist/data/validation.zod.d.ts +236 -0
- package/dist/data/validation.zod.d.ts.map +1 -0
- package/dist/data/validation.zod.js +59 -0
- package/dist/data/workflow.zod.d.ts +195 -0
- package/dist/data/workflow.zod.d.ts.map +1 -0
- package/dist/data/workflow.zod.js +64 -0
- package/dist/index.d.ts +33 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -5
- package/dist/system/api.zod.d.ts +168 -0
- package/dist/system/api.zod.d.ts.map +1 -0
- package/dist/system/api.zod.js +53 -0
- package/dist/system/constants/index.d.ts +11 -0
- package/dist/system/constants/index.d.ts.map +1 -0
- package/dist/system/constants/index.js +26 -0
- package/dist/system/constants/paths.d.ts +71 -0
- package/dist/system/constants/paths.d.ts.map +1 -0
- package/dist/system/constants/paths.js +65 -0
- package/dist/system/datasource.zod.d.ts +127 -0
- package/dist/system/datasource.zod.d.ts.map +1 -0
- package/dist/system/datasource.zod.js +62 -0
- package/dist/system/identity.zod.d.ts +204 -0
- package/dist/system/identity.zod.d.ts.map +1 -0
- package/dist/system/identity.zod.js +68 -0
- package/dist/system/license.zod.d.ts +110 -0
- package/dist/system/license.zod.d.ts.map +1 -0
- package/dist/system/license.zod.js +63 -0
- package/dist/system/manifest.zod.d.ts +126 -0
- package/dist/system/manifest.zod.d.ts.map +1 -0
- package/dist/system/manifest.zod.js +68 -0
- package/dist/system/policy.zod.d.ts +209 -0
- package/dist/system/policy.zod.d.ts.map +1 -0
- package/dist/system/policy.zod.js +54 -0
- package/dist/system/role.zod.d.ts +34 -0
- package/dist/system/role.zod.d.ts.map +1 -0
- package/dist/system/role.zod.js +25 -0
- package/dist/system/territory.zod.d.ts +91 -0
- package/dist/system/territory.zod.d.ts.map +1 -0
- package/dist/system/territory.zod.js +64 -0
- package/dist/system/translation.zod.d.ts +171 -0
- package/dist/system/translation.zod.d.ts.map +1 -0
- package/dist/system/translation.zod.js +34 -0
- package/dist/system/types/index.d.ts +7 -0
- package/dist/system/types/index.d.ts.map +1 -0
- package/dist/system/types/index.js +22 -0
- package/dist/system/types/plugin.d.ts +113 -0
- package/dist/system/types/plugin.d.ts.map +1 -0
- package/dist/system/types/plugin.js +6 -0
- package/dist/system/webhook.zod.d.ts +106 -0
- package/dist/system/webhook.zod.d.ts.map +1 -0
- package/dist/system/webhook.zod.js +56 -0
- package/dist/ui/action.zod.d.ts +148 -0
- package/dist/ui/action.zod.d.ts.map +1 -0
- package/dist/ui/action.zod.js +48 -0
- package/dist/ui/app.zod.d.ts +299 -0
- package/dist/ui/app.zod.d.ts.map +1 -0
- package/dist/ui/app.zod.js +127 -0
- package/dist/ui/dashboard.zod.d.ts +207 -0
- package/dist/ui/dashboard.zod.d.ts.map +1 -0
- package/dist/ui/dashboard.zod.js +66 -0
- package/dist/ui/page.zod.d.ts +187 -0
- package/dist/ui/page.zod.d.ts.map +1 -0
- package/dist/ui/page.zod.js +48 -0
- package/dist/ui/report.zod.d.ts +224 -0
- package/dist/ui/report.zod.d.ts.map +1 -0
- package/dist/ui/report.zod.js +68 -0
- package/dist/ui/view.zod.d.ts +887 -0
- package/dist/ui/view.zod.d.ts.map +1 -0
- package/dist/ui/view.zod.js +83 -0
- package/json-schema/AIKnowledge.json +30 -0
- package/json-schema/AIModelConfig.json +41 -0
- package/json-schema/AITool.json +33 -0
- package/json-schema/Action.json +156 -0
- package/json-schema/ActionParam.json +76 -0
- package/json-schema/Agent.json +140 -0
- package/json-schema/ApiEndpoint.json +162 -0
- package/json-schema/ApiMapping.json +28 -0
- package/json-schema/App.json +286 -0
- package/json-schema/AppBranding.json +24 -0
- package/json-schema/AuditPolicy.json +31 -0
- package/json-schema/AuthProtocol.json +17 -0
- package/json-schema/AuthProvider.json +171 -0
- package/json-schema/CalendarConfig.json +28 -0
- package/json-schema/ChartType.json +19 -0
- package/json-schema/Dashboard.json +117 -0
- package/json-schema/DashboardNavItem.json +42 -0
- package/json-schema/DashboardWidget.json +89 -0
- package/json-schema/Dataset.json +63 -0
- package/json-schema/DatasetMode.json +16 -0
- package/json-schema/Datasource.json +93 -0
- package/json-schema/DatasourceCapabilities.json +36 -0
- package/json-schema/DriverType.json +27 -0
- package/json-schema/EmailAlertAction.json +37 -0
- package/json-schema/Feature.json +51 -0
- package/json-schema/Field.json +219 -0
- package/json-schema/FieldMapping.json +83 -0
- package/json-schema/FieldNode.json +32 -0
- package/json-schema/FieldPermission.json +22 -0
- package/json-schema/FieldType.json +36 -0
- package/json-schema/FieldUpdateAction.json +32 -0
- package/json-schema/FilterNode.json +52 -0
- package/json-schema/FilterOperator.json +26 -0
- package/json-schema/Flow.json +186 -0
- package/json-schema/FlowEdge.json +37 -0
- package/json-schema/FlowNode.json +65 -0
- package/json-schema/FlowNodeAction.json +24 -0
- package/json-schema/FlowVariable.json +34 -0
- package/json-schema/FormSection.json +42 -0
- package/json-schema/FormView.json +99 -0
- package/json-schema/FormatValidation.json +59 -0
- package/json-schema/GanttConfig.json +32 -0
- package/json-schema/GroupNavItem.json +42 -0
- package/json-schema/HttpMethod.json +16 -0
- package/json-schema/Index.json +30 -0
- package/json-schema/KanbanConfig.json +31 -0
- package/json-schema/LDAPConfig.json +39 -0
- package/json-schema/License.json +57 -0
- package/json-schema/ListView.json +153 -0
- package/json-schema/Locale.json +10 -0
- package/json-schema/LogicOperator.json +14 -0
- package/json-schema/Manifest.json +90 -0
- package/json-schema/Mapping.json +270 -0
- package/json-schema/MenuItem.json +28 -0
- package/json-schema/MetricType.json +14 -0
- package/json-schema/NavigationItem.json +214 -0
- package/json-schema/NetworkPolicy.json +31 -0
- package/json-schema/OIDCConfig.json +46 -0
- package/json-schema/OWDModel.json +14 -0
- package/json-schema/Object.json +331 -0
- package/json-schema/ObjectCapabilities.json +36 -0
- package/json-schema/ObjectNavItem.json +46 -0
- package/json-schema/ObjectPermission.json +42 -0
- package/json-schema/Page.json +117 -0
- package/json-schema/PageComponent.json +36 -0
- package/json-schema/PageNavItem.json +47 -0
- package/json-schema/PageRegion.json +63 -0
- package/json-schema/PasswordPolicy.json +41 -0
- package/json-schema/PermissionSet.json +96 -0
- package/json-schema/Plan.json +53 -0
- package/json-schema/Policy.json +138 -0
- package/json-schema/Query.json +128 -0
- package/json-schema/RateLimit.json +26 -0
- package/json-schema/Report.json +219 -0
- package/json-schema/ReportChart.json +45 -0
- package/json-schema/ReportColumn.json +35 -0
- package/json-schema/ReportGrouping.json +38 -0
- package/json-schema/ReportType.json +15 -0
- package/json-schema/Role.json +32 -0
- package/json-schema/SAMLConfig.json +44 -0
- package/json-schema/ScriptValidation.json +48 -0
- package/json-schema/SelectOption.json +32 -0
- package/json-schema/SessionPolicy.json +27 -0
- package/json-schema/SharingLevel.json +13 -0
- package/json-schema/SharingRule.json +58 -0
- package/json-schema/SharingRuleType.json +15 -0
- package/json-schema/SortNode.json +26 -0
- package/json-schema/StateMachineValidation.json +59 -0
- package/json-schema/Territory.json +77 -0
- package/json-schema/TerritoryModel.json +34 -0
- package/json-schema/TerritoryType.json +15 -0
- package/json-schema/TransformType.json +18 -0
- package/json-schema/TranslationBundle.json +78 -0
- package/json-schema/TranslationData.json +75 -0
- package/json-schema/UniquenessValidation.json +59 -0
- package/json-schema/UrlNavItem.json +51 -0
- package/json-schema/ValidationRule.json +211 -0
- package/json-schema/View.json +500 -0
- package/json-schema/Webhook.json +88 -0
- package/json-schema/WebhookReceiver.json +66 -0
- package/json-schema/WebhookTriggerType.json +16 -0
- package/json-schema/WorkflowAction.json +84 -0
- package/json-schema/WorkflowRule.json +128 -0
- package/json-schema/WorkflowTriggerType.json +16 -0
- package/package.json +28 -19
- package/dist/examples.d.ts +0 -28
- package/dist/examples.d.ts.map +0 -1
- package/dist/examples.js +0 -250
- package/dist/types/index.d.ts +0 -9
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/meta/field-type.d.ts +0 -54
- package/dist/types/meta/field-type.d.ts.map +0 -1
- package/dist/types/meta/field-type.js +0 -42
- package/dist/types/meta/index.d.ts +0 -13
- package/dist/types/meta/index.d.ts.map +0 -1
- package/dist/types/meta/index.js +0 -12
- package/dist/types/meta/object-entity.d.ts +0 -246
- package/dist/types/meta/object-entity.d.ts.map +0 -1
- package/dist/types/meta/object-entity.js +0 -9
- package/dist/types/meta/object-field.d.ts +0 -199
- package/dist/types/meta/object-field.d.ts.map +0 -1
- package/dist/types/meta/object-field.js +0 -9
- package/dist/types/meta/object-view.d.ts +0 -430
- package/dist/types/meta/object-view.d.ts.map +0 -1
- package/dist/types/meta/object-view.js +0 -9
- package/src/examples.ts +0 -257
- package/src/index.ts +0 -10
- package/src/types/index.ts +0 -9
- package/src/types/meta/field-type.ts +0 -91
- package/src/types/meta/index.ts +0 -13
- package/src/types/meta/object-entity.ts +0 -265
- package/src/types/meta/object-field.ts +0 -218
- package/src/types/meta/object-view.ts +0 -475
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DashboardSchema = exports.DashboardWidgetSchema = exports.ChartType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Chart Type Enum
|
|
7
|
+
*/
|
|
8
|
+
exports.ChartType = zod_1.z.enum([
|
|
9
|
+
'metric', // Single big number
|
|
10
|
+
'bar', // Bar chart
|
|
11
|
+
'line', // Line chart
|
|
12
|
+
'pie', // Pie/Donut chart
|
|
13
|
+
'donut', // Donut chart
|
|
14
|
+
'funnel', // Funnel chart
|
|
15
|
+
'table', // Data table
|
|
16
|
+
'text' // Rich text / Markdown
|
|
17
|
+
]);
|
|
18
|
+
/**
|
|
19
|
+
* Dashboard Widget Schema
|
|
20
|
+
* A single component on the dashboard grid.
|
|
21
|
+
*/
|
|
22
|
+
exports.DashboardWidgetSchema = zod_1.z.object({
|
|
23
|
+
/** Widget Title */
|
|
24
|
+
title: zod_1.z.string().optional().describe('Widget title'),
|
|
25
|
+
/** Visualization Type */
|
|
26
|
+
type: exports.ChartType.default('metric').describe('Visualization type'),
|
|
27
|
+
/** Data Source Object */
|
|
28
|
+
object: zod_1.z.string().optional().describe('Data source object name'),
|
|
29
|
+
/** Data Filter (ObjectQL JSON) */
|
|
30
|
+
filter: zod_1.z.any().optional().describe('Data filter criteria'),
|
|
31
|
+
/** Category Field (X-Axis / Group By) */
|
|
32
|
+
categoryField: zod_1.z.string().optional().describe('Field for grouping (X-Axis)'),
|
|
33
|
+
/** Value Field (Y-Axis) */
|
|
34
|
+
valueField: zod_1.z.string().optional().describe('Field for values (Y-Axis)'),
|
|
35
|
+
/** Aggregate operation */
|
|
36
|
+
aggregate: zod_1.z.enum(['count', 'sum', 'avg', 'min', 'max']).optional().default('count').describe('Aggregate function'),
|
|
37
|
+
/**
|
|
38
|
+
* Layout Position (React-Grid-Layout style)
|
|
39
|
+
* x: column (0-11)
|
|
40
|
+
* y: row
|
|
41
|
+
* w: width (1-12)
|
|
42
|
+
* h: height
|
|
43
|
+
*/
|
|
44
|
+
layout: zod_1.z.object({
|
|
45
|
+
x: zod_1.z.number(),
|
|
46
|
+
y: zod_1.z.number(),
|
|
47
|
+
w: zod_1.z.number(),
|
|
48
|
+
h: zod_1.z.number(),
|
|
49
|
+
}).describe('Grid layout position'),
|
|
50
|
+
/** Widget specific options (colors, legend, etc.) */
|
|
51
|
+
options: zod_1.z.any().optional().describe('Widget specific configuration'),
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* Dashboard Schema
|
|
55
|
+
* Represents a page containing multiple visualizations.
|
|
56
|
+
*/
|
|
57
|
+
exports.DashboardSchema = zod_1.z.object({
|
|
58
|
+
/** Machine name */
|
|
59
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Dashboard unique name'),
|
|
60
|
+
/** Display label */
|
|
61
|
+
label: zod_1.z.string().describe('Dashboard label'),
|
|
62
|
+
/** Description */
|
|
63
|
+
description: zod_1.z.string().optional().describe('Dashboard description'),
|
|
64
|
+
/** Collection of widgets */
|
|
65
|
+
widgets: zod_1.z.array(exports.DashboardWidgetSchema).describe('Widgets to display'),
|
|
66
|
+
});
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Page Region Schema
|
|
4
|
+
* A named region in the template where components are dropped.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PageRegionSchema: z.ZodObject<{
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
width: z.ZodOptional<z.ZodEnum<["small", "medium", "large", "full"]>>;
|
|
9
|
+
components: z.ZodArray<z.ZodLazy<z.ZodObject<{
|
|
10
|
+
/** Definition */
|
|
11
|
+
type: z.ZodString;
|
|
12
|
+
id: z.ZodOptional<z.ZodString>;
|
|
13
|
+
/** Configuration */
|
|
14
|
+
label: z.ZodOptional<z.ZodString>;
|
|
15
|
+
properties: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
16
|
+
/** Visibility Rule */
|
|
17
|
+
visibility: z.ZodOptional<z.ZodString>;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
type: string;
|
|
20
|
+
properties: Record<string, any>;
|
|
21
|
+
label?: string | undefined;
|
|
22
|
+
id?: string | undefined;
|
|
23
|
+
visibility?: string | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
type: string;
|
|
26
|
+
properties: Record<string, any>;
|
|
27
|
+
label?: string | undefined;
|
|
28
|
+
id?: string | undefined;
|
|
29
|
+
visibility?: string | undefined;
|
|
30
|
+
}>>, "many">;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
name: string;
|
|
33
|
+
components: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: Record<string, any>;
|
|
36
|
+
label?: string | undefined;
|
|
37
|
+
id?: string | undefined;
|
|
38
|
+
visibility?: string | undefined;
|
|
39
|
+
}[];
|
|
40
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
name: string;
|
|
43
|
+
components: {
|
|
44
|
+
type: string;
|
|
45
|
+
properties: Record<string, any>;
|
|
46
|
+
label?: string | undefined;
|
|
47
|
+
id?: string | undefined;
|
|
48
|
+
visibility?: string | undefined;
|
|
49
|
+
}[];
|
|
50
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Page Component Schema
|
|
54
|
+
* A configured instance of a UI component.
|
|
55
|
+
*/
|
|
56
|
+
export declare const PageComponentSchema: z.ZodObject<{
|
|
57
|
+
/** Definition */
|
|
58
|
+
type: z.ZodString;
|
|
59
|
+
id: z.ZodOptional<z.ZodString>;
|
|
60
|
+
/** Configuration */
|
|
61
|
+
label: z.ZodOptional<z.ZodString>;
|
|
62
|
+
properties: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
63
|
+
/** Visibility Rule */
|
|
64
|
+
visibility: z.ZodOptional<z.ZodString>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
type: string;
|
|
67
|
+
properties: Record<string, any>;
|
|
68
|
+
label?: string | undefined;
|
|
69
|
+
id?: string | undefined;
|
|
70
|
+
visibility?: string | undefined;
|
|
71
|
+
}, {
|
|
72
|
+
type: string;
|
|
73
|
+
properties: Record<string, any>;
|
|
74
|
+
label?: string | undefined;
|
|
75
|
+
id?: string | undefined;
|
|
76
|
+
visibility?: string | undefined;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Page Schema
|
|
80
|
+
* Defines a composition of components for a specific context (Record, Home, App).
|
|
81
|
+
* Compare to Salesforce FlexiPage.
|
|
82
|
+
*/
|
|
83
|
+
export declare const PageSchema: z.ZodObject<{
|
|
84
|
+
name: z.ZodString;
|
|
85
|
+
label: z.ZodString;
|
|
86
|
+
description: z.ZodOptional<z.ZodString>;
|
|
87
|
+
/** Page Type */
|
|
88
|
+
type: z.ZodDefault<z.ZodEnum<["record", "home", "app", "utility"]>>;
|
|
89
|
+
/** Context */
|
|
90
|
+
object: z.ZodOptional<z.ZodString>;
|
|
91
|
+
/** Layout Template */
|
|
92
|
+
template: z.ZodDefault<z.ZodString>;
|
|
93
|
+
/** Regions & Content */
|
|
94
|
+
regions: z.ZodArray<z.ZodObject<{
|
|
95
|
+
name: z.ZodString;
|
|
96
|
+
width: z.ZodOptional<z.ZodEnum<["small", "medium", "large", "full"]>>;
|
|
97
|
+
components: z.ZodArray<z.ZodLazy<z.ZodObject<{
|
|
98
|
+
/** Definition */
|
|
99
|
+
type: z.ZodString;
|
|
100
|
+
id: z.ZodOptional<z.ZodString>;
|
|
101
|
+
/** Configuration */
|
|
102
|
+
label: z.ZodOptional<z.ZodString>;
|
|
103
|
+
properties: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
104
|
+
/** Visibility Rule */
|
|
105
|
+
visibility: z.ZodOptional<z.ZodString>;
|
|
106
|
+
}, "strip", z.ZodTypeAny, {
|
|
107
|
+
type: string;
|
|
108
|
+
properties: Record<string, any>;
|
|
109
|
+
label?: string | undefined;
|
|
110
|
+
id?: string | undefined;
|
|
111
|
+
visibility?: string | undefined;
|
|
112
|
+
}, {
|
|
113
|
+
type: string;
|
|
114
|
+
properties: Record<string, any>;
|
|
115
|
+
label?: string | undefined;
|
|
116
|
+
id?: string | undefined;
|
|
117
|
+
visibility?: string | undefined;
|
|
118
|
+
}>>, "many">;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
name: string;
|
|
121
|
+
components: {
|
|
122
|
+
type: string;
|
|
123
|
+
properties: Record<string, any>;
|
|
124
|
+
label?: string | undefined;
|
|
125
|
+
id?: string | undefined;
|
|
126
|
+
visibility?: string | undefined;
|
|
127
|
+
}[];
|
|
128
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
129
|
+
}, {
|
|
130
|
+
name: string;
|
|
131
|
+
components: {
|
|
132
|
+
type: string;
|
|
133
|
+
properties: Record<string, any>;
|
|
134
|
+
label?: string | undefined;
|
|
135
|
+
id?: string | undefined;
|
|
136
|
+
visibility?: string | undefined;
|
|
137
|
+
}[];
|
|
138
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
139
|
+
}>, "many">;
|
|
140
|
+
/** Activation */
|
|
141
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
142
|
+
assignedProfiles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
143
|
+
}, "strip", z.ZodTypeAny, {
|
|
144
|
+
type: "record" | "home" | "app" | "utility";
|
|
145
|
+
label: string;
|
|
146
|
+
name: string;
|
|
147
|
+
template: string;
|
|
148
|
+
isDefault: boolean;
|
|
149
|
+
regions: {
|
|
150
|
+
name: string;
|
|
151
|
+
components: {
|
|
152
|
+
type: string;
|
|
153
|
+
properties: Record<string, any>;
|
|
154
|
+
label?: string | undefined;
|
|
155
|
+
id?: string | undefined;
|
|
156
|
+
visibility?: string | undefined;
|
|
157
|
+
}[];
|
|
158
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
159
|
+
}[];
|
|
160
|
+
object?: string | undefined;
|
|
161
|
+
description?: string | undefined;
|
|
162
|
+
assignedProfiles?: string[] | undefined;
|
|
163
|
+
}, {
|
|
164
|
+
label: string;
|
|
165
|
+
name: string;
|
|
166
|
+
regions: {
|
|
167
|
+
name: string;
|
|
168
|
+
components: {
|
|
169
|
+
type: string;
|
|
170
|
+
properties: Record<string, any>;
|
|
171
|
+
label?: string | undefined;
|
|
172
|
+
id?: string | undefined;
|
|
173
|
+
visibility?: string | undefined;
|
|
174
|
+
}[];
|
|
175
|
+
width?: "small" | "medium" | "large" | "full" | undefined;
|
|
176
|
+
}[];
|
|
177
|
+
object?: string | undefined;
|
|
178
|
+
type?: "record" | "home" | "app" | "utility" | undefined;
|
|
179
|
+
description?: string | undefined;
|
|
180
|
+
template?: string | undefined;
|
|
181
|
+
isDefault?: boolean | undefined;
|
|
182
|
+
assignedProfiles?: string[] | undefined;
|
|
183
|
+
}>;
|
|
184
|
+
export type Page = z.infer<typeof PageSchema>;
|
|
185
|
+
export type PageComponent = z.infer<typeof PageComponentSchema>;
|
|
186
|
+
export type PageRegion = z.infer<typeof PageRegionSchema>;
|
|
187
|
+
//# sourceMappingURL=page.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.zod.d.ts","sourceRoot":"","sources":["../../src/ui/page.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;QAW3B,iBAAiB;;;QAIjB,oBAAoB;;;QAIpB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAftB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,iBAAiB;;;IAIjB,oBAAoB;;;IAIpB,sBAAsB;;;;;;;;;;;;;;EAEtB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;IAKrB,gBAAgB;;IAGhB,cAAc;;IAGd,sBAAsB;;IAGtB,wBAAwB;;;;;YA/BxB,iBAAiB;;;YAIjB,oBAAoB;;;YAIpB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BtB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PageSchema = exports.PageComponentSchema = exports.PageRegionSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Page Region Schema
|
|
7
|
+
* A named region in the template where components are dropped.
|
|
8
|
+
*/
|
|
9
|
+
exports.PageRegionSchema = zod_1.z.object({
|
|
10
|
+
name: zod_1.z.string().describe('Region name (e.g. "sidebar", "main", "header")'),
|
|
11
|
+
width: zod_1.z.enum(['small', 'medium', 'large', 'full']).optional(),
|
|
12
|
+
components: zod_1.z.array(zod_1.z.lazy(() => exports.PageComponentSchema)).describe('Components in this region')
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Page Component Schema
|
|
16
|
+
* A configured instance of a UI component.
|
|
17
|
+
*/
|
|
18
|
+
exports.PageComponentSchema = zod_1.z.object({
|
|
19
|
+
/** Definition */
|
|
20
|
+
type: zod_1.z.string().describe('Component Type (e.g. "steedos-labs.related-list")'),
|
|
21
|
+
id: zod_1.z.string().optional().describe('Unique instance ID'),
|
|
22
|
+
/** Configuration */
|
|
23
|
+
label: zod_1.z.string().optional(),
|
|
24
|
+
properties: zod_1.z.record(zod_1.z.any()).describe('Component props passed to the widget'),
|
|
25
|
+
/** Visibility Rule */
|
|
26
|
+
visibility: zod_1.z.string().optional().describe('Visibility filter/formula')
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Page Schema
|
|
30
|
+
* Defines a composition of components for a specific context (Record, Home, App).
|
|
31
|
+
* Compare to Salesforce FlexiPage.
|
|
32
|
+
*/
|
|
33
|
+
exports.PageSchema = zod_1.z.object({
|
|
34
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/),
|
|
35
|
+
label: zod_1.z.string(),
|
|
36
|
+
description: zod_1.z.string().optional(),
|
|
37
|
+
/** Page Type */
|
|
38
|
+
type: zod_1.z.enum(['record', 'home', 'app', 'utility']).default('record'),
|
|
39
|
+
/** Context */
|
|
40
|
+
object: zod_1.z.string().optional().describe('Bound object (for Record pages)'),
|
|
41
|
+
/** Layout Template */
|
|
42
|
+
template: zod_1.z.string().default('default').describe('Layout template name (e.g. "header-sidebar-main")'),
|
|
43
|
+
/** Regions & Content */
|
|
44
|
+
regions: zod_1.z.array(exports.PageRegionSchema).describe('Defined regions with components'),
|
|
45
|
+
/** Activation */
|
|
46
|
+
isDefault: zod_1.z.boolean().default(false),
|
|
47
|
+
assignedProfiles: zod_1.z.array(zod_1.z.string()).optional()
|
|
48
|
+
});
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Report Type Enum
|
|
4
|
+
*/
|
|
5
|
+
export declare const ReportType: z.ZodEnum<["tabular", "summary", "matrix", "joined"]>;
|
|
6
|
+
/**
|
|
7
|
+
* Report Column Schema
|
|
8
|
+
*/
|
|
9
|
+
export declare const ReportColumnSchema: z.ZodObject<{
|
|
10
|
+
field: z.ZodString;
|
|
11
|
+
label: z.ZodOptional<z.ZodString>;
|
|
12
|
+
aggregate: z.ZodOptional<z.ZodEnum<["sum", "avg", "max", "min", "count", "unique"]>>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
field: string;
|
|
15
|
+
label?: string | undefined;
|
|
16
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
field: string;
|
|
19
|
+
label?: string | undefined;
|
|
20
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Report Grouping Schema
|
|
24
|
+
*/
|
|
25
|
+
export declare const ReportGroupingSchema: z.ZodObject<{
|
|
26
|
+
field: z.ZodString;
|
|
27
|
+
sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
28
|
+
dateGranularity: z.ZodOptional<z.ZodEnum<["day", "week", "month", "quarter", "year"]>>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
field: string;
|
|
31
|
+
sortOrder: "asc" | "desc";
|
|
32
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
field: string;
|
|
35
|
+
sortOrder?: "asc" | "desc" | undefined;
|
|
36
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Report Chart Schema
|
|
40
|
+
* Embedded visualization configuration.
|
|
41
|
+
*/
|
|
42
|
+
export declare const ReportChartSchema: z.ZodObject<{
|
|
43
|
+
type: z.ZodEnum<["bar", "column", "line", "pie", "donut", "scatter", "funnel"]>;
|
|
44
|
+
title: z.ZodOptional<z.ZodString>;
|
|
45
|
+
showLegend: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
xAxis: z.ZodString;
|
|
47
|
+
yAxis: z.ZodString;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
50
|
+
showLegend: boolean;
|
|
51
|
+
xAxis: string;
|
|
52
|
+
yAxis: string;
|
|
53
|
+
title?: string | undefined;
|
|
54
|
+
}, {
|
|
55
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
56
|
+
xAxis: string;
|
|
57
|
+
yAxis: string;
|
|
58
|
+
title?: string | undefined;
|
|
59
|
+
showLegend?: boolean | undefined;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Report Schema
|
|
63
|
+
* Deep data analysis definition.
|
|
64
|
+
*/
|
|
65
|
+
export declare const ReportSchema: z.ZodObject<{
|
|
66
|
+
/** Identity */
|
|
67
|
+
name: z.ZodString;
|
|
68
|
+
label: z.ZodString;
|
|
69
|
+
description: z.ZodOptional<z.ZodString>;
|
|
70
|
+
/** Data Source */
|
|
71
|
+
objectName: z.ZodString;
|
|
72
|
+
/** Report Configuration */
|
|
73
|
+
type: z.ZodDefault<z.ZodEnum<["tabular", "summary", "matrix", "joined"]>>;
|
|
74
|
+
columns: z.ZodArray<z.ZodObject<{
|
|
75
|
+
field: z.ZodString;
|
|
76
|
+
label: z.ZodOptional<z.ZodString>;
|
|
77
|
+
aggregate: z.ZodOptional<z.ZodEnum<["sum", "avg", "max", "min", "count", "unique"]>>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
field: string;
|
|
80
|
+
label?: string | undefined;
|
|
81
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
82
|
+
}, {
|
|
83
|
+
field: string;
|
|
84
|
+
label?: string | undefined;
|
|
85
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
86
|
+
}>, "many">;
|
|
87
|
+
/** Grouping (for Summary/Matrix) */
|
|
88
|
+
groupingsDown: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
89
|
+
field: z.ZodString;
|
|
90
|
+
sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
91
|
+
dateGranularity: z.ZodOptional<z.ZodEnum<["day", "week", "month", "quarter", "year"]>>;
|
|
92
|
+
}, "strip", z.ZodTypeAny, {
|
|
93
|
+
field: string;
|
|
94
|
+
sortOrder: "asc" | "desc";
|
|
95
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
96
|
+
}, {
|
|
97
|
+
field: string;
|
|
98
|
+
sortOrder?: "asc" | "desc" | undefined;
|
|
99
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
100
|
+
}>, "many">>;
|
|
101
|
+
groupingsAcross: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
102
|
+
field: z.ZodString;
|
|
103
|
+
sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
104
|
+
dateGranularity: z.ZodOptional<z.ZodEnum<["day", "week", "month", "quarter", "year"]>>;
|
|
105
|
+
}, "strip", z.ZodTypeAny, {
|
|
106
|
+
field: string;
|
|
107
|
+
sortOrder: "asc" | "desc";
|
|
108
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
109
|
+
}, {
|
|
110
|
+
field: string;
|
|
111
|
+
sortOrder?: "asc" | "desc" | undefined;
|
|
112
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
113
|
+
}>, "many">>;
|
|
114
|
+
/** Filtering */
|
|
115
|
+
filter: z.ZodOptional<z.ZodString>;
|
|
116
|
+
filterItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
117
|
+
id: z.ZodNumber;
|
|
118
|
+
field: z.ZodString;
|
|
119
|
+
operator: z.ZodString;
|
|
120
|
+
value: z.ZodAny;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
field: string;
|
|
123
|
+
id: number;
|
|
124
|
+
operator: string;
|
|
125
|
+
value?: any;
|
|
126
|
+
}, {
|
|
127
|
+
field: string;
|
|
128
|
+
id: number;
|
|
129
|
+
operator: string;
|
|
130
|
+
value?: any;
|
|
131
|
+
}>, "many">>;
|
|
132
|
+
/** Visualization */
|
|
133
|
+
chart: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
type: z.ZodEnum<["bar", "column", "line", "pie", "donut", "scatter", "funnel"]>;
|
|
135
|
+
title: z.ZodOptional<z.ZodString>;
|
|
136
|
+
showLegend: z.ZodDefault<z.ZodBoolean>;
|
|
137
|
+
xAxis: z.ZodString;
|
|
138
|
+
yAxis: z.ZodString;
|
|
139
|
+
}, "strip", z.ZodTypeAny, {
|
|
140
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
141
|
+
showLegend: boolean;
|
|
142
|
+
xAxis: string;
|
|
143
|
+
yAxis: string;
|
|
144
|
+
title?: string | undefined;
|
|
145
|
+
}, {
|
|
146
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
147
|
+
xAxis: string;
|
|
148
|
+
yAxis: string;
|
|
149
|
+
title?: string | undefined;
|
|
150
|
+
showLegend?: boolean | undefined;
|
|
151
|
+
}>>;
|
|
152
|
+
}, "strip", z.ZodTypeAny, {
|
|
153
|
+
type: "summary" | "tabular" | "matrix" | "joined";
|
|
154
|
+
label: string;
|
|
155
|
+
name: string;
|
|
156
|
+
objectName: string;
|
|
157
|
+
columns: {
|
|
158
|
+
field: string;
|
|
159
|
+
label?: string | undefined;
|
|
160
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
161
|
+
}[];
|
|
162
|
+
filter?: string | undefined;
|
|
163
|
+
description?: string | undefined;
|
|
164
|
+
groupingsDown?: {
|
|
165
|
+
field: string;
|
|
166
|
+
sortOrder: "asc" | "desc";
|
|
167
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
168
|
+
}[] | undefined;
|
|
169
|
+
groupingsAcross?: {
|
|
170
|
+
field: string;
|
|
171
|
+
sortOrder: "asc" | "desc";
|
|
172
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
173
|
+
}[] | undefined;
|
|
174
|
+
filterItems?: {
|
|
175
|
+
field: string;
|
|
176
|
+
id: number;
|
|
177
|
+
operator: string;
|
|
178
|
+
value?: any;
|
|
179
|
+
}[] | undefined;
|
|
180
|
+
chart?: {
|
|
181
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
182
|
+
showLegend: boolean;
|
|
183
|
+
xAxis: string;
|
|
184
|
+
yAxis: string;
|
|
185
|
+
title?: string | undefined;
|
|
186
|
+
} | undefined;
|
|
187
|
+
}, {
|
|
188
|
+
label: string;
|
|
189
|
+
name: string;
|
|
190
|
+
objectName: string;
|
|
191
|
+
columns: {
|
|
192
|
+
field: string;
|
|
193
|
+
label?: string | undefined;
|
|
194
|
+
aggregate?: "unique" | "min" | "max" | "count" | "sum" | "avg" | undefined;
|
|
195
|
+
}[];
|
|
196
|
+
filter?: string | undefined;
|
|
197
|
+
type?: "summary" | "tabular" | "matrix" | "joined" | undefined;
|
|
198
|
+
description?: string | undefined;
|
|
199
|
+
groupingsDown?: {
|
|
200
|
+
field: string;
|
|
201
|
+
sortOrder?: "asc" | "desc" | undefined;
|
|
202
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
203
|
+
}[] | undefined;
|
|
204
|
+
groupingsAcross?: {
|
|
205
|
+
field: string;
|
|
206
|
+
sortOrder?: "asc" | "desc" | undefined;
|
|
207
|
+
dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
208
|
+
}[] | undefined;
|
|
209
|
+
filterItems?: {
|
|
210
|
+
field: string;
|
|
211
|
+
id: number;
|
|
212
|
+
operator: string;
|
|
213
|
+
value?: any;
|
|
214
|
+
}[] | undefined;
|
|
215
|
+
chart?: {
|
|
216
|
+
type: "bar" | "line" | "pie" | "donut" | "funnel" | "column" | "scatter";
|
|
217
|
+
xAxis: string;
|
|
218
|
+
yAxis: string;
|
|
219
|
+
title?: string | undefined;
|
|
220
|
+
showLegend?: boolean | undefined;
|
|
221
|
+
} | undefined;
|
|
222
|
+
}>;
|
|
223
|
+
export type Report = z.infer<typeof ReportSchema>;
|
|
224
|
+
//# sourceMappingURL=report.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.zod.d.ts","sourceRoot":"","sources":["../../src/ui/report.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,UAAU,uDAKrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;IACvB,eAAe;;;;IAKf,kBAAkB;;IAGlB,2BAA2B;;;;;;;;;;;;;;;IAK3B,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIpC,gBAAgB;;;;;;;;;;;;;;;;;;IAShB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReportSchema = exports.ReportChartSchema = exports.ReportGroupingSchema = exports.ReportColumnSchema = exports.ReportType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Report Type Enum
|
|
7
|
+
*/
|
|
8
|
+
exports.ReportType = zod_1.z.enum([
|
|
9
|
+
'tabular', // Simple list
|
|
10
|
+
'summary', // Grouped by row
|
|
11
|
+
'matrix', // Grouped by row and column
|
|
12
|
+
'joined' // Joined multiple blocks
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Report Column Schema
|
|
16
|
+
*/
|
|
17
|
+
exports.ReportColumnSchema = zod_1.z.object({
|
|
18
|
+
field: zod_1.z.string().describe('Field name'),
|
|
19
|
+
label: zod_1.z.string().optional().describe('Override label'),
|
|
20
|
+
aggregate: zod_1.z.enum(['sum', 'avg', 'max', 'min', 'count', 'unique']).optional().describe('Aggregation function'),
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Report Grouping Schema
|
|
24
|
+
*/
|
|
25
|
+
exports.ReportGroupingSchema = zod_1.z.object({
|
|
26
|
+
field: zod_1.z.string().describe('Field to group by'),
|
|
27
|
+
sortOrder: zod_1.z.enum(['asc', 'desc']).default('asc'),
|
|
28
|
+
dateGranularity: zod_1.z.enum(['day', 'week', 'month', 'quarter', 'year']).optional().describe('For date fields'),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Report Chart Schema
|
|
32
|
+
* Embedded visualization configuration.
|
|
33
|
+
*/
|
|
34
|
+
exports.ReportChartSchema = zod_1.z.object({
|
|
35
|
+
type: zod_1.z.enum(['bar', 'column', 'line', 'pie', 'donut', 'scatter', 'funnel']).describe('Chart type'),
|
|
36
|
+
title: zod_1.z.string().optional(),
|
|
37
|
+
showLegend: zod_1.z.boolean().default(true),
|
|
38
|
+
xAxis: zod_1.z.string().describe('Grouping field for X-Axis'),
|
|
39
|
+
yAxis: zod_1.z.string().describe('Summary field for Y-Axis'),
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* Report Schema
|
|
43
|
+
* Deep data analysis definition.
|
|
44
|
+
*/
|
|
45
|
+
exports.ReportSchema = zod_1.z.object({
|
|
46
|
+
/** Identity */
|
|
47
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Report unique name'),
|
|
48
|
+
label: zod_1.z.string().describe('Report label'),
|
|
49
|
+
description: zod_1.z.string().optional(),
|
|
50
|
+
/** Data Source */
|
|
51
|
+
objectName: zod_1.z.string().describe('Primary object'),
|
|
52
|
+
/** Report Configuration */
|
|
53
|
+
type: exports.ReportType.default('tabular').describe('Report format type'),
|
|
54
|
+
columns: zod_1.z.array(exports.ReportColumnSchema).describe('Columns to display'),
|
|
55
|
+
/** Grouping (for Summary/Matrix) */
|
|
56
|
+
groupingsDown: zod_1.z.array(exports.ReportGroupingSchema).optional().describe('Row groupings'),
|
|
57
|
+
groupingsAcross: zod_1.z.array(exports.ReportGroupingSchema).optional().describe('Column groupings (Matrix only)'),
|
|
58
|
+
/** Filtering */
|
|
59
|
+
filter: zod_1.z.string().optional().describe('Filter logic (e.g. "1 AND (2 OR 3)")'),
|
|
60
|
+
filterItems: zod_1.z.array(zod_1.z.object({
|
|
61
|
+
id: zod_1.z.number(),
|
|
62
|
+
field: zod_1.z.string(),
|
|
63
|
+
operator: zod_1.z.string(),
|
|
64
|
+
value: zod_1.z.any()
|
|
65
|
+
})).optional().describe('Filter criteria lines'),
|
|
66
|
+
/** Visualization */
|
|
67
|
+
chart: exports.ReportChartSchema.optional().describe('Embedded chart configuration'),
|
|
68
|
+
});
|