@objectstack/spec 0.1.1 → 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.
Files changed (136) hide show
  1. package/README.md +73 -1
  2. package/dist/api/contract.zod.d.ts +1733 -0
  3. package/dist/api/contract.zod.d.ts.map +1 -0
  4. package/dist/api/contract.zod.js +138 -0
  5. package/dist/data/dataset.zod.d.ts +2 -2
  6. package/dist/data/field.zod.d.ts +1648 -10
  7. package/dist/data/field.zod.d.ts.map +1 -1
  8. package/dist/data/field.zod.js +149 -8
  9. package/dist/data/mapping.zod.d.ts +215 -2
  10. package/dist/data/mapping.zod.d.ts.map +1 -1
  11. package/dist/data/object.zod.d.ts +505 -25
  12. package/dist/data/object.zod.d.ts.map +1 -1
  13. package/dist/data/object.zod.js +32 -5
  14. package/dist/data/query.zod.d.ts +349 -0
  15. package/dist/data/query.zod.d.ts.map +1 -1
  16. package/dist/data/query.zod.js +77 -1
  17. package/dist/data/trigger.zod.d.ts +354 -0
  18. package/dist/data/trigger.zod.d.ts.map +1 -0
  19. package/dist/data/trigger.zod.js +195 -0
  20. package/dist/data/validation.zod.d.ts +83 -43
  21. package/dist/data/validation.zod.d.ts.map +1 -1
  22. package/dist/data/validation.zod.js +51 -5
  23. package/dist/index.d.ts +8 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +9 -0
  26. package/dist/system/api.zod.d.ts +130 -4
  27. package/dist/system/api.zod.d.ts.map +1 -1
  28. package/dist/system/api.zod.js +4 -1
  29. package/dist/system/datasource.zod.d.ts +89 -6
  30. package/dist/system/datasource.zod.d.ts.map +1 -1
  31. package/dist/system/datasource.zod.js +33 -5
  32. package/dist/system/discovery.zod.d.ts +174 -0
  33. package/dist/system/discovery.zod.d.ts.map +1 -0
  34. package/dist/system/discovery.zod.js +53 -0
  35. package/dist/system/driver.zod.d.ts +1525 -0
  36. package/dist/system/driver.zod.d.ts.map +1 -0
  37. package/dist/system/driver.zod.js +290 -0
  38. package/dist/system/license.zod.d.ts +2 -2
  39. package/dist/system/manifest.zod.d.ts +323 -52
  40. package/dist/system/manifest.zod.d.ts.map +1 -1
  41. package/dist/system/manifest.zod.js +91 -17
  42. package/dist/system/plugin.zod.d.ts +3516 -0
  43. package/dist/system/plugin.zod.d.ts.map +1 -0
  44. package/dist/system/plugin.zod.js +226 -0
  45. package/dist/system/territory.zod.d.ts +1 -1
  46. package/dist/system/webhook.zod.d.ts +3 -3
  47. package/dist/ui/action.zod.d.ts +19 -12
  48. package/dist/ui/action.zod.d.ts.map +1 -1
  49. package/dist/ui/action.zod.js +7 -1
  50. package/dist/ui/app.zod.d.ts +109 -3
  51. package/dist/ui/app.zod.d.ts.map +1 -1
  52. package/dist/ui/app.zod.js +13 -2
  53. package/dist/ui/dashboard.zod.d.ts +9 -3
  54. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  55. package/dist/ui/dashboard.zod.js +7 -1
  56. package/dist/ui/page.zod.d.ts +6 -6
  57. package/dist/ui/report.zod.d.ts +9 -0
  58. package/dist/ui/report.zod.d.ts.map +1 -1
  59. package/dist/ui/report.zod.js +7 -1
  60. package/dist/ui/theme.zod.d.ts +1221 -0
  61. package/dist/ui/theme.zod.d.ts.map +1 -0
  62. package/dist/ui/theme.zod.js +202 -0
  63. package/dist/ui/widget.zod.d.ts +350 -0
  64. package/dist/ui/widget.zod.d.ts.map +1 -0
  65. package/dist/ui/widget.zod.js +66 -0
  66. package/json-schema/Action.json +8 -2
  67. package/json-schema/ActionParam.json +8 -2
  68. package/json-schema/Address.json +40 -0
  69. package/json-schema/AggregationFunction.json +19 -0
  70. package/json-schema/AggregationNode.json +42 -0
  71. package/json-schema/Animation.json +56 -0
  72. package/json-schema/ApiCapabilities.json +28 -0
  73. package/json-schema/ApiError.json +27 -0
  74. package/json-schema/ApiRoutes.json +41 -0
  75. package/json-schema/App.json +13 -2
  76. package/json-schema/AsyncValidation.json +70 -0
  77. package/json-schema/BaseResponse.json +63 -0
  78. package/json-schema/BorderRadius.json +44 -0
  79. package/json-schema/Breakpoints.json +36 -0
  80. package/json-schema/BulkRequest.json +29 -0
  81. package/json-schema/BulkResponse.json +108 -0
  82. package/json-schema/ColorPalette.json +83 -0
  83. package/json-schema/ConditionalValidation.json +793 -0
  84. package/json-schema/CreateRequest.json +20 -0
  85. package/json-schema/CrossFieldValidation.json +56 -0
  86. package/json-schema/CustomValidator.json +57 -0
  87. package/json-schema/Datasource.json +0 -18
  88. package/json-schema/DeleteResponse.json +68 -0
  89. package/json-schema/Discovery.json +114 -0
  90. package/json-schema/DriverCapabilities.json +39 -0
  91. package/json-schema/DriverDefinition.json +66 -0
  92. package/json-schema/DriverInterface.json +58 -0
  93. package/json-schema/DriverOptions.json +23 -0
  94. package/json-schema/DriverType.json +1 -18
  95. package/json-schema/ExportRequest.json +786 -0
  96. package/json-schema/Field.json +75 -4
  97. package/json-schema/FieldType.json +8 -2
  98. package/json-schema/FieldWidgetProps.json +327 -0
  99. package/json-schema/I18nContext.json +12 -0
  100. package/json-schema/JoinNode.json +455 -0
  101. package/json-schema/JoinType.json +15 -0
  102. package/json-schema/ListRecordResponse.json +103 -0
  103. package/json-schema/LocationCoordinates.json +36 -0
  104. package/json-schema/Logger.json +25 -0
  105. package/json-schema/Manifest.json +243 -18
  106. package/json-schema/Mapping.json +328 -0
  107. package/json-schema/ModificationResult.json +46 -0
  108. package/json-schema/Object.json +103 -6
  109. package/json-schema/ObjectCapabilities.json +26 -0
  110. package/json-schema/ObjectQLClient.json +12 -0
  111. package/json-schema/Plugin.json +20 -0
  112. package/json-schema/PluginContext.json +91 -0
  113. package/json-schema/PluginLifecycle.json +11 -0
  114. package/json-schema/Query.json +328 -0
  115. package/json-schema/RecordData.json +11 -0
  116. package/json-schema/Router.json +12 -0
  117. package/json-schema/Scheduler.json +12 -0
  118. package/json-schema/ScopedStorage.json +12 -0
  119. package/json-schema/Shadow.json +44 -0
  120. package/json-schema/SingleRecordResponse.json +69 -0
  121. package/json-schema/Spacing.json +64 -0
  122. package/json-schema/SystemAPI.json +12 -0
  123. package/json-schema/Theme.json +543 -0
  124. package/json-schema/ThemeMode.json +14 -0
  125. package/json-schema/Trigger.json +73 -0
  126. package/json-schema/TriggerAction.json +14 -0
  127. package/json-schema/TriggerContext.json +61 -0
  128. package/json-schema/TriggerTiming.json +13 -0
  129. package/json-schema/Typography.json +142 -0
  130. package/json-schema/UpdateRequest.json +20 -0
  131. package/json-schema/ValidationRule.json +583 -0
  132. package/json-schema/WindowFunction.json +24 -0
  133. package/json-schema/WindowFunctionNode.json +104 -0
  134. package/json-schema/WindowSpec.json +65 -0
  135. package/json-schema/ZIndex.json +44 -0
  136. package/package.json +8 -3
