@seamapi/types 1.218.0 → 1.219.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.
@@ -2902,11 +2902,11 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
2902
2902
  device_label: string;
2903
2903
  }>>;
2904
2904
  dormakaba_oracode_metadata: z.ZodOptional<z.ZodObject<{
2905
- door_id: z.ZodNumber;
2905
+ door_id: z.ZodOptional<z.ZodNumber>;
2906
2906
  door_name: z.ZodString;
2907
- device_id: z.ZodOptional<z.ZodNumber>;
2907
+ device_id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
2908
2908
  door_is_wireless: z.ZodBoolean;
2909
- site_id: z.ZodNumber;
2909
+ site_id: z.ZodNullable<z.ZodNumber>;
2910
2910
  site_name: z.ZodString;
2911
2911
  iana_timezone: z.ZodOptional<z.ZodString>;
2912
2912
  predefined_time_slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -2944,12 +2944,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
2944
2944
  dormakaba_oracode_user_level_id: string;
2945
2945
  }>, "many">>;
2946
2946
  }, "strip", z.ZodTypeAny, {
2947
- site_id: number;
2947
+ site_id: number | null;
2948
2948
  site_name: string;
2949
2949
  door_name: string;
2950
- door_id: number;
2951
2950
  door_is_wireless: boolean;
2952
- device_id?: number | undefined;
2951
+ device_id?: string | number | undefined;
2952
+ door_id?: number | undefined;
2953
2953
  iana_timezone?: string | undefined;
2954
2954
  predefined_time_slots?: {
2955
2955
  name: string;
@@ -2964,12 +2964,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
2964
2964
  dormakaba_oracode_user_level_id: string;
2965
2965
  }[] | undefined;
2966
2966
  }, {
2967
- site_id: number;
2967
+ site_id: number | null;
2968
2968
  site_name: string;
2969
2969
  door_name: string;
2970
- door_id: number;
2971
2970
  door_is_wireless: boolean;
2972
- device_id?: number | undefined;
2971
+ device_id?: string | number | undefined;
2972
+ door_id?: number | undefined;
2973
2973
  iana_timezone?: string | undefined;
2974
2974
  predefined_time_slots?: {
2975
2975
  name: string;
@@ -3188,12 +3188,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
3188
3188
  device_label: string;
3189
3189
  } | undefined;
3190
3190
  dormakaba_oracode_metadata?: {
3191
- site_id: number;
3191
+ site_id: number | null;
3192
3192
  site_name: string;
3193
3193
  door_name: string;
3194
- door_id: number;
3195
3194
  door_is_wireless: boolean;
3196
- device_id?: number | undefined;
3195
+ device_id?: string | number | undefined;
3196
+ door_id?: number | undefined;
3197
3197
  iana_timezone?: string | undefined;
3198
3198
  predefined_time_slots?: {
3199
3199
  name: string;
@@ -3378,12 +3378,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
3378
3378
  device_label: string;
3379
3379
  } | undefined;
3380
3380
  dormakaba_oracode_metadata?: {
3381
- site_id: number;
3381
+ site_id: number | null;
3382
3382
  site_name: string;
3383
3383
  door_name: string;
3384
- door_id: number;
3385
3384
  door_is_wireless: boolean;
3386
- device_id?: number | undefined;
3385
+ device_id?: string | number | undefined;
3386
+ door_id?: number | undefined;
3387
3387
  iana_timezone?: string | undefined;
3388
3388
  predefined_time_slots?: {
3389
3389
  name: string;
@@ -4516,12 +4516,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
4516
4516
  device_label: string;
4517
4517
  } | undefined;
4518
4518
  dormakaba_oracode_metadata?: {
4519
- site_id: number;
4519
+ site_id: number | null;
4520
4520
  site_name: string;
4521
4521
  door_name: string;
4522
- door_id: number;
4523
4522
  door_is_wireless: boolean;
4524
- device_id?: number | undefined;
4523
+ device_id?: string | number | undefined;
4524
+ door_id?: number | undefined;
4525
4525
  iana_timezone?: string | undefined;
4526
4526
  predefined_time_slots?: {
4527
4527
  name: string;
@@ -4986,12 +4986,12 @@ declare const device: z.ZodObject<z.objectUtil.extendShape<{
4986
4986
  device_label: string;
4987
4987
  } | undefined;
4988
4988
  dormakaba_oracode_metadata?: {
4989
- site_id: number;
4989
+ site_id: number | null;
4990
4990
  site_name: string;
4991
4991
  door_name: string;
4992
- door_id: number;
4993
4992
  door_is_wireless: boolean;
4994
- device_id?: number | undefined;
4993
+ device_id?: string | number | undefined;
4994
+ door_id?: number | undefined;
4995
4995
  iana_timezone?: string | undefined;
4996
4996
  predefined_time_slots?: {
4997
4997
  name: string;
@@ -6009,11 +6009,11 @@ declare const unmanaged_device: z.ZodObject<z.objectUtil.extendShape<z.objectUti
6009
6009
  device_label: string;
6010
6010
  }>>;
6011
6011
  dormakaba_oracode_metadata: z.ZodOptional<z.ZodObject<{
6012
- door_id: z.ZodNumber;
6012
+ door_id: z.ZodOptional<z.ZodNumber>;
6013
6013
  door_name: z.ZodString;
6014
- device_id: z.ZodOptional<z.ZodNumber>;
6014
+ device_id: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
6015
6015
  door_is_wireless: z.ZodBoolean;
6016
- site_id: z.ZodNumber;
6016
+ site_id: z.ZodNullable<z.ZodNumber>;
6017
6017
  site_name: z.ZodString;
6018
6018
  iana_timezone: z.ZodOptional<z.ZodString>;
6019
6019
  predefined_time_slots: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -6051,12 +6051,12 @@ declare const unmanaged_device: z.ZodObject<z.objectUtil.extendShape<z.objectUti
6051
6051
  dormakaba_oracode_user_level_id: string;
6052
6052
  }>, "many">>;
6053
6053
  }, "strip", z.ZodTypeAny, {
6054
- site_id: number;
6054
+ site_id: number | null;
6055
6055
  site_name: string;
6056
6056
  door_name: string;
6057
- door_id: number;
6058
6057
  door_is_wireless: boolean;
6059
- device_id?: number | undefined;
6058
+ device_id?: string | number | undefined;
6059
+ door_id?: number | undefined;
6060
6060
  iana_timezone?: string | undefined;
6061
6061
  predefined_time_slots?: {
6062
6062
  name: string;
@@ -6071,12 +6071,12 @@ declare const unmanaged_device: z.ZodObject<z.objectUtil.extendShape<z.objectUti
6071
6071
  dormakaba_oracode_user_level_id: string;
6072
6072
  }[] | undefined;
6073
6073
  }, {
6074
- site_id: number;
6074
+ site_id: number | null;
6075
6075
  site_name: string;
6076
6076
  door_name: string;
6077
- door_id: number;
6078
6077
  door_is_wireless: boolean;
6079
- device_id?: number | undefined;
6078
+ device_id?: string | number | undefined;
6079
+ door_id?: number | undefined;
6080
6080
  iana_timezone?: string | undefined;
6081
6081
  predefined_time_slots?: {
6082
6082
  name: string;
@@ -6295,12 +6295,12 @@ declare const unmanaged_device: z.ZodObject<z.objectUtil.extendShape<z.objectUti
6295
6295
  device_label: string;
6296
6296
  } | undefined;
6297
6297
  dormakaba_oracode_metadata?: {
6298
- site_id: number;
6298
+ site_id: number | null;
6299
6299
  site_name: string;
6300
6300
  door_name: string;
6301
- door_id: number;
6302
6301
  door_is_wireless: boolean;
6303
- device_id?: number | undefined;
6302
+ device_id?: string | number | undefined;
6303
+ door_id?: number | undefined;
6304
6304
  iana_timezone?: string | undefined;
6305
6305
  predefined_time_slots?: {
6306
6306
  name: string;
@@ -6485,12 +6485,12 @@ declare const unmanaged_device: z.ZodObject<z.objectUtil.extendShape<z.objectUti
6485
6485
  device_label: string;
6486
6486
  } | undefined;
6487
6487
  dormakaba_oracode_metadata?: {
6488
- site_id: number;
6488
+ site_id: number | null;
6489
6489
  site_name: string;
6490
6490
  door_name: string;
6491
- door_id: number;
6492
6491
  door_is_wireless: boolean;
6493
- device_id?: number | undefined;
6492
+ device_id?: string | number | undefined;
6493
+ door_id?: number | undefined;
6494
6494
  iana_timezone?: string | undefined;
6495
6495
  predefined_time_slots?: {
6496
6496
  name: string;
@@ -11056,8 +11056,13 @@ declare const _default: {
11056
11056
  dormakaba_oracode_metadata: {
11057
11057
  properties: {
11058
11058
  device_id: {
11059
- format: string;
11060
- type: string;
11059
+ oneOf: ({
11060
+ format: string;
11061
+ type: string;
11062
+ } | {
11063
+ type: string;
11064
+ format?: never;
11065
+ })[];
11061
11066
  };
11062
11067
  door_id: {
11063
11068
  format: string;
@@ -11115,7 +11120,9 @@ declare const _default: {
11115
11120
  type: string;
11116
11121
  };
11117
11122
  site_id: {
11123
+ description: string;
11118
11124
  format: string;
11125
+ nullable: boolean;
11119
11126
  type: string;
11120
11127
  };
11121
11128
  site_name: {
@@ -30895,11 +30902,12 @@ interface Routes {
30895
30902
  device_label: string;
30896
30903
  } | undefined;
30897
30904
  dormakaba_oracode_metadata?: {
30898
- door_id: number;
30905
+ door_id?: number | undefined;
30899
30906
  door_name: string;
30900
- device_id?: number | undefined;
30907
+ device_id?: (number | string) | undefined;
30901
30908
  door_is_wireless: boolean;
30902
- site_id: number;
30909
+ /** @DEPRECATED */
30910
+ site_id: number | null;
30903
30911
  site_name: string;
30904
30912
  iana_timezone?: string | undefined;
30905
30913
  predefined_time_slots?: Array<{
@@ -31435,11 +31443,12 @@ interface Routes {
31435
31443
  device_label: string;
31436
31444
  } | undefined;
31437
31445
  dormakaba_oracode_metadata?: {
31438
- door_id: number;
31446
+ door_id?: number | undefined;
31439
31447
  door_name: string;
31440
- device_id?: number | undefined;
31448
+ device_id?: (number | string) | undefined;
31441
31449
  door_is_wireless: boolean;
31442
- site_id: number;
31450
+ /** @DEPRECATED */
31451
+ site_id: number | null;
31443
31452
  site_name: string;
31444
31453
  iana_timezone?: string | undefined;
31445
31454
  predefined_time_slots?: Array<{
@@ -32342,11 +32351,12 @@ interface Routes {
32342
32351
  device_label: string;
32343
32352
  } | undefined;
32344
32353
  dormakaba_oracode_metadata?: {
32345
- door_id: number;
32354
+ door_id?: number | undefined;
32346
32355
  door_name: string;
32347
- device_id?: number | undefined;
32356
+ device_id?: (number | string) | undefined;
32348
32357
  door_is_wireless: boolean;
32349
- site_id: number;
32358
+ /** @DEPRECATED */
32359
+ site_id: number | null;
32350
32360
  site_name: string;
32351
32361
  iana_timezone?: string | undefined;
32352
32362
  predefined_time_slots?: Array<{
@@ -32857,11 +32867,12 @@ interface Routes {
32857
32867
  device_label: string;
32858
32868
  } | undefined;
32859
32869
  dormakaba_oracode_metadata?: {
32860
- door_id: number;
32870
+ door_id?: number | undefined;
32861
32871
  door_name: string;
32862
- device_id?: number | undefined;
32872
+ device_id?: (number | string) | undefined;
32863
32873
  door_is_wireless: boolean;
32864
- site_id: number;
32874
+ /** @DEPRECATED */
32875
+ site_id: number | null;
32865
32876
  site_name: string;
32866
32877
  iana_timezone?: string | undefined;
32867
32878
  predefined_time_slots?: Array<{
@@ -33397,11 +33408,12 @@ interface Routes {
33397
33408
  device_label: string;
33398
33409
  } | undefined;
33399
33410
  dormakaba_oracode_metadata?: {
33400
- door_id: number;
33411
+ door_id?: number | undefined;
33401
33412
  door_name: string;
33402
- device_id?: number | undefined;
33413
+ device_id?: (number | string) | undefined;
33403
33414
  door_is_wireless: boolean;
33404
- site_id: number;
33415
+ /** @DEPRECATED */
33416
+ site_id: number | null;
33405
33417
  site_name: string;
33406
33418
  iana_timezone?: string | undefined;
33407
33419
  predefined_time_slots?: Array<{
@@ -33912,11 +33924,12 @@ interface Routes {
33912
33924
  device_label: string;
33913
33925
  } | undefined;
33914
33926
  dormakaba_oracode_metadata?: {
33915
- door_id: number;
33927
+ door_id?: number | undefined;
33916
33928
  door_name: string;
33917
- device_id?: number | undefined;
33929
+ device_id?: (number | string) | undefined;
33918
33930
  door_is_wireless: boolean;
33919
- site_id: number;
33931
+ /** @DEPRECATED */
33932
+ site_id: number | null;
33920
33933
  site_name: string;
33921
33934
  iana_timezone?: string | undefined;
33922
33935
  predefined_time_slots?: Array<{
@@ -35234,11 +35247,12 @@ interface Routes {
35234
35247
  device_label: string;
35235
35248
  } | undefined;
35236
35249
  dormakaba_oracode_metadata?: {
35237
- door_id: number;
35250
+ door_id?: number | undefined;
35238
35251
  door_name: string;
35239
- device_id?: number | undefined;
35252
+ device_id?: (number | string) | undefined;
35240
35253
  door_is_wireless: boolean;
35241
- site_id: number;
35254
+ /** @DEPRECATED */
35255
+ site_id: number | null;
35242
35256
  site_name: string;
35243
35257
  iana_timezone?: string | undefined;
35244
35258
  predefined_time_slots?: Array<{
@@ -35749,11 +35763,12 @@ interface Routes {
35749
35763
  device_label: string;
35750
35764
  } | undefined;
35751
35765
  dormakaba_oracode_metadata?: {
35752
- door_id: number;
35766
+ door_id?: number | undefined;
35753
35767
  door_name: string;
35754
- device_id?: number | undefined;
35768
+ device_id?: (number | string) | undefined;
35755
35769
  door_is_wireless: boolean;
35756
- site_id: number;
35770
+ /** @DEPRECATED */
35771
+ site_id: number | null;
35757
35772
  site_name: string;
35758
35773
  iana_timezone?: string | undefined;
35759
35774
  predefined_time_slots?: Array<{
@@ -38174,11 +38189,12 @@ interface Routes {
38174
38189
  device_label: string;
38175
38190
  } | undefined;
38176
38191
  dormakaba_oracode_metadata?: {
38177
- door_id: number;
38192
+ door_id?: number | undefined;
38178
38193
  door_name: string;
38179
- device_id?: number | undefined;
38194
+ device_id?: (number | string) | undefined;
38180
38195
  door_is_wireless: boolean;
38181
- site_id: number;
38196
+ /** @DEPRECATED */
38197
+ site_id: number | null;
38182
38198
  site_name: string;
38183
38199
  iana_timezone?: string | undefined;
38184
38200
  predefined_time_slots?: Array<{
@@ -39468,11 +39484,12 @@ interface Routes {
39468
39484
  device_label: string;
39469
39485
  } | undefined;
39470
39486
  dormakaba_oracode_metadata?: {
39471
- door_id: number;
39487
+ door_id?: number | undefined;
39472
39488
  door_name: string;
39473
- device_id?: number | undefined;
39489
+ device_id?: (number | string) | undefined;
39474
39490
  door_is_wireless: boolean;
39475
- site_id: number;
39491
+ /** @DEPRECATED */
39492
+ site_id: number | null;
39476
39493
  site_name: string;
39477
39494
  iana_timezone?: string | undefined;
39478
39495
  predefined_time_slots?: Array<{
@@ -40945,11 +40962,12 @@ interface Routes {
40945
40962
  device_label: string;
40946
40963
  } | undefined;
40947
40964
  dormakaba_oracode_metadata?: {
40948
- door_id: number;
40965
+ door_id?: number | undefined;
40949
40966
  door_name: string;
40950
- device_id?: number | undefined;
40967
+ device_id?: (number | string) | undefined;
40951
40968
  door_is_wireless: boolean;
40952
- site_id: number;
40969
+ /** @DEPRECATED */
40970
+ site_id: number | null;
40953
40971
  site_name: string;
40954
40972
  iana_timezone?: string | undefined;
40955
40973
  predefined_time_slots?: Array<{
@@ -41462,11 +41480,12 @@ interface Routes {
41462
41480
  device_label: string;
41463
41481
  } | undefined;
41464
41482
  dormakaba_oracode_metadata?: {
41465
- door_id: number;
41483
+ door_id?: number | undefined;
41466
41484
  door_name: string;
41467
- device_id?: number | undefined;
41485
+ device_id?: (number | string) | undefined;
41468
41486
  door_is_wireless: boolean;
41469
- site_id: number;
41487
+ /** @DEPRECATED */
41488
+ site_id: number | null;
41470
41489
  site_name: string;
41471
41490
  iana_timezone?: string | undefined;
41472
41491
  predefined_time_slots?: Array<{
package/dist/devicedb.cjs CHANGED
@@ -177,11 +177,7 @@ var intercom = zod.z.object({
177
177
  can_remotely_unlock: zod.z.boolean(),
178
178
  can_program_access_codes: zod.z.boolean(),
179
179
  can_unlock_with_face_recognition: zod.z.boolean().default(false),
180
- supports_onvif: zod.z.boolean().default(false),
181
- can_hvac_heat: zod.z.boolean(),
182
- can_hvac_cool: zod.z.boolean(),
183
- can_hvac_heat_cool: zod.z.boolean(),
184
- can_turn_off_hvac: zod.z.boolean()
180
+ supports_onvif: zod.z.boolean().default(false)
185
181
  })
186
182
  });
187
183
  var accessory = zod.z.object({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/seam/devicedb/models/index.ts","../src/lib/seam/devicedb/models/device-capability.ts","../src/lib/seam/devicedb/models/device-model.ts","../src/lib/seam/devicedb/models/hardware.ts","../src/lib/seam/devicedb/models/image-reference.ts","../src/lib/seam/devicedb/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.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_remotely_lock: z.boolean(),\n can_program_offline_access_codes: z.boolean(),\n can_program_online_access_codes: z.boolean(),\n can_hvac_heat: z.boolean(),\n can_hvac_cool: z.boolean(),\n can_hvac_heat_cool: z.boolean(),\n can_turn_off_hvac: 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_lock: z.literal(true),\n can_remotely_unlock: z.literal(true),\n can_program_offline_access_codes: z.literal(true),\n can_program_online_access_codes: z.literal(true),\n can_hvac_heat: z.literal(true),\n can_hvac_cool: z.literal(true),\n can_hvac_heat_cool: z.literal(true),\n can_turn_off_hvac: 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\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_lock: true,\n can_remotely_unlock: true,\n can_program_offline_access_codes: true,\n can_program_online_access_codes: true,\n can_hvac_heat: true,\n can_hvac_cool: true,\n can_hvac_heat_cool: true,\n can_turn_off_hvac: 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 ThermostatProperties = 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 can_hvac_heat: z.boolean(),\n can_hvac_cool: z.boolean(),\n can_hvac_heat_cool: z.boolean(),\n can_turn_off_hvac: 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: 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 BaseDeviceModel = 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 DeviceModel = 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 website: z.string().url().optional(),\n legal_name: z.string().optional(),\n parent_organization: z.string().optional(),\n headquarters: z.array(z.string()).optional(),\n countries_of_origin: z.array(z.string()).optional(),\n founding_year: z.string().optional(),\n us_customer_support_tel: z.string().optional(),\n us_customer_support_email: z.string().email().optional(),\n us_customer_support_contact_url: z.string().url().optional(),\n seam_api_guide: z.string().optional(),\n description: z.string().optional(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './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/models/index.ts","../src/lib/seam/devicedb/models/device-capability.ts","../src/lib/seam/devicedb/models/device-model.ts","../src/lib/seam/devicedb/models/hardware.ts","../src/lib/seam/devicedb/models/image-reference.ts","../src/lib/seam/devicedb/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.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_remotely_lock: z.boolean(),\n can_program_offline_access_codes: z.boolean(),\n can_program_online_access_codes: z.boolean(),\n can_hvac_heat: z.boolean(),\n can_hvac_cool: z.boolean(),\n can_hvac_heat_cool: z.boolean(),\n can_turn_off_hvac: 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_lock: z.literal(true),\n can_remotely_unlock: z.literal(true),\n can_program_offline_access_codes: z.literal(true),\n can_program_online_access_codes: z.literal(true),\n can_hvac_heat: z.literal(true),\n can_hvac_cool: z.literal(true),\n can_hvac_heat_cool: z.literal(true),\n can_turn_off_hvac: 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\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_lock: true,\n can_remotely_unlock: true,\n can_program_offline_access_codes: true,\n can_program_online_access_codes: true,\n can_hvac_heat: true,\n can_hvac_cool: true,\n can_hvac_heat_cool: true,\n can_turn_off_hvac: 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 ThermostatProperties = 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 BaseDeviceModel = 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 DeviceModel = 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 website: z.string().url().optional(),\n legal_name: z.string().optional(),\n parent_organization: z.string().optional(),\n headquarters: z.array(z.string()).optional(),\n countries_of_origin: z.array(z.string()).optional(),\n founding_year: z.string().optional(),\n us_customer_support_tel: z.string().optional(),\n us_customer_support_email: z.string().email().optional(),\n us_customer_support_contact_url: z.string().url().optional(),\n seam_api_guide: z.string().optional(),\n description: z.string().optional(),\n})\n\nexport type Manufacturer = z.infer<typeof manufacturer>\n","import { z } from 'zod'\n\nimport * as schemas from './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"]}