@seamapi/types 1.108.1 → 1.110.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.
Files changed (55) hide show
  1. package/dist/connect.cjs +38 -3
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +41 -2
  4. package/dist/devicedb.cjs +5 -16
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +98 -130
  7. package/lib/seam/connect/openapi.d.ts +39 -0
  8. package/lib/seam/connect/openapi.js +38 -3
  9. package/lib/seam/connect/openapi.js.map +1 -1
  10. package/lib/seam/connect/route-types.d.ts +2 -2
  11. package/lib/seam/devicedb/index.d.ts +2 -2
  12. package/lib/seam/devicedb/index.js +1 -1
  13. package/lib/seam/devicedb/index.js.map +1 -1
  14. package/lib/seam/devicedb/models/device-capability.js.map +1 -0
  15. package/lib/seam/devicedb/{public-models/device-model-v1.d.ts → models/device-model.d.ts} +19 -19
  16. package/lib/seam/devicedb/{public-models/device-model-v1.js → models/device-model.js} +1 -1
  17. package/lib/seam/devicedb/models/device-model.js.map +1 -0
  18. package/lib/seam/devicedb/models/hardware.js.map +1 -0
  19. package/lib/seam/devicedb/models/image-reference.js.map +1 -0
  20. package/lib/seam/devicedb/{public-models → models}/index.d.ts +1 -2
  21. package/lib/seam/devicedb/{public-models → models}/index.js +1 -2
  22. package/lib/seam/devicedb/models/index.js.map +1 -0
  23. package/lib/seam/devicedb/{public-models → models}/manufacturer.d.ts +4 -4
  24. package/lib/seam/devicedb/models/manufacturer.js.map +1 -0
  25. package/lib/seam/devicedb/route-specs.d.ts +70 -70
  26. package/lib/seam/devicedb/route-specs.js +1 -1
  27. package/lib/seam/devicedb/route-specs.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/lib/seam/connect/openapi.ts +38 -3
  30. package/src/lib/seam/connect/route-types.ts +2 -0
  31. package/src/lib/seam/devicedb/index.ts +3 -3
  32. package/src/lib/seam/devicedb/{public-models/device-model-v1.ts → models/device-model.ts} +3 -3
  33. package/src/lib/seam/devicedb/{public-models → models}/index.ts +1 -2
  34. package/src/lib/seam/devicedb/route-specs.ts +1 -1
  35. package/lib/seam/devicedb/public-models/device-capability.js.map +0 -1
  36. package/lib/seam/devicedb/public-models/device-model-v0.d.ts +0 -30
  37. package/lib/seam/devicedb/public-models/device-model-v0.js +0 -12
  38. package/lib/seam/devicedb/public-models/device-model-v0.js.map +0 -1
  39. package/lib/seam/devicedb/public-models/device-model-v1.js.map +0 -1
  40. package/lib/seam/devicedb/public-models/hardware.js.map +0 -1
  41. package/lib/seam/devicedb/public-models/image-reference.js.map +0 -1
  42. package/lib/seam/devicedb/public-models/index.js.map +0 -1
  43. package/lib/seam/devicedb/public-models/manufacturer.js.map +0 -1
  44. package/src/lib/seam/devicedb/public-models/device-model-v0.ts +0 -14
  45. /package/lib/seam/devicedb/{public-models → models}/device-capability.d.ts +0 -0
  46. /package/lib/seam/devicedb/{public-models → models}/device-capability.js +0 -0
  47. /package/lib/seam/devicedb/{public-models → models}/hardware.d.ts +0 -0
  48. /package/lib/seam/devicedb/{public-models → models}/hardware.js +0 -0
  49. /package/lib/seam/devicedb/{public-models → models}/image-reference.d.ts +0 -0
  50. /package/lib/seam/devicedb/{public-models → models}/image-reference.js +0 -0
  51. /package/lib/seam/devicedb/{public-models → models}/manufacturer.js +0 -0
  52. /package/src/lib/seam/devicedb/{public-models → models}/device-capability.ts +0 -0
  53. /package/src/lib/seam/devicedb/{public-models → models}/hardware.ts +0 -0
  54. /package/src/lib/seam/devicedb/{public-models → models}/image-reference.ts +0 -0
  55. /package/src/lib/seam/devicedb/{public-models → models}/manufacturer.ts +0 -0
