@seamapi/types 1.25.0 → 1.26.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.
Files changed (31) hide show
  1. package/dist/connect.cjs +10 -0
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +35 -0
  4. package/dist/devicedb.cjs +81 -9
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +1842 -2
  7. package/lib/seam/connect/openapi.d.ts +30 -0
  8. package/lib/seam/connect/openapi.js +10 -0
  9. package/lib/seam/connect/openapi.js.map +1 -1
  10. package/lib/seam/connect/route-types.d.ts +5 -0
  11. package/lib/seam/devicedb/index.d.ts +3 -2
  12. package/lib/seam/devicedb/index.js +2 -0
  13. package/lib/seam/devicedb/index.js.map +1 -1
  14. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +5 -2
  15. package/lib/seam/devicedb/public-models/device-model-v1.js +22 -8
  16. package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -1
  17. package/lib/seam/devicedb/public-models/manufacturer.d.ts +2 -0
  18. package/lib/seam/devicedb/public-models/manufacturer.js +8 -1
  19. package/lib/seam/devicedb/public-models/manufacturer.js.map +1 -1
  20. package/lib/seam/devicedb/route-specs.d.ts +1817 -0
  21. package/lib/seam/devicedb/route-specs.js +49 -0
  22. package/lib/seam/devicedb/route-specs.js.map +1 -0
  23. package/lib/seam/devicedb/route-types.d.ts +1 -1
  24. package/package.json +3 -1
  25. package/src/lib/seam/connect/openapi.ts +10 -0
  26. package/src/lib/seam/connect/route-types.ts +5 -0
  27. package/src/lib/seam/devicedb/index.ts +5 -1
  28. package/src/lib/seam/devicedb/public-models/device-model-v1.ts +28 -8
  29. package/src/lib/seam/devicedb/public-models/manufacturer.ts +13 -1
  30. package/src/lib/seam/devicedb/route-specs.ts +50 -0
  31. package/src/lib/seam/devicedb/route-types.ts +7 -1
