@seamapi/types 1.18.4 → 1.18.6

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 +70 -4
  2. package/dist/devicedb.cjs.map +1 -1
  3. package/dist/devicedb.d.cts +662 -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 +692 -0
  11. package/lib/seam/devicedb/public-models/device-model-v1.js +83 -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 +78 -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 +99 -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 +153 -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,63 @@ 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
+ | {
107
+ main_category: 'relay'
108
+ }
109
+ )
55
110
  }
56
111
  }
57
112
  '/v1/device_models/list': {
@@ -69,49 +124,106 @@ export interface Routes {
69
124
  commonParams: {}
70
125
  formData: {}
71
126
  jsonResponse: {
72
- device_models: Array<{
73
- device_model_id: string
74
- manufacturer: {
75
- manufacturer_id: string
127
+ device_models: Array<
128
+ {
129
+ device_model_id: string
130
+ manufacturer: {
131
+ manufacturer_id: string
132
+ display_name: string
133
+ logo?:
134
+ | {
135
+ url: string
136
+ width: number
137
+ height: number
138
+ }
139
+ | undefined
140
+ integration: 'stable' | 'beta' | 'planned' | 'unsupported'
141
+ is_connect_webview_supported: boolean
142
+ requires_seam_support_to_add_account: boolean
143
+ }
144
+ is_device_supported: boolean
76
145
  display_name: string
77
- logo?:
78
- | {
79
- url: string
80
- width: number
81
- height: number
146
+ description: string
147
+ product_url: string
148
+ main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
149
+ aesthetic_variants: Array<{
150
+ slug: string
151
+ display_name: string
152
+ primary_color_hex?: string | undefined
153
+ manufacturer_sku: string
154
+ front_image?:
155
+ | {
156
+ url: string
157
+ width: number
158
+ height: number
159
+ }
160
+ | undefined
161
+ back_image?:
162
+ | {
163
+ url: string
164
+ width: number
165
+ height: number
166
+ }
167
+ | undefined
168
+ }>
169
+ power_sources: Array<
170
+ | 'battery'
171
+ | 'hardwired'
172
+ | 'mechanical_harvesting'
173
+ | 'wireless'
174
+ | 'ethernet'
175
+ >
176
+ } & (
177
+ | {
178
+ main_category: 'smartlock'
179
+ physical_properties: {
180
+ lock_type:
181
+ | 'deadbolt'
182
+ | 'lever'
183
+ | 'mortise'
184
+ | 'lockbox'
185
+ | 'cylinder'
186
+ | 'padlock'
187
+ | 'locker'
188
+ has_physical_key: boolean
189
+ has_camera: boolean
82
190
  }
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
191
+ software_features: {
192
+ can_remotely_unlock: boolean
193
+ can_program_access_codes: boolean
194
+ can_program_access_schedules: boolean
195
+ can_program_access_codes_offline: boolean
104
196
  }
105
- | undefined
106
- back_image?:
107
- | {
108
- url: string
109
- width: number
110
- height: number
197
+ }
198
+ | {
199
+ main_category: 'sensor'
200
+ physical_properties: {
201
+ has_noise_sensor: boolean
202
+ has_humidity_sensor: boolean
203
+ has_temperature_sensor: boolean
204
+ has_occupancy_detection: boolean
111
205
  }
112
- | undefined
113
- }>
114
- }>
206
+ }
207
+ | {
208
+ main_category: 'thermostat'
209
+ physical_properties: {
210
+ available_modes: Array<'heat' | 'cool' | 'fan' | 'eco'>
211
+ is_heat_pump_compatible: boolean
212
+ has_occupancy_detection: boolean
213
+ supports_demand_response: boolean
214
+ has_humidity_sensor: boolean
215
+ has_temperature_sensor: boolean
216
+ supports_emergency_heating_mode: boolean
217
+ }
218
+ software_features: {
219
+ can_program_climate_schedules: boolean
220
+ }
221
+ }
222
+ | {
223
+ main_category: 'relay'
224
+ }
225
+ )
226
+ >
115
227
  }
116
228
  }
117
229
  '/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>