@@ -7725,6 +7725,19 @@ declare const _default: {
7725
7725
  };
7726
7726
  responses: {
7727
7727
  200: {
7728
+ content: {
7729
+ 'application/json': {
7730
+ schema: {
7731
+ properties: {
7732
+ ok: {
7733
+ type: string;
7734
+ };
7735
+ };
7736
+ required: string[];
7737
+ type: string;
7738
+ };
7739
+ };
7740
+ };
7728
7741
  description: string;
7729
7742
  };
7730
7743
  400: {
@@ -7776,6 +7789,19 @@ declare const _default: {
7776
7789
  };
7777
7790
  responses: {
7778
7791
  200: {
7792
+ content: {
7793
+ 'application/json': {
7794
+ schema: {
7795
+ properties: {
7796
+ ok: {
7797
+ type: string;
7798
+ };
7799
+ };
7800
+ required: string[];
7801
+ type: string;
7802
+ };
7803
+ };
7804
+ };
7779
7805
  description: string;
7780
7806
  };
7781
7807
  400: {
@@ -8272,6 +8298,19 @@ declare const _default: {
8272
8298
  };
8273
8299
  responses: {
8274
8300
  200: {
8301
+ content: {
8302
+ 'application/json': {
8303
+ schema: {
8304
+ properties: {
8305
+ ok: {
8306
+ type: string;
8307
+ };
8308
+ };
8309
+ required: string[];
8310
+ type: string;
8311
+ };
8312
+ };
8313
+ };
8275
8314
  description: string;
8276
8315
  };
8277
8316
  400: {
@@ -19945,8 +19984,8 @@ interface Routes {
19945
19984
  device_ids?: string[] | undefined;
19946
19985
  access_code_id?: string | undefined;
19947
19986
  access_code_ids?: string[] | undefined;
19948
- event_type?: ('device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled') | undefined;
19949
- event_types?: Array<'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled'> | undefined;
19987
+ event_type?: ('device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled') | undefined;
19988
+ event_types?: Array<'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled'> | undefined;
19950
19989
  connected_account_id?: string | undefined;
19951
19990
  };
19952
19991
  formData: {};
package/dist/devicedb.cjs CHANGED
@@ -8,15 +8,14 @@ var __export = (target, all) => {
8
8
  __defProp(target, name, { get: all[name], enumerable: true });
9
9
  };
10
10
 
11
- // src/lib/seam/devicedb/public-models/index.ts
12
- var public_models_exports = {};
13
- __export(public_models_exports, {
11
+ // src/lib/seam/devicedb/models/index.ts
12
+ var models_exports = {};
13
+ __export(models_exports, {
14
14
  base_device_model_v1: () => base_device_model_v1,
15
15
  device_capability_flags: () => device_capability_flags,
16
16
  device_category: () => device_category,
17
17
  device_connection_type: () => device_connection_type,
18
18
  device_model_category_specific_properties: () => device_model_category_specific_properties,
19
- device_model_v0: () => device_model_v0,
20
19
  device_model_v1: () => device_model_v1,
21
20
  image_reference: () => image_reference,
22
21
  manufacturer: () => manufacturer,
@@ -34,16 +33,6 @@ var device_model_capability_flags_map = {
34
33
  can_program_online_access_codes: zod.z.literal(true)
35
34
  };
36
35
  var device_model_capability_flags = zod.z.object(device_model_capability_flags_map).partial();
37
- var device_model_v0 = zod.z.object({
38
- main_category: zod.z.string(),
39
- model_name: zod.z.string(),
40
- manufacturer_model_id: zod.z.string(),
41
- connection_type: zod.z.enum(["wifi", "zwave", "zigbee", "unknown"]),
42
- support_level: zod.z.enum(["live", "beta", "unsupported"]),
43
- brand: zod.z.string(),
44
- icon_url: zod.z.string(),
45
- seam_device_model_page_url: zod.z.string()
46
- });
47
36
  var hardware = zod.z.object({
48
37
  has_physical_key: zod.z.boolean()
49
38
  }).partial();
@@ -77,7 +66,7 @@ var manufacturer = zod.z.object({
77
66
  annotations: zod.z.array(manufacturer_annotation)
78
67
  });
79
68
 
80
- // src/lib/seam/devicedb/public-models/device-model-v1.ts
69
+ // src/lib/seam/devicedb/models/device-model.ts
81
70
  var device_category = zod.z.enum([
82
71
  "smartlock",
83
72
  "sensor",
@@ -256,6 +245,6 @@ var routes = {
256
245
  };
257
246
 
258
247
  exports.routes = routes;
259
- exports.schemas = public_models_exports;
248
+ exports.schemas = models_exports;
260
249
  //# sourceMappingURL=out.js.map
261
250
  //# sourceMappingURL=devicedb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/seam/devicedb/public-models/index.ts","../src/lib/seam/devicedb/public-models/device-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"]}
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":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,SAA0B;AAE5B,IAAM,0BAA0B,EACpC,OAAO;AAAA,EACN,qBAAqB,EAAE,QAAQ;AAAA,EAC/B,iCAAiC,EAAE,QAAQ;AAC7C,CAAC,EACA,QAAQ;AAEX,IAAM,oCAGF;AAAA,EACF,qBAAqB,EAAE,QAAQ,IAAI;AAAA,EACnC,iCAAiC,EAAE,QAAQ,IAAI;AACjD;AAEO,IAAM,gCAAgC,EAC1C,OAAO,iCAAiC,EACxC,QAAQ;;;ACnBX,SAAS,KAAAA,UAAS;;;ACAlB,SAAS,KAAAA,UAAS;AAEX,IAAM,WAAWA,GACrB,OAAO;AAAA,EACN,kBAAkBA,GAAE,QAAQ;AAC9B,CAAC,EACA,QAAQ;;;ACNX,SAAS,KAAAA,UAAS;AAEX,IAAM,kBAAkBA,GAAE,OAAO;AAAA,EACtC,KAAKA,GAAE,OAAO,EAAE,IAAI;AAAA,EACpB,OAAOA,GAAE,OAAO;AAAA,EAChB,QAAQA,GAAE,OAAO;AACnB,CAAC;;;ACND,SAAS,KAAAA,UAAS;AAIX,IAAM,yCAAyCA,GAAE,KAAK;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,+BAA+BA,GAAE,KAAK,CAAC,uBAAuB,CAAC;AAMrE,IAAM,0BAA0BA,GAAE,OAAO;AAAA,EAC9C,iBAAiB;AAAA,EACjB,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AACtC,CAAC;AAIM,IAAM,eAAeA,GAAE,OAAO;AAAA,EACnC,iBAAiBA,GAAE,OAAO,EAAE,KAAK;AAAA,EACjC,cAAcA,GAAE,OAAO;AAAA,EACvB,MAAM,gBAAgB,SAAS;AAAA;AAAA,EAE/B,aAAa;AAAA,EACb,2BAA2B;AAAA,EAC3B,8BAA8BA,GAAE,QAAQ;AAAA,EACxC,sCAAsCA,GAAE,QAAQ;AAAA,EAChD,oBAAoBA,GAAE,OAAO;AAAA,EAC7B,aAAaA,GAAE,MAAM,uBAAuB;AAC9C,CAAC;;;AHjCM,IAAM,kBAAkBA,GAAE,KAAK;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,yBAAyBA,GAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAID,IAAM,YAAYA,GACf,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,SAAS;AAAA,EACvD,qBAAqBA,GAAE,OAAO;AAAA,IAC5B,WAAWA,GAAE,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,kBAAkBA,GAAE,QAAQ;AAAA,IAC5B,YAAYA,GAAE,QAAQ;AAAA,EACxB,CAAC;AAAA,EACD,mBAAmBA,GAAE,OAAO;AAAA,IAC1B,qBAAqBA,GAAE,QAAQ;AAAA,IAC/B,0BAA0BA,GAAE,QAAQ;AAAA,IACpC,8BAA8BA,GAAE,QAAQ;AAAA,IACxC,kCAAkCA,GAAE,QAAQ;AAAA,EAC9C,CAAC;AACH,CAAC,EACA;AAAA,EACC,8BAA8B,KAAK;AAAA,IACjC,qBAAqB;AAAA,IACrB,iCAAiC;AAAA,EACnC,CAAC;AACH;AAEF,IAAM,SAASA,GAAE,OAAO;AAAA,EACtB,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,MAAM;AAAA,EACpD,qBAAqBA,GAAE,OAAO;AAAA,IAC5B,kBAAkBA,GAAE,QAAQ;AAAA,IAC5B,qBAAqBA,GAAE,QAAQ;AAAA,IAC/B,wBAAwBA,GAAE,QAAQ;AAAA,IAClC,yBAAyBA,GAAE,QAAQ;AAAA,EACrC,CAAC;AACH,CAAC;AAEM,IAAM,aAAaA,GAAE,OAAO;AAAA,EACjC,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,UAAU;AAAA,EACxD,qBAAqBA,GAAE,OAAO;AAAA,IAC5B,iBAAiBA,GAAE,KAAK,CAAC,QAAQ,QAAQ,OAAO,KAAK,CAAC,EAAE,MAAM;AAAA,IAC9D,yBAAyBA,GAAE,QAAQ;AAAA,IACnC,yBAAyBA,GAAE,QAAQ;AAAA,IACnC,0BAA0BA,GAAE,QAAQ;AAAA,IACpC,qBAAqBA,GAAE,QAAQ;AAAA,IAC/B,wBAAwBA,GAAE,QAAQ;AAAA,IAClC,iCAAiCA,GAAE,QAAQ;AAAA,EAC7C,CAAC;AAAA,EACD,mBAAmBA,GAAE,OAAO;AAAA,IAC1B,+BAA+BA,GAAE,QAAQ;AAAA,EAC3C,CAAC;AACH,CAAC;AAID,IAAM,QAAQA,GAAE,OAAO;AAAA,EACrB,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,KAAK;AACrD,CAAC;AAED,IAAM,WAAWA,GAAE,OAAO;AAAA,EACxB,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,QAAQ;AAAA,EACtD,qBAAqBA,GAAE,OAAO;AAAA,IAC5B,YAAYA,GAAE,QAAQ;AAAA,IACtB,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAC1C,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACzC,uBAAuBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClD,CAAC;AAAA,EACD,mBAAmBA,GAAE,OAAO;AAAA,IAC1B,qBAAqBA,GAAE,QAAQ;AAAA,IAC/B,0BAA0BA,GAAE,QAAQ;AAAA,IACpC,kCAAkCA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAC3D,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC3C,CAAC;AACH,CAAC;AAED,IAAM,YAAYA,GAAE,OAAO;AAAA,EACzB,eAAeA,GAAE,QAAQ,gBAAgB,KAAK,SAAS;AACzD,CAAC;AAEM,IAAM,4CAA4CA,GAAE;AAAA,EACzD;AAAA,EACA,CAAC,WAAW,QAAQ,YAAY,OAAO,UAAU,SAAS;AAC5D;AAEO,IAAM,uBAAuBA,GAAE,OAAO;AAAA,EAC3C,iBAAiBA,GAAE,OAAO,EAAE,KAAK;AAAA,EACjC,cAAc,aAAa,KAAK;AAAA,IAC9B,oBAAoB;AAAA,EACtB,CAAC;AAAA,EACD,qBAAqBA,GAAE,QAAQ;AAAA,EAC/B,cAAcA,GAAE,OAAO;AAAA,EACvB,aAAaA,GAAE,OAAO;AAAA,EACtB,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,sBAAsB;AAAA,EACtB;AAAA,EACA,oBAAoBA,GACjB,OAAO;AAAA,IACN,MAAMA,GAAE,OAAO;AAAA,IACf,cAAcA,GAAE,OAAO;AAAA,IACvB,mBAAmBA,GAAE,OAAO,EAAE,SAAS;AAAA,IACvC,kBAAkBA,GAAE,OAAO,EAAE,SAAS;AAAA,IACtC,aAAa,gBAAgB,SAAS;AAAA,IACtC,YAAY,gBAAgB,SAAS;AAAA,IACrC,QAAQ,gBAAgB,MAAM;AAAA,EAChC,CAAC,EACA,MAAM;AAAA,EACT,eAAeA,GACZ,KAAK;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,EACA,MAAM;AACX,CAAC;AAIM,IAAM,kBAAkB,qBAAqB;AAAA,EAClD;AACF;;;AIxJA,SAAS,KAAAA,UAAS;AAIlB,IAAM,WAAWA,GAAE,OAAO,EAAE,MAAM,yBAAyB;AAEpD,IAAM,SAAS;AAAA,EACpB,6BAA6B;AAAA,IAC3B,MAAM;AAAA,IACN,SAAS,CAAC,OAAO,SAAS;AAAA,IAC1B,aAAaA,GAAE,OAAO;AAAA,MACpB,iBAAiBA,GAAE,OAAO,EAAE,KAAK;AAAA,IACnC,CAAC;AAAA,IACD,cAAcA,GAAE,OAAO;AAAA,MACrB,cAAsB;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EACA,8BAA8B;AAAA,IAC5B,MAAM;AAAA,IACN,SAAS,CAAC,OAAO,SAAS;AAAA,IAC1B,aAAaA,GAAE,OAAO;AAAA,MACpB,eAAuB,gBAAgB,SAAS;AAAA,MAChD,iBAAiBA,GAAE,OAAO,EAAE,KAAK,EAAE,SAAS;AAAA,MAC5C,kBAAkBA,GAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;AAAA;AAAA,MAErD,oBAA4B,aAAa,MAAM,YAAY,SAAS;AAAA,MACpE,4BAA4BA,GACzB,MAAc,sCAAsC,EACpD,SAAS;AAAA,MACZ,aAAaA,GAAE,OAAO,EAAE,SAAS;AAAA,MACjC,YAAYA,GAAE,MAAM,QAAQ,EAAE,SAAS;AAAA,MACvC,YAAYA,GAAE,MAAM,QAAQ,EAAE,SAAS;AAAA,IACzC,CAAC;AAAA,IACD,cAAcA,GAAE,OAAO;AAAA,MACrB,eAAuB,gBAAgB,MAAM;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA,EACA,6BAA6B;AAAA,IAC3B,MAAM;AAAA,IACN,SAAS,CAAC,OAAO,SAAS;AAAA,IAC1B,aAAaA,GAAE,OAAO;AAAA,MACpB,iBAAiBA,GAAE,OAAO,EAAE,KAAK;AAAA,IACnC,CAAC;AAAA,IACD,cAAcA,GAAE,OAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,8BAA8B;AAAA,IAC5B,MAAM;AAAA,IACN,SAAS,CAAC,OAAO,SAAS;AAAA,IAC1B,aAAaA,GAAE,OAAO;AAAA;AAAA,MAEpB,oBAA4B,aAAa,MAAM,YAAY,SAAS;AAAA,MACpE,4BAA4BA,GACzB,MAAc,sCAAsC,EACpD,SAAS;AAAA,MACZ,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,IAClC,CAAC;AAAA,IACD,cAAcA,GAAE,OAAO;AAAA,MACrB,eAAuB,aAAa,MAAM;AAAA,IAC5C,CAAC;AAAA,EACH;AACF","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_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\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 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})\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"]}