@seamapi/types 1.976.0 → 1.977.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.
@@ -40435,10 +40435,16 @@ export type Routes = {
40435
40435
  /** Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. */
40436
40436
  navigation_mode?: 'full' | 'restricted';
40437
40437
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
40438
- deep_link?: {
40439
- resource_type: 'reservation' | 'space';
40438
+ deep_link?: ({
40439
+ resource_type: 'reservation';
40440
40440
  resource_key: string;
40441
- } | undefined;
40441
+ } | {
40442
+ resource_type: 'space';
40443
+ resource_key: string;
40444
+ } | {
40445
+ resource_type: 'device';
40446
+ resource_id: string;
40447
+ }) | undefined;
40442
40448
  /** Whether the portal is in developer mode. Only available for Seam employees. */
40443
40449
  _dev?: boolean;
40444
40450
  } & {
@@ -82512,10 +82518,16 @@ export type Routes = {
82512
82518
  /** Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. */
82513
82519
  navigation_mode?: 'full' | 'restricted';
82514
82520
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
82515
- deep_link?: {
82516
- resource_type: 'reservation' | 'space';
82521
+ deep_link?: ({
82522
+ resource_type: 'reservation';
82517
82523
  resource_key: string;
82518
- } | undefined;
82524
+ } | {
82525
+ resource_type: 'space';
82526
+ resource_key: string;
82527
+ } | {
82528
+ resource_type: 'device';
82529
+ resource_id: string;
82530
+ }) | undefined;
82519
82531
  /** Business vertical of the customer portal. */
82520
82532
  business_vertical?: ('neutral' | 'short_term_rental' | 'hospitality' | 'multi_family' | 'gym_management' | 'property_tours') | undefined;
82521
82533
  feature_flags?: {
@@ -82654,10 +82666,16 @@ export type Routes = {
82654
82666
  /** Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links. */
82655
82667
  navigation_mode?: ('full' | 'restricted') | undefined;
82656
82668
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
82657
- deep_link?: ({
82658
- resource_type: 'reservation' | 'space';
82669
+ deep_link?: (({
82670
+ resource_type: 'reservation';
82659
82671
  resource_key: string;
82660
- } | undefined) | undefined;
82672
+ } | {
82673
+ resource_type: 'space';
82674
+ resource_key: string;
82675
+ } | {
82676
+ resource_type: 'device';
82677
+ resource_id: string;
82678
+ }) | undefined) | undefined;
82661
82679
  };
82662
82680
  };
82663
82681
  commonParams: {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.976.0",
3
+ "version": "1.977.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -92,7 +92,7 @@
92
92
  "zod": "^3.24.0"
93
93
  },
94
94
  "devDependencies": {
95
- "@seamapi/blueprint": "^0.61.0",
95
+ "@seamapi/blueprint": "^1.0.0",
96
96
  "@swc/core": "^1.11.29",
97
97
  "@types/node": "^24.10.9",
98
98
  "concurrently": "^9.2.0",
@@ -209,10 +209,24 @@ export const portal_configuration_base = z.object({
209
209
  "Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links.",
210
210
  ),
211
211
  deep_link: z
212
- .object({
213
- resource_type: z.enum(['reservation', 'space']),
214
- resource_key: z.string(),
215
- })
212
+ .discriminatedUnion('resource_type', [
213
+ // Customer-keyed resources: resolved to an internal id via a lookup.
214
+ z.object({
215
+ resource_type: z.literal('reservation'),
216
+ resource_key: z.string(),
217
+ }),
218
+ z.object({
219
+ resource_type: z.literal('space'),
220
+ resource_key: z.string(),
221
+ }),
222
+ // Seam-id resource: a device is addressed by its Seam device_id directly
223
+ // (there is no customer-facing device_key), so it carries resource_id
224
+ // rather than resource_key.
225
+ z.object({
226
+ resource_type: z.literal('device'),
227
+ resource_id: z.string(),
228
+ }),
229
+ ])
216
230
  .optional().describe(`
217
231
  ---
218
232
  undocumented: Internal endpoint for customer portals.
@@ -54580,15 +54580,42 @@ const openapi: OpenAPISpec = {
54580
54580
  deep_link: {
54581
54581
  description:
54582
54582
  'Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.',
54583
- properties: {
54584
- resource_key: { type: 'string' },
54585
- resource_type: {
54586
- enum: ['reservation', 'space'],
54587
- type: 'string',
54583
+ discriminator: { propertyName: 'resource_type' },
54584
+ oneOf: [
54585
+ {
54586
+ properties: {
54587
+ resource_key: { type: 'string' },
54588
+ resource_type: {
54589
+ enum: ['reservation'],
54590
+ type: 'string',
54591
+ },
54592
+ },
54593
+ required: ['resource_type', 'resource_key'],
54594
+ type: 'object',
54588
54595
  },
54589
- },
54590
- required: ['resource_type', 'resource_key'],
54591
- type: 'object',
54596
+ {
54597
+ properties: {
54598
+ resource_key: { type: 'string' },
54599
+ resource_type: {
54600
+ enum: ['space'],
54601
+ type: 'string',
54602
+ },
54603
+ },
54604
+ required: ['resource_type', 'resource_key'],
54605
+ type: 'object',
54606
+ },
54607
+ {
54608
+ properties: {
54609
+ resource_id: { type: 'string' },
54610
+ resource_type: {
54611
+ enum: ['device'],
54612
+ type: 'string',
54613
+ },
54614
+ },
54615
+ required: ['resource_type', 'resource_id'],
54616
+ type: 'object',
54617
+ },
54618
+ ],
54592
54619
  'x-undocumented':
54593
54620
  'Internal endpoint for customer portals.',
54594
54621
  },
@@ -75939,15 +75966,42 @@ const openapi: OpenAPISpec = {
75939
75966
  deep_link: {
75940
75967
  description:
75941
75968
  'Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.',
75942
- properties: {
75943
- resource_key: { type: 'string' },
75944
- resource_type: {
75945
- enum: ['reservation', 'space'],
75946
- type: 'string',
75969
+ discriminator: { propertyName: 'resource_type' },
75970
+ oneOf: [
75971
+ {
75972
+ properties: {
75973
+ resource_key: { type: 'string' },
75974
+ resource_type: {
75975
+ enum: ['reservation'],
75976
+ type: 'string',
75977
+ },
75978
+ },
75979
+ required: ['resource_type', 'resource_key'],
75980
+ type: 'object',
75947
75981
  },
75948
- },
75949
- required: ['resource_type', 'resource_key'],
75950
- type: 'object',
75982
+ {
75983
+ properties: {
75984
+ resource_key: { type: 'string' },
75985
+ resource_type: {
75986
+ enum: ['space'],
75987
+ type: 'string',
75988
+ },
75989
+ },
75990
+ required: ['resource_type', 'resource_key'],
75991
+ type: 'object',
75992
+ },
75993
+ {
75994
+ properties: {
75995
+ resource_id: { type: 'string' },
75996
+ resource_type: {
75997
+ enum: ['device'],
75998
+ type: 'string',
75999
+ },
76000
+ },
76001
+ required: ['resource_type', 'resource_id'],
76002
+ type: 'object',
76003
+ },
76004
+ ],
75951
76005
  'x-undocumented':
75952
76006
  'Internal endpoint for customer portals.',
75953
76007
  },
@@ -76405,15 +76459,42 @@ const openapi: OpenAPISpec = {
76405
76459
  deep_link: {
76406
76460
  description:
76407
76461
  'Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.',
76408
- properties: {
76409
- resource_key: { type: 'string' },
76410
- resource_type: {
76411
- enum: ['reservation', 'space'],
76412
- type: 'string',
76462
+ discriminator: { propertyName: 'resource_type' },
76463
+ oneOf: [
76464
+ {
76465
+ properties: {
76466
+ resource_key: { type: 'string' },
76467
+ resource_type: {
76468
+ enum: ['reservation'],
76469
+ type: 'string',
76470
+ },
76471
+ },
76472
+ required: ['resource_type', 'resource_key'],
76473
+ type: 'object',
76413
76474
  },
76414
- },
76415
- required: ['resource_type', 'resource_key'],
76416
- type: 'object',
76475
+ {
76476
+ properties: {
76477
+ resource_key: { type: 'string' },
76478
+ resource_type: {
76479
+ enum: ['space'],
76480
+ type: 'string',
76481
+ },
76482
+ },
76483
+ required: ['resource_type', 'resource_key'],
76484
+ type: 'object',
76485
+ },
76486
+ {
76487
+ properties: {
76488
+ resource_id: { type: 'string' },
76489
+ resource_type: {
76490
+ enum: ['device'],
76491
+ type: 'string',
76492
+ },
76493
+ },
76494
+ required: ['resource_type', 'resource_id'],
76495
+ type: 'object',
76496
+ },
76497
+ ],
76417
76498
  'x-undocumented':
76418
76499
  'Internal endpoint for customer portals.',
76419
76500
  },
@@ -76845,15 +76926,42 @@ const openapi: OpenAPISpec = {
76845
76926
  deep_link: {
76846
76927
  description:
76847
76928
  'Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.',
76848
- properties: {
76849
- resource_key: { type: 'string' },
76850
- resource_type: {
76851
- enum: ['reservation', 'space'],
76852
- type: 'string',
76929
+ discriminator: { propertyName: 'resource_type' },
76930
+ oneOf: [
76931
+ {
76932
+ properties: {
76933
+ resource_key: { type: 'string' },
76934
+ resource_type: {
76935
+ enum: ['reservation'],
76936
+ type: 'string',
76937
+ },
76938
+ },
76939
+ required: ['resource_type', 'resource_key'],
76940
+ type: 'object',
76853
76941
  },
76854
- },
76855
- required: ['resource_type', 'resource_key'],
76856
- type: 'object',
76942
+ {
76943
+ properties: {
76944
+ resource_key: { type: 'string' },
76945
+ resource_type: {
76946
+ enum: ['space'],
76947
+ type: 'string',
76948
+ },
76949
+ },
76950
+ required: ['resource_type', 'resource_key'],
76951
+ type: 'object',
76952
+ },
76953
+ {
76954
+ properties: {
76955
+ resource_id: { type: 'string' },
76956
+ resource_type: {
76957
+ enum: ['device'],
76958
+ type: 'string',
76959
+ },
76960
+ },
76961
+ required: ['resource_type', 'resource_id'],
76962
+ type: 'object',
76963
+ },
76964
+ ],
76857
76965
  'x-undocumented':
76858
76966
  'Internal endpoint for customer portals.',
76859
76967
  },
@@ -77266,15 +77374,42 @@ const openapi: OpenAPISpec = {
77266
77374
  deep_link: {
77267
77375
  description:
77268
77376
  'Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.',
77269
- properties: {
77270
- resource_key: { type: 'string' },
77271
- resource_type: {
77272
- enum: ['reservation', 'space'],
77273
- type: 'string',
77377
+ discriminator: { propertyName: 'resource_type' },
77378
+ oneOf: [
77379
+ {
77380
+ properties: {
77381
+ resource_key: { type: 'string' },
77382
+ resource_type: {
77383
+ enum: ['reservation'],
77384
+ type: 'string',
77385
+ },
77386
+ },
77387
+ required: ['resource_type', 'resource_key'],
77388
+ type: 'object',
77274
77389
  },
77275
- },
77276
- required: ['resource_type', 'resource_key'],
77277
- type: 'object',
77390
+ {
77391
+ properties: {
77392
+ resource_key: { type: 'string' },
77393
+ resource_type: {
77394
+ enum: ['space'],
77395
+ type: 'string',
77396
+ },
77397
+ },
77398
+ required: ['resource_type', 'resource_key'],
77399
+ type: 'object',
77400
+ },
77401
+ {
77402
+ properties: {
77403
+ resource_id: { type: 'string' },
77404
+ resource_type: {
77405
+ enum: ['device'],
77406
+ type: 'string',
77407
+ },
77408
+ },
77409
+ required: ['resource_type', 'resource_id'],
77410
+ type: 'object',
77411
+ },
77412
+ ],
77278
77413
  'x-undocumented':
77279
77414
  'Internal endpoint for customer portals.',
77280
77415
  },
@@ -48107,10 +48107,20 @@ export type Routes = {
48107
48107
  navigation_mode?: 'full' | 'restricted'
48108
48108
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
48109
48109
  deep_link?:
48110
- | {
48111
- resource_type: 'reservation' | 'space'
48112
- resource_key: string
48113
- }
48110
+ | (
48111
+ | {
48112
+ resource_type: 'reservation'
48113
+ resource_key: string
48114
+ }
48115
+ | {
48116
+ resource_type: 'space'
48117
+ resource_key: string
48118
+ }
48119
+ | {
48120
+ resource_type: 'device'
48121
+ resource_id: string
48122
+ }
48123
+ )
48114
48124
  | undefined
48115
48125
  /** Whether the portal is in developer mode. Only available for Seam employees. */
48116
48126
  _dev?: boolean
@@ -100569,10 +100579,20 @@ export type Routes = {
100569
100579
  navigation_mode?: 'full' | 'restricted'
100570
100580
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
100571
100581
  deep_link?:
100572
- | {
100573
- resource_type: 'reservation' | 'space'
100574
- resource_key: string
100575
- }
100582
+ | (
100583
+ | {
100584
+ resource_type: 'reservation'
100585
+ resource_key: string
100586
+ }
100587
+ | {
100588
+ resource_type: 'space'
100589
+ resource_key: string
100590
+ }
100591
+ | {
100592
+ resource_type: 'device'
100593
+ resource_id: string
100594
+ }
100595
+ )
100576
100596
  | undefined
100577
100597
  /** Business vertical of the customer portal. */
100578
100598
  business_vertical?:
@@ -100777,10 +100797,20 @@ export type Routes = {
100777
100797
  /** Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource. */
100778
100798
  deep_link?:
100779
100799
  | (
100780
- | {
100781
- resource_type: 'reservation' | 'space'
100782
- resource_key: string
100783
- }
100800
+ | (
100801
+ | {
100802
+ resource_type: 'reservation'
100803
+ resource_key: string
100804
+ }
100805
+ | {
100806
+ resource_type: 'space'
100807
+ resource_key: string
100808
+ }
100809
+ | {
100810
+ resource_type: 'device'
100811
+ resource_id: string
100812
+ }
100813
+ )
100784
100814
  | undefined
100785
100815
  )
100786
100816
  | undefined