@nvisy/sdk 0.11.0 → 0.13.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"services-CL2QOOlO.js","names":["#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api","#api"],"sources":["../src/services/account.ts","../src/services/activities.ts","../src/services/api-tokens.ts","../src/services/auth.ts","../src/services/connections.ts","../src/services/files.ts","../src/services/invites.ts","../src/services/members.ts","../src/services/notifications.ts","../src/services/pipelines.ts","../src/services/policies.ts","../src/services/runs.ts","../src/services/status.ts","../src/services/syncs.ts","../src/services/webhooks.ts","../src/services/workspaces.ts"],"sourcesContent":["import type { ApiClient } from \"@/client.js\";\nimport type {\n\tAccount as AccountData,\n\tPublicAccount,\n\tUpdateAccount,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling account operations\n */\nexport class Account {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Get the authenticated user's account details\n\t * @returns Promise that resolves with the account details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getAccount(): Promise<AccountData> {\n\t\tconst { data } = await this.#api.GET(\"/account/\");\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update the authenticated user's account details\n\t * @param updates - Account update request\n\t * @returns Promise that resolves with the updated account\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateAccount(updates: UpdateAccount): Promise<AccountData> {\n\t\tconst { data } = await this.#api.PATCH(\"/account/\", {\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete the authenticated user's account\n\t * @returns Promise that resolves when the account is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteAccount(): Promise<void> {\n\t\tawait this.#api.DELETE(\"/account/\");\n\t}\n\n\t/**\n\t * Get a public account profile by username\n\t * @param username - Account username\n\t * @returns Promise that resolves with the public account details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPublicAccount(username: string): Promise<PublicAccount> {\n\t\tconst { data } = await this.#api.GET(\"/accounts/{username}/\", {\n\t\t\tparams: { path: { username } },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Download an account's avatar image\n\t * @param username - Account username\n\t * @returns Promise that resolves with the avatar response\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getAvatar(username: string): Promise<Response> {\n\t\tconst { response } = await this.#api.GET(\"/accounts/{username}/avatar/\", {\n\t\t\tparams: { path: { username } },\n\t\t\tparseAs: \"stream\",\n\t\t});\n\t\treturn response;\n\t}\n\n\t/**\n\t * Upload an account's avatar image\n\t * @param username - Account username\n\t * @param avatar - Avatar image to upload\n\t * @returns Promise that resolves with the updated account\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync uploadAvatar(username: string, avatar: Blob): Promise<AccountData> {\n\t\tconst formData = new FormData();\n\t\tconst name = avatar instanceof File ? avatar.name : \"avatar\";\n\t\tformData.append(\"avatar\", avatar, name);\n\n\t\tconst { data } = await this.#api.PUT(\"/accounts/{username}/avatar/\", {\n\t\t\tparams: { path: { username } },\n\t\t\t// Schema types multipart as unknown[], but openapi-fetch needs FormData.\n\t\t\tbody: formData as unknown as unknown[],\n\t\t\tbodySerializer: (formData) => formData,\n\t\t\t// Remove Content-Type so browser sets multipart/form-data with boundary.\n\t\t\theaders: { \"Content-Type\": null } as unknown as HeadersInit,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete an account's avatar image\n\t * @param username - Account username\n\t * @returns Promise that resolves when the avatar is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteAvatar(username: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/accounts/{username}/avatar/\", {\n\t\t\tparams: { path: { username } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { ActivityPage, CursorPagination } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace activity operations\n */\nexport class Activities {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List activities for a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of activities\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listActivities(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<ActivityPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/activities/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tApiToken,\n\tApiTokenPage,\n\tApiTokenWithJWT,\n\tCreateApiToken,\n\tCursorPagination,\n\tUpdateApiToken,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling API token operations\n */\nexport class ApiTokens {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all API tokens for the authenticated account\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of API tokens\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listApiTokens(query?: CursorPagination): Promise<ApiTokenPage> {\n\t\tconst { data } = await this.#api.GET(\"/api-tokens/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a specific API token by token ID\n\t * @param tokenId - The token identifier\n\t * @returns Promise that resolves with the API token details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getApiToken(tokenId: string): Promise<ApiToken> {\n\t\tconst { data } = await this.#api.GET(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new API token\n\t * @param token - Token creation request\n\t * @returns Promise that resolves with the created token (includes JWT, shown only once)\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createApiToken(token: CreateApiToken): Promise<ApiTokenWithJWT> {\n\t\tconst { data } = await this.#api.POST(\"/api-tokens/\", {\n\t\t\tbody: token,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing API token\n\t * @param tokenId - The token identifier\n\t * @param updates - Token update request\n\t * @returns Promise that resolves with the updated token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateApiToken(\n\t\ttokenId: string,\n\t\tupdates: UpdateApiToken,\n\t): Promise<ApiToken> {\n\t\tconst { data } = await this.#api.PATCH(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Revoke an API token\n\t * @param tokenId - The token identifier\n\t * @returns Promise that resolves when the token is revoked\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync revokeApiToken(tokenId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/api-tokens/{tokenId}/\", {\n\t\t\tparams: { path: { tokenId } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { AuthToken, Login, Signup } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling authentication operations\n */\nexport class Auth {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Login with email and password\n\t * @param credentials - Login credentials\n\t * @returns Promise that resolves with the auth response containing access token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync loginAccount(credentials: Login): Promise<AuthToken> {\n\t\tconst { data } = await this.#api.POST(\"/auth/login/\", {\n\t\t\tbody: credentials,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Sign up a new account\n\t * @param credentials - Signup details\n\t * @returns Promise that resolves with the auth response containing access token\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync signupAccount(credentials: Signup): Promise<AuthToken> {\n\t\tconst { data } = await this.#api.POST(\"/auth/signup/\", {\n\t\t\tbody: credentials,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Logout and invalidate the current access token\n\t * @returns Promise that resolves when logout is complete\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync logoutAccount(): Promise<void> {\n\t\tawait this.#api.POST(\"/auth/logout/\");\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tConnection,\n\tConnectionPage,\n\tConnectionVerification,\n\tCreateConnection,\n\tCursorPagination,\n\tUpdateConnection,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling connection operations\n */\nexport class Connections {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List connections in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (provider, limit, after)\n\t * @returns Promise that resolves with a paginated list of connections\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listConnections(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { provider?: string[] },\n\t): Promise<ConnectionPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a connection in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param connection - Connection creation request\n\t * @returns Promise that resolves with the created connection\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createConnection(\n\t\tworkspaceSlug: string,\n\t\tconnection: CreateConnection,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: connection,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get connection details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves with the connection details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param updates - Connection update request\n\t * @returns Promise that resolves with the updated connection\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tupdates: UpdateConnection,\n\t): Promise<Connection> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves when the connection is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Verify a connection's configuration and credentials\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @returns Promise that resolves with the verification result\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync verifyConnection(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t): Promise<ConnectionVerification> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/verify/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tFile,\n\tFilePage,\n\tListFiles,\n\tUpdateFile,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling file operations\n */\nexport class Files {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Upload one or more files to a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param files - File or array of files to upload\n\t * @returns Promise that resolves with the uploaded file metadata\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync uploadFiles(\n\t\tworkspaceSlug: string,\n\t\tfiles: Blob | Blob[],\n\t): Promise<File[]> {\n\t\tconst formData = new FormData();\n\t\tconst fileArray = Array.isArray(files) ? files : [files];\n\n\t\tfor (const file of fileArray) {\n\t\t\tconst name = file instanceof File ? file.name : \"file\";\n\t\t\tformData.append(\"files\", file, name);\n\t\t}\n\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/files/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\t// Schema types multipart as unknown[], but openapi-fetch needs FormData.\n\t\t\t\tbody: formData as unknown as unknown[],\n\t\t\t\tbodySerializer: (formData) => formData,\n\t\t\t\t// Remove Content-Type so browser sets multipart/form-data with boundary.\n\t\t\t\theaders: { \"Content-Type\": null } as unknown as HeadersInit,\n\t\t\t},\n\t\t);\n\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List files in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (formats, search, limit, after)\n\t * @returns Promise that resolves with a paginated list of files\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listFiles(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListFiles & CursorPagination,\n\t): Promise<FilePage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/files/\", {\n\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get file metadata by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves with the file metadata\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getFile(workspaceSlug: string, fileId: string): Promise<File> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Download a file by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves with the file response\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync downloadFile(workspaceSlug: string, fileId: string): Promise<Response> {\n\t\tconst { response } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/content/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t\tparseAs: \"stream\",\n\t\t\t},\n\t\t);\n\t\treturn response;\n\t}\n\n\t/**\n\t * Update a file's metadata\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @param updates - File update request\n\t * @returns Promise that resolves with the updated file\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateFile(\n\t\tworkspaceSlug: string,\n\t\tfileId: string,\n\t\tupdates: UpdateFile,\n\t): Promise<File> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/files/{fileId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a file\n\t * @param workspaceSlug - Workspace slug\n\t * @param fileId - File ID\n\t * @returns Promise that resolves when the file is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteFile(workspaceSlug: string, fileId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/files/{fileId}/\", {\n\t\t\tparams: { path: { workspaceSlug, fileId } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateInvite,\n\tCursorPagination,\n\tGenerateInviteCode,\n\tInviteCode,\n\tInvitePage,\n\tInvitePreview,\n\tInviteSent,\n\tListInvites,\n\tMember,\n\tReplyInvite,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace invitation operations\n */\nexport class Invites {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all invitations for a workspace\n\t * @param workspaceId - Workspace ID\n\t * @param query - Optional query parameters (role, sortBy, order, limit, after)\n\t * @returns Promise that resolves with a paginated list of invitations\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listInvites(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListInvites & CursorPagination,\n\t): Promise<InvitePage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Send an invitation to join a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param invite - Invitation request\n\t * @returns Promise that resolves with the sent invitation\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync sendInvite(\n\t\tworkspaceSlug: string,\n\t\tinvite: CreateInvite,\n\t): Promise<InviteSent> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: invite,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Cancel a pending invitation\n\t * @param workspaceSlug - Workspace slug\n\t * @param inviteId - Invite ID\n\t * @returns Promise that resolves when the invitation is canceled\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync cancelInvite(workspaceSlug: string, inviteId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/invites/{inviteId}/\", {\n\t\t\tparams: { path: { workspaceSlug, inviteId } },\n\t\t});\n\t}\n\n\t/**\n\t * Reply to an invitation (accept or decline)\n\t * @param workspaceSlug - Workspace slug\n\t * @param inviteId - Invite ID\n\t * @param reply - Reply request\n\t * @returns Promise that resolves with the updated invitation\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync replyToInvite(\n\t\tworkspaceSlug: string,\n\t\tinviteId: string,\n\t\treply: ReplyInvite,\n\t): Promise<Member> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/{inviteId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, inviteId } },\n\t\t\t\tbody: reply,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Generate a shareable invite code for a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param options - Invite code generation options\n\t * @returns Promise that resolves with the generated invite code\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync generateInviteCode(\n\t\tworkspaceSlug: string,\n\t\toptions: GenerateInviteCode,\n\t): Promise<InviteCode> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/invites/code/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: options,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Reply to an invite code (accept or decline)\n\t * @param inviteCode - The invite code\n\t * @param reply - Optional reply request (defaults to accept if not provided)\n\t * @returns Promise that resolves with the member details if accepted, null if declined\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync replyToInviteCode(\n\t\tinviteCode: string,\n\t\treply?: ReplyInvite | null,\n\t): Promise<Member | null> {\n\t\tconst { data } = await this.#api.POST(\"/invites/code/{inviteCode}/\", {\n\t\t\tparams: { path: { inviteCode } },\n\t\t\tbody: reply ?? null,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Preview an invite code without joining\n\t * @param inviteCode - The invite code\n\t * @returns Promise that resolves with the invite preview details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync previewInvite(inviteCode: string): Promise<InvitePreview> {\n\t\tconst { data } = await this.#api.GET(\"/invites/code/{inviteCode}/\", {\n\t\t\tparams: { path: { inviteCode } },\n\t\t});\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tListMembers,\n\tMember,\n\tMemberPage,\n\tUpdateMember,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling member operations\n */\nexport class Members {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List members of a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (role, has2fa, sortBy, order, limit, after)\n\t * @returns Promise that resolves with a paginated list of members\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listMembers(\n\t\tworkspaceSlug: string,\n\t\tquery?: ListMembers & CursorPagination,\n\t): Promise<MemberPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/members/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get member details by username\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @returns Promise that resolves with the member details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getMember(workspaceSlug: string, username: string): Promise<Member> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/members/{username}/\",\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpath: { workspaceSlug, username },\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a member's role\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @param updates - New role for the member\n\t * @returns Promise that resolves with the updated member\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateMember(\n\t\tworkspaceSlug: string,\n\t\tusername: string,\n\t\tupdates: UpdateMember,\n\t): Promise<Member> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/members/{username}/\",\n\t\t\t{\n\t\t\t\tparams: {\n\t\t\t\t\tpath: { workspaceSlug, username },\n\t\t\t\t},\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Remove a member from a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param username - Member username\n\t * @returns Promise that resolves when the member is removed\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync removeMember(workspaceSlug: string, username: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/members/{username}/\", {\n\t\t\tparams: { path: { workspaceSlug, username } },\n\t\t});\n\t}\n\n\t/**\n\t * Leave a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves when the member has left\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync leaveWorkspace(workspaceSlug: string): Promise<void> {\n\t\tawait this.#api.POST(\"/workspaces/{workspaceSlug}/members/leave/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCursorPagination,\n\tNotificationPage,\n\tUnreadStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling account notification operations\n */\nexport class Notifications {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List notifications for the authenticated account\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of notifications\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listNotifications(query?: CursorPagination): Promise<NotificationPage> {\n\t\tconst { data } = await this.#api.GET(\"/notifications/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get the unread notifications count for the authenticated account\n\t * @returns Promise that resolves with the unread status\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getUnreadNotificationsStatus(): Promise<UnreadStatus> {\n\t\tconst { data } = await this.#api.GET(\"/notifications/unread/\");\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreatePipeline,\n\tCursorPagination,\n\tPipeline,\n\tPipelineStatus,\n\tPipelineSummaryPage,\n\tUpdatePipeline,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling pipeline operations\n */\nexport class Pipelines {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List pipelines in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (search, status, limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline summaries\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPipelines(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { search?: string; status?: PipelineStatus },\n\t): Promise<PipelineSummaryPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a pipeline in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipeline - Pipeline creation request\n\t * @returns Promise that resolves with the created pipeline\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createPipeline(\n\t\tworkspaceSlug: string,\n\t\tpipeline: CreatePipeline,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: pipeline,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get pipeline details by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @returns Promise that resolves with the pipeline details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param updates - Pipeline update request\n\t * @returns Promise that resolves with the updated pipeline\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updatePipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\tupdates: UpdatePipeline,\n\t): Promise<Pipeline> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @returns Promise that resolves when the pipeline is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deletePipeline(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t},\n\t\t);\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreatePolicy,\n\tCursorPagination,\n\tPolicy,\n\tPolicySummaryPage,\n\tUpdatePolicy,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling policy operations\n */\nexport class Policies {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List policies in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of policies\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPolicies(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<PolicySummaryPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a policy in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param policy - Policy creation request\n\t * @returns Promise that resolves with the created policy\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createPolicy(\n\t\tworkspaceSlug: string,\n\t\tpolicy: CreatePolicy,\n\t): Promise<Policy> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: policy,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get policy details by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @returns Promise that resolves with the policy details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getPolicy(workspaceSlug: string, policySlug: string): Promise<Policy> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update a policy\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @param updates - Policy update request\n\t * @returns Promise that resolves with the updated policy\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updatePolicy(\n\t\tworkspaceSlug: string,\n\t\tpolicySlug: string,\n\t\tupdates: UpdatePolicy,\n\t): Promise<Policy> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a policy\n\t * @param workspaceSlug - Workspace slug\n\t * @param policySlug - Policy slug\n\t * @returns Promise that resolves when the policy is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deletePolicy(workspaceSlug: string, policySlug: string): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/policies/{policySlug}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, policySlug } },\n\t\t\t},\n\t\t);\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tAnalyzedDocument,\n\tCreatePipelineRun,\n\tCursorPagination,\n\tPipelineRun,\n\tPipelineRunPage,\n\tPipelineRunStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling pipeline run operations\n */\nexport class Runs {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all pipeline runs in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (status, limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline runs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listRuns(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { status?: PipelineRunStatus },\n\t): Promise<PipelineRunPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List runs for a specific pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of pipeline runs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listPipelineRuns(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<PipelineRunPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Trigger a new run for a pipeline\n\t * @param workspaceSlug - Workspace slug\n\t * @param pipelineSlug - Pipeline slug\n\t * @param run - Pipeline run creation request\n\t * @returns Promise that resolves with the created pipeline run\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createRun(\n\t\tworkspaceSlug: string,\n\t\tpipelineSlug: string,\n\t\trun: CreatePipelineRun,\n\t): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/pipelines/{pipelineSlug}/runs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, pipelineSlug } },\n\t\t\t\tbody: run,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get pipeline run details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the pipeline run details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getRun(workspaceSlug: string, runId: string): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get the detections (analyzed document) for a pipeline run\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the analyzed document\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getDetections(\n\t\tworkspaceSlug: string,\n\t\trunId: string,\n\t): Promise<AnalyzedDocument> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/detections/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Apply redactions to a pipeline run\n\t * @param workspaceSlug - Workspace slug\n\t * @param runId - Run ID\n\t * @returns Promise that resolves with the updated pipeline run\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync redact(workspaceSlug: string, runId: string): Promise<PipelineRun> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/runs/{runId}/redactions/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, runId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type { Health } from \"@/datatypes/index.js\";\n\n/**\n * Service for handling status and health check operations\n */\nexport class Status {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * Check the health status of the API\n\t * @returns Promise that resolves with the API health status\n\t */\n\tasync checkHealth(): Promise<Health> {\n\t\tconst { data, error } = await this.#api.GET(\"/health/\", {\n\t\t\tparams: { path: { version: \"v1\" } },\n\t\t});\n\t\t// Health endpoint returns Health for both 200 and 503\n\t\treturn (data ?? error) as Health;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tConnectionSync,\n\tConnectionSyncPage,\n\tCursorPagination,\n\tSyncConnection,\n\tSyncStatus,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling connection sync operations\n */\nexport class Syncs {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all syncs across a workspace's connections\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional query parameters (provider, status, limit, after)\n\t * @returns Promise that resolves with a paginated list of connection syncs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWorkspaceSyncs(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination & { provider?: string[]; status?: SyncStatus },\n\t): Promise<ConnectionSyncPage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/syncs/\", {\n\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Start a sync for a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param sync - Sync request\n\t * @returns Promise that resolves with the started connection sync\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync startSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsync: SyncConnection,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/sync/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId } },\n\t\t\t\tbody: sync,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * List syncs for a connection\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of connection syncs\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listSyncs(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tquery?: CursorPagination,\n\t): Promise<ConnectionSyncPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a connection sync by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param syncId - Sync ID\n\t * @returns Promise that resolves with the connection sync details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsyncId: string,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/{syncId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId, syncId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Cancel a running connection sync\n\t * @param workspaceSlug - Workspace slug\n\t * @param connectionId - Connection ID\n\t * @param syncId - Sync ID\n\t * @returns Promise that resolves with the canceled connection sync\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync cancelSync(\n\t\tworkspaceSlug: string,\n\t\tconnectionId: string,\n\t\tsyncId: string,\n\t): Promise<ConnectionSync> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/connections/{connectionId}/syncs/{syncId}/cancel/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, connectionId, syncId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateWebhook,\n\tCursorPagination,\n\tTestWebhook,\n\tUpdateWebhook,\n\tWebhook,\n\tWebhookCreated,\n\tWebhookPage,\n\tWebhookResult,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling webhook operations\n */\nexport class Webhooks {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all webhooks in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of webhooks\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWebhooks(\n\t\tworkspaceSlug: string,\n\t\tquery?: CursorPagination,\n\t): Promise<WebhookPage> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug }, query },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhook - Webhook creation request\n\t * @returns Promise that resolves with the created webhook (including secret)\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhook: CreateWebhook,\n\t): Promise<WebhookCreated> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: webhook,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get a specific webhook by slug\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @returns Promise that resolves with the webhook details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getWebhook(workspaceSlug: string, webhookId: string): Promise<Webhook> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @param updates - Webhook update request\n\t * @returns Promise that resolves with the updated webhook\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhookId: string,\n\t\tupdates: UpdateWebhook,\n\t): Promise<Webhook> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t\tbody: updates,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a webhook\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @returns Promise that resolves when the webhook is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteWebhook(workspaceSlug: string, webhookId: string): Promise<void> {\n\t\tawait this.#api.DELETE(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Test a webhook by sending a test payload\n\t * @param workspaceSlug - Workspace slug\n\t * @param webhookId - Webhook ID\n\t * @param options - Test webhook options\n\t * @returns Promise that resolves with the test result\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync testWebhook(\n\t\tworkspaceSlug: string,\n\t\twebhookId: string,\n\t\toptions?: TestWebhook,\n\t): Promise<WebhookResult> {\n\t\tconst { data } = await this.#api.POST(\n\t\t\t\"/workspaces/{workspaceSlug}/webhooks/{webhookId}/test/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug, webhookId } },\n\t\t\t\tbody: options ?? {},\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n}\n","import type { ApiClient } from \"@/client.js\";\nimport type {\n\tCreateWorkspace,\n\tCursorPagination,\n\tNotificationSettings,\n\tUpdateNotificationSettings,\n\tUpdateWorkspace,\n\tWorkspace,\n\tWorkspacePage,\n} from \"@/datatypes/index.js\";\n\n/**\n * Service for handling workspace operations\n */\nexport class Workspaces {\n\t#api: ApiClient;\n\n\tconstructor(api: ApiClient) {\n\t\tthis.#api = api;\n\t}\n\n\t/**\n\t * List all workspaces\n\t * @param query - Optional pagination parameters (limit, after)\n\t * @returns Promise that resolves with a paginated list of workspaces\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync listWorkspaces(query?: CursorPagination): Promise<WorkspacePage> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/\", {\n\t\t\tparams: { query },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Get workspace details by ID\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves with the workspace details\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getWorkspace(workspaceSlug: string): Promise<Workspace> {\n\t\tconst { data } = await this.#api.GET(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Create a new workspace\n\t * @param workspace - Workspace creation request\n\t * @returns Promise that resolves with the created workspace\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync createWorkspace(workspace: CreateWorkspace): Promise<Workspace> {\n\t\tconst { data } = await this.#api.POST(\"/workspaces/\", {\n\t\t\tbody: workspace,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update an existing workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param updates - Workspace update request\n\t * @returns Promise that resolves with the updated workspace\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateWorkspace(\n\t\tworkspaceSlug: string,\n\t\tupdates: UpdateWorkspace,\n\t): Promise<Workspace> {\n\t\tconst { data } = await this.#api.PATCH(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t\tbody: updates,\n\t\t});\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Delete a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves when the workspace is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteWorkspace(workspaceSlug: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t}\n\n\t/**\n\t * Get notification settings for the authenticated user in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves with the notification settings\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getNotificationSettings(\n\t\tworkspaceSlug: string,\n\t): Promise<NotificationSettings> {\n\t\tconst { data } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/notifications/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Update notification settings for the authenticated user in a workspace\n\t * @param workspaceSlug - Workspace slug\n\t * @param settings - Notification settings update request\n\t * @returns Promise that resolves with the updated notification settings\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync updateNotificationSettings(\n\t\tworkspaceSlug: string,\n\t\tsettings: UpdateNotificationSettings,\n\t): Promise<NotificationSettings> {\n\t\tconst { data } = await this.#api.PATCH(\n\t\t\t\"/workspaces/{workspaceSlug}/notifications/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tbody: settings,\n\t\t\t},\n\t\t);\n\t\treturn data!;\n\t}\n\n\t/**\n\t * Download a workspace's avatar image\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves with the avatar response\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync getAvatar(workspaceSlug: string): Promise<Response> {\n\t\tconst { response } = await this.#api.GET(\n\t\t\t\"/workspaces/{workspaceSlug}/avatar/\",\n\t\t\t{\n\t\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t\tparseAs: \"stream\",\n\t\t\t},\n\t\t);\n\t\treturn response;\n\t}\n\n\t/**\n\t * Upload a workspace's avatar image\n\t * @param workspaceSlug - Workspace slug\n\t * @param avatar - Avatar image to upload\n\t * @returns Promise that resolves when the avatar is uploaded\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync uploadAvatar(workspaceSlug: string, avatar: Blob): Promise<void> {\n\t\tconst formData = new FormData();\n\t\tconst name = avatar instanceof File ? avatar.name : \"avatar\";\n\t\tformData.append(\"avatar\", avatar, name);\n\n\t\tawait this.#api.PUT(\"/workspaces/{workspaceSlug}/avatar/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t\t// Schema types multipart as unknown[], but openapi-fetch needs FormData.\n\t\t\tbody: formData as unknown as unknown[],\n\t\t\tbodySerializer: (formData) => formData,\n\t\t\t// Remove Content-Type so browser sets multipart/form-data with boundary.\n\t\t\theaders: { \"Content-Type\": null } as unknown as HeadersInit,\n\t\t});\n\t}\n\n\t/**\n\t * Delete a workspace's avatar image\n\t * @param workspaceSlug - Workspace slug\n\t * @returns Promise that resolves when the avatar is deleted\n\t * @throws {ApiError} if the request fails\n\t */\n\tasync deleteAvatar(workspaceSlug: string): Promise<void> {\n\t\tawait this.#api.DELETE(\"/workspaces/{workspaceSlug}/avatar/\", {\n\t\t\tparams: { path: { workspaceSlug } },\n\t\t});\n\t}\n}\n"],"mappings":"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"}