@oneuptime/common 7.0.4358 → 7.0.4372

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 (37) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +2 -2
  2. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.ts +2 -2
  3. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.ts +2 -2
  4. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.ts +2 -2
  5. package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +2 -2
  6. package/Models/DatabaseModels/Probe.ts +7 -1
  7. package/Models/DatabaseModels/ServiceCatalog.ts +2 -2
  8. package/Models/DatabaseModels/ServiceCopilotCodeRepository.ts +2 -2
  9. package/Server/Utils/OpenAPI.ts +564 -2
  10. package/Utils/Schema/AnalyticsModelSchema.ts +764 -0
  11. package/Utils/Schema/BaseSchema.ts +450 -0
  12. package/Utils/Schema/ModelSchema.ts +176 -407
  13. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +2 -2
  14. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  15. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js +2 -2
  16. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js.map +1 -1
  17. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js +2 -2
  18. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js.map +1 -1
  19. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js +2 -2
  20. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js.map +1 -1
  21. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +2 -2
  22. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
  23. package/build/dist/Models/DatabaseModels/Probe.js +7 -1
  24. package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
  25. package/build/dist/Models/DatabaseModels/ServiceCatalog.js +2 -2
  26. package/build/dist/Models/DatabaseModels/ServiceCatalog.js.map +1 -1
  27. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js +2 -2
  28. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js.map +1 -1
  29. package/build/dist/Server/Utils/OpenAPI.js +445 -2
  30. package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
  31. package/build/dist/Utils/Schema/AnalyticsModelSchema.js +636 -0
  32. package/build/dist/Utils/Schema/AnalyticsModelSchema.js.map +1 -0
  33. package/build/dist/Utils/Schema/BaseSchema.js +295 -0
  34. package/build/dist/Utils/Schema/BaseSchema.js.map +1 -0
  35. package/build/dist/Utils/Schema/ModelSchema.js +155 -337
  36. package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,636 @@
