From e52466d9d16ae8b6815da8748f397d7b5c7d58d3 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 18 Jun 2026 17:52:54 +0000 Subject: [PATCH 1/2] feat: Update to @seamapi/types@1.898.0 --- package-lock.json | 8 +- package.json | 2 +- .../routes/access-methods/access-methods.ts | 76 ++++ .../connect/routes/acs/encoders/encoders.ts | 39 +++ .../connect/routes/seam-http-endpoints.ts | 170 +++++++++ .../connect/routes/seam/console/v1/index.ts | 1 + .../routes/seam/console/v1/sites/index.ts | 6 + .../routes/seam/console/v1/sites/sites.ts | 327 ++++++++++++++++++ .../seam/connect/routes/seam/console/v1/v1.ts | 5 + .../seam/customer/v1/connectors/connectors.ts | 8 + .../external-sites/external-sites.ts | 214 ++++++++++++ .../v1/connectors/external-sites/index.ts | 6 + .../seam/customer/v1/connectors/index.ts | 1 + 13 files changed, 858 insertions(+), 5 deletions(-) create mode 100644 src/lib/seam/connect/routes/seam/console/v1/sites/index.ts create mode 100644 src/lib/seam/connect/routes/seam/console/v1/sites/sites.ts create mode 100644 src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/external-sites.ts create mode 100644 src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/index.ts diff --git a/package-lock.json b/package-lock.json index 9c0eb19e..2058c225 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@seamapi/blueprint": "^0.52.2", "@seamapi/fake-seam-connect": "^1.77.0", "@seamapi/smith": "^0.5.2", - "@seamapi/types": "1.819.0", + "@seamapi/types": "1.898.0", "@swc/core": "^1.11.29", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^24.10.9", @@ -1405,9 +1405,9 @@ "license": "MIT" }, "node_modules/@seamapi/types": { - "version": "1.819.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.819.0.tgz", - "integrity": "sha512-CQTtEL2BzlP290k1wB1D358wmMTXcamhp8E5hSZWs5kbIyU+rk5Pin6az9jx3ediUHltnDsxTWUKs7nxV6wMfg==", + "version": "1.898.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.898.0.tgz", + "integrity": "sha512-vYPJnxKck9G4EkoYfH7Jj4Z8QCw2rp6A33Van8b0Kw7J+5h9x7zFfTt3zfgDjeyAzaHRGdBf89WJgSubu9IQiA==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 91834a80..92973832 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "@seamapi/blueprint": "^0.52.2", "@seamapi/fake-seam-connect": "^1.77.0", "@seamapi/smith": "^0.5.2", - "@seamapi/types": "1.819.0", + "@seamapi/types": "1.898.0", "@swc/core": "^1.11.29", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^24.10.9", diff --git a/src/lib/seam/connect/routes/access-methods/access-methods.ts b/src/lib/seam/connect/routes/access-methods/access-methods.ts index 9f9e69fc..ebffd603 100644 --- a/src/lib/seam/connect/routes/access-methods/access-methods.ts +++ b/src/lib/seam/connect/routes/access-methods/access-methods.ts @@ -173,6 +173,19 @@ export class SeamHttpAccessMethods { return SeamHttpAccessMethodsUnmanaged.fromClient(this.client, this.defaults) } + assignCard( + parameters?: AccessMethodsAssignCardParameters, + options: AccessMethodsAssignCardOptions = {}, + ): AccessMethodsAssignCardRequest { + return new SeamHttpRequest(this, { + pathname: '/access_methods/assign_card', + method: 'POST', + body: parameters, + responseKey: 'action_attempt', + options, + }) + } + delete( parameters?: AccessMethodsDeleteParameters, options: AccessMethodsDeleteOptions = {}, @@ -237,8 +250,46 @@ export class SeamHttpAccessMethods { options, }) } + + unlockDoor( + parameters?: AccessMethodsUnlockDoorParameters, + options: AccessMethodsUnlockDoorOptions = {}, + ): AccessMethodsUnlockDoorRequest { + return new SeamHttpRequest(this, { + pathname: '/access_methods/unlock_door', + method: 'POST', + body: parameters, + responseKey: 'action_attempt', + options, + }) + } } +export type AccessMethodsAssignCardParameters = + RouteRequestBody<'/access_methods/assign_card'> + +/** + * @deprecated Use AccessMethodsAssignCardParameters instead. + */ +export type AccessMethodsAssignCardBody = AccessMethodsAssignCardParameters + +/** + * @deprecated Use AccessMethodsAssignCardRequest instead. + */ +export type AccessMethodsAssignCardResponse = SetNonNullable< + Required> +> + +export type AccessMethodsAssignCardRequest = SeamHttpRequest< + AccessMethodsAssignCardResponse, + 'action_attempt' +> + +export type AccessMethodsAssignCardOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> + export type AccessMethodsDeleteParameters = RouteRequestParams<'/access_methods/delete'> @@ -347,3 +398,28 @@ export type AccessMethodsListRequest = SeamHttpRequest< > export interface AccessMethodsListOptions {} + +export type AccessMethodsUnlockDoorParameters = + RouteRequestBody<'/access_methods/unlock_door'> + +/** + * @deprecated Use AccessMethodsUnlockDoorParameters instead. + */ +export type AccessMethodsUnlockDoorBody = AccessMethodsUnlockDoorParameters + +/** + * @deprecated Use AccessMethodsUnlockDoorRequest instead. + */ +export type AccessMethodsUnlockDoorResponse = SetNonNullable< + Required> +> + +export type AccessMethodsUnlockDoorRequest = SeamHttpRequest< + AccessMethodsUnlockDoorResponse, + 'action_attempt' +> + +export type AccessMethodsUnlockDoorOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> diff --git a/src/lib/seam/connect/routes/acs/encoders/encoders.ts b/src/lib/seam/connect/routes/acs/encoders/encoders.ts index 57258d17..b2376897 100644 --- a/src/lib/seam/connect/routes/acs/encoders/encoders.ts +++ b/src/lib/seam/connect/routes/acs/encoders/encoders.ts @@ -224,6 +224,19 @@ export class SeamHttpAcsEncoders { options, }) } + + scanToAssignCredential( + parameters?: AcsEncodersScanToAssignCredentialParameters, + options: AcsEncodersScanToAssignCredentialOptions = {}, + ): AcsEncodersScanToAssignCredentialRequest { + return new SeamHttpRequest(this, { + pathname: '/acs/encoders/scan_to_assign_credential', + method: 'POST', + body: parameters, + responseKey: 'action_attempt', + options, + }) + } } export type AcsEncodersEncodeCredentialParameters = @@ -318,3 +331,29 @@ export type AcsEncodersScanCredentialOptions = Pick< SeamHttpRequestOptions, 'waitForActionAttempt' > + +export type AcsEncodersScanToAssignCredentialParameters = + RouteRequestBody<'/acs/encoders/scan_to_assign_credential'> + +/** + * @deprecated Use AcsEncodersScanToAssignCredentialParameters instead. + */ +export type AcsEncodersScanToAssignCredentialBody = + AcsEncodersScanToAssignCredentialParameters + +/** + * @deprecated Use AcsEncodersScanToAssignCredentialRequest instead. + */ +export type AcsEncodersScanToAssignCredentialResponse = SetNonNullable< + Required> +> + +export type AcsEncodersScanToAssignCredentialRequest = SeamHttpRequest< + AcsEncodersScanToAssignCredentialResponse, + 'action_attempt' +> + +export type AcsEncodersScanToAssignCredentialOptions = Pick< + SeamHttpRequestOptions, + 'waitForActionAttempt' +> diff --git a/src/lib/seam/connect/routes/seam-http-endpoints.ts b/src/lib/seam/connect/routes/seam-http-endpoints.ts index 935eeca5..83da0a0e 100644 --- a/src/lib/seam/connect/routes/seam-http-endpoints.ts +++ b/src/lib/seam/connect/routes/seam-http-endpoints.ts @@ -129,6 +129,9 @@ import { SeamHttpAccessGrantsUnmanaged, } from './access-grants/unmanaged/index.js' import { + type AccessMethodsAssignCardOptions, + type AccessMethodsAssignCardParameters, + type AccessMethodsAssignCardRequest, type AccessMethodsDeleteOptions, type AccessMethodsDeleteParameters, type AccessMethodsDeleteRequest, @@ -144,6 +147,9 @@ import { type AccessMethodsListOptions, type AccessMethodsListParameters, type AccessMethodsListRequest, + type AccessMethodsUnlockDoorOptions, + type AccessMethodsUnlockDoorParameters, + type AccessMethodsUnlockDoorRequest, SeamHttpAccessMethods, } from './access-methods/index.js' import { @@ -252,6 +258,9 @@ import { type AcsEncodersScanCredentialOptions, type AcsEncodersScanCredentialParameters, type AcsEncodersScanCredentialRequest, + type AcsEncodersScanToAssignCredentialOptions, + type AcsEncodersScanToAssignCredentialParameters, + type AcsEncodersScanToAssignCredentialRequest, SeamHttpAcsEncoders, } from './acs/encoders/index.js' import { @@ -602,6 +611,21 @@ import { type SeamConsoleV1GetResourceLocatorRequest, SeamHttpSeamConsoleV1, } from './seam/console/v1/index.js' +import { + type SeamConsoleV1SitesCreateOptions, + type SeamConsoleV1SitesCreateParameters, + type SeamConsoleV1SitesCreateRequest, + type SeamConsoleV1SitesDeleteOptions, + type SeamConsoleV1SitesDeleteParameters, + type SeamConsoleV1SitesDeleteRequest, + type SeamConsoleV1SitesListOptions, + type SeamConsoleV1SitesListParameters, + type SeamConsoleV1SitesListRequest, + type SeamConsoleV1SitesUpdateOptions, + type SeamConsoleV1SitesUpdateParameters, + type SeamConsoleV1SitesUpdateRequest, + SeamHttpSeamConsoleV1Sites, +} from './seam/console/v1/sites/index.js' import { type SeamConsoleV1TimelinesGetOptions, type SeamConsoleV1TimelinesGetParameters, @@ -647,6 +671,12 @@ import { type SeamCustomerV1ConnectorCustomersListRequest, SeamHttpSeamCustomerV1ConnectorCustomers, } from './seam/customer/v1/connector-customers/index.js' +import { + type SeamCustomerV1ConnectorsExternalSitesListOptions, + type SeamCustomerV1ConnectorsExternalSitesListParameters, + type SeamCustomerV1ConnectorsExternalSitesListRequest, + SeamHttpSeamCustomerV1ConnectorsExternalSites, +} from './seam/customer/v1/connectors/external-sites/index.js' import { type SeamCustomerV1ConnectorsIcalValidateConfigOptions, type SeamCustomerV1ConnectorsIcalValidateConfigParameters, @@ -1532,6 +1562,19 @@ export class SeamHttpEndpoints { } } + get '/access_methods/assign_card'(): ( + parameters?: AccessMethodsAssignCardParameters, + options?: AccessMethodsAssignCardOptions, + ) => AccessMethodsAssignCardRequest { + const { client, defaults } = this + return function accessMethodsAssignCard( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpAccessMethods.fromClient(client, defaults) + return seam.assignCard(...args) + } + } + get '/access_methods/delete'(): ( parameters?: AccessMethodsDeleteParameters, options?: AccessMethodsDeleteOptions, @@ -1597,6 +1640,19 @@ export class SeamHttpEndpoints { } } + get '/access_methods/unlock_door'(): ( + parameters?: AccessMethodsUnlockDoorParameters, + options?: AccessMethodsUnlockDoorOptions, + ) => AccessMethodsUnlockDoorRequest { + const { client, defaults } = this + return function accessMethodsUnlockDoor( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpAccessMethods.fromClient(client, defaults) + return seam.unlockDoor(...args) + } + } + get '/access_methods/unmanaged/get'(): ( parameters?: AccessMethodsUnmanagedGetParameters, options?: AccessMethodsUnmanagedGetOptions, @@ -2001,6 +2057,19 @@ export class SeamHttpEndpoints { } } + get '/acs/encoders/scan_to_assign_credential'(): ( + parameters?: AcsEncodersScanToAssignCredentialParameters, + options?: AcsEncodersScanToAssignCredentialOptions, + ) => AcsEncodersScanToAssignCredentialRequest { + const { client, defaults } = this + return function acsEncodersScanToAssignCredential( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpAcsEncoders.fromClient(client, defaults) + return seam.scanToAssignCredential(...args) + } + } + get '/acs/encoders/simulate/next_credential_encode_will_fail'(): ( parameters?: AcsEncodersSimulateNextCredentialEncodeWillFailParameters, options?: AcsEncodersSimulateNextCredentialEncodeWillFailOptions, @@ -3240,6 +3309,78 @@ export class SeamHttpEndpoints { } } + get '/seam/console/v1/sites/create'(): ( + parameters?: SeamConsoleV1SitesCreateParameters, + options?: SeamConsoleV1SitesCreateOptions, + ) => SeamConsoleV1SitesCreateRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function seamConsoleV1SitesCreate( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpSeamConsoleV1Sites.fromClient(client, defaults) + return seam.create(...args) + } + } + + get '/seam/console/v1/sites/delete'(): ( + parameters?: SeamConsoleV1SitesDeleteParameters, + options?: SeamConsoleV1SitesDeleteOptions, + ) => SeamConsoleV1SitesDeleteRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function seamConsoleV1SitesDelete( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpSeamConsoleV1Sites.fromClient(client, defaults) + return seam.delete(...args) + } + } + + get '/seam/console/v1/sites/list'(): ( + parameters?: SeamConsoleV1SitesListParameters, + options?: SeamConsoleV1SitesListOptions, + ) => SeamConsoleV1SitesListRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function seamConsoleV1SitesList( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpSeamConsoleV1Sites.fromClient(client, defaults) + return seam.list(...args) + } + } + + get '/seam/console/v1/sites/update'(): ( + parameters?: SeamConsoleV1SitesUpdateParameters, + options?: SeamConsoleV1SitesUpdateOptions, + ) => SeamConsoleV1SitesUpdateRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function seamConsoleV1SitesUpdate( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpSeamConsoleV1Sites.fromClient(client, defaults) + return seam.update(...args) + } + } + get '/seam/console/v1/timelines/get'(): ( parameters?: SeamConsoleV1TimelinesGetParameters, options?: SeamConsoleV1TimelinesGetOptions, @@ -3552,6 +3693,27 @@ export class SeamHttpEndpoints { } } + get '/seam/customer/v1/connectors/external_sites/list'(): ( + parameters?: SeamCustomerV1ConnectorsExternalSitesListParameters, + options?: SeamCustomerV1ConnectorsExternalSitesListOptions, + ) => SeamCustomerV1ConnectorsExternalSitesListRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function seamCustomerV1ConnectorsExternalSitesList( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpSeamCustomerV1ConnectorsExternalSites.fromClient( + client, + defaults, + ) + return seam.list(...args) + } + } + get '/seam/customer/v1/connectors/ical/validate-config'(): ( parameters?: SeamCustomerV1ConnectorsIcalValidateConfigParameters, options?: SeamCustomerV1ConnectorsIcalValidateConfigOptions, @@ -5213,6 +5375,7 @@ export type SeamHttpEndpointQueryPaths = | '/phones/get' | '/phones/list' | '/seam/console/v1/get_resource_locator' + | '/seam/console/v1/sites/list' | '/seam/console/v1/timelines/get' | '/seam/customer/v1/access_grants/list' | '/seam/customer/v1/automation_runs/list' @@ -5221,6 +5384,7 @@ export type SeamHttpEndpointQueryPaths = | '/seam/customer/v1/connectors/authorize' | '/seam/customer/v1/connectors/connector_types' | '/seam/customer/v1/connectors/list' + | '/seam/customer/v1/connectors/external_sites/list' | '/seam/customer/v1/customers/automations/get' | '/seam/customer/v1/customers/list' | '/seam/customer/v1/customers/me' @@ -5302,8 +5466,10 @@ export type SeamHttpEndpointMutationPaths = | '/access_grants/request_access_methods' | '/access_grants/update' | '/access_grants/unmanaged/update' + | '/access_methods/assign_card' | '/access_methods/delete' | '/access_methods/encode' + | '/access_methods/unlock_door' | '/acs/access_groups/add_user' | '/acs/access_groups/delete' | '/acs/access_groups/remove_user' @@ -5316,6 +5482,7 @@ export type SeamHttpEndpointMutationPaths = | '/acs/credentials/update' | '/acs/encoders/encode_credential' | '/acs/encoders/scan_credential' + | '/acs/encoders/scan_to_assign_credential' | '/acs/encoders/simulate/next_credential_encode_will_fail' | '/acs/encoders/simulate/next_credential_encode_will_succeed' | '/acs/encoders/simulate/next_credential_scan_will_fail' @@ -5368,6 +5535,9 @@ export type SeamHttpEndpointMutationPaths = | '/noise_sensors/simulate/trigger_noise_threshold' | '/phones/deactivate' | '/phones/simulate/create_sandbox_phone' + | '/seam/console/v1/sites/create' + | '/seam/console/v1/sites/delete' + | '/seam/console/v1/sites/update' | '/seam/customer/v1/access_grants/update' | '/seam/customer/v1/access_methods/encode' | '/seam/customer/v1/automations/delete' diff --git a/src/lib/seam/connect/routes/seam/console/v1/index.ts b/src/lib/seam/connect/routes/seam/console/v1/index.ts index 94c5b8e4..2a706f21 100644 --- a/src/lib/seam/connect/routes/seam/console/v1/index.ts +++ b/src/lib/seam/connect/routes/seam/console/v1/index.ts @@ -3,5 +3,6 @@ * Do not edit this file or add other files to this directory. */ +export * from './sites/index.js' export * from './timelines/index.js' export * from './v1.js' diff --git a/src/lib/seam/connect/routes/seam/console/v1/sites/index.ts b/src/lib/seam/connect/routes/seam/console/v1/sites/index.ts new file mode 100644 index 00000000..02d6dacc --- /dev/null +++ b/src/lib/seam/connect/routes/seam/console/v1/sites/index.ts @@ -0,0 +1,6 @@ +/* + * Automatically generated by codegen/smith.ts. + * Do not edit this file or add other files to this directory. + */ + +export * from './sites.js' diff --git a/src/lib/seam/connect/routes/seam/console/v1/sites/sites.ts b/src/lib/seam/connect/routes/seam/console/v1/sites/sites.ts new file mode 100644 index 00000000..535207db --- /dev/null +++ b/src/lib/seam/connect/routes/seam/console/v1/sites/sites.ts @@ -0,0 +1,327 @@ +/* + * Automatically generated by codegen/smith.ts. + * Do not edit this file or add other files to this directory. + */ + +import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect' + +import { seamApiLtsVersion } from 'lib/lts-version.js' +import { + getAuthHeadersForClientSessionToken, + warnOnInsecureuserIdentifierKey, +} from 'lib/seam/connect/auth.js' +import { type Client, createClient } from 'lib/seam/connect/client.js' +import { + isSeamHttpOptionsWithApiKey, + isSeamHttpOptionsWithClient, + isSeamHttpOptionsWithClientSessionToken, + isSeamHttpOptionsWithConsoleSessionToken, + isSeamHttpOptionsWithPersonalAccessToken, + type SeamHttpFromPublishableKeyOptions, + SeamHttpInvalidOptionsError, + type SeamHttpOptions, + type SeamHttpOptionsWithApiKey, + type SeamHttpOptionsWithClient, + type SeamHttpOptionsWithClientSessionToken, + type SeamHttpOptionsWithConsoleSessionToken, + type SeamHttpOptionsWithPersonalAccessToken, + type SeamHttpRequestOptions, +} from 'lib/seam/connect/options.js' +import { + limitToSeamHttpRequestOptions, + parseOptions, +} from 'lib/seam/connect/parse-options.js' +import { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js' +import { 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' + +export class SeamHttpSeamConsoleV1Sites { + client: Client + readonly defaults: Required + readonly ltsVersion = seamApiLtsVersion + static ltsVersion = seamApiLtsVersion + + constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) { + const options = parseOptions(apiKeyOrOptions) + if (!options.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + this.client = 'client' in options ? options.client : createClient(options) + this.defaults = limitToSeamHttpRequestOptions(options) + } + + static fromClient( + client: SeamHttpOptionsWithClient['client'], + options: Omit = {}, + ): SeamHttpSeamConsoleV1Sites { + const constructorOptions = { ...options, client } + if (!isSeamHttpOptionsWithClient(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing client') + } + return new SeamHttpSeamConsoleV1Sites(constructorOptions) + } + + static fromApiKey( + apiKey: SeamHttpOptionsWithApiKey['apiKey'], + options: Omit = {}, + ): SeamHttpSeamConsoleV1Sites { + const constructorOptions = { ...options, apiKey } + if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing apiKey') + } + return new SeamHttpSeamConsoleV1Sites(constructorOptions) + } + + static fromClientSessionToken( + clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], + options: Omit< + SeamHttpOptionsWithClientSessionToken, + 'clientSessionToken' + > = {}, + ): SeamHttpSeamConsoleV1Sites { + const constructorOptions = { ...options, clientSessionToken } + if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') + } + return new SeamHttpSeamConsoleV1Sites(constructorOptions) + } + + static async fromPublishableKey( + publishableKey: string, + userIdentifierKey: string, + options: SeamHttpFromPublishableKeyOptions = {}, + ): Promise { + warnOnInsecureuserIdentifierKey(userIdentifierKey) + const clientOptions = parseOptions({ ...options, publishableKey }) + if (isSeamHttpOptionsWithClient(clientOptions)) { + throw new SeamHttpInvalidOptionsError( + 'The client option cannot be used with SeamHttpSeamConsoleV1Sites.fromPublishableKey', + ) + } + const client = createClient(clientOptions) + const clientSessions = SeamHttpClientSessions.fromClient(client) + const { token } = await clientSessions.getOrCreate({ + user_identifier_key: userIdentifierKey, + }) + return SeamHttpSeamConsoleV1Sites.fromClientSessionToken(token, options) + } + + static fromConsoleSessionToken( + consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], + workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithConsoleSessionToken, + 'consoleSessionToken' | 'workspaceId' + > = {}, + ): SeamHttpSeamConsoleV1Sites { + const constructorOptions = { ...options, consoleSessionToken, workspaceId } + if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing consoleSessionToken or workspaceId', + ) + } + return new SeamHttpSeamConsoleV1Sites(constructorOptions) + } + + static fromPersonalAccessToken( + personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], + workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithPersonalAccessToken, + 'personalAccessToken' | 'workspaceId' + > = {}, + ): SeamHttpSeamConsoleV1Sites { + const constructorOptions = { ...options, personalAccessToken, workspaceId } + if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing personalAccessToken or workspaceId', + ) + } + return new SeamHttpSeamConsoleV1Sites(constructorOptions) + } + + createPaginator( + request: SeamHttpRequest, + ): SeamPaginator { + return new SeamPaginator(this, request) + } + + async updateClientSessionToken( + clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], + ): Promise { + const { headers } = this.client.defaults + const authHeaders = getAuthHeadersForClientSessionToken({ + clientSessionToken, + }) + for (const key of Object.keys(authHeaders)) { + if (headers[key] == null) { + throw new Error( + 'Cannot update a clientSessionToken on a client created without a clientSessionToken', + ) + } + } + this.client.defaults.headers = { ...headers, ...authHeaders } + const clientSessions = SeamHttpClientSessions.fromClient(this.client) + await clientSessions.get() + } + + create( + parameters?: SeamConsoleV1SitesCreateParameters, + options: SeamConsoleV1SitesCreateOptions = {}, + ): SeamConsoleV1SitesCreateRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/seam/console/v1/sites/create', + method: 'POST', + body: parameters, + responseKey: 'site', + options, + }) + } + + delete( + parameters?: SeamConsoleV1SitesDeleteParameters, + options: SeamConsoleV1SitesDeleteOptions = {}, + ): SeamConsoleV1SitesDeleteRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/seam/console/v1/sites/delete', + method: 'POST', + body: parameters, + responseKey: undefined, + options, + }) + } + + list( + parameters?: SeamConsoleV1SitesListParameters, + options: SeamConsoleV1SitesListOptions = {}, + ): SeamConsoleV1SitesListRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/seam/console/v1/sites/list', + method: 'POST', + body: parameters, + responseKey: 'sites', + options, + }) + } + + update( + parameters?: SeamConsoleV1SitesUpdateParameters, + options: SeamConsoleV1SitesUpdateOptions = {}, + ): SeamConsoleV1SitesUpdateRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/seam/console/v1/sites/update', + method: 'PATCH', + body: parameters, + responseKey: 'site', + options, + }) + } +} + +export type SeamConsoleV1SitesCreateParameters = + RouteRequestBody<'/seam/console/v1/sites/create'> + +/** + * @deprecated Use SeamConsoleV1SitesCreateParameters instead. + */ +export type SeamConsoleV1SitesCreateBody = SeamConsoleV1SitesCreateParameters + +/** + * @deprecated Use SeamConsoleV1SitesCreateRequest instead. + */ +export type SeamConsoleV1SitesCreateResponse = SetNonNullable< + Required> +> + +export type SeamConsoleV1SitesCreateRequest = SeamHttpRequest< + SeamConsoleV1SitesCreateResponse, + 'site' +> + +export interface SeamConsoleV1SitesCreateOptions {} + +export type SeamConsoleV1SitesDeleteParameters = + RouteRequestBody<'/seam/console/v1/sites/delete'> + +/** + * @deprecated Use SeamConsoleV1SitesDeleteParameters instead. + */ +export type SeamConsoleV1SitesDeleteParams = SeamConsoleV1SitesDeleteParameters + +/** + * @deprecated Use SeamConsoleV1SitesDeleteRequest instead. + */ +export type SeamConsoleV1SitesDeleteResponse = SetNonNullable< + Required> +> + +export type SeamConsoleV1SitesDeleteRequest = SeamHttpRequest + +export interface SeamConsoleV1SitesDeleteOptions {} + +export type SeamConsoleV1SitesListParameters = + RouteRequestBody<'/seam/console/v1/sites/list'> + +/** + * @deprecated Use SeamConsoleV1SitesListParameters instead. + */ +export type SeamConsoleV1SitesListParams = SeamConsoleV1SitesListParameters + +/** + * @deprecated Use SeamConsoleV1SitesListRequest instead. + */ +export type SeamConsoleV1SitesListResponse = SetNonNullable< + Required> +> + +export type SeamConsoleV1SitesListRequest = SeamHttpRequest< + SeamConsoleV1SitesListResponse, + 'sites' +> + +export interface SeamConsoleV1SitesListOptions {} + +export type SeamConsoleV1SitesUpdateParameters = + RouteRequestBody<'/seam/console/v1/sites/update'> + +/** + * @deprecated Use SeamConsoleV1SitesUpdateParameters instead. + */ +export type SeamConsoleV1SitesUpdateBody = SeamConsoleV1SitesUpdateParameters + +/** + * @deprecated Use SeamConsoleV1SitesUpdateRequest instead. + */ +export type SeamConsoleV1SitesUpdateResponse = SetNonNullable< + Required> +> + +export type SeamConsoleV1SitesUpdateRequest = SeamHttpRequest< + SeamConsoleV1SitesUpdateResponse, + 'site' +> + +export interface SeamConsoleV1SitesUpdateOptions {} diff --git a/src/lib/seam/connect/routes/seam/console/v1/v1.ts b/src/lib/seam/connect/routes/seam/console/v1/v1.ts index 08c7da2a..278f3291 100644 --- a/src/lib/seam/connect/routes/seam/console/v1/v1.ts +++ b/src/lib/seam/connect/routes/seam/console/v1/v1.ts @@ -36,6 +36,7 @@ import { 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 { SeamHttpSeamConsoleV1Sites } from './sites/index.js' import { SeamHttpSeamConsoleV1Timelines } from './timelines/index.js' export class SeamHttpSeamConsoleV1 { @@ -170,6 +171,10 @@ export class SeamHttpSeamConsoleV1 { await clientSessions.get() } + get sites(): SeamHttpSeamConsoleV1Sites { + return SeamHttpSeamConsoleV1Sites.fromClient(this.client, this.defaults) + } + get timelines(): SeamHttpSeamConsoleV1Timelines { return SeamHttpSeamConsoleV1Timelines.fromClient(this.client, this.defaults) } diff --git a/src/lib/seam/connect/routes/seam/customer/v1/connectors/connectors.ts b/src/lib/seam/connect/routes/seam/customer/v1/connectors/connectors.ts index f73752db..f3845800 100644 --- a/src/lib/seam/connect/routes/seam/customer/v1/connectors/connectors.ts +++ b/src/lib/seam/connect/routes/seam/customer/v1/connectors/connectors.ts @@ -40,6 +40,7 @@ import { 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 { SeamHttpSeamCustomerV1ConnectorsExternalSites } from './external-sites/index.js' import { SeamHttpSeamCustomerV1ConnectorsIcal } from './ical/index.js' export class SeamHttpSeamCustomerV1Connectors { @@ -177,6 +178,13 @@ export class SeamHttpSeamCustomerV1Connectors { await clientSessions.get() } + get externalSites(): SeamHttpSeamCustomerV1ConnectorsExternalSites { + return SeamHttpSeamCustomerV1ConnectorsExternalSites.fromClient( + this.client, + this.defaults, + ) + } + get ical(): SeamHttpSeamCustomerV1ConnectorsIcal { return SeamHttpSeamCustomerV1ConnectorsIcal.fromClient( this.client, diff --git a/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/external-sites.ts b/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/external-sites.ts new file mode 100644 index 00000000..d226ce4c --- /dev/null +++ b/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/external-sites.ts @@ -0,0 +1,214 @@ +/* + * Automatically generated by codegen/smith.ts. + * Do not edit this file or add other files to this directory. + */ + +import type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect' + +import { seamApiLtsVersion } from 'lib/lts-version.js' +import { + getAuthHeadersForClientSessionToken, + warnOnInsecureuserIdentifierKey, +} from 'lib/seam/connect/auth.js' +import { type Client, createClient } from 'lib/seam/connect/client.js' +import { + isSeamHttpOptionsWithApiKey, + isSeamHttpOptionsWithClient, + isSeamHttpOptionsWithClientSessionToken, + isSeamHttpOptionsWithConsoleSessionToken, + isSeamHttpOptionsWithPersonalAccessToken, + type SeamHttpFromPublishableKeyOptions, + SeamHttpInvalidOptionsError, + type SeamHttpOptions, + type SeamHttpOptionsWithApiKey, + type SeamHttpOptionsWithClient, + type SeamHttpOptionsWithClientSessionToken, + type SeamHttpOptionsWithConsoleSessionToken, + type SeamHttpOptionsWithPersonalAccessToken, + type SeamHttpRequestOptions, +} from 'lib/seam/connect/options.js' +import { + limitToSeamHttpRequestOptions, + parseOptions, +} from 'lib/seam/connect/parse-options.js' +import { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js' +import { 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' + +export class SeamHttpSeamCustomerV1ConnectorsExternalSites { + client: Client + readonly defaults: Required + readonly ltsVersion = seamApiLtsVersion + static ltsVersion = seamApiLtsVersion + + constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) { + const options = parseOptions(apiKeyOrOptions) + if (!options.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + this.client = 'client' in options ? options.client : createClient(options) + this.defaults = limitToSeamHttpRequestOptions(options) + } + + static fromClient( + client: SeamHttpOptionsWithClient['client'], + options: Omit = {}, + ): SeamHttpSeamCustomerV1ConnectorsExternalSites { + const constructorOptions = { ...options, client } + if (!isSeamHttpOptionsWithClient(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing client') + } + return new SeamHttpSeamCustomerV1ConnectorsExternalSites(constructorOptions) + } + + static fromApiKey( + apiKey: SeamHttpOptionsWithApiKey['apiKey'], + options: Omit = {}, + ): SeamHttpSeamCustomerV1ConnectorsExternalSites { + const constructorOptions = { ...options, apiKey } + if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing apiKey') + } + return new SeamHttpSeamCustomerV1ConnectorsExternalSites(constructorOptions) + } + + static fromClientSessionToken( + clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], + options: Omit< + SeamHttpOptionsWithClientSessionToken, + 'clientSessionToken' + > = {}, + ): SeamHttpSeamCustomerV1ConnectorsExternalSites { + const constructorOptions = { ...options, clientSessionToken } + if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') + } + return new SeamHttpSeamCustomerV1ConnectorsExternalSites(constructorOptions) + } + + static async fromPublishableKey( + publishableKey: string, + userIdentifierKey: string, + options: SeamHttpFromPublishableKeyOptions = {}, + ): Promise { + warnOnInsecureuserIdentifierKey(userIdentifierKey) + const clientOptions = parseOptions({ ...options, publishableKey }) + if (isSeamHttpOptionsWithClient(clientOptions)) { + throw new SeamHttpInvalidOptionsError( + 'The client option cannot be used with SeamHttpSeamCustomerV1ConnectorsExternalSites.fromPublishableKey', + ) + } + const client = createClient(clientOptions) + const clientSessions = SeamHttpClientSessions.fromClient(client) + const { token } = await clientSessions.getOrCreate({ + user_identifier_key: userIdentifierKey, + }) + return SeamHttpSeamCustomerV1ConnectorsExternalSites.fromClientSessionToken( + token, + options, + ) + } + + static fromConsoleSessionToken( + consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], + workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithConsoleSessionToken, + 'consoleSessionToken' | 'workspaceId' + > = {}, + ): SeamHttpSeamCustomerV1ConnectorsExternalSites { + const constructorOptions = { ...options, consoleSessionToken, workspaceId } + if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing consoleSessionToken or workspaceId', + ) + } + return new SeamHttpSeamCustomerV1ConnectorsExternalSites(constructorOptions) + } + + static fromPersonalAccessToken( + personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], + workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithPersonalAccessToken, + 'personalAccessToken' | 'workspaceId' + > = {}, + ): SeamHttpSeamCustomerV1ConnectorsExternalSites { + const constructorOptions = { ...options, personalAccessToken, workspaceId } + if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing personalAccessToken or workspaceId', + ) + } + return new SeamHttpSeamCustomerV1ConnectorsExternalSites(constructorOptions) + } + + createPaginator( + request: SeamHttpRequest, + ): SeamPaginator { + return new SeamPaginator(this, request) + } + + async updateClientSessionToken( + clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], + ): Promise { + const { headers } = this.client.defaults + const authHeaders = getAuthHeadersForClientSessionToken({ + clientSessionToken, + }) + for (const key of Object.keys(authHeaders)) { + if (headers[key] == null) { + throw new Error( + 'Cannot update a clientSessionToken on a client created without a clientSessionToken', + ) + } + } + this.client.defaults.headers = { ...headers, ...authHeaders } + const clientSessions = SeamHttpClientSessions.fromClient(this.client) + await clientSessions.get() + } + + list( + parameters?: SeamCustomerV1ConnectorsExternalSitesListParameters, + options: SeamCustomerV1ConnectorsExternalSitesListOptions = {}, + ): SeamCustomerV1ConnectorsExternalSitesListRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/seam/customer/v1/connectors/external_sites/list', + method: 'POST', + body: parameters, + responseKey: 'external_sites', + options, + }) + } +} + +export type SeamCustomerV1ConnectorsExternalSitesListParameters = + RouteRequestBody<'/seam/customer/v1/connectors/external_sites/list'> + +/** + * @deprecated Use SeamCustomerV1ConnectorsExternalSitesListParameters instead. + */ +export type SeamCustomerV1ConnectorsExternalSitesListParams = + SeamCustomerV1ConnectorsExternalSitesListParameters + +/** + * @deprecated Use SeamCustomerV1ConnectorsExternalSitesListRequest instead. + */ +export type SeamCustomerV1ConnectorsExternalSitesListResponse = SetNonNullable< + Required> +> + +export type SeamCustomerV1ConnectorsExternalSitesListRequest = SeamHttpRequest< + SeamCustomerV1ConnectorsExternalSitesListResponse, + 'external_sites' +> + +export interface SeamCustomerV1ConnectorsExternalSitesListOptions {} diff --git a/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/index.ts b/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/index.ts new file mode 100644 index 00000000..82756159 --- /dev/null +++ b/src/lib/seam/connect/routes/seam/customer/v1/connectors/external-sites/index.ts @@ -0,0 +1,6 @@ +/* + * Automatically generated by codegen/smith.ts. + * Do not edit this file or add other files to this directory. + */ + +export * from './external-sites.js' diff --git a/src/lib/seam/connect/routes/seam/customer/v1/connectors/index.ts b/src/lib/seam/connect/routes/seam/customer/v1/connectors/index.ts index 08e965a8..5c96db36 100644 --- a/src/lib/seam/connect/routes/seam/customer/v1/connectors/index.ts +++ b/src/lib/seam/connect/routes/seam/customer/v1/connectors/index.ts @@ -4,4 +4,5 @@ */ export * from './connectors.js' +export * from './external-sites/index.js' export * from './ical/index.js' From 3aefe991b1e292f599ddb2aeca6cf34b05243452 Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Thu, 18 Jun 2026 17:54:19 +0000 Subject: [PATCH 2/2] ci: Generate code --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2058c225..3c430e19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,7 @@ "npm": ">=10.9.4" }, "peerDependencies": { - "@seamapi/types": "^1.819.0" + "@seamapi/types": "^1.898.0" }, "peerDependenciesMeta": { "@seamapi/types": { diff --git a/package.json b/package.json index 92973832..94031559 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "npm": ">=10.9.4" }, "peerDependencies": { - "@seamapi/types": "^1.819.0" + "@seamapi/types": "^1.898.0" }, "peerDependenciesMeta": { "@seamapi/types": {