@seamapi/types 1.104.0 → 1.106.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 (36) hide show
  1. package/dist/connect.cjs +33 -3
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +15 -0
  4. package/dist/devicedb.cjs +20 -1
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +149 -1
  7. package/lib/seam/connect/openapi.d.ts +12 -0
  8. package/lib/seam/connect/openapi.js +33 -3
  9. package/lib/seam/connect/openapi.js.map +1 -1
  10. package/lib/seam/connect/route-types.d.ts +3 -0
  11. package/lib/seam/connect/unstable/models/acs/entrance.d.ts +5 -0
  12. package/lib/seam/connect/unstable/models/acs/entrance.js +7 -0
  13. package/lib/seam/connect/unstable/models/acs/entrance.js.map +1 -1
  14. package/lib/seam/devicedb/public-models/device-capability.d.ts +21 -0
  15. package/lib/seam/devicedb/public-models/device-capability.js +15 -0
  16. package/lib/seam/devicedb/public-models/device-capability.js.map +1 -0
  17. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +38 -0
  18. package/lib/seam/devicedb/public-models/device-model-v1.js +10 -2
  19. package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -1
  20. package/lib/seam/devicedb/public-models/hardware.d.ts +8 -0
  21. package/lib/seam/devicedb/public-models/hardware.js +7 -0
  22. package/lib/seam/devicedb/public-models/hardware.js.map +1 -0
  23. package/lib/seam/devicedb/public-models/index.d.ts +1 -0
  24. package/lib/seam/devicedb/public-models/index.js +1 -0
  25. package/lib/seam/devicedb/public-models/index.js.map +1 -1
  26. package/lib/seam/devicedb/route-specs.d.ts +88 -0
  27. package/lib/seam/devicedb/route-types.d.ts +10 -0
  28. package/package.json +1 -1
  29. package/src/lib/seam/connect/openapi.ts +33 -3
  30. package/src/lib/seam/connect/route-types.ts +18 -0
  31. package/src/lib/seam/connect/unstable/models/acs/entrance.ts +7 -0
  32. package/src/lib/seam/devicedb/public-models/device-capability.ts +20 -0
  33. package/src/lib/seam/devicedb/public-models/device-model-v1.ts +33 -23
  34. package/src/lib/seam/devicedb/public-models/hardware.ts +7 -0
  35. package/src/lib/seam/devicedb/public-models/index.ts +1 -0
  36. package/src/lib/seam/devicedb/route-types.ts +10 -0