@@ -10,6 +10,12 @@ export declare const ObjectCapabilities: z.ZodObject<{
10
10
  searchable: z.ZodDefault<z.ZodBoolean>;
11
11
  /** Enable REST/GraphQL API access */
12
12
  apiEnabled: z.ZodDefault<z.ZodBoolean>;
13
+ /**
14
+ * API Supported Operations
15
+ * Explicitly whitelist allowed operations.
16
+ * If not defined, all standard operations are allowed (if apiEnabled=true).
17
+ */
18
+ apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["get", "list", "create", "update", "delete", "upsert", "bulkCreate", "bulkUpdate", "bulkDelete", "bulkUpsert", "aggregate", "history", "search", "restore", "purge", "import", "export"]>, "many">>;
13
19
  /** Enable attachments/files */
14
20
  files: z.ZodDefault<z.ZodBoolean>;
15
21
  /** Enable discussions/chatter */
@@ -17,16 +23,18 @@ export declare const ObjectCapabilities: z.ZodObject<{
17
23
  /** Enable Recycle Bin mechanics */
18
24
  trash: z.ZodDefault<z.ZodBoolean>;
19
25
  }, "strip", z.ZodTypeAny, {
20
- trackHistory: boolean;
21
26
  searchable: boolean;
27
+ trackHistory: boolean;
22
28
  apiEnabled: boolean;
23
29
  files: boolean;
24
30
  feedEnabled: boolean;
25
31
  trash: boolean;
32
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
26
33
  }, {
27
- trackHistory?: boolean | undefined;
28
34
  searchable?: boolean | undefined;
35
+ trackHistory?: boolean | undefined;
29
36
  apiEnabled?: boolean | undefined;
37
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
30
38
  files?: boolean | undefined;
31
39
  feedEnabled?: boolean | undefined;
32
40
  trash?: boolean | undefined;
@@ -48,26 +56,31 @@ export declare const IndexSchema: z.ZodObject<{
48
56
  unique?: boolean | undefined;
49
57
  }>;
50
58
  /**
51
- * Object Schema - Enterprise Data Model
59
+ * Base Object Schema Definition
52
60
  */
53
- export declare const ObjectSchema: z.ZodObject<{
61
+ declare const ObjectSchemaBase: z.ZodObject<{
54
62
  /** Identify */
55
63
  name: z.ZodString;
56
64
  label: z.ZodOptional<z.ZodString>;
57
65
  pluralLabel: z.ZodOptional<z.ZodString>;
58
66
  description: z.ZodOptional<z.ZodString>;
59
67
  icon: z.ZodOptional<z.ZodString>;
60
- /** Storage Config */
68
+ /**
69
+ * Storage / Virtualization Config
70
+ * Defines where the data actually lives.
71
+ */
61
72
  datasource: z.ZodDefault<z.ZodString>;
62
73
  tableName: z.ZodOptional<z.ZodString>;
63
74
  isSystem: z.ZodDefault<z.ZodBoolean>;
64
75
  /** Fields Definition */
65
76
  fields: z.ZodRecord<z.ZodString, z.ZodObject<{
66
- name: z.ZodString;
67
- label: z.ZodString;
68
- type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "number", "currency", "percent", "date", "datetime", "time", "boolean", "select", "multiselect", "lookup", "master_detail", "image", "file", "avatar", "formula", "summary", "autonumber"]>;
77
+ name: z.ZodOptional<z.ZodString>;
78
+ label: z.ZodOptional<z.ZodString>;
79
+ type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "select", "lookup", "master_detail", "image", "file", "avatar", "formula", "summary", "autonumber", "location", "address", "code", "color", "rating", "signature"]>;
69
80
  description: z.ZodOptional<z.ZodString>;
81
+ format: z.ZodOptional<z.ZodString>;
70
82
  required: z.ZodDefault<z.ZodBoolean>;
83
+ searchable: z.ZodDefault<z.ZodBoolean>;
71
84
  multiple: z.ZodDefault<z.ZodBoolean>;
72
85
  unique: z.ZodDefault<z.ZodBoolean>;
73
86
  defaultValue: z.ZodOptional<z.ZodAny>;
@@ -112,16 +125,26 @@ export declare const ObjectSchema: z.ZodObject<{
112
125
  function: "min" | "max" | "count" | "sum" | "avg";
113
126
  field: string;
114
127
  }>>;
128
+ language: z.ZodOptional<z.ZodString>;
129
+ theme: z.ZodOptional<z.ZodString>;
130
+ lineNumbers: z.ZodOptional<z.ZodBoolean>;
131
+ maxRating: z.ZodOptional<z.ZodNumber>;
132
+ allowHalf: z.ZodOptional<z.ZodBoolean>;
133
+ displayMap: z.ZodOptional<z.ZodBoolean>;
134
+ allowGeocoding: z.ZodOptional<z.ZodBoolean>;
135
+ addressFormat: z.ZodOptional<z.ZodEnum<["us", "uk", "international"]>>;
136
+ colorFormat: z.ZodOptional<z.ZodEnum<["hex", "rgb", "rgba", "hsl"]>>;
137
+ allowAlpha: z.ZodOptional<z.ZodBoolean>;
138
+ presetColors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
115
139
  hidden: z.ZodDefault<z.ZodBoolean>;
116
140
  readonly: z.ZodDefault<z.ZodBoolean>;
117
141
  encryption: z.ZodDefault<z.ZodBoolean>;
118
142
  index: z.ZodDefault<z.ZodBoolean>;
119
143
  externalId: z.ZodDefault<z.ZodBoolean>;
120
144
  }, "strip", z.ZodTypeAny, {
121
- type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "multiselect" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber";
122
- label: string;
123
- name: string;
145
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
124
146
  required: boolean;
147
+ searchable: boolean;
125
148
  multiple: boolean;
126
149
  unique: boolean;
127
150
  deleteBehavior: "set_null" | "cascade" | "restrict";
@@ -137,7 +160,10 @@ export declare const ObjectSchema: z.ZodObject<{
137
160
  color?: string | undefined;
138
161
  default?: boolean | undefined;
139
162
  }[] | undefined;
163
+ label?: string | undefined;
164
+ name?: string | undefined;
140
165
  description?: string | undefined;
166
+ format?: string | undefined;
141
167
  defaultValue?: any;
142
168
  maxLength?: number | undefined;
143
169
  minLength?: number | undefined;
@@ -154,10 +180,19 @@ export declare const ObjectSchema: z.ZodObject<{
154
180
  function: "min" | "max" | "count" | "sum" | "avg";
155
181
  field: string;
156
182
  } | undefined;
183
+ language?: string | undefined;
184
+ theme?: string | undefined;
185
+ lineNumbers?: boolean | undefined;
186
+ maxRating?: number | undefined;
187
+ allowHalf?: boolean | undefined;
188
+ displayMap?: boolean | undefined;
189
+ allowGeocoding?: boolean | undefined;
190
+ addressFormat?: "us" | "uk" | "international" | undefined;
191
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
192
+ allowAlpha?: boolean | undefined;
193
+ presetColors?: string[] | undefined;
157
194
  }, {
158
- type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "multiselect" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber";
159
- label: string;
160
- name: string;
195
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
161
196
  formula?: string | undefined;
162
197
  options?: {
163
198
  value: string;
@@ -165,8 +200,12 @@ export declare const ObjectSchema: z.ZodObject<{
165
200
  color?: string | undefined;
166
201
  default?: boolean | undefined;
167
202
  }[] | undefined;
203
+ label?: string | undefined;
204
+ name?: string | undefined;
168
205
  description?: string | undefined;
206
+ format?: string | undefined;
169
207
  required?: boolean | undefined;
208
+ searchable?: boolean | undefined;
170
209
  multiple?: boolean | undefined;
171
210
  unique?: boolean | undefined;
172
211
  defaultValue?: any;
@@ -186,6 +225,17 @@ export declare const ObjectSchema: z.ZodObject<{
186
225
  function: "min" | "max" | "count" | "sum" | "avg";
187
226
  field: string;
188
227
  } | undefined;
228
+ language?: string | undefined;
229
+ theme?: string | undefined;
230
+ lineNumbers?: boolean | undefined;
231
+ maxRating?: number | undefined;
232
+ allowHalf?: boolean | undefined;
233
+ displayMap?: boolean | undefined;
234
+ allowGeocoding?: boolean | undefined;
235
+ addressFormat?: "us" | "uk" | "international" | undefined;
236
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
237
+ allowAlpha?: boolean | undefined;
238
+ presetColors?: string[] | undefined;
189
239
  hidden?: boolean | undefined;
190
240
  readonly?: boolean | undefined;
191
241
  encryption?: boolean | undefined;
@@ -216,6 +266,12 @@ export declare const ObjectSchema: z.ZodObject<{
216
266
  searchable: z.ZodDefault<z.ZodBoolean>;
217
267
  /** Enable REST/GraphQL API access */
218
268
  apiEnabled: z.ZodDefault<z.ZodBoolean>;
269
+ /**
270
+ * API Supported Operations
271
+ * Explicitly whitelist allowed operations.
272
+ * If not defined, all standard operations are allowed (if apiEnabled=true).
273
+ */
274
+ apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["get", "list", "create", "update", "delete", "upsert", "bulkCreate", "bulkUpdate", "bulkDelete", "bulkUpsert", "aggregate", "history", "search", "restore", "purge", "import", "export"]>, "many">>;
219
275
  /** Enable attachments/files */
220
276
  files: z.ZodDefault<z.ZodBoolean>;
221
277
  /** Enable discussions/chatter */
@@ -223,16 +279,18 @@ export declare const ObjectSchema: z.ZodObject<{
223
279
  /** Enable Recycle Bin mechanics */
224
280
  trash: z.ZodDefault<z.ZodBoolean>;
225
281
  }, "strip", z.ZodTypeAny, {
226
- trackHistory: boolean;
227
282
  searchable: boolean;
283
+ trackHistory: boolean;
228
284
  apiEnabled: boolean;
229
285
  files: boolean;
230
286
  feedEnabled: boolean;
231
287
  trash: boolean;
288
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
232
289
  }, {
233
- trackHistory?: boolean | undefined;
234
290
  searchable?: boolean | undefined;
291
+ trackHistory?: boolean | undefined;
235
292
  apiEnabled?: boolean | undefined;
293
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
236
294
  files?: boolean | undefined;
237
295
  feedEnabled?: boolean | undefined;
238
296
  trash?: boolean | undefined;
@@ -240,10 +298,9 @@ export declare const ObjectSchema: z.ZodObject<{
240
298
  }, "strip", z.ZodTypeAny, {
241
299
  name: string;
242
300
  fields: Record<string, {
243
- type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "multiselect" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber";
244
- label: string;
245
- name: string;
301
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
246
302
  required: boolean;
303
+ searchable: boolean;
247
304
  multiple: boolean;
248
305
  unique: boolean;
249
306
  deleteBehavior: "set_null" | "cascade" | "restrict";
@@ -259,7 +316,10 @@ export declare const ObjectSchema: z.ZodObject<{
259
316
  color?: string | undefined;
260
317
  default?: boolean | undefined;
261
318
  }[] | undefined;
319
+ label?: string | undefined;
320
+ name?: string | undefined;
262
321
  description?: string | undefined;
322
+ format?: string | undefined;
263
323
  defaultValue?: any;
264
324
  maxLength?: number | undefined;
265
325
  minLength?: number | undefined;
@@ -276,6 +336,17 @@ export declare const ObjectSchema: z.ZodObject<{
276
336
  function: "min" | "max" | "count" | "sum" | "avg";
277
337
  field: string;
278
338
  } | undefined;
339
+ language?: string | undefined;
340
+ theme?: string | undefined;
341
+ lineNumbers?: boolean | undefined;
342
+ maxRating?: number | undefined;
343
+ allowHalf?: boolean | undefined;
344
+ displayMap?: boolean | undefined;
345
+ allowGeocoding?: boolean | undefined;
346
+ addressFormat?: "us" | "uk" | "international" | undefined;
347
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
348
+ allowAlpha?: boolean | undefined;
349
+ presetColors?: string[] | undefined;
279
350
  }>;
280
351
  datasource: string;
281
352
  isSystem: boolean;
@@ -291,19 +362,18 @@ export declare const ObjectSchema: z.ZodObject<{
291
362
  }[] | undefined;
292
363
  nameField?: string | undefined;
293
364
  enable?: {
294
- trackHistory: boolean;
295
365
  searchable: boolean;
366
+ trackHistory: boolean;
296
367
  apiEnabled: boolean;
297
368
  files: boolean;
298
369
  feedEnabled: boolean;
299
370
  trash: boolean;
371
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
300
372
  } | undefined;
301
373
  }, {
302
374
  name: string;
303
375
  fields: Record<string, {
304
- type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "multiselect" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber";
305
- label: string;
306
- name: string;
376
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
307
377
  formula?: string | undefined;
308
378
  options?: {
309
379
  value: string;
@@ -311,8 +381,12 @@ export declare const ObjectSchema: z.ZodObject<{
311
381
  color?: string | undefined;
312
382
  default?: boolean | undefined;
313
383
  }[] | undefined;
384
+ label?: string | undefined;
385
+ name?: string | undefined;
314
386
  description?: string | undefined;
387
+ format?: string | undefined;
315
388
  required?: boolean | undefined;
389
+ searchable?: boolean | undefined;
316
390
  multiple?: boolean | undefined;
317
391
  unique?: boolean | undefined;
318
392
  defaultValue?: any;
@@ -332,6 +406,17 @@ export declare const ObjectSchema: z.ZodObject<{
332
406
  function: "min" | "max" | "count" | "sum" | "avg";
333
407
  field: string;
334
408
  } | undefined;
409
+ language?: string | undefined;
410
+ theme?: string | undefined;
411
+ lineNumbers?: boolean | undefined;
412
+ maxRating?: number | undefined;
413
+ allowHalf?: boolean | undefined;
414
+ displayMap?: boolean | undefined;
415
+ allowGeocoding?: boolean | undefined;
416
+ addressFormat?: "us" | "uk" | "international" | undefined;
417
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
418
+ allowAlpha?: boolean | undefined;
419
+ presetColors?: string[] | undefined;
335
420
  hidden?: boolean | undefined;
336
421
  readonly?: boolean | undefined;
337
422
  encryption?: boolean | undefined;
@@ -352,13 +437,408 @@ export declare const ObjectSchema: z.ZodObject<{
352
437
  }[] | undefined;
353
438
  nameField?: string | undefined;
354
439
  enable?: {
355
- trackHistory?: boolean | undefined;
356
440
  searchable?: boolean | undefined;
441
+ trackHistory?: boolean | undefined;
357
442
  apiEnabled?: boolean | undefined;
443
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
358
444
  files?: boolean | undefined;
359
445
  feedEnabled?: boolean | undefined;
360
446
  trash?: boolean | undefined;
361
447
  } | undefined;
362
448
  }>;
363
- export type ServiceObject = z.infer<typeof ObjectSchema>;
449
+ /**
450
+ * Enhanced ObjectSchema with Factory
451
+ */
452
+ export declare const ObjectSchema: z.ZodObject<{
453
+ /** Identify */
454
+ name: z.ZodString;
455
+ label: z.ZodOptional<z.ZodString>;
456
+ pluralLabel: z.ZodOptional<z.ZodString>;
457
+ description: z.ZodOptional<z.ZodString>;
458
+ icon: z.ZodOptional<z.ZodString>;
459
+ /**
460
+ * Storage / Virtualization Config
461
+ * Defines where the data actually lives.
462
+ */
463
+ datasource: z.ZodDefault<z.ZodString>;
464
+ tableName: z.ZodOptional<z.ZodString>;
465
+ isSystem: z.ZodDefault<z.ZodBoolean>;
466
+ /** Fields Definition */
467
+ fields: z.ZodRecord<z.ZodString, z.ZodObject<{
468
+ name: z.ZodOptional<z.ZodString>;
469
+ label: z.ZodOptional<z.ZodString>;
470
+ type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "select", "lookup", "master_detail", "image", "file", "avatar", "formula", "summary", "autonumber", "location", "address", "code", "color", "rating", "signature"]>;
471
+ description: z.ZodOptional<z.ZodString>;
472
+ format: z.ZodOptional<z.ZodString>;
473
+ required: z.ZodDefault<z.ZodBoolean>;
474
+ searchable: z.ZodDefault<z.ZodBoolean>;
475
+ multiple: z.ZodDefault<z.ZodBoolean>;
476
+ unique: z.ZodDefault<z.ZodBoolean>;
477
+ defaultValue: z.ZodOptional<z.ZodAny>;
478
+ maxLength: z.ZodOptional<z.ZodNumber>;
479
+ minLength: z.ZodOptional<z.ZodNumber>;
480
+ precision: z.ZodOptional<z.ZodNumber>;
481
+ scale: z.ZodOptional<z.ZodNumber>;
482
+ min: z.ZodOptional<z.ZodNumber>;
483
+ max: z.ZodOptional<z.ZodNumber>;
484
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
485
+ label: z.ZodString;
486
+ value: z.ZodString;
487
+ color: z.ZodOptional<z.ZodString>;
488
+ default: z.ZodOptional<z.ZodBoolean>;
489
+ }, "strip", z.ZodTypeAny, {
490
+ value: string;
491
+ label: string;
492
+ color?: string | undefined;
493
+ default?: boolean | undefined;
494
+ }, {
495
+ value: string;
496
+ label: string;
497
+ color?: string | undefined;
498
+ default?: boolean | undefined;
499
+ }>, "many">>;
500
+ reference: z.ZodOptional<z.ZodString>;
501
+ referenceFilters: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
502
+ writeRequiresMasterRead: z.ZodOptional<z.ZodBoolean>;
503
+ deleteBehavior: z.ZodDefault<z.ZodOptional<z.ZodEnum<["set_null", "cascade", "restrict"]>>>;
504
+ expression: z.ZodOptional<z.ZodString>;
505
+ formula: z.ZodOptional<z.ZodString>;
506
+ summaryOperations: z.ZodOptional<z.ZodObject<{
507
+ object: z.ZodString;
508
+ field: z.ZodString;
509
+ function: z.ZodEnum<["count", "sum", "min", "max", "avg"]>;
510
+ }, "strip", z.ZodTypeAny, {
511
+ object: string;
512
+ function: "min" | "max" | "count" | "sum" | "avg";
513
+ field: string;
514
+ }, {
515
+ object: string;
516
+ function: "min" | "max" | "count" | "sum" | "avg";
517
+ field: string;
518
+ }>>;
519
+ language: z.ZodOptional<z.ZodString>;
520
+ theme: z.ZodOptional<z.ZodString>;
521
+ lineNumbers: z.ZodOptional<z.ZodBoolean>;
522
+ maxRating: z.ZodOptional<z.ZodNumber>;
523
+ allowHalf: z.ZodOptional<z.ZodBoolean>;
524
+ displayMap: z.ZodOptional<z.ZodBoolean>;
525
+ allowGeocoding: z.ZodOptional<z.ZodBoolean>;
526
+ addressFormat: z.ZodOptional<z.ZodEnum<["us", "uk", "international"]>>;
527
+ colorFormat: z.ZodOptional<z.ZodEnum<["hex", "rgb", "rgba", "hsl"]>>;
528
+ allowAlpha: z.ZodOptional<z.ZodBoolean>;
529
+ presetColors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
530
+ hidden: z.ZodDefault<z.ZodBoolean>;
531
+ readonly: z.ZodDefault<z.ZodBoolean>;
532
+ encryption: z.ZodDefault<z.ZodBoolean>;
533
+ index: z.ZodDefault<z.ZodBoolean>;
534
+ externalId: z.ZodDefault<z.ZodBoolean>;
535
+ }, "strip", z.ZodTypeAny, {
536
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
537
+ required: boolean;
538
+ searchable: boolean;
539
+ multiple: boolean;
540
+ unique: boolean;
541
+ deleteBehavior: "set_null" | "cascade" | "restrict";
542
+ hidden: boolean;
543
+ readonly: boolean;
544
+ encryption: boolean;
545
+ index: boolean;
546
+ externalId: boolean;
547
+ formula?: string | undefined;
548
+ options?: {
549
+ value: string;
550
+ label: string;
551
+ color?: string | undefined;
552
+ default?: boolean | undefined;
553
+ }[] | undefined;
554
+ label?: string | undefined;
555
+ name?: string | undefined;
556
+ description?: string | undefined;
557
+ format?: string | undefined;
558
+ defaultValue?: any;
559
+ maxLength?: number | undefined;
560
+ minLength?: number | undefined;
561
+ precision?: number | undefined;
562
+ scale?: number | undefined;
563
+ min?: number | undefined;
564
+ max?: number | undefined;
565
+ reference?: string | undefined;
566
+ referenceFilters?: string[] | undefined;
567
+ writeRequiresMasterRead?: boolean | undefined;
568
+ expression?: string | undefined;
569
+ summaryOperations?: {
570
+ object: string;
571
+ function: "min" | "max" | "count" | "sum" | "avg";
572
+ field: string;
573
+ } | undefined;
574
+ language?: string | undefined;
575
+ theme?: string | undefined;
576
+ lineNumbers?: boolean | undefined;
577
+ maxRating?: number | undefined;
578
+ allowHalf?: boolean | undefined;
579
+ displayMap?: boolean | undefined;
580
+ allowGeocoding?: boolean | undefined;
581
+ addressFormat?: "us" | "uk" | "international" | undefined;
582
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
583
+ allowAlpha?: boolean | undefined;
584
+ presetColors?: string[] | undefined;
585
+ }, {
586
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
587
+ formula?: string | undefined;
588
+ options?: {
589
+ value: string;
590
+ label: string;
591
+ color?: string | undefined;
592
+ default?: boolean | undefined;
593
+ }[] | undefined;
594
+ label?: string | undefined;
595
+ name?: string | undefined;
596
+ description?: string | undefined;
597
+ format?: string | undefined;
598
+ required?: boolean | undefined;
599
+ searchable?: boolean | undefined;
600
+ multiple?: boolean | undefined;
601
+ unique?: boolean | undefined;
602
+ defaultValue?: any;
603
+ maxLength?: number | undefined;
604
+ minLength?: number | undefined;
605
+ precision?: number | undefined;
606
+ scale?: number | undefined;
607
+ min?: number | undefined;
608
+ max?: number | undefined;
609
+ reference?: string | undefined;
610
+ referenceFilters?: string[] | undefined;
611
+ writeRequiresMasterRead?: boolean | undefined;
612
+ deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
613
+ expression?: string | undefined;
614
+ summaryOperations?: {
615
+ object: string;
616
+ function: "min" | "max" | "count" | "sum" | "avg";
617
+ field: string;
618
+ } | undefined;
619
+ language?: string | undefined;
620
+ theme?: string | undefined;
621
+ lineNumbers?: boolean | undefined;
622
+ maxRating?: number | undefined;
623
+ allowHalf?: boolean | undefined;
624
+ displayMap?: boolean | undefined;
625
+ allowGeocoding?: boolean | undefined;
626
+ addressFormat?: "us" | "uk" | "international" | undefined;
627
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
628
+ allowAlpha?: boolean | undefined;
629
+ presetColors?: string[] | undefined;
630
+ hidden?: boolean | undefined;
631
+ readonly?: boolean | undefined;
632
+ encryption?: boolean | undefined;
633
+ index?: boolean | undefined;
634
+ externalId?: boolean | undefined;
635
+ }>>;
636
+ /** Indexes */
637
+ indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
638
+ name: z.ZodOptional<z.ZodString>;
639
+ fields: z.ZodArray<z.ZodString, "many">;
640
+ unique: z.ZodOptional<z.ZodBoolean>;
641
+ }, "strip", z.ZodTypeAny, {
642
+ fields: string[];
643
+ name?: string | undefined;
644
+ unique?: boolean | undefined;
645
+ }, {
646
+ fields: string[];
647
+ name?: string | undefined;
648
+ unique?: boolean | undefined;
649
+ }>, "many">>;
650
+ /** Key Fields */
651
+ nameField: z.ZodOptional<z.ZodString>;
652
+ /** Features & Capabilities */
653
+ enable: z.ZodOptional<z.ZodObject<{
654
+ /** Enable history tracking (Audit Trail) */
655
+ trackHistory: z.ZodDefault<z.ZodBoolean>;
656
+ /** Enable global search indexing */
657
+ searchable: z.ZodDefault<z.ZodBoolean>;
658
+ /** Enable REST/GraphQL API access */
659
+ apiEnabled: z.ZodDefault<z.ZodBoolean>;
660
+ /**
661
+ * API Supported Operations
662
+ * Explicitly whitelist allowed operations.
663
+ * If not defined, all standard operations are allowed (if apiEnabled=true).
664
+ */
665
+ apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["get", "list", "create", "update", "delete", "upsert", "bulkCreate", "bulkUpdate", "bulkDelete", "bulkUpsert", "aggregate", "history", "search", "restore", "purge", "import", "export"]>, "many">>;
666
+ /** Enable attachments/files */
667
+ files: z.ZodDefault<z.ZodBoolean>;
668
+ /** Enable discussions/chatter */
669
+ feedEnabled: z.ZodDefault<z.ZodBoolean>;
670
+ /** Enable Recycle Bin mechanics */
671
+ trash: z.ZodDefault<z.ZodBoolean>;
672
+ }, "strip", z.ZodTypeAny, {
673
+ searchable: boolean;
674
+ trackHistory: boolean;
675
+ apiEnabled: boolean;
676
+ files: boolean;
677
+ feedEnabled: boolean;
678
+ trash: boolean;
679
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
680
+ }, {
681
+ searchable?: boolean | undefined;
682
+ trackHistory?: boolean | undefined;
683
+ apiEnabled?: boolean | undefined;
684
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
685
+ files?: boolean | undefined;
686
+ feedEnabled?: boolean | undefined;
687
+ trash?: boolean | undefined;
688
+ }>>;
689
+ }, "strip", z.ZodTypeAny, {
690
+ name: string;
691
+ fields: Record<string, {
692
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
693
+ required: boolean;
694
+ searchable: boolean;
695
+ multiple: boolean;
696
+ unique: boolean;
697
+ deleteBehavior: "set_null" | "cascade" | "restrict";
698
+ hidden: boolean;
699
+ readonly: boolean;
700
+ encryption: boolean;
701
+ index: boolean;
702
+ externalId: boolean;
703
+ formula?: string | undefined;
704
+ options?: {
705
+ value: string;
706
+ label: string;
707
+ color?: string | undefined;
708
+ default?: boolean | undefined;
709
+ }[] | undefined;
710
+ label?: string | undefined;
711
+ name?: string | undefined;
712
+ description?: string | undefined;
713
+ format?: string | undefined;
714
+ defaultValue?: any;
715
+ maxLength?: number | undefined;
716
+ minLength?: number | undefined;
717
+ precision?: number | undefined;
718
+ scale?: number | undefined;
719
+ min?: number | undefined;
720
+ max?: number | undefined;
721
+ reference?: string | undefined;
722
+ referenceFilters?: string[] | undefined;
723
+ writeRequiresMasterRead?: boolean | undefined;
724
+ expression?: string | undefined;
725
+ summaryOperations?: {
726
+ object: string;
727
+ function: "min" | "max" | "count" | "sum" | "avg";
728
+ field: string;
729
+ } | undefined;
730
+ language?: string | undefined;
731
+ theme?: string | undefined;
732
+ lineNumbers?: boolean | undefined;
733
+ maxRating?: number | undefined;
734
+ allowHalf?: boolean | undefined;
735
+ displayMap?: boolean | undefined;
736
+ allowGeocoding?: boolean | undefined;
737
+ addressFormat?: "us" | "uk" | "international" | undefined;
738
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
739
+ allowAlpha?: boolean | undefined;
740
+ presetColors?: string[] | undefined;
741
+ }>;
742
+ datasource: string;
743
+ isSystem: boolean;
744
+ label?: string | undefined;
745
+ description?: string | undefined;
746
+ pluralLabel?: string | undefined;
747
+ icon?: string | undefined;
748
+ tableName?: string | undefined;
749
+ indexes?: {
750
+ fields: string[];
751
+ name?: string | undefined;
752
+ unique?: boolean | undefined;
753
+ }[] | undefined;
754
+ nameField?: string | undefined;
755
+ enable?: {
756
+ searchable: boolean;
757
+ trackHistory: boolean;
758
+ apiEnabled: boolean;
759
+ files: boolean;
760
+ feedEnabled: boolean;
761
+ trash: boolean;
762
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
763
+ } | undefined;
764
+ }, {
765
+ name: string;
766
+ fields: Record<string, {
767
+ type: "number" | "boolean" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "date" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "address" | "code" | "color" | "rating" | "signature";
768
+ formula?: string | undefined;
769
+ options?: {
770
+ value: string;
771
+ label: string;
772
+ color?: string | undefined;
773
+ default?: boolean | undefined;
774
+ }[] | undefined;
775
+ label?: string | undefined;
776
+ name?: string | undefined;
777
+ description?: string | undefined;
778
+ format?: string | undefined;
779
+ required?: boolean | undefined;
780
+ searchable?: boolean | undefined;
781
+ multiple?: boolean | undefined;
782
+ unique?: boolean | undefined;
783
+ defaultValue?: any;
784
+ maxLength?: number | undefined;
785
+ minLength?: number | undefined;
786
+ precision?: number | undefined;
787
+ scale?: number | undefined;
788
+ min?: number | undefined;
789
+ max?: number | undefined;
790
+ reference?: string | undefined;
791
+ referenceFilters?: string[] | undefined;
792
+ writeRequiresMasterRead?: boolean | undefined;
793
+ deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
794
+ expression?: string | undefined;
795
+ summaryOperations?: {
796
+ object: string;
797
+ function: "min" | "max" | "count" | "sum" | "avg";
798
+ field: string;
799
+ } | undefined;
800
+ language?: string | undefined;
801
+ theme?: string | undefined;
802
+ lineNumbers?: boolean | undefined;
803
+ maxRating?: number | undefined;
804
+ allowHalf?: boolean | undefined;
805
+ displayMap?: boolean | undefined;
806
+ allowGeocoding?: boolean | undefined;
807
+ addressFormat?: "us" | "uk" | "international" | undefined;
808
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
809
+ allowAlpha?: boolean | undefined;
810
+ presetColors?: string[] | undefined;
811
+ hidden?: boolean | undefined;
812
+ readonly?: boolean | undefined;
813
+ encryption?: boolean | undefined;
814
+ index?: boolean | undefined;
815
+ externalId?: boolean | undefined;
816
+ }>;
817
+ label?: string | undefined;
818
+ description?: string | undefined;
819
+ pluralLabel?: string | undefined;
820
+ icon?: string | undefined;
821
+ datasource?: string | undefined;
822
+ tableName?: string | undefined;
823
+ isSystem?: boolean | undefined;
824
+ indexes?: {
825
+ fields: string[];
826
+ name?: string | undefined;
827
+ unique?: boolean | undefined;
828
+ }[] | undefined;
829
+ nameField?: string | undefined;
830
+ enable?: {
831
+ searchable?: boolean | undefined;
832
+ trackHistory?: boolean | undefined;
833
+ apiEnabled?: boolean | undefined;
834
+ apiMethods?: ("get" | "list" | "create" | "update" | "delete" | "upsert" | "bulkCreate" | "bulkUpdate" | "bulkDelete" | "bulkUpsert" | "aggregate" | "history" | "search" | "restore" | "purge" | "import" | "export")[] | undefined;
835
+ files?: boolean | undefined;
836
+ feedEnabled?: boolean | undefined;
837
+ trash?: boolean | undefined;
838
+ } | undefined;
839
+ }> & {
840
+ create: <T extends z.input<typeof ObjectSchemaBase>>(config: T) => T;
841
+ };
842
+ export type ServiceObject = z.infer<typeof ObjectSchemaBase>;
843
+ export {};
364
844
  //# sourceMappingURL=object.zod.d.ts.map