From 8a132cbb1269cfce915ee51e752ebc8ace8e5623 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Thu, 5 Jun 2025 16:22:59 -0700 Subject: [PATCH 1/5] Update to types v1.406.9 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3488ad11..be129b67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@seamapi/fake-seam-connect": "^1.77.0", - "@seamapi/types": "1.384.0", + "@seamapi/types": "^1.406.9", "@swc/core": "^1.11.29", "@types/eslint": "^8.44.2", "@types/jsonwebtoken": "^9.0.6", @@ -1157,9 +1157,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.384.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.384.0.tgz", - "integrity": "sha512-pFQF4O7LaLu9J2yfNxtiuN/kCYX5WH0Sdccx6BC1rYQqwQSD1m5/yXTq14iCBa6z2R8Fw09WRU5Zp+NjHtleQQ==", + "version": "1.406.9", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.406.9.tgz", + "integrity": "sha512-VLdfvKYcB/kc4WkE7HJMyTA7Qc8tybZFP7B6Rub8mv+dEvuyTRbfkIbc8sT0NVN1q3BajW4ZAfIeq56X4hsAPA==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index e0308352..42ac62cb 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ }, "devDependencies": { "@seamapi/fake-seam-connect": "^1.77.0", - "@seamapi/types": "1.384.0", + "@seamapi/types": "1.406.9", "@swc/core": "^1.11.29", "@types/eslint": "^8.44.2", "@types/jsonwebtoken": "^9.0.6", From 6bd1eeb46d3a405cccfe5bec3bb71f48a7295b88 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Thu, 5 Jun 2025 16:26:30 -0700 Subject: [PATCH 2/5] Add missing routes --- generate-routes.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/generate-routes.ts b/generate-routes.ts index 508b3e03..fdf3a9f8 100644 --- a/generate-routes.ts +++ b/generate-routes.ts @@ -60,6 +60,7 @@ const routePaths = [ '/bridges', '/events', '/locks', + '/locks/simulate', '/networks', '/noise_sensors', '/noise_sensors/noise_thresholds', @@ -69,8 +70,13 @@ const routePaths = [ '/thermostats', '/thermostats/schedules', '/thermostats/simulate', + '/thermostats/daily_programs', '/unstable_locations', '/unstable_access_grants', + '/unstable_access_methods', + '/unstable_partner', + '/unstable_partner/resources', + '/unstable_partner/building_blocks', '/user_identities', '/user_identities/enrollment_automations', '/webhooks', @@ -91,6 +97,7 @@ const routePathSubresources: Partial< 'systems', 'users', ], + '/locks': ['simulate'], '/acs/users': ['unmanaged'], '/acs/access_groups': ['unmanaged'], '/acs/credentials': ['unmanaged'], @@ -98,8 +105,9 @@ const routePathSubresources: Partial< '/phones': ['simulate'], '/devices': ['unmanaged', 'simulate'], '/noise_sensors': ['noise_thresholds', 'simulate'], - '/thermostats': ['schedules', 'simulate'], + '/thermostats': ['schedules', 'simulate', 'daily_programs'], '/user_identities': ['enrollment_automations'], + '/unstable_partner': ['building_blocks', 'resources'], } interface Route { From 588954ac1715db7640d31d610ce387fc2e537c0f Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 5 Jun 2025 23:29:41 +0000 Subject: [PATCH 3/5] ci: Generate code --- package-lock.json | 4 +- package.json | 2 +- src/lib/seam/connect/routes/access-codes.ts | 20 ++++ src/lib/seam/connect/routes/acs-encoders.ts | 25 +++++ .../seam/connect/routes/connected-accounts.ts | 18 ++++ src/lib/seam/connect/routes/index.ts | 4 +- ...works.ts => thermostats-daily-programs.ts} | 95 +++++++++++++------ src/lib/seam/connect/routes/thermostats.ts | 33 +++++++ .../{bridges.ts => unstable-partner.ts} | 67 +++---------- src/lib/seam/connect/routes/workspaces.ts | 17 ++++ 10 files changed, 196 insertions(+), 89 deletions(-) rename src/lib/seam/connect/routes/{networks.ts => thermostats-daily-programs.ts} (69%) rename src/lib/seam/connect/routes/{bridges.ts => unstable-partner.ts} (77%) diff --git a/package-lock.json b/package-lock.json index be129b67..a5afe2bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@seamapi/fake-seam-connect": "^1.77.0", - "@seamapi/types": "^1.406.9", + "@seamapi/types": "1.406.9", "@swc/core": "^1.11.29", "@types/eslint": "^8.44.2", "@types/jsonwebtoken": "^9.0.6", @@ -49,7 +49,7 @@ "npm": ">=10.1.0" }, "peerDependencies": { - "@seamapi/types": "^1.384.0" + "@seamapi/types": "^1.406.9" }, "peerDependenciesMeta": { "@seamapi/types": { diff --git a/package.json b/package.json index 42ac62cb..8ef9a98f 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "npm": ">=10.1.0" }, "peerDependencies": { - "@seamapi/types": "^1.384.0" + "@seamapi/types": "^1.406.9" }, "peerDependenciesMeta": { "@seamapi/types": { diff --git a/src/lib/seam/connect/routes/access-codes.ts b/src/lib/seam/connect/routes/access-codes.ts index 8f5e0660..5ce281a6 100644 --- a/src/lib/seam/connect/routes/access-codes.ts +++ b/src/lib/seam/connect/routes/access-codes.ts @@ -246,6 +246,17 @@ export class SeamHttpAccessCodes { }) } + reportDeviceConstraints( + body?: AccessCodesReportDeviceConstraintsBody, + ): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/access_codes/report_device_constraints', + method: 'post', + body, + responseKey: undefined, + }) + } + update(body?: AccessCodesUpdateBody): SeamHttpRequest { return new SeamHttpRequest(this, { pathname: '/access_codes/update', @@ -326,6 +337,15 @@ export type AccessCodesPullBackupAccessCodeResponse = SetNonNullable< export type AccessCodesPullBackupAccessCodeOptions = never +export type AccessCodesReportDeviceConstraintsBody = + RouteRequestBody<'/access_codes/report_device_constraints'> + +export type AccessCodesReportDeviceConstraintsResponse = SetNonNullable< + Required> +> + +export type AccessCodesReportDeviceConstraintsOptions = never + export type AccessCodesUpdateBody = RouteRequestBody<'/access_codes/update'> export type AccessCodesUpdateResponse = SetNonNullable< diff --git a/src/lib/seam/connect/routes/acs-encoders.ts b/src/lib/seam/connect/routes/acs-encoders.ts index 5bd93557..652c2121 100644 --- a/src/lib/seam/connect/routes/acs-encoders.ts +++ b/src/lib/seam/connect/routes/acs-encoders.ts @@ -166,6 +166,19 @@ export class SeamHttpAcsEncoders { return SeamHttpAcsEncodersSimulate.fromClient(this.client, this.defaults) } + encodeAccessMethod( + body?: AcsEncodersEncodeAccessMethodBody, + options: Pick = {}, + ): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/acs/encoders/encode_access_method', + method: 'post', + body, + responseKey: 'action_attempt', + options, + }) + } + encodeCredential( body?: AcsEncodersEncodeCredentialBody, options: Pick = {}, @@ -215,6 +228,18 @@ export class SeamHttpAcsEncoders { } } +export type AcsEncodersEncodeAccessMethodBody = + RouteRequestBody<'/acs/encoders/encode_access_method'> + +export type AcsEncodersEncodeAccessMethodResponse = SetNonNullable< + Required> +> + +export type AcsEncodersEncodeAccessMethodOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> + export type AcsEncodersEncodeCredentialBody = RouteRequestBody<'/acs/encoders/encode_credential'> diff --git a/src/lib/seam/connect/routes/connected-accounts.ts b/src/lib/seam/connect/routes/connected-accounts.ts index f99d0c93..e7fa621d 100644 --- a/src/lib/seam/connect/routes/connected-accounts.ts +++ b/src/lib/seam/connect/routes/connected-accounts.ts @@ -194,6 +194,15 @@ export class SeamHttpConnectedAccounts { }) } + sync(body?: ConnectedAccountsSyncBody): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/connected_accounts/sync', + method: 'post', + body, + responseKey: undefined, + }) + } + update(body?: ConnectedAccountsUpdateBody): SeamHttpRequest { return new SeamHttpRequest(this, { pathname: '/connected_accounts/update', @@ -231,6 +240,15 @@ export type ConnectedAccountsListResponse = SetNonNullable< export type ConnectedAccountsListOptions = never +export type ConnectedAccountsSyncBody = + RouteRequestBody<'/connected_accounts/sync'> + +export type ConnectedAccountsSyncResponse = SetNonNullable< + Required> +> + +export type ConnectedAccountsSyncOptions = never + export type ConnectedAccountsUpdateBody = RouteRequestBody<'/connected_accounts/update'> diff --git a/src/lib/seam/connect/routes/index.ts b/src/lib/seam/connect/routes/index.ts index dca93802..f1140758 100644 --- a/src/lib/seam/connect/routes/index.ts +++ b/src/lib/seam/connect/routes/index.ts @@ -10,7 +10,6 @@ export * from './acs-entrances.js' export * from './acs-systems.js' export * from './acs-users.js' export * from './action-attempts.js' -export * from './bridges.js' export * from './client-sessions.js' export * from './connect-webviews.js' export * from './connected-accounts.js' @@ -19,15 +18,16 @@ export * from './devices-simulate.js' export * from './devices-unmanaged.js' export * from './events.js' export * from './locks.js' -export * from './networks.js' export * from './noise-sensors.js' export * from './noise-sensors-noise-thresholds.js' export * from './noise-sensors-simulate.js' export * from './phones.js' export * from './phones-simulate.js' export * from './thermostats.js' +export * from './thermostats-daily-programs.js' export * from './thermostats-schedules.js' export * from './thermostats-simulate.js' +export * from './unstable-partner.js' export * from './user-identities.js' export * from './user-identities-enrollment-automations.js' export * from './webhooks.js' diff --git a/src/lib/seam/connect/routes/networks.ts b/src/lib/seam/connect/routes/thermostats-daily-programs.ts similarity index 69% rename from src/lib/seam/connect/routes/networks.ts rename to src/lib/seam/connect/routes/thermostats-daily-programs.ts index c3022cd8..fb45cc4c 100644 --- a/src/lib/seam/connect/routes/networks.ts +++ b/src/lib/seam/connect/routes/thermostats-daily-programs.ts @@ -36,7 +36,7 @@ import type { SetNonNullable } from 'lib/types.js' import { SeamHttpClientSessions } from './client-sessions.js' -export class SeamHttpNetworks { +export class SeamHttpThermostatsDailyPrograms { client: Client readonly defaults: Required @@ -49,23 +49,23 @@ export class SeamHttpNetworks { static fromClient( client: SeamHttpOptionsWithClient['client'], options: Omit = {}, - ): SeamHttpNetworks { + ): SeamHttpThermostatsDailyPrograms { const constructorOptions = { ...options, client } if (!isSeamHttpOptionsWithClient(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing client') } - return new SeamHttpNetworks(constructorOptions) + return new SeamHttpThermostatsDailyPrograms(constructorOptions) } static fromApiKey( apiKey: SeamHttpOptionsWithApiKey['apiKey'], options: Omit = {}, - ): SeamHttpNetworks { + ): SeamHttpThermostatsDailyPrograms { const constructorOptions = { ...options, apiKey } if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing apiKey') } - return new SeamHttpNetworks(constructorOptions) + return new SeamHttpThermostatsDailyPrograms(constructorOptions) } static fromClientSessionToken( @@ -74,19 +74,19 @@ export class SeamHttpNetworks { SeamHttpOptionsWithClientSessionToken, 'clientSessionToken' > = {}, - ): SeamHttpNetworks { + ): SeamHttpThermostatsDailyPrograms { const constructorOptions = { ...options, clientSessionToken } if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') } - return new SeamHttpNetworks(constructorOptions) + return new SeamHttpThermostatsDailyPrograms(constructorOptions) } static async fromPublishableKey( publishableKey: string, userIdentifierKey: string, options: SeamHttpFromPublishableKeyOptions = {}, - ): Promise { + ): Promise { warnOnInsecureuserIdentifierKey(userIdentifierKey) const clientOptions = parseOptions({ ...options, publishableKey }) if (isSeamHttpOptionsWithClient(clientOptions)) { @@ -99,7 +99,10 @@ export class SeamHttpNetworks { const { token } = await clientSessions.getOrCreate({ user_identifier_key: userIdentifierKey, }) - return SeamHttpNetworks.fromClientSessionToken(token, options) + return SeamHttpThermostatsDailyPrograms.fromClientSessionToken( + token, + options, + ) } static fromConsoleSessionToken( @@ -109,14 +112,14 @@ export class SeamHttpNetworks { SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId' > = {}, - ): SeamHttpNetworks { + ): SeamHttpThermostatsDailyPrograms { const constructorOptions = { ...options, consoleSessionToken, workspaceId } if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing consoleSessionToken or workspaceId', ) } - return new SeamHttpNetworks(constructorOptions) + return new SeamHttpThermostatsDailyPrograms(constructorOptions) } static fromPersonalAccessToken( @@ -126,14 +129,14 @@ export class SeamHttpNetworks { SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId' > = {}, - ): SeamHttpNetworks { + ): SeamHttpThermostatsDailyPrograms { const constructorOptions = { ...options, personalAccessToken, workspaceId } if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing personalAccessToken or workspaceId', ) } - return new SeamHttpNetworks(constructorOptions) + return new SeamHttpThermostatsDailyPrograms(constructorOptions) } createPaginator( @@ -161,41 +164,71 @@ export class SeamHttpNetworks { await clientSessions.get() } - get( - body?: NetworksGetParams, - ): SeamHttpRequest { + create( + body?: ThermostatsDailyProgramsCreateBody, + ): SeamHttpRequest< + ThermostatsDailyProgramsCreateResponse, + 'thermostat_daily_program' + > { return new SeamHttpRequest(this, { - pathname: '/networks/get', + pathname: '/thermostats/daily_programs/create', method: 'post', body, - responseKey: 'network', + responseKey: 'thermostat_daily_program', }) } - list( - body?: NetworksListParams, - ): SeamHttpRequest { + delete( + body?: ThermostatsDailyProgramsDeleteParams, + ): SeamHttpRequest { return new SeamHttpRequest(this, { - pathname: '/networks/list', + pathname: '/thermostats/daily_programs/delete', method: 'post', body, - responseKey: 'networks', + responseKey: undefined, + }) + } + + update( + body?: ThermostatsDailyProgramsUpdateBody, + options: Pick = {}, + ): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/thermostats/daily_programs/update', + method: 'post', + body, + responseKey: 'action_attempt', + options, }) } } -export type NetworksGetParams = RouteRequestBody<'/networks/get'> +export type ThermostatsDailyProgramsCreateBody = + RouteRequestBody<'/thermostats/daily_programs/create'> -export type NetworksGetResponse = SetNonNullable< - Required> +export type ThermostatsDailyProgramsCreateResponse = SetNonNullable< + Required> > -export type NetworksGetOptions = never +export type ThermostatsDailyProgramsCreateOptions = never -export type NetworksListParams = RouteRequestBody<'/networks/list'> +export type ThermostatsDailyProgramsDeleteParams = + RouteRequestBody<'/thermostats/daily_programs/delete'> -export type NetworksListResponse = SetNonNullable< - Required> +export type ThermostatsDailyProgramsDeleteResponse = SetNonNullable< + Required> > -export type NetworksListOptions = never +export type ThermostatsDailyProgramsDeleteOptions = never + +export type ThermostatsDailyProgramsUpdateBody = + RouteRequestBody<'/thermostats/daily_programs/update'> + +export type ThermostatsDailyProgramsUpdateResponse = SetNonNullable< + Required> +> + +export type ThermostatsDailyProgramsUpdateOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> diff --git a/src/lib/seam/connect/routes/thermostats.ts b/src/lib/seam/connect/routes/thermostats.ts index 124e9899..5e9fe205 100644 --- a/src/lib/seam/connect/routes/thermostats.ts +++ b/src/lib/seam/connect/routes/thermostats.ts @@ -35,6 +35,7 @@ import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js' import type { SetNonNullable } from 'lib/types.js' import { SeamHttpClientSessions } from './client-sessions.js' +import { SeamHttpThermostatsDailyPrograms } from './thermostats-daily-programs.js' import { SeamHttpThermostatsSchedules } from './thermostats-schedules.js' import { SeamHttpThermostatsSimulate } from './thermostats-simulate.js' @@ -171,6 +172,13 @@ export class SeamHttpThermostats { return SeamHttpThermostatsSimulate.fromClient(this.client, this.defaults) } + get dailyPrograms(): SeamHttpThermostatsDailyPrograms { + return SeamHttpThermostatsDailyPrograms.fromClient( + this.client, + this.defaults, + ) + } + activateClimatePreset( body?: ThermostatsActivateClimatePresetBody, options: Pick = {}, @@ -330,6 +338,19 @@ export class SeamHttpThermostats { responseKey: undefined, }) } + + updateWeeklyProgram( + body?: ThermostatsUpdateWeeklyProgramBody, + options: Pick = {}, + ): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/thermostats/update_weekly_program', + method: 'post', + body, + responseKey: 'action_attempt', + options, + }) + } } export type ThermostatsActivateClimatePresetBody = @@ -464,3 +485,15 @@ export type ThermostatsUpdateClimatePresetResponse = SetNonNullable< > export type ThermostatsUpdateClimatePresetOptions = never + +export type ThermostatsUpdateWeeklyProgramBody = + RouteRequestBody<'/thermostats/update_weekly_program'> + +export type ThermostatsUpdateWeeklyProgramResponse = SetNonNullable< + Required> +> + +export type ThermostatsUpdateWeeklyProgramOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> diff --git a/src/lib/seam/connect/routes/bridges.ts b/src/lib/seam/connect/routes/unstable-partner.ts similarity index 77% rename from src/lib/seam/connect/routes/bridges.ts rename to src/lib/seam/connect/routes/unstable-partner.ts index 7ed1e552..5c1e4908 100644 --- a/src/lib/seam/connect/routes/bridges.ts +++ b/src/lib/seam/connect/routes/unstable-partner.ts @@ -3,8 +3,6 @@ * Do not edit this file or add other files to this directory. */ -import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect' - import { getAuthHeadersForClientSessionToken, warnOnInsecureuserIdentifierKey, @@ -30,13 +28,12 @@ import { limitToSeamHttpRequestOptions, parseOptions, } from 'lib/seam/connect/parse-options.js' -import { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js' +import type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js' import { SeamPaginator } from 'lib/seam/connect/seam-paginator.js' -import type { SetNonNullable } from 'lib/types.js' import { SeamHttpClientSessions } from './client-sessions.js' -export class SeamHttpBridges { +export class SeamHttpUnstablePartner { client: Client readonly defaults: Required @@ -49,23 +46,23 @@ export class SeamHttpBridges { static fromClient( client: SeamHttpOptionsWithClient['client'], options: Omit = {}, - ): SeamHttpBridges { + ): SeamHttpUnstablePartner { const constructorOptions = { ...options, client } if (!isSeamHttpOptionsWithClient(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing client') } - return new SeamHttpBridges(constructorOptions) + return new SeamHttpUnstablePartner(constructorOptions) } static fromApiKey( apiKey: SeamHttpOptionsWithApiKey['apiKey'], options: Omit = {}, - ): SeamHttpBridges { + ): SeamHttpUnstablePartner { const constructorOptions = { ...options, apiKey } if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing apiKey') } - return new SeamHttpBridges(constructorOptions) + return new SeamHttpUnstablePartner(constructorOptions) } static fromClientSessionToken( @@ -74,19 +71,19 @@ export class SeamHttpBridges { SeamHttpOptionsWithClientSessionToken, 'clientSessionToken' > = {}, - ): SeamHttpBridges { + ): SeamHttpUnstablePartner { const constructorOptions = { ...options, clientSessionToken } if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') } - return new SeamHttpBridges(constructorOptions) + return new SeamHttpUnstablePartner(constructorOptions) } static async fromPublishableKey( publishableKey: string, userIdentifierKey: string, options: SeamHttpFromPublishableKeyOptions = {}, - ): Promise { + ): Promise { warnOnInsecureuserIdentifierKey(userIdentifierKey) const clientOptions = parseOptions({ ...options, publishableKey }) if (isSeamHttpOptionsWithClient(clientOptions)) { @@ -99,7 +96,7 @@ export class SeamHttpBridges { const { token } = await clientSessions.getOrCreate({ user_identifier_key: userIdentifierKey, }) - return SeamHttpBridges.fromClientSessionToken(token, options) + return SeamHttpUnstablePartner.fromClientSessionToken(token, options) } static fromConsoleSessionToken( @@ -109,14 +106,14 @@ export class SeamHttpBridges { SeamHttpOptionsWithConsoleSessionToken, 'consoleSessionToken' | 'workspaceId' > = {}, - ): SeamHttpBridges { + ): SeamHttpUnstablePartner { const constructorOptions = { ...options, consoleSessionToken, workspaceId } if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing consoleSessionToken or workspaceId', ) } - return new SeamHttpBridges(constructorOptions) + return new SeamHttpUnstablePartner(constructorOptions) } static fromPersonalAccessToken( @@ -126,14 +123,14 @@ export class SeamHttpBridges { SeamHttpOptionsWithPersonalAccessToken, 'personalAccessToken' | 'workspaceId' > = {}, - ): SeamHttpBridges { + ): SeamHttpUnstablePartner { const constructorOptions = { ...options, personalAccessToken, workspaceId } if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { throw new SeamHttpInvalidOptionsError( 'Missing personalAccessToken or workspaceId', ) } - return new SeamHttpBridges(constructorOptions) + return new SeamHttpUnstablePartner(constructorOptions) } createPaginator( @@ -160,40 +157,4 @@ export class SeamHttpBridges { const clientSessions = SeamHttpClientSessions.fromClient(this.client) await clientSessions.get() } - - get(body?: BridgesGetParams): SeamHttpRequest { - return new SeamHttpRequest(this, { - pathname: '/bridges/get', - method: 'post', - body, - responseKey: 'bridge', - }) - } - - list( - body?: BridgesListParams, - ): SeamHttpRequest { - return new SeamHttpRequest(this, { - pathname: '/bridges/list', - method: 'post', - body, - responseKey: 'bridges', - }) - } } - -export type BridgesGetParams = RouteRequestBody<'/bridges/get'> - -export type BridgesGetResponse = SetNonNullable< - Required> -> - -export type BridgesGetOptions = never - -export type BridgesListParams = RouteRequestBody<'/bridges/list'> - -export type BridgesListResponse = SetNonNullable< - Required> -> - -export type BridgesListOptions = never diff --git a/src/lib/seam/connect/routes/workspaces.ts b/src/lib/seam/connect/routes/workspaces.ts index ca0a735e..f89e2e4c 100644 --- a/src/lib/seam/connect/routes/workspaces.ts +++ b/src/lib/seam/connect/routes/workspaces.ts @@ -206,6 +206,15 @@ export class SeamHttpWorkspaces { options, }) } + + update(body?: WorkspacesUpdateBody): SeamHttpRequest { + return new SeamHttpRequest(this, { + pathname: '/workspaces/update', + method: 'post', + body, + responseKey: undefined, + }) + } } export type WorkspacesCreateBody = RouteRequestBody<'/workspaces/create'> @@ -243,3 +252,11 @@ export type WorkspacesResetSandboxOptions = Pick< SeamHttpRequestOptions, 'waitForActionAttempt' > + +export type WorkspacesUpdateBody = RouteRequestBody<'/workspaces/update'> + +export type WorkspacesUpdateResponse = SetNonNullable< + Required> +> + +export type WorkspacesUpdateOptions = never From 962f126a8acb3edaa660049880af230a9f9f236f Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Thu, 5 Jun 2025 16:33:12 -0700 Subject: [PATCH 4/5] Remove networks --- generate-routes.ts | 1 - src/lib/seam/connect/seam-http.ts | 5 ----- 2 files changed, 6 deletions(-) diff --git a/generate-routes.ts b/generate-routes.ts index fdf3a9f8..00efd377 100644 --- a/generate-routes.ts +++ b/generate-routes.ts @@ -61,7 +61,6 @@ const routePaths = [ '/events', '/locks', '/locks/simulate', - '/networks', '/noise_sensors', '/noise_sensors/noise_thresholds', '/noise_sensors/simulate', diff --git a/src/lib/seam/connect/seam-http.ts b/src/lib/seam/connect/seam-http.ts index a1fce845..450c6ef3 100644 --- a/src/lib/seam/connect/seam-http.ts +++ b/src/lib/seam/connect/seam-http.ts @@ -32,7 +32,6 @@ import { SeamHttpDevices, SeamHttpEvents, SeamHttpLocks, - SeamHttpNetworks, SeamHttpNoiseSensors, SeamHttpPhones, SeamHttpThermostats, @@ -206,10 +205,6 @@ export class SeamHttp { return SeamHttpLocks.fromClient(this.client, this.defaults) } - get networks(): SeamHttpNetworks { - return SeamHttpNetworks.fromClient(this.client, this.defaults) - } - get noiseSensors(): SeamHttpNoiseSensors { return SeamHttpNoiseSensors.fromClient(this.client, this.defaults) } From c17a69c320387f49961f9bfc76d708d66d462ec6 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Thu, 5 Jun 2025 16:38:04 -0700 Subject: [PATCH 5/5] Filter networks --- generate-routes.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/generate-routes.ts b/generate-routes.ts index 00efd377..bb9d5b9a 100644 --- a/generate-routes.ts +++ b/generate-routes.ts @@ -140,6 +140,7 @@ const createRoutes = (): Route[] => { !routePaths.some((routePath) => isEndpointUnderRoute(path, routePath)), ) .filter((path) => !path.startsWith('/seam')) + .filter((path) => !path.startsWith('/networks')) if (unmatchedEndpointPaths.length > 0) { throw new Error(