@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
@@ -203,6 +203,589 @@
203
203
  "field"
204
204
  ],
205
205
  "additionalProperties": false
206
+ },
207
+ {
208
+ "type": "object",
209
+ "properties": {
210
+ "name": {
211
+ "type": "string",
212
+ "pattern": "^[a-z_][a-z0-9_]*$",
213
+ "description": "Unique rule name"
214
+ },
215
+ "active": {
216
+ "type": "boolean",
217
+ "default": true
218
+ },
219
+ "severity": {
220
+ "type": "string",
221
+ "enum": [
222
+ "error",
223
+ "warning",
224
+ "info"
225
+ ],
226
+ "default": "error"
227
+ },
228
+ "message": {
229
+ "type": "string",
230
+ "description": "Error message to display"
231
+ },
232
+ "type": {
233
+ "type": "string",
234
+ "const": "cross_field"
235
+ },
236
+ "condition": {
237
+ "type": "string",
238
+ "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")"
239
+ },
240
+ "fields": {
241
+ "type": "array",
242
+ "items": {
243
+ "type": "string"
244
+ },
245
+ "description": "Fields involved in the validation"
246
+ }
247
+ },
248
+ "required": [
249
+ "name",
250
+ "message",
251
+ "type",
252
+ "condition",
253
+ "fields"
254
+ ],
255
+ "additionalProperties": false
256
+ },
257
+ {
258
+ "type": "object",
259
+ "properties": {
260
+ "name": {
261
+ "type": "string",
262
+ "pattern": "^[a-z_][a-z0-9_]*$",
263
+ "description": "Unique rule name"
264
+ },
265
+ "active": {
266
+ "type": "boolean",
267
+ "default": true
268
+ },
269
+ "severity": {
270
+ "type": "string",
271
+ "enum": [
272
+ "error",
273
+ "warning",
274
+ "info"
275
+ ],
276
+ "default": "error"
277
+ },
278
+ "message": {
279
+ "type": "string",
280
+ "description": "Error message to display"
281
+ },
282
+ "type": {
283
+ "type": "string",
284
+ "const": "async"
285
+ },
286
+ "field": {
287
+ "type": "string",
288
+ "description": "Field to validate"
289
+ },
290
+ "validatorUrl": {
291
+ "type": "string",
292
+ "description": "External API endpoint for validation"
293
+ },
294
+ "validatorFunction": {
295
+ "type": "string",
296
+ "description": "Reference to custom validator function"
297
+ },
298
+ "timeout": {
299
+ "type": "number",
300
+ "default": 5000,
301
+ "description": "Timeout in milliseconds"
302
+ },
303
+ "debounce": {
304
+ "type": "number",
305
+ "description": "Debounce delay in milliseconds"
306
+ },
307
+ "params": {
308
+ "type": "object",
309
+ "additionalProperties": {},
310
+ "description": "Additional parameters to pass to validator"
311
+ }
312
+ },
313
+ "required": [
314
+ "name",
315
+ "message",
316
+ "type",
317
+ "field"
318
+ ],
319
+ "additionalProperties": false
320
+ },
321
+ {
322
+ "type": "object",
323
+ "properties": {
324
+ "name": {
325
+ "type": "string",
326
+ "pattern": "^[a-z_][a-z0-9_]*$",
327
+ "description": "Unique rule name"
328
+ },
329
+ "active": {
330
+ "type": "boolean",
331
+ "default": true
332
+ },
333
+ "severity": {
334
+ "type": "string",
335
+ "enum": [
336
+ "error",
337
+ "warning",
338
+ "info"
339
+ ],
340
+ "default": "error"
341
+ },
342
+ "message": {
343
+ "type": "string",
344
+ "description": "Error message to display"
345
+ },
346
+ "type": {
347
+ "type": "string",
348
+ "const": "custom"
349
+ },
350
+ "field": {
351
+ "type": "string",
352
+ "description": "Field to validate (optional for record-level validation)"
353
+ },
354
+ "validatorFunction": {
355
+ "type": "string",
356
+ "description": "Function name or reference to custom validator"
357
+ },
358
+ "params": {
359
+ "type": "object",
360
+ "additionalProperties": {},
361
+ "description": "Additional parameters for the validator"
362
+ }
363
+ },
364
+ "required": [
365
+ "name",
366
+ "message",
367
+ "type",
368
+ "validatorFunction"
369
+ ],
370
+ "additionalProperties": false
371
+ },
372
+ {
373
+ "type": "object",
374
+ "properties": {
375
+ "name": {
376
+ "type": "string",
377
+ "pattern": "^[a-z_][a-z0-9_]*$",
378
+ "description": "Unique rule name"
379
+ },
380
+ "active": {
381
+ "type": "boolean",
382
+ "default": true
383
+ },
384
+ "severity": {
385
+ "type": "string",
386
+ "enum": [
387
+ "error",
388
+ "warning",
389
+ "info"
390
+ ],
391
+ "default": "error"
392
+ },
393
+ "message": {
394
+ "type": "string",
395
+ "description": "Error message to display"
396
+ },
397
+ "type": {
398
+ "type": "string",
399
+ "const": "conditional"
400
+ },
401
+ "when": {
402
+ "type": "string",
403
+ "description": "Condition formula (e.g. \"type = 'enterprise'\")"
404
+ },
405
+ "then": {
406
+ "anyOf": [
407
+ {
408
+ "type": "object",
409
+ "properties": {
410
+ "name": {
411
+ "type": "string",
412
+ "pattern": "^[a-z_][a-z0-9_]*$",
413
+ "description": "Unique rule name"
414
+ },
415
+ "active": {
416
+ "type": "boolean",
417
+ "default": true
418
+ },
419
+ "severity": {
420
+ "type": "string",
421
+ "enum": [
422
+ "error",
423
+ "warning",
424
+ "info"
425
+ ],
426
+ "default": "error"
427
+ },
428
+ "message": {
429
+ "type": "string",
430
+ "description": "Error message to display"
431
+ },
432
+ "type": {
433
+ "type": "string",
434
+ "const": "script"
435
+ },
436
+ "condition": {
437
+ "type": "string",
438
+ "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)"
439
+ }
440
+ },
441
+ "required": [
442
+ "name",
443
+ "message",
444
+ "type",
445
+ "condition"
446
+ ],
447
+ "additionalProperties": false
448
+ },
449
+ {
450
+ "type": "object",
451
+ "properties": {
452
+ "name": {
453
+ "type": "string",
454
+ "pattern": "^[a-z_][a-z0-9_]*$",
455
+ "description": "Unique rule name"
456
+ },
457
+ "active": {
458
+ "type": "boolean",
459
+ "default": true
460
+ },
461
+ "severity": {
462
+ "type": "string",
463
+ "enum": [
464
+ "error",
465
+ "warning",
466
+ "info"
467
+ ],
468
+ "default": "error"
469
+ },
470
+ "message": {
471
+ "type": "string",
472
+ "description": "Error message to display"
473
+ },
474
+ "type": {
475
+ "type": "string",
476
+ "const": "unique"
477
+ },
478
+ "fields": {
479
+ "type": "array",
480
+ "items": {
481
+ "type": "string"
482
+ },
483
+ "description": "Fields that must be combined unique"
484
+ },
485
+ "scope": {
486
+ "type": "string",
487
+ "description": "Formula condition for scope (e.g. active = true)"
488
+ },
489
+ "caseSensitive": {
490
+ "type": "boolean",
491
+ "default": true
492
+ }
493
+ },
494
+ "required": [
495
+ "name",
496
+ "message",
497
+ "type",
498
+ "fields"
499
+ ],
500
+ "additionalProperties": false
501
+ },
502
+ {
503
+ "type": "object",
504
+ "properties": {
505
+ "name": {
506
+ "type": "string",
507
+ "pattern": "^[a-z_][a-z0-9_]*$",
508
+ "description": "Unique rule name"
509
+ },
510
+ "active": {
511
+ "type": "boolean",
512
+ "default": true
513
+ },
514
+ "severity": {
515
+ "type": "string",
516
+ "enum": [
517
+ "error",
518
+ "warning",
519
+ "info"
520
+ ],
521
+ "default": "error"
522
+ },
523
+ "message": {
524
+ "type": "string",
525
+ "description": "Error message to display"
526
+ },
527
+ "type": {
528
+ "type": "string",
529
+ "const": "state_machine"
530
+ },
531
+ "field": {
532
+ "type": "string",
533
+ "description": "State field (e.g. status)"
534
+ },
535
+ "transitions": {
536
+ "type": "object",
537
+ "additionalProperties": {
538
+ "type": "array",
539
+ "items": {
540
+ "type": "string"
541
+ }
542
+ },
543
+ "description": "Map of { OldState: [AllowedNewStates] }"
544
+ }
545
+ },
546
+ "required": [
547
+ "name",
548
+ "message",
549
+ "type",
550
+ "field",
551
+ "transitions"
552
+ ],
553
+ "additionalProperties": false
554
+ },
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "name": {
559
+ "type": "string",
560
+ "pattern": "^[a-z_][a-z0-9_]*$",
561
+ "description": "Unique rule name"
562
+ },
563
+ "active": {
564
+ "type": "boolean",
565
+ "default": true
566
+ },
567
+ "severity": {
568
+ "type": "string",
569
+ "enum": [
570
+ "error",
571
+ "warning",
572
+ "info"
573
+ ],
574
+ "default": "error"
575
+ },
576
+ "message": {
577
+ "type": "string",
578
+ "description": "Error message to display"
579
+ },
580
+ "type": {
581
+ "type": "string",
582
+ "const": "format"
583
+ },
584
+ "field": {
585
+ "type": "string"
586
+ },
587
+ "regex": {
588
+ "type": "string"
589
+ },
590
+ "format": {
591
+ "type": "string",
592
+ "enum": [
593
+ "email",
594
+ "url",
595
+ "phone",
596
+ "json"
597
+ ]
598
+ }
599
+ },
600
+ "required": [
601
+ "name",
602
+ "message",
603
+ "type",
604
+ "field"
605
+ ],
606
+ "additionalProperties": false
607
+ },
608
+ {
609
+ "type": "object",
610
+ "properties": {
611
+ "name": {
612
+ "type": "string",
613
+ "pattern": "^[a-z_][a-z0-9_]*$",
614
+ "description": "Unique rule name"
615
+ },
616
+ "active": {
617
+ "type": "boolean",
618
+ "default": true
619
+ },
620
+ "severity": {
621
+ "type": "string",
622
+ "enum": [
623
+ "error",
624
+ "warning",
625
+ "info"
626
+ ],
627
+ "default": "error"
628
+ },
629
+ "message": {
630
+ "type": "string",
631
+ "description": "Error message to display"
632
+ },
633
+ "type": {
634
+ "type": "string",
635
+ "const": "cross_field"
636
+ },
637
+ "condition": {
638
+ "type": "string",
639
+ "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")"
640
+ },
641
+ "fields": {
642
+ "type": "array",
643
+ "items": {
644
+ "type": "string"
645
+ },
646
+ "description": "Fields involved in the validation"
647
+ }
648
+ },
649
+ "required": [
650
+ "name",
651
+ "message",
652
+ "type",
653
+ "condition",
654
+ "fields"
655
+ ],
656
+ "additionalProperties": false
657
+ },
658
+ {
659
+ "type": "object",
660
+ "properties": {
661
+ "name": {
662
+ "type": "string",
663
+ "pattern": "^[a-z_][a-z0-9_]*$",
664
+ "description": "Unique rule name"
665
+ },
666
+ "active": {
667
+ "type": "boolean",
668
+ "default": true
669
+ },
670
+ "severity": {
671
+ "type": "string",
672
+ "enum": [
673
+ "error",
674
+ "warning",
675
+ "info"
676
+ ],
677
+ "default": "error"
678
+ },
679
+ "message": {
680
+ "type": "string",
681
+ "description": "Error message to display"
682
+ },
683
+ "type": {
684
+ "type": "string",
685
+ "const": "async"
686
+ },
687
+ "field": {
688
+ "type": "string",
689
+ "description": "Field to validate"
690
+ },
691
+ "validatorUrl": {
692
+ "type": "string",
693
+ "description": "External API endpoint for validation"
694
+ },
695
+ "validatorFunction": {
696
+ "type": "string",
697
+ "description": "Reference to custom validator function"
698
+ },
699
+ "timeout": {
700
+ "type": "number",
701
+ "default": 5000,
702
+ "description": "Timeout in milliseconds"
703
+ },
704
+ "debounce": {
705
+ "type": "number",
706
+ "description": "Debounce delay in milliseconds"
707
+ },
708
+ "params": {
709
+ "type": "object",
710
+ "additionalProperties": {},
711
+ "description": "Additional parameters to pass to validator"
712
+ }
713
+ },
714
+ "required": [
715
+ "name",
716
+ "message",
717
+ "type",
718
+ "field"
719
+ ],
720
+ "additionalProperties": false
721
+ },
722
+ {
723
+ "type": "object",
724
+ "properties": {
725
+ "name": {
726
+ "type": "string",
727
+ "pattern": "^[a-z_][a-z0-9_]*$",
728
+ "description": "Unique rule name"
729
+ },
730
+ "active": {
731
+ "type": "boolean",
732
+ "default": true
733
+ },
734
+ "severity": {
735
+ "type": "string",
736
+ "enum": [
737
+ "error",
738
+ "warning",
739
+ "info"
740
+ ],
741
+ "default": "error"
742
+ },
743
+ "message": {
744
+ "type": "string",
745
+ "description": "Error message to display"
746
+ },
747
+ "type": {
748
+ "type": "string",
749
+ "const": "custom"
750
+ },
751
+ "field": {
752
+ "type": "string",
753
+ "description": "Field to validate (optional for record-level validation)"
754
+ },
755
+ "validatorFunction": {
756
+ "type": "string",
757
+ "description": "Function name or reference to custom validator"
758
+ },
759
+ "params": {
760
+ "type": "object",
761
+ "additionalProperties": {},
762
+ "description": "Additional parameters for the validator"
763
+ }
764
+ },
765
+ "required": [
766
+ "name",
767
+ "message",
768
+ "type",
769
+ "validatorFunction"
770
+ ],
771
+ "additionalProperties": false
772
+ },
773
+ {}
774
+ ],
775
+ "description": "Validation rule to apply when condition is true"
776
+ },
777
+ "otherwise": {
778
+ "description": "Validation rule to apply when condition is false"
779
+ }
780
+ },
781
+ "required": [
782
+ "name",
783
+ "message",
784
+ "type",
785
+ "when",
786
+ "then"
787
+ ],
788
+ "additionalProperties": false
206
789
  }
207
790
  ]
208
791
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$ref": "#/definitions/WindowFunction",
3
+ "definitions": {
4
+ "WindowFunction": {
5
+ "type": "string",
6
+ "enum": [
7
+ "row_number",
8
+ "rank",
9
+ "dense_rank",
10
+ "percent_rank",
11
+ "lag",
12
+ "lead",
13
+ "first_value",
14
+ "last_value",
15
+ "sum",
16
+ "avg",
17
+ "count",
18
+ "min",
19
+ "max"
20
+ ]
21
+ }
22
+ },
23
+ "$schema": "http://json-schema.org/draft-07/schema#"
24
+ }