@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
@@ -1 +1 @@
1
- {"version":3,"file":"field.zod.d.ts","sourceRoot":"","sources":["../../src/data/field.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,SAAS,qRAmBpB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,eAAe;;;;;IAMf,2BAA2B;;;;;IAM3B,8BAA8B;;;IAI9B,yBAAyB;;;;;IAMzB,wBAAwB;;;;;;;;;;;;;;;;;IAGxB,0BAA0B;;;;;IAM1B,kBAAkB;;;;;;;;;;;;;;;;IASlB,4BAA4B;;;;IAK5B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGf,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"field.zod.d.ts","sourceRoot":"","sources":["../../src/data/field.zod.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FieldSchema = exports.SelectOptionSchema = exports.FieldType = void 0;
3
+ exports.Field = exports.FieldSchema = exports.AddressSchema = exports.LocationCoordinatesSchema = exports.SelectOptionSchema = exports.FieldType = void 0;
4
4
  const zod_1 = require("zod");
5
5
  /**
6
6
  * Field Type Enum
@@ -9,7 +9,7 @@ exports.FieldType = zod_1.z.enum([
9
9
  // Core Text
10
10
  'text', 'textarea', 'email', 'url', 'phone', 'password',
11
11
  // Rich Content
12
- 'markdown', 'html',
12
+ 'markdown', 'html', 'richtext',
13
13
  // Numbers
14
14
  'number', 'currency', 'percent',
15
15
  // Date & Time
@@ -17,13 +17,20 @@ exports.FieldType = zod_1.z.enum([
17
17
  // Logic
18
18
  'boolean',
19
19
  // Selection
20
- 'select', 'multiselect', // Static options
20
+ 'select', // Static options
21
21
  // Relational
22
22
  'lookup', 'master_detail', // Dynamic reference to other objects
23
23
  // Media
24
24
  'image', 'file', 'avatar',
25
25
  // Calculated / System
26
- 'formula', 'summary', 'autonumber'
26
+ 'formula', 'summary', 'autonumber',
27
+ // Enhanced Types
28
+ 'location', // GPS coordinates
29
+ 'address', // Structured address
30
+ 'code', // Code with syntax highlighting
31
+ 'color', // Color picker
32
+ 'rating', // Star rating
33
+ 'signature' // Digital signature
27
34
  ]);
28
35
  /**
29
36
  * Select Option Schema
@@ -34,17 +41,42 @@ exports.SelectOptionSchema = zod_1.z.object({
34
41
  color: zod_1.z.string().optional().describe('Color code for badges/charts'),
35
42
  default: zod_1.z.boolean().optional().describe('Is default option'),
36
43
  });
44
+ /**
45
+ * Location Coordinates Schema
46
+ * GPS coordinates for location field type
47
+ */
48
+ exports.LocationCoordinatesSchema = zod_1.z.object({
49
+ latitude: zod_1.z.number().min(-90).max(90).describe('Latitude coordinate'),
50
+ longitude: zod_1.z.number().min(-180).max(180).describe('Longitude coordinate'),
51
+ altitude: zod_1.z.number().optional().describe('Altitude in meters'),
52
+ accuracy: zod_1.z.number().optional().describe('Accuracy in meters'),
53
+ });
54
+ /**
55
+ * Address Schema
56
+ * Structured address for address field type
57
+ */
58
+ exports.AddressSchema = zod_1.z.object({
59
+ street: zod_1.z.string().optional().describe('Street address'),
60
+ city: zod_1.z.string().optional().describe('City name'),
61
+ state: zod_1.z.string().optional().describe('State/Province'),
62
+ postalCode: zod_1.z.string().optional().describe('Postal/ZIP code'),
63
+ country: zod_1.z.string().optional().describe('Country name or code'),
64
+ countryCode: zod_1.z.string().optional().describe('ISO country code (e.g., US, GB)'),
65
+ formatted: zod_1.z.string().optional().describe('Formatted address string'),
66
+ });
37
67
  /**
38
68
  * Field Schema - Best Practice Enterprise Pattern
39
69
  */
40
70
  exports.FieldSchema = zod_1.z.object({
41
71
  /** Identity */
42
- name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)'),
43
- label: zod_1.z.string().describe('Human readable label'),
72
+ name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)').optional(),
73
+ label: zod_1.z.string().optional().describe('Human readable label'),
44
74
  type: exports.FieldType.describe('Field Data Type'),
45
75
  description: zod_1.z.string().optional().describe('Tooltip/Help text'),
76
+ format: zod_1.z.string().optional().describe('Format string (e.g. email, phone)'),
46
77
  /** Database Constraints */
47
78
  required: zod_1.z.boolean().default(false).describe('Is required'),
79
+ searchable: zod_1.z.boolean().default(false).describe('Is searchable'),
48
80
  multiple: zod_1.z.boolean().default(false).describe('Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.'),
49
81
  unique: zod_1.z.boolean().default(false).describe('Is unique constraint'),
50
82
  defaultValue: zod_1.z.any().optional().describe('Default value'),
@@ -64,13 +96,30 @@ exports.FieldSchema = zod_1.z.object({
64
96
  writeRequiresMasterRead: zod_1.z.boolean().optional().describe('If true, user needs read access to master record to edit this field'),
65
97
  deleteBehavior: zod_1.z.enum(['set_null', 'cascade', 'restrict']).optional().default('set_null').describe('What happens if referenced record is deleted'),
66
98
  /** Calculation */
67
- expression: zod_1.z.string().optional().describe('Formula expression'), // Changed from formula to expression to match common usage, but keeping one consistent is key. Let's use expression as generic.
68
- formula: zod_1.z.string().optional().describe('Deprecated: Use expression'), // Backwards compat or just keep.
99
+ expression: zod_1.z.string().optional().describe('Formula expression'),
100
+ formula: zod_1.z.string().optional().describe('Deprecated: Use expression'),
69
101
  summaryOperations: zod_1.z.object({
70
102
  object: zod_1.z.string(),
71
103
  field: zod_1.z.string(),
72
104
  function: zod_1.z.enum(['count', 'sum', 'min', 'max', 'avg'])
73
105
  }).optional().describe('Roll-up summary definition'),
106
+ /** Enhanced Field Type Configurations */
107
+ // Code field config
108
+ language: zod_1.z.string().optional().describe('Programming language for syntax highlighting (e.g., javascript, python, sql)'),
109
+ theme: zod_1.z.string().optional().describe('Code editor theme (e.g., dark, light, monokai)'),
110
+ lineNumbers: zod_1.z.boolean().optional().describe('Show line numbers in code editor'),
111
+ // Rating field config
112
+ maxRating: zod_1.z.number().optional().describe('Maximum rating value (default: 5)'),
113
+ allowHalf: zod_1.z.boolean().optional().describe('Allow half-star ratings'),
114
+ // Location field config
115
+ displayMap: zod_1.z.boolean().optional().describe('Display map widget for location field'),
116
+ allowGeocoding: zod_1.z.boolean().optional().describe('Allow address-to-coordinate conversion'),
117
+ // Address field config
118
+ addressFormat: zod_1.z.enum(['us', 'uk', 'international']).optional().describe('Address format template'),
119
+ // Color field config
120
+ colorFormat: zod_1.z.enum(['hex', 'rgb', 'rgba', 'hsl']).optional().describe('Color value format'),
121
+ allowAlpha: zod_1.z.boolean().optional().describe('Allow transparency/alpha channel'),
122
+ presetColors: zod_1.z.array(zod_1.z.string()).optional().describe('Preset color options'),
74
123
  /** Security & Visibility */
75
124
  hidden: zod_1.z.boolean().default(false).describe('Hidden from default UI'),
76
125
  readonly: zod_1.z.boolean().default(false).describe('Read-only in UI'),
@@ -79,3 +128,95 @@ exports.FieldSchema = zod_1.z.object({
79
128
  index: zod_1.z.boolean().default(false).describe('Create standard database index'),
80
129
  externalId: zod_1.z.boolean().default(false).describe('Is external ID for upsert operations'),
81
130
  });
131
+ exports.Field = {
132
+ text: (config = {}) => ({ type: 'text', ...config }),
133
+ textarea: (config = {}) => ({ type: 'textarea', ...config }),
134
+ number: (config = {}) => ({ type: 'number', ...config }),
135
+ boolean: (config = {}) => ({ type: 'boolean', ...config }),
136
+ date: (config = {}) => ({ type: 'date', ...config }),
137
+ datetime: (config = {}) => ({ type: 'datetime', ...config }),
138
+ currency: (config = {}) => ({ type: 'currency', ...config }),
139
+ percent: (config = {}) => ({ type: 'percent', ...config }),
140
+ url: (config = {}) => ({ type: 'url', ...config }),
141
+ email: (config = {}) => ({ type: 'email', ...config }),
142
+ phone: (config = {}) => ({ type: 'phone', ...config }),
143
+ image: (config = {}) => ({ type: 'image', ...config }),
144
+ file: (config = {}) => ({ type: 'file', ...config }),
145
+ avatar: (config = {}) => ({ type: 'avatar', ...config }),
146
+ formula: (config = {}) => ({ type: 'formula', ...config }),
147
+ summary: (config = {}) => ({ type: 'summary', ...config }),
148
+ autonumber: (config = {}) => ({ type: 'autonumber', ...config }),
149
+ markdown: (config = {}) => ({ type: 'markdown', ...config }),
150
+ html: (config = {}) => ({ type: 'html', ...config }),
151
+ password: (config = {}) => ({ type: 'password', ...config }),
152
+ /**
153
+ * Select field helper with backward-compatible API
154
+ *
155
+ * @example Old API (array first)
156
+ * Field.select(['High', 'Low'], { label: 'Priority' })
157
+ *
158
+ * @example New API (config object)
159
+ * Field.select({ options: [{label: 'High', value: 'high'}], label: 'Priority' })
160
+ */
161
+ select: (optionsOrConfig, config) => {
162
+ // Support both old and new signatures:
163
+ // Old: Field.select(['a', 'b'], { label: 'X' })
164
+ // New: Field.select({ options: [{label: 'A', value: 'a'}], label: 'X' })
165
+ let options;
166
+ let finalConfig;
167
+ if (Array.isArray(optionsOrConfig)) {
168
+ // Old signature: array as first param
169
+ options = optionsOrConfig.map(o => typeof o === 'string' ? { label: o, value: o } : o);
170
+ finalConfig = config || {};
171
+ }
172
+ else {
173
+ // New signature: config object with options
174
+ options = (optionsOrConfig.options || []).map(o => typeof o === 'string' ? { label: o, value: o } : o);
175
+ // Remove options from config to avoid confusion
176
+ const { options: _, ...restConfig } = optionsOrConfig;
177
+ finalConfig = restConfig;
178
+ }
179
+ return { type: 'select', options, ...finalConfig };
180
+ },
181
+ lookup: (reference, config = {}) => ({
182
+ type: 'lookup',
183
+ reference,
184
+ ...config
185
+ }),
186
+ masterDetail: (reference, config = {}) => ({
187
+ type: 'master_detail',
188
+ reference,
189
+ ...config
190
+ }),
191
+ // Enhanced Field Type Helpers
192
+ location: (config = {}) => ({
193
+ type: 'location',
194
+ ...config
195
+ }),
196
+ address: (config = {}) => ({
197
+ type: 'address',
198
+ ...config
199
+ }),
200
+ richtext: (config = {}) => ({
201
+ type: 'richtext',
202
+ ...config
203
+ }),
204
+ code: (language, config = {}) => ({
205
+ type: 'code',
206
+ language,
207
+ ...config
208
+ }),
209
+ color: (config = {}) => ({
210
+ type: 'color',
211
+ ...config
212
+ }),
213
+ rating: (maxRating = 5, config = {}) => ({
214
+ type: 'rating',
215
+ maxRating,
216
+ ...config
217
+ }),
218
+ signature: (config = {}) => ({
219
+ type: 'signature',
220
+ ...config
221
+ }),
222
+ };
@@ -146,7 +146,111 @@ export declare const MappingSchema: z.ZodObject<{
146
146
  extractQuery: z.ZodOptional<z.ZodObject<{
147
147
  object: z.ZodString;
148
148
  fields: z.ZodOptional<z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">>;
149
+ aggregations: z.ZodOptional<z.ZodArray<z.ZodObject<{
150
+ function: z.ZodEnum<["count", "sum", "avg", "min", "max", "count_distinct", "array_agg", "string_agg"]>;
151
+ field: z.ZodOptional<z.ZodString>;
152
+ alias: z.ZodString;
153
+ distinct: z.ZodOptional<z.ZodBoolean>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
156
+ alias: string;
157
+ field?: string | undefined;
158
+ distinct?: boolean | undefined;
159
+ }, {
160
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
161
+ alias: string;
162
+ field?: string | undefined;
163
+ distinct?: boolean | undefined;
164
+ }>, "many">>;
165
+ windowFunctions: z.ZodOptional<z.ZodArray<z.ZodObject<{
166
+ function: z.ZodEnum<["row_number", "rank", "dense_rank", "percent_rank", "lag", "lead", "first_value", "last_value", "sum", "avg", "count", "min", "max"]>;
167
+ field: z.ZodOptional<z.ZodString>;
168
+ alias: z.ZodString;
169
+ over: z.ZodObject<{
170
+ partitionBy: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
171
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
172
+ field: z.ZodString;
173
+ order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ field: string;
176
+ order: "asc" | "desc";
177
+ }, {
178
+ field: string;
179
+ order?: "asc" | "desc" | undefined;
180
+ }>, "many">>;
181
+ frame: z.ZodOptional<z.ZodObject<{
182
+ type: z.ZodOptional<z.ZodEnum<["rows", "range"]>>;
183
+ start: z.ZodOptional<z.ZodString>;
184
+ end: z.ZodOptional<z.ZodString>;
185
+ }, "strip", z.ZodTypeAny, {
186
+ type?: "rows" | "range" | undefined;
187
+ start?: string | undefined;
188
+ end?: string | undefined;
189
+ }, {
190
+ type?: "rows" | "range" | undefined;
191
+ start?: string | undefined;
192
+ end?: string | undefined;
193
+ }>>;
194
+ }, "strip", z.ZodTypeAny, {
195
+ partitionBy?: string[] | undefined;
196
+ orderBy?: {
197
+ field: string;
198
+ order: "asc" | "desc";
199
+ }[] | undefined;
200
+ frame?: {
201
+ type?: "rows" | "range" | undefined;
202
+ start?: string | undefined;
203
+ end?: string | undefined;
204
+ } | undefined;
205
+ }, {
206
+ partitionBy?: string[] | undefined;
207
+ orderBy?: {
208
+ field: string;
209
+ order?: "asc" | "desc" | undefined;
210
+ }[] | undefined;
211
+ frame?: {
212
+ type?: "rows" | "range" | undefined;
213
+ start?: string | undefined;
214
+ end?: string | undefined;
215
+ } | undefined;
216
+ }>;
217
+ }, "strip", z.ZodTypeAny, {
218
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
219
+ alias: string;
220
+ over: {
221
+ partitionBy?: string[] | undefined;
222
+ orderBy?: {
223
+ field: string;
224
+ order: "asc" | "desc";
225
+ }[] | undefined;
226
+ frame?: {
227
+ type?: "rows" | "range" | undefined;
228
+ start?: string | undefined;
229
+ end?: string | undefined;
230
+ } | undefined;
231
+ };
232
+ field?: string | undefined;
233
+ }, {
234
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
235
+ alias: string;
236
+ over: {
237
+ partitionBy?: string[] | undefined;
238
+ orderBy?: {
239
+ field: string;
240
+ order?: "asc" | "desc" | undefined;
241
+ }[] | undefined;
242
+ frame?: {
243
+ type?: "rows" | "range" | undefined;
244
+ start?: string | undefined;
245
+ end?: string | undefined;
246
+ } | undefined;
247
+ };
248
+ field?: string | undefined;
249
+ }>, "many">>;
149
250
  filters: z.ZodOptional<z.ZodType<any, z.ZodTypeDef, any>>;
251
+ joins: z.ZodOptional<z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">>;
252
+ groupBy: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
253
+ having: z.ZodOptional<z.ZodType<any, z.ZodTypeDef, any>>;
150
254
  sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
151
255
  field: z.ZodString;
152
256
  order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
@@ -159,6 +263,7 @@ export declare const MappingSchema: z.ZodObject<{
159
263
  }>, "many">>;
160
264
  top: z.ZodOptional<z.ZodNumber>;
161
265
  skip: z.ZodOptional<z.ZodNumber>;
266
+ distinct: z.ZodOptional<z.ZodBoolean>;
162
267
  }, "strip", z.ZodTypeAny, {
163
268
  object: string;
164
269
  sort?: {
@@ -166,7 +271,34 @@ export declare const MappingSchema: z.ZodObject<{
166
271
  order: "asc" | "desc";
167
272
  }[] | undefined;
168
273
  fields?: any[] | undefined;
274
+ distinct?: boolean | undefined;
275
+ aggregations?: {
276
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
277
+ alias: string;
278
+ field?: string | undefined;
279
+ distinct?: boolean | undefined;
280
+ }[] | undefined;
281
+ windowFunctions?: {
282
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
283
+ alias: string;
284
+ over: {
285
+ partitionBy?: string[] | undefined;
286
+ orderBy?: {
287
+ field: string;
288
+ order: "asc" | "desc";
289
+ }[] | undefined;
290
+ frame?: {
291
+ type?: "rows" | "range" | undefined;
292
+ start?: string | undefined;
293
+ end?: string | undefined;
294
+ } | undefined;
295
+ };
296
+ field?: string | undefined;
297
+ }[] | undefined;
169
298
  filters?: any;
299
+ joins?: any[] | undefined;
300
+ groupBy?: string[] | undefined;
301
+ having?: any;
170
302
  top?: number | undefined;
171
303
  skip?: number | undefined;
172
304
  }, {
@@ -176,7 +308,34 @@ export declare const MappingSchema: z.ZodObject<{
176
308
  order?: "asc" | "desc" | undefined;
177
309
  }[] | undefined;
178
310
  fields?: any[] | undefined;
311
+ distinct?: boolean | undefined;
312
+ aggregations?: {
313
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
314
+ alias: string;
315
+ field?: string | undefined;
316
+ distinct?: boolean | undefined;
317
+ }[] | undefined;
318
+ windowFunctions?: {
319
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
320
+ alias: string;
321
+ over: {
322
+ partitionBy?: string[] | undefined;
323
+ orderBy?: {
324
+ field: string;
325
+ order?: "asc" | "desc" | undefined;
326
+ }[] | undefined;
327
+ frame?: {
328
+ type?: "rows" | "range" | undefined;
329
+ start?: string | undefined;
330
+ end?: string | undefined;
331
+ } | undefined;
332
+ };
333
+ field?: string | undefined;
334
+ }[] | undefined;
179
335
  filters?: any;
336
+ joins?: any[] | undefined;
337
+ groupBy?: string[] | undefined;
338
+ having?: any;
180
339
  top?: number | undefined;
181
340
  skip?: number | undefined;
182
341
  }>>;
@@ -185,7 +344,7 @@ export declare const MappingSchema: z.ZodObject<{
185
344
  batchSize: z.ZodDefault<z.ZodNumber>;
186
345
  }, "strip", z.ZodTypeAny, {
187
346
  name: string;
188
- mode: "insert" | "update" | "upsert";
347
+ mode: "update" | "upsert" | "insert";
189
348
  sourceFormat: "json" | "csv" | "xml" | "sql";
190
349
  targetObject: string;
191
350
  fieldMapping: {
@@ -213,7 +372,34 @@ export declare const MappingSchema: z.ZodObject<{
213
372
  order: "asc" | "desc";
214
373
  }[] | undefined;
215
374
  fields?: any[] | undefined;
375
+ distinct?: boolean | undefined;
376
+ aggregations?: {
377
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
378
+ alias: string;
379
+ field?: string | undefined;
380
+ distinct?: boolean | undefined;
381
+ }[] | undefined;
382
+ windowFunctions?: {
383
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
384
+ alias: string;
385
+ over: {
386
+ partitionBy?: string[] | undefined;
387
+ orderBy?: {
388
+ field: string;
389
+ order: "asc" | "desc";
390
+ }[] | undefined;
391
+ frame?: {
392
+ type?: "rows" | "range" | undefined;
393
+ start?: string | undefined;
394
+ end?: string | undefined;
395
+ } | undefined;
396
+ };
397
+ field?: string | undefined;
398
+ }[] | undefined;
216
399
  filters?: any;
400
+ joins?: any[] | undefined;
401
+ groupBy?: string[] | undefined;
402
+ having?: any;
217
403
  top?: number | undefined;
218
404
  skip?: number | undefined;
219
405
  } | undefined;
@@ -235,7 +421,7 @@ export declare const MappingSchema: z.ZodObject<{
235
421
  transform?: "lookup" | "join" | "map" | "none" | "constant" | "split" | "javascript" | undefined;
236
422
  }[];
237
423
  label?: string | undefined;
238
- mode?: "insert" | "update" | "upsert" | undefined;
424
+ mode?: "update" | "upsert" | "insert" | undefined;
239
425
  sourceFormat?: "json" | "csv" | "xml" | "sql" | undefined;
240
426
  upsertKey?: string[] | undefined;
241
427
  extractQuery?: {
@@ -245,7 +431,34 @@ export declare const MappingSchema: z.ZodObject<{
245
431
  order?: "asc" | "desc" | undefined;
246
432
  }[] | undefined;
247
433
  fields?: any[] | undefined;
434
+ distinct?: boolean | undefined;
435
+ aggregations?: {
436
+ function: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
437
+ alias: string;
438
+ field?: string | undefined;
439
+ distinct?: boolean | undefined;
440
+ }[] | undefined;
441
+ windowFunctions?: {
442
+ function: "min" | "max" | "count" | "sum" | "avg" | "row_number" | "rank" | "dense_rank" | "percent_rank" | "lag" | "lead" | "first_value" | "last_value";
443
+ alias: string;
444
+ over: {
445
+ partitionBy?: string[] | undefined;
446
+ orderBy?: {
447
+ field: string;
448
+ order?: "asc" | "desc" | undefined;
449
+ }[] | undefined;
450
+ frame?: {
451
+ type?: "rows" | "range" | undefined;
452
+ start?: string | undefined;
453
+ end?: string | undefined;
454
+ } | undefined;
455
+ };
456
+ field?: string | undefined;
457
+ }[] | undefined;
248
458
  filters?: any;
459
+ joins?: any[] | undefined;
460
+ groupBy?: string[] | undefined;
461
+ having?: any;
249
462
  top?: number | undefined;
250
463
  skip?: number | undefined;
251
464
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.zod.d.ts","sourceRoot":"","sources":["../../src/data/mapping.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,aAAa,iFAQxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,oBAAoB;;IAGpB,mBAAmB;;IAGnB,qBAAqB;;IAGrB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa;IACxB,eAAe;;;IAIf,YAAY;;;IAIZ,sBAAsB;;QAzCtB,oBAAoB;;QAGpB,mBAAmB;;QAGnB,qBAAqB;;QAGrB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmClC,mBAAmB;;;IAInB,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGjC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"mapping.zod.d.ts","sourceRoot":"","sources":["../../src/data/mapping.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,aAAa,iFAQxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,oBAAoB;;IAGpB,mBAAmB;;IAGnB,qBAAqB;;IAGrB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa;IACxB,eAAe;;;IAIf,YAAY;;;IAIZ,sBAAsB;;QAzCtB,oBAAoB;;QAGpB,mBAAmB;;QAGnB,qBAAqB;;QAGrB,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmClC,mBAAmB;;;IAInB,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGjC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGrB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}