@@ -33,6 +33,9 @@ export interface Routes {
33
33
  description: string;
34
34
  product_url?: string | undefined;
35
35
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
36
+ hardware: {
37
+ has_physical_key?: boolean | undefined;
38
+ };
36
39
  aesthetic_variants: Array<{
37
40
  slug: string;
38
41
  display_name: string;
@@ -68,6 +71,8 @@ export interface Routes {
68
71
  can_program_access_schedules: boolean;
69
72
  can_program_access_codes_offline: boolean;
70
73
  };
74
+ can_remotely_unlock?: true | undefined;
75
+ can_program_online_access_codes?: true | undefined;
71
76
  } | {
72
77
  main_category: 'sensor';
73
78
  physical_properties: {
@@ -152,6 +157,9 @@ export interface Routes {
152
157
  description: string;
153
158
  product_url?: string | undefined;
154
159
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
160
+ hardware: {
161
+ has_physical_key?: boolean | undefined;
162
+ };
155
163
  aesthetic_variants: Array<{
156
164
  slug: string;
157
165
  display_name: string;
@@ -187,6 +195,8 @@ export interface Routes {
187
195
  can_program_access_schedules: boolean;
188
196
  can_program_access_codes_offline: boolean;
189
197
  };
198
+ can_remotely_unlock?: true | undefined;
199
+ can_program_online_access_codes?: true | undefined;
190
200
  } | {
191
201
  main_category: 'sensor';
192
202
  physical_properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.104.0",
3
+ "version": "1.106.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -4944,6 +4944,16 @@ export default {
4944
4944
  visionline_metadata: {
4945
4945
  nullable: true,
4946
4946
  properties: {
4947
+ door_category: {
4948
+ enum: [
4949
+ 'entrance',
4950
+ 'guest',
4951
+ 'elevator reader',
4952
+ 'common',
4953
+ 'common (PMS)',
4954
+ ],
4955
+ type: 'string',
4956
+ },
4947
4957
  door_name: { type: 'string' },
4948
4958
  profiles: {
4949
4959
  items: {
@@ -4965,7 +4975,7 @@ export default {
4965
4975
  type: 'array',
4966
4976
  },
4967
4977
  },
4968
- required: ['door_name'],
4978
+ required: ['door_name', 'door_category'],
4969
4979
  type: 'object',
4970
4980
  },
4971
4981
  },
@@ -5079,6 +5089,16 @@ export default {
5079
5089
  visionline_metadata: {
5080
5090
  nullable: true,
5081
5091
  properties: {
5092
+ door_category: {
5093
+ enum: [
5094
+ 'entrance',
5095
+ 'guest',
5096
+ 'elevator reader',
5097
+ 'common',
5098
+ 'common (PMS)',
5099
+ ],
5100
+ type: 'string',
5101
+ },
5082
5102
  door_name: { type: 'string' },
5083
5103
  profiles: {
5084
5104
  items: {
@@ -5100,7 +5120,7 @@ export default {
5100
5120
  type: 'array',
5101
5121
  },
5102
5122
  },
5103
- required: ['door_name'],
5123
+ required: ['door_name', 'door_category'],
5104
5124
  type: 'object',
5105
5125
  },
5106
5126
  },
@@ -5653,6 +5673,16 @@ export default {
5653
5673
  visionline_metadata: {
5654
5674
  nullable: true,
5655
5675
  properties: {
5676
+ door_category: {
5677
+ enum: [
5678
+ 'entrance',
5679
+ 'guest',
5680
+ 'elevator reader',
5681
+ 'common',
5682
+ 'common (PMS)',
5683
+ ],
5684
+ type: 'string',
5685
+ },
5656
5686
  door_name: { type: 'string' },
5657
5687
  profiles: {
5658
5688
  items: {
@@ -5674,7 +5704,7 @@ export default {
5674
5704
  type: 'array',
5675
5705
  },
5676
5706
  },
5677
- required: ['door_name'],
5707
+ required: ['door_name', 'door_category'],
5678
5708
  type: 'object',
5679
5709
  },
5680
5710
  },
@@ -1140,6 +1140,12 @@ export interface Routes {
1140
1140
  created_at: string
1141
1141
  visionline_metadata: {
1142
1142
  door_name: string
1143
+ door_category:
1144
+ | 'entrance'
1145
+ | 'guest'
1146
+ | 'elevator reader'
1147
+ | 'common'
1148
+ | 'common (PMS)'
1143
1149
  profiles?:
1144
1150
  | Array<{
1145
1151
  visionline_door_profile_id: string
@@ -1180,6 +1186,12 @@ export interface Routes {
1180
1186
  created_at: string
1181
1187
  visionline_metadata: {
1182
1188
  door_name: string
1189
+ door_category:
1190
+ | 'entrance'
1191
+ | 'guest'
1192
+ | 'elevator reader'
1193
+ | 'common'
1194
+ | 'common (PMS)'
1183
1195
  profiles?:
1184
1196
  | Array<{
1185
1197
  visionline_door_profile_id: string
@@ -1500,6 +1512,12 @@ export interface Routes {
1500
1512
  created_at: string
1501
1513
  visionline_metadata: {
1502
1514
  door_name: string
1515
+ door_category:
1516
+ | 'entrance'
1517
+ | 'guest'
1518
+ | 'elevator reader'
1519
+ | 'common'
1520
+ | 'common (PMS)'
1503
1521
  profiles?:
1504
1522
  | Array<{
1505
1523
  visionline_door_profile_id: string
@@ -8,6 +8,13 @@ export const acs_entrance = z.object({
8
8
  visionline_metadata: z
9
9
  .object({
10
10
  door_name: z.string(),
11
+ door_category: z.enum([
12
+ 'entrance',
13
+ 'guest',
14
+ 'elevator reader',
15
+ 'common',
16
+ 'common (PMS)',
17
+ ]),
11
18
  profiles: z
12
19
  .array(
13
20
  z.object({
@@ -0,0 +1,20 @@
1
+ import { z, type ZodLiteral } from 'zod'
2
+
3
+ export const device_capability_flags = z
4
+ .object({
5
+ can_remotely_unlock: z.boolean(),
6
+ can_program_online_access_codes: z.boolean(),
7
+ })
8
+ .partial()
9
+
10
+ const device_model_capability_flags_map: Record<
11
+ keyof z.infer<typeof device_capability_flags>,
12
+ ZodLiteral<true>
13
+ > = {
14
+ can_remotely_unlock: z.literal(true),
15
+ can_program_online_access_codes: z.literal(true),
16
+ }
17
+
18
+ export const device_model_capability_flags = z
19
+ .object(device_model_capability_flags_map)
20
+ .partial()
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod'
2
2
 
3
+ import { device_model_capability_flags } from './device-capability.js'
4
+ import { hardware } from './hardware.js'
3
5
  import { image_reference } from './image-reference.js'
4
6
  import { manufacturer } from './manufacturer.js'
5
7
 
@@ -23,29 +25,36 @@ export const device_connection_type = z.enum([
23
25
 
24
26
  export type DeviceConnectionType = z.infer<typeof device_connection_type>
25
27
 
26
- const smartlock = z.object({
27
- main_category: z.literal(device_category.enum.smartlock),
28
- physical_properties: z.object({
29
- lock_type: z.enum([
30
- 'deadbolt',
31
- 'lever',
32
- 'mortise',
33
- 'lockbox',
34
- 'cylinder',
35
- 'padlock',
36
- 'locker',
37
- 'unknown',
38
- ]),
39
- has_physical_key: z.boolean(),
40
- has_camera: z.boolean(),
41
- }),
42
- software_features: z.object({
43
- can_remotely_unlock: z.boolean(),
44
- can_program_access_codes: z.boolean(),
45
- can_program_access_schedules: z.boolean(),
46
- can_program_access_codes_offline: z.boolean(),
47
- }),
48
- })
28
+ const smartlock = z
29
+ .object({
30
+ main_category: z.literal(device_category.enum.smartlock),
31
+ physical_properties: z.object({
32
+ lock_type: z.enum([
33
+ 'deadbolt',
34
+ 'lever',
35
+ 'mortise',
36
+ 'lockbox',
37
+ 'cylinder',
38
+ 'padlock',
39
+ 'locker',
40
+ 'unknown',
41
+ ]),
42
+ has_physical_key: z.boolean(),
43
+ has_camera: z.boolean(),
44
+ }),
45
+ software_features: z.object({
46
+ can_remotely_unlock: z.boolean(),
47
+ can_program_access_codes: z.boolean(),
48
+ can_program_access_schedules: z.boolean(),
49
+ can_program_access_codes_offline: z.boolean(),
50
+ }),
51
+ })
52
+ .merge(
53
+ device_model_capability_flags.pick({
54
+ can_remotely_unlock: true,
55
+ can_program_online_access_codes: true,
56
+ }),
57
+ )
49
58
 
50
59
  const sensor = z.object({
51
60
  main_category: z.literal(device_category.enum.sensor),
@@ -114,6 +123,7 @@ export const base_device_model_v1 = z.object({
114
123
  description: z.string(),
115
124
  product_url: z.string().optional(),
116
125
  main_connection_type: device_connection_type,
126
+ hardware,
117
127
  aesthetic_variants: z
118
128
  .object({
119
129
  slug: z.string(),
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod'
2
+
3
+ export const hardware = z
4
+ .object({
5
+ has_physical_key: z.boolean(),
6
+ })
7
+ .partial()
@@ -1,3 +1,4 @@
1
+ export { device_capability_flags } from './device-capability.js'
1
2
  export * from './device-model-v0.js'
2
3
  export * from './device-model-v1.js'
3
4
  export * from './image-reference.js'
@@ -40,6 +40,9 @@ export interface Routes {
40
40
  description: string
41
41
  product_url?: string | undefined
42
42
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
43
+ hardware: {
44
+ has_physical_key?: boolean | undefined
45
+ }
43
46
  aesthetic_variants: Array<{
44
47
  slug: string
45
48
  display_name: string
@@ -94,6 +97,8 @@ export interface Routes {
94
97
  can_program_access_schedules: boolean
95
98
  can_program_access_codes_offline: boolean
96
99
  }
100
+ can_remotely_unlock?: true | undefined
101
+ can_program_online_access_codes?: true | undefined
97
102
  }
98
103
  | {
99
104
  main_category: 'sensor'
@@ -210,6 +215,9 @@ export interface Routes {
210
215
  description: string
211
216
  product_url?: string | undefined
212
217
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown'
218
+ hardware: {
219
+ has_physical_key?: boolean | undefined
220
+ }
213
221
  aesthetic_variants: Array<{
214
222
  slug: string
215
223
  display_name: string
@@ -264,6 +272,8 @@ export interface Routes {
264
272
  can_program_access_schedules: boolean
265
273
  can_program_access_codes_offline: boolean
266
274
  }
275
+ can_remotely_unlock?: true | undefined
276
+ can_program_online_access_codes?: true | undefined
267
277
  }
268
278
  | {
269
279
  main_category: 'sensor'