basecamp-client 1.0.1
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.
- package/README.md +102 -0
- package/dist/index.d.mts +31267 -0
- package/dist/index.d.ts +31267 -0
- package/dist/index.js +3209 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +3180 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/buildClient.ts","../src/contract/index.ts","../src/contract/c.ts","../src/contract/resources/communications/message-boards.ts","../src/contract/schemas/common.ts","../src/contract/schemas/communications/message-boards.ts","../src/contract/resources/communications/message-types.ts","../src/contract/schemas/communications/message-types.ts","../src/contract/resources/communications/messages.ts","../src/contract/schemas/communications/messages.ts","../src/contract/resources/communications/comments.ts","../src/contract/schemas/communications/comments.ts","../src/contract/resources/communications/campfires.ts","../src/contract/schemas/communications/campfires.ts","../src/contract/resources/communications/inboxes.ts","../src/contract/schemas/communications/inboxes.ts","../src/contract/resources/communications/forwards.ts","../src/contract/schemas/communications/forwards.ts","../src/contract/resources/communications/inbox-replies.ts","../src/contract/schemas/communications/inbox-replies.ts","../src/contract/resources/communications/client-approvals.ts","../src/contract/schemas/communications/client-approvals.ts","../src/contract/resources/communications/client-correspondences.ts","../src/contract/schemas/communications/client-correspondences.ts","../src/contract/resources/communications/client-replies.ts","../src/contract/schemas/communications/client-replies.ts","../src/contract/resources/communications/client-visibility.ts","../src/contract/schemas/communications/client-visibility.ts","../src/contract/schemas/recordings.ts","../src/contract/resources/documents/documents.ts","../src/contract/schemas/documents/documents.ts","../src/contract/schemas/documents/vaults.ts","../src/contract/schemas/documents/uploads.ts","../src/contract/schemas/documents/attachments.ts","../src/contract/resources/documents/vaults.ts","../src/contract/resources/documents/uploads.ts","../src/contract/resources/documents/attachments.ts","../src/contract/resources/events.ts","../src/contract/schemas/events.ts","../src/contract/resources/lineup-markers.ts","../src/contract/schemas/lineup-markers.ts","../src/contract/resources/people.ts","../src/contract/schemas/people.ts","../src/contract/resources/projects.ts","../src/contract/schemas/projects.ts","../src/contract/resources/recordings.ts","../src/contract/resources/scheduling/schedules.ts","../src/contract/schemas/scheduling/schedules.ts","../src/contract/resources/scheduling/schedule-entries.ts","../src/contract/schemas/scheduling/schedule-entries.ts","../src/contract/resources/scheduling/questionnaires.ts","../src/contract/schemas/scheduling/questionnaires.ts","../src/contract/resources/scheduling/questions.ts","../src/contract/schemas/scheduling/questions.ts","../src/contract/resources/tasks/todosets.ts","../src/contract/schemas/tasks/todosets.ts","../src/contract/resources/tasks/todolists.ts","../src/contract/schemas/tasks/todolists.ts","../src/contract/resources/tasks/todolist-groups.ts","../src/contract/schemas/tasks/todolist-groups.ts","../src/contract/resources/tasks/todos.ts","../src/contract/schemas/tasks/todos.ts","../src/fetcher.ts","../src/getBearerToken.ts"],"sourcesContent":["export * from './buildClient';\nexport * from './contract';\nexport * from './getBearerToken';\n","import { initClient as tsRestInitClient } from '@ts-rest/core';\nimport { contract } from './contract';\nimport { fetcher } from './fetcher';\n\ntype InitClientOptions = { bearerToken: string; accountId: string; userAgent: string };\n\nexport function buildClient(options: InitClientOptions) {\n return tsRestInitClient(contract, {\n baseUrl: `https://3.basecampapi.com/${options.accountId}`,\n baseHeaders: {\n Authorization: `Bearer ${options.bearerToken}`,\n 'User-Agent': options.userAgent,\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n throwOnUnknownStatus: true,\n api: fetcher,\n });\n}\n\nexport type Client = Awaited<ReturnType<typeof buildClient>>;\n","import { z } from 'zod';\nimport { c } from './c';\nimport {\n campfiresRouter,\n clientApprovalsRouter,\n clientCorrespondencesRouter,\n clientRepliesRouter,\n clientVisibilityRouter,\n commentsRouter,\n forwardsRouter,\n inboxRepliesRouter,\n inboxesRouter,\n messageBoardsRouter,\n messageTypesRouter,\n messagesRouter,\n} from './resources/communications';\nimport {\n attachmentsRouter,\n documentsRouter,\n uploadsRouter,\n vaultsRouter,\n} from './resources/documents';\nimport { eventsRouter } from './resources/events';\nimport { lineupMarkersRouter } from './resources/lineup-markers';\nimport { peopleRouter } from './resources/people';\nimport { projectsRouter } from './resources/projects';\nimport { recordingsRouter } from './resources/recordings';\nimport {\n questionnairesRouter,\n questionsRouter,\n scheduleEntriesRouter,\n schedulesRouter,\n} from './resources/scheduling';\nimport {\n todoListGroupsRouter,\n todoListsRouter,\n todoSetsRouter,\n todosRouter,\n} from './resources/tasks';\n\nexport const contract = c.router(\n {\n projects: projectsRouter,\n people: peopleRouter,\n recordings: recordingsRouter,\n events: eventsRouter,\n lineupMarkers: lineupMarkersRouter,\n todoSets: todoSetsRouter,\n todoLists: todoListsRouter,\n todoListGroups: todoListGroupsRouter,\n todos: todosRouter,\n messageBoards: messageBoardsRouter,\n messageTypes: messageTypesRouter,\n messages: messagesRouter,\n comments: commentsRouter,\n campfires: campfiresRouter,\n inboxes: inboxesRouter,\n forwards: forwardsRouter,\n inboxReplies: inboxRepliesRouter,\n clientApprovals: clientApprovalsRouter,\n clientCorrespondences: clientCorrespondencesRouter,\n clientReplies: clientRepliesRouter,\n clientVisibility: clientVisibilityRouter,\n schedules: schedulesRouter,\n scheduleEntries: scheduleEntriesRouter,\n questionnaires: questionnairesRouter,\n questions: questionsRouter,\n documents: documentsRouter,\n vaults: vaultsRouter,\n uploads: uploadsRouter,\n attachments: attachmentsRouter,\n },\n {\n strictStatusCodes: true,\n baseHeaders: z.object({\n Authorization: z.string().min(1),\n 'User-Agent': z.string().min(1),\n Accept: z.literal('application/json').optional(),\n }),\n },\n);\n\nexport type Contract = typeof contract;\n","import { initContract } from '@ts-rest/core';\n\n/**\n * Shared Basecamp contract instance.\n */\nexport const c: ReturnType<typeof initContract> = initContract();\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n MessageBoardSchema,\n MessageBoardsResponseSchema,\n} from '../../schemas/communications/message-boards';\n\nconst bucketAndMessageBoardPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n messageBoardId: BasecampIdParamSchema,\n});\n\nconst projectPathParams = z.object({\n projectId: BasecampIdParamSchema,\n});\n\nexport const messageBoardsRouter = c.router({\n get: {\n summary: 'Get a message board',\n description: 'Return a message board container for a project.',\n metadata: {\n tag: 'Message Boards',\n operationId: 'messageBoards.get',\n docsPath: '/docs/basecamp-api-specs/sections/message_boards.md#get-message-board',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/message_boards/:messageBoardId',\n pathParams: bucketAndMessageBoardPathParams,\n responses: {\n 200: MessageBoardSchema,\n },\n },\n listForProject: {\n summary: 'List message boards for a project',\n description: 'Return message boards available for a project.',\n metadata: {\n tag: 'Message Boards',\n operationId: 'messageBoards.listForProject',\n docsPath: '/docs/basecamp-api-specs/sections/message_boards.md#get-message-board',\n } as const,\n method: 'GET',\n path: '/projects/:projectId/message_boards',\n pathParams: projectPathParams,\n responses: {\n 200: MessageBoardsResponseSchema,\n },\n },\n});\n\nexport type MessageBoardsRouter = typeof messageBoardsRouter;\n","import { z } from 'zod';\n\n/**\n * Numeric identifier used across Basecamp resources.\n */\nexport const BasecampIdSchema = z.number().int().nonnegative();\n\n/**\n * Path parameter helper accepting numeric strings and coercing to numbers.\n */\nexport const BasecampIdParamSchema = z.coerce.number().int().nonnegative();\n\n/**\n * ISO8601 timestamp with timezone offset (e.g. 2022-11-22T10:46:58.169Z).\n */\nexport const IsoDateTimeSchema = z.string().datetime({ offset: true });\n\n/**\n * ISO8601 calendar date without a time component (e.g. 2022-11-22).\n */\nexport const IsoDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, 'Date must be formatted as YYYY-MM-DD');\n\n/**\n * Base recording status – the API currently surfaces \"active\" and \"trashed\",\n * but we allow unknown values to keep forward compatibility.\n */\nexport const RecordingStatusSchema = z.enum(['active', 'trashed']).or(z.string());\n\n/**\n * Rich text content rendered as HTML.\n */\nexport const HtmlStringSchema = z.string().min(0);\n\nexport const BucketRefSchema = z.object({\n id: BasecampIdSchema,\n name: z.string(),\n type: z.string(),\n});\n\nexport const RecordingRefSchema = z.object({\n id: BasecampIdSchema,\n title: z.string(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n});\n\nexport const PersonSummarySchema = z.object({\n id: BasecampIdSchema,\n attachable_sgid: z.string().min(1),\n name: z.string(),\n email_address: z.string().email().nullable(),\n personable_type: z.string(),\n title: z.string().nullable(),\n bio: z.string().nullable(),\n location: z.string().nullable(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n admin: z.boolean(),\n owner: z.boolean(),\n client: z.boolean(),\n employee: z.boolean(),\n time_zone: z.string(),\n avatar_url: z.string().url(),\n company: z\n .object({\n id: BasecampIdSchema,\n name: z.string(),\n })\n .optional(),\n can_manage_projects: z.boolean(),\n can_manage_people: z.boolean(),\n});\n\nexport type BasecampId = z.infer<typeof BasecampIdSchema>;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst MessageBoardRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n position: z.number().int().nonnegative().optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const MessageBoardSchema = MessageBoardRecordingCoreSchema.extend({\n messages_count: z.number().int().nonnegative(),\n messages_url: z.string().url(),\n app_messages_url: z.string().url(),\n});\n\nexport const MessageBoardsResponseSchema = z.array(MessageBoardSchema);\n\nexport type MessageBoard = z.infer<typeof MessageBoardSchema>;\nexport type MessageBoardsResponse = z.infer<typeof MessageBoardsResponseSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n MessageTypeCreateBodySchema,\n MessageTypeSchema,\n MessageTypesResponseSchema,\n MessageTypeUpdateBodySchema,\n} from '../../schemas/communications/message-types';\n\nconst bucketPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst bucketAndCategoryPathParams = bucketPathParams.extend({\n categoryId: BasecampIdParamSchema,\n});\n\nexport const messageTypesRouter = c.router({\n list: {\n summary: 'List message types',\n description: 'Return all message types (categories) available in a project.',\n metadata: {\n tag: 'Message Types',\n operationId: 'messageTypes.list',\n docsPath: '/docs/basecamp-api-specs/sections/message_types.md#get-message-types',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/categories',\n pathParams: bucketPathParams,\n responses: {\n 200: MessageTypesResponseSchema,\n },\n },\n get: {\n summary: 'Get a message type',\n description: 'Return a specific message type by its ID.',\n metadata: {\n tag: 'Message Types',\n operationId: 'messageTypes.get',\n docsPath: '/docs/basecamp-api-specs/sections/message_types.md#get-a-message-type',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/categories/:categoryId',\n pathParams: bucketAndCategoryPathParams,\n responses: {\n 200: MessageTypeSchema,\n },\n },\n create: {\n summary: 'Create a message type',\n description: 'Create a new message type in a project.',\n metadata: {\n tag: 'Message Types',\n operationId: 'messageTypes.create',\n docsPath: '/docs/basecamp-api-specs/sections/message_types.md#create-a-message-type',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/categories',\n pathParams: bucketPathParams,\n body: MessageTypeCreateBodySchema,\n responses: {\n 201: MessageTypeSchema,\n },\n },\n update: {\n summary: 'Update a message type',\n description: 'Update an existing message type.',\n metadata: {\n tag: 'Message Types',\n operationId: 'messageTypes.update',\n docsPath: '/docs/basecamp-api-specs/sections/message_types.md#update-a-message-type',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/categories/:categoryId',\n pathParams: bucketAndCategoryPathParams,\n body: MessageTypeUpdateBodySchema,\n responses: {\n 200: MessageTypeSchema,\n },\n },\n destroy: {\n summary: 'Delete a message type',\n description: 'Delete a message type from a project.',\n metadata: {\n tag: 'Message Types',\n operationId: 'messageTypes.destroy',\n docsPath: '/docs/basecamp-api-specs/sections/message_types.md#destroy-a-message-type',\n } as const,\n method: 'DELETE',\n path: '/buckets/:bucketId/categories/:categoryId',\n pathParams: bucketAndCategoryPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type MessageTypesRouter = typeof messageTypesRouter;\n","import { z } from 'zod';\n\nimport { BasecampIdSchema, IsoDateTimeSchema } from '../common';\n\nexport const MessageTypeSchema = z.object({\n id: BasecampIdSchema,\n name: z.string(),\n icon: z.string(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n});\n\nexport const MessageTypesResponseSchema = z.array(MessageTypeSchema);\n\nexport const MessageTypeCreateBodySchema = z.object({\n name: z.string().min(1),\n icon: z.string().min(1),\n});\n\nexport const MessageTypeUpdateBodySchema = z.object({\n name: z.string().min(1).optional(),\n icon: z.string().min(1).optional(),\n});\n\nexport type MessageType = z.infer<typeof MessageTypeSchema>;\nexport type MessageTypesResponse = z.infer<typeof MessageTypesResponseSchema>;\nexport type MessageTypeCreateBody = z.infer<typeof MessageTypeCreateBodySchema>;\nexport type MessageTypeUpdateBody = z.infer<typeof MessageTypeUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n MessageCreateBodySchema,\n MessageListQuerySchema,\n MessageListResponseSchema,\n MessageSchema,\n MessageUpdateBodySchema,\n} from '../../schemas/communications/messages';\n\nconst bucketAndBoardPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n messageBoardId: BasecampIdParamSchema,\n});\n\nconst bucketAndMessagePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n messageId: BasecampIdParamSchema,\n});\n\nexport const messagesRouter = c.router({\n list: {\n summary: 'List message board messages',\n description:\n 'Returns the messages currently visible on a message board. Pagination data is available via the Link and X-Total-Count headers.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.list',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#get-messages',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/message_boards/:messageBoardId/messages',\n pathParams: bucketAndBoardPathParams,\n query: MessageListQuerySchema,\n responses: {\n 200: MessageListResponseSchema,\n },\n },\n get: {\n summary: 'Get a message',\n description: 'Fetch the full representation of a single message.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.get',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#get-a-message',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/messages/:messageId',\n pathParams: bucketAndMessagePathParams,\n responses: {\n 200: MessageSchema,\n },\n },\n create: {\n summary: 'Create a message',\n description:\n 'Publish a message to a specific message board. Setting status to \"active\" makes the message visible immediately.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.create',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#create-a-message',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/message_boards/:messageBoardId/messages',\n pathParams: bucketAndBoardPathParams,\n body: MessageCreateBodySchema,\n responses: {\n 201: MessageSchema,\n },\n },\n update: {\n summary: 'Update a message',\n description: 'Update the subject, content, or category of an existing message.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.update',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#update-a-message',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/messages/:messageId',\n pathParams: bucketAndMessagePathParams,\n body: MessageUpdateBodySchema,\n responses: {\n 200: MessageSchema,\n },\n },\n pin: {\n summary: 'Pin a message',\n description: 'Pin a message recording. The same endpoint is used to pin other recording types.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.pin',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#pin-a-message',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/recordings/:messageId/pin',\n pathParams: bucketAndMessagePathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n unpin: {\n summary: 'Unpin a message',\n description: 'Remove a pinned message. Returns no content on success.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.unpin',\n docsPath: '/docs/basecamp-api-specs/sections/messages.md#pin-a-message',\n } as const,\n method: 'DELETE',\n path: '/buckets/:bucketId/recordings/:messageId/pin',\n pathParams: bucketAndMessagePathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n trash: {\n summary: 'Trash a message',\n description: 'Move a message recording to the trash. Trashed items can be restored via the UI.',\n metadata: {\n tag: 'Messages',\n operationId: 'messages.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:messageId/status/trashed',\n pathParams: bucketAndMessagePathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type MessagesRouter = typeof messagesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const MessageCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n comments_count: z.number().int().nonnegative().optional(),\n comments_url: z.string().url().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const MessageSummarySchema = MessageCoreSchema.extend({\n title: z.string(),\n content: HtmlStringSchema.optional(),\n});\n\nexport const MessageSchema = MessageSummarySchema.extend({\n subject: z.string(),\n});\n\nexport const MessageListResponseSchema = z.array(MessageSummarySchema);\n\nexport const MessageListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const MessageCreateBodySchema = z.object({\n subject: z.string().min(1),\n status: z.enum(['active', 'draft']).or(z.string()),\n content: HtmlStringSchema.optional(),\n category_id: BasecampIdSchema.optional(),\n subscriptions: z.array(BasecampIdSchema).optional(),\n});\n\nexport const MessageUpdateBodySchema = z\n .object({\n subject: z.string().min(1).optional(),\n content: HtmlStringSchema.optional(),\n category_id: BasecampIdSchema.optional(),\n })\n .refine(\n (value) => Object.keys(value).length > 0,\n 'At least one field must be provided to update a message.',\n );\n\nexport type Message = z.infer<typeof MessageSchema>;\nexport type MessageSummary = z.infer<typeof MessageSummarySchema>;\nexport type MessageListQuery = z.infer<typeof MessageListQuerySchema>;\nexport type MessageCreateBody = z.infer<typeof MessageCreateBodySchema>;\nexport type MessageUpdateBody = z.infer<typeof MessageUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n CommentCreateBodySchema,\n CommentListQuerySchema,\n CommentSchema,\n CommentsResponseSchema,\n CommentUpdateBodySchema,\n} from '../../schemas/communications/comments';\n\nconst bucketAndRecordingPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n recordingId: BasecampIdParamSchema,\n});\n\nconst bucketAndCommentPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n commentId: BasecampIdParamSchema,\n});\n\nexport const commentsRouter = c.router({\n list: {\n summary: 'List comments',\n description: 'Return paginated comments for a recording.',\n metadata: {\n tag: 'Comments',\n operationId: 'comments.list',\n docsPath: '/docs/basecamp-api-specs/sections/comments.md#get-comments',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/recordings/:recordingId/comments',\n pathParams: bucketAndRecordingPathParams,\n query: CommentListQuerySchema,\n responses: {\n 200: CommentsResponseSchema,\n },\n },\n get: {\n summary: 'Get a comment',\n description: 'Return a specific comment by its ID.',\n metadata: {\n tag: 'Comments',\n operationId: 'comments.get',\n docsPath: '/docs/basecamp-api-specs/sections/comments.md#get-a-comment',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/comments/:commentId',\n pathParams: bucketAndCommentPathParams,\n responses: {\n 200: CommentSchema,\n },\n },\n create: {\n summary: 'Create a comment',\n description: 'Create a new comment on a recording.',\n metadata: {\n tag: 'Comments',\n operationId: 'comments.create',\n docsPath: '/docs/basecamp-api-specs/sections/comments.md#create-a-comment',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/recordings/:recordingId/comments',\n pathParams: bucketAndRecordingPathParams,\n body: CommentCreateBodySchema,\n responses: {\n 201: CommentSchema,\n },\n },\n update: {\n summary: 'Update a comment',\n description: 'Update an existing comment.',\n metadata: {\n tag: 'Comments',\n operationId: 'comments.update',\n docsPath: '/docs/basecamp-api-specs/sections/comments.md#update-a-comment',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/comments/:commentId',\n pathParams: bucketAndCommentPathParams,\n body: CommentUpdateBodySchema,\n responses: {\n 200: CommentSchema,\n },\n },\n trash: {\n summary: 'Trash a comment',\n description: 'Move a comment to the trash.',\n metadata: {\n tag: 'Comments',\n operationId: 'comments.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:commentId/status/trashed',\n pathParams: bucketAndCommentPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type CommentsRouter = typeof commentsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst CommentRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const CommentSchema = CommentRecordingCoreSchema.extend({\n content: HtmlStringSchema,\n});\n\nexport const CommentsResponseSchema = z.array(CommentSchema);\n\nexport const CommentListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const CommentCreateBodySchema = z.object({\n content: HtmlStringSchema.min(1),\n});\n\nexport const CommentUpdateBodySchema = z.object({\n content: HtmlStringSchema.min(1),\n});\n\nexport type Comment = z.infer<typeof CommentSchema>;\nexport type CommentsResponse = z.infer<typeof CommentsResponseSchema>;\nexport type CommentListQuery = z.infer<typeof CommentListQuerySchema>;\nexport type CommentCreateBody = z.infer<typeof CommentCreateBodySchema>;\nexport type CommentUpdateBody = z.infer<typeof CommentUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n CampfireLineCreateBodySchema,\n CampfireLineListQuerySchema,\n CampfireLineListResponseSchema,\n CampfireLineSchema,\n CampfireListQuerySchema,\n CampfireListResponseSchema,\n CampfireSchema,\n} from '../../schemas/communications/campfires';\n\nconst CampfirePathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n campfireId: BasecampIdParamSchema,\n});\n\nconst CampfireLinePathParamsSchema = CampfirePathParamsSchema.extend({\n lineId: BasecampIdParamSchema,\n});\n\nexport const campfiresRouter = c.router({\n list: {\n summary: 'List Campfires',\n description:\n 'Returns the Campfires visible to the authenticated user. Results are paginated via Link headers.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.list',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#get-campfires',\n } as const,\n method: 'GET',\n path: '/chats',\n query: CampfireListQuerySchema,\n responses: {\n 200: CampfireListResponseSchema,\n },\n },\n get: {\n summary: 'Get a Campfire',\n description: 'Fetch a single Campfire transcript for a project.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.get',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#get-a-campfire',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/chats/:campfireId',\n pathParams: CampfirePathParamsSchema,\n responses: {\n 200: CampfireSchema,\n },\n },\n listLines: {\n summary: 'List Campfire lines',\n description: 'Return paginated chat lines for a Campfire transcript.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.listLines',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#get-campfire-lines',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/chats/:campfireId/lines',\n pathParams: CampfirePathParamsSchema,\n query: CampfireLineListQuerySchema,\n responses: {\n 200: CampfireLineListResponseSchema,\n },\n },\n getLine: {\n summary: 'Get a Campfire line',\n description: 'Fetch a single Campfire line by identifier.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.getLine',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#get-a-campfire-line',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/chats/:campfireId/lines/:lineId',\n pathParams: CampfireLinePathParamsSchema,\n responses: {\n 200: CampfireLineSchema,\n },\n },\n createLine: {\n summary: 'Create a Campfire line',\n description: 'Post a new line of chat to a Campfire transcript.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.createLine',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#create-a-campfire-line',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/chats/:campfireId/lines',\n pathParams: CampfirePathParamsSchema,\n body: CampfireLineCreateBodySchema,\n responses: {\n 201: CampfireLineSchema,\n },\n },\n deleteLine: {\n summary: 'Delete a Campfire line',\n description: 'Delete a Campfire line permanently.',\n metadata: {\n tag: 'Campfires',\n operationId: 'campfires.deleteLine',\n docsPath: '/docs/basecamp-api-specs/sections/campfires.md#delete-a-campfire-line',\n } as const,\n method: 'DELETE',\n path: '/buckets/:bucketId/chats/:campfireId/lines/:lineId',\n pathParams: CampfireLinePathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type CampfiresRouter = typeof campfiresRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const CampfireSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n position: z.number().int().optional(),\n topic: z.string(),\n lines_url: z.string().url(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const CampfireListResponseSchema = z.array(CampfireSchema);\n\nexport const CampfireListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const CampfireLineSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: z.string(),\n});\n\nexport const CampfireLineListResponseSchema = z.array(CampfireLineSchema);\n\nexport const CampfireLineListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const CampfireLineCreateBodySchema = z.object({\n content: z.string().min(1),\n});\n\nexport type Campfire = z.infer<typeof CampfireSchema>;\nexport type CampfireLine = z.infer<typeof CampfireLineSchema>;\nexport type CampfireLineCreateBody = z.infer<typeof CampfireLineCreateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport { InboxSchema } from '../../schemas/communications/inboxes';\n\nconst InboxPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n inboxId: BasecampIdParamSchema,\n});\n\nexport const inboxesRouter = c.router({\n get: {\n summary: 'Get an inbox',\n description:\n 'Return the inbox container for a project. Use the forwards endpoint to list mail forwards associated with the inbox.',\n metadata: {\n tag: 'Inboxes',\n operationId: 'inboxes.get',\n docsPath: '/docs/basecamp-api-specs/sections/inboxes.md#get-inbox',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/inboxes/:inboxId',\n pathParams: InboxPathParamsSchema,\n responses: {\n 200: InboxSchema,\n },\n },\n});\n\nexport type InboxesRouter = typeof inboxesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const InboxSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n position: z.number().int().optional(),\n forwards_count: z.number().int().nonnegative().optional(),\n forwards_url: z.string().url().optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport type Inbox = z.infer<typeof InboxSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ForwardListQuerySchema,\n ForwardListResponseSchema,\n ForwardSchema,\n} from '../../schemas/communications/forwards';\n\nconst ForwardListPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n inboxId: BasecampIdParamSchema,\n});\n\nconst ForwardPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n forwardId: BasecampIdParamSchema,\n});\n\nexport const forwardsRouter = c.router({\n list: {\n summary: 'List forwards',\n description:\n 'Returns the email forwards that live under a project inbox. Results are paginated via Link headers.',\n metadata: {\n tag: 'Forwards',\n operationId: 'forwards.list',\n docsPath: '/docs/basecamp-api-specs/sections/forwards.md#get-forwards',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/inboxes/:inboxId/forwards',\n pathParams: ForwardListPathParamsSchema,\n query: ForwardListQuerySchema,\n responses: {\n 200: ForwardListResponseSchema,\n },\n },\n get: {\n summary: 'Get a forward',\n description: 'Fetch a single email forward recording.',\n metadata: {\n tag: 'Forwards',\n operationId: 'forwards.get',\n docsPath: '/docs/basecamp-api-specs/sections/forwards.md#get-a-forward',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/inbox_forwards/:forwardId',\n pathParams: ForwardPathParamsSchema,\n responses: {\n 200: ForwardSchema,\n },\n },\n trash: {\n summary: 'Trash a forward',\n description:\n 'Move a forward to the trash. Trashed forwards can be restored from the Basecamp UI if needed.',\n metadata: {\n tag: 'Forwards',\n operationId: 'forwards.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:forwardId/status/trashed',\n pathParams: ForwardPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type ForwardsRouter = typeof forwardsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const ForwardSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: z.string(),\n subject: z.string(),\n from: z.string().nullable().optional(),\n replies_count: z.number().int().nonnegative(),\n replies_url: z.string().url(),\n});\n\nexport const ForwardListResponseSchema = z.array(ForwardSchema);\n\nexport const ForwardListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type Forward = z.infer<typeof ForwardSchema>;\nexport type ForwardListQuery = z.infer<typeof ForwardListQuerySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n InboxReplyListQuerySchema,\n InboxReplyListResponseSchema,\n InboxReplySchema,\n} from '../../schemas/communications/inbox-replies';\n\nconst InboxReplyListPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n forwardId: BasecampIdParamSchema,\n});\n\nconst InboxReplyPathParamsSchema = InboxReplyListPathParamsSchema.extend({\n replyId: BasecampIdParamSchema,\n});\n\nexport const inboxRepliesRouter = c.router({\n list: {\n summary: 'List inbox replies',\n description: 'Returns replies that were posted on a forwarded email.',\n metadata: {\n tag: 'Inbox Replies',\n operationId: 'inboxReplies.list',\n docsPath: '/docs/basecamp-api-specs/sections/inbox_replies.md#get-inbox-replies',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/inbox_forwards/:forwardId/replies',\n pathParams: InboxReplyListPathParamsSchema,\n query: InboxReplyListQuerySchema,\n responses: {\n 200: InboxReplyListResponseSchema,\n },\n },\n get: {\n summary: 'Get an inbox reply',\n description: 'Fetch a single reply posted to a forwarded email.',\n metadata: {\n tag: 'Inbox Replies',\n operationId: 'inboxReplies.get',\n docsPath: '/docs/basecamp-api-specs/sections/inbox_replies.md#get-an-inbox-reply',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/inbox_forwards/:forwardId/replies/:replyId',\n pathParams: InboxReplyPathParamsSchema,\n responses: {\n 200: InboxReplySchema,\n },\n },\n});\n\nexport type InboxRepliesRouter = typeof inboxRepliesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const InboxReplySchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: HtmlStringSchema,\n});\n\nexport const InboxReplyListResponseSchema = z.array(InboxReplySchema);\n\nexport const InboxReplyListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type InboxReply = z.infer<typeof InboxReplySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ClientApprovalListQuerySchema,\n ClientApprovalListResponseSchema,\n ClientApprovalSchema,\n} from '../../schemas/communications/client-approvals';\n\nconst ClientApprovalListPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst ClientApprovalPathParamsSchema = ClientApprovalListPathParamsSchema.extend({\n approvalId: BasecampIdParamSchema,\n});\n\nexport const clientApprovalsRouter = c.router({\n list: {\n summary: 'List client approvals',\n description:\n 'Returns the client approvals that have been posted in a project. Results are paginated.',\n metadata: {\n tag: 'Client Approvals',\n operationId: 'clientApprovals.list',\n docsPath: '/docs/basecamp-api-specs/sections/client_approvals.md#get-client-approvals',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/approvals',\n pathParams: ClientApprovalListPathParamsSchema,\n query: ClientApprovalListQuerySchema,\n responses: {\n 200: ClientApprovalListResponseSchema,\n },\n },\n get: {\n summary: 'Get a client approval',\n description: 'Fetch a specific client approval recording.',\n metadata: {\n tag: 'Client Approvals',\n operationId: 'clientApprovals.get',\n docsPath: '/docs/basecamp-api-specs/sections/client_approvals.md#get-a-client-approval',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/approvals/:approvalId',\n pathParams: ClientApprovalPathParamsSchema,\n responses: {\n 200: ClientApprovalSchema,\n },\n },\n});\n\nexport type ClientApprovalsRouter = typeof clientApprovalsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst ApprovalStatusEnum = z.enum(['pending', 'approved', 'rejected']).or(z.string());\n\nexport const ClientApprovalResponseSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url().optional(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: HtmlStringSchema,\n approved: z.boolean().optional(),\n});\n\nexport const ClientApprovalSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: HtmlStringSchema,\n subject: z.string(),\n due_on: IsoDateSchema.nullable(),\n replies_count: z.number().int().nonnegative(),\n replies_url: z.string().url(),\n approval_status: ApprovalStatusEnum,\n approver: PersonSummarySchema.optional(),\n responses: z.array(ClientApprovalResponseSchema).optional(),\n});\n\nexport const ClientApprovalListResponseSchema = z.array(ClientApprovalSchema);\n\nexport const ClientApprovalListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type ClientApproval = z.infer<typeof ClientApprovalSchema>;\nexport type ClientApprovalResponse = z.infer<typeof ClientApprovalResponseSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ClientCorrespondenceListQuerySchema,\n ClientCorrespondenceListResponseSchema,\n ClientCorrespondenceSchema,\n} from '../../schemas/communications/client-correspondences';\n\nconst ClientCorrespondenceListPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst ClientCorrespondencePathParamsSchema = ClientCorrespondenceListPathParamsSchema.extend({\n correspondenceId: BasecampIdParamSchema,\n});\n\nexport const clientCorrespondencesRouter = c.router({\n list: {\n summary: 'List client correspondences',\n description: 'Returns the client correspondences posted in a project.',\n metadata: {\n tag: 'Client Correspondences',\n operationId: 'clientCorrespondences.list',\n docsPath:\n '/docs/basecamp-api-specs/sections/client_correspondences.md#get-client-correspondences',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/correspondences',\n pathParams: ClientCorrespondenceListPathParamsSchema,\n query: ClientCorrespondenceListQuerySchema,\n responses: {\n 200: ClientCorrespondenceListResponseSchema,\n },\n },\n get: {\n summary: 'Get a client correspondence',\n description: 'Fetch a specific client correspondence recording.',\n metadata: {\n tag: 'Client Correspondences',\n operationId: 'clientCorrespondences.get',\n docsPath:\n '/docs/basecamp-api-specs/sections/client_correspondences.md#get-a-client-correspondence',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/correspondences/:correspondenceId',\n pathParams: ClientCorrespondencePathParamsSchema,\n responses: {\n 200: ClientCorrespondenceSchema,\n },\n },\n});\n\nexport type ClientCorrespondencesRouter = typeof clientCorrespondencesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const ClientCorrespondenceSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: HtmlStringSchema,\n subject: z.string(),\n replies_count: z.number().int().nonnegative(),\n replies_url: z.string().url(),\n});\n\nexport const ClientCorrespondenceListResponseSchema = z.array(ClientCorrespondenceSchema);\n\nexport const ClientCorrespondenceListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type ClientCorrespondence = z.infer<typeof ClientCorrespondenceSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ClientReplyListQuerySchema,\n ClientReplyListResponseSchema,\n ClientReplySchema,\n} from '../../schemas/communications/client-replies';\n\nconst ClientReplyListPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n recordingId: BasecampIdParamSchema,\n});\n\nconst ClientReplyPathParamsSchema = ClientReplyListPathParamsSchema.extend({\n replyId: BasecampIdParamSchema,\n});\n\nexport const clientRepliesRouter = c.router({\n list: {\n summary: 'List client replies',\n description:\n 'Returns replies that clients posted to client correspondences or client approvals.',\n metadata: {\n tag: 'Client Replies',\n operationId: 'clientReplies.list',\n docsPath: '/docs/basecamp-api-specs/sections/client_replies.md#get-client-replies',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/recordings/:recordingId/replies',\n pathParams: ClientReplyListPathParamsSchema,\n query: ClientReplyListQuerySchema,\n responses: {\n 200: ClientReplyListResponseSchema,\n },\n },\n get: {\n summary: 'Get a client reply',\n description: 'Fetch a single reply posted by a client.',\n metadata: {\n tag: 'Client Replies',\n operationId: 'clientReplies.get',\n docsPath: '/docs/basecamp-api-specs/sections/client_replies.md#get-a-client-reply',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/client/recordings/:recordingId/replies/:replyId',\n pathParams: ClientReplyPathParamsSchema,\n responses: {\n 200: ClientReplySchema,\n },\n },\n});\n\nexport type ClientRepliesRouter = typeof clientRepliesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const ClientReplySchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n content: HtmlStringSchema,\n});\n\nexport const ClientReplyListResponseSchema = z.array(ClientReplySchema);\n\nexport const ClientReplyListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type ClientReply = z.infer<typeof ClientReplySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ClientVisibilityRecordingSchema,\n ClientVisibilityUpdateBodySchema,\n} from '../../schemas/communications/client-visibility';\n\nconst ClientVisibilityPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n recordingId: BasecampIdParamSchema,\n});\n\nexport const clientVisibilityRouter = c.router({\n update: {\n summary: 'Toggle client visibility',\n description:\n 'Update whether a recording is visible to clients. Only recordings that control their own visibility can be toggled.',\n metadata: {\n tag: 'Client Visibility',\n operationId: 'clientVisibility.update',\n docsPath: '/docs/basecamp-api-specs/sections/client_visibility.md#toggle-client-visibility',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:recordingId/client_visibility',\n pathParams: ClientVisibilityPathParamsSchema,\n body: ClientVisibilityUpdateBodySchema,\n responses: {\n 200: ClientVisibilityRecordingSchema,\n },\n },\n});\n\nexport type ClientVisibilityRouter = typeof clientVisibilityRouter;\n","import { z } from 'zod';\n\nimport { RecordingSummarySchema } from '../recordings';\n\nexport const ClientVisibilityUpdateBodySchema = z.object({\n visible_to_clients: z.boolean(),\n});\n\nexport const ClientVisibilityRecordingSchema = RecordingSummarySchema.extend({\n visible_to_clients: z.boolean().optional(),\n});\n\nexport type ClientVisibilityUpdateBody = z.infer<typeof ClientVisibilityUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from './common';\n\nconst KnownRecordingTypeSchema = z.enum([\n 'Comment',\n 'Document',\n 'Kanban::Card',\n 'Kanban::Step',\n 'Message',\n 'Question::Answer',\n 'Schedule::Entry',\n 'Todo',\n 'Todolist',\n 'Upload',\n 'Vault',\n]);\n\nexport const RecordingTypeSchema = KnownRecordingTypeSchema.or(z.string());\n\nexport const RecordingSummarySchema = z\n .object({\n id: BasecampIdSchema,\n type: z.string(),\n status: RecordingStatusSchema.optional(),\n title: z.string().optional(),\n created_at: IsoDateTimeSchema.optional(),\n updated_at: IsoDateTimeSchema.optional(),\n url: z.string().url(),\n app_url: z.string().url(),\n bucket: BucketRefSchema.optional(),\n parent: RecordingRefSchema.optional(),\n creator: PersonSummarySchema.optional(),\n })\n .passthrough();\n\nexport const RecordingListResponseSchema = z.array(RecordingSummarySchema);\n\nexport const RecordingListQuerySchema = z.object({\n type: RecordingTypeSchema,\n bucket: z.string().optional(),\n status: RecordingStatusSchema.optional(),\n sort: z.enum(['created_at', 'updated_at']).or(z.string()).optional(),\n direction: z.enum(['asc', 'desc']).or(z.string()).optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type RecordingSummary = z.infer<typeof RecordingSummarySchema>;\nexport type RecordingListQuery = z.infer<typeof RecordingListQuerySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n DocumentCreateBodySchema,\n DocumentListQuerySchema,\n DocumentListResponseSchema,\n DocumentSchema,\n DocumentUpdateBodySchema,\n} from '../../schemas/documents';\n\nconst bucketAndVaultPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n vaultId: BasecampIdParamSchema,\n});\n\nconst bucketAndDocumentPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n documentId: BasecampIdParamSchema,\n});\n\nexport const documentsRouter = c.router({\n list: {\n summary: 'List documents',\n description:\n 'Returns a paginated list of active documents in a vault. Pagination data is available via the Link and X-Total-Count headers.',\n metadata: {\n tag: 'Documents',\n operationId: 'documents.list',\n docsPath: '/docs/basecamp-api-specs/sections/documents.md#get-documents',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/vaults/:vaultId/documents',\n pathParams: bucketAndVaultPathParams,\n query: DocumentListQuerySchema,\n responses: {\n 200: DocumentListResponseSchema,\n },\n },\n get: {\n summary: 'Get a document',\n description: 'Fetch the full representation of a single document.',\n metadata: {\n tag: 'Documents',\n operationId: 'documents.get',\n docsPath: '/docs/basecamp-api-specs/sections/documents.md#get-a-document',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/documents/:documentId',\n pathParams: bucketAndDocumentPathParams,\n responses: {\n 200: DocumentSchema,\n },\n },\n create: {\n summary: 'Create a document',\n description:\n 'Publish a document in a vault. Setting status to \"active\" makes the document visible immediately.',\n metadata: {\n tag: 'Documents',\n operationId: 'documents.create',\n docsPath: '/docs/basecamp-api-specs/sections/documents.md#create-a-document',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/vaults/:vaultId/documents',\n pathParams: bucketAndVaultPathParams,\n body: DocumentCreateBodySchema,\n responses: {\n 201: DocumentSchema,\n },\n },\n update: {\n summary: 'Update a document',\n description: 'Update the title or content of an existing document.',\n metadata: {\n tag: 'Documents',\n operationId: 'documents.update',\n docsPath: '/docs/basecamp-api-specs/sections/documents.md#update-a-document',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/documents/:documentId',\n pathParams: bucketAndDocumentPathParams,\n body: DocumentUpdateBodySchema,\n responses: {\n 200: DocumentSchema,\n },\n },\n trash: {\n summary: 'Trash a document',\n description:\n 'Move a document recording to the trash. Trashed items can be restored via the UI.',\n metadata: {\n tag: 'Documents',\n operationId: 'documents.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:documentId/status/trashed',\n pathParams: bucketAndDocumentPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type DocumentsRouter = typeof documentsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const DocumentCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Document'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n subscription_url: z.string().url(),\n comments_count: z.number().int().nonnegative(),\n comments_url: z.string().url(),\n position: z.number().int().nonnegative(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const DocumentSchema = DocumentCoreSchema.extend({\n content: HtmlStringSchema,\n});\n\nexport const DocumentListResponseSchema = z.array(DocumentSchema);\n\nexport const DocumentListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const DocumentCreateBodySchema = z.object({\n title: z.string().min(1),\n content: HtmlStringSchema,\n status: z.enum(['active', 'draft']).or(z.string()).optional(),\n});\n\nexport const DocumentUpdateBodySchema = z\n .object({\n title: z.string().min(1).optional(),\n content: HtmlStringSchema.optional(),\n })\n .refine(\n (value) => Object.keys(value).length > 0,\n 'At least one field must be provided to update a document.',\n );\n\nexport type Document = z.infer<typeof DocumentSchema>;\nexport type DocumentListQuery = z.infer<typeof DocumentListQuerySchema>;\nexport type DocumentCreateBody = z.infer<typeof DocumentCreateBodySchema>;\nexport type DocumentUpdateBody = z.infer<typeof DocumentUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const VaultCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Vault'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n position: z.number().int().nonnegative(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const VaultSchema = VaultCoreSchema.extend({\n documents_count: z.number().int().nonnegative(),\n documents_url: z.string().url(),\n uploads_count: z.number().int().nonnegative(),\n uploads_url: z.string().url(),\n vaults_count: z.number().int().nonnegative(),\n vaults_url: z.string().url(),\n});\n\nexport const VaultListResponseSchema = z.array(VaultSchema);\n\nexport const VaultListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const VaultCreateBodySchema = z.object({\n title: z.string().min(1),\n});\n\nexport const VaultUpdateBodySchema = z.object({\n title: z.string().min(1),\n});\n\nexport type Vault = z.infer<typeof VaultSchema>;\nexport type VaultListQuery = z.infer<typeof VaultListQuerySchema>;\nexport type VaultCreateBody = z.infer<typeof VaultCreateBodySchema>;\nexport type VaultUpdateBody = z.infer<typeof VaultUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nexport const UploadCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Upload'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n subscription_url: z.string().url(),\n comments_count: z.number().int().nonnegative(),\n comments_url: z.string().url(),\n position: z.number().int().nonnegative(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const UploadSchema = UploadCoreSchema.extend({\n description: HtmlStringSchema.optional(),\n content_type: z.string(),\n byte_size: z.number().int().nonnegative(),\n filename: z.string(),\n download_url: z.string().url(),\n app_download_url: z.string().url(),\n width: z.number().int().nonnegative().optional(),\n height: z.number().int().nonnegative().optional(),\n});\n\nexport const UploadListResponseSchema = z.array(UploadSchema);\n\nexport const UploadListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const UploadCreateBodySchema = z.object({\n attachable_sgid: z.string().min(1),\n description: HtmlStringSchema.optional(),\n base_name: z.string().optional(),\n});\n\nexport const UploadUpdateBodySchema = z\n .object({\n description: HtmlStringSchema.optional(),\n base_name: z.string().optional(),\n })\n .refine(\n (value) => Object.keys(value).length > 0,\n 'At least one field must be provided to update an upload.',\n );\n\nexport type Upload = z.infer<typeof UploadSchema>;\nexport type UploadListQuery = z.infer<typeof UploadListQuerySchema>;\nexport type UploadCreateBody = z.infer<typeof UploadCreateBodySchema>;\nexport type UploadUpdateBody = z.infer<typeof UploadUpdateBodySchema>;\n","import { z } from 'zod';\n\n/**\n * Response from creating an attachment via POST /attachments.json.\n * The attachable_sgid can be used in subsequent requests to create uploads or documents.\n */\nexport const AttachmentResponseSchema = z.object({\n attachable_sgid: z.string().min(1),\n});\n\n/**\n * Query parameters for creating an attachment.\n * The name parameter is required and should be the file name with extension.\n */\nexport const AttachmentCreateQuerySchema = z.object({\n name: z.string().min(1),\n});\n\nexport type AttachmentResponse = z.infer<typeof AttachmentResponseSchema>;\nexport type AttachmentCreateQuery = z.infer<typeof AttachmentCreateQuerySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n VaultCreateBodySchema,\n VaultListQuerySchema,\n VaultListResponseSchema,\n VaultSchema,\n VaultUpdateBodySchema,\n} from '../../schemas/documents';\n\nconst bucketAndVaultPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n vaultId: BasecampIdParamSchema,\n});\n\nconst bucketAndParentVaultPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n parentVaultId: BasecampIdParamSchema,\n});\n\nexport const vaultsRouter = c.router({\n list: {\n summary: 'List vaults',\n description:\n 'Returns a paginated list of vaults nested under a parent vault. Pagination data is available via the Link and X-Total-Count headers.',\n metadata: {\n tag: 'Vaults',\n operationId: 'vaults.list',\n docsPath: '/docs/basecamp-api-specs/sections/vaults.md#get-vaults',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/vaults/:parentVaultId/vaults',\n pathParams: bucketAndParentVaultPathParams,\n query: VaultListQuerySchema,\n responses: {\n 200: VaultListResponseSchema,\n },\n },\n get: {\n summary: 'Get a vault',\n description: 'Fetch the full representation of a single vault.',\n metadata: {\n tag: 'Vaults',\n operationId: 'vaults.get',\n docsPath: '/docs/basecamp-api-specs/sections/vaults.md#get-a-vault',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/vaults/:vaultId',\n pathParams: bucketAndVaultPathParams,\n responses: {\n 200: VaultSchema,\n },\n },\n create: {\n summary: 'Create a vault',\n description: 'Create a new vault nested under a parent vault.',\n metadata: {\n tag: 'Vaults',\n operationId: 'vaults.create',\n docsPath: '/docs/basecamp-api-specs/sections/vaults.md#create-a-vault',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/vaults/:parentVaultId/vaults',\n pathParams: bucketAndParentVaultPathParams,\n body: VaultCreateBodySchema,\n responses: {\n 201: VaultSchema,\n },\n },\n update: {\n summary: 'Update a vault',\n description: 'Update the title of an existing vault.',\n metadata: {\n tag: 'Vaults',\n operationId: 'vaults.update',\n docsPath: '/docs/basecamp-api-specs/sections/vaults.md#update-a-vault',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/vaults/:vaultId',\n pathParams: bucketAndVaultPathParams,\n body: VaultUpdateBodySchema,\n responses: {\n 200: VaultSchema,\n },\n },\n trash: {\n summary: 'Trash a vault',\n description: 'Move a vault recording to the trash. Trashed items can be restored via the UI.',\n metadata: {\n tag: 'Vaults',\n operationId: 'vaults.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:vaultId/status/trashed',\n pathParams: bucketAndVaultPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type VaultsRouter = typeof vaultsRouter;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n UploadCreateBodySchema,\n UploadListQuerySchema,\n UploadListResponseSchema,\n UploadSchema,\n UploadUpdateBodySchema,\n} from '../../schemas/documents';\n\nconst bucketAndVaultPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n vaultId: BasecampIdParamSchema,\n});\n\nconst bucketAndUploadPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n uploadId: BasecampIdParamSchema,\n});\n\nexport const uploadsRouter = c.router({\n list: {\n summary: 'List uploads',\n description:\n 'Returns a paginated list of active uploads in a vault. Pagination data is available via the Link and X-Total-Count headers.',\n metadata: {\n tag: 'Uploads',\n operationId: 'uploads.list',\n docsPath: '/docs/basecamp-api-specs/sections/uploads.md#get-uploads',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/vaults/:vaultId/uploads',\n pathParams: bucketAndVaultPathParams,\n query: UploadListQuerySchema,\n responses: {\n 200: UploadListResponseSchema,\n },\n },\n get: {\n summary: 'Get an upload',\n description: 'Fetch the full representation of a single upload.',\n metadata: {\n tag: 'Uploads',\n operationId: 'uploads.get',\n docsPath: '/docs/basecamp-api-specs/sections/uploads.md#get-an-upload',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/uploads/:uploadId',\n pathParams: bucketAndUploadPathParams,\n responses: {\n 200: UploadSchema,\n },\n },\n create: {\n summary: 'Create an upload',\n description:\n 'Create an upload in a vault using a previously obtained attachable_sgid from the attachments endpoint.',\n metadata: {\n tag: 'Uploads',\n operationId: 'uploads.create',\n docsPath: '/docs/basecamp-api-specs/sections/uploads.md#create-an-upload',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/vaults/:vaultId/uploads',\n pathParams: bucketAndVaultPathParams,\n body: UploadCreateBodySchema,\n responses: {\n 201: UploadSchema,\n },\n },\n update: {\n summary: 'Update an upload',\n description: 'Update the description or base name of an existing upload.',\n metadata: {\n tag: 'Uploads',\n operationId: 'uploads.update',\n docsPath: '/docs/basecamp-api-specs/sections/uploads.md#update-an-upload',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/uploads/:uploadId',\n pathParams: bucketAndUploadPathParams,\n body: UploadUpdateBodySchema,\n responses: {\n 200: UploadSchema,\n },\n },\n trash: {\n summary: 'Trash an upload',\n description: 'Move an upload recording to the trash. Trashed items can be restored via the UI.',\n metadata: {\n tag: 'Uploads',\n operationId: 'uploads.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:uploadId/status/trashed',\n pathParams: bucketAndUploadPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type UploadsRouter = typeof uploadsRouter;\n","import { c } from '../../c';\nimport { AttachmentCreateQuerySchema, AttachmentResponseSchema } from '../../schemas/documents';\n\nexport const attachmentsRouter = c.router({\n create: {\n summary: 'Create an attachment',\n description:\n 'Upload a file to get an attachable_sgid that can be used in subsequent requests to create uploads or documents. The request body should be the raw binary file data. Note: Content-Type and Content-Length headers must be set by the caller.',\n metadata: {\n tag: 'Attachments',\n operationId: 'attachments.create',\n docsPath: '/docs/basecamp-api-specs/sections/attachments.md#create-an-attachment',\n } as const,\n method: 'POST',\n path: '/attachments',\n query: AttachmentCreateQuerySchema,\n body: c.type<ArrayBuffer>(),\n responses: {\n 201: AttachmentResponseSchema,\n },\n },\n});\n\nexport type AttachmentsRouter = typeof attachmentsRouter;\n","import { z } from 'zod';\n\nimport { c } from '../c';\nimport { BasecampIdParamSchema } from '../schemas/common';\nimport { RecordingEventListQuerySchema, RecordingEventListResponseSchema } from '../schemas/events';\n\nconst RecordingEventsPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n recordingId: BasecampIdParamSchema,\n});\n\nexport const eventsRouter = c.router({\n listForRecording: {\n summary: 'List recording events',\n description:\n 'Returns the event history for a specific recording. Pagination data is available via Link headers.',\n metadata: {\n tag: 'Events',\n operationId: 'events.listForRecording',\n docsPath: '/docs/basecamp-api-specs/sections/events.md#get-events',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/recordings/:recordingId/events',\n pathParams: RecordingEventsPathParamsSchema,\n query: RecordingEventListQuerySchema.optional(),\n responses: {\n 200: RecordingEventListResponseSchema,\n },\n },\n});\n\nexport type EventsRouter = typeof eventsRouter;\n","import { z } from 'zod';\n\nimport { BasecampIdSchema, IsoDateTimeSchema, PersonSummarySchema } from './common';\n\nexport const EventDetailsSchema = z.object({}).passthrough();\n\nexport const RecordingEventSchema = z.object({\n id: BasecampIdSchema,\n recording_id: BasecampIdSchema,\n action: z.string(),\n details: EventDetailsSchema,\n created_at: IsoDateTimeSchema,\n creator: PersonSummarySchema,\n});\n\nexport const RecordingEventListResponseSchema = z.array(RecordingEventSchema);\n\nexport const RecordingEventListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type RecordingEvent = z.infer<typeof RecordingEventSchema>;\nexport type RecordingEventListQuery = z.infer<typeof RecordingEventListQuerySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../c';\nimport { BasecampIdParamSchema } from '../schemas/common';\nimport {\n LineupMarkerCreateBodySchema,\n LineupMarkerUpdateBodySchema,\n} from '../schemas/lineup-markers';\n\nconst LineupMarkerPathParamsSchema = z.object({\n markerId: BasecampIdParamSchema,\n});\n\nexport const lineupMarkersRouter = c.router({\n create: {\n summary: 'Create a lineup marker',\n description: 'Create an account-wide lineup marker that appears on the Lineup timeline.',\n metadata: {\n tag: 'LineupMarkers',\n operationId: 'lineupMarkers.create',\n docsPath: '/docs/basecamp-api-specs/sections/lineup_markers.md#create-a-marker',\n } as const,\n method: 'POST',\n path: '/lineup/markers',\n body: LineupMarkerCreateBodySchema,\n responses: {\n 201: c.noBody(),\n },\n },\n update: {\n summary: 'Update a lineup marker',\n description: 'Update the name or date of an existing lineup marker.',\n metadata: {\n tag: 'LineupMarkers',\n operationId: 'lineupMarkers.update',\n docsPath: '/docs/basecamp-api-specs/sections/lineup_markers.md#update-a-marker',\n } as const,\n method: 'PUT',\n path: '/lineup/markers/:markerId',\n pathParams: LineupMarkerPathParamsSchema,\n body: LineupMarkerUpdateBodySchema,\n responses: {\n 200: c.noBody(),\n },\n },\n destroy: {\n summary: 'Destroy a lineup marker',\n description: 'Permanently delete a lineup marker immediately.',\n metadata: {\n tag: 'LineupMarkers',\n operationId: 'lineupMarkers.destroy',\n docsPath: '/docs/basecamp-api-specs/sections/lineup_markers.md#destroy-a-marker',\n } as const,\n method: 'DELETE',\n path: '/lineup/markers/:markerId',\n pathParams: LineupMarkerPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type LineupMarkersRouter = typeof lineupMarkersRouter;\n","import { z } from 'zod';\n\nimport { IsoDateSchema } from './common';\n\nexport const LineupMarkerCreateBodySchema = z.object({\n name: z.string().min(1),\n date: IsoDateSchema,\n});\n\nexport const LineupMarkerUpdateBodySchema = z\n .object({\n name: z.string().min(1).optional(),\n date: IsoDateSchema.optional(),\n })\n .refine((value) => value.name !== undefined || value.date !== undefined, {\n message: 'Either name or date must be provided.',\n });\n\nexport type LineupMarkerCreateBody = z.infer<typeof LineupMarkerCreateBodySchema>;\nexport type LineupMarkerUpdateBody = z.infer<typeof LineupMarkerUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../c';\nimport { BasecampIdParamSchema } from '../schemas/common';\nimport {\n PeopleListQuerySchema,\n PeopleListResponseSchema,\n PersonSchema,\n ProjectPeopleAccessBodySchema,\n ProjectPeopleAccessResponseSchema,\n} from '../schemas/people';\n\nconst ProjectPathParamsSchema = z.object({\n projectId: BasecampIdParamSchema,\n});\n\nconst PersonPathParamsSchema = z.object({\n personId: BasecampIdParamSchema,\n});\n\nexport const peopleRouter = c.router({\n list: {\n summary: 'List people',\n description:\n 'Returns the people visible to the authenticated user across the entire Basecamp account. Pagination data is provided through Link headers when the dataset exceeds a single page.',\n metadata: {\n tag: 'People',\n operationId: 'people.list',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#get-all-people',\n } as const,\n method: 'GET',\n path: '/people',\n query: PeopleListQuerySchema.optional(),\n responses: {\n 200: PeopleListResponseSchema,\n },\n },\n listForProject: {\n summary: 'List project people',\n description: 'Returns the active people on a specific project.',\n metadata: {\n tag: 'People',\n operationId: 'people.listForProject',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#get-people-on-a-project',\n } as const,\n method: 'GET',\n path: '/projects/:projectId/people',\n pathParams: ProjectPathParamsSchema,\n responses: {\n 200: PeopleListResponseSchema,\n },\n },\n updateProjectAccess: {\n summary: 'Update project access',\n description:\n 'Grant, revoke, or create people directly on a project. At least one of grant, revoke, or create must be present in the request body.',\n metadata: {\n tag: 'People',\n operationId: 'people.updateProjectAccess',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#update-who-can-access-a-project',\n } as const,\n method: 'PUT',\n path: '/projects/:projectId/people/users',\n pathParams: ProjectPathParamsSchema,\n body: ProjectPeopleAccessBodySchema,\n responses: {\n 200: ProjectPeopleAccessResponseSchema,\n },\n },\n listPingable: {\n summary: 'List pingable people',\n description:\n 'Returns the people who can be pinged by the authenticated user. The endpoint is not paginated.',\n metadata: {\n tag: 'People',\n operationId: 'people.listPingable',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#get-pingable-people',\n } as const,\n method: 'GET',\n path: '/circles/people',\n responses: {\n 200: PeopleListResponseSchema,\n },\n },\n get: {\n summary: 'Get a person',\n description: 'Fetch the profile for a person by identifier.',\n metadata: {\n tag: 'People',\n operationId: 'people.get',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#get-person',\n } as const,\n method: 'GET',\n path: '/people/:personId',\n pathParams: PersonPathParamsSchema,\n responses: {\n 200: PersonSchema,\n },\n },\n me: {\n summary: 'Get my personal info',\n description: 'Fetch the profile for the authenticated user.',\n metadata: {\n tag: 'People',\n operationId: 'people.me',\n docsPath: '/docs/basecamp-api-specs/sections/people.md#get-my-personal-info',\n } as const,\n method: 'GET',\n path: '/my/profile',\n responses: {\n 200: PersonSchema,\n },\n },\n});\n\nexport type PeopleRouter = typeof peopleRouter;\n","import { z } from 'zod';\n\nimport { BasecampIdSchema, PersonSummarySchema } from './common';\n\nexport const PersonSchema = PersonSummarySchema;\n\nexport const PeopleListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const PeopleListResponseSchema = z.array(PersonSchema);\n\nconst ProjectAccessCreateEntrySchema = z.object({\n name: z.string().min(1),\n email_address: z.string().email(),\n title: z.string().optional(),\n company_name: z.string().optional(),\n});\n\nexport const ProjectPeopleAccessBodySchema = z\n .object({\n grant: z.array(BasecampIdSchema).min(1).optional(),\n revoke: z.array(BasecampIdSchema).min(1).optional(),\n create: z.array(ProjectAccessCreateEntrySchema).min(1).optional(),\n })\n .refine(\n (value) =>\n value.grant !== undefined || value.revoke !== undefined || value.create !== undefined,\n {\n message: 'At least one of grant, revoke, or create must be provided.',\n path: ['grant'],\n },\n );\n\nexport const ProjectPeopleAccessResponseSchema = z.object({\n granted: z.array(PersonSchema),\n revoked: z.array(PersonSchema),\n});\n\nexport type Person = z.infer<typeof PersonSchema>;\nexport type PeopleListQuery = z.infer<typeof PeopleListQuerySchema>;\nexport type ProjectPeopleAccessBody = z.infer<typeof ProjectPeopleAccessBodySchema>;\nexport type ProjectPeopleAccessResponse = z.infer<typeof ProjectPeopleAccessResponseSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../c';\nimport { BasecampIdParamSchema } from '../schemas/common';\nimport {\n ProjectCreateBodySchema,\n ProjectListQuerySchema,\n ProjectListResponseSchema,\n ProjectSchema,\n ProjectUpdateBodySchema,\n} from '../schemas/projects';\n\nconst ProjectPathParamsSchema = z.object({\n projectId: BasecampIdParamSchema,\n});\n\nexport const projectsRouter = c.router({\n list: {\n summary: 'List projects',\n description:\n 'Returns active projects visible to the authenticated user. Pagination data is exposed via standard Link headers.',\n metadata: {\n tag: 'Projects',\n operationId: 'projects.list',\n docsPath: '/docs/basecamp-api-specs/sections/projects.md#get-projects',\n } as const,\n method: 'GET',\n path: '/projects',\n query: ProjectListQuerySchema.optional(),\n responses: {\n 200: ProjectListResponseSchema,\n },\n },\n get: {\n summary: 'Get a project',\n description: 'Fetch the full representation of a single project by its identifier.',\n metadata: {\n tag: 'Projects',\n operationId: 'projects.get',\n docsPath: '/docs/basecamp-api-specs/sections/projects.md#get-a-project',\n } as const,\n method: 'GET',\n path: '/projects/:projectId',\n pathParams: ProjectPathParamsSchema,\n responses: {\n 200: ProjectSchema,\n },\n },\n create: {\n summary: 'Create a project',\n description: 'Create a new project with an optional description.',\n metadata: {\n tag: 'Projects',\n operationId: 'projects.create',\n docsPath: '/docs/basecamp-api-specs/sections/projects.md#create-a-project',\n } as const,\n method: 'POST',\n path: '/projects',\n body: ProjectCreateBodySchema,\n responses: {\n 201: ProjectSchema,\n 507: z.object({\n error: z.string(),\n }),\n },\n },\n update: {\n summary: 'Update a project',\n description:\n 'Update a project name, description, admissions policy, or schedule dates. Basecamp requires the name to be present in every update request.',\n metadata: {\n tag: 'Projects',\n operationId: 'projects.update',\n docsPath: '/docs/basecamp-api-specs/sections/projects.md#update-a-project',\n } as const,\n method: 'PUT',\n path: '/projects/:projectId',\n pathParams: ProjectPathParamsSchema,\n body: ProjectUpdateBodySchema,\n responses: {\n 200: ProjectSchema,\n },\n },\n trash: {\n summary: 'Trash a project',\n description:\n 'Move a project to the trash. The project will be permanently deleted after 30 days unless restored via the UI.',\n metadata: {\n tag: 'Projects',\n operationId: 'projects.trash',\n docsPath: '/docs/basecamp-api-specs/sections/projects.md#trash-a-project',\n } as const,\n method: 'DELETE',\n path: '/projects/:projectId',\n pathParams: ProjectPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type ProjectsRouter = typeof projectsRouter;\n","import { z } from 'zod';\n\nimport { BasecampIdSchema, HtmlStringSchema, IsoDateTimeSchema } from './common';\n\nconst ProjectDockEntrySchema = z.object({\n id: BasecampIdSchema,\n title: z.string(),\n name: z.string(),\n enabled: z.boolean(),\n position: z.number().int().nullable(),\n url: z.string().url(),\n app_url: z.string().url(),\n});\n\nconst ProjectClientCompanySchema = z.object({\n id: BasecampIdSchema,\n name: z.string(),\n});\n\nconst ProjectClientsideSchema = z.object({\n url: z.string().url(),\n app_url: z.string().url(),\n});\n\nexport const ProjectStatusSchema = z.enum(['active', 'archived', 'trashed']).or(z.string());\n\nexport const ProjectCoreSchema = z.object({\n id: BasecampIdSchema,\n status: ProjectStatusSchema,\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n name: z.string(),\n description: HtmlStringSchema.nullable().optional(),\n purpose: z.string(),\n clients_enabled: z.boolean(),\n bookmark_url: z.string().url(),\n url: z.string().url(),\n app_url: z.string().url(),\n dock: z.array(ProjectDockEntrySchema),\n client_company: ProjectClientCompanySchema.optional(),\n clientside: ProjectClientsideSchema.optional(),\n});\n\nexport const ProjectSchema = ProjectCoreSchema.extend({\n bookmarked: z.boolean().optional(),\n});\n\nexport const ProjectListResponseSchema = z.array(ProjectSchema);\n\nexport const ProjectListQuerySchema = z.object({\n status: z.enum(['active', 'archived', 'trashed']).or(z.string()).optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const ProjectCreateBodySchema = z.object({\n name: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n});\n\nconst ScheduleAttributesSchema = z\n .object({\n start_date: z.string().date().optional(),\n end_date: z.string().date().optional(),\n })\n .refine(\n (value) =>\n (value.start_date === undefined && value.end_date === undefined) ||\n (value.start_date !== undefined && value.end_date !== undefined),\n {\n message: 'Both start_date and end_date must be provided together.',\n path: ['end_date'],\n },\n );\n\nexport const ProjectUpdateBodySchema = z.object({\n name: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n admissions: z.enum(['invite', 'employee', 'team']).or(z.string()).optional(),\n schedule_attributes: ScheduleAttributesSchema.optional(),\n});\n\nexport type Project = z.infer<typeof ProjectSchema>;\nexport type ProjectListResponse = z.infer<typeof ProjectListResponseSchema>;\nexport type ProjectCreateBody = z.infer<typeof ProjectCreateBodySchema>;\nexport type ProjectUpdateBody = z.infer<typeof ProjectUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../c';\nimport { BasecampIdParamSchema } from '../schemas/common';\nimport { RecordingListQuerySchema, RecordingListResponseSchema } from '../schemas/recordings';\n\nconst BucketRecordingPathParamsSchema = z.object({\n bucketId: BasecampIdParamSchema,\n recordingId: BasecampIdParamSchema,\n});\n\nexport const recordingsRouter = c.router({\n list: {\n summary: 'List recordings',\n description:\n 'Returns a paginated list of recordings filtered by type and optional bucket or status filters. Use this endpoint to enumerate cross-project activity for a specific recording type.',\n metadata: {\n tag: 'Recordings',\n operationId: 'recordings.list',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#get-recordings',\n } as const,\n method: 'GET',\n path: '/projects/recordings',\n query: RecordingListQuerySchema,\n responses: {\n 200: RecordingListResponseSchema,\n },\n },\n trash: {\n summary: 'Trash a recording',\n description: 'Mark a recording as trashed. Trashed recordings can be restored via the UI.',\n metadata: {\n tag: 'Recordings',\n operationId: 'recordings.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:recordingId/status/trashed',\n pathParams: BucketRecordingPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n archive: {\n summary: 'Archive a recording',\n description: 'Mark a recording as archived. Archived recordings remain available but hidden.',\n metadata: {\n tag: 'Recordings',\n operationId: 'recordings.archive',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#archive-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:recordingId/status/archived',\n pathParams: BucketRecordingPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n activate: {\n summary: 'Unarchive a recording',\n description: 'Mark a recording as active to reverse a previous archive action.',\n metadata: {\n tag: 'Recordings',\n operationId: 'recordings.activate',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#unarchive-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:recordingId/status/active',\n pathParams: BucketRecordingPathParamsSchema,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type RecordingsRouter = typeof recordingsRouter;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport { ScheduleSchema, ScheduleUpdateBodySchema } from '../../schemas/scheduling/schedules';\n\nconst bucketAndSchedulePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n scheduleId: BasecampIdParamSchema,\n});\n\nexport const schedulesRouter = c.router({\n get: {\n summary: 'Get schedule',\n description:\n 'Returns the schedule for a project. All schedule entries under a project are children of this resource.',\n metadata: {\n tag: 'Schedules',\n operationId: 'schedules.get',\n docsPath: '/docs/basecamp-api-specs/sections/schedules.md#get-schedule',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/schedules/:scheduleId',\n pathParams: bucketAndSchedulePathParams,\n responses: {\n 200: ScheduleSchema,\n },\n },\n update: {\n summary: 'Update a schedule',\n description:\n 'Update whether the schedule should include due dates from to-dos, cards, and steps.',\n metadata: {\n tag: 'Schedules',\n operationId: 'schedules.update',\n docsPath: '/docs/basecamp-api-specs/sections/schedules.md#update-a-schedule',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/schedules/:scheduleId',\n pathParams: bucketAndSchedulePathParams,\n body: ScheduleUpdateBodySchema,\n responses: {\n 200: ScheduleSchema,\n },\n },\n});\n\nexport type SchedulesRouter = typeof schedulesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingStatusSchema,\n} from '../common';\n\n/**\n * Complete schedule resource with all metadata.\n */\nexport const ScheduleSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Schedule'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n position: z.number().int(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n include_due_assignments: z.boolean(),\n entries_count: z.number().int(),\n entries_url: z.string().url(),\n});\n\n/**\n * Request body for updating a schedule.\n */\nexport const ScheduleUpdateBodySchema = z.object({\n include_due_assignments: z.boolean(),\n});\n\nexport type Schedule = z.infer<typeof ScheduleSchema>;\nexport type ScheduleUpdateBody = z.infer<typeof ScheduleUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n ScheduleEntryCreateBodySchema,\n ScheduleEntryListQuerySchema,\n ScheduleEntryListResponseSchema,\n ScheduleEntrySchema,\n ScheduleEntryUpdateBodySchema,\n} from '../../schemas/scheduling/schedule-entries';\n\nconst bucketAndSchedulePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n scheduleId: BasecampIdParamSchema,\n});\n\nconst bucketAndEntryPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n scheduleEntryId: BasecampIdParamSchema,\n});\n\nconst bucketEntryOccurrencePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n scheduleEntryId: BasecampIdParamSchema,\n occurrenceDate: z.string(),\n});\n\nexport const scheduleEntriesRouter = c.router({\n list: {\n summary: 'List schedule entries',\n description:\n 'Returns a paginated list of schedule entries in a schedule. Use status filter to get archived or trashed entries.',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.list',\n docsPath: '/docs/basecamp-api-specs/sections/schedule_entries.md#get-schedule-entries',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/schedules/:scheduleId/entries',\n pathParams: bucketAndSchedulePathParams,\n query: ScheduleEntryListQuerySchema,\n responses: {\n 200: ScheduleEntryListResponseSchema,\n },\n },\n get: {\n summary: 'Get a schedule entry',\n description:\n 'Returns a schedule entry. For recurring entries, this redirects to the first occurrence.',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.get',\n docsPath: '/docs/basecamp-api-specs/sections/schedule_entries.md#get-a-schedule-entry',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/schedule_entries/:scheduleEntryId',\n pathParams: bucketAndEntryPathParams,\n responses: {\n 200: ScheduleEntrySchema,\n },\n },\n getOccurrence: {\n summary: 'Get a specific occurrence of a recurring schedule entry',\n description:\n 'Returns a specific occurrence of a recurring schedule entry (e.g., 20190218 for February 18, 2019).',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.getOccurrence',\n docsPath: '/docs/basecamp-api-specs/sections/schedule_entries.md#get-a-schedule-entry',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/schedule_entries/:scheduleEntryId/occurrences/:occurrenceDate',\n pathParams: bucketEntryOccurrencePathParams,\n responses: {\n 200: ScheduleEntrySchema,\n },\n },\n create: {\n summary: 'Create a schedule entry',\n description:\n 'Creates a new schedule entry in a schedule. Required fields: summary, starts_at, and ends_at.',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.create',\n docsPath: '/docs/basecamp-api-specs/sections/schedule_entries.md#create-a-schedule-entry',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/schedules/:scheduleId/entries',\n pathParams: bucketAndSchedulePathParams,\n body: ScheduleEntryCreateBodySchema,\n responses: {\n 201: ScheduleEntrySchema,\n },\n },\n update: {\n summary: 'Update a schedule entry',\n description: 'Updates an existing schedule entry. Any create parameters can be changed.',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.update',\n docsPath: '/docs/basecamp-api-specs/sections/schedule_entries.md#update-a-schedule-entry',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/schedule_entries/:scheduleEntryId',\n pathParams: bucketAndEntryPathParams,\n body: ScheduleEntryUpdateBodySchema,\n responses: {\n 200: ScheduleEntrySchema,\n },\n },\n trash: {\n summary: 'Trash a schedule entry',\n description: 'Moves a schedule entry to the trash. Trashed items can be restored via the UI.',\n metadata: {\n tag: 'Schedule Entries',\n operationId: 'scheduleEntries.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:scheduleEntryId/status/trashed',\n pathParams: bucketAndEntryPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type ScheduleEntriesRouter = typeof scheduleEntriesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\n/**\n * Recurrence schedule for recurring schedule entries.\n */\nexport const RecurrenceScheduleSchema = z.object({\n frequency: z.string(),\n days: z.array(z.number().int()),\n hour: z.number().int(),\n minute: z.number().int(),\n week_instance: z.number().int().nullable(),\n week_interval: z.number().int().nullable(),\n month_interval: z.number().int().nullable(),\n start_date: z.string(),\n end_date: z.string().nullable(),\n});\n\n/**\n * Complete schedule entry resource.\n */\nexport const ScheduleEntrySchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Schedule::Entry'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n subscription_url: z.string().url(),\n comments_count: z.number().int(),\n comments_url: z.string().url(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n description: HtmlStringSchema,\n summary: z.string(),\n all_day: z.boolean(),\n starts_at: z.string(),\n ends_at: z.string(),\n participants: z.array(PersonSummarySchema),\n recurrence_schedule: RecurrenceScheduleSchema.optional(),\n});\n\n/**\n * List response for schedule entries.\n */\nexport const ScheduleEntryListResponseSchema = z.array(ScheduleEntrySchema);\n\n/**\n * Query parameters for listing schedule entries.\n */\nexport const ScheduleEntryListQuerySchema = z.object({\n status: RecordingStatusSchema.optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\n/**\n * Request body for creating a schedule entry.\n */\nexport const ScheduleEntryCreateBodySchema = z.object({\n summary: z.string(),\n starts_at: z.string(),\n ends_at: z.string(),\n description: HtmlStringSchema.optional(),\n participant_ids: z.array(BasecampIdSchema).optional(),\n all_day: z.boolean().optional(),\n notify: z.boolean().optional(),\n});\n\n/**\n * Request body for updating a schedule entry.\n */\nexport const ScheduleEntryUpdateBodySchema = z.object({\n summary: z.string().optional(),\n starts_at: z.string().optional(),\n ends_at: z.string().optional(),\n description: HtmlStringSchema.optional(),\n participant_ids: z.array(BasecampIdSchema).optional(),\n all_day: z.boolean().optional(),\n notify: z.boolean().optional(),\n});\n\nexport type ScheduleEntry = z.infer<typeof ScheduleEntrySchema>;\nexport type ScheduleEntryListQuery = z.infer<typeof ScheduleEntryListQuerySchema>;\nexport type ScheduleEntryCreateBody = z.infer<typeof ScheduleEntryCreateBodySchema>;\nexport type ScheduleEntryUpdateBody = z.infer<typeof ScheduleEntryUpdateBodySchema>;\nexport type RecurrenceSchedule = z.infer<typeof RecurrenceScheduleSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport { QuestionnaireSchema } from '../../schemas/scheduling/questionnaires';\n\nconst bucketAndQuestionnairePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n questionnaireId: BasecampIdParamSchema,\n});\n\nexport const questionnairesRouter = c.router({\n get: {\n summary: 'Get questionnaire',\n description:\n 'Returns the questionnaire for a project. All automatic check-in questions are children of this resource.',\n metadata: {\n tag: 'Questionnaires',\n operationId: 'questionnaires.get',\n docsPath: '/docs/basecamp-api-specs/sections/questionnaires.md#get-questionnaire',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/questionnaires/:questionnaireId',\n pathParams: bucketAndQuestionnairePathParams,\n responses: {\n 200: QuestionnaireSchema,\n },\n },\n});\n\nexport type QuestionnairesRouter = typeof questionnairesRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingStatusSchema,\n} from '../common';\n\n/**\n * Complete questionnaire resource.\n */\nexport const QuestionnaireSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Questionnaire'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n name: z.string(),\n questions_count: z.number().int(),\n questions_url: z.string().url(),\n});\n\nexport type Questionnaire = z.infer<typeof QuestionnaireSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n QuestionListQuerySchema,\n QuestionListResponseSchema,\n QuestionSchema,\n} from '../../schemas/scheduling/questions';\n\nconst bucketAndQuestionnairePathParams = z.object({\n bucketId: BasecampIdParamSchema,\n questionnaireId: BasecampIdParamSchema,\n});\n\nconst bucketAndQuestionPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n questionId: BasecampIdParamSchema,\n});\n\nexport const questionsRouter = c.router({\n list: {\n summary: 'List questions',\n description: 'Returns a paginated list of questions in a questionnaire (automatic check-ins).',\n metadata: {\n tag: 'Questions',\n operationId: 'questions.list',\n docsPath: '/docs/basecamp-api-specs/sections/questions.md#get-questions',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/questionnaires/:questionnaireId/questions',\n pathParams: bucketAndQuestionnairePathParams,\n query: QuestionListQuerySchema,\n responses: {\n 200: QuestionListResponseSchema,\n },\n },\n get: {\n summary: 'Get a question',\n description: 'Returns a single automatic check-in question with its schedule and metadata.',\n metadata: {\n tag: 'Questions',\n operationId: 'questions.get',\n docsPath: '/docs/basecamp-api-specs/sections/questions.md#get-a-question',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/questions/:questionId',\n pathParams: bucketAndQuestionPathParams,\n responses: {\n 200: QuestionSchema,\n },\n },\n});\n\nexport type QuestionsRouter = typeof questionsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\n/**\n * Question schedule configuration.\n */\nexport const QuestionScheduleSchema = z.object({\n frequency: z.string(),\n days: z.array(z.number().int()),\n hour: z.number().int(),\n minute: z.number().int(),\n week_instance: z.number().int().nullable(),\n week_interval: z.number().int().nullable(),\n month_interval: z.number().int().nullable(),\n start_date: z.string(),\n end_date: z.string().nullable(),\n});\n\n/**\n * Complete question resource.\n */\nexport const QuestionSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.literal('Question'),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url(),\n subscription_url: z.string().url(),\n parent: RecordingRefSchema,\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n paused: z.boolean(),\n schedule: QuestionScheduleSchema,\n answers_count: z.number().int(),\n answers_url: z.string().url(),\n});\n\n/**\n * List response for questions.\n */\nexport const QuestionListResponseSchema = z.array(QuestionSchema);\n\n/**\n * Query parameters for listing questions.\n */\nexport const QuestionListQuerySchema = z.object({\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport type Question = z.infer<typeof QuestionSchema>;\nexport type QuestionSchedule = z.infer<typeof QuestionScheduleSchema>;\nexport type QuestionListQuery = z.infer<typeof QuestionListQuerySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport { TodoSetSchema } from '../../schemas/tasks/todosets';\n\nconst bucketPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoSetPathParams = bucketPathParams.extend({\n todosetId: BasecampIdParamSchema,\n});\n\nexport const todoSetsRouter = c.router({\n get: {\n summary: 'Get a to-do set',\n description:\n 'Return the to-do set container for a project. Use this to discover to-do lists and their groups.',\n metadata: {\n tag: 'Todo Sets',\n operationId: 'todoSets.get',\n docsPath: '/docs/basecamp-api-specs/sections/todosets.md#get-to-do-set',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todosets/:todosetId',\n pathParams: bucketAndTodoSetPathParams,\n responses: {\n 200: TodoSetSchema,\n },\n },\n});\n\nexport type TodoSetsRouter = typeof todoSetsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst TodoRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n comments_count: z.number().int().nonnegative().optional(),\n comments_url: z.string().url().optional(),\n position: z.number().int().nonnegative().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const TodoSetSchema = TodoRecordingCoreSchema.omit({\n subscription_url: true,\n comments_count: true,\n comments_url: true,\n}).extend({\n completed: z.boolean(),\n completed_ratio: z.string(),\n name: z.string(),\n todolists_count: z.number().int().nonnegative(),\n todolists_url: z.string().url(),\n app_todoslists_url: z.string().url(),\n});\n\nexport type TodoSet = z.infer<typeof TodoSetSchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n TodoListCreateBodySchema,\n TodoListQuerySchema,\n TodoListSchema,\n TodoListUpdateBodySchema,\n TodoListsResponseSchema,\n TodoTopLevelListSchema,\n} from '../../schemas/tasks/todolists';\n\nconst bucketPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoSetPathParams = bucketPathParams.extend({\n todosetId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoListPathParams = bucketPathParams.extend({\n todolistId: BasecampIdParamSchema,\n});\n\nexport const todoListsRouter = c.router({\n list: {\n summary: 'List to-do lists',\n description:\n 'List active to-do lists within a to-do set. Pagination metadata is exposed via Link headers.',\n metadata: {\n tag: 'Todo Lists',\n operationId: 'todoLists.list',\n docsPath: '/docs/basecamp-api-specs/sections/todolists.md#get-to-do-lists',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todosets/:todosetId/todolists',\n pathParams: bucketAndTodoSetPathParams,\n query: TodoListQuerySchema.optional(),\n responses: {\n 200: TodoListsResponseSchema,\n },\n },\n get: {\n summary: 'Get a to-do list',\n description:\n 'Fetch a to-do list or group. When the list represents a group, the payload includes a group_position_url instead of groups_url.',\n metadata: {\n tag: 'Todo Lists',\n operationId: 'todoLists.get',\n docsPath: '/docs/basecamp-api-specs/sections/todolists.md#get-a-to-do-list',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todolists/:todolistId',\n pathParams: bucketAndTodoListPathParams,\n responses: {\n 200: TodoListSchema,\n },\n },\n create: {\n summary: 'Create a to-do list',\n description: 'Create a new to-do list inside a to-do set. Descriptions accept rich text HTML.',\n metadata: {\n tag: 'Todo Lists',\n operationId: 'todoLists.create',\n docsPath: '/docs/basecamp-api-specs/sections/todolists.md#create-a-to-do-list',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/todosets/:todosetId/todolists',\n pathParams: bucketAndTodoSetPathParams,\n body: TodoListCreateBodySchema,\n responses: {\n 201: TodoTopLevelListSchema,\n },\n },\n update: {\n summary: 'Update a to-do list',\n description:\n 'Update the name or description of an existing to-do list. Basecamp requires the name to be present on every update.',\n metadata: {\n tag: 'Todo Lists',\n operationId: 'todoLists.update',\n docsPath: '/docs/basecamp-api-specs/sections/todolists.md#update-a-to-do-list',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/todolists/:todolistId',\n pathParams: bucketAndTodoListPathParams,\n body: TodoListUpdateBodySchema,\n responses: {\n 200: TodoListSchema,\n },\n },\n trash: {\n summary: 'Trash a to-do list',\n description:\n 'Move a to-do list or group to the trash. Trashed items can be restored from the Basecamp UI.',\n metadata: {\n tag: 'Todo Lists',\n operationId: 'todoLists.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:todolistId/status/trashed',\n pathParams: bucketAndTodoListPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type TodoListsRouter = typeof todoListsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst TodoRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n comments_count: z.number().int().nonnegative().optional(),\n comments_url: z.string().url().optional(),\n position: z.number().int().nonnegative().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nconst TodoListBaseSchema = TodoRecordingCoreSchema.extend({\n description: HtmlStringSchema.optional(),\n completed: z.boolean(),\n completed_ratio: z.string(),\n name: z.string(),\n todos_url: z.string().url(),\n app_todos_url: z.string().url(),\n});\n\nexport const TodoTopLevelListSchema = TodoListBaseSchema.extend({\n groups_url: z.string().url(),\n});\n\nexport const TodoListGroupSchema = TodoListBaseSchema.extend({\n group_position_url: z.string().url(),\n});\n\nexport const TodoListSchema = z.union([TodoTopLevelListSchema, TodoListGroupSchema]);\n\nexport const TodoListsResponseSchema = z.array(TodoTopLevelListSchema);\n\nexport const TodoListQuerySchema = z.object({\n status: z.enum(['active', 'archived', 'trashed']).or(z.string()).optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const TodoListCreateBodySchema = z.object({\n name: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n});\n\nexport const TodoListUpdateBodySchema = z.object({\n name: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n});\n\nexport type TodoList = z.infer<typeof TodoListSchema>;\nexport type TodoTopLevelList = z.infer<typeof TodoTopLevelListSchema>;\nexport type TodoListsResponse = z.infer<typeof TodoListsResponseSchema>;\nexport type TodoListQuery = z.infer<typeof TodoListQuerySchema>;\nexport type TodoListCreateBody = z.infer<typeof TodoListCreateBodySchema>;\nexport type TodoListUpdateBody = z.infer<typeof TodoListUpdateBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n TodoListGroupCreateBodySchema,\n TodoListGroupQuerySchema,\n TodoListGroupRepositionBodySchema,\n TodoListGroupsResponseSchema,\n TodoListSchema,\n} from '../../schemas/tasks/todolist-groups';\n\nconst bucketPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoListPathParams = bucketPathParams.extend({\n todolistId: BasecampIdParamSchema,\n});\n\nconst bucketAndGroupPathParams = bucketPathParams.extend({\n groupId: BasecampIdParamSchema,\n});\n\nexport const todoListGroupsRouter = c.router({\n list: {\n summary: 'List to-do list groups',\n description:\n 'List the to-do list groups contained within a to-do list. Use the status filter to browse archived or trashed groups.',\n metadata: {\n tag: 'Todo Groups',\n operationId: 'todoListGroups.list',\n docsPath: '/docs/basecamp-api-specs/sections/todolist_groups.md#list-to-do-list-groups',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todolists/:todolistId/groups',\n pathParams: bucketAndTodoListPathParams,\n query: TodoListGroupQuerySchema.optional(),\n responses: {\n 200: TodoListGroupsResponseSchema,\n },\n },\n create: {\n summary: 'Create a to-do list group',\n description:\n 'Create a nested group inside a to-do list. Groups share the same representation as to-do lists.',\n metadata: {\n tag: 'Todo Groups',\n operationId: 'todoListGroups.create',\n docsPath: '/docs/basecamp-api-specs/sections/todolist_groups.md#create-a-to-do-list-group',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/todolists/:todolistId/groups',\n pathParams: bucketAndTodoListPathParams,\n body: TodoListGroupCreateBodySchema,\n responses: {\n 201: TodoListSchema,\n },\n },\n reposition: {\n summary: 'Reposition a to-do list group',\n description: 'Change the position of a to-do list group within its parent list.',\n metadata: {\n tag: 'Todo Groups',\n operationId: 'todoListGroups.reposition',\n docsPath:\n '/docs/basecamp-api-specs/sections/todolist_groups.md#reposition-a-to-do-list-group',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/todolists/groups/:groupId/position',\n pathParams: bucketAndGroupPathParams,\n body: TodoListGroupRepositionBodySchema,\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type TodoListGroupsRouter = typeof todoListGroupsRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst TodoRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n comments_count: z.number().int().nonnegative().optional(),\n comments_url: z.string().url().optional(),\n position: z.number().int().nonnegative().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nconst TodoListBaseSchema = TodoRecordingCoreSchema.extend({\n description: HtmlStringSchema.optional(),\n completed: z.boolean(),\n completed_ratio: z.string(),\n name: z.string(),\n todos_url: z.string().url(),\n app_todos_url: z.string().url(),\n});\n\nexport const TodoListGroupSchema = TodoListBaseSchema.extend({\n group_position_url: z.string().url(),\n});\n\nexport const TodoListSchema = TodoListGroupSchema;\n\nexport const TodoListGroupsResponseSchema = z.array(TodoListGroupSchema);\n\nexport const TodoListGroupQuerySchema = z.object({\n status: z.enum(['active', 'archived', 'trashed']).or(z.string()).optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const TodoListGroupCreateBodySchema = z.object({\n name: z.string().min(1),\n color: z\n .enum([\n 'white',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'blue',\n 'aqua',\n 'purple',\n 'gray',\n 'pink',\n 'brown',\n ])\n .or(z.string())\n .optional(),\n});\n\nexport const TodoListGroupRepositionBodySchema = z.object({\n position: z.number().int().gte(1),\n});\n\nexport type TodoListGroup = z.infer<typeof TodoListGroupSchema>;\nexport type TodoListGroupsResponse = z.infer<typeof TodoListGroupsResponseSchema>;\nexport type TodoListGroupQuery = z.infer<typeof TodoListGroupQuerySchema>;\nexport type TodoListGroupCreateBody = z.infer<typeof TodoListGroupCreateBodySchema>;\nexport type TodoListGroupRepositionBody = z.infer<typeof TodoListGroupRepositionBodySchema>;\n","import { z } from 'zod';\n\nimport { c } from '../../c';\nimport { BasecampIdParamSchema } from '../../schemas/common';\nimport {\n TodoCollectionResponseSchema,\n TodoCreateBodySchema,\n TodoQuerySchema,\n TodoRepositionBodySchema,\n TodoSchema,\n TodoUpdateBodySchema,\n} from '../../schemas/tasks/todos';\n\nconst bucketPathParams = z.object({\n bucketId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoListPathParams = bucketPathParams.extend({\n todolistId: BasecampIdParamSchema,\n});\n\nconst bucketAndTodoPathParams = bucketPathParams.extend({\n todoId: BasecampIdParamSchema,\n});\n\nexport const todosRouter = c.router({\n list: {\n summary: 'List to-dos',\n description:\n 'List pending or completed to-dos within a to-do list. Use the status and completed filters to target archived or finished items.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.list',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#get-to-dos',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todolists/:todolistId/todos',\n pathParams: bucketAndTodoListPathParams,\n query: TodoQuerySchema.optional(),\n responses: {\n 200: TodoCollectionResponseSchema,\n },\n },\n get: {\n summary: 'Get a to-do',\n description: 'Fetch a single to-do item by its identifier.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.get',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#get-a-to-do',\n } as const,\n method: 'GET',\n path: '/buckets/:bucketId/todos/:todoId',\n pathParams: bucketAndTodoPathParams,\n responses: {\n 200: TodoSchema,\n },\n },\n create: {\n summary: 'Create a to-do',\n description:\n 'Create a to-do inside a to-do list. Rich text HTML is accepted in the description.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.create',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#create-a-to-do',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/todolists/:todolistId/todos',\n pathParams: bucketAndTodoListPathParams,\n body: TodoCreateBodySchema,\n responses: {\n 201: TodoSchema,\n },\n },\n update: {\n summary: 'Update a to-do',\n description:\n 'Update the content, description, assignees, or scheduling fields of an existing to-do. The content field must always be provided.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.update',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#update-a-to-do',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/todos/:todoId',\n pathParams: bucketAndTodoPathParams,\n body: TodoUpdateBodySchema,\n responses: {\n 200: TodoSchema,\n },\n },\n complete: {\n summary: 'Complete a to-do',\n description: 'Mark a to-do as completed.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.complete',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#complete-a-to-do',\n } as const,\n method: 'POST',\n path: '/buckets/:bucketId/todos/:todoId/completion',\n pathParams: bucketAndTodoPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n uncomplete: {\n summary: 'Uncomplete a to-do',\n description: 'Remove the completion mark from a to-do.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.uncomplete',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#uncomplete-a-to-do',\n } as const,\n method: 'DELETE',\n path: '/buckets/:bucketId/todos/:todoId/completion',\n pathParams: bucketAndTodoPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n reposition: {\n summary: 'Reposition a to-do',\n description: 'Change the position of a to-do within its list.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.reposition',\n docsPath: '/docs/basecamp-api-specs/sections/todos.md#reposition-a-to-do',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/todos/:todoId/position',\n pathParams: bucketAndTodoPathParams,\n body: TodoRepositionBodySchema,\n responses: {\n 204: c.noBody(),\n },\n },\n trash: {\n summary: 'Trash a to-do',\n description: 'Move a to-do to the trash queue.',\n metadata: {\n tag: 'Todos',\n operationId: 'todos.trash',\n docsPath: '/docs/basecamp-api-specs/sections/recordings.md#trash-a-recording',\n } as const,\n method: 'PUT',\n path: '/buckets/:bucketId/recordings/:todoId/status/trashed',\n pathParams: bucketAndTodoPathParams,\n body: c.noBody(),\n responses: {\n 204: c.noBody(),\n },\n },\n});\n\nexport type TodosRouter = typeof todosRouter;\n","import { z } from 'zod';\n\nimport {\n BasecampIdSchema,\n BucketRefSchema,\n HtmlStringSchema,\n IsoDateTimeSchema,\n PersonSummarySchema,\n RecordingRefSchema,\n RecordingStatusSchema,\n} from '../common';\n\nconst TodoCompletionSchema = z.object({\n created_at: IsoDateTimeSchema,\n creator: PersonSummarySchema,\n});\n\nconst TodoRecordingCoreSchema = z.object({\n id: BasecampIdSchema,\n status: RecordingStatusSchema,\n visible_to_clients: z.boolean(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n title: z.string(),\n inherits_status: z.boolean(),\n type: z.string(),\n url: z.string().url(),\n app_url: z.string().url(),\n bookmark_url: z.string().url().optional(),\n subscription_url: z.string().url().optional(),\n comments_count: z.number().int().nonnegative().optional(),\n comments_url: z.string().url().optional(),\n position: z.number().int().nonnegative().optional(),\n parent: RecordingRefSchema.optional(),\n bucket: BucketRefSchema,\n creator: PersonSummarySchema,\n});\n\nexport const TodoSchema = TodoRecordingCoreSchema.extend({\n description: HtmlStringSchema.optional(),\n completed: z.boolean(),\n completion: TodoCompletionSchema.optional(),\n content: z.string(),\n starts_on: z.string().date().nullable().optional(),\n due_on: z.string().date().nullable().optional(),\n assignees: z.array(PersonSummarySchema),\n completion_subscribers: z.array(PersonSummarySchema),\n completion_url: z.string().url(),\n});\n\nexport const TodoCollectionResponseSchema = z.array(TodoSchema);\n\nexport const TodoQuerySchema = z.object({\n status: z.enum(['active', 'archived', 'trashed']).or(z.string()).optional(),\n completed: z.coerce.boolean().optional(),\n page: z.coerce.number().int().positive().optional(),\n});\n\nexport const TodoCreateBodySchema = z.object({\n content: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n assignee_ids: z.array(BasecampIdSchema).optional(),\n completion_subscriber_ids: z.array(BasecampIdSchema).optional(),\n notify: z.boolean().optional(),\n due_on: z.string().date().nullable().optional(),\n starts_on: z.string().date().nullable().optional(),\n});\n\nexport const TodoUpdateBodySchema = z.object({\n content: z.string().min(1),\n description: HtmlStringSchema.nullable().optional(),\n assignee_ids: z.array(BasecampIdSchema).optional(),\n completion_subscriber_ids: z.array(BasecampIdSchema).optional(),\n notify: z.boolean().optional(),\n due_on: z.string().date().nullable().optional(),\n starts_on: z.string().date().nullable().optional(),\n});\n\nexport const TodoRepositionBodySchema = z.object({\n position: z.number().int().gte(1),\n});\n\nexport type Todo = z.infer<typeof TodoSchema>;\nexport type TodoCollectionResponse = z.infer<typeof TodoCollectionResponseSchema>;\nexport type TodoQuery = z.infer<typeof TodoQuerySchema>;\nexport type TodoCreateBody = z.infer<typeof TodoCreateBodySchema>;\nexport type TodoUpdateBody = z.infer<typeof TodoUpdateBodySchema>;\nexport type TodoRepositionBody = z.infer<typeof TodoRepositionBodySchema>;\n","import { tsRestFetchApi, type ApiFetcherArgs } from '@ts-rest/core';\n\nconst MAX_RETRIES = 20;\nconst BASE_DELAY_MS = 500;\nconst JITTER_MS = 250;\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nconst parseRetryAfterHeader = (headers: {\n get(name: string): string | null;\n}): number | undefined => {\n const retryAfter = headers.get('Retry-After');\n if (!retryAfter) {\n return undefined;\n }\n\n const asSeconds = Number(retryAfter);\n if (!Number.isNaN(asSeconds)) {\n return Math.max(0, asSeconds * 1000);\n }\n\n const parsedDate = Date.parse(retryAfter);\n if (!Number.isNaN(parsedDate)) {\n return Math.max(0, parsedDate - Date.now());\n }\n\n return undefined;\n};\n\nconst computeBackoffDelay = (attempt: number, retryAfterMs?: number) => {\n const linearDelay = BASE_DELAY_MS * attempt;\n const jitter = Math.random() * JITTER_MS;\n const computed = linearDelay + jitter;\n\n if (retryAfterMs === undefined) {\n return computed;\n }\n\n return Math.max(computed, retryAfterMs);\n};\n\nexport async function fetcher(args: ApiFetcherArgs) {\n const url = new URL(args.path);\n if (!url.pathname.endsWith('.json')) {\n url.pathname = `${url.pathname}.json`;\n }\n\n const pathWithSuffix = url.toString();\n\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt += 1) {\n const response = await tsRestFetchApi({\n ...args,\n path: pathWithSuffix,\n });\n\n if (response.status !== 429) {\n return response;\n }\n\n if (attempt === MAX_RETRIES) {\n return response;\n }\n\n const retryAfterMs = parseRetryAfterHeader(response.headers);\n const delay = computeBackoffDelay(attempt + 1, retryAfterMs);\n\n if (delay > 0) {\n await sleep(delay);\n }\n }\n\n // Exhausting the loop should already return; throw defensively to satisfy TypeScript.\n throw new Error('Exceeded retry attempts for Basecamp API request.');\n}\n","type GetBearerTokenOptions = {\n clientId: string;\n clientSecret: string;\n refreshToken: string;\n userAgent: string;\n};\n\nexport async function getBearerToken({\n clientId,\n clientSecret,\n refreshToken,\n userAgent,\n}: GetBearerTokenOptions): Promise<string> {\n const response = await fetch('https://launchpad.37signals.com/authorization/token', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'User-Agent': userAgent,\n },\n body: JSON.stringify({\n type: 'refresh',\n client_id: clientId,\n client_secret: clientSecret,\n refresh_token: refreshToken,\n }),\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n throw new Error(`Failed to obtain access token (${response.status}): ${errorBody}`);\n }\n\n const payload: { access_token: string } = await response.json();\n return payload.access_token;\n}\n"],"mappings":"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","names":["import_core","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","bucketAndVaultPathParams","import_zod","bucketAndVaultPathParams","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","ProjectPathParamsSchema","import_zod","import_zod","import_zod","import_zod","import_zod","bucketAndSchedulePathParams","import_zod","import_zod","import_zod","import_zod","bucketAndQuestionnairePathParams","import_zod","import_zod","bucketPathParams","import_zod","import_zod","TodoRecordingCoreSchema","bucketPathParams","bucketAndTodoSetPathParams","import_zod","import_zod","TodoRecordingCoreSchema","TodoListBaseSchema","TodoListGroupSchema","TodoListSchema","bucketPathParams","bucketAndTodoListPathParams","TodoListSchema","import_zod","import_zod","TodoRecordingCoreSchema","bucketPathParams","bucketAndTodoListPathParams","import_core","tsRestInitClient"]}
|