From 26a07e44df22213b9ace532b137da55f70ddfe8b Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 28 Jul 2025 13:07:00 +0000 Subject: [PATCH 1/2] feat: Update to @seamapi/types@1.475.0 --- package-lock.json | 8 +- package.json | 2 +- .../connect/routes/seam-http-endpoints.ts | 110 ++++++ .../customization-profiles.ts | 361 ++++++++++++++++++ .../customization-profiles/index.ts | 6 + .../seam/connect/routes/workspaces/index.ts | 1 + .../connect/routes/workspaces/workspaces.ts | 9 + 7 files changed, 492 insertions(+), 5 deletions(-) create mode 100644 src/lib/seam/connect/routes/workspaces/customization-profiles/customization-profiles.ts create mode 100644 src/lib/seam/connect/routes/workspaces/customization-profiles/index.ts diff --git a/package-lock.json b/package-lock.json index a0cde072..ea678d2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@seamapi/blueprint": "^0.51.1", "@seamapi/fake-seam-connect": "^1.77.0", "@seamapi/smith": "^0.4.4", - "@seamapi/types": "1.473.0", + "@seamapi/types": "1.475.0", "@swc/core": "^1.11.29", "@types/eslint": "^8.44.2", "@types/jsonwebtoken": "^9.0.6", @@ -1216,9 +1216,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.473.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.473.0.tgz", - "integrity": "sha512-xUSs5I4qFQaB8N3WUjZ7sd1+d/g27KZe0ovcHolusXOTQXrNuUd1UROBBFfN5dNOvKUT0kkhg3z7JhHUxZIPuA==", + "version": "1.475.0", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.475.0.tgz", + "integrity": "sha512-RN4whGBFxRrKDpmYfWJmV9oaFN1xh72VuKwgtDaoX4ENuYGHB49uul5EMfyO0+/VXrgnrtLXzWa3DnDPPVTrFg==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 38118eff..26bafdd1 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@seamapi/blueprint": "^0.51.1", "@seamapi/fake-seam-connect": "^1.77.0", "@seamapi/smith": "^0.4.4", - "@seamapi/types": "1.473.0", + "@seamapi/types": "1.475.0", "@swc/core": "^1.11.29", "@types/eslint": "^8.44.2", "@types/jsonwebtoken": "^9.0.6", diff --git a/src/lib/seam/connect/routes/seam-http-endpoints.ts b/src/lib/seam/connect/routes/seam-http-endpoints.ts index bf85560d..dc22ed0d 100644 --- a/src/lib/seam/connect/routes/seam-http-endpoints.ts +++ b/src/lib/seam/connect/routes/seam-http-endpoints.ts @@ -797,6 +797,24 @@ import { type WebhooksUpdateParameters, type WebhooksUpdateRequest, } from './webhooks/index.js' +import { + SeamHttpWorkspacesCustomizationProfiles, + type WorkspacesCustomizationProfilesCreateOptions, + type WorkspacesCustomizationProfilesCreateParameters, + type WorkspacesCustomizationProfilesCreateRequest, + type WorkspacesCustomizationProfilesGetOptions, + type WorkspacesCustomizationProfilesGetParameters, + type WorkspacesCustomizationProfilesGetRequest, + type WorkspacesCustomizationProfilesListOptions, + type WorkspacesCustomizationProfilesListParameters, + type WorkspacesCustomizationProfilesListRequest, + type WorkspacesCustomizationProfilesUpdateOptions, + type WorkspacesCustomizationProfilesUpdateParameters, + type WorkspacesCustomizationProfilesUpdateRequest, + type WorkspacesCustomizationProfilesUploadImagesOptions, + type WorkspacesCustomizationProfilesUploadImagesParameters, + type WorkspacesCustomizationProfilesUploadImagesRequest, +} from './workspaces/customization-profiles/index.js' import { SeamHttpWorkspaces, type WorkspacesCreateOptions, @@ -3920,6 +3938,93 @@ export class SeamHttpEndpoints { return seam.update(...args) } } + + get ['/workspaces/customization_profiles/create'](): ( + parameters?: WorkspacesCustomizationProfilesCreateParameters, + options?: WorkspacesCustomizationProfilesCreateOptions, + ) => WorkspacesCustomizationProfilesCreateRequest { + const { client, defaults } = this + return function workspacesCustomizationProfilesCreate( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpWorkspacesCustomizationProfiles.fromClient( + client, + defaults, + ) + return seam.create(...args) + } + } + + get ['/workspaces/customization_profiles/get'](): ( + parameters?: WorkspacesCustomizationProfilesGetParameters, + options?: WorkspacesCustomizationProfilesGetOptions, + ) => WorkspacesCustomizationProfilesGetRequest { + const { client, defaults } = this + return function workspacesCustomizationProfilesGet( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpWorkspacesCustomizationProfiles.fromClient( + client, + defaults, + ) + return seam.get(...args) + } + } + + get ['/workspaces/customization_profiles/list'](): ( + parameters?: WorkspacesCustomizationProfilesListParameters, + options?: WorkspacesCustomizationProfilesListOptions, + ) => WorkspacesCustomizationProfilesListRequest { + const { client, defaults } = this + return function workspacesCustomizationProfilesList( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpWorkspacesCustomizationProfiles.fromClient( + client, + defaults, + ) + return seam.list(...args) + } + } + + get ['/workspaces/customization_profiles/update'](): ( + parameters?: WorkspacesCustomizationProfilesUpdateParameters, + options?: WorkspacesCustomizationProfilesUpdateOptions, + ) => WorkspacesCustomizationProfilesUpdateRequest { + const { client, defaults } = this + return function workspacesCustomizationProfilesUpdate( + ...args: Parameters + ): ReturnType { + const seam = SeamHttpWorkspacesCustomizationProfiles.fromClient( + client, + defaults, + ) + return seam.update(...args) + } + } + + get ['/workspaces/customization_profiles/upload_images'](): ( + parameters?: WorkspacesCustomizationProfilesUploadImagesParameters, + options?: WorkspacesCustomizationProfilesUploadImagesOptions, + ) => WorkspacesCustomizationProfilesUploadImagesRequest { + const { client, defaults } = this + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return function workspacesCustomizationProfilesUploadImages( + ...args: Parameters< + SeamHttpWorkspacesCustomizationProfiles['uploadImages'] + > + ): ReturnType { + const seam = SeamHttpWorkspacesCustomizationProfiles.fromClient( + client, + defaults, + ) + return seam.uploadImages(...args) + } + } } export type SeamHttpEndpointQueryPaths = @@ -4012,6 +4117,8 @@ export type SeamHttpEndpointQueryPaths = | '/workspaces/find_resources' | '/workspaces/get' | '/workspaces/list' + | '/workspaces/customization_profiles/get' + | '/workspaces/customization_profiles/list' export type SeamHttpEndpointPaginatedQueryPaths = | '/access_codes/list' @@ -4144,3 +4251,6 @@ export type SeamHttpEndpointMutationPaths = | '/workspaces/create' | '/workspaces/reset_sandbox' | '/workspaces/update' + | '/workspaces/customization_profiles/create' + | '/workspaces/customization_profiles/update' + | '/workspaces/customization_profiles/upload_images' diff --git a/src/lib/seam/connect/routes/workspaces/customization-profiles/customization-profiles.ts b/src/lib/seam/connect/routes/workspaces/customization-profiles/customization-profiles.ts new file mode 100644 index 00000000..1db151ae --- /dev/null +++ b/src/lib/seam/connect/routes/workspaces/customization-profiles/customization-profiles.ts @@ -0,0 +1,361 @@ +/* + * Automatically generated by codegen/smith.ts. + * Do not edit this file or add other files to this directory. + */ + +import type { + RouteRequestBody, + RouteRequestParams, + 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 SeamHttpWorkspacesCustomizationProfiles { + client: Client + readonly defaults: Required + readonly ltsVersion = seamApiLtsVersion + static ltsVersion = seamApiLtsVersion + + constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) { + const options = parseOptions(apiKeyOrOptions) + this.client = 'client' in options ? options.client : createClient(options) + this.defaults = limitToSeamHttpRequestOptions(options) + } + + static fromClient( + client: SeamHttpOptionsWithClient['client'], + options: Omit = {}, + ): SeamHttpWorkspacesCustomizationProfiles { + const constructorOptions = { ...options, client } + if (!isSeamHttpOptionsWithClient(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing client') + } + return new SeamHttpWorkspacesCustomizationProfiles(constructorOptions) + } + + static fromApiKey( + apiKey: SeamHttpOptionsWithApiKey['apiKey'], + options: Omit = {}, + ): SeamHttpWorkspacesCustomizationProfiles { + const constructorOptions = { ...options, apiKey } + if (!isSeamHttpOptionsWithApiKey(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing apiKey') + } + return new SeamHttpWorkspacesCustomizationProfiles(constructorOptions) + } + + static fromClientSessionToken( + clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], + options: Omit< + SeamHttpOptionsWithClientSessionToken, + 'clientSessionToken' + > = {}, + ): SeamHttpWorkspacesCustomizationProfiles { + const constructorOptions = { ...options, clientSessionToken } + if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError('Missing clientSessionToken') + } + return new SeamHttpWorkspacesCustomizationProfiles(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 SeamHttpWorkspacesCustomizationProfiles.fromPublishableKey', + ) + } + const client = createClient(clientOptions) + const clientSessions = SeamHttpClientSessions.fromClient(client) + const { token } = await clientSessions.getOrCreate({ + user_identifier_key: userIdentifierKey, + }) + return SeamHttpWorkspacesCustomizationProfiles.fromClientSessionToken( + token, + options, + ) + } + + static fromConsoleSessionToken( + consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], + workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithConsoleSessionToken, + 'consoleSessionToken' | 'workspaceId' + > = {}, + ): SeamHttpWorkspacesCustomizationProfiles { + const constructorOptions = { ...options, consoleSessionToken, workspaceId } + if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing consoleSessionToken or workspaceId', + ) + } + return new SeamHttpWorkspacesCustomizationProfiles(constructorOptions) + } + + static fromPersonalAccessToken( + personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], + workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], + options: Omit< + SeamHttpOptionsWithPersonalAccessToken, + 'personalAccessToken' | 'workspaceId' + > = {}, + ): SeamHttpWorkspacesCustomizationProfiles { + const constructorOptions = { ...options, personalAccessToken, workspaceId } + if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) { + throw new SeamHttpInvalidOptionsError( + 'Missing personalAccessToken or workspaceId', + ) + } + return new SeamHttpWorkspacesCustomizationProfiles(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?: WorkspacesCustomizationProfilesCreateParameters, + options: WorkspacesCustomizationProfilesCreateOptions = {}, + ): WorkspacesCustomizationProfilesCreateRequest { + return new SeamHttpRequest(this, { + pathname: '/workspaces/customization_profiles/create', + method: 'POST', + body: parameters, + responseKey: 'customization_profile', + options, + }) + } + + get( + parameters?: WorkspacesCustomizationProfilesGetParameters, + options: WorkspacesCustomizationProfilesGetOptions = {}, + ): WorkspacesCustomizationProfilesGetRequest { + return new SeamHttpRequest(this, { + pathname: '/workspaces/customization_profiles/get', + method: 'POST', + body: parameters, + responseKey: 'customization_profile', + options, + }) + } + + list( + parameters?: WorkspacesCustomizationProfilesListParameters, + options: WorkspacesCustomizationProfilesListOptions = {}, + ): WorkspacesCustomizationProfilesListRequest { + return new SeamHttpRequest(this, { + pathname: '/workspaces/customization_profiles/list', + method: 'GET', + params: parameters, + responseKey: 'customization_profiles', + options, + }) + } + + update( + parameters?: WorkspacesCustomizationProfilesUpdateParameters, + options: WorkspacesCustomizationProfilesUpdateOptions = {}, + ): WorkspacesCustomizationProfilesUpdateRequest { + return new SeamHttpRequest(this, { + pathname: '/workspaces/customization_profiles/update', + method: 'PATCH', + body: parameters, + responseKey: undefined, + options, + }) + } + + uploadImages( + parameters?: WorkspacesCustomizationProfilesUploadImagesParameters, + options: WorkspacesCustomizationProfilesUploadImagesOptions = {}, + ): WorkspacesCustomizationProfilesUploadImagesRequest { + if (!this.defaults.isUndocumentedApiEnabled) { + throw new Error( + 'Cannot use undocumented API without isUndocumentedApiEnabled', + ) + } + return new SeamHttpRequest(this, { + pathname: '/workspaces/customization_profiles/upload_images', + method: 'POST', + body: parameters, + responseKey: undefined, + options, + }) + } +} + +export type WorkspacesCustomizationProfilesCreateParameters = + RouteRequestBody<'/workspaces/customization_profiles/create'> + +/** + * @deprecated Use WorkspacesCustomizationProfilesCreateParameters instead. + */ +export type WorkspacesCustomizationProfilesCreateBody = + WorkspacesCustomizationProfilesCreateParameters + +/** + * @deprecated Use WorkspacesCustomizationProfilesCreateRequest instead. + */ +export type WorkspacesCustomizationProfilesCreateResponse = SetNonNullable< + Required> +> + +export type WorkspacesCustomizationProfilesCreateRequest = SeamHttpRequest< + WorkspacesCustomizationProfilesCreateResponse, + 'customization_profile' +> + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface WorkspacesCustomizationProfilesCreateOptions {} + +export type WorkspacesCustomizationProfilesGetParameters = + RouteRequestBody<'/workspaces/customization_profiles/get'> + +/** + * @deprecated Use WorkspacesCustomizationProfilesGetParameters instead. + */ +export type WorkspacesCustomizationProfilesGetParams = + WorkspacesCustomizationProfilesGetParameters + +/** + * @deprecated Use WorkspacesCustomizationProfilesGetRequest instead. + */ +export type WorkspacesCustomizationProfilesGetResponse = SetNonNullable< + Required> +> + +export type WorkspacesCustomizationProfilesGetRequest = SeamHttpRequest< + WorkspacesCustomizationProfilesGetResponse, + 'customization_profile' +> + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface WorkspacesCustomizationProfilesGetOptions {} + +export type WorkspacesCustomizationProfilesListParameters = + RouteRequestParams<'/workspaces/customization_profiles/list'> + +/** + * @deprecated Use WorkspacesCustomizationProfilesListParameters instead. + */ +export type WorkspacesCustomizationProfilesListParams = + WorkspacesCustomizationProfilesListParameters + +/** + * @deprecated Use WorkspacesCustomizationProfilesListRequest instead. + */ +export type WorkspacesCustomizationProfilesListResponse = SetNonNullable< + Required> +> + +export type WorkspacesCustomizationProfilesListRequest = SeamHttpRequest< + WorkspacesCustomizationProfilesListResponse, + 'customization_profiles' +> + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface WorkspacesCustomizationProfilesListOptions {} + +export type WorkspacesCustomizationProfilesUpdateParameters = + RouteRequestBody<'/workspaces/customization_profiles/update'> + +/** + * @deprecated Use WorkspacesCustomizationProfilesUpdateParameters instead. + */ +export type WorkspacesCustomizationProfilesUpdateBody = + WorkspacesCustomizationProfilesUpdateParameters + +/** + * @deprecated Use WorkspacesCustomizationProfilesUpdateRequest instead. + */ +export type WorkspacesCustomizationProfilesUpdateResponse = SetNonNullable< + Required> +> + +export type WorkspacesCustomizationProfilesUpdateRequest = SeamHttpRequest< + void, + undefined +> + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface WorkspacesCustomizationProfilesUpdateOptions {} + +export type WorkspacesCustomizationProfilesUploadImagesParameters = + RouteRequestBody<'/workspaces/customization_profiles/upload_images'> + +/** + * @deprecated Use WorkspacesCustomizationProfilesUploadImagesParameters instead. + */ +export type WorkspacesCustomizationProfilesUploadImagesBody = + WorkspacesCustomizationProfilesUploadImagesParameters + +/** + * @deprecated Use WorkspacesCustomizationProfilesUploadImagesRequest instead. + */ +export type WorkspacesCustomizationProfilesUploadImagesResponse = + SetNonNullable< + Required> + > + +export type WorkspacesCustomizationProfilesUploadImagesRequest = + SeamHttpRequest + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface WorkspacesCustomizationProfilesUploadImagesOptions {} diff --git a/src/lib/seam/connect/routes/workspaces/customization-profiles/index.ts b/src/lib/seam/connect/routes/workspaces/customization-profiles/index.ts new file mode 100644 index 00000000..b66419e4 --- /dev/null +++ b/src/lib/seam/connect/routes/workspaces/customization-profiles/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 './customization-profiles.js' diff --git a/src/lib/seam/connect/routes/workspaces/index.ts b/src/lib/seam/connect/routes/workspaces/index.ts index b420eebf..3c0fdf26 100644 --- a/src/lib/seam/connect/routes/workspaces/index.ts +++ b/src/lib/seam/connect/routes/workspaces/index.ts @@ -3,4 +3,5 @@ * Do not edit this file or add other files to this directory. */ +export * from './customization-profiles/index.js' export * from './workspaces.js' diff --git a/src/lib/seam/connect/routes/workspaces/workspaces.ts b/src/lib/seam/connect/routes/workspaces/workspaces.ts index b529027e..96d3d7f8 100644 --- a/src/lib/seam/connect/routes/workspaces/workspaces.ts +++ b/src/lib/seam/connect/routes/workspaces/workspaces.ts @@ -40,6 +40,8 @@ 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 { SeamHttpWorkspacesCustomizationProfiles } from './customization-profiles/index.js' + export class SeamHttpWorkspaces { client: Client readonly defaults: Required @@ -167,6 +169,13 @@ export class SeamHttpWorkspaces { await clientSessions.get() } + get customizationProfiles(): SeamHttpWorkspacesCustomizationProfiles { + return SeamHttpWorkspacesCustomizationProfiles.fromClient( + this.client, + this.defaults, + ) + } + create( parameters?: WorkspacesCreateParameters, options: WorkspacesCreateOptions = {}, From cbe88f513c1201ec17abac7899c24faeaa76fadc Mon Sep 17 00:00:00 2001 From: Seam Bot Date: Mon, 28 Jul 2025 13:08:36 +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 ea678d2b..5656358b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "npm": ">=10.1.0" }, "peerDependencies": { - "@seamapi/types": "^1.473.0" + "@seamapi/types": "^1.475.0" }, "peerDependenciesMeta": { "@seamapi/types": { diff --git a/package.json b/package.json index 26bafdd1..a723f9d1 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "npm": ">=10.1.0" }, "peerDependencies": { - "@seamapi/types": "^1.473.0" + "@seamapi/types": "^1.475.0" }, "peerDependenciesMeta": { "@seamapi/types": {