@seamapi/types 1.18.4 → 1.18.5

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 (34) hide show
  1. package/dist/devicedb.cjs +67 -4
  2. package/dist/devicedb.cjs.map +1 -1
  3. package/dist/devicedb.d.cts +646 -74
  4. package/lib/seam/devicedb/index.d.ts +2 -2
  5. package/lib/seam/devicedb/index.js +1 -1
  6. package/lib/seam/devicedb/index.js.map +1 -1
  7. package/lib/seam/devicedb/public-models/device-model-v0.d.ts +30 -0
  8. package/lib/seam/devicedb/public-models/device-model-v0.js +12 -0
  9. package/lib/seam/devicedb/public-models/device-model-v0.js.map +1 -0
  10. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +680 -0
  11. package/lib/seam/devicedb/public-models/device-model-v1.js +80 -0
  12. package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -0
  13. package/lib/seam/devicedb/public-models/image-reference.d.ts +15 -0
  14. package/lib/seam/devicedb/public-models/image-reference.js +7 -0
  15. package/lib/seam/devicedb/public-models/image-reference.js.map +1 -0
  16. package/lib/seam/devicedb/public-models/index.d.ts +4 -0
  17. package/lib/seam/devicedb/public-models/index.js +5 -0
  18. package/lib/seam/devicedb/public-models/index.js.map +1 -0
  19. package/lib/seam/devicedb/public-models/manufacturer.d.ts +44 -0
  20. package/lib/seam/devicedb/public-models/manufacturer.js +11 -0
  21. package/lib/seam/devicedb/public-models/manufacturer.js.map +1 -0
  22. package/lib/seam/devicedb/route-types.d.ts +74 -4
  23. package/package.json +1 -1
  24. package/src/lib/seam/devicedb/index.ts +2 -2
  25. package/src/lib/seam/devicedb/public-models/device-model-v0.ts +14 -0
  26. package/src/lib/seam/devicedb/public-models/device-model-v1.ts +95 -0
  27. package/src/lib/seam/devicedb/public-models/image-reference.ts +9 -0
  28. package/src/lib/seam/devicedb/public-models/index.ts +4 -0
  29. package/src/lib/seam/devicedb/public-models/manufacturer.ts +14 -0
  30. package/src/lib/seam/devicedb/route-types.ts +147 -41
  31. package/lib/seam/devicedb/public-models.d.ts +0 -273
  32. package/lib/seam/devicedb/public-models.js +0 -45
  33. package/lib/seam/devicedb/public-models.js.map +0 -1
  34. package/src/lib/seam/devicedb/public-models.ts +0 -56
@@ -30,7 +30,6 @@ export interface Routes {
30
30
  description: string
31
31
  product_url: string
32
32
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
33
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor'
34
33
  aesthetic_variants: Array<{
35
34
  slug: string
36
35
  display_name: string
@@ -51,7 +50,60 @@ export interface Routes {
51
50
  }
52
51
  | undefined
53
52
  }>
54
- }
53
+ power_sources: Array<
54
+ | 'battery'
55
+ | 'hardwired'
56
+ | 'mechanical_harvesting'
57
+ | 'wireless'
58
+ | 'ethernet'
59
+ >
60
+ } & (
61
+ | {
62
+ main_category: 'smartlock'
63
+ physical_properties: {
64
+ lock_type:
65
+ | 'deadbolt'
66
+ | 'lever'
67
+ | 'mortise'
68
+ | 'lockbox'
69
+ | 'cylinder'
70
+ | 'padlock'
71
+ | 'locker'
72
+ has_physical_key: boolean
73
+ has_camera: boolean
74
+ }
75
+ software_features: {
76
+ can_remotely_unlock: boolean
77
+ can_program_access_codes: boolean
78
+ can_program_access_schedules: boolean
79
+ can_program_access_codes_offline: boolean
80
+ }
81
+ }
82
+ | {
83
+ main_category: 'sensor'
84
+ physical_properties: {
85
+ has_noise_sensor: boolean
86
+ has_humidity_sensor: boolean
87
+ has_temperature_sensor: boolean
88
+ has_occupancy_detection: boolean
89
+ }
90
+ }
91
+ | {
92
+ main_category: 'thermostat'
93
+ physical_properties: {
94
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>
95
+ is_heat_pump_compatible: boolean
96
+ has_occupancy_detection: boolean
97
+ supports_demand_response: boolean
98
+ has_humidity_sensor: boolean
99
+ has_temperature_sensor: boolean
100
+ supports_emergency_heating_mode: boolean
101
+ }
102
+ software_features: {
103
+ can_program_climate_schedules: boolean
104
+ }
105
+ }
106
+ )
55
107
  }
