@seamapi/types 1.23.0 → 1.23.1

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/dist/devicedb.cjs CHANGED
@@ -53,7 +53,8 @@ var smartlock = zod.z.object({
53
53
  "lockbox",
54
54
  "cylinder",
55
55
  "padlock",
56
- "locker"
56
+ "locker",
57
+ "unknown"
57
58
  ]),
58
59
  has_physical_key: zod.z.boolean(),
59
60
  has_camera: zod.z.boolean()
@@ -108,7 +109,7 @@ var base_device_model_v1 = zod.z.object({
108
109
  slug: zod.z.string(),
109
110
  display_name: zod.z.string(),
110
111
  primary_color_hex: zod.z.string().optional(),
111
- manufacturer_sku: zod.z.string(),
112
+ manufacturer_sku: zod.z.string().optional(),
112
113
  front_image: image_reference.optional(),
113
114
  back_image: image_reference.optional()
114
115
  }).array(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-model-v0.ts","../src/lib/seam/devicedb/public-models/device-model-v1.ts","../src/lib/seam/devicedb/public-models/image-reference.ts","../src/lib/seam/devicedb/public-models/manufacturer.ts"],"names":["z"],"mappings":"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","sourcesContent":["export * from './device-model-v0.js'\nexport * from './device-model-v1.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z } from 'zod'\n\nexport const device_model_v0 = z.object({\n main_category: z.string(),\n model_name: z.string(),\n manufacturer_model_id: z.string(),\n connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n support_level: z.enum(['live', 'beta', 'unsupported']),\n brand: z.string(),\n icon_url: z.string(),\n seam_device_model_page_url: z.string(),\n})\n\nexport type DeviceModelV0 = z.infer<typeof device_model_v0>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nconst smartlock = z.object({\n main_category: z.literal('smartlock'),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n})\n\nconst sensor = z.object({\n main_category: z.literal('sensor'),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nconst thermostat = z.object({\n main_category: z.literal('thermostat'),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n})\n\nconst relay = z.object({\n main_category: z.literal('relay'),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer,\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModelV1 = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n integration: z.enum(['stable', 'beta', 'planned', 'unsupported', 'inquire']),\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n"]}
1
+ {"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-model-v0.ts","../src/lib/seam/devicedb/public-models/device-model-v1.ts","../src/lib/seam/devicedb/public-models/image-reference.ts","../src/lib/seam/devicedb/public-models/manufacturer.ts"],"names":["z"],"mappings":"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","sourcesContent":["export * from './device-model-v0.js'\nexport * from './device-model-v1.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z } from 'zod'\n\nexport const device_model_v0 = z.object({\n main_category: z.string(),\n model_name: z.string(),\n manufacturer_model_id: z.string(),\n connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n support_level: z.enum(['live', 'beta', 'unsupported']),\n brand: z.string(),\n icon_url: z.string(),\n seam_device_model_page_url: z.string(),\n})\n\nexport type DeviceModelV0 = z.infer<typeof device_model_v0>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\nimport { manufacturer } from './manufacturer.js'\n\nconst smartlock = z.object({\n main_category: z.literal('smartlock'),\n physical_properties: z.object({\n lock_type: z.enum([\n 'deadbolt',\n 'lever',\n 'mortise',\n 'lockbox',\n 'cylinder',\n 'padlock',\n 'locker',\n 'unknown',\n ]),\n has_physical_key: z.boolean(),\n has_camera: z.boolean(),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_program_access_schedules: z.boolean(),\n can_program_access_codes_offline: z.boolean(),\n }),\n})\n\nconst sensor = z.object({\n main_category: z.literal('sensor'),\n physical_properties: z.object({\n has_noise_sensor: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n has_occupancy_detection: z.boolean(),\n }),\n})\n\nconst thermostat = z.object({\n main_category: z.literal('thermostat'),\n physical_properties: z.object({\n available_modes: z.enum(['heat', 'cool', 'fan', 'eco']).array(),\n is_heat_pump_compatible: z.boolean(),\n has_occupancy_detection: z.boolean(),\n supports_demand_response: z.boolean(),\n has_humidity_sensor: z.boolean(),\n has_temperature_sensor: z.boolean(),\n supports_emergency_heating_mode: z.boolean(),\n }),\n software_features: z.object({\n can_program_climate_schedules: z.boolean(),\n }),\n})\n\nexport type ThermostatPropertiesV1 = z.infer<typeof thermostat>\n\nconst relay = z.object({\n main_category: z.literal('relay'),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay],\n)\n\nexport const base_device_model_v1 = z.object({\n device_model_id: z.string().uuid(),\n manufacturer,\n is_device_supported: z.boolean(),\n display_name: z.string(),\n description: z.string(),\n product_url: z.string().optional(),\n main_connection_type: z.enum(['wifi', 'zwave', 'zigbee', 'unknown']),\n aesthetic_variants: z\n .object({\n slug: z.string(),\n display_name: z.string(),\n primary_color_hex: z.string().optional(),\n manufacturer_sku: z.string().optional(),\n front_image: image_reference.optional(),\n back_image: image_reference.optional(),\n })\n .array(),\n power_sources: z\n .enum([\n 'battery',\n 'hardwired',\n 'mechanical_harvesting',\n 'wireless',\n 'ethernet',\n ])\n .array(),\n})\n\nexport type BaseDeviceModelV1 = z.infer<typeof base_device_model_v1>\n\nexport const device_model_v1 = base_device_model_v1.and(\n device_model_category_specific_properties,\n)\n\nexport type DeviceModelV1 = z.infer<typeof device_model_v1>\n","import { z } from 'zod'\n\nexport const image_reference = z.object({\n url: z.string().url(),\n width: z.number(),\n height: z.number(),\n})\n\nexport type ImageReference = z.infer<typeof image_reference>\n","import { z } from 'zod'\n\nimport { image_reference } from './image-reference.js'\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n integration: z.enum(['stable', 'beta', 'planned', 'unsupported', 'inquire']),\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n"]}
@@ -30,18 +30,82 @@ declare const device_model_v0: z.ZodObject<{
30
30
  }>;
