@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.
- package/README.md +73 -1
- package/dist/api/contract.zod.d.ts +1733 -0
- package/dist/api/contract.zod.d.ts.map +1 -0
- package/dist/api/contract.zod.js +138 -0
- package/dist/data/dataset.zod.d.ts +2 -2
- package/dist/data/field.zod.d.ts +1648 -10
- package/dist/data/field.zod.d.ts.map +1 -1
- package/dist/data/field.zod.js +149 -8
- package/dist/data/mapping.zod.d.ts +215 -2
- package/dist/data/mapping.zod.d.ts.map +1 -1
- package/dist/data/object.zod.d.ts +505 -25
- package/dist/data/object.zod.d.ts.map +1 -1
- package/dist/data/object.zod.js +32 -5
- package/dist/data/query.zod.d.ts +349 -0
- package/dist/data/query.zod.d.ts.map +1 -1
- package/dist/data/query.zod.js +77 -1
- package/dist/data/trigger.zod.d.ts +354 -0
- package/dist/data/trigger.zod.d.ts.map +1 -0
- package/dist/data/trigger.zod.js +195 -0
- package/dist/data/validation.zod.d.ts +83 -43
- package/dist/data/validation.zod.d.ts.map +1 -1
- package/dist/data/validation.zod.js +51 -5
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/system/api.zod.d.ts +130 -4
- package/dist/system/api.zod.d.ts.map +1 -1
- package/dist/system/api.zod.js +4 -1
- package/dist/system/datasource.zod.d.ts +89 -6
- package/dist/system/datasource.zod.d.ts.map +1 -1
- package/dist/system/datasource.zod.js +33 -5
- package/dist/system/discovery.zod.d.ts +174 -0
- package/dist/system/discovery.zod.d.ts.map +1 -0
- package/dist/system/discovery.zod.js +53 -0
- package/dist/system/driver.zod.d.ts +1525 -0
- package/dist/system/driver.zod.d.ts.map +1 -0
- package/dist/system/driver.zod.js +290 -0
- package/dist/system/license.zod.d.ts +2 -2
- package/dist/system/manifest.zod.d.ts +323 -52
- package/dist/system/manifest.zod.d.ts.map +1 -1
- package/dist/system/manifest.zod.js +91 -17
- package/dist/system/plugin.zod.d.ts +3516 -0
- package/dist/system/plugin.zod.d.ts.map +1 -0
- package/dist/system/plugin.zod.js +226 -0
- package/dist/system/territory.zod.d.ts +1 -1
- package/dist/system/webhook.zod.d.ts +3 -3
- package/dist/ui/action.zod.d.ts +19 -12
- package/dist/ui/action.zod.d.ts.map +1 -1
- package/dist/ui/action.zod.js +7 -1
- package/dist/ui/app.zod.d.ts +109 -3
- package/dist/ui/app.zod.d.ts.map +1 -1
- package/dist/ui/app.zod.js +13 -2
- package/dist/ui/dashboard.zod.d.ts +9 -3
- package/dist/ui/dashboard.zod.d.ts.map +1 -1
- package/dist/ui/dashboard.zod.js +7 -1
- package/dist/ui/page.zod.d.ts +6 -6
- package/dist/ui/report.zod.d.ts +9 -0
- package/dist/ui/report.zod.d.ts.map +1 -1
- package/dist/ui/report.zod.js +7 -1
- package/dist/ui/theme.zod.d.ts +1221 -0
- package/dist/ui/theme.zod.d.ts.map +1 -0
- package/dist/ui/theme.zod.js +202 -0
- package/dist/ui/widget.zod.d.ts +350 -0
- package/dist/ui/widget.zod.d.ts.map +1 -0
- package/dist/ui/widget.zod.js +66 -0
- package/json-schema/Action.json +8 -2
- package/json-schema/ActionParam.json +8 -2
- package/json-schema/Address.json +40 -0
- package/json-schema/AggregationFunction.json +19 -0
- package/json-schema/AggregationNode.json +42 -0
- package/json-schema/Animation.json +56 -0
- package/json-schema/ApiCapabilities.json +28 -0
- package/json-schema/ApiError.json +27 -0
- package/json-schema/ApiRoutes.json +41 -0
- package/json-schema/App.json +13 -2
- package/json-schema/AsyncValidation.json +70 -0
- package/json-schema/BaseResponse.json +63 -0
- package/json-schema/BorderRadius.json +44 -0
- package/json-schema/Breakpoints.json +36 -0
- package/json-schema/BulkRequest.json +29 -0
- package/json-schema/BulkResponse.json +108 -0
- package/json-schema/ColorPalette.json +83 -0
- package/json-schema/ConditionalValidation.json +793 -0
- package/json-schema/CreateRequest.json +20 -0
- package/json-schema/CrossFieldValidation.json +56 -0
- package/json-schema/CustomValidator.json +57 -0
- package/json-schema/Datasource.json +0 -18
- package/json-schema/DeleteResponse.json +68 -0
- package/json-schema/Discovery.json +114 -0
- package/json-schema/DriverCapabilities.json +39 -0
- package/json-schema/DriverDefinition.json +66 -0
- package/json-schema/DriverInterface.json +58 -0
- package/json-schema/DriverOptions.json +23 -0
- package/json-schema/DriverType.json +1 -18
- package/json-schema/ExportRequest.json +786 -0
- package/json-schema/Field.json +75 -4
- package/json-schema/FieldType.json +8 -2
- package/json-schema/FieldWidgetProps.json +327 -0
- package/json-schema/I18nContext.json +12 -0
- package/json-schema/JoinNode.json +455 -0
- package/json-schema/JoinType.json +15 -0
- package/json-schema/ListRecordResponse.json +103 -0
- package/json-schema/LocationCoordinates.json +36 -0
- package/json-schema/Logger.json +25 -0
- package/json-schema/Manifest.json +243 -18
- package/json-schema/Mapping.json +328 -0
- package/json-schema/ModificationResult.json +46 -0
- package/json-schema/Object.json +103 -6
- package/json-schema/ObjectCapabilities.json +26 -0
- package/json-schema/ObjectQLClient.json +12 -0
- package/json-schema/Plugin.json +20 -0
- package/json-schema/PluginContext.json +91 -0
- package/json-schema/PluginLifecycle.json +11 -0
- package/json-schema/Query.json +328 -0
- package/json-schema/RecordData.json +11 -0
- package/json-schema/Router.json +12 -0
- package/json-schema/Scheduler.json +12 -0
- package/json-schema/ScopedStorage.json +12 -0
- package/json-schema/Shadow.json +44 -0
- package/json-schema/SingleRecordResponse.json +69 -0
- package/json-schema/Spacing.json +64 -0
- package/json-schema/SystemAPI.json +12 -0
- package/json-schema/Theme.json +543 -0
- package/json-schema/ThemeMode.json +14 -0
- package/json-schema/Trigger.json +73 -0
- package/json-schema/TriggerAction.json +14 -0
- package/json-schema/TriggerContext.json +61 -0
- package/json-schema/TriggerTiming.json +13 -0
- package/json-schema/Typography.json +142 -0
- package/json-schema/UpdateRequest.json +20 -0
- package/json-schema/ValidationRule.json +583 -0
- package/json-schema/WindowFunction.json +24 -0
- package/json-schema/WindowFunctionNode.json +104 -0
- package/json-schema/WindowSpec.json +65 -0
- package/json-schema/ZIndex.json +44 -0
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -82,6 +82,77 @@ These can be used with:
|
|
|
82
82
|
pnpm build
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
### Testing
|
|
86
|
+
|
|
87
|
+
This package includes comprehensive test coverage for all Zod schemas using **Vitest**.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Run tests once
|
|
91
|
+
pnpm test
|
|
92
|
+
|
|
93
|
+
# Run tests in watch mode
|
|
94
|
+
pnpm test:watch
|
|
95
|
+
|
|
96
|
+
# Run tests with coverage report
|
|
97
|
+
pnpm test:coverage
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Test Structure
|
|
101
|
+
|
|
102
|
+
Tests are co-located with schema files using the `.test.ts` suffix:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
src/
|
|
106
|
+
├── data/
|
|
107
|
+
│ ├── field.zod.ts # Schema definition
|
|
108
|
+
│ ├── field.test.ts # Tests
|
|
109
|
+
│ ├── object.zod.ts
|
|
110
|
+
│ └── object.test.ts
|
|
111
|
+
├── ui/
|
|
112
|
+
│ ├── view.zod.ts
|
|
113
|
+
│ └── view.test.ts
|
|
114
|
+
└── system/
|
|
115
|
+
├── manifest.zod.ts
|
|
116
|
+
└── manifest.test.ts
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Test Coverage
|
|
120
|
+
|
|
121
|
+
Each test file includes:
|
|
122
|
+
* **Schema Validation Tests**: Verify valid inputs pass and invalid inputs fail
|
|
123
|
+
* **Default Value Tests**: Ensure default values are applied correctly
|
|
124
|
+
* **Type Tests**: Test discriminated unions and type narrowing
|
|
125
|
+
* **Constraint Tests**: Validate naming conventions (snake_case), regex patterns, enums
|
|
126
|
+
* **Real-World Examples**: Complete, realistic examples from CRM, HR, Sales domains
|
|
127
|
+
|
|
128
|
+
**Current Coverage**: 263 tests across 13 test files with 100% coverage for tested schemas.
|
|
129
|
+
|
|
130
|
+
#### Writing Tests
|
|
131
|
+
|
|
132
|
+
When adding new schemas, follow these patterns:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { describe, it, expect } from 'vitest';
|
|
136
|
+
import { YourSchema } from './your-schema.zod';
|
|
137
|
+
|
|
138
|
+
describe('YourSchema', () => {
|
|
139
|
+
it('should accept valid data', () => {
|
|
140
|
+
const valid = { /* valid data */ };
|
|
141
|
+
expect(() => YourSchema.parse(valid)).not.toThrow();
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it('should reject invalid data', () => {
|
|
145
|
+
const invalid = { /* invalid data */ };
|
|
146
|
+
expect(() => YourSchema.parse(invalid)).toThrow();
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
it('should apply defaults', () => {
|
|
150
|
+
const result = YourSchema.parse({ /* minimal data */ });
|
|
151
|
+
expect(result.someField).toBe('default-value');
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
85
156
|
### Directory Structure
|
|
86
157
|
|
|
87
158
|
```text
|
|
@@ -91,5 +162,6 @@ packages/spec/
|
|
|
91
162
|
│ ├── ui/ # ObjectUI Protocol
|
|
92
163
|
│ └── system/ # ObjectOS Protocol
|
|
93
164
|
├── json-schema/ # Auto-generated (npm run gen:schema)
|
|
94
|
-
|
|
165
|
+
├── dist/ # Compiled JS/D.TS
|
|
166
|
+
└── vitest.config.ts # Test configuration
|
|
95
167
|
```
|