56
108
  }
57
109
  '/v1/device_models/list': {
@@ -69,49 +121,103 @@ export interface Routes {
69
121
  commonParams: {}
70
122
  formData: {}
71
123
  jsonResponse: {
72
- device_models: Array<{
73
- device_model_id: string
74
- manufacturer: {
75
- manufacturer_id: string
124
+ device_models: Array<
125
+ {
126
+ device_model_id: string
127
+ manufacturer: {
128
+ manufacturer_id: string
129
+ display_name: string
130
+ logo?:
131
+ | {
132
+ url: string
133
+ width: number
134
+ height: number
135
+ }
136
+ | undefined
137
+ integration: 'stable' | 'beta' | 'planned' | 'unsupported'
138
+ is_connect_webview_supported: boolean
139
+ requires_seam_support_to_add_account: boolean
140
+ }
141
+ is_device_supported: boolean
76
142
  display_name: string
77
- logo?:
78
- | {
79
- url: string
80
- width: number
81
- height: number
143
+ description: string
144
+ product_url: string
145
+ main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
146
+ aesthetic_variants: Array<{
147
+ slug: string
148
+ display_name: string
149
+ primary_color_hex?: string | undefined
150
+ manufacturer_sku: string
151
+ front_image?:
152
+ | {
153
+ url: string
154
+ width: number
155
+ height: number
156
+ }
157
+ | undefined
158
+ back_image?:
159
+ | {
160
+ url: string
161
+ width: number
162
+ height: number
163
+ }
164
+ | undefined
165
+ }>
166
+ power_sources: Array<
167
+ | 'battery'
168
+ | 'hardwired'
169
+ | 'mechanical_harvesting'
170
+ | 'wireless'
171
+ | 'ethernet'
172
+ >
173
+ } & (
174
+ | {
175
+ main_category: 'smartlock'
176
+ physical_properties: {
177
+ lock_type:
178
+ | 'deadbolt'
179
+ | 'lever'
180
+ | 'mortise'
181
+ | 'lockbox'
182
+ | 'cylinder'
183
+ | 'padlock'
184
+ | 'locker'
185
+ has_physical_key: boolean
186
+ has_camera: boolean
82
187
  }
83
- | undefined
84
- integration: 'stable' | 'beta' | 'planned' | 'unsupported'
85
- is_connect_webview_supported: boolean
86
- requires_seam_support_to_add_account: boolean
87
- }
88
- is_device_supported: boolean
89
- display_name: string
90
- description: string
91
- product_url: string
92
- main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
93
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor'
94
- aesthetic_variants: Array<{
95
- slug: string
96
- display_name: string
97
- primary_color_hex?: string | undefined
98
- manufacturer_sku: string
99
- front_image?:
100
- | {
101
- url: string
102
- width: number
103
- height: number
188
+ software_features: {
189
+ can_remotely_unlock: boolean
190
+ can_program_access_codes: boolean
191
+ can_program_access_schedules: boolean
192
+ can_program_access_codes_offline: boolean
104
193
  }
105
- | undefined
106
- back_image?:
107
- | {
108
- url: string
109
- width: number
110
- height: number
194
+ }
195
+ | {
196
+ main_category: 'sensor'
197
+ physical_properties: {
198
+ has_noise_sensor: boolean
199
+ has_humidity_sensor: boolean
200
+ has_temperature_sensor: boolean
201
+ has_occupancy_detection: boolean
111
202
  }
112
- | undefined
113
- }>
114
- }>
203
+ }
204
+ | {
205
+ main_category: 'thermostat'
206
+ physical_properties: {
207
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>
208
+ is_heat_pump_compatible: boolean
209
+ has_occupancy_detection: boolean
210
+ supports_demand_response: boolean
211
+ has_humidity_sensor: boolean
212
+ has_temperature_sensor: boolean
213
+ supports_emergency_heating_mode: boolean
214
+ }
215
+ software_features: {
216
+ can_program_climate_schedules: boolean
217
+ }
218
+ }
219
+ )
220
+ >
115
221
  }
116
222
  }
117
223
  '/v1/manufacturers/get': {
@@ -1,273 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const device_model_v0: z.ZodObject<{
3
- main_category: z.ZodString;
4
- model_name: z.ZodString;
5
- manufacturer_model_id: z.ZodString;
6
- connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
7
- support_level: z.ZodEnum<["live", "beta", "unsupported"]>;
8
- brand: z.ZodString;
9
- icon_url: z.ZodString;
10
- seam_device_model_page_url: z.ZodString;
11
- }, "strip", z.ZodTypeAny, {
12
- brand: string;
13
- main_category: string;
14
- model_name: string;
15
- manufacturer_model_id: string;
16
- connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
17
- support_level: "beta" | "live" | "unsupported";
18
- icon_url: string;
19
- seam_device_model_page_url: string;
20
- }, {
21
- brand: string;
22
- main_category: string;
23
- model_name: string;
24
- manufacturer_model_id: string;
25
- connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
26
- support_level: "beta" | "live" | "unsupported";
27
- icon_url: string;
28
- seam_device_model_page_url: string;
29
- }>;
30
- export type DeviceModelV0 = z.infer<typeof device_model_v0>;
31
- export declare const image_reference: z.ZodObject<{
32
- url: z.ZodString;
33
- width: z.ZodNumber;
34
- height: z.ZodNumber;
35
- }, "strip", z.ZodTypeAny, {
36
- height: number;
37
- width: number;
38
- url: string;
39
- }, {
40
- height: number;
41
- width: number;
42
- url: string;
43
- }>;
44
- export type ImageReference = z.infer<typeof image_reference>;
45
- export declare const manufacturer: z.ZodObject<{
46
- manufacturer_id: z.ZodString;
47
- display_name: z.ZodString;
48
- logo: z.ZodOptional<z.ZodObject<{
49
- url: z.ZodString;
50
- width: z.ZodNumber;
51
- height: z.ZodNumber;
52
- }, "strip", z.ZodTypeAny, {
53
- height: number;
54
- width: number;
55
- url: string;
56
- }, {
57
- height: number;
58
- width: number;
59
- url: string;
60
- }>>;
61
- integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
62
- is_connect_webview_supported: z.ZodBoolean;
63
- requires_seam_support_to_add_account: z.ZodBoolean;
64
- }, "strip", z.ZodTypeAny, {
65
- display_name: string;
66
- manufacturer_id: string;
67
- integration: "beta" | "stable" | "unsupported" | "planned";
68
- is_connect_webview_supported: boolean;
69
- requires_seam_support_to_add_account: boolean;
70
- logo?: {
71
- height: number;
72
- width: number;
73
- url: string;
74
- } | undefined;
75
- }, {
76
- display_name: string;
77
- manufacturer_id: string;
78
- integration: "beta" | "stable" | "unsupported" | "planned";
79
- is_connect_webview_supported: boolean;
80
- requires_seam_support_to_add_account: boolean;
81
- logo?: {
82
- height: number;
83
- width: number;
84
- url: string;
85
- } | undefined;
86
- }>;
87
- export type Manufacturer = z.infer<typeof manufacturer>;
88
- export declare const device_model_v1: z.ZodObject<{
89
- device_model_id: z.ZodString;
90
- manufacturer: z.ZodObject<{
91
- manufacturer_id: z.ZodString;
92
- display_name: z.ZodString;
93
- logo: z.ZodOptional<z.ZodObject<{
94
- url: z.ZodString;
95
- width: z.ZodNumber;
96
- height: z.ZodNumber;
97
- }, "strip", z.ZodTypeAny, {
98
- height: number;
99
- width: number;
100
- url: string;
101
- }, {
102
- height: number;
103
- width: number;
104
- url: string;
105
- }>>;
106
- integration: z.ZodEnum<["stable", "beta", "planned", "unsupported"]>;
107
- is_connect_webview_supported: z.ZodBoolean;
108
- requires_seam_support_to_add_account: z.ZodBoolean;
109
- }, "strip", z.ZodTypeAny, {
110
- display_name: string;
111
- manufacturer_id: string;
112
- integration: "beta" | "stable" | "unsupported" | "planned";
113
- is_connect_webview_supported: boolean;
114
- requires_seam_support_to_add_account: boolean;
115
- logo?: {
116
- height: number;
117
- width: number;
118
- url: string;
119
- } | undefined;
120
- }, {
121
- display_name: string;
122
- manufacturer_id: string;
123
- integration: "beta" | "stable" | "unsupported" | "planned";
124
- is_connect_webview_supported: boolean;
125
- requires_seam_support_to_add_account: boolean;
126
- logo?: {
127
- height: number;
128
- width: number;
129
- url: string;
130
- } | undefined;
131
- }>;
132
- is_device_supported: z.ZodBoolean;
133
- display_name: z.ZodString;
134
- description: z.ZodString;
135
- product_url: z.ZodString;
136
- main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
137
- main_category: z.ZodEnum<["smartlock", "thermostat", "noise_sensor"]>;
138
- aesthetic_variants: z.ZodArray<z.ZodObject<{
139
- slug: z.ZodString;
140
- display_name: z.ZodString;
141
- primary_color_hex: z.ZodOptional<z.ZodString>;
142
- manufacturer_sku: z.ZodString;
143
- front_image: z.ZodOptional<z.ZodObject<{
144
- url: z.ZodString;
145
- width: z.ZodNumber;
146
- height: z.ZodNumber;
147
- }, "strip", z.ZodTypeAny, {
148
- height: number;
149
- width: number;
150
- url: string;
151
- }, {
152
- height: number;
153
- width: number;
154
- url: string;
155
- }>>;
156
- back_image: z.ZodOptional<z.ZodObject<{
157
- url: z.ZodString;
158
- width: z.ZodNumber;
159
- height: z.ZodNumber;
160
- }, "strip", z.ZodTypeAny, {
161
- height: number;
162
- width: number;
163
- url: string;
164
- }, {
165
- height: number;
166
- width: number;
167
- url: string;
168
- }>>;
169
- }, "strip", z.ZodTypeAny, {
170
- display_name: string;
171
- slug: string;
172
- manufacturer_sku: string;
173
- primary_color_hex?: string | undefined;
174
- front_image?: {
175
- height: number;
176
- width: number;
177
- url: string;
178
- } | undefined;
179
- back_image?: {
180
- height: number;
181
- width: number;
182
- url: string;
183
- } | undefined;
184
- }, {
185
- display_name: string;
186
- slug: string;
187
- manufacturer_sku: string;
188
- primary_color_hex?: string | undefined;
189
- front_image?: {
190
- height: number;
191
- width: number;
192
- url: string;
193
- } | undefined;
194
- back_image?: {
195
- height: number;
196
- width: number;
197
- url: string;
198
- } | undefined;
199
- }>, "many">;
200
- }, "strip", z.ZodTypeAny, {
201
- description: string;
202
- display_name: string;
203
- main_category: "thermostat" | "smartlock" | "noise_sensor";
204
- device_model_id: string;
205
- manufacturer: {
206
- display_name: string;
207
- manufacturer_id: string;
208
- integration: "beta" | "stable" | "unsupported" | "planned";
209
- is_connect_webview_supported: boolean;
210
- requires_seam_support_to_add_account: boolean;
211
- logo?: {
212
- height: number;
213
- width: number;
214
- url: string;
215
- } | undefined;
216
- };
217
- is_device_supported: boolean;
218
- product_url: string;
219
- main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
220
- aesthetic_variants: {
221
- display_name: string;
222
- slug: string;
223
- manufacturer_sku: string;
224
- primary_color_hex?: string | undefined;
225
- front_image?: {
226
- height: number;
227
- width: number;
228
- url: string;
229
- } | undefined;
230
- back_image?: {
231
- height: number;
232
- width: number;
233
- url: string;
234
- } | undefined;
235
- }[];
236
- }, {
237
- description: string;
238
- display_name: string;
239
- main_category: "thermostat" | "smartlock" | "noise_sensor";
240
- device_model_id: string;
241
- manufacturer: {
242
- display_name: string;
243
- manufacturer_id: string;
244
- integration: "beta" | "stable" | "unsupported" | "planned";
245
- is_connect_webview_supported: boolean;
246
- requires_seam_support_to_add_account: boolean;
247
- logo?: {
248
- height: number;
249
- width: number;
250
- url: string;
251
- } | undefined;
252
- };
253
- is_device_supported: boolean;
254
- product_url: string;
255
- main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
256
- aesthetic_variants: {
257
- display_name: string;
258
- slug: string;
259
- manufacturer_sku: string;
260
- primary_color_hex?: string | undefined;
261
- front_image?: {
262
- height: number;
263
- width: number;
264
- url: string;
265
- } | undefined;
266
- back_image?: {
267
- height: number;
268
- width: number;
269
- url: string;
270
- } | undefined;
271
- }[];
272
- }>;
273
- export type DeviceModelV1 = z.infer<typeof device_model_v1>;
@@ -1,45 +0,0 @@
1
- import { z } from 'zod';
2
- export const device_model_v0 = z.object({
3
- main_category: z.string(),
4
- model_name: z.string(),
5
- manufacturer_model_id: z.string(),
6
- connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),
7
- support_level: z.enum(['live', 'beta', 'unsupported']),
8
- brand: z.string(),
9
- icon_url: z.string(),
10
- seam_device_model_page_url: z.string(),
11
- });
12
- export const image_reference = z.object({
13
- url: z.string().url(),
14
- width: z.number(),
15
- height: z.number(),
16
- });
17
- export const manufacturer = z.object({
18
- manufacturer_id: z.string().uuid(),
19
- display_name: z.string(),
20
- logo: image_reference.optional(),
21
- integration: z.enum(['stable', 'beta', 'planned', 'unsupported']),
22
- is_connect_webview_supported: z.boolean(),
23
- requires_seam_support_to_add_account: z.boolean(),
24
- });
25
- export const device_model_v1 = z.object({
26
- device_model_id: z.string().uuid(),
27
- manufacturer,
28
- is_device_supported: z.boolean(),
29
- display_name: z.string(),
30
- description: z.string(),
31
- product_url: z.string(),
32
- main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),
33
- main_category: z.enum(['smartlock', 'thermostat', 'noise_sensor']),
34
- aesthetic_variants: z
35
- .object({
36
- slug: z.string(),
37
- display_name: z.string(),
38
- primary_color_hex: z.string().optional(),
39
- manufacturer_sku: z.string(),
40
- front_image: image_reference.optional(),
41
- back_image: image_reference.optional(),
42
- })
43
- .array(),
44
- });
45
- //# sourceMappingURL=public-models.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-models.js","sourceRoot":"","sources":["../../../src/lib/seam/devicedb/public-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/D,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE;CACvC,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACjE,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE;IACzC,oCAAoC,EAAE,CAAC,CAAC,OAAO,EAAE;CAClD,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAClC,YAAY;IACZ,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAClE,kBAAkB,EAAE,CAAC;SAClB,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;KACvC,CAAC;SACD,KAAK,EAAE;CACX,CAAC,CAAA"}
@@ -1,56 +0,0 @@
1
- import { z } from 'zod'
2
-
3
- export const device_model_v0 = z.object({
4
- main_category: z.string(),
5
- model_name: z.string(),
6
- manufacturer_model_id: z.string(),
7
- connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),
8
- support_level: z.enum(['live', 'beta', 'unsupported']),
9
- brand: z.string(),
10
- icon_url: z.string(),
11
- seam_device_model_page_url: z.string(),
12
- })
13
-
14
- export type DeviceModelV0 = z.infer<typeof device_model_v0>
15
-
16
- export const image_reference = z.object({
17
- url: z.string().url(),
18
- width: z.number(),
19
- height: z.number(),
20
- })
21
-
22
- export type ImageReference = z.infer<typeof image_reference>
23
-
24
- export const manufacturer = z.object({
25
- manufacturer_id: z.string().uuid(),
26
- display_name: z.string(),
27
- logo: image_reference.optional(),
28
- integration: z.enum(['stable', 'beta', 'planned', 'unsupported']),
29
- is_connect_webview_supported: z.boolean(),
30
- requires_seam_support_to_add_account: z.boolean(),
31
- })
32
-
33
- export type Manufacturer = z.infer<typeof manufacturer>
34
-
35
- export const device_model_v1 = z.object({
36
- device_model_id: z.string().uuid(),
37
- manufacturer,
38
- is_device_supported: z.boolean(),
39
- display_name: z.string(),
40
- description: z.string(),
41
- product_url: z.string(),
42
- main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),
43
- main_category: z.enum(['smartlock', 'thermostat', 'noise_sensor']),
44
- aesthetic_variants: z
45
- .object({
46
- slug: z.string(),
47
- display_name: z.string(),
48
- primary_color_hex: z.string().optional(),
49
- manufacturer_sku: z.string(),
50
- front_image: image_reference.optional(),
51
- back_image: image_reference.optional(),
52
- })
53
- .array(),
54
- })
55
-
56
- export type DeviceModelV1 = z.infer<typeof device_model_v1>