@seamapi/types 1.68.0 → 1.70.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 +132 -34
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +205 -38
  4. package/dist/devicedb.cjs +9 -1
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +263 -2
  7. package/lib/seam/connect/openapi.d.ts +143 -11
  8. package/lib/seam/connect/openapi.js +120 -22
  9. package/lib/seam/connect/openapi.js.map +1 -1
  10. package/lib/seam/connect/route-types.d.ts +62 -27
  11. package/lib/seam/connect/unstable/models/access-codes/unmanaged-access-code.d.ts +6 -6
  12. package/lib/seam/connect/unstable/models/acs/credential.d.ts +7 -7
  13. package/lib/seam/connect/unstable/models/acs/credential.js +3 -2
  14. package/lib/seam/connect/unstable/models/acs/credential.js.map +1 -1
  15. package/lib/seam/connect/unstable/models/acs/user.d.ts +18 -9
  16. package/lib/seam/connect/unstable/models/acs/user.js +2 -3
  17. package/lib/seam/connect/unstable/models/acs/user.js.map +1 -1
  18. package/lib/seam/connect/unstable/models/schedule.d.ts +21 -0
  19. package/lib/seam/connect/unstable/models/schedule.js +12 -0
  20. package/lib/seam/connect/unstable/models/schedule.js.map +1 -0
  21. package/lib/seam/devicedb/index.d.ts +1 -1
  22. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +52 -0
  23. package/lib/seam/devicedb/public-models/manufacturer.d.ts +30 -0
  24. package/lib/seam/devicedb/public-models/manufacturer.js +6 -0
  25. package/lib/seam/devicedb/public-models/manufacturer.js.map +1 -1
  26. package/lib/seam/devicedb/route-specs.d.ts +160 -0
  27. package/lib/seam/devicedb/route-types.d.ts +16 -0
  28. package/package.json +1 -1
  29. package/src/lib/seam/connect/openapi.ts +120 -22
  30. package/src/lib/seam/connect/route-types.ts +121 -27
  31. package/src/lib/seam/connect/unstable/models/acs/credential.ts +3 -2
  32. package/src/lib/seam/connect/unstable/models/acs/user.ts +3 -3
  33. package/src/lib/seam/connect/unstable/models/schedule.ts +13 -0
  34. package/src/lib/seam/devicedb/index.ts +1 -0
  35. package/src/lib/seam/devicedb/public-models/manufacturer.ts +12 -0
  36. package/src/lib/seam/devicedb/route-types.ts +16 -0
@@ -266,6 +266,20 @@ declare const _default: {
266
266
  };
