@seamapi/types 1.18.3 → 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 +648 -74
  4. package/lib/seam/devicedb/index.d.ts +2 -1
  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 +76 -4
  23. package/package.json +1 -1
  24. package/src/lib/seam/devicedb/index.ts +7 -1
  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 +148 -40
  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
@@ -27,9 +27,9 @@ export interface Routes {
27
27
  }
28
28
  is_device_supported: boolean
29
29
  display_name: string
30
+ description: string
30
31
  product_url: string
31
32
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
32
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor'
33
33
  aesthetic_variants: Array<{
34
34
  slug: string
35
35
  display_name: string
@@ -50,7 +50,60 @@ export interface Routes {
50
50
  }
51
51
  | undefined
52
52
  }>
53
- }
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
+ )
54
107
  }
55
108
  }
56
109
  '/v1/device_models/list': {
@@ -68,48 +121,103 @@ export interface Routes {
68
121
  commonParams: {}
69
122
  formData: {}
70
123
  jsonResponse: {
71
- device_models: Array<{
72
- device_model_id: string
73
- manufacturer: {
74
- 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
75
142
  display_name: string
76
- logo?:
77
- | {
78
- url: string
79
- width: number
80
- 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
81
187
  }
82
- | undefined
83
- integration: 'stable' | 'beta' | 'planned' | 'unsupported'
84
- is_connect_webview_supported: boolean
85
- requires_seam_support_to_add_account: boolean
86
- }
87
- is_device_supported: boolean
88
- display_name: string
89
- product_url: string
90
- main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
91
- main_category: 'smartlock' | 'thermostat' | 'noise_sensor'
92
- aesthetic_variants: Array<{
93
- slug: string
94
- display_name: string
95
- primary_color_hex?: string | undefined
96
- manufacturer_sku: string
97
- front_image?:
98
- | {
99
- url: string
100
- width: number
101
- 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
102
193
  }
103
- | undefined
104
- back_image?:
105
- | {
106
- url: string
107
- width: number
108
- 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
109
202
  }
110
- | undefined
111
- }>
112
- }>
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
+ >
113
221
  }
114
222
  }
115
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>