31
31
  type DeviceModelV0 = z.infer<typeof device_model_v0>;
32
32
 
33
+ declare const thermostat: z.ZodObject<{
34
+ main_category: z.ZodLiteral<"thermostat">;
35
+ physical_properties: z.ZodObject<{
36
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
37
+ is_heat_pump_compatible: z.ZodBoolean;
38
+ has_occupancy_detection: z.ZodBoolean;
39
+ supports_demand_response: z.ZodBoolean;
40
+ has_humidity_sensor: z.ZodBoolean;
41
+ has_temperature_sensor: z.ZodBoolean;
42
+ supports_emergency_heating_mode: z.ZodBoolean;
43
+ }, "strip", z.ZodTypeAny, {
44
+ has_humidity_sensor: boolean;
45
+ has_temperature_sensor: boolean;
46
+ has_occupancy_detection: boolean;
47
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
48
+ is_heat_pump_compatible: boolean;
49
+ supports_demand_response: boolean;
50
+ supports_emergency_heating_mode: boolean;
51
+ }, {
52
+ has_humidity_sensor: boolean;
53
+ has_temperature_sensor: boolean;
54
+ has_occupancy_detection: boolean;
55
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
56
+ is_heat_pump_compatible: boolean;
57
+ supports_demand_response: boolean;
58
+ supports_emergency_heating_mode: boolean;
59
+ }>;
60
+ software_features: z.ZodObject<{
61
+ can_program_climate_schedules: z.ZodBoolean;
62
+ }, "strip", z.ZodTypeAny, {
63
+ can_program_climate_schedules: boolean;
64
+ }, {
65
+ can_program_climate_schedules: boolean;
66
+ }>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ main_category: "thermostat";
69
+ physical_properties: {
70
+ has_humidity_sensor: boolean;
71
+ has_temperature_sensor: boolean;
72
+ has_occupancy_detection: boolean;
73
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
74
+ is_heat_pump_compatible: boolean;
75
+ supports_demand_response: boolean;
76
+ supports_emergency_heating_mode: boolean;
77
+ };
78
+ software_features: {
79
+ can_program_climate_schedules: boolean;
80
+ };
81
+ }, {
82
+ main_category: "thermostat";
83
+ physical_properties: {
84
+ has_humidity_sensor: boolean;
85
+ has_temperature_sensor: boolean;
86
+ has_occupancy_detection: boolean;
87
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
88
+ is_heat_pump_compatible: boolean;
89
+ supports_demand_response: boolean;
90
+ supports_emergency_heating_mode: boolean;
91
+ };
92
+ software_features: {
93
+ can_program_climate_schedules: boolean;
94
+ };
95
+ }>;
96
+ type ThermostatPropertiesV1 = z.infer<typeof thermostat>;
33
97
  declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
