@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.
- package/dist/connect.cjs +10 -0
- package/dist/connect.cjs.map +1 -1
- package/dist/connect.d.cts +35 -0
- package/dist/devicedb.cjs +81 -9
- package/dist/devicedb.cjs.map +1 -1
- package/dist/devicedb.d.cts +1842 -2
- package/lib/seam/connect/openapi.d.ts +30 -0
- package/lib/seam/connect/openapi.js +10 -0
- package/lib/seam/connect/openapi.js.map +1 -1
- package/lib/seam/connect/route-types.d.ts +5 -0
- package/lib/seam/devicedb/index.d.ts +3 -2
- package/lib/seam/devicedb/index.js +2 -0
- package/lib/seam/devicedb/index.js.map +1 -1
- package/lib/seam/devicedb/public-models/device-model-v1.d.ts +5 -2
- package/lib/seam/devicedb/public-models/device-model-v1.js +22 -8
- package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -1
- package/lib/seam/devicedb/public-models/manufacturer.d.ts +2 -0
- package/lib/seam/devicedb/public-models/manufacturer.js +8 -1
- package/lib/seam/devicedb/public-models/manufacturer.js.map +1 -1
- package/lib/seam/devicedb/route-specs.d.ts +1817 -0
- package/lib/seam/devicedb/route-specs.js +49 -0
- package/lib/seam/devicedb/route-specs.js.map +1 -0
- package/lib/seam/devicedb/route-types.d.ts +1 -1
- package/package.json +3 -1
- package/src/lib/seam/connect/openapi.ts +10 -0
- package/src/lib/seam/connect/route-types.ts +5 -0
- package/src/lib/seam/devicedb/index.ts +5 -1
- package/src/lib/seam/devicedb/public-models/device-model-v1.ts +28 -8
- package/src/lib/seam/devicedb/public-models/manufacturer.ts +13 -1
- package/src/lib/seam/devicedb/route-specs.ts +50 -0
- package/src/lib/seam/devicedb/route-types.ts +7 -1
package/dist/connect.d.cts
CHANGED
|
@@ -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:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
package/dist/devicedb.cjs.map
CHANGED
|
@@ -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"]}
|