@seamapi/types 1.103.0 → 1.105.0
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 +80 -0
- package/dist/connect.cjs.map +1 -1
- package/dist/connect.d.cts +154 -0
- package/dist/devicedb.cjs +20 -1
- package/dist/devicedb.cjs.map +1 -1
- package/dist/devicedb.d.cts +149 -1
- package/lib/seam/connect/openapi.d.ts +140 -0
- package/lib/seam/connect/openapi.js +80 -0
- package/lib/seam/connect/openapi.js.map +1 -1
- package/lib/seam/connect/route-types.d.ts +14 -0
- package/lib/seam/connect/unstable/models/acs/credential.d.ts +16 -0
- package/lib/seam/connect/unstable/models/acs/credential.js +2 -0
- package/lib/seam/connect/unstable/models/acs/credential.js.map +1 -1
- package/lib/seam/devicedb/public-models/device-capability.d.ts +21 -0
- package/lib/seam/devicedb/public-models/device-capability.js +15 -0
- package/lib/seam/devicedb/public-models/device-capability.js.map +1 -0
- package/lib/seam/devicedb/public-models/device-model-v1.d.ts +38 -0
- package/lib/seam/devicedb/public-models/device-model-v1.js +10 -2
- package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -1
- package/lib/seam/devicedb/public-models/hardware.d.ts +8 -0
- package/lib/seam/devicedb/public-models/hardware.js +7 -0
- package/lib/seam/devicedb/public-models/hardware.js.map +1 -0
- package/lib/seam/devicedb/public-models/index.d.ts +1 -0
- package/lib/seam/devicedb/public-models/index.js +1 -0
- package/lib/seam/devicedb/public-models/index.js.map +1 -1
- package/lib/seam/devicedb/route-specs.d.ts +88 -0
- package/lib/seam/devicedb/route-types.d.ts +10 -0
- package/package.json +1 -1
- package/src/lib/seam/connect/openapi.ts +80 -0
- package/src/lib/seam/connect/route-types.ts +14 -0
- package/src/lib/seam/connect/unstable/models/acs/credential.ts +2 -0
- package/src/lib/seam/devicedb/public-models/device-capability.ts +20 -0
- package/src/lib/seam/devicedb/public-models/device-model-v1.ts +33 -23
- package/src/lib/seam/devicedb/public-models/hardware.ts +7 -0
- package/src/lib/seam/devicedb/public-models/index.ts +1 -0
- package/src/lib/seam/devicedb/route-types.ts +10 -0
package/dist/connect.d.cts
CHANGED
|
@@ -5331,6 +5331,20 @@ declare const _default: {
|
|
|
5331
5331
|
};
|
|
5332
5332
|
visionline_metadata: {
|
|
5333
5333
|
properties: {
|
|
5334
|
+
common_acs_entrance_ids: {
|
|
5335
|
+
items: {
|
|
5336
|
+
format: string;
|
|
5337
|
+
type: string;
|
|
5338
|
+
};
|
|
5339
|
+
type: string;
|
|
5340
|
+
};
|
|
5341
|
+
guest_acs_entrance_ids: {
|
|
5342
|
+
items: {
|
|
5343
|
+
format: string;
|
|
5344
|
+
type: string;
|
|
5345
|
+
};
|
|
5346
|
+
type: string;
|
|
5347
|
+
};
|
|
5334
5348
|
joiner_acs_credential_ids: {
|
|
5335
5349
|
items: {
|
|
5336
5350
|
format: string;
|
|
@@ -5468,6 +5482,20 @@ declare const _default: {
|
|
|
5468
5482
|
};
|
|
5469
5483
|
visionline_metadata: {
|
|
5470
5484
|
properties: {
|
|
5485
|
+
common_acs_entrance_ids: {
|
|
5486
|
+
items: {
|
|
5487
|
+
format: string;
|
|
5488
|
+
type: string;
|
|
5489
|
+
};
|
|
5490
|
+
type: string;
|
|
5491
|
+
};
|
|
5492
|
+
guest_acs_entrance_ids: {
|
|
5493
|
+
items: {
|
|
5494
|
+
format: string;
|
|
5495
|
+
type: string;
|
|
5496
|
+
};
|
|
5497
|
+
type: string;
|
|
5498
|
+
};
|
|
5471
5499
|
joiner_acs_credential_ids: {
|
|
5472
5500
|
items: {
|
|
5473
5501
|
format: string;
|
|
@@ -5650,6 +5678,20 @@ declare const _default: {
|
|
|
5650
5678
|
};
|
|
5651
5679
|
visionline_metadata: {
|
|
5652
5680
|
properties: {
|
|
5681
|
+
common_acs_entrance_ids: {
|
|
5682
|
+
items: {
|
|
5683
|
+
format: string;
|
|
5684
|
+
type: string;
|
|
5685
|
+
};
|
|
5686
|
+
type: string;
|
|
5687
|
+
};
|
|
5688
|
+
guest_acs_entrance_ids: {
|
|
5689
|
+
items: {
|
|
5690
|
+
format: string;
|
|
5691
|
+
type: string;
|
|
5692
|
+
};
|
|
5693
|
+
type: string;
|
|
5694
|
+
};
|
|
5653
5695
|
joiner_acs_credential_ids: {
|
|
5654
5696
|
items: {
|
|
5655
5697
|
format: string;
|
|
@@ -5848,6 +5890,20 @@ declare const _default: {
|
|
|
5848
5890
|
};
|
|
5849
5891
|
visionline_metadata: {
|
|
5850
5892
|
properties: {
|
|
5893
|
+
common_acs_entrance_ids: {
|
|
5894
|
+
items: {
|
|
5895
|
+
format: string;
|
|
5896
|
+
type: string;
|
|
5897
|
+
};
|
|
5898
|
+
type: string;
|
|
5899
|
+
};
|
|
5900
|
+
guest_acs_entrance_ids: {
|
|
5901
|
+
items: {
|
|
5902
|
+
format: string;
|
|
5903
|
+
type: string;
|
|
5904
|
+
};
|
|
5905
|
+
type: string;
|
|
5906
|
+
};
|
|
5851
5907
|
joiner_acs_credential_ids: {
|
|
5852
5908
|
items: {
|
|
5853
5909
|
format: string;
|
|
@@ -6025,6 +6081,20 @@ declare const _default: {
|
|
|
6025
6081
|
};
|
|
6026
6082
|
visionline_metadata: {
|
|
6027
6083
|
properties: {
|
|
6084
|
+
common_acs_entrance_ids: {
|
|
6085
|
+
items: {
|
|
6086
|
+
format: string;
|
|
6087
|
+
type: string;
|
|
6088
|
+
};
|
|
6089
|
+
type: string;
|
|
6090
|
+
};
|
|
6091
|
+
guest_acs_entrance_ids: {
|
|
6092
|
+
items: {
|
|
6093
|
+
format: string;
|
|
6094
|
+
type: string;
|
|
6095
|
+
};
|
|
6096
|
+
type: string;
|
|
6097
|
+
};
|
|
6028
6098
|
joiner_acs_credential_ids: {
|
|
6029
6099
|
items: {
|
|
6030
6100
|
format: string;
|
|
@@ -6175,6 +6245,20 @@ declare const _default: {
|
|
|
6175
6245
|
};
|
|
6176
6246
|
visionline_metadata: {
|
|
6177
6247
|
properties: {
|
|
6248
|
+
common_acs_entrance_ids: {
|
|
6249
|
+
items: {
|
|
6250
|
+
format: string;
|
|
6251
|
+
type: string;
|
|
6252
|
+
};
|
|
6253
|
+
type: string;
|
|
6254
|
+
};
|
|
6255
|
+
guest_acs_entrance_ids: {
|
|
6256
|
+
items: {
|
|
6257
|
+
format: string;
|
|
6258
|
+
type: string;
|
|
6259
|
+
};
|
|
6260
|
+
type: string;
|
|
6261
|
+
};
|
|
6178
6262
|
joiner_acs_credential_ids: {
|
|
6179
6263
|
items: {
|
|
6180
6264
|
format: string;
|
|
@@ -6312,6 +6396,20 @@ declare const _default: {
|
|
|
6312
6396
|
};
|
|
6313
6397
|
visionline_metadata: {
|
|
6314
6398
|
properties: {
|
|
6399
|
+
common_acs_entrance_ids: {
|
|
6400
|
+
items: {
|
|
6401
|
+
format: string;
|
|
6402
|
+
type: string;
|
|
6403
|
+
};
|
|
6404
|
+
type: string;
|
|
6405
|
+
};
|
|
6406
|
+
guest_acs_entrance_ids: {
|
|
6407
|
+
items: {
|
|
6408
|
+
format: string;
|
|
6409
|
+
type: string;
|
|
6410
|
+
};
|
|
6411
|
+
type: string;
|
|
6412
|
+
};
|
|
6315
6413
|
joiner_acs_credential_ids: {
|
|
6316
6414
|
items: {
|
|
6317
6415
|
format: string;
|
|
@@ -6451,6 +6549,20 @@ declare const _default: {
|
|
|
6451
6549
|
};
|
|
6452
6550
|
visionline_metadata: {
|
|
6453
6551
|
properties: {
|
|
6552
|
+
common_acs_entrance_ids: {
|
|
6553
|
+
items: {
|
|
6554
|
+
format: string;
|
|
6555
|
+
type: string;
|
|
6556
|
+
};
|
|
6557
|
+
type: string;
|
|
6558
|
+
};
|
|
6559
|
+
guest_acs_entrance_ids: {
|
|
6560
|
+
items: {
|
|
6561
|
+
format: string;
|
|
6562
|
+
type: string;
|
|
6563
|
+
};
|
|
6564
|
+
type: string;
|
|
6565
|
+
};
|
|
6454
6566
|
joiner_acs_credential_ids: {
|
|
6455
6567
|
items: {
|
|
6456
6568
|
format: string;
|
|
@@ -6587,6 +6699,20 @@ declare const _default: {
|
|
|
6587
6699
|
};
|
|
6588
6700
|
visionline_metadata: {
|
|
6589
6701
|
properties: {
|
|
6702
|
+
common_acs_entrance_ids: {
|
|
6703
|
+
items: {
|
|
6704
|
+
format: string;
|
|
6705
|
+
type: string;
|
|
6706
|
+
};
|
|
6707
|
+
type: string;
|
|
6708
|
+
};
|
|
6709
|
+
guest_acs_entrance_ids: {
|
|
6710
|
+
items: {
|
|
6711
|
+
format: string;
|
|
6712
|
+
type: string;
|
|
6713
|
+
};
|
|
6714
|
+
type: string;
|
|
6715
|
+
};
|
|
6590
6716
|
joiner_acs_credential_ids: {
|
|
6591
6717
|
items: {
|
|
6592
6718
|
format: string;
|
|
@@ -7045,6 +7171,20 @@ declare const _default: {
|
|
|
7045
7171
|
};
|
|
7046
7172
|
visionline_metadata: {
|
|
7047
7173
|
properties: {
|
|
7174
|
+
common_acs_entrance_ids: {
|
|
7175
|
+
items: {
|
|
7176
|
+
format: string;
|
|
7177
|
+
type: string;
|
|
7178
|
+
};
|
|
7179
|
+
type: string;
|
|
7180
|
+
};
|
|
7181
|
+
guest_acs_entrance_ids: {
|
|
7182
|
+
items: {
|
|
7183
|
+
format: string;
|
|
7184
|
+
type: string;
|
|
7185
|
+
};
|
|
7186
|
+
type: string;
|
|
7187
|
+
};
|
|
7048
7188
|
joiner_acs_credential_ids: {
|
|
7049
7189
|
items: {
|
|
7050
7190
|
format: string;
|
|
@@ -17120,6 +17260,8 @@ interface Routes {
|
|
|
17120
17260
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17121
17261
|
visionline_metadata?: {
|
|
17122
17262
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17263
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17264
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17123
17265
|
} | undefined;
|
|
17124
17266
|
};
|
|
17125
17267
|
};
|
|
@@ -17164,6 +17306,8 @@ interface Routes {
|
|
|
17164
17306
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17165
17307
|
visionline_metadata?: {
|
|
17166
17308
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17309
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17310
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17167
17311
|
} | undefined;
|
|
17168
17312
|
};
|
|
17169
17313
|
};
|
|
@@ -17207,6 +17351,8 @@ interface Routes {
|
|
|
17207
17351
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17208
17352
|
visionline_metadata?: {
|
|
17209
17353
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17354
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17355
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17210
17356
|
} | undefined;
|
|
17211
17357
|
};
|
|
17212
17358
|
};
|
|
@@ -17246,6 +17392,8 @@ interface Routes {
|
|
|
17246
17392
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17247
17393
|
visionline_metadata?: {
|
|
17248
17394
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17395
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17396
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17249
17397
|
} | undefined;
|
|
17250
17398
|
}>;
|
|
17251
17399
|
};
|
|
@@ -17279,6 +17427,8 @@ interface Routes {
|
|
|
17279
17427
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17280
17428
|
visionline_metadata?: {
|
|
17281
17429
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17430
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17431
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17282
17432
|
} | undefined;
|
|
17283
17433
|
};
|
|
17284
17434
|
};
|
|
@@ -17312,6 +17462,8 @@ interface Routes {
|
|
|
17312
17462
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17313
17463
|
visionline_metadata?: {
|
|
17314
17464
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17465
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17466
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17315
17467
|
} | undefined;
|
|
17316
17468
|
};
|
|
17317
17469
|
};
|
|
@@ -17408,6 +17560,8 @@ interface Routes {
|
|
|
17408
17560
|
is_multi_phone_sync_credential?: boolean | undefined;
|
|
17409
17561
|
visionline_metadata?: {
|
|
17410
17562
|
joiner_acs_credential_ids?: string[] | undefined;
|
|
17563
|
+
guest_acs_entrance_ids?: string[] | undefined;
|
|
17564
|
+
common_acs_entrance_ids?: string[] | undefined;
|
|
17411
17565
|
} | undefined;
|
|
17412
17566
|
}>;
|
|
17413
17567
|
};
|
package/dist/devicedb.cjs
CHANGED
|
@@ -12,6 +12,7 @@ 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_capability_flags: () => device_capability_flags,
|
|
15
16
|
device_category: () => device_category,
|
|
16
17
|
device_connection_type: () => device_connection_type,
|
|
17
18
|
device_model_category_specific_properties: () => device_model_category_specific_properties,
|
|
@@ -24,6 +25,15 @@ __export(public_models_exports, {
|
|
|
24
25
|
manufacturer_integration_support_level: () => manufacturer_integration_support_level,
|
|
25
26
|
thermostat: () => thermostat
|
|
26
27
|
});
|
|
28
|
+
var device_capability_flags = zod.z.object({
|
|
29
|
+
can_remotely_unlock: zod.z.boolean(),
|
|
30
|
+
can_program_online_access_codes: zod.z.boolean()
|
|
31
|
+
}).partial();
|
|
32
|
+
var device_model_capability_flags_map = {
|
|
33
|
+
can_remotely_unlock: zod.z.literal(true),
|
|
34
|
+
can_program_online_access_codes: zod.z.literal(true)
|
|
35
|
+
};
|
|
36
|
+
var device_model_capability_flags = zod.z.object(device_model_capability_flags_map).partial();
|
|
27
37
|
var device_model_v0 = zod.z.object({
|
|
28
38
|
main_category: zod.z.string(),
|
|
29
39
|
model_name: zod.z.string(),
|
|
@@ -34,6 +44,9 @@ var device_model_v0 = zod.z.object({
|
|
|
34
44
|
icon_url: zod.z.string(),
|
|
35
45
|
seam_device_model_page_url: zod.z.string()
|
|
36
46
|
});
|
|
47
|
+
var hardware = zod.z.object({
|
|
48
|
+
has_physical_key: zod.z.boolean()
|
|
49
|
+
}).partial();
|
|
37
50
|
var image_reference = zod.z.object({
|
|
38
51
|
url: zod.z.string().url(),
|
|
39
52
|
width: zod.z.number(),
|
|
@@ -101,7 +114,12 @@ var smartlock = zod.z.object({
|
|
|
101
114
|
can_program_access_schedules: zod.z.boolean(),
|
|
102
115
|
can_program_access_codes_offline: zod.z.boolean()
|
|
103
116
|
})
|
|
104
|
-
})
|
|
117
|
+
}).merge(
|
|
118
|
+
device_model_capability_flags.pick({
|
|
119
|
+
can_remotely_unlock: true,
|
|
120
|
+
can_program_online_access_codes: true
|
|
121
|
+
})
|
|
122
|
+
);
|
|
105
123
|
var sensor = zod.z.object({
|
|
106
124
|
main_category: zod.z.literal(device_category.enum.sensor),
|
|
107
125
|
physical_properties: zod.z.object({
|
|
@@ -161,6 +179,7 @@ var base_device_model_v1 = zod.z.object({
|
|
|
161
179
|
description: zod.z.string(),
|
|
162
180
|
product_url: zod.z.string().optional(),
|
|
163
181
|
main_connection_type: device_connection_type,
|
|
182
|
+
hardware,
|
|
164
183
|
aesthetic_variants: zod.z.object({
|
|
165
184
|
slug: zod.z.string(),
|
|
166
185
|
display_name: zod.z.string(),
|
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","../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 has_rfid_reader: z.boolean().default(false),\n has_nfc_reader: z.boolean().default(false),\n has_wiegand_interface: z.boolean().default(false),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_unlock_with_face_recognition: z.boolean().default(false),\n supports_onvif: z.boolean().default(false),\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: manufacturer.omit({\n device_model_count: true,\n }),\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_annotation_code = z.enum(['subscription_required'])\n\nexport type ManufacturerAnnotationCode = z.infer<\n typeof manufacturer_annotation_code\n>\n\nexport const manufacturer_annotation = z.object({\n annotation_code: manufacturer_annotation_code,\n message: z.string().trim().nonempty(),\n})\n\nexport type ManufacturerAnnotation = z.infer<typeof manufacturer_annotation>\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n /** @deprecated */\n integration: manufacturer_integration_support_level,\n integration_support_level: manufacturer_integration_support_level,\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n device_model_count: z.number(),\n annotations: z.array(manufacturer_annotation),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './public-models/index.js'\n\nconst dot_path = z.string().regex(/^([a-z])[a-z_.]*[a-z]+$/)\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.optional(),\n manufacturer_id: z.string().uuid().optional(),\n manufacturer_ids: z.string().uuid().array().optional(),\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n text_search: z.string().optional(),\n include_if: z.array(dot_path).optional(),\n exclude_if: z.array(dot_path).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 /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n liqe_query: z.string().optional(),\n }),\n jsonResponse: z.object({\n manufacturers: schemas.manufacturer.array(),\n }),\n },\n} as const\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-capability.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/hardware.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 { device_capability_flags } from './device-capability.js'\nexport * from './device-model-v0.js'\nexport * from './device-model-v1.js'\nexport * from './image-reference.js'\nexport * from './manufacturer.js'\n","import { z, type ZodLiteral } from 'zod'\n\nexport const device_capability_flags = z\n .object({\n can_remotely_unlock: z.boolean(),\n can_program_online_access_codes: z.boolean(),\n })\n .partial()\n\nconst device_model_capability_flags_map: Record<\n keyof z.infer<typeof device_capability_flags>,\n ZodLiteral<true>\n> = {\n can_remotely_unlock: z.literal(true),\n can_program_online_access_codes: z.literal(true),\n}\n\nexport const device_model_capability_flags = z\n .object(device_model_capability_flags_map)\n .partial()\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 { device_model_capability_flags } from './device-capability.js'\nimport { hardware } from './hardware.js'\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\n .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 .merge(\n device_model_capability_flags.pick({\n can_remotely_unlock: true,\n can_program_online_access_codes: true,\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 has_rfid_reader: z.boolean().default(false),\n has_nfc_reader: z.boolean().default(false),\n has_wiegand_interface: z.boolean().default(false),\n }),\n software_features: z.object({\n can_remotely_unlock: z.boolean(),\n can_program_access_codes: z.boolean(),\n can_unlock_with_face_recognition: z.boolean().default(false),\n supports_onvif: z.boolean().default(false),\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: manufacturer.omit({\n device_model_count: true,\n }),\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 hardware,\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 hardware = z\n .object({\n has_physical_key: z.boolean(),\n })\n .partial()\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_annotation_code = z.enum(['subscription_required'])\n\nexport type ManufacturerAnnotationCode = z.infer<\n typeof manufacturer_annotation_code\n>\n\nexport const manufacturer_annotation = z.object({\n annotation_code: manufacturer_annotation_code,\n message: z.string().trim().nonempty(),\n})\n\nexport type ManufacturerAnnotation = z.infer<typeof manufacturer_annotation>\n\nexport const manufacturer = z.object({\n manufacturer_id: z.string().uuid(),\n display_name: z.string(),\n logo: image_reference.optional(),\n /** @deprecated */\n integration: manufacturer_integration_support_level,\n integration_support_level: manufacturer_integration_support_level,\n is_connect_webview_supported: z.boolean(),\n requires_seam_support_to_add_account: z.boolean(),\n device_model_count: z.number(),\n annotations: z.array(manufacturer_annotation),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './public-models/index.js'\n\nconst dot_path = z.string().regex(/^([a-z])[a-z_.]*[a-z]+$/)\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.optional(),\n manufacturer_id: z.string().uuid().optional(),\n manufacturer_ids: z.string().uuid().array().optional(),\n /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n text_search: z.string().optional(),\n include_if: z.array(dot_path).optional(),\n exclude_if: z.array(dot_path).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 /** @deprecated */\n integration_status: schemas.manufacturer.shape.integration.optional(),\n integration_support_levels: z\n .array(schemas.manufacturer_integration_support_level)\n .optional(),\n liqe_query: z.string().optional(),\n }),\n jsonResponse: z.object({\n manufacturers: schemas.manufacturer.array(),\n }),\n },\n} as const\n"]}
|