@objectstack/spec 0.1.1 → 0.2.0

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 (174) 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/filter.zod.d.ts +295 -0
  10. package/dist/data/filter.zod.d.ts.map +1 -0
  11. package/dist/data/filter.zod.js +226 -0
  12. package/dist/data/mapping.zod.d.ts +215 -2
  13. package/dist/data/mapping.zod.d.ts.map +1 -1
  14. package/dist/data/object.zod.d.ts +505 -25
  15. package/dist/data/object.zod.d.ts.map +1 -1
  16. package/dist/data/object.zod.js +32 -5
  17. package/dist/data/query.zod.d.ts +349 -0
  18. package/dist/data/query.zod.d.ts.map +1 -1
  19. package/dist/data/query.zod.js +77 -1
  20. package/dist/data/trigger.zod.d.ts +354 -0
  21. package/dist/data/trigger.zod.d.ts.map +1 -0
  22. package/dist/data/trigger.zod.js +195 -0
  23. package/dist/data/validation.zod.d.ts +83 -43
  24. package/dist/data/validation.zod.d.ts.map +1 -1
  25. package/dist/data/validation.zod.js +51 -5
  26. package/dist/index.d.ts +10 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +11 -0
  29. package/dist/system/api.zod.d.ts +130 -4
  30. package/dist/system/api.zod.d.ts.map +1 -1
  31. package/dist/system/api.zod.js +4 -1
  32. package/dist/system/auth.zod.d.ts +2287 -0
  33. package/dist/system/auth.zod.d.ts.map +1 -0
  34. package/dist/system/auth.zod.js +365 -0
  35. package/dist/system/datasource.zod.d.ts +193 -30
  36. package/dist/system/datasource.zod.d.ts.map +1 -1
  37. package/dist/system/datasource.zod.js +58 -11
  38. package/dist/system/discovery.zod.d.ts +174 -0
  39. package/dist/system/discovery.zod.d.ts.map +1 -0
  40. package/dist/system/discovery.zod.js +53 -0
  41. package/dist/system/driver.zod.d.ts +1631 -0
  42. package/dist/system/driver.zod.d.ts.map +1 -0
  43. package/dist/system/driver.zod.js +337 -0
  44. package/dist/system/license.zod.d.ts +2 -2
  45. package/dist/system/manifest.zod.d.ts +323 -52
  46. package/dist/system/manifest.zod.d.ts.map +1 -1
  47. package/dist/system/manifest.zod.js +91 -17
  48. package/dist/system/plugin.zod.d.ts +3516 -0
  49. package/dist/system/plugin.zod.d.ts.map +1 -0
  50. package/dist/system/plugin.zod.js +226 -0
  51. package/dist/system/policy.zod.d.ts +10 -10
  52. package/dist/system/territory.zod.d.ts +1 -1
  53. package/dist/system/webhook.zod.d.ts +3 -3
  54. package/dist/ui/action.zod.d.ts +19 -12
  55. package/dist/ui/action.zod.d.ts.map +1 -1
  56. package/dist/ui/action.zod.js +7 -1
  57. package/dist/ui/app.zod.d.ts +109 -3
  58. package/dist/ui/app.zod.d.ts.map +1 -1
  59. package/dist/ui/app.zod.js +13 -2
  60. package/dist/ui/dashboard.zod.d.ts +19 -13
  61. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  62. package/dist/ui/dashboard.zod.js +10 -3
  63. package/dist/ui/page.zod.d.ts +6 -6
  64. package/dist/ui/report.zod.d.ts +13 -32
  65. package/dist/ui/report.zod.d.ts.map +1 -1
  66. package/dist/ui/report.zod.js +10 -9
  67. package/dist/ui/theme.zod.d.ts +1221 -0
  68. package/dist/ui/theme.zod.d.ts.map +1 -0
  69. package/dist/ui/theme.zod.js +202 -0
  70. package/dist/ui/widget.zod.d.ts +350 -0
  71. package/dist/ui/widget.zod.d.ts.map +1 -0
  72. package/dist/ui/widget.zod.js +66 -0
  73. package/json-schema/AccountLinkingConfig.json +27 -0
  74. package/json-schema/Action.json +8 -2
  75. package/json-schema/ActionParam.json +8 -2
  76. package/json-schema/Address.json +40 -0
  77. package/json-schema/AggregationFunction.json +19 -0
  78. package/json-schema/AggregationNode.json +42 -0
  79. package/json-schema/Animation.json +56 -0
  80. package/json-schema/ApiCapabilities.json +28 -0
  81. package/json-schema/ApiError.json +27 -0
  82. package/json-schema/ApiRoutes.json +41 -0
  83. package/json-schema/App.json +13 -2
  84. package/json-schema/AsyncValidation.json +70 -0
  85. package/json-schema/AuthConfig.json +606 -0
  86. package/json-schema/AuthPluginConfig.json +28 -0
  87. package/json-schema/AuthStrategy.json +17 -0
  88. package/json-schema/AuthenticationConfig.json +601 -0
  89. package/json-schema/AuthenticationProvider.json +617 -0
  90. package/json-schema/BaseResponse.json +63 -0
  91. package/json-schema/BorderRadius.json +44 -0
  92. package/json-schema/Breakpoints.json +36 -0
  93. package/json-schema/BulkRequest.json +29 -0
  94. package/json-schema/BulkResponse.json +108 -0
  95. package/json-schema/CSRFConfig.json +31 -0
  96. package/json-schema/ColorPalette.json +83 -0
  97. package/json-schema/ComparisonOperator.json +56 -0
  98. package/json-schema/ConditionalValidation.json +793 -0
  99. package/json-schema/CreateRequest.json +20 -0
  100. package/json-schema/CrossFieldValidation.json +56 -0
  101. package/json-schema/CustomValidator.json +57 -0
  102. package/json-schema/Dashboard.json +20 -0
  103. package/json-schema/DashboardWidget.json +20 -0
  104. package/json-schema/DatabaseAdapter.json +38 -0
  105. package/json-schema/Datasource.json +25 -23
  106. package/json-schema/DatasourceCapabilities.json +25 -5
  107. package/json-schema/DeleteResponse.json +68 -0
  108. package/json-schema/Discovery.json +114 -0
  109. package/json-schema/DriverCapabilities.json +69 -0
  110. package/json-schema/DriverDefinition.json +86 -0
  111. package/json-schema/DriverInterface.json +88 -0
  112. package/json-schema/DriverOptions.json +23 -0
  113. package/json-schema/DriverType.json +1 -18
  114. package/json-schema/EmailPasswordConfig.json +43 -0
  115. package/json-schema/EqualityOperator.json +14 -0
  116. package/json-schema/ExportRequest.json +786 -0
  117. package/json-schema/Field.json +75 -4
  118. package/json-schema/FieldOperators.json +108 -0
  119. package/json-schema/FieldType.json +8 -2
  120. package/json-schema/FieldWidgetProps.json +327 -0
  121. package/json-schema/FilterCondition.json +28 -0
  122. package/json-schema/I18nContext.json +12 -0
  123. package/json-schema/JoinNode.json +455 -0
  124. package/json-schema/JoinType.json +15 -0
  125. package/json-schema/ListRecordResponse.json +103 -0
  126. package/json-schema/LocationCoordinates.json +36 -0
  127. package/json-schema/Logger.json +25 -0
  128. package/json-schema/MagicLinkConfig.json +21 -0
  129. package/json-schema/Manifest.json +243 -18
  130. package/json-schema/Mapping.json +328 -0
  131. package/json-schema/ModificationResult.json +46 -0
  132. package/json-schema/NormalizedFilter.json +348 -0
  133. package/json-schema/OAuthProvider.json +66 -0
  134. package/json-schema/Object.json +103 -6
  135. package/json-schema/ObjectCapabilities.json +26 -0
  136. package/json-schema/ObjectQLClient.json +12 -0
  137. package/json-schema/PasskeyConfig.json +54 -0
  138. package/json-schema/Plugin.json +20 -0
  139. package/json-schema/PluginContext.json +91 -0
  140. package/json-schema/PluginLifecycle.json +11 -0
  141. package/json-schema/Query.json +328 -0
  142. package/json-schema/QueryFilter.json +34 -0
  143. package/json-schema/RangeOperator.json +41 -0
  144. package/json-schema/RateLimitConfig.json +36 -0
  145. package/json-schema/RecordData.json +11 -0
  146. package/json-schema/Report.json +20 -26
  147. package/json-schema/Router.json +12 -0
  148. package/json-schema/Scheduler.json +12 -0
  149. package/json-schema/ScopedStorage.json +12 -0
  150. package/json-schema/SessionConfig.json +56 -0
  151. package/json-schema/SetOperator.json +18 -0
  152. package/json-schema/Shadow.json +44 -0
  153. package/json-schema/SingleRecordResponse.json +69 -0
  154. package/json-schema/Spacing.json +64 -0
  155. package/json-schema/SpecialOperator.json +18 -0
  156. package/json-schema/StandardAuthProvider.json +622 -0
  157. package/json-schema/StringOperator.json +21 -0
  158. package/json-schema/SystemAPI.json +12 -0
  159. package/json-schema/Theme.json +543 -0
  160. package/json-schema/ThemeMode.json +14 -0
  161. package/json-schema/Trigger.json +73 -0
  162. package/json-schema/TriggerAction.json +14 -0
  163. package/json-schema/TriggerContext.json +61 -0
  164. package/json-schema/TriggerTiming.json +13 -0
  165. package/json-schema/TwoFactorConfig.json +40 -0
  166. package/json-schema/Typography.json +142 -0
  167. package/json-schema/UpdateRequest.json +20 -0
  168. package/json-schema/UserFieldMapping.json +47 -0
  169. package/json-schema/ValidationRule.json +583 -0
  170. package/json-schema/WindowFunction.json +24 -0
  171. package/json-schema/WindowFunctionNode.json +104 -0
  172. package/json-schema/WindowSpec.json +65 -0
  173. package/json-schema/ZIndex.json +44 -0
  174. package/package.json +8 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.zod.d.ts","sourceRoot":"","sources":["../../src/api/contract.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAMH,eAAO,MAAM,gBAAgB,oCAA6D,CAAC;AAE3F;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE/B,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiContracts = exports.DeleteResponseSchema = exports.BulkResponseSchema = exports.ModificationResultSchema = exports.ListRecordResponseSchema = exports.SingleRecordResponseSchema = exports.ExportRequestSchema = exports.BulkRequestSchema = exports.UpdateRequestSchema = exports.CreateRequestSchema = exports.RecordDataSchema = exports.BaseResponseSchema = exports.ApiErrorSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const query_zod_1 = require("../data/query.zod");