34
98
  main_category: z.ZodLiteral<"smartlock">;
35
99
  physical_properties: z.ZodObject<{
36
- lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
100
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker", "unknown"]>;
37
101
  has_physical_key: z.ZodBoolean;
38
102
  has_camera: z.ZodBoolean;
39
103
  }, "strip", z.ZodTypeAny, {
40
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
104
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
41
105
  has_physical_key: boolean;
42
106
  has_camera: boolean;
43
107
  }, {
44
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
108
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
45
109
  has_physical_key: boolean;
46
110
  has_camera: boolean;
47
111
  }>;
@@ -64,7 +128,7 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
64
128
  }, "strip", z.ZodTypeAny, {
65
129
  main_category: "smartlock";
66
130
  physical_properties: {
67
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
131
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
68
132
  has_physical_key: boolean;
69
133
  has_camera: boolean;
70
134
  };
@@ -77,7 +141,7 @@ declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion
77
141
  }, {
78
142
  main_category: "smartlock";
79
143
  physical_properties: {
80
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
144
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
81
145
  has_physical_key: boolean;
82
146
  has_camera: boolean;
83
147
  };
@@ -243,7 +307,7 @@ declare const base_device_model_v1: z.ZodObject<{
243
307
  slug: z.ZodString;
244
308
  display_name: z.ZodString;
245
309
  primary_color_hex: z.ZodOptional<z.ZodString>;
246
- manufacturer_sku: z.ZodString;
310
+ manufacturer_sku: z.ZodOptional<z.ZodString>;
247
311
  front_image: z.ZodOptional<z.ZodObject<{
248
312
  url: z.ZodString;
249
313
  width: z.ZodNumber;
@@ -273,8 +337,8 @@ declare const base_device_model_v1: z.ZodObject<{
273
337
  }, "strip", z.ZodTypeAny, {
274
338
  display_name: string;
275
339
  slug: string;
276
- manufacturer_sku: string;
277
340
  primary_color_hex?: string | undefined;
341
+ manufacturer_sku?: string | undefined;
278
342
  front_image?: {
279
343
  url: string;
280
344
  width: number;
@@ -288,8 +352,8 @@ declare const base_device_model_v1: z.ZodObject<{
288
352
  }, {
289
353
  display_name: string;
290
354
  slug: string;
291
- manufacturer_sku: string;
292
355
  primary_color_hex?: string | undefined;
356
+ manufacturer_sku?: string | undefined;
293
357
  front_image?: {
294
358
  url: string;
295
359
  width: number;
@@ -323,8 +387,8 @@ declare const base_device_model_v1: z.ZodObject<{
323
387
  aesthetic_variants: {
324
388
  display_name: string;
325
389
  slug: string;
326
- manufacturer_sku: string;
327
390
  primary_color_hex?: string | undefined;
391
+ manufacturer_sku?: string | undefined;
328
392
  front_image?: {
329
393
  url: string;
330
394
  width: number;
@@ -359,8 +423,8 @@ declare const base_device_model_v1: z.ZodObject<{
359
423
  aesthetic_variants: {
360
424
  display_name: string;
361
425
  slug: string;
362
- manufacturer_sku: string;
363
426
  primary_color_hex?: string | undefined;
427
+ manufacturer_sku?: string | undefined;
364
428
  front_image?: {
365
429
  url: string;
366
430
  width: number;
@@ -429,7 +493,7 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
429
493
  slug: z.ZodString;
430
494
  display_name: z.ZodString;
431
495
  primary_color_hex: z.ZodOptional<z.ZodString>;
432
- manufacturer_sku: z.ZodString;
496
+ manufacturer_sku: z.ZodOptional<z.ZodString>;
433
497
  front_image: z.ZodOptional<z.ZodObject<{
434
498
  url: z.ZodString;
435
499
  width: z.ZodNumber;
@@ -459,8 +523,8 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
459
523
  }, "strip", z.ZodTypeAny, {
460
524
  display_name: string;
461
525
  slug: string;
462
- manufacturer_sku: string;
463
526
  primary_color_hex?: string | undefined;
527
+ manufacturer_sku?: string | undefined;
464
528
  front_image?: {
465
529
  url: string;
466
530
  width: number;
@@ -474,8 +538,8 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
474
538
  }, {
475
539
  display_name: string;
476
540
  slug: string;
477
- manufacturer_sku: string;
478
541
  primary_color_hex?: string | undefined;
542
+ manufacturer_sku?: string | undefined;
479
543
  front_image?: {
480
544
  url: string;
481
545
  width: number;
@@ -509,8 +573,8 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
509
573
  aesthetic_variants: {
510
574
  display_name: string;
511
575
  slug: string;
512
- manufacturer_sku: string;
513
576
  primary_color_hex?: string | undefined;
577
+ manufacturer_sku?: string | undefined;
514
578
  front_image?: {
515
579
  url: string;
516
580
  width: number;
@@ -545,8 +609,8 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
545
609
  aesthetic_variants: {
546
610
  display_name: string;
547
611
  slug: string;
548
- manufacturer_sku: string;
549
612
  primary_color_hex?: string | undefined;
613
+ manufacturer_sku?: string | undefined;
550
614
  front_image?: {
551
615
  url: string;
552
616
  width: number;
@@ -563,15 +627,15 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
563
627
  }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
564
628
  main_category: z.ZodLiteral<"smartlock">;
565
629
  physical_properties: z.ZodObject<{
566
- lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
630
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker", "unknown"]>;
567
631
  has_physical_key: z.ZodBoolean;
568
632
  has_camera: z.ZodBoolean;
569
633
  }, "strip", z.ZodTypeAny, {
570
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
634
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
571
635
  has_physical_key: boolean;
572
636
  has_camera: boolean;
573
637
  }, {
574
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
638
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
575
639
  has_physical_key: boolean;
576
640
  has_camera: boolean;
577
641
  }>;
@@ -594,7 +658,7 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
594
658
  }, "strip", z.ZodTypeAny, {
595
659
  main_category: "smartlock";
596
660
  physical_properties: {
597
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
661
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
598
662
  has_physical_key: boolean;
599
663
  has_camera: boolean;
600
664
  };
@@ -607,7 +671,7 @@ declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
607
671
  }, {
608
672
  main_category: "smartlock";
609
673
  physical_properties: {
610
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
674
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
611
675
  has_physical_key: boolean;
612
676
  has_camera: boolean;
613
677
  };
@@ -786,6 +850,7 @@ type index_DeviceModelV0 = DeviceModelV0;
786
850
  type index_DeviceModelV1 = DeviceModelV1;
787
851
  type index_ImageReference = ImageReference;
788
852
  type index_Manufacturer = Manufacturer;
853
+ type index_ThermostatPropertiesV1 = ThermostatPropertiesV1;
789
854
  declare const index_base_device_model_v1: typeof base_device_model_v1;
790
855
  declare const index_device_model_category_specific_properties: typeof device_model_category_specific_properties;
791
856
  declare const index_device_model_v0: typeof device_model_v0;
@@ -799,6 +864,7 @@ declare namespace index {
799
864
  index_DeviceModelV1 as DeviceModelV1,
800
865
  index_ImageReference as ImageReference,
801
866
  index_Manufacturer as Manufacturer,
867
+ index_ThermostatPropertiesV1 as ThermostatPropertiesV1,
802
868
  index_base_device_model_v1 as base_device_model_v1,
803
869
  index_device_model_category_specific_properties as device_model_category_specific_properties,
804
870
  index_device_model_v0 as device_model_v0,
@@ -836,13 +902,13 @@ interface Routes {
836
902
  is_device_supported: boolean;
837
903
  display_name: string;
838
904
  description: string;
839
- product_url: string;
905
+ product_url?: string | undefined;
840
906
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
841
907
  aesthetic_variants: Array<{
842
908
  slug: string;
843
909
  display_name: string;
844
910
  primary_color_hex?: string | undefined;
845
- manufacturer_sku: string;
911
+ manufacturer_sku?: string | undefined;
846
912
  front_image?: {
847
913
  url: string;
848
914
  width: number;
@@ -858,7 +924,7 @@ interface Routes {
858
924
  } & ({
859
925
  main_category: 'smartlock';
860
926
  physical_properties: {
861
- lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
927
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker' | 'unknown';
862
928
  has_physical_key: boolean;
863
929
  has_camera: boolean;
864
930
  };
@@ -926,13 +992,13 @@ interface Routes {
926
992
  is_device_supported: boolean;
927
993
  display_name: string;
928
994
  description: string;
929
- product_url: string;
995
+ product_url?: string | undefined;
930
996
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
931
997
  aesthetic_variants: Array<{
932
998
  slug: string;
933
999
  display_name: string;
934
1000
  primary_color_hex?: string | undefined;
935
- manufacturer_sku: string;
1001
+ manufacturer_sku?: string | undefined;
936
1002
  front_image?: {
937
1003
  url: string;
938
1004
  width: number;
@@ -948,7 +1014,7 @@ interface Routes {
948
1014
  } & ({
949
1015
  main_category: 'smartlock';
950
1016
  physical_properties: {
951
- lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
1017
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker' | 'unknown';
952
1018
  has_physical_key: boolean;
953
1019
  has_camera: boolean;
954
1020
  };
@@ -1,16 +1,80 @@
1
1
  import { z } from 'zod';
2
+ declare const thermostat: z.ZodObject<{
3
+ main_category: z.ZodLiteral<"thermostat">;
4
+ physical_properties: z.ZodObject<{
5
+ available_modes: z.ZodArray<z.ZodEnum<["heat", "cool", "fan", "eco"]>, "many">;
6
+ is_heat_pump_compatible: z.ZodBoolean;
7
+ has_occupancy_detection: z.ZodBoolean;
8
+ supports_demand_response: z.ZodBoolean;
9
+ has_humidity_sensor: z.ZodBoolean;
10
+ has_temperature_sensor: z.ZodBoolean;
11
+ supports_emergency_heating_mode: z.ZodBoolean;
12
+ }, "strip", z.ZodTypeAny, {
13
+ has_humidity_sensor: boolean;
14
+ has_temperature_sensor: boolean;
15
+ has_occupancy_detection: boolean;
16
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
17
+ is_heat_pump_compatible: boolean;
18
+ supports_demand_response: boolean;
19
+ supports_emergency_heating_mode: boolean;
20
+ }, {
21
+ has_humidity_sensor: boolean;
22
+ has_temperature_sensor: boolean;
23
+ has_occupancy_detection: boolean;
24
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
25
+ is_heat_pump_compatible: boolean;
26
+ supports_demand_response: boolean;
27
+ supports_emergency_heating_mode: boolean;
28
+ }>;
29
+ software_features: z.ZodObject<{
30
+ can_program_climate_schedules: z.ZodBoolean;
31
+ }, "strip", z.ZodTypeAny, {
32
+ can_program_climate_schedules: boolean;
33
+ }, {
34
+ can_program_climate_schedules: boolean;
35
+ }>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ main_category: "thermostat";
38
+ physical_properties: {
39
+ has_humidity_sensor: boolean;
40
+ has_temperature_sensor: boolean;
41
+ has_occupancy_detection: boolean;
42
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
43
+ is_heat_pump_compatible: boolean;
44
+ supports_demand_response: boolean;
45
+ supports_emergency_heating_mode: boolean;
46
+ };
47
+ software_features: {
48
+ can_program_climate_schedules: boolean;
49
+ };
50
+ }, {
51
+ main_category: "thermostat";
52
+ physical_properties: {
53
+ has_humidity_sensor: boolean;
54
+ has_temperature_sensor: boolean;
55
+ has_occupancy_detection: boolean;
56
+ available_modes: ("heat" | "cool" | "fan" | "eco")[];
57
+ is_heat_pump_compatible: boolean;
58
+ supports_demand_response: boolean;
59
+ supports_emergency_heating_mode: boolean;
60
+ };
61
+ software_features: {
62
+ can_program_climate_schedules: boolean;
63
+ };
64
+ }>;
65
+ export type ThermostatPropertiesV1 = z.infer<typeof thermostat>;
2
66
  export declare const device_model_category_specific_properties: z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
3
67
  main_category: z.ZodLiteral<"smartlock">;
4
68
  physical_properties: z.ZodObject<{
5
- lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
69
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker", "unknown"]>;
6
70
  has_physical_key: z.ZodBoolean;
7
71
  has_camera: z.ZodBoolean;
8
72
  }, "strip", z.ZodTypeAny, {
9
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
73
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
10
74
  has_physical_key: boolean;
11
75
  has_camera: boolean;
12
76
  }, {
13
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
77
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
14
78
  has_physical_key: boolean;
15
79
  has_camera: boolean;
16
80
  }>;
@@ -33,7 +97,7 @@ export declare const device_model_category_specific_properties: z.ZodDiscriminat
33
97
  }, "strip", z.ZodTypeAny, {
34
98
  main_category: "smartlock";
35
99
  physical_properties: {
36
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
100
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
37
101
  has_physical_key: boolean;
38
102
  has_camera: boolean;
39
103
  };
@@ -46,7 +110,7 @@ export declare const device_model_category_specific_properties: z.ZodDiscriminat
46
110
  }, {
47
111
  main_category: "smartlock";
48
112
  physical_properties: {
49
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
113
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
50
114
  has_physical_key: boolean;
51
115
  has_camera: boolean;
52
116
  };
@@ -212,7 +276,7 @@ export declare const base_device_model_v1: z.ZodObject<{
212
276
  slug: z.ZodString;
213
277
  display_name: z.ZodString;
214
278
  primary_color_hex: z.ZodOptional<z.ZodString>;
215
- manufacturer_sku: z.ZodString;
279
+ manufacturer_sku: z.ZodOptional<z.ZodString>;
216
280
  front_image: z.ZodOptional<z.ZodObject<{
217
281
  url: z.ZodString;
218
282
  width: z.ZodNumber;
@@ -242,8 +306,8 @@ export declare const base_device_model_v1: z.ZodObject<{
242
306
  }, "strip", z.ZodTypeAny, {
243
307
  display_name: string;
244
308
  slug: string;
245
- manufacturer_sku: string;
246
309
  primary_color_hex?: string | undefined;
310
+ manufacturer_sku?: string | undefined;
247
311
  front_image?: {
248
312
  height: number;
249
313
  width: number;
@@ -257,8 +321,8 @@ export declare const base_device_model_v1: z.ZodObject<{
257
321
  }, {
258
322
  display_name: string;
259
323
  slug: string;
260
- manufacturer_sku: string;
261
324
  primary_color_hex?: string | undefined;
325
+ manufacturer_sku?: string | undefined;
262
326
  front_image?: {
263
327
  height: number;
264
328
  width: number;
@@ -292,8 +356,8 @@ export declare const base_device_model_v1: z.ZodObject<{
292
356
  aesthetic_variants: {
293
357
  display_name: string;
294
358
  slug: string;
295
- manufacturer_sku: string;
296
359
  primary_color_hex?: string | undefined;
360
+ manufacturer_sku?: string | undefined;
297
361
  front_image?: {
298
362
  height: number;
299
363
  width: number;
@@ -328,8 +392,8 @@ export declare const base_device_model_v1: z.ZodObject<{
328
392
  aesthetic_variants: {
329
393
  display_name: string;
330
394
  slug: string;
331
- manufacturer_sku: string;
332
395
  primary_color_hex?: string | undefined;
396
+ manufacturer_sku?: string | undefined;
333
397
  front_image?: {
334
398
  height: number;
335
399
  width: number;
@@ -398,7 +462,7 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
398
462
  slug: z.ZodString;
399
463
  display_name: z.ZodString;
400
464
  primary_color_hex: z.ZodOptional<z.ZodString>;
401
- manufacturer_sku: z.ZodString;
465
+ manufacturer_sku: z.ZodOptional<z.ZodString>;
402
466
  front_image: z.ZodOptional<z.ZodObject<{
403
467
  url: z.ZodString;
404
468
  width: z.ZodNumber;
@@ -428,8 +492,8 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
428
492
  }, "strip", z.ZodTypeAny, {
429
493
  display_name: string;
430
494
  slug: string;
431
- manufacturer_sku: string;
432
495
  primary_color_hex?: string | undefined;
496
+ manufacturer_sku?: string | undefined;
433
497
  front_image?: {
434
498
  height: number;
435
499
  width: number;
@@ -443,8 +507,8 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
443
507
  }, {
444
508
  display_name: string;
445
509
  slug: string;
446
- manufacturer_sku: string;
447
510
  primary_color_hex?: string | undefined;
511
+ manufacturer_sku?: string | undefined;
448
512
  front_image?: {
449
513
  height: number;
450
514
  width: number;
@@ -478,8 +542,8 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
478
542
  aesthetic_variants: {
479
543
  display_name: string;
480
544
  slug: string;
481
- manufacturer_sku: string;
482
545
  primary_color_hex?: string | undefined;
546
+ manufacturer_sku?: string | undefined;
483
547
  front_image?: {
484
548
  height: number;
485
549
  width: number;
@@ -514,8 +578,8 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
514
578
  aesthetic_variants: {
515
579
  display_name: string;
516
580
  slug: string;
517
- manufacturer_sku: string;
518
581
  primary_color_hex?: string | undefined;
582
+ manufacturer_sku?: string | undefined;
519
583
  front_image?: {
520
584
  height: number;
521
585
  width: number;
@@ -532,15 +596,15 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
532
596
  }>, z.ZodDiscriminatedUnion<"main_category", [z.ZodObject<{
533
597
  main_category: z.ZodLiteral<"smartlock">;
534
598
  physical_properties: z.ZodObject<{
535
- lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker"]>;
599
+ lock_type: z.ZodEnum<["deadbolt", "lever", "mortise", "lockbox", "cylinder", "padlock", "locker", "unknown"]>;
536
600
  has_physical_key: z.ZodBoolean;
537
601
  has_camera: z.ZodBoolean;
538
602
  }, "strip", z.ZodTypeAny, {
539
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
603
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
540
604
  has_physical_key: boolean;
541
605
  has_camera: boolean;
542
606
  }, {
543
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
607
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
544
608
  has_physical_key: boolean;
545
609
  has_camera: boolean;
546
610
  }>;
@@ -563,7 +627,7 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
563
627
  }, "strip", z.ZodTypeAny, {
564
628
  main_category: "smartlock";
565
629
  physical_properties: {
566
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
630
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
567
631
  has_physical_key: boolean;
568
632
  has_camera: boolean;
569
633
  };
@@ -576,7 +640,7 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
576
640
  }, {
577
641
  main_category: "smartlock";
578
642
  physical_properties: {
579
- lock_type: "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
643
+ lock_type: "unknown" | "deadbolt" | "lever" | "mortise" | "lockbox" | "cylinder" | "padlock" | "locker";
580
644
  has_physical_key: boolean;
581
645
  has_camera: boolean;
582
646
  };
@@ -690,3 +754,4 @@ export declare const device_model_v1: z.ZodIntersection<z.ZodObject<{
690
754
  main_category: "relay";
691
755
  }>]>>;
692
756
  export type DeviceModelV1 = z.infer<typeof device_model_v1>;
757
+ export {};
@@ -12,6 +12,7 @@ const smartlock = z.object({
12
12
  'cylinder',
13
13
  'padlock',
14
14
  'locker',
15
+ 'unknown',
15
16
  ]),
16
17
  has_physical_key: z.boolean(),
17
18
  has_camera: z.boolean(),
@@ -64,7 +65,7 @@ export const base_device_model_v1 = z.object({
64
65
  slug: z.string(),
65
66
  display_name: z.string(),
66
67
  primary_color_hex: z.string().optional(),
67
- manufacturer_sku: z.string(),
68
+ manufacturer_sku: z.string().optional(),
68
69
  front_image: image_reference.optional(),
69
70
  back_image: image_reference.optional(),
70
71
  })
@@ -1 +1 @@
1
- {"version":3,"file":"device-model-v1.js","sourceRoot":"","sources":["../../../../src/lib/seam/devicedb/public-models/device-model-v1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-model-v1.js","sourceRoot":"","sources":["../../../../src/lib/seam/devicedb/public-models/device-model-v1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACrC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;YAChB,UAAU;YACV,OAAO;YACP,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;YACT,QAAQ;YACR,SAAS;SACV,CAAC;QACF,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;KACxB,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;QAChC,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE;QACrC,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE;QACzC,gCAAgC,EAAE,CAAC,CAAC,OAAO,EAAE;KAC9C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7B,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;QAChC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE;QACnC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE;KACrC,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACtC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5B,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;QAC/D,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE;QACpC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE;QACpC,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE;QACrC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;QAChC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE;QACnC,+BAA+B,EAAE,CAAC,CAAC,OAAO,EAAE;KAC7C,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,6BAA6B,EAAE,CAAC,CAAC,OAAO,EAAE;KAC3C,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CAClC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,kBAAkB,CAC3E,eAAe,EACf,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CACvC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,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,CAAC,QAAQ,EAAE;IAClC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpE,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,CAAC,QAAQ,EAAE;QACvC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE;QACvC,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;KACvC,CAAC;SACD,KAAK,EAAE;IACV,aAAa,EAAE,CAAC;SACb,IAAI,CAAC;QACJ,SAAS;QACT,WAAW;QACX,uBAAuB;QACvB,UAAU;QACV,UAAU;KACX,CAAC;SACD,KAAK,EAAE;CACX,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC,GAAG,CACrD,yCAAyC,CAC1C,CAAA"}
@@ -26,13 +26,13 @@ export interface Routes {
26
26
  is_device_supported: boolean;
27
27
  display_name: string;
28
28
  description: string;
29
- product_url: string;
29
+ product_url?: string | undefined;
30
30
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
31
31
  aesthetic_variants: Array<{
32
32
  slug: string;
33
33
  display_name: string;
34
34
  primary_color_hex?: string | undefined;
35
- manufacturer_sku: string;
35
+ manufacturer_sku?: string | undefined;
36
36
  front_image?: {
37
37
  url: string;
38
38
  width: number;
@@ -48,7 +48,7 @@ export interface Routes {
48
48
  } & ({
49
49
  main_category: 'smartlock';
50
50
  physical_properties: {
51
- lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
51
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker' | 'unknown';
52
52
  has_physical_key: boolean;
53
53
  has_camera: boolean;
54
54
  };
@@ -116,13 +116,13 @@ export interface Routes {
116
116
  is_device_supported: boolean;
117
117
  display_name: string;
118
118
  description: string;
119
- product_url: string;
119
+ product_url?: string | undefined;
120
120
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
121
121
  aesthetic_variants: Array<{
122
122
  slug: string;
123
123
  display_name: string;
124
124
  primary_color_hex?: string | undefined;
125
- manufacturer_sku: string;
125
+ manufacturer_sku?: string | undefined;
126
126
  front_image?: {
127
127
  url: string;
128
128
  width: number;
@@ -138,7 +138,7 @@ export interface Routes {
138
138
  } & ({
139
139
  main_category: 'smartlock';
140
140
  physical_properties: {
141
- lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker';
141
+ lock_type: 'deadbolt' | 'lever' | 'mortise' | 'lockbox' | 'cylinder' | 'padlock' | 'locker' | 'unknown';
142
142
  has_physical_key: boolean;
143
143
  has_camera: boolean;
144
144
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.23.0",
3
+ "version": "1.23.1",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -14,6 +14,7 @@ const smartlock = z.object({
14
14
  'cylinder',
15
15
  'padlock',
16
16
  'locker',
17
+ 'unknown',
17
18
  ]),
18
19
  has_physical_key: z.boolean(),
19
20
  has_camera: z.boolean(),
@@ -52,6 +53,8 @@ const thermostat = z.object({
52
53
  }),
53
54
  })
54
55
 
56
+ export type ThermostatPropertiesV1 = z.infer<typeof thermostat>
57
+
55
58
  const relay = z.object({
56
59
  main_category: z.literal('relay'),
57
60
  })
@@ -74,7 +77,7 @@ export const base_device_model_v1 = z.object({
74
77
  slug: z.string(),
75
78
  display_name: z.string(),
76
79
  primary_color_hex: z.string().optional(),
77
- manufacturer_sku: z.string(),
80
+ manufacturer_sku: z.string().optional(),
78
81
  front_image: image_reference.optional(),
79
82
  back_image: image_reference.optional(),
80
83
  })
@@ -28,13 +28,13 @@ export interface Routes {
28
28
  is_device_supported: boolean
29
29
  display_name: string
30
30
  description: string
31
- product_url: string
31
+ product_url?: string | undefined
32
32
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
33
33
  aesthetic_variants: Array<{
34
34
  slug: string
35
35
  display_name: string
36
36
  primary_color_hex?: string | undefined
37
- manufacturer_sku: string
37
+ manufacturer_sku?: string | undefined
38
38
  front_image?:
39
39
  | {
40
40
  url: string
@@ -69,6 +69,7 @@ export interface Routes {
69
69
  | 'cylinder'
70
70
  | 'padlock'
71
71
  | 'locker'
72
+ | 'unknown'
72
73
  has_physical_key: boolean
73
74
  has_camera: boolean
74
75
  }
@@ -150,13 +151,13 @@ export interface Routes {
150
151
  is_device_supported: boolean
151
152
  display_name: string
152
153
  description: string
153
- product_url: string
154
+ product_url?: string | undefined
154
155
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
155
156
  aesthetic_variants: Array<{
156
157
  slug: string
157
158
  display_name: string
158
159
  primary_color_hex?: string | undefined
159
- manufacturer_sku: string
160
+ manufacturer_sku?: string | undefined
160
161
  front_image?:
161
162
  | {
162
163
  url: string
@@ -191,6 +192,7 @@ export interface Routes {
191
192
  | 'cylinder'
192
193
  | 'padlock'
193
194
  | 'locker'
195
+ | 'unknown'
194
196
  has_physical_key: boolean
195
197
  has_camera: boolean
196
198
  }