@@ -2143,6 +2143,9 @@ declare const _default: {
2143
2143
  ends_at: {
2144
2144
  type: string;
2145
2145
  };
2146
+ is_external_modification_allowed: {
2147
+ type: string;
2148
+ };
2146
2149
  name: {
2147
2150
  type: string;
2148
2151
  };
@@ -2255,6 +2258,9 @@ declare const _default: {
2255
2258
  ends_at: {
2256
2259
  type: string;
2257
2260
  };
2261
+ is_external_modification_allowed: {
2262
+ type: string;
2263
+ };
2258
2264
  name: {
2259
2265
  type: string;
2260
2266
  };
@@ -2361,6 +2367,9 @@ declare const _default: {
2361
2367
  ends_at: {
2362
2368
  type: string;
2363
2369
  };
2370
+ is_external_modification_allowed: {
2371
+ type: string;
2372
+ };
2364
2373
  name: {
2365
2374
  type: string;
2366
2375
  };
@@ -2986,6 +2995,9 @@ declare const _default: {
2986
2995
  force: {
2987
2996
  type: string;
2988
2997
  };
2998
+ is_external_modification_allowed: {
2999
+ type: string;
3000
+ };
2989
3001
  sync: {
2990
3002
  default: boolean;
2991
3003
  type: string;
@@ -3058,6 +3070,9 @@ declare const _default: {
3058
3070
  force: {
3059
3071
  type: string;
3060
3072
  };
3073
+ is_external_modification_allowed: {
3074
+ type: string;
3075
+ };
3061
3076
  sync: {
3062
3077
  default: boolean;
3063
3078
  type: string;
@@ -3458,6 +3473,9 @@ declare const _default: {
3458
3473
  force: {
3459
3474
  type: string;
3460
3475
  };
3476
+ is_external_modification_allowed: {
3477
+ type: string;
3478
+ };
3461
3479
  is_managed: {
3462
3480
  type: string;
3463
3481
  };
@@ -3529,6 +3547,9 @@ declare const _default: {
3529
3547
  force: {
3530
3548
  type: string;
3531
3549
  };
3550
+ is_external_modification_allowed: {
3551
+ type: string;
3552
+ };
3532
3553
  is_managed: {
3533
3554
  type: string;
3534
3555
  };
@@ -3617,6 +3638,9 @@ declare const _default: {
3617
3638
  ends_at: {
3618
3639
  type: string;
3619
3640
  };
3641
+ is_external_modification_allowed: {
3642
+ type: string;
3643
+ };
3620
3644
  is_managed: {
3621
3645
  type: string;
3622
3646
  };
@@ -3725,6 +3749,9 @@ declare const _default: {
3725
3749
  ends_at: {
3726
3750
  type: string;
3727
3751
  };
3752
+ is_external_modification_allowed: {
3753
+ type: string;
3754
+ };
3728
3755
  is_managed: {
3729
3756
  type: string;
3730
3757
  };
@@ -3835,6 +3862,9 @@ declare const _default: {
3835
3862
  ends_at: {
3836
3863
  type: string;
3837
3864
  };
3865
+ is_external_modification_allowed: {
3866
+ type: string;
3867
+ };
3838
3868
  is_managed: {
3839
3869
  type: string;
3840
3870
  };
@@ -11513,6 +11543,7 @@ interface Routes {
11513
11543
  prefer_native_scheduling?: boolean | undefined;
11514
11544
  use_backup_access_code_pool?: boolean | undefined;
11515
11545
  allow_external_modification?: boolean | undefined;
11546
+ is_external_modification_allowed?: boolean | undefined;
11516
11547
  };
11517
11548
  commonParams: {};
11518
11549
  formData: {};
@@ -11577,6 +11608,7 @@ interface Routes {
11577
11608
  prefer_native_scheduling?: boolean | undefined;
11578
11609
  use_backup_access_code_pool?: boolean | undefined;
11579
11610
  allow_external_modification?: boolean | undefined;
11611
+ is_external_modification_allowed?: boolean | undefined;
11580
11612
  };
11581
11613
  commonParams: {};
11582
11614
  formData: {};
@@ -11799,6 +11831,7 @@ interface Routes {
11799
11831
  jsonBody: {};
11800
11832
  commonParams: {
11801
11833
  access_code_id: string;
11834
+ is_external_modification_allowed?: boolean | undefined;
11802
11835
  allow_external_modification?: boolean | undefined;
11803
11836
  force?: boolean | undefined;
11804
11837
  sync?: boolean;
@@ -11905,6 +11938,7 @@ interface Routes {
11905
11938
  access_code_id: string;
11906
11939
  is_managed: boolean;
11907
11940
  allow_external_modification?: boolean | undefined;
11941
+ is_external_modification_allowed?: boolean | undefined;
11908
11942
  force?: boolean | undefined;
11909
11943
  };
11910
11944
  formData: {};
@@ -11924,6 +11958,7 @@ interface Routes {
11924
11958
  prefer_native_scheduling?: boolean | undefined;
11925
11959
  use_backup_access_code_pool?: boolean | undefined;
11926
11960
  allow_external_modification?: boolean | undefined;
11961
+ is_external_modification_allowed?: boolean | undefined;
11927
11962
  access_code_id: string;
11928
11963
  device_id?: string | undefined;
11929
11964
  type?: ('ongoing' | 'time_bound') | undefined;
package/dist/devicedb.cjs CHANGED
@@ -12,11 +12,15 @@ var __export = (target, all) => {
12
12
  var public_models_exports = {};
13
13
  __export(public_models_exports, {
14
14
  base_device_model_v1: () => base_device_model_v1,
15
+ device_category: () => device_category,
16
+ device_connection_type: () => device_connection_type,
15
17
  device_model_category_specific_properties: () => device_model_category_specific_properties,
16
18
  device_model_v0: () => device_model_v0,
17
19
  device_model_v1: () => device_model_v1,
18
20
  image_reference: () => image_reference,
19
- manufacturer: () => manufacturer
21
+ manufacturer: () => manufacturer,
22
+ manufacturer_integration_support_level: () => manufacturer_integration_support_level,
23
+ thermostat: () => thermostat
20
24
  });
21
25
  var device_model_v0 = zod.z.object({
22
26
  main_category: zod.z.string(),
@@ -33,18 +37,39 @@ var image_reference = zod.z.object({
33
37
  width: zod.z.number(),
34
38
  height: zod.z.number()
35
39
  });
40
+ var manufacturer_integration_support_level = zod.z.enum([
41
+ "stable",
42
+ "beta",
43
+ "planned",
44
+ "unsupported",
45
+ "inquire"
46
+ ]);
36
47
  var manufacturer = zod.z.object({
37
48
  manufacturer_id: zod.z.string().uuid(),
38
49
  display_name: zod.z.string(),
39
50
  logo: image_reference.optional(),
40
- integration: zod.z.enum(["stable", "beta", "planned", "unsupported", "inquire"]),
51
+ integration: manufacturer_integration_support_level,
41
52
  is_connect_webview_supported: zod.z.boolean(),
42
53
  requires_seam_support_to_add_account: zod.z.boolean()
43
54
  });
44
55
 
45
56
  // src/lib/seam/devicedb/public-models/device-model-v1.ts
57
+ var device_category = zod.z.enum([
58
+ "smartlock",
59
+ "sensor",
60
+ "thermostat",
61
+ "relay",
62
+ "intercom",
63
+ "accessory"
64
+ ]);
65
+ var device_connection_type = zod.z.enum([
66
+ "wifi",
67
+ "zwave",
68
+ "zigbee",
69
+ "unknown"
70
+ ]);
46
71
  var smartlock = zod.z.object({
47
- main_category: zod.z.literal("smartlock"),
72
+ main_category: zod.z.literal(device_category.enum.smartlock),
48
73
  physical_properties: zod.z.object({
49
74
  lock_type: zod.z.enum([
50
75
  "deadbolt",
@@ -67,7 +92,7 @@ var smartlock = zod.z.object({
67
92
  })
68
93
  });
69
94
  var sensor = zod.z.object({
70
- main_category: zod.z.literal("sensor"),
95
+ main_category: zod.z.literal(device_category.enum.sensor),
71
96
  physical_properties: zod.z.object({
72
97
  has_noise_sensor: zod.z.boolean(),
73
98
  has_humidity_sensor: zod.z.boolean(),
@@ -76,7 +101,7 @@ var sensor = zod.z.object({
76
101
  })
77
102
  });
78
103
  var thermostat = zod.z.object({
79
- main_category: zod.z.literal("thermostat"),
104
+ main_category: zod.z.literal(device_category.enum.thermostat),
80
105
  physical_properties: zod.z.object({
81
106
  available_modes: zod.z.enum(["heat", "cool", "fan", "eco"]).array(),
82
107
  is_heat_pump_compatible: zod.z.boolean(),
@@ -91,10 +116,10 @@ var thermostat = zod.z.object({
91
116
  })
92
117
  });
93
118
  var relay = zod.z.object({
94
- main_category: zod.z.literal("relay")
119
+ main_category: zod.z.literal(device_category.enum.relay)
95
120
  });
96
121
  var intercom = zod.z.object({
97
- main_category: zod.z.literal("intercom"),
122
+ main_category: zod.z.literal(device_category.enum.intercom),
98
123
  physical_properties: zod.z.object({
99
124
  has_camera: zod.z.boolean()
100
125
  }),
@@ -104,7 +129,7 @@ var intercom = zod.z.object({
104
129
  })
105
130
  });
106
131
  var accessory = zod.z.object({
107
- main_category: zod.z.literal("accessory")
132
+ main_category: zod.z.literal(device_category.enum.accessory)
108
133
  });
109
134
  var device_model_category_specific_properties = zod.z.discriminatedUnion(
110
135
  "main_category",
@@ -117,7 +142,7 @@ var base_device_model_v1 = zod.z.object({
117
142
  display_name: zod.z.string(),
118
143
  description: zod.z.string(),
119
144
  product_url: zod.z.string().optional(),
120
- main_connection_type: zod.z.enum(["wifi", "zwave", "zigbee", "unknown"]),
145
+ main_connection_type: device_connection_type,
121
146
  aesthetic_variants: zod.z.object({
122
147
  slug: zod.z.string(),
123
148
  display_name: zod.z.string(),
@@ -138,7 +163,54 @@ var base_device_model_v1 = zod.z.object({
138
163
  var device_model_v1 = base_device_model_v1.and(
139
164
  device_model_category_specific_properties
140
165
  );
166
+ var routes = {
167
+ "/api/v1/device_models/get": {
168
+ auth: "publishable_key",
169
+ methods: ["GET", "OPTIONS"],
170
+ queryParams: zod.z.object({
171
+ device_model_id: zod.z.string().uuid()
172
+ }),
173
+ jsonResponse: zod.z.object({
174
+ device_model: device_model_v1
175
+ })
176
+ },
177
+ "/api/v1/device_models/list": {
178
+ auth: "publishable_key",
179
+ methods: ["GET", "OPTIONS"],
180
+ queryParams: zod.z.object({
181
+ main_category: device_category,
182
+ manufacturer_id: zod.z.string().uuid().optional(),
183
+ manufacturer_ids: zod.z.string().uuid().array().optional(),
184
+ integration_status: manufacturer.shape.integration.optional(),
185
+ text_search: zod.z.string().optional()
186
+ }),
187
+ jsonResponse: zod.z.object({
188
+ device_models: device_model_v1.array()
189
+ })
190
+ },
191
+ "/api/v1/manufacturers/get": {
192
+ auth: "publishable_key",
193
+ methods: ["GET", "OPTIONS"],
194
+ queryParams: zod.z.object({
195
+ manufacturer_id: zod.z.string().uuid()
196
+ }),
197
+ jsonResponse: zod.z.object({
198
+ manufacturer
199
+ })
200
+ },
201
+ "/api/v1/manufacturers/list": {
202
+ auth: "publishable_key",
203
+ methods: ["GET", "OPTIONS"],
204
+ queryParams: zod.z.object({
205
+ integration_status: manufacturer.shape.integration.optional()
206
+ }),
207
+ jsonResponse: zod.z.object({
208
+ manufacturers: manufacturer.array()
209
+ })
210
+ }
211
+ };
141
212
 
213
+ exports.routes = routes;
142
214
  exports.schemas = public_models_exports;
143
215
  //# sourceMappingURL=out.js.map
144
216
  //# sourceMappingURL=devicedb.cjs.map
@@ -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 '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\nconst intercom = z.object({\n main_category: z.literal('intercom'),\n physical_properties: z.object({\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 }),\n})\n\nconst accessory = z.object({\n main_category: z.literal('accessory'),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay, intercom, accessory],\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 images: image_reference.array(),\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","../src/lib/seam/devicedb/route-specs.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\nexport const device_category = z.enum([\n 'smartlock',\n 'sensor',\n 'thermostat',\n 'relay',\n 'intercom',\n 'accessory',\n])\n\nexport type DeviceCategory = z.infer<typeof device_category>\n\nexport const device_connection_type = z.enum([\n 'wifi',\n 'zwave',\n 'zigbee',\n 'unknown',\n])\n\nexport type DeviceConnectionType = z.infer<typeof device_connection_type>\n\nconst smartlock = z.object({\n main_category: z.literal(device_category.enum.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(device_category.enum.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\nexport const thermostat = z.object({\n main_category: z.literal(device_category.enum.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(device_category.enum.relay),\n})\n\nconst intercom = z.object({\n main_category: z.literal(device_category.enum.intercom),\n physical_properties: z.object({\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 }),\n})\n\nconst accessory = z.object({\n main_category: z.literal(device_category.enum.accessory),\n})\n\nexport const device_model_category_specific_properties = z.discriminatedUnion(\n 'main_category',\n [smartlock, sensor, thermostat, relay, intercom, accessory],\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: device_connection_type,\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 images: image_reference.array(),\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_integration_support_level = z.enum([\n 'stable',\n 'beta',\n 'planned',\n 'unsupported',\n 'inquire',\n])\n\nexport type ManufacturerIntegrationSupportLevel = z.infer<\n typeof manufacturer_integration_support_level\n>\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n integration: manufacturer_integration_support_level,\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","import { z } from 'zod'\n\nimport * as schemas from './public-models/index.js'\n\nexport const routes = {\n '/api/v1/device_models/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n device_model_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n device_model: schemas.device_model_v1,\n }),\n },\n '/api/v1/device_models/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n main_category: schemas.device_category,\n manufacturer_id: z.string().uuid().optional(),\n manufacturer_ids: z.string().uuid().array().optional(),\n integration_status: schemas.manufacturer.shape.integration.optional(),\n text_search: z.string().optional(),\n }),\n jsonResponse: z.object({\n device_models: schemas.device_model_v1.array(),\n }),\n },\n '/api/v1/manufacturers/get': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n manufacturer_id: z.string().uuid(),\n }),\n jsonResponse: z.object({\n manufacturer: schemas.manufacturer,\n }),\n },\n '/api/v1/manufacturers/list': {\n auth: 'publishable_key',\n methods: ['GET', 'OPTIONS'],\n queryParams: z.object({\n integration_status: schemas.manufacturer.shape.integration.optional(),\n }),\n jsonResponse: z.object({\n manufacturers: schemas.manufacturer.array(),\n }),\n },\n} as const\n"]}