@objectstack/spec 0.1.0 → 0.1.2
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 +134 -121
- 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/api/contract.zod.d.ts +1733 -0
- package/dist/api/contract.zod.d.ts.map +1 -0
- package/dist/api/contract.zod.js +138 -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 +1808 -0
- package/dist/data/field.zod.d.ts.map +1 -0
- package/dist/data/field.zod.js +222 -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 +470 -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 +844 -0
- package/dist/data/object.zod.d.ts.map +1 -0
- package/dist/data/object.zod.js +81 -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 +438 -0
- package/dist/data/query.zod.d.ts.map +1 -0
- package/dist/data/query.zod.js +147 -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/trigger.zod.d.ts +354 -0
- package/dist/data/trigger.zod.d.ts.map +1 -0
- package/dist/data/trigger.zod.js +195 -0
- package/dist/data/validation.zod.d.ts +276 -0
- package/dist/data/validation.zod.d.ts.map +1 -0
- package/dist/data/validation.zod.js +105 -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 +41 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -5
- package/dist/system/api.zod.d.ts +294 -0
- package/dist/system/api.zod.d.ts.map +1 -0
- package/dist/system/api.zod.js +56 -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 +210 -0
- package/dist/system/datasource.zod.d.ts.map +1 -0
- package/dist/system/datasource.zod.js +90 -0
- package/dist/system/discovery.zod.d.ts +174 -0
- package/dist/system/discovery.zod.d.ts.map +1 -0
- package/dist/system/discovery.zod.js +53 -0
- package/dist/system/driver.zod.d.ts +1525 -0
- package/dist/system/driver.zod.d.ts.map +1 -0
- package/dist/system/driver.zod.js +290 -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 +397 -0
- package/dist/system/manifest.zod.d.ts.map +1 -0
- package/dist/system/manifest.zod.js +142 -0
- package/dist/system/plugin.zod.d.ts +3516 -0
- package/dist/system/plugin.zod.d.ts.map +1 -0
- package/dist/system/plugin.zod.js +226 -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 +155 -0
- package/dist/ui/action.zod.d.ts.map +1 -0
- package/dist/ui/action.zod.js +54 -0
- package/dist/ui/app.zod.d.ts +405 -0
- package/dist/ui/app.zod.d.ts.map +1 -0
- package/dist/ui/app.zod.js +138 -0
- package/dist/ui/dashboard.zod.d.ts +213 -0
- package/dist/ui/dashboard.zod.d.ts.map +1 -0
- package/dist/ui/dashboard.zod.js +72 -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 +233 -0
- package/dist/ui/report.zod.d.ts.map +1 -0
- package/dist/ui/report.zod.js +74 -0
- package/dist/ui/theme.zod.d.ts +1221 -0
- package/dist/ui/theme.zod.d.ts.map +1 -0
- package/dist/ui/theme.zod.js +202 -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/dist/ui/widget.zod.d.ts +350 -0
- package/dist/ui/widget.zod.d.ts.map +1 -0
- package/dist/ui/widget.zod.js +66 -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 +162 -0
- package/json-schema/ActionParam.json +82 -0
- package/json-schema/Address.json +40 -0
- package/json-schema/Agent.json +140 -0
- package/json-schema/AggregationFunction.json +19 -0
- package/json-schema/AggregationNode.json +42 -0
- package/json-schema/Animation.json +56 -0
- package/json-schema/ApiCapabilities.json +28 -0
- package/json-schema/ApiEndpoint.json +162 -0
- package/json-schema/ApiError.json +27 -0
- package/json-schema/ApiMapping.json +28 -0
- package/json-schema/ApiRoutes.json +41 -0
- package/json-schema/App.json +297 -0
- package/json-schema/AppBranding.json +24 -0
- package/json-schema/AsyncValidation.json +70 -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/BaseResponse.json +63 -0
- package/json-schema/BorderRadius.json +44 -0
- package/json-schema/Breakpoints.json +36 -0
- package/json-schema/BulkRequest.json +29 -0
- package/json-schema/BulkResponse.json +108 -0
- package/json-schema/CalendarConfig.json +28 -0
- package/json-schema/ChartType.json +19 -0
- package/json-schema/ColorPalette.json +83 -0
- package/json-schema/ConditionalValidation.json +793 -0
- package/json-schema/CreateRequest.json +20 -0
- package/json-schema/CrossFieldValidation.json +56 -0
- package/json-schema/CustomValidator.json +57 -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 +75 -0
- package/json-schema/DatasourceCapabilities.json +36 -0
- package/json-schema/DeleteResponse.json +68 -0
- package/json-schema/Discovery.json +114 -0
- package/json-schema/DriverCapabilities.json +39 -0
- package/json-schema/DriverDefinition.json +66 -0
- package/json-schema/DriverInterface.json +58 -0
- package/json-schema/DriverOptions.json +23 -0
- package/json-schema/DriverType.json +10 -0
- package/json-schema/EmailAlertAction.json +37 -0
- package/json-schema/ExportRequest.json +786 -0
- package/json-schema/Feature.json +51 -0
- package/json-schema/Field.json +290 -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 +42 -0
- package/json-schema/FieldUpdateAction.json +32 -0
- package/json-schema/FieldWidgetProps.json +327 -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/I18nContext.json +12 -0
- package/json-schema/Index.json +30 -0
- package/json-schema/JoinNode.json +455 -0
- package/json-schema/JoinType.json +15 -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/ListRecordResponse.json +103 -0
- package/json-schema/ListView.json +153 -0
- package/json-schema/Locale.json +10 -0
- package/json-schema/LocationCoordinates.json +36 -0
- package/json-schema/Logger.json +25 -0
- package/json-schema/LogicOperator.json +14 -0
- package/json-schema/Manifest.json +315 -0
- package/json-schema/Mapping.json +598 -0
- package/json-schema/MenuItem.json +28 -0
- package/json-schema/MetricType.json +14 -0
- package/json-schema/ModificationResult.json +46 -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 +428 -0
- package/json-schema/ObjectCapabilities.json +62 -0
- package/json-schema/ObjectNavItem.json +46 -0
- package/json-schema/ObjectPermission.json +42 -0
- package/json-schema/ObjectQLClient.json +12 -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/Plugin.json +20 -0
- package/json-schema/PluginContext.json +91 -0
- package/json-schema/PluginLifecycle.json +11 -0
- package/json-schema/Policy.json +138 -0
- package/json-schema/Query.json +456 -0
- package/json-schema/RateLimit.json +26 -0
- package/json-schema/RecordData.json +11 -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/Router.json +12 -0
- package/json-schema/SAMLConfig.json +44 -0
- package/json-schema/Scheduler.json +12 -0
- package/json-schema/ScopedStorage.json +12 -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/Shadow.json +44 -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/SingleRecordResponse.json +69 -0
- package/json-schema/SortNode.json +26 -0
- package/json-schema/Spacing.json +64 -0
- package/json-schema/StateMachineValidation.json +59 -0
- package/json-schema/SystemAPI.json +12 -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/Theme.json +543 -0
- package/json-schema/ThemeMode.json +14 -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/Trigger.json +73 -0
- package/json-schema/TriggerAction.json +14 -0
- package/json-schema/TriggerContext.json +61 -0
- package/json-schema/TriggerTiming.json +13 -0
- package/json-schema/Typography.json +142 -0
- package/json-schema/UniquenessValidation.json +59 -0
- package/json-schema/UpdateRequest.json +20 -0
- package/json-schema/UrlNavItem.json +51 -0
- package/json-schema/ValidationRule.json +794 -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/WindowFunction.json +24 -0
- package/json-schema/WindowFunctionNode.json +104 -0
- package/json-schema/WindowSpec.json +65 -0
- package/json-schema/WorkflowAction.json +84 -0
- package/json-schema/WorkflowRule.json +128 -0
- package/json-schema/WorkflowTriggerType.json +16 -0
- package/json-schema/ZIndex.json +44 -0
- package/package.json +34 -20
- 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,210 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Driver Type Enum (Built-in)
|
|
4
|
+
* Standard drivers supported by the core platform.
|
|
5
|
+
* Plugins can register additional drivers using different identifiers.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BuiltInDrivers: readonly ["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"];
|
|
8
|
+
/**
|
|
9
|
+
* Driver Identifier
|
|
10
|
+
* Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
|
|
11
|
+
*/
|
|
12
|
+
export declare const DriverType: z.ZodString;
|
|
13
|
+
/**
|
|
14
|
+
* Driver Definition Schema
|
|
15
|
+
* Metadata describing a Database Driver.
|
|
16
|
+
* Plugins use this to register new connectivity options.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DriverDefinitionSchema: z.ZodObject<{
|
|
19
|
+
id: z.ZodString;
|
|
20
|
+
label: z.ZodString;
|
|
21
|
+
description: z.ZodOptional<z.ZodString>;
|
|
22
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
23
|
+
/**
|
|
24
|
+
* Configuration Schema (JSON Schema)
|
|
25
|
+
* Describes the structure of the `config` object needed for this driver.
|
|
26
|
+
* Used by the UI to generate the connection form.
|
|
27
|
+
*/
|
|
28
|
+
configSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
29
|
+
/**
|
|
30
|
+
* Default Capabilities
|
|
31
|
+
* What this driver supports out-of-the-box.
|
|
32
|
+
*/
|
|
33
|
+
capabilities: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
34
|
+
/** Can execute SQL-like joins natively? */
|
|
35
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
36
|
+
/** Can handle ACID transactions? */
|
|
37
|
+
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
38
|
+
/** Can perform full-text search? */
|
|
39
|
+
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
40
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
41
|
+
aggregation: z.ZodDefault<z.ZodBoolean>;
|
|
42
|
+
/** Is scheme-less (needs schema inference)? */
|
|
43
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
/** Is read-only? */
|
|
45
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
joins: boolean;
|
|
48
|
+
transactions: boolean;
|
|
49
|
+
fullTextSearch: boolean;
|
|
50
|
+
aggregation: boolean;
|
|
51
|
+
dynamicSchema: boolean;
|
|
52
|
+
readOnly: boolean;
|
|
53
|
+
}, {
|
|
54
|
+
joins?: boolean | undefined;
|
|
55
|
+
transactions?: boolean | undefined;
|
|
56
|
+
fullTextSearch?: boolean | undefined;
|
|
57
|
+
aggregation?: boolean | undefined;
|
|
58
|
+
dynamicSchema?: boolean | undefined;
|
|
59
|
+
readOnly?: boolean | undefined;
|
|
60
|
+
}>>>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
label: string;
|
|
63
|
+
id: string;
|
|
64
|
+
configSchema: Record<string, any>;
|
|
65
|
+
description?: string | undefined;
|
|
66
|
+
icon?: string | undefined;
|
|
67
|
+
capabilities?: {
|
|
68
|
+
joins: boolean;
|
|
69
|
+
transactions: boolean;
|
|
70
|
+
fullTextSearch: boolean;
|
|
71
|
+
aggregation: boolean;
|
|
72
|
+
dynamicSchema: boolean;
|
|
73
|
+
readOnly: boolean;
|
|
74
|
+
} | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
label: string;
|
|
77
|
+
id: string;
|
|
78
|
+
configSchema: Record<string, any>;
|
|
79
|
+
description?: string | undefined;
|
|
80
|
+
icon?: string | undefined;
|
|
81
|
+
capabilities?: {
|
|
82
|
+
joins?: boolean | undefined;
|
|
83
|
+
transactions?: boolean | undefined;
|
|
84
|
+
fullTextSearch?: boolean | undefined;
|
|
85
|
+
aggregation?: boolean | undefined;
|
|
86
|
+
dynamicSchema?: boolean | undefined;
|
|
87
|
+
readOnly?: boolean | undefined;
|
|
88
|
+
} | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
/**
|
|
91
|
+
* Datasource Capabilities Schema
|
|
92
|
+
* Declares what this datasource naturally supports.
|
|
93
|
+
* The ObjectQL engine uses this to determine what logic to push down
|
|
94
|
+
* and what to compute in memory.
|
|
95
|
+
*/
|
|
96
|
+
export declare const DatasourceCapabilities: z.ZodObject<{
|
|
97
|
+
/** Can execute SQL-like joins natively? */
|
|
98
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
99
|
+
/** Can handle ACID transactions? */
|
|
100
|
+
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
101
|
+
/** Can perform full-text search? */
|
|
102
|
+
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
103
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
104
|
+
aggregation: z.ZodDefault<z.ZodBoolean>;
|
|
105
|
+
/** Is scheme-less (needs schema inference)? */
|
|
106
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
107
|
+
/** Is read-only? */
|
|
108
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
joins: boolean;
|
|
111
|
+
transactions: boolean;
|
|
112
|
+
fullTextSearch: boolean;
|
|
113
|
+
aggregation: boolean;
|
|
114
|
+
dynamicSchema: boolean;
|
|
115
|
+
readOnly: boolean;
|
|
116
|
+
}, {
|
|
117
|
+
joins?: boolean | undefined;
|
|
118
|
+
transactions?: boolean | undefined;
|
|
119
|
+
fullTextSearch?: boolean | undefined;
|
|
120
|
+
aggregation?: boolean | undefined;
|
|
121
|
+
dynamicSchema?: boolean | undefined;
|
|
122
|
+
readOnly?: boolean | undefined;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Datasource Schema
|
|
126
|
+
* Represents a connection to an external data store.
|
|
127
|
+
*/
|
|
128
|
+
export declare const DatasourceSchema: z.ZodObject<{
|
|
129
|
+
/** Machine Name */
|
|
130
|
+
name: z.ZodString;
|
|
131
|
+
/** Human Label */
|
|
132
|
+
label: z.ZodOptional<z.ZodString>;
|
|
133
|
+
/** Driver */
|
|
134
|
+
driver: z.ZodString;
|
|
135
|
+
/**
|
|
136
|
+
* Connection Configuration
|
|
137
|
+
* Specific to the driver (e.g., host, port, user, password, bucket, etc.)
|
|
138
|
+
* Stored securely (passwords usually interpolated from ENV).
|
|
139
|
+
*/
|
|
140
|
+
config: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
141
|
+
/**
|
|
142
|
+
* Capability Overrides
|
|
143
|
+
* Manually override what the driver claims to support.
|
|
144
|
+
*/
|
|
145
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
146
|
+
/** Can execute SQL-like joins natively? */
|
|
147
|
+
joins: z.ZodDefault<z.ZodBoolean>;
|
|
148
|
+
/** Can handle ACID transactions? */
|
|
149
|
+
transactions: z.ZodDefault<z.ZodBoolean>;
|
|
150
|
+
/** Can perform full-text search? */
|
|
151
|
+
fullTextSearch: z.ZodDefault<z.ZodBoolean>;
|
|
152
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
153
|
+
aggregation: z.ZodDefault<z.ZodBoolean>;
|
|
154
|
+
/** Is scheme-less (needs schema inference)? */
|
|
155
|
+
dynamicSchema: z.ZodDefault<z.ZodBoolean>;
|
|
156
|
+
/** Is read-only? */
|
|
157
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
158
|
+
}, "strip", z.ZodTypeAny, {
|
|
159
|
+
joins: boolean;
|
|
160
|
+
transactions: boolean;
|
|
161
|
+
fullTextSearch: boolean;
|
|
162
|
+
aggregation: boolean;
|
|
163
|
+
dynamicSchema: boolean;
|
|
164
|
+
readOnly: boolean;
|
|
165
|
+
}, {
|
|
166
|
+
joins?: boolean | undefined;
|
|
167
|
+
transactions?: boolean | undefined;
|
|
168
|
+
fullTextSearch?: boolean | undefined;
|
|
169
|
+
aggregation?: boolean | undefined;
|
|
170
|
+
dynamicSchema?: boolean | undefined;
|
|
171
|
+
readOnly?: boolean | undefined;
|
|
172
|
+
}>>;
|
|
173
|
+
/** Description */
|
|
174
|
+
description: z.ZodOptional<z.ZodString>;
|
|
175
|
+
/** Is enabled? */
|
|
176
|
+
active: z.ZodDefault<z.ZodBoolean>;
|
|
177
|
+
}, "strip", z.ZodTypeAny, {
|
|
178
|
+
name: string;
|
|
179
|
+
active: boolean;
|
|
180
|
+
config: Record<string, any>;
|
|
181
|
+
driver: string;
|
|
182
|
+
label?: string | undefined;
|
|
183
|
+
description?: string | undefined;
|
|
184
|
+
capabilities?: {
|
|
185
|
+
joins: boolean;
|
|
186
|
+
transactions: boolean;
|
|
187
|
+
fullTextSearch: boolean;
|
|
188
|
+
aggregation: boolean;
|
|
189
|
+
dynamicSchema: boolean;
|
|
190
|
+
readOnly: boolean;
|
|
191
|
+
} | undefined;
|
|
192
|
+
}, {
|
|
193
|
+
name: string;
|
|
194
|
+
config: Record<string, any>;
|
|
195
|
+
driver: string;
|
|
196
|
+
label?: string | undefined;
|
|
197
|
+
description?: string | undefined;
|
|
198
|
+
active?: boolean | undefined;
|
|
199
|
+
capabilities?: {
|
|
200
|
+
joins?: boolean | undefined;
|
|
201
|
+
transactions?: boolean | undefined;
|
|
202
|
+
fullTextSearch?: boolean | undefined;
|
|
203
|
+
aggregation?: boolean | undefined;
|
|
204
|
+
dynamicSchema?: boolean | undefined;
|
|
205
|
+
readOnly?: boolean | undefined;
|
|
206
|
+
} | undefined;
|
|
207
|
+
}>;
|
|
208
|
+
export type Datasource = z.infer<typeof DatasourceSchema>;
|
|
209
|
+
export type DatasourceConfig = z.infer<typeof DatasourceCapabilities>;
|
|
210
|
+
//# sourceMappingURL=datasource.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource.zod.d.ts","sourceRoot":"","sources":["../../src/system/datasource.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,cAAc,+KAMjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU,aAAsD,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;IAMjC;;;;OAIG;;IAGH;;;OAGG;;QAWH,2CAA2C;;QAE3C,oCAAoC;;QAEpC,oCAAoC;;QAEpC,oDAAoD;;QAEpD,+CAA+C;;QAE/C,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAnBpB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,2CAA2C;;IAE3C,oCAAoC;;IAEpC,oCAAoC;;IAEpC,oDAAoD;;IAEpD,+CAA+C;;IAE/C,oBAAoB;;;;;;;;;;;;;;;;EAEpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,mBAAmB;;IAGnB,kBAAkB;;IAGlB,aAAa;;IAGb;;;;OAIG;;IAGH;;;OAGG;;QAtCH,2CAA2C;;QAE3C,oCAAoC;;QAEpC,oCAAoC;;QAEpC,oDAAoD;;QAEpD,+CAA+C;;QAE/C,oBAAoB;;;;;;;;;;;;;;;;;IA+BpB,kBAAkB;;IAGlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatasourceSchema = exports.DatasourceCapabilities = exports.DriverDefinitionSchema = exports.DriverType = exports.BuiltInDrivers = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Driver Type Enum (Built-in)
|
|
7
|
+
* Standard drivers supported by the core platform.
|
|
8
|
+
* Plugins can register additional drivers using different identifiers.
|
|
9
|
+
*/
|
|
10
|
+
exports.BuiltInDrivers = [
|
|
11
|
+
'postgres', 'mysql', 'sqlserver', 'oracle', 'sqlite', // SQL
|
|
12
|
+
'mongo', 'redis', // NoSQL
|
|
13
|
+
'excel', 'csv', 'airtable', // Spreadsheet / Low-code
|
|
14
|
+
'rest_api', 'graphql', 'odata', // Web Services
|
|
15
|
+
'salesforce', 'sap', 'workday' // Enterprise SaaS
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Driver Identifier
|
|
19
|
+
* Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
|
|
20
|
+
*/
|
|
21
|
+
exports.DriverType = zod_1.z.string().describe('Underlying driver identifier');
|
|
22
|
+
/**
|
|
23
|
+
* Driver Definition Schema
|
|
24
|
+
* Metadata describing a Database Driver.
|
|
25
|
+
* Plugins use this to register new connectivity options.
|
|
26
|
+
*/
|
|
27
|
+
exports.DriverDefinitionSchema = zod_1.z.object({
|
|
28
|
+
id: zod_1.z.string().describe('Unique driver identifier (e.g. "postgres")'),
|
|
29
|
+
label: zod_1.z.string().describe('Display label (e.g. "PostgreSQL")'),
|
|
30
|
+
description: zod_1.z.string().optional(),
|
|
31
|
+
icon: zod_1.z.string().optional(),
|
|
32
|
+
/**
|
|
33
|
+
* Configuration Schema (JSON Schema)
|
|
34
|
+
* Describes the structure of the `config` object needed for this driver.
|
|
35
|
+
* Used by the UI to generate the connection form.
|
|
36
|
+
*/
|
|
37
|
+
configSchema: zod_1.z.record(zod_1.z.any()).describe('JSON Schema for connection configuration'),
|
|
38
|
+
/**
|
|
39
|
+
* Default Capabilities
|
|
40
|
+
* What this driver supports out-of-the-box.
|
|
41
|
+
*/
|
|
42
|
+
capabilities: zod_1.z.lazy(() => exports.DatasourceCapabilities).optional(),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Datasource Capabilities Schema
|
|
46
|
+
* Declares what this datasource naturally supports.
|
|
47
|
+
* The ObjectQL engine uses this to determine what logic to push down
|
|
48
|
+
* and what to compute in memory.
|
|
49
|
+
*/
|
|
50
|
+
exports.DatasourceCapabilities = zod_1.z.object({
|
|
51
|
+
/** Can execute SQL-like joins natively? */
|
|
52
|
+
joins: zod_1.z.boolean().default(false),
|
|
53
|
+
/** Can handle ACID transactions? */
|
|
54
|
+
transactions: zod_1.z.boolean().default(false),
|
|
55
|
+
/** Can perform full-text search? */
|
|
56
|
+
fullTextSearch: zod_1.z.boolean().default(false),
|
|
57
|
+
/** Can perform aggregation (group by, sum, avg)? */
|
|
58
|
+
aggregation: zod_1.z.boolean().default(false),
|
|
59
|
+
/** Is scheme-less (needs schema inference)? */
|
|
60
|
+
dynamicSchema: zod_1.z.boolean().default(false),
|
|
61
|
+
/** Is read-only? */
|
|
62
|
+
readOnly: zod_1.z.boolean().default(false),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Datasource Schema
|
|
66
|
+
* Represents a connection to an external data store.
|
|
67
|
+
*/
|
|
68
|
+
exports.DatasourceSchema = zod_1.z.object({
|
|
69
|
+
/** Machine Name */
|
|
70
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique datasource identifier'),
|
|
71
|
+
/** Human Label */
|
|
72
|
+
label: zod_1.z.string().optional().describe('Display label'),
|
|
73
|
+
/** Driver */
|
|
74
|
+
driver: exports.DriverType.describe('Underlying driver type'),
|
|
75
|
+
/**
|
|
76
|
+
* Connection Configuration
|
|
77
|
+
* Specific to the driver (e.g., host, port, user, password, bucket, etc.)
|
|
78
|
+
* Stored securely (passwords usually interpolated from ENV).
|
|
79
|
+
*/
|
|
80
|
+
config: zod_1.z.record(zod_1.z.any()).describe('Driver specific configuration'),
|
|
81
|
+
/**
|
|
82
|
+
* Capability Overrides
|
|
83
|
+
* Manually override what the driver claims to support.
|
|
84
|
+
*/
|
|
85
|
+
capabilities: exports.DatasourceCapabilities.optional().describe('Capability overrides'),
|
|
86
|
+
/** Description */
|
|
87
|
+
description: zod_1.z.string().optional().describe('Internal description'),
|
|
88
|
+
/** Is enabled? */
|
|
89
|
+
active: zod_1.z.boolean().default(true).describe('Is datasource enabled'),
|
|
90
|
+
});
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* API Capabilities Schema
|
|
4
|
+
* Defines what features are enabled on this ObjectOS instance.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ApiCapabilitiesSchema: z.ZodObject<{
|
|
7
|
+
graphql: z.ZodDefault<z.ZodBoolean>;
|
|
8
|
+
search: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
websockets: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
files: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
search: boolean;
|
|
13
|
+
files: boolean;
|
|
14
|
+
graphql: boolean;
|
|
15
|
+
websockets: boolean;
|
|
16
|
+
}, {
|
|
17
|
+
search?: boolean | undefined;
|
|
18
|
+
files?: boolean | undefined;
|
|
19
|
+
graphql?: boolean | undefined;
|
|
20
|
+
websockets?: boolean | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* API Routes Schema
|
|
24
|
+
* The "Map" for the frontend to know where to send requests.
|
|
25
|
+
* This decouples the frontend from hardcoded URL paths.
|
|
26
|
+
*/
|
|
27
|
+
export declare const ApiRoutesSchema: z.ZodObject<{
|
|
28
|
+
/** Base URL for Object CRUD (Standard Data API) */
|
|
29
|
+
data: z.ZodString;
|
|
30
|
+
/** Base URL for Schema Definitions (Metadata API) */
|
|
31
|
+
metadata: z.ZodString;
|
|
32
|
+
/** Base URL for Authentication */
|
|
33
|
+
auth: z.ZodString;
|
|
34
|
+
/** Base URL for Server Actions/Flows */
|
|
35
|
+
actions: z.ZodOptional<z.ZodString>;
|
|
36
|
+
/** Base URL for File/Storage operations */
|
|
37
|
+
storage: z.ZodOptional<z.ZodString>;
|
|
38
|
+
/** GraphQL Endpoint (if enabled) */
|
|
39
|
+
graphql: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
data: string;
|
|
42
|
+
metadata: string;
|
|
43
|
+
auth: string;
|
|
44
|
+
actions?: string | undefined;
|
|
45
|
+
graphql?: string | undefined;
|
|
46
|
+
storage?: string | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
data: string;
|
|
49
|
+
metadata: string;
|
|
50
|
+
auth: string;
|
|
51
|
+
actions?: string | undefined;
|
|
52
|
+
graphql?: string | undefined;
|
|
53
|
+
storage?: string | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Discovery Response Schema
|
|
57
|
+
* The root object returned by the Metadata Discovery Endpoint.
|
|
58
|
+
*/
|
|
59
|
+
export declare const DiscoverySchema: z.ZodObject<{
|
|
60
|
+
/** System Identity */
|
|
61
|
+
name: z.ZodString;
|
|
62
|
+
version: z.ZodString;
|
|
63
|
+
environment: z.ZodEnum<["production", "sandbox", "development"]>;
|
|
64
|
+
/** Dynamic Routing */
|
|
65
|
+
routes: z.ZodObject<{
|
|
66
|
+
/** Base URL for Object CRUD (Standard Data API) */
|
|
67
|
+
data: z.ZodString;
|
|
68
|
+
/** Base URL for Schema Definitions (Metadata API) */
|
|
69
|
+
metadata: z.ZodString;
|
|
70
|
+
/** Base URL for Authentication */
|
|
71
|
+
auth: z.ZodString;
|
|
72
|
+
/** Base URL for Server Actions/Flows */
|
|
73
|
+
actions: z.ZodOptional<z.ZodString>;
|
|
74
|
+
/** Base URL for File/Storage operations */
|
|
75
|
+
storage: z.ZodOptional<z.ZodString>;
|
|
76
|
+
/** GraphQL Endpoint (if enabled) */
|
|
77
|
+
graphql: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
data: string;
|
|
80
|
+
metadata: string;
|
|
81
|
+
auth: string;
|
|
82
|
+
actions?: string | undefined;
|
|
83
|
+
graphql?: string | undefined;
|
|
84
|
+
storage?: string | undefined;
|
|
85
|
+
}, {
|
|
86
|
+
data: string;
|
|
87
|
+
metadata: string;
|
|
88
|
+
auth: string;
|
|
89
|
+
actions?: string | undefined;
|
|
90
|
+
graphql?: string | undefined;
|
|
91
|
+
storage?: string | undefined;
|
|
92
|
+
}>;
|
|
93
|
+
/** Feature Flags */
|
|
94
|
+
features: z.ZodObject<{
|
|
95
|
+
graphql: z.ZodDefault<z.ZodBoolean>;
|
|
96
|
+
search: z.ZodDefault<z.ZodBoolean>;
|
|
97
|
+
websockets: z.ZodDefault<z.ZodBoolean>;
|
|
98
|
+
files: z.ZodDefault<z.ZodBoolean>;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
search: boolean;
|
|
101
|
+
files: boolean;
|
|
102
|
+
graphql: boolean;
|
|
103
|
+
websockets: boolean;
|
|
104
|
+
}, {
|
|
105
|
+
search?: boolean | undefined;
|
|
106
|
+
files?: boolean | undefined;
|
|
107
|
+
graphql?: boolean | undefined;
|
|
108
|
+
websockets?: boolean | undefined;
|
|
109
|
+
}>;
|
|
110
|
+
/** Localization Info (helping frontend init i18n) */
|
|
111
|
+
locale: z.ZodObject<{
|
|
112
|
+
default: z.ZodString;
|
|
113
|
+
supported: z.ZodArray<z.ZodString, "many">;
|
|
114
|
+
timezone: z.ZodString;
|
|
115
|
+
}, "strip", z.ZodTypeAny, {
|
|
116
|
+
default: string;
|
|
117
|
+
supported: string[];
|
|
118
|
+
timezone: string;
|
|
119
|
+
}, {
|
|
120
|
+
default: string;
|
|
121
|
+
supported: string[];
|
|
122
|
+
timezone: string;
|
|
123
|
+
}>;
|
|
124
|
+
}, "strip", z.ZodTypeAny, {
|
|
125
|
+
name: string;
|
|
126
|
+
version: string;
|
|
127
|
+
locale: {
|
|
128
|
+
default: string;
|
|
129
|
+
supported: string[];
|
|
130
|
+
timezone: string;
|
|
131
|
+
};
|
|
132
|
+
features: {
|
|
133
|
+
search: boolean;
|
|
134
|
+
files: boolean;
|
|
135
|
+
graphql: boolean;
|
|
136
|
+
websockets: boolean;
|
|
137
|
+
};
|
|
138
|
+
environment: "production" | "sandbox" | "development";
|
|
139
|
+
routes: {
|
|
140
|
+
data: string;
|
|
141
|
+
metadata: string;
|
|
142
|
+
auth: string;
|
|
143
|
+
actions?: string | undefined;
|
|
144
|
+
graphql?: string | undefined;
|
|
145
|
+
storage?: string | undefined;
|
|
146
|
+
};
|
|
147
|
+
}, {
|
|
148
|
+
name: string;
|
|
149
|
+
version: string;
|
|
150
|
+
locale: {
|
|
151
|
+
default: string;
|
|
152
|
+
supported: string[];
|
|
153
|
+
timezone: string;
|
|
154
|
+
};
|
|
155
|
+
features: {
|
|
156
|
+
search?: boolean | undefined;
|
|
157
|
+
files?: boolean | undefined;
|
|
158
|
+
graphql?: boolean | undefined;
|
|
159
|
+
websockets?: boolean | undefined;
|
|
160
|
+
};
|
|
161
|
+
environment: "production" | "sandbox" | "development";
|
|
162
|
+
routes: {
|
|
163
|
+
data: string;
|
|
164
|
+
metadata: string;
|
|
165
|
+
auth: string;
|
|
166
|
+
actions?: string | undefined;
|
|
167
|
+
graphql?: string | undefined;
|
|
168
|
+
storage?: string | undefined;
|
|
169
|
+
};
|
|
170
|
+
}>;
|
|
171
|
+
export type DiscoveryResponse = z.infer<typeof DiscoverySchema>;
|
|
172
|
+
export type ApiRoutes = z.infer<typeof ApiRoutesSchema>;
|
|
173
|
+
export type ApiCapabilities = z.infer<typeof ApiCapabilitiesSchema>;
|
|
174
|
+
//# sourceMappingURL=discovery.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.zod.d.ts","sourceRoot":"","sources":["../../src/system/discovery.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;IAC1B,mDAAmD;;IAGnD,qDAAqD;;IAGrD,kCAAkC;;IAGlC,wCAAwC;;IAGxC,2CAA2C;;IAG3C,oCAAoC;;;;;;;;;;;;;;;;EAEpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;IAC1B,sBAAsB;;;;IAKtB,sBAAsB;;QA7BtB,mDAAmD;;QAGnD,qDAAqD;;QAGrD,kCAAkC;;QAGlC,wCAAwC;;QAGxC,2CAA2C;;QAG3C,oCAAoC;;;;;;;;;;;;;;;;;IAiBpC,oBAAoB;;;;;;;;;;;;;;;;;IAGpB,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrD,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiscoverySchema = exports.ApiRoutesSchema = exports.ApiCapabilitiesSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* API Capabilities Schema
|
|
7
|
+
* Defines what features are enabled on this ObjectOS instance.
|
|
8
|
+
*/
|
|
9
|
+
exports.ApiCapabilitiesSchema = zod_1.z.object({
|
|
10
|
+
graphql: zod_1.z.boolean().default(false),
|
|
11
|
+
search: zod_1.z.boolean().default(false),
|
|
12
|
+
websockets: zod_1.z.boolean().default(false),
|
|
13
|
+
files: zod_1.z.boolean().default(true),
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* API Routes Schema
|
|
17
|
+
* The "Map" for the frontend to know where to send requests.
|
|
18
|
+
* This decouples the frontend from hardcoded URL paths.
|
|
19
|
+
*/
|
|
20
|
+
exports.ApiRoutesSchema = zod_1.z.object({
|
|
21
|
+
/** Base URL for Object CRUD (Standard Data API) */
|
|
22
|
+
data: zod_1.z.string().describe('e.g. /api/v1/data'),
|
|
23
|
+
/** Base URL for Schema Definitions (Metadata API) */
|
|
24
|
+
metadata: zod_1.z.string().describe('e.g. /api/v1/meta'),
|
|
25
|
+
/** Base URL for Authentication */
|
|
26
|
+
auth: zod_1.z.string().describe('e.g. /api/v1/auth'),
|
|
27
|
+
/** Base URL for Server Actions/Flows */
|
|
28
|
+
actions: zod_1.z.string().optional().describe('e.g. /api/v1/p'),
|
|
29
|
+
/** Base URL for File/Storage operations */
|
|
30
|
+
storage: zod_1.z.string().optional().describe('e.g. /api/v1/storage'),
|
|
31
|
+
/** GraphQL Endpoint (if enabled) */
|
|
32
|
+
graphql: zod_1.z.string().optional().describe('e.g. /api/v1/graphql'),
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Discovery Response Schema
|
|
36
|
+
* The root object returned by the Metadata Discovery Endpoint.
|
|
37
|
+
*/
|
|
38
|
+
exports.DiscoverySchema = zod_1.z.object({
|
|
39
|
+
/** System Identity */
|
|
40
|
+
name: zod_1.z.string(),
|
|
41
|
+
version: zod_1.z.string(),
|
|
42
|
+
environment: zod_1.z.enum(['production', 'sandbox', 'development']),
|
|
43
|
+
/** Dynamic Routing */
|
|
44
|
+
routes: exports.ApiRoutesSchema,
|
|
45
|
+
/** Feature Flags */
|
|
46
|
+
features: exports.ApiCapabilitiesSchema,
|
|
47
|
+
/** Localization Info (helping frontend init i18n) */
|
|
48
|
+
locale: zod_1.z.object({
|
|
49
|
+
default: zod_1.z.string(),
|
|
50
|
+
supported: zod_1.z.array(zod_1.z.string()),
|
|
51
|
+
timezone: zod_1.z.string(),
|
|
52
|
+
}),
|
|
53
|
+
});
|