6
+ // ==========================================
7
+ // 1. Base Envelopes
8
+ // ==========================================
9
+ exports.ApiErrorSchema = zod_1.z.object({
10
+ code: zod_1.z.string().describe('Error code (e.g. validation_error)'),
11
+ message: zod_1.z.string().describe('Readable error message'),
12
+ details: zod_1.z.any().optional().describe('Additional error context (e.g. field validation errors)'),
13
+ });
14
+ exports.BaseResponseSchema = zod_1.z.object({
15
+ success: zod_1.z.boolean().describe('Operation success status'),
16
+ error: exports.ApiErrorSchema.optional().describe('Error details if success is false'),
17
+ meta: zod_1.z.object({
18
+ timestamp: zod_1.z.string(),
19
+ duration: zod_1.z.number().optional(),
20
+ requestId: zod_1.z.string().optional(),
21
+ traceId: zod_1.z.string().optional(),
22
+ }).optional().describe('Response metadata'),
23
+ });
24
+ // ==========================================
25
+ // 2. Request Payloads (Inputs)
26
+ // ==========================================
27
+ exports.RecordDataSchema = zod_1.z.record(zod_1.z.any()).describe('Key-value map of record data');
28
+ /**
29
+ * Standard Create Request
30
+ */
31
+ exports.CreateRequestSchema = zod_1.z.object({
32
+ data: exports.RecordDataSchema.describe('Record data to insert'),
33
+ });
34
+ /**
35
+ * Standard Update Request
36
+ */
37
+ exports.UpdateRequestSchema = zod_1.z.object({
38
+ data: exports.RecordDataSchema.describe('Partial record data to update'),
39
+ });
40
+ /**
41
+ * Standard Bulk Request
42
+ */
43
+ exports.BulkRequestSchema = zod_1.z.object({
44
+ records: zod_1.z.array(exports.RecordDataSchema).describe('Array of records to process'),
45
+ allOrNone: zod_1.z.boolean().default(true).describe('If true, rollback entire transaction on any failure'),
46
+ });
47
+ /**
48
+ * Export Request
49
+ */
50
+ exports.ExportRequestSchema = query_zod_1.QuerySchema.extend({
51
+ format: zod_1.z.enum(['csv', 'json', 'xlsx']).default('csv'),
52
+ });
53
+ // ==========================================
54
+ // 3. Response Payloads (Outputs)
55
+ // ==========================================
56
+ /**
57
+ * Single Record Response (Get/Create/Update)
58
+ */
59
+ exports.SingleRecordResponseSchema = exports.BaseResponseSchema.extend({
60
+ data: exports.RecordDataSchema.describe('The requested or modified record'),
61
+ });
62
+ /**
63
+ * List/Query Response
64
+ */
65
+ exports.ListRecordResponseSchema = exports.BaseResponseSchema.extend({
66
+ data: zod_1.z.array(exports.RecordDataSchema).describe('Array of matching records'),
67
+ pagination: zod_1.z.object({
68
+ total: zod_1.z.number().describe('Total matching records count'),
69
+ limit: zod_1.z.number().describe('Page size'),
70
+ offset: zod_1.z.number().describe('Page offset'),
71
+ hasMore: zod_1.z.boolean().describe('Are there more pages?'),
72
+ }).describe('Pagination info'),
73
+ });
74
+ /**
75
+ * Modification Result (for Batch/Bulk operations)
76
+ */
77
+ exports.ModificationResultSchema = zod_1.z.object({
78
+ id: zod_1.z.string().optional().describe('Record ID if processed'),
79
+ success: zod_1.z.boolean(),
80
+ errors: zod_1.z.array(exports.ApiErrorSchema).optional(),
81
+ });
82
+ /**
83
+ * Bulk Operation Response
84
+ */
85
+ exports.BulkResponseSchema = exports.BaseResponseSchema.extend({
86
+ data: zod_1.z.array(exports.ModificationResultSchema).describe('Results for each item in the batch'),
87
+ });
88
+ /**
89
+ * Delete Response
90
+ */
91
+ exports.DeleteResponseSchema = exports.BaseResponseSchema.extend({
92
+ id: zod_1.z.string().describe('ID of the deleted record'),
93
+ });
94
+ // ==========================================
95
+ // 4. API Contract Registry
96
+ // ==========================================
97
+ /**
98
+ * Standard API Contracts map
99
+ * Used for generating SDKs and Documentation
100
+ */
101
+ exports.ApiContracts = {
102
+ create: {
103
+ input: exports.CreateRequestSchema,
104
+ output: exports.SingleRecordResponseSchema
105
+ },
106
+ update: {
107
+ input: exports.UpdateRequestSchema,
108
+ output: exports.SingleRecordResponseSchema
109
+ },
110
+ delete: {
111
+ input: zod_1.z.object({}), // usually just ID in URL
112
+ output: exports.DeleteResponseSchema
113
+ },
114
+ get: {
115
+ input: zod_1.z.object({}), // usually just ID in URL
116
+ output: exports.SingleRecordResponseSchema
117
+ },
118
+ list: {
119
+ input: query_zod_1.QuerySchema,
120
+ output: exports.ListRecordResponseSchema
121
+ },
122
+ bulkCreate: {
123
+ input: exports.BulkRequestSchema,
124
+ output: exports.BulkResponseSchema
125
+ },
126
+ bulkUpdate: {
127
+ input: exports.BulkRequestSchema,
128
+ output: exports.BulkResponseSchema
129
+ },
130
+ bulkUpsert: {
131
+ input: exports.BulkRequestSchema,
132
+ output: exports.BulkResponseSchema
133
+ },
134
+ bulkDelete: {
135
+ input: zod_1.z.object({ ids: zod_1.z.array(zod_1.z.string()) }),
136
+ output: exports.BulkResponseSchema
137
+ }
138
+ };
@@ -45,14 +45,14 @@ export declare const DatasetSchema: z.ZodObject<{
45
45
  }, "strip", z.ZodTypeAny, {
46
46
  object: string;
47
47
  externalId: string;
48
- mode: "insert" | "update" | "upsert" | "replace" | "ignore";
48
+ mode: "update" | "upsert" | "insert" | "replace" | "ignore";
49
49
  env: ("prod" | "dev" | "test")[];
50
50
  records: Record<string, any>[];
51
51
  }, {
52
52
  object: string;
53
53
  records: Record<string, any>[];
54
54
  externalId?: string | undefined;
55
- mode?: "insert" | "update" | "upsert" | "replace" | "ignore" | undefined;
55
+ mode?: "update" | "upsert" | "insert" | "replace" | "ignore" | undefined;
56
56
  env?: ("prod" | "dev" | "test")[] | undefined;
57
57
  }>;
58
58
  export type Dataset = z.infer<typeof DatasetSchema>;