1
+ import z from "./Zod";
2
+ import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
3
+ import logger from "../../Server/Utils/Logger";
4
+ import { BaseSchema } from "./BaseSchema";
5
+ export class AnalyticsModelSchema extends BaseSchema {
6
+ static getModelSchema(data) {
7
+ const modelType = data.modelType;
8
+ const model = new modelType();
9
+ const columns = model.getTableColumns();
10
+ // Filter out columns with no read permissions
11
+ const filteredColumns = columns.filter((column) => {
12
+ const accessControl = model.getColumnAccessControlFor(column.key);
13
+ if (!accessControl) {
14
+ return false;
15
+ }
16
+ const readPermissions = accessControl.read;
17
+ return readPermissions && readPermissions.length > 0;
18
+ });
19
+ const shape = {};
20
+ for (const column of filteredColumns) {
21
+ const key = column.key;
22
+ let zodType;
23
+ if (column.type === TableColumnType.ObjectID) {
24
+ zodType = z.string().openapi({
25
+ type: "string",
26
+ example: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
27
+ });
28
+ }
29
+ else if (column.type === TableColumnType.Date) {
30
+ zodType = z.date().openapi({
31
+ type: "string",
32
+ format: "date-time",
33
+ example: "2023-01-15T12:30:00.000Z",
34
+ });
35
+ }
36
+ else if (column.type === TableColumnType.Text) {
37
+ zodType = z.string().openapi({
38
+ type: "string",
39
+ example: "Example text value",
40
+ });
41
+ }
42
+ else if (column.type === TableColumnType.Number) {
43
+ zodType = z.number().openapi({ type: "number", example: 42 });
44
+ }
45
+ else if (column.type === TableColumnType.LongNumber) {
46
+ zodType = z.number().openapi({
47
+ type: "number",
48
+ example: 1000000,
49
+ });
50
+ }
51
+ else if (column.type === TableColumnType.Boolean) {
52
+ zodType = z.boolean().openapi({ type: "boolean", example: true });
53
+ }
54
+ else if (column.type === TableColumnType.JSON) {
55
+ zodType = z.any().openapi({
56
+ type: "object",
57
+ example: { key: "value", nested: { data: 123 } },
58
+ });
59
+ }
60
+ else if (column.type === TableColumnType.JSONArray) {
61
+ zodType = z.array(z.any()).openapi({
62
+ type: "array",
63
+ items: {
64
+ type: "object",
65
+ },
66
+ example: [{ key: "value" }, { key2: "value2" }],
67
+ });
68
+ }
69
+ else if (column.type === TableColumnType.Decimal) {
70
+ zodType = z.number().openapi({
71
+ type: "number",
72
+ example: 123.45,
73
+ });
74
+ }
75
+ else if (column.type === TableColumnType.ArrayNumber) {
76
+ zodType = z.array(z.number()).openapi({
77
+ type: "array",
78
+ items: {
79
+ type: "number",
80
+ },
81
+ example: [1, 2, 3, 4, 5],
82
+ });
83
+ }
84
+ else if (column.type === TableColumnType.ArrayText) {
85
+ zodType = z.array(z.string()).openapi({
86
+ type: "array",
87
+ items: {
88
+ type: "string",
89
+ },
90
+ example: ["item1", "item2", "item3"],
91
+ });
92
+ }
93
+ else if (column.type === TableColumnType.NestedModel &&
94
+ column.nestedModel) {
95
+ // Handle nested models recursively
96
+ const nestedShape = {};
97
+ for (const nestedColumn of column.nestedModel.tableColumns) {
98
+ const nestedZodType = this.getZodTypeForColumn(nestedColumn);
99
+ if (nestedColumn.required) {
100
+ nestedShape[nestedColumn.key] = nestedZodType;
101
+ }
102
+ else {
103
+ nestedShape[nestedColumn.key] = nestedZodType.optional();
104
+ }
105
+ }
106
+ zodType = z.object(nestedShape).openapi({
107
+ type: "object",
108
+ example: this.generateNestedModelExample(column.nestedModel.tableColumns),
109
+ });
110
+ }
111
+ else {
112
+ // Default fallback
113
+ zodType = z.any().openapi({
114
+ type: "string",
115
+ example: "example_value",
116
+ });
117
+ }
118
+ if (column.required) {
119
+ // leave as is
120
+ }
121
+ else {
122
+ zodType = zodType.optional();
123
+ }
124
+ // Add title and description to the schema
125
+ if (column.title) {
126
+ zodType = zodType.describe(column.title);
127
+ }
128
+ shape[key] = zodType;
129
+ }
130
+ const schema = z.object(shape);
131
+ logger.debug(`Analytics model schema for ${model.tableName} created with shape keys: ${Object.keys(shape).join(", ")} (filtered ${columns.length - filteredColumns.length} columns without read permissions)`);
132
+ return schema;
133
+ }
134
+ static getZodTypeForColumn(column) {
135
+ switch (column.type) {
136
+ case TableColumnType.ObjectID:
137
+ return z.string().openapi({
138
+ type: "string",
139
+ example: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
140
+ });
141
+ case TableColumnType.Date:
142
+ return z.date().openapi({
143
+ type: "string",
144
+ format: "date-time",
145
+ example: "2023-01-15T12:30:00.000Z",
146
+ });
147
+ case TableColumnType.Text:
148
+ return z.string().openapi({
149
+ type: "string",
150
+ example: "Example text",
151
+ });
152
+ case TableColumnType.Number:
153
+ return z.number().openapi({ type: "number", example: 42 });
154
+ case TableColumnType.LongNumber:
155
+ return z.number().openapi({
156
+ type: "number",
157
+ example: 1000000,
158
+ });
159
+ case TableColumnType.Boolean:
160
+ return z.boolean().openapi({ type: "boolean", example: true });
161
+ case TableColumnType.JSON:
162
+ return z.any().openapi({
163
+ type: "object",
164
+ example: { key: "value" },
165
+ });
166
+ case TableColumnType.JSONArray:
167
+ return z.array(z.any()).openapi({
168
+ type: "array",
169
+ items: { type: "object" },
170
+ example: [{ key: "value" }],
171
+ });
172
+ case TableColumnType.Decimal:
173
+ return z.number().openapi({
174
+ type: "number",
175
+ example: 123.45,
176
+ });
177
+ case TableColumnType.ArrayNumber:
178
+ return z.array(z.number()).openapi({
179
+ type: "array",
180
+ items: { type: "number" },
181
+ example: [1, 2, 3],
182
+ });
183
+ case TableColumnType.ArrayText:
184
+ return z.array(z.string()).openapi({
185
+ type: "array",
186
+ items: { type: "string" },
187
+ example: ["item1", "item2"],
188
+ });
189
+ default:
190
+ return z.any().openapi({
191
+ type: "string",
192
+ example: "example_value",
193
+ });
194
+ }
195
+ }
196
+ static generateNestedModelExample(columns) {
197
+ const example = {};
198
+ for (const column of columns) {
199
+ switch (column.type) {
200
+ case TableColumnType.ObjectID:
201
+ example[column.key] = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
202
+ break;
203
+ case TableColumnType.Date:
204
+ example[column.key] = "2023-01-15T12:30:00.000Z";
205
+ break;
206
+ case TableColumnType.Text:
207
+ example[column.key] = "Example text";
208
+ break;
209
+ case TableColumnType.Number:
210
+ example[column.key] = 42;
211
+ break;
212
+ case TableColumnType.Boolean:
213
+ example[column.key] = true;
214
+ break;
215
+ case TableColumnType.JSON:
216
+ example[column.key] = { key: "value" };
217
+ break;
218
+ case TableColumnType.ArrayText:
219
+ example[column.key] = ["item1", "item2"];
220
+ break;
221
+ case TableColumnType.ArrayNumber:
222
+ example[column.key] = [1, 2, 3];
223
+ break;
224
+ default:
225
+ example[column.key] = "example_value";
226
+ }
227
+ }
228
+ return example;
229
+ }
230
+ static getCreateModelSchema(data) {
231
+ const modelType = data.modelType;
232
+ const model = new modelType();
233
+ const columns = model.getTableColumns();
234
+ const shape = {};
235
+ // Exclude system fields from create schema
236
+ const excludedFields = ["_id", "createdAt", "updatedAt"];
237
+ for (const column of columns) {
238
+ const key = column.key;
239
+ if (excludedFields.includes(key)) {
240
+ continue;
241
+ }
242
+ // Skip default value columns in create schema
243
+ if (column.isDefaultValueColumn) {
244
+ continue;
245
+ }
246
+ // Filter out columns with no create permissions
247
+ const accessControl = model.getColumnAccessControlFor(column.key);
248
+ if (!accessControl) {
249
+ continue;
250
+ }
251
+ const createPermissions = accessControl.create;
252
+ if (!createPermissions || createPermissions.length === 0) {
253
+ continue;
254
+ }
255
+ const zodType = this.getZodTypeForColumn(column);
256
+ if (column.required) {
257
+ shape[key] = zodType;
258
+ }
259
+ else {
260
+ shape[key] = zodType.optional();
261
+ }
262
+ }
263
+ return z.object(shape).openapi({
264
+ type: "object",
265
+ description: `Create schema for ${model.tableName || "analytics model"}`,
266
+ example: this.getCreateSchemaExample(modelType),
267
+ additionalProperties: false,
268
+ });
269
+ }
270
+ static getQueryModelSchema(data) {
271
+ const modelType = data.modelType;
272
+ const model = new modelType();
273
+ return this.generateQuerySchema({
274
+ model,
275
+ tableName: model.tableName || "analytics_model",
276
+ getColumns: (model) => {
277
+ const columns = model.getTableColumns();
278
+ return columns.map((column) => {
279
+ return { key: column.key, type: column.type };
280
+ });
281
+ },
282
+ getValidOperatorsForColumnType: (columnType) => {
283
+ return this.getValidOperatorsForColumnType(columnType);
284
+ },
285
+ getOperatorSchema: (operatorType, columnType) => {
286
+ return this.getOperatorSchema(operatorType, columnType);
287
+ },
288
+ getQuerySchemaExample: () => {
289
+ return this.getQuerySchemaExample(modelType);
290
+ },
291
+ getExampleValueForColumn: (columnType) => {
292
+ return this.getExampleValueForColumn(columnType);
293
+ },
294
+ });
295
+ }
296
+ static getSelectModelSchema(data) {
297
+ const modelType = data.modelType;
298
+ const model = new modelType();
299
+ return this.generateSelectSchema({
300
+ model,
301
+ tableName: model.tableName || "analytics_model",
302
+ getColumns: (model) => {
303
+ const columns = model.getTableColumns();
304
+ return columns.map((column) => {
305
+ return { key: column.key, type: column.type };
306
+ });
307
+ },
308
+ getSelectSchemaExample: () => {
309
+ return this.getSelectSchemaExample(modelType);
310
+ },
311
+ allowNested: false, // Analytics models typically don't have nested schemas
312
+ getNestedSchema: () => {
313
+ return null;
314
+ },
315
+ });
316
+ }
317
+ static getSortModelSchema(data) {
318
+ const modelType = data.modelType;
319
+ const model = new modelType();
320
+ return this.generateSortSchema({
321
+ model,
322
+ tableName: model.tableName || "analytics_model",
323
+ getSortableTypes: () => {
324
+ return this.getSortableTypes();
325
+ },
326
+ getColumnsForSorting: (model) => {
327
+ const columns = model.getTableColumns();
328
+ return columns.map((column) => {
329
+ return { key: column.key, type: column.type };
330
+ });
331
+ },
332
+ });
333
+ }
334
+ static getGroupByModelSchema(data) {
335
+ const modelType = data.modelType;
336
+ const model = new modelType();
337
+ return this.generateGroupBySchema({
338
+ model,
339
+ tableName: model.tableName || "analytics_model",
340
+ getColumns: (model) => {
341
+ const columns = model.getTableColumns();
342
+ return columns.map((column) => {
343
+ return { key: column.key, type: column.type };
344
+ });
345
+ },
346
+ getGroupableTypes: () => {
347
+ return [
348
+ TableColumnType.Text,
349
+ TableColumnType.ObjectID,
350
+ TableColumnType.Boolean,
351
+ TableColumnType.Date,
352
+ TableColumnType.Number,
353
+ ];
354
+ },
355
+ getGroupBySchemaExample: () => {
356
+ return this.getGroupBySchemaExample(modelType);
357
+ },
358
+ });
359
+ }
360
+ static getSortableTypes() {
361
+ return [
362
+ TableColumnType.Text,
363
+ TableColumnType.Number,
364
+ TableColumnType.LongNumber,
365
+ TableColumnType.Date,
366
+ TableColumnType.Boolean,
367
+ TableColumnType.ObjectID,
368
+ TableColumnType.Decimal,
369
+ ];
370
+ }
371
+ static getValidOperatorsForColumnType(columnType) {
372
+ switch (columnType) {
373
+ case TableColumnType.Text:
374
+ return ["EqualTo", "NotEqual", "Search", "IsNull", "NotNull"];
375
+ case TableColumnType.Number:
376
+ case TableColumnType.LongNumber:
377
+ case TableColumnType.Decimal:
378
+ return [
379
+ "EqualTo",
380
+ "NotEqual",
381
+ "GreaterThan",
382
+ "LessThan",
383
+ "GreaterThanOrEqual",
384
+ "LessThanOrEqual",
385
+ "IsNull",
386
+ "NotNull",
387
+ ];
388
+ case TableColumnType.Date:
389
+ return [
390
+ "EqualTo",
391
+ "NotEqual",
392
+ "GreaterThan",
393
+ "LessThan",
394
+ "GreaterThanOrEqual",
395
+ "LessThanOrEqual",
396
+ "IsNull",
397
+ "NotNull",
398
+ ];
399
+ case TableColumnType.Boolean:
400
+ return ["EqualTo", "NotEqual", "IsNull", "NotNull"];
401
+ case TableColumnType.ObjectID:
402
+ return ["EqualTo", "NotEqual", "IsNull", "NotNull"];
403
+ case TableColumnType.JSON:
404
+ case TableColumnType.JSONArray:
405
+ return ["IsNull", "NotNull"];
406
+ case TableColumnType.ArrayText:
407
+ case TableColumnType.ArrayNumber:
408
+ return ["IsNull", "NotNull"];
409
+ default:
410
+ return ["EqualTo", "NotEqual", "IsNull", "NotNull"];
411
+ }
412
+ }
413
+ static getExampleValueForColumn(columnType) {
414
+ switch (columnType) {
415
+ case TableColumnType.ObjectID:
416
+ return "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
417
+ case TableColumnType.Text:
418
+ return "example text";
419
+ case TableColumnType.Number:
420
+ case TableColumnType.LongNumber:
421
+ return 42;
422
+ case TableColumnType.Decimal:
423
+ return 123.45;
424
+ case TableColumnType.Date:
425
+ return "2023-01-15T12:30:00.000Z";
426
+ case TableColumnType.Boolean:
427
+ return true;
428
+ case TableColumnType.JSON:
429
+ return { key: "value" };
430
+ case TableColumnType.JSONArray:
431
+ return [{ key: "value" }];
432
+ case TableColumnType.ArrayText:
433
+ return ["item1", "item2"];
434
+ case TableColumnType.ArrayNumber:
435
+ return [1, 2, 3];
436
+ default:
437
+ return "example_value";
438
+ }
439
+ }
440
+ static getCreateSchemaExample(modelType) {
441
+ const model = new modelType();
442
+ const columns = model.getTableColumns();
443
+ const example = {};
444
+ let exampleCount = 0;
445
+ const maxExamples = 3;
446
+ for (const column of columns) {
447
+ if (exampleCount >= maxExamples) {
448
+ break;
449
+ }
450
+ // Skip system fields and default value columns
451
+ if (["_id", "createdAt", "updatedAt"].includes(column.key) ||
452
+ column.isDefaultValueColumn) {
453
+ continue;
454
+ }
455
+ // Skip columns with no create permissions
456
+ const accessControl = model.getColumnAccessControlFor(column.key);
457
+ if (!accessControl) {
458
+ continue;
459
+ }
460
+ const createPermissions = accessControl.create;
461
+ if (!createPermissions || createPermissions.length === 0) {
462
+ continue;
463
+ }
464
+ example[column.key] = this.getExampleValueForColumn(column.type);
465
+ exampleCount++;
466
+ }
467
+ return example;
468
+ }
469
+ static getQuerySchemaExample(modelType) {
470
+ const model = new modelType();
471
+ const columns = model.getTableColumns();
472
+ const example = {};
473
+ let exampleCount = 0;
474
+ const maxExamples = 2;
475
+ for (const column of columns) {
476
+ if (exampleCount >= maxExamples) {
477
+ break;
478
+ }
479
+ // Check read permissions for query operations
480
+ const accessControl = model.getColumnAccessControlFor(column.key);
481
+ if (!accessControl ||
482
+ !accessControl.read ||
483
+ accessControl.read.length === 0) {
484
+ continue;
485
+ }
486
+ const validOperators = this.getValidOperatorsForColumnType(column.type);
487
+ if (validOperators.length === 0) {
488
+ continue;
489
+ }
490
+ if (column.type === TableColumnType.Text) {
491
+ example[column.key] = {
492
+ _type: "EqualTo",
493
+ value: "example text",
494
+ };
495
+ exampleCount++;
496
+ }
497
+ else if (column.type === TableColumnType.Date) {
498
+ example[column.key] = {
499
+ _type: "GreaterThan",
500
+ value: "2023-01-01T00:00:00.000Z",
501
+ };
502
+ exampleCount++;
503
+ }
504
+ }
505
+ return example;
506
+ }
507
+ static getSelectSchemaExample(modelType) {
508
+ const model = new modelType();
509
+ const columns = model.getTableColumns();
510
+ // Add common fields (only if they have read permissions)
511
+ const example = {};
512
+ // Check if _id has read permissions
513
+ const idAccessControl = model.getColumnAccessControlFor("_id");
514
+ if (idAccessControl &&
515
+ idAccessControl.read &&
516
+ idAccessControl.read.length > 0) {
517
+ example["_id"] = true;
518
+ }
519
+ // Check if createdAt has read permissions
520
+ const createdAtAccessControl = model.getColumnAccessControlFor("createdAt");
521
+ if (createdAtAccessControl &&
522
+ createdAtAccessControl.read &&
523
+ createdAtAccessControl.read.length > 0) {
524
+ example["createdAt"] = true;
525
+ }
526
+ // Add first few non-system fields with read permissions
527
+ let fieldCount = 0;
528
+ const maxFields = 3;
529
+ for (const column of columns) {
530
+ if (fieldCount >= maxFields) {
531
+ break;
532
+ }
533
+ if (!["_id", "createdAt", "updatedAt"].includes(column.key)) {
534
+ // Check read permissions
535
+ const accessControl = model.getColumnAccessControlFor(column.key);
536
+ if (accessControl &&
537
+ accessControl.read &&
538
+ accessControl.read.length > 0) {
539
+ example[column.key] = true;
540
+ fieldCount++;
541
+ }
542
+ }
543
+ }
544
+ return example;
545
+ }
546
+ static getGroupBySchemaExample(modelType) {
547
+ const model = new modelType();
548
+ const columns = model.getTableColumns();
549
+ // Find first suitable field for grouping with read permissions
550
+ for (const column of columns) {
551
+ const isGroupable = [
552
+ TableColumnType.Text,
553
+ TableColumnType.ObjectID,
554
+ TableColumnType.Boolean,
555
+ TableColumnType.Date,
556
+ TableColumnType.Number,
557
+ ].includes(column.type);
558
+ if (isGroupable &&
559
+ !["_id", "createdAt", "updatedAt"].includes(column.key)) {
560
+ // Check read permissions
561
+ const accessControl = model.getColumnAccessControlFor(column.key);
562
+ if (accessControl &&
563
+ accessControl.read &&
564
+ accessControl.read.length > 0) {
565
+ return { [column.key]: true };
566
+ }
567
+ }
568
+ }
569
+ // Fallback to createdAt if it has read permissions
570
+ const createdAtAccessControl = model.getColumnAccessControlFor("createdAt");
571
+ if (createdAtAccessControl &&
572
+ createdAtAccessControl.read &&
573
+ createdAtAccessControl.read.length > 0) {
574
+ return { ["createdAt"]: true };
575
+ }
576
+ // Final fallback - return empty object if no columns have read permissions
577
+ return {};
578
+ }
579
+ static getOperatorSchema(operatorType, columnType) {
580
+ const baseValue = this.getBaseValueSchemaForColumnType(columnType);
581
+ switch (operatorType) {
582
+ case "EqualTo":
583
+ case "NotEqual":
584
+ return z.object({
585
+ _type: z.literal(operatorType),
586
+ value: baseValue,
587
+ });
588
+ case "GreaterThan":
589
+ case "LessThan":
590
+ case "GreaterThanOrEqual":
591
+ case "LessThanOrEqual":
592
+ return z.object({
593
+ _type: z.literal(operatorType),
594
+ value: baseValue,
595
+ });
596
+ case "Search":
597
+ return z.object({
598
+ _type: z.literal("Search"),
599
+ value: z.string(),
600
+ });
601
+ case "IsNull":
602
+ case "NotNull":
603
+ return z.object({
604
+ _type: z.literal(operatorType),
605
+ });
606
+ default:
607
+ return z.object({
608
+ _type: z.literal(operatorType),
609
+ value: baseValue.optional(),
610
+ });
611
+ }
612
+ }
613
+ static getBaseValueSchemaForColumnType(columnType) {
614
+ switch (columnType) {
615
+ case TableColumnType.ObjectID:
616
+ case TableColumnType.Text:
617
+ return z.string();
618
+ case TableColumnType.Number:
619
+ case TableColumnType.LongNumber:
620
+ case TableColumnType.Decimal:
621
+ return z.number();
622
+ case TableColumnType.Date:
623
+ return z.date();
624
+ case TableColumnType.Boolean:
625
+ return z.boolean();
626
+ case TableColumnType.JSON:
627
+ case TableColumnType.JSONArray:
628
+ case TableColumnType.ArrayText:
629
+ case TableColumnType.ArrayNumber:
630
+ return z.any();
631
+ default:
632
+ return z.string();
633
+ }
634
+ }
635
+ }
636
+ //# sourceMappingURL=AnalyticsModelSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsModelSchema.js","sourceRoot":"","sources":["../../../../Utils/Schema/AnalyticsModelSchema.ts"],"names":[],"mappings":"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"}