267
267
  acs_user: {
268
268
  properties: {
269
+ access_schedule: {
270
+ properties: {
271
+ ends_at: {
272
+ format: string;
273
+ type: string;
274
+ };
275
+ starts_at: {
276
+ format: string;
277
+ type: string;
278
+ };
279
+ };
280
+ required: string[];
281
+ type: string;
282
+ };
269
283
  acs_system_id: {
270
284
  format: string;
271
285
  type: string;
@@ -290,10 +304,6 @@ declare const _default: {
290
304
  format: string;
291
305
  type: string;
292
306
  };
293
- ends_at: {
294
- format: string;
295
- type: string;
296
- };
297
307
  external_type: {
298
308
  enum: string[];
299
309
  type: string;
@@ -311,17 +321,10 @@ declare const _default: {
311
321
  is_suspended: {
312
322
  type: string;
313
323
  };
314
- is_virtual: {
315
- type: string;
316
- };
317
324
  phone_number: {
318
325
  nullable: boolean;
319
326
  type: string;
320
327
  };
321
- starts_at: {
322
- format: string;
323
- type: string;
324
- };
325
328
  workspace_id: {
326
329
  format: string;
327
330
  type: string;
@@ -5240,10 +5243,28 @@ declare const _default: {
5240
5243
  format: string;
5241
5244
  type: string;
5242
5245
  };
5246
+ assa_abloy_credential_service_mobile_endpoint_id: {
5247
+ format: string;
5248
+ type: string;
5249
+ };
5250
+ card_format: {
5251
+ enum: string[];
5252
+ type: string;
5253
+ };
5243
5254
  code: {
5244
5255
  pattern: string;
5245
5256
  type: string;
5246
5257
  };
5258
+ external_type: {
5259
+ enum: string[];
5260
+ type: string;
5261
+ };
5262
+ is_multi_phone_sync_credential: {
5263
+ type: string;
5264
+ };
5265
+ is_override_key: {
5266
+ type: string;
5267
+ };
5247
5268
  };
5248
5269
  required: string[];
5249
5270
  type: string;
@@ -6667,6 +6688,10 @@ declare const _default: {
6667
6688
  nullable: boolean;
6668
6689
  type: string;
6669
6690
  };
6691
+ user_identity_id: {
6692
+ format: string;
6693
+ type: string;
6694
+ };
6670
6695
  };
6671
6696
  required: string[];
6672
6697
  type: string;
@@ -12764,6 +12789,113 @@ declare const _default: {
12764
12789
  'x-fern-sdk-method-name': string;
12765
12790
  };
12766
12791
  };
12792
+ '/user_identities/enrollment_automations/launch': {
12793
+ post: {
12794
+ operationId: string;
12795
+ requestBody: {
12796
+ content: {
12797
+ 'application/json': {
12798
+ schema: {
12799
+ properties: {
12800
+ acs_credential_pool_id: {
12801
+ format: string;
12802
+ type: string;
12803
+ };
12804
+ create_credential_manager_user: {
12805
+ type: string;
12806
+ };
12807
+ credential_manager_acs_system_id: {
12808
+ format: string;
12809
+ type: string;
12810
+ };
12811
+ credential_manager_acs_user_id: {
12812
+ format: string;
12813
+ type: string;
12814
+ };
12815
+ user_identity_id: {
12816
+ format: string;
12817
+ type: string;
12818
+ };
12819
+ };
12820
+ required: string[];
12821
+ type: string;
12822
+ };
12823
+ };
12824
+ };
12825
+ };
12826
+ responses: {
12827
+ 200: {
12828
+ content: {
12829
+ 'application/json': {
12830
+ schema: {
12831
+ properties: {
12832
+ enrollment_automation: {
12833
+ properties: {
12834
+ acs_credential_provisioning_automation_id: {
12835
+ format: string;
12836
+ type: string;
12837
+ };
12838
+ created_at: {
12839
+ format: string;
12840
+ type: string;
12841
+ };
12842
+ credential_manager_acs_system_id: {
12843
+ format: string;
12844
+ type: string;
12845
+ };
12846
+ enrollment_automation_id: {
12847
+ format: string;
12848
+ type: string;
12849
+ };
12850
+ user_identity_id: {
12851
+ format: string;
12852
+ type: string;
12853
+ };
12854
+ workspace_id: {
12855
+ format: string;
12856
+ type: string;
12857
+ };
12858
+ };
12859
+ required: string[];
12860
+ type: string;
12861
+ };
12862
+ ok: {
12863
+ type: string;
12864
+ };
12865
+ };
12866
+ required: string[];
12867
+ type: string;
12868
+ };
12869
+ };
12870
+ };
12871
+ description: string;
12872
+ };
12873
+ 400: {
12874
+ description: string;
12875
+ };
12876
+ 401: {
12877
+ description: string;
12878
+ };
12879
+ };
12880
+ security: ({
12881
+ pat_with_workspace: never[];
12882
+ console_session?: never;
12883
+ api_key?: never;
12884
+ } | {
12885
+ console_session: never[];
12886
+ pat_with_workspace?: never;
12887
+ api_key?: never;
12888
+ } | {
12889
+ api_key: never[];
12890
+ pat_with_workspace?: never;
12891
+ console_session?: never;
12892
+ })[];
12893
+ summary: string;
12894
+ tags: never[];
12895
+ 'x-fern-sdk-group-name': string[];
12896
+ 'x-fern-sdk-method-name': string;
12897
+ };
12898
+ };
12767
12899
  '/user_identities/get': {
12768
12900
  post: {
12769
12901
  operationId: string;
@@ -14905,9 +15037,10 @@ interface Routes {
14905
15037
  external_type?: ('pti_user' | 'brivo_user' | 'hid_cm_user' | 'salto_site_user') | undefined;
14906
15038
  external_type_display_name?: string | undefined;
14907
15039
  is_suspended: boolean;
14908
- starts_at?: string | undefined;
14909
- ends_at?: string | undefined;
14910
- is_virtual: boolean;
15040
+ access_schedule?: {
15041
+ starts_at: string;
15042
+ ends_at: string;
15043
+ } | undefined;
14911
15044
  full_name?: string | undefined;
14912
15045
  /** Deprecated: use email_address. */
14913
15046
  email?: string | undefined;
@@ -14991,8 +15124,8 @@ interface Routes {
14991
15124
  display_name: string;
14992
15125
  code?: (string | undefined) | null;
14993
15126
  access_method: 'code' | 'card' | 'mobile_key';
14994
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
14995
- external_type_display_name: string;
15127
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15128
+ external_type_display_name?: string | undefined;
14996
15129
  created_at: string;
14997
15130
  workspace_id: string;
14998
15131
  };
@@ -15007,6 +15140,11 @@ interface Routes {
15007
15140
  acs_user_id: string;
15008
15141
  access_method: 'code' | 'card' | 'mobile_key';
15009
15142
  code?: string | undefined;
15143
+ is_multi_phone_sync_credential?: boolean | undefined;
15144
+ assa_abloy_credential_service_mobile_endpoint_id?: string | undefined;
15145
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15146
+ card_format?: ('TLCode' | 'rfid48') | undefined;
15147
+ is_override_key?: boolean | undefined;
15010
15148
  };
15011
15149
  formData: {};
15012
15150
  jsonResponse: {
@@ -15018,8 +15156,8 @@ interface Routes {
15018
15156
  display_name: string;
15019
15157
  code?: (string | undefined) | null;
15020
15158
  access_method: 'code' | 'card' | 'mobile_key';
15021
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
15022
- external_type_display_name: string;
15159
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15160
+ external_type_display_name?: string | undefined;
15023
15161
  created_at: string;
15024
15162
  workspace_id: string;
15025
15163
  };
@@ -15054,8 +15192,8 @@ interface Routes {
15054
15192
  display_name: string;
15055
15193
  code?: (string | undefined) | null;
15056
15194
  access_method: 'code' | 'card' | 'mobile_key';
15057
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
15058
- external_type_display_name: string;
15195
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15196
+ external_type_display_name?: string | undefined;
15059
15197
  created_at: string;
15060
15198
  workspace_id: string;
15061
15199
  };
@@ -15084,8 +15222,8 @@ interface Routes {
15084
15222
  display_name: string;
15085
15223
  code?: (string | undefined) | null;
15086
15224
  access_method: 'code' | 'card' | 'mobile_key';
15087
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
15088
- external_type_display_name: string;
15225
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15226
+ external_type_display_name?: string | undefined;
15089
15227
  created_at: string;
15090
15228
  workspace_id: string;
15091
15229
  }>;
@@ -15110,8 +15248,8 @@ interface Routes {
15110
15248
  display_name: string;
15111
15249
  code?: (string | undefined) | null;
15112
15250
  access_method: 'code' | 'card' | 'mobile_key';
15113
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
15114
- external_type_display_name: string;
15251
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15252
+ external_type_display_name?: string | undefined;
15115
15253
  created_at: string;
15116
15254
  workspace_id: string;
15117
15255
  };
@@ -15136,8 +15274,8 @@ interface Routes {
15136
15274
  display_name: string;
15137
15275
  code?: (string | undefined) | null;
15138
15276
  access_method: 'code' | 'card' | 'mobile_key';
15139
- external_type: 'pti_card' | 'brivo_credential' | 'hid_credential';
15140
- external_type_display_name: string;
15277
+ external_type?: ('pti_card' | 'brivo_credential' | 'hid_credential' | 'visionline_card') | undefined;
15278
+ external_type_display_name?: string | undefined;
15141
15279
  created_at: string;
15142
15280
  workspace_id: string;
15143
15281
  };
@@ -15260,6 +15398,7 @@ interface Routes {
15260
15398
  jsonBody: {
15261
15399
  acs_system_id: string;
15262
15400
  acs_access_group_ids?: string[];
15401
+ user_identity_id?: string | undefined;
15263
15402
  access_schedule?: {
15264
15403
  starts_at: string;
15265
15404
  ends_at: string;
@@ -15283,9 +15422,10 @@ interface Routes {
15283
15422
  external_type?: ('pti_user' | 'brivo_user' | 'hid_cm_user' | 'salto_site_user') | undefined;
15284
15423
  external_type_display_name?: string | undefined;
15285
15424
  is_suspended: boolean;
15286
- starts_at?: string | undefined;
15287
- ends_at?: string | undefined;
15288
- is_virtual: boolean;
15425
+ access_schedule?: {
15426
+ starts_at: string;
15427
+ ends_at: string;
15428
+ } | undefined;
15289
15429
  full_name?: string | undefined;
15290
15430
  /** Deprecated: use email_address. */
15291
15431
  email?: string | undefined;
@@ -15325,9 +15465,10 @@ interface Routes {
15325
15465
  external_type?: ('pti_user' | 'brivo_user' | 'hid_cm_user' | 'salto_site_user') | undefined;
15326
15466
  external_type_display_name?: string | undefined;
15327
15467
  is_suspended: boolean;
15328
- starts_at?: string | undefined;
15329
- ends_at?: string | undefined;
15330
- is_virtual: boolean;
15468
+ access_schedule?: {
15469
+ starts_at: string;
15470
+ ends_at: string;
15471
+ } | undefined;
15331
15472
  full_name?: string | undefined;
15332
15473
  /** Deprecated: use email_address. */
15333
15474
  email?: string | undefined;
@@ -15356,9 +15497,10 @@ interface Routes {
15356
15497
  external_type?: ('pti_user' | 'brivo_user' | 'hid_cm_user' | 'salto_site_user') | undefined;
15357
15498
  external_type_display_name?: string | undefined;
15358
15499
  is_suspended: boolean;
15359
- starts_at?: string | undefined;
15360
- ends_at?: string | undefined;
15361
- is_virtual: boolean;
15500
+ access_schedule?: {
15501
+ starts_at: string;
15502
+ ends_at: string;
15503
+ } | undefined;
15362
15504
  full_name?: string | undefined;
15363
15505
  /** Deprecated: use email_address. */
15364
15506
  email?: string | undefined;
@@ -20385,6 +20527,30 @@ interface Routes {
20385
20527
  };
20386
20528
  };
20387
20529
  };
20530
+ '/user_identities/enrollment_automations/launch': {
20531
+ route: '/user_identities/enrollment_automations/launch';
20532
+ method: 'POST';
20533
+ queryParams: {};
20534
+ jsonBody: {};
20535
+ commonParams: {
20536
+ user_identity_id: string;
20537
+ credential_manager_acs_system_id: string;
20538
+ acs_credential_pool_id?: string | undefined;
20539
+ create_credential_manager_user?: boolean | undefined;
20540
+ credential_manager_acs_user_id?: string | undefined;
20541
+ };
20542
+ formData: {};
20543
+ jsonResponse: {
20544
+ enrollment_automation: {
20545
+ acs_credential_provisioning_automation_id: string;
20546
+ credential_manager_acs_system_id: string;
20547
+ user_identity_id: string;
20548
+ created_at: string;
20549
+ workspace_id: string;
20550
+ enrollment_automation_id: string;
20551
+ };
20552
+ };
20553
+ };
20388
20554
  '/user_identities/get': {
20389
20555
  route: '/user_identities/get';
20390
20556
  method: 'GET' | 'POST';
@@ -20914,9 +21080,10 @@ interface Routes {
20914
21080
  external_type?: ('pti_user' | 'brivo_user' | 'hid_cm_user' | 'salto_site_user') | undefined;
20915
21081
  external_type_display_name?: string | undefined;
20916
21082
  is_suspended: boolean;
20917
- starts_at?: string | undefined;
20918
- ends_at?: string | undefined;
20919
- is_virtual: boolean;
21083
+ access_schedule?: {
21084
+ starts_at: string;
21085
+ ends_at: string;
21086
+ } | undefined;
20920
21087
  full_name?: string | undefined;
20921
21088
  /** Deprecated: use email_address. */
20922
21089
  email?: string | undefined;
package/dist/devicedb.cjs CHANGED
@@ -19,6 +19,8 @@ __export(public_models_exports, {
19
19
  device_model_v1: () => device_model_v1,
20
20
  image_reference: () => image_reference,
21
21
  manufacturer: () => manufacturer,
22
+ manufacturer_annotation: () => manufacturer_annotation,
23
+ manufacturer_annotation_code: () => manufacturer_annotation_code,
22
24
  manufacturer_integration_support_level: () => manufacturer_integration_support_level,
23
25
  thermostat: () => thermostat
24
26
  });
@@ -44,6 +46,11 @@ var manufacturer_integration_support_level = zod.z.enum([
44
46
  "unsupported",
45
47
  "inquire"
46
48
  ]);
49
+ var manufacturer_annotation_code = zod.z.enum(["subscription_required"]);
50
+ var manufacturer_annotation = zod.z.object({
51
+ annotation_code: manufacturer_annotation_code,
52
+ message: zod.z.string().nonempty()
53
+ });
47
54
  var manufacturer = zod.z.object({
48
55
  manufacturer_id: zod.z.string().uuid(),
49
56
  display_name: zod.z.string(),
@@ -53,7 +60,8 @@ var manufacturer = zod.z.object({
53
60
  integration_support_level: manufacturer_integration_support_level,
54
61
  is_connect_webview_supported: zod.z.boolean(),
55
62
  requires_seam_support_to_add_account: zod.z.boolean(),
56
- device_model_count: zod.z.number()
63
+ device_model_count: zod.z.number(),
64
+ annotations: zod.z.array(manufacturer_annotation)
57
65
  });
58
66
 
59
67
  // src/lib/seam/devicedb/public-models/device-model-v1.ts
@@ -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":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,SAAS;AAEX,IAAM,kBAAkB,EAAE,OAAO;AAAA,EACtC,eAAe,EAAE,OAAO;AAAA,EACxB,YAAY,EAAE,OAAO;AAAA,EACrB,uBAAuB,EAAE,OAAO;AAAA,EAChC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,SAAS,UAAU,SAAS,CAAC;AAAA,EAC9D,eAAe,EAAE,KAAK,CAAC,QAAQ,QAAQ,aAAa,CAAC;AAAA,EACrD,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO;AAAA,EACnB,4BAA4B,EAAE,OAAO;AACvC,CAAC;;;ACXD,SAAS,KAAAA,UAAS;;;ACAlB,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,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;AAC/B,CAAC;;;AFrBM,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,GAAE,OAAO;AAAA,EACzB,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;AAED,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,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;;;AG9IA,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 * 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 = 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})\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-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().nonempty(),\n})\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"]}