@rolino/contracts 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +25 -18
- package/dist/index.cjs +251 -54
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +680 -56
- package/dist/index.d.ts +680 -56
- package/dist/index.js +243 -54
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const API_VERSION = \"v1\" as const;\nexport const CONTRACT_VERSION = \"0.12.0\" as const;\n\nexport const RequestMetadataSchema = z.object({\n requestId: z.string().min(1),\n});\n\nexport const ApiErrorCodeSchema = z.enum([\n \"AUTH_REQUIRED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"FEATURE_DISABLED\",\n \"BILLING_REQUIRED\",\n \"LIMIT_REACHED\",\n \"VALIDATION_ERROR\",\n \"CONFLICT\",\n \"RATE_LIMITED\",\n \"INTERNAL_ERROR\",\n]);\n\nexport type ApiErrorCode = z.infer<typeof ApiErrorCodeSchema>;\n\nexport const ApiProblemSchema = z.object({\n error: z.object({\n code: ApiErrorCodeSchema,\n message: z.string().min(1),\n details: z.record(z.string(), z.unknown()).optional(),\n }),\n meta: RequestMetadataSchema,\n});\n\nexport type ApiProblem = z.infer<typeof ApiProblemSchema>;\n\nexport function successEnvelopeSchema<TSchema extends z.ZodType>(data: TSchema) {\n return z.object({\n data,\n meta: RequestMetadataSchema,\n });\n}\n\nexport const CapabilityIdSchema = z.enum([\n \"identity:read\",\n \"projects:read\",\n \"projects:write\",\n \"posts:read\",\n \"posts:write\",\n \"posts:schedule\",\n \"posts:publish\",\n \"integrations:read\",\n \"calendar:read\",\n]);\n\nexport type CapabilityId = z.infer<typeof CapabilityIdSchema>;\n\nexport const CapabilitySchema = z.object({\n id: CapabilityIdSchema,\n available: z.boolean(),\n reason: z.enum([\n \"AVAILABLE\",\n \"AUTH_REQUIRED\",\n \"SCOPE_REQUIRED\",\n \"FEATURE_DISABLED\",\n ]),\n});\n\nexport type Capability = z.infer<typeof CapabilitySchema>;\n\nexport const ApiMetaSchema = z.object({\n name: z.literal(\"Rolino\"),\n serverVersion: z.string().min(1),\n apiVersion: z.literal(API_VERSION),\n contractVersion: z.literal(CONTRACT_VERSION),\n authentication: z.object({\n browserSession: z.boolean(),\n cliBrowserAuthorization: z.boolean(),\n apiKey: z.boolean(),\n remoteOAuth: z.boolean(),\n }),\n mcp: z.object({\n stdio: z.boolean(),\n streamableHttp: z.boolean(),\n remoteStatus: z.enum([\"AVAILABLE\", \"AUTH_GATE\"]),\n }),\n capabilities: z.array(CapabilitySchema),\n});\n\nexport type ApiMeta = z.infer<typeof ApiMetaSchema>;\nexport const ApiMetaResponseSchema = successEnvelopeSchema(ApiMetaSchema);\nexport type ApiMetaResponse = z.infer<typeof ApiMetaResponseSchema>;\n\nexport const AuthenticationKindSchema = z.enum([\"session\", \"api_key\"]);\nexport type AuthenticationKind = z.infer<typeof AuthenticationKindSchema>;\n\nexport const ActorSchema = z.object({\n user: z.object({\n id: z.string().min(1),\n name: z.string(),\n email: z.string().email(),\n }),\n organization: z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n role: z.string().min(1),\n }),\n authentication: z.object({\n kind: AuthenticationKindSchema,\n credentialId: z.string().min(1).nullable(),\n }),\n capabilities: z.array(CapabilityIdSchema),\n});\n\nexport type Actor = z.infer<typeof ActorSchema>;\nexport const WhoAmIResponseSchema = successEnvelopeSchema(ActorSchema);\nexport type WhoAmIResponse = z.infer<typeof WhoAmIResponseSchema>;\n\nconst Base64UrlSecretSchema = z.string()\n .min(43)\n .max(128)\n .regex(/^[A-Za-z0-9_-]+$/);\n\nexport const CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS = 5 * 60 * 1000;\n\nexport const CliAuthorizationExchangeRequestSchema = z.object({\n code: Base64UrlSecretSchema,\n codeVerifier: Base64UrlSecretSchema,\n});\nexport type CliAuthorizationExchangeRequest = z.infer<\n typeof CliAuthorizationExchangeRequestSchema\n>;\n\nexport const CliAuthorizationCredentialSchema = z.object({\n token: z.string().min(1),\n tokenType: z.literal(\"Bearer\"),\n expiresAt: z.string().datetime(),\n organization: z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n }),\n capabilities: z.array(CapabilityIdSchema),\n});\nexport type CliAuthorizationCredential = z.infer<\n typeof CliAuthorizationCredentialSchema\n>;\nexport const CliAuthorizationExchangeResponseSchema = successEnvelopeSchema(\n CliAuthorizationCredentialSchema,\n);\nexport type CliAuthorizationExchangeResponse = z.infer<\n typeof CliAuthorizationExchangeResponseSchema\n>;\n\nexport const CliAuthorizationRevokeDataSchema = z.object({\n revoked: z.literal(true),\n});\nexport const CliAuthorizationRevokeResponseSchema = successEnvelopeSchema(\n CliAuthorizationRevokeDataSchema,\n);\nexport type CliAuthorizationRevokeResponse = z.infer<\n typeof CliAuthorizationRevokeResponseSchema\n>;\n\nexport const CapabilitiesDataSchema = z.object({\n capabilities: z.array(CapabilitySchema),\n});\nexport const CapabilitiesResponseSchema = successEnvelopeSchema(CapabilitiesDataSchema);\nexport type CapabilitiesResponse = z.infer<typeof CapabilitiesResponseSchema>;\n\nexport const ProjectTypeSchema = z.enum([\n \"PRODUCT\",\n \"LAUNCH\",\n \"EVENT\",\n \"CONTENT_SERIES\",\n \"CLIENT\",\n \"BRAND\",\n \"INTERNAL\",\n]);\nexport type ProjectType = z.infer<typeof ProjectTypeSchema>;\n\nconst ProjectWebsiteUrlSchema = z.string()\n .trim()\n .min(1)\n .max(2000)\n .url()\n .refine((value) => {\n try {\n const url = new URL(value);\n return (\n (url.protocol === \"http:\" || url.protocol === \"https:\")\n && !url.username\n && !url.password\n );\n } catch {\n return false;\n }\n }, \"websiteUrl must be an absolute http or https URL without credentials\");\n\nexport const ProjectCreateInputSchema = z.object({\n name: z.string().trim().min(1).max(100),\n type: ProjectTypeSchema.default(\"PRODUCT\"),\n websiteUrl: ProjectWebsiteUrlSchema.optional(),\n description: z.string().trim().min(1).max(2000).optional(),\n}).strict();\nexport type ProjectCreateInput = z.input<typeof ProjectCreateInputSchema>;\nexport type ProjectCreateData = z.infer<typeof ProjectCreateInputSchema>;\n\nexport const ProjectSchema = z.object({\n id: z.string().min(1),\n organizationId: z.string().min(1),\n name: z.string().min(1),\n slug: z.string().min(1),\n type: ProjectTypeSchema,\n status: z.enum([\"ACTIVE\", \"PAUSED\", \"ARCHIVED\"]),\n websiteUrl: z.string().url().nullable(),\n description: z.string().nullable(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\n\nexport type Project = z.infer<typeof ProjectSchema>;\n\nexport const ProjectListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().min(1).optional(),\n});\n\nexport type ProjectListQuery = z.input<typeof ProjectListQuerySchema>;\n\nexport const ProjectListDataSchema = z.object({\n items: z.array(ProjectSchema),\n page: z.object({\n limit: z.number().int().min(1).max(100),\n nextCursor: z.string().min(1).nullable(),\n }),\n});\n\nexport type ProjectListData = z.infer<typeof ProjectListDataSchema>;\nexport const ProjectListResponseSchema = successEnvelopeSchema(ProjectListDataSchema);\nexport type ProjectListResponse = z.infer<typeof ProjectListResponseSchema>;\n\nexport const ProjectResponseSchema = successEnvelopeSchema(ProjectSchema);\nexport type ProjectResponse = z.infer<typeof ProjectResponseSchema>;\n\nexport const PostStatusSchema = z.enum([\n \"DRAFT\",\n \"SCHEDULED\",\n \"ACTION_REQUIRED\",\n \"PUBLISHING\",\n \"PUBLISHED\",\n \"PARTIALLY_PUBLISHED\",\n \"FAILED\",\n]);\nexport type PostStatus = z.infer<typeof PostStatusSchema>;\n\nexport const PlatformPostStatusSchema = z.enum([\n \"DRAFT\",\n \"SCHEDULED\",\n \"PREPARING\",\n \"ACTION_REQUIRED\",\n \"PUBLISHING\",\n \"PUBLISHED\",\n \"FAILED\",\n]);\n\nexport const PostMediaSchema = z.object({\n id: z.string().min(1),\n type: z.enum([\"IMAGE\", \"VIDEO\"]),\n url: z.string().url(),\n mimeType: z.string().min(1),\n width: z.number().int().positive().nullable(),\n height: z.number().int().positive().nullable(),\n durationMs: z.number().int().nonnegative().nullable(),\n thumbnailUrl: z.string().url().nullable(),\n altText: z.string().nullable(),\n position: z.number().int().nonnegative(),\n});\nexport type PostMedia = z.infer<typeof PostMediaSchema>;\n\nexport const MediaAssetSchema = z.object({\n id: z.string().min(1),\n type: z.enum([\"IMAGE\", \"VIDEO\"]),\n url: z.string().url(),\n thumbnailUrl: z.string().url().nullable(),\n originalFileName: z.string().nullable(),\n mimeType: z.string().min(1),\n sizeBytes: z.number().int().positive().nullable(),\n width: z.number().int().positive().nullable(),\n height: z.number().int().positive().nullable(),\n durationMs: z.number().int().nonnegative().nullable(),\n createdAt: z.string().datetime(),\n});\nexport type MediaAsset = z.infer<typeof MediaAssetSchema>;\n\nexport const MediaAssetListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().min(1).optional(),\n type: z.enum([\"IMAGE\", \"VIDEO\"]).optional(),\n query: z.string().trim().min(1).max(100).optional(),\n});\nexport type MediaAssetListQuery = z.input<typeof MediaAssetListQuerySchema>;\n\nexport const MediaAssetListDataSchema = z.object({\n items: z.array(MediaAssetSchema),\n page: z.object({\n limit: z.number().int().min(1).max(100),\n nextCursor: z.string().min(1).nullable(),\n }),\n});\nexport type MediaAssetListData = z.infer<typeof MediaAssetListDataSchema>;\nexport const MediaAssetListResponseSchema = successEnvelopeSchema(MediaAssetListDataSchema);\n\nexport const MediaAssetUploadInputSchema = z.object({\n fileName: z.string().trim().min(1).max(255),\n contentType: z.string().trim().min(1).max(100),\n fileSize: z.number().int().positive(),\n}).strict();\nexport type MediaAssetUploadInput = z.infer<typeof MediaAssetUploadInputSchema>;\n\nexport const MediaAssetUploadPreparationSchema = z.object({\n uploadUrl: z.string().url(),\n storageKey: z.string().min(1),\n expiresAt: z.string().datetime(),\n headers: z.record(z.string(), z.string()),\n maxFileSize: z.number().int().positive(),\n});\nexport type MediaAssetUploadPreparation = z.infer<typeof MediaAssetUploadPreparationSchema>;\nexport const MediaAssetUploadPreparationResponseSchema = successEnvelopeSchema(MediaAssetUploadPreparationSchema);\n\nexport const MediaAssetUploadCompleteInputSchema = MediaAssetUploadInputSchema.extend({\n storageKey: z.string().min(1),\n width: z.number().int().positive().max(100_000).nullable().optional(),\n height: z.number().int().positive().max(100_000).nullable().optional(),\n durationMs: z.number().int().nonnegative().max(86_400_000).nullable().optional(),\n}).strict();\nexport type MediaAssetUploadCompleteInput = z.infer<typeof MediaAssetUploadCompleteInputSchema>;\nexport const MediaAssetResponseSchema = successEnvelopeSchema(MediaAssetSchema);\n\nexport const PostDestinationSchema = z.object({\n provider: z.enum([\"INSTAGRAM\", \"TIKTOK\", \"YOUTUBE\", \"BLUESKY\"]),\n status: PlatformPostStatusSchema,\n captionOverride: z.string().nullable(),\n scheduledAt: z.string().datetime().nullable(),\n publishedAt: z.string().datetime().nullable(),\n remoteUrl: z.string().url().nullable(),\n attemptCount: z.number().int().nonnegative(),\n});\nexport type PostDestination = z.infer<typeof PostDestinationSchema>;\n\nexport const PublishingProviderSchema = z.enum([\n \"INSTAGRAM\",\n \"TIKTOK\",\n \"YOUTUBE\",\n \"BLUESKY\",\n]);\nexport type PublishingProvider = z.infer<typeof PublishingProviderSchema>;\nexport const PUBLISHING_PROVIDER_COUNT = PublishingProviderSchema.options.length;\n\nexport const PostSchema = z.object({\n id: z.string().min(1),\n projectId: z.string().min(1),\n version: z.number().int().positive(),\n campaign: z.object({\n id: z.string().min(1),\n title: z.string().min(1),\n }).nullable(),\n caption: z.string(),\n status: PostStatusSchema,\n scheduledAt: z.string().datetime().nullable(),\n timezone: z.string().nullable(),\n publishedAt: z.string().datetime().nullable(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n media: z.array(PostMediaSchema),\n destinations: z.array(PostDestinationSchema),\n});\nexport type Post = z.infer<typeof PostSchema>;\n\nexport const PostListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().min(1).optional(),\n status: PostStatusSchema.optional(),\n});\nexport type PostListQuery = z.input<typeof PostListQuerySchema>;\n\nexport const PostListDataSchema = z.object({\n items: z.array(PostSchema),\n page: z.object({\n limit: z.number().int().min(1).max(100),\n nextCursor: z.string().min(1).nullable(),\n }),\n});\nexport type PostListData = z.infer<typeof PostListDataSchema>;\nexport const PostListResponseSchema = successEnvelopeSchema(PostListDataSchema);\nexport type PostListResponse = z.infer<typeof PostListResponseSchema>;\n\nexport const PostResponseSchema = successEnvelopeSchema(PostSchema);\nexport type PostResponse = z.infer<typeof PostResponseSchema>;\n\nexport const TikTokPostSettingsSchema = z.object({\n postMode: z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]).default(\"DIRECT_POST\"),\n privacyLevel: z.string().trim().min(1).max(100).nullable().default(null),\n allowComment: z.boolean().default(false),\n allowDuet: z.boolean().default(false),\n allowStitch: z.boolean().default(false),\n commercialContentEnabled: z.boolean().default(false),\n promotesOwnBrand: z.boolean().default(false),\n promotesThirdParty: z.boolean().default(false),\n isAiGenerated: z.boolean().default(false),\n videoCoverTimestampMs: z.number().int().nonnegative().nullable().default(null),\n consentedAt: z.union([z.string().datetime(), z.literal(\"\")]).default(\"\"),\n}).strict();\nexport type TikTokPostSettings = z.infer<typeof TikTokPostSettingsSchema>;\n\nfunction youtubeTagLength(tags: readonly string[]) {\n return tags.reduce((total, tag, index) => (\n total + (index ? 1 : 0) + tag.length + (tag.includes(\" \") ? 2 : 0)\n ), 0);\n}\n\nexport const YouTubePostSettingsSchema = z.object({\n title: z.string().trim().min(1).max(100).refine(\n (value) => !/[<>]/.test(value),\n \"YouTube titles cannot contain angle brackets.\",\n ),\n categoryId: z.string().trim().regex(/^\\d+$/).max(20),\n privacyStatus: z.enum([\"PUBLIC\", \"UNLISTED\", \"PRIVATE\"]),\n madeForKids: z.boolean(),\n containsSyntheticMedia: z.boolean().default(false),\n notifySubscribers: z.boolean().default(true),\n tags: z.array(z.string().trim().min(1).max(500)).max(50).refine(\n (tags) => new Set(tags).size === tags.length,\n \"YouTube tags must be unique.\",\n ).refine(\n (tags) => youtubeTagLength(tags) <= 500,\n \"YouTube tags exceed the 500-character aggregate limit.\",\n ).default([]),\n}).strict();\nexport type YouTubePostSettings = z.infer<typeof YouTubePostSettingsSchema>;\n\nconst blueskyGraphemeSegmenter = new Intl.Segmenter(\"en\", {\n granularity: \"grapheme\",\n});\n\nconst BlueskyCaptionSchema = z.string().max(3000).refine(\n (value) => Array.from(blueskyGraphemeSegmenter.segment(value)).length <= 300,\n \"Bluesky captions cannot exceed 300 graphemes.\",\n);\n\nconst utf8Encoder = new TextEncoder();\nconst YouTubeDescriptionSchema = z.string().max(5000).refine(\n (value) => utf8Encoder.encode(value).length <= 5000,\n \"YouTube descriptions cannot exceed 5,000 UTF-8 bytes.\",\n);\n\nconst DraftCaptionOverridesSchema = z.object({\n INSTAGRAM: z.string().max(2200).nullable().optional(),\n TIKTOK: z.string().max(2200).nullable().optional(),\n YOUTUBE: YouTubeDescriptionSchema.nullable().optional(),\n BLUESKY: BlueskyCaptionSchema.nullable().optional(),\n}).strict().default({});\n\nexport const DraftPostInputSchema = z.object({\n caption: z.string().max(2200).transform((value) => value.trim()).default(\"\"),\n platforms: z.array(PublishingProviderSchema).max(PUBLISHING_PROVIDER_COUNT).refine(\n (providers) => new Set(providers).size === providers.length,\n \"Publishing destinations must be unique.\",\n ).default([]),\n mediaAssetIds: z.array(z.string().trim().min(1).max(200)).max(10).refine(\n (ids) => new Set(ids).size === ids.length,\n \"Media asset IDs must be unique.\",\n ).default([]),\n captionOverrides: DraftCaptionOverridesSchema,\n tiktokSettings: TikTokPostSettingsSchema.nullable().default(null),\n youtubeSettings: YouTubePostSettingsSchema.nullable().default(null),\n}).strict().superRefine((input, context) => {\n if (input.caption.length === 0 && input.mediaAssetIds.length === 0) {\n context.addIssue({\n code: \"custom\",\n path: [\"caption\"],\n message: \"A draft requires a caption or at least one media asset.\",\n });\n }\n if (input.tiktokSettings && !input.platforms.includes(\"TIKTOK\")) {\n context.addIssue({\n code: \"custom\",\n path: [\"tiktokSettings\"],\n message: \"TikTok settings require the TIKTOK destination.\",\n });\n }\n if (input.youtubeSettings && !input.platforms.includes(\"YOUTUBE\")) {\n context.addIssue({\n code: \"custom\",\n path: [\"youtubeSettings\"],\n message: \"YouTube settings require the YOUTUBE destination.\",\n });\n }\n if (input.platforms.includes(\"YOUTUBE\") && !input.youtubeSettings) {\n context.addIssue({\n code: \"custom\",\n path: [\"youtubeSettings\"],\n message: \"YouTube settings are required for the YOUTUBE destination.\",\n });\n }\n if (\n input.platforms.includes(\"YOUTUBE\")\n && input.captionOverrides.YOUTUBE == null\n && utf8Encoder.encode(input.caption).length > 5000\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"caption\"],\n message: \"YouTube descriptions cannot exceed 5,000 UTF-8 bytes.\",\n });\n }\n if (\n input.platforms.includes(\"BLUESKY\")\n && input.captionOverrides.BLUESKY == null\n && Array.from(blueskyGraphemeSegmenter.segment(input.caption)).length > 300\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"caption\"],\n message: \"Bluesky captions cannot exceed 300 graphemes.\",\n });\n }\n});\nexport type DraftPostInput = z.input<typeof DraftPostInputSchema>;\nexport type DraftPostData = z.infer<typeof DraftPostInputSchema>;\n\nexport const IntegrationConnectionStatusSchema = z.enum([\n \"PENDING\",\n \"CONNECTED\",\n \"ERROR\",\n \"EXPIRED\",\n \"DISCONNECTED\",\n]);\n\nexport const ProviderHealthStatusSchema = z.enum([\n \"pass\",\n \"blocking\",\n \"unknown\",\n]);\n\nexport const IntegrationHealthSchema = z.object({\n provider: PublishingProviderSchema,\n connectionStatus: IntegrationConnectionStatusSchema,\n connected: z.boolean(),\n account: z.object({\n username: z.string().nullable(),\n displayName: z.string().nullable(),\n avatarUrl: z.string().url().nullable(),\n }),\n grantedScopes: z.array(z.string()),\n expiresAt: z.string().datetime().nullable(),\n health: z.object({\n status: ProviderHealthStatusSchema,\n checkedAt: z.string().datetime().nullable(),\n code: z.string().min(1),\n message: z.string().min(1),\n isStale: z.boolean(),\n requiresAction: z.boolean(),\n refreshRecommended: z.boolean(),\n }),\n});\nexport type IntegrationHealth = z.infer<typeof IntegrationHealthSchema>;\n\nexport const IntegrationHealthListDataSchema = z.object({\n items: z.array(IntegrationHealthSchema)\n .max(PUBLISHING_PROVIDER_COUNT)\n .refine(\n (items) => new Set(items.map((item) => item.provider)).size === items.length,\n \"Provider health items must be unique.\",\n ),\n});\nexport type IntegrationHealthListData = z.infer<\n typeof IntegrationHealthListDataSchema\n>;\nexport const IntegrationHealthListResponseSchema = successEnvelopeSchema(\n IntegrationHealthListDataSchema,\n);\n\nexport const ReadinessStatusSchema = z.enum([\n \"checking\",\n \"pass\",\n \"warning\",\n \"blocking\",\n \"unknown\",\n]);\n\nexport const ReadinessActionSchema = z.object({\n kind: z.enum([\n \"reconnect\",\n \"replace_media\",\n \"review_settings\",\n \"edit_caption\",\n \"refresh_health\",\n ]),\n provider: PublishingProviderSchema.optional(),\n});\n\nexport const PostReadinessCheckSchema = z.object({\n key: z.string().min(1),\n id: z.enum([\n \"connection\",\n \"permissions\",\n \"media\",\n \"caption\",\n \"tiktok_settings\",\n \"youtube_settings\",\n \"storage\",\n \"schedule_lead\",\n \"token_health\",\n \"media_duration\",\n \"provider_health\",\n ]),\n provider: PublishingProviderSchema.nullable(),\n mediaId: z.string().min(1).optional(),\n status: ReadinessStatusSchema,\n source: z.enum([\"local\", \"live\"]),\n checkedAt: z.string().datetime().nullable(),\n message: z.string().min(1),\n code: z.string().min(1),\n action: ReadinessActionSchema.nullable(),\n});\n\nexport const PostReadinessSchema = z.object({\n checks: z.array(PostReadinessCheckSchema),\n accounts: z.array(z.object({\n provider: PublishingProviderSchema,\n connected: z.boolean(),\n username: z.string().nullable(),\n avatarUrl: z.string().url().nullable(),\n requiresAction: z.boolean(),\n })),\n hasBlockingChecks: z.boolean(),\n requiresLiveRefresh: z.array(PublishingProviderSchema),\n liveHealthCheckedAt: z.string().datetime().nullable(),\n});\nexport type PostReadiness = z.infer<typeof PostReadinessSchema>;\nexport const PostReadinessResponseSchema = successEnvelopeSchema(\n PostReadinessSchema,\n);\n\nexport const PostScheduleInputSchema = z.object({\n scheduledAt: z.string().datetime({ offset: true }),\n timezone: z.string().trim().min(1).max(100).refine((timezone) => {\n try {\n new Intl.DateTimeFormat(\"en\", { timeZone: timezone }).format();\n return true;\n } catch {\n return false;\n }\n }, \"timezone must be a valid IANA timezone\"),\n}).strict();\nexport type PostScheduleInput = z.infer<typeof PostScheduleInputSchema>;\n\nexport const PostScheduleExecuteInputSchema = PostScheduleInputSchema.extend({\n confirmationToken: z.string().trim().min(1).max(200),\n}).strict();\nexport type PostScheduleExecuteInput = z.infer<\n typeof PostScheduleExecuteInputSchema\n>;\n\nexport const PostSchedulePreviewSchema = z.object({\n operation: z.literal(\"posts.schedule.execute\"),\n post: z.object({\n id: z.string().min(1),\n projectId: z.string().min(1),\n version: z.number().int().positive(),\n status: PostStatusSchema,\n }),\n schedule: PostScheduleInputSchema,\n destinations: z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT),\n providerReconciliation: z.object({\n provider: z.literal(\"YOUTUBE\"),\n required: z.boolean(),\n message: z.string().min(1),\n }).nullable().optional(),\n readiness: PostReadinessSchema,\n confirmation: z.object({\n token: z.string().min(1),\n expiresAt: z.string().datetime(),\n }),\n});\nexport type PostSchedulePreview = z.infer<typeof PostSchedulePreviewSchema>;\nexport const PostSchedulePreviewResponseSchema = successEnvelopeSchema(\n PostSchedulePreviewSchema,\n);\n\nexport const PostSchedulePendingSchema = z.object({\n status: z.literal(\"PENDING\"),\n postId: z.string().min(1),\n provider: z.literal(\"YOUTUBE\"),\n mutationId: z.string().min(1),\n operation: z.enum([\"SCHEDULE\", \"CANCEL\"]),\n message: z.string().min(1),\n});\nexport type PostSchedulePending = z.infer<typeof PostSchedulePendingSchema>;\nexport const PostScheduleExecuteResultSchema = z.union([\n PostSchema,\n PostSchedulePendingSchema,\n]);\nexport type PostScheduleExecuteResult = z.infer<\n typeof PostScheduleExecuteResultSchema\n>;\nexport const PostScheduleExecuteResponseSchema = successEnvelopeSchema(\n PostScheduleExecuteResultSchema,\n);\n\nexport const PostPublishInputSchema = z.object({\n destinations: z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT)\n .refine(\n (destinations) => new Set(destinations).size === destinations.length,\n \"destinations must not contain duplicates\",\n ),\n}).strict();\nexport type PostPublishInput = z.infer<typeof PostPublishInputSchema>;\n\nexport const PostPublishExecuteInputSchema = PostPublishInputSchema.extend({\n confirmationToken: z.string().trim().min(1).max(200),\n}).strict();\nexport type PostPublishExecuteInput = z.infer<\n typeof PostPublishExecuteInputSchema\n>;\n\nexport const PostPublishPreviewSchema = z.object({\n operation: z.literal(\"posts.publish.execute\"),\n post: z.object({\n id: z.string().min(1),\n projectId: z.string().min(1),\n version: z.number().int().positive(),\n status: PostStatusSchema,\n }),\n destinations: PostPublishInputSchema.shape.destinations,\n readiness: PostReadinessSchema,\n confirmation: z.object({\n token: z.string().min(1),\n expiresAt: z.string().datetime(),\n }),\n});\nexport type PostPublishPreview = z.infer<typeof PostPublishPreviewSchema>;\nexport const PostPublishPreviewResponseSchema = successEnvelopeSchema(\n PostPublishPreviewSchema,\n);\n\nexport const CalendarEventSchema = z.object({\n postId: z.string().min(1),\n projectId: z.string().min(1),\n title: z.string().min(1),\n caption: z.string(),\n status: PostStatusSchema.exclude([\"DRAFT\"]),\n scheduledAt: z.string().datetime(),\n timezone: z.string().nullable(),\n campaign: z.object({\n id: z.string().min(1),\n title: z.string().min(1),\n }).nullable(),\n thumbnailUrl: z.string().url().nullable(),\n destinations: z.array(z.object({\n provider: PublishingProviderSchema,\n status: PlatformPostStatusSchema,\n })),\n});\nexport type CalendarEvent = z.infer<typeof CalendarEventSchema>;\n\nexport const CalendarListQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().min(1).optional(),\n from: z.string().datetime().optional(),\n to: z.string().datetime().optional(),\n}).superRefine((value, context) => {\n if ((value.from === undefined) !== (value.to === undefined)) {\n context.addIssue({\n code: \"custom\",\n path: value.from === undefined ? [\"from\"] : [\"to\"],\n message: \"from and to must be provided together\",\n });\n }\n if (value.from && value.to) {\n const from = Date.parse(value.from);\n const to = Date.parse(value.to);\n if (from >= to) {\n context.addIssue({\n code: \"custom\",\n path: [\"to\"],\n message: \"to must be later than from\",\n });\n } else if (to - from > 366 * 24 * 60 * 60 * 1000) {\n context.addIssue({\n code: \"custom\",\n path: [\"to\"],\n message: \"calendar ranges cannot exceed 366 days\",\n });\n }\n }\n});\nexport type CalendarListQuery = z.input<typeof CalendarListQuerySchema>;\n\nexport const CalendarListDataSchema = z.object({\n items: z.array(CalendarEventSchema),\n page: z.object({\n limit: z.number().int().min(1).max(100),\n nextCursor: z.string().min(1).nullable(),\n }),\n window: z.object({\n from: z.string().datetime(),\n to: z.string().datetime(),\n }),\n});\nexport type CalendarListData = z.infer<typeof CalendarListDataSchema>;\nexport const CalendarListResponseSchema = successEnvelopeSchema(\n CalendarListDataSchema,\n);\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { z } from \"zod\";\r\n\r\nexport const API_VERSION = \"v1\" as const;\r\nexport const CONTRACT_VERSION = \"0.14.0\" as const;\r\n\r\nexport const RequestMetadataSchema = z.object({\r\n requestId: z.string().min(1),\r\n});\r\n\r\nexport const ApiErrorCodeSchema = z.enum([\r\n \"AUTH_REQUIRED\",\r\n \"FORBIDDEN\",\r\n \"NOT_FOUND\",\r\n \"FEATURE_DISABLED\",\r\n \"BILLING_REQUIRED\",\r\n \"LIMIT_REACHED\",\r\n \"VALIDATION_ERROR\",\r\n \"CONFLICT\",\r\n \"RATE_LIMITED\",\r\n \"INTERNAL_ERROR\",\r\n]);\r\n\r\nexport type ApiErrorCode = z.infer<typeof ApiErrorCodeSchema>;\r\n\r\nexport const ApiProblemSchema = z.object({\r\n error: z.object({\r\n code: ApiErrorCodeSchema,\r\n message: z.string().min(1),\r\n details: z.record(z.string(), z.unknown()).optional(),\r\n }),\r\n meta: RequestMetadataSchema,\r\n});\r\n\r\nexport type ApiProblem = z.infer<typeof ApiProblemSchema>;\r\n\r\nexport function successEnvelopeSchema<TSchema extends z.ZodType>(data: TSchema) {\r\n return z.object({\r\n data,\r\n meta: RequestMetadataSchema,\r\n });\r\n}\r\n\r\nexport const CapabilityIdSchema = z.enum([\r\n \"identity:read\",\r\n \"projects:read\",\r\n \"projects:write\",\r\n \"posts:read\",\r\n \"posts:write\",\r\n \"posts:schedule\",\r\n \"posts:publish\",\r\n \"integrations:read\",\r\n \"calendar:read\",\r\n]);\r\n\r\nexport type CapabilityId = z.infer<typeof CapabilityIdSchema>;\r\n\r\nexport const CapabilitySchema = z.object({\r\n id: CapabilityIdSchema,\r\n available: z.boolean(),\r\n reason: z.enum([\r\n \"AVAILABLE\",\r\n \"AUTH_REQUIRED\",\r\n \"SCOPE_REQUIRED\",\r\n \"FEATURE_DISABLED\",\r\n ]),\r\n});\r\n\r\nexport type Capability = z.infer<typeof CapabilitySchema>;\r\n\r\nexport const ApiMetaSchema = z.object({\r\n name: z.literal(\"Rolino\"),\r\n serverVersion: z.string().min(1),\r\n apiVersion: z.literal(API_VERSION),\r\n contractVersion: z.literal(CONTRACT_VERSION),\r\n authentication: z.object({\r\n browserSession: z.boolean(),\r\n cliBrowserAuthorization: z.boolean(),\r\n apiKey: z.boolean(),\r\n remoteOAuth: z.boolean(),\r\n }),\r\n mcp: z.object({\r\n stdio: z.boolean(),\r\n streamableHttp: z.boolean(),\r\n remoteStatus: z.enum([\"AVAILABLE\", \"AUTH_GATE\"]),\r\n }),\r\n capabilities: z.array(CapabilitySchema),\r\n});\r\n\r\nexport type ApiMeta = z.infer<typeof ApiMetaSchema>;\r\nexport const ApiMetaResponseSchema = successEnvelopeSchema(ApiMetaSchema);\r\nexport type ApiMetaResponse = z.infer<typeof ApiMetaResponseSchema>;\r\n\r\nexport const AuthenticationKindSchema = z.enum([\"session\", \"api_key\"]);\r\nexport type AuthenticationKind = z.infer<typeof AuthenticationKindSchema>;\r\n\r\nexport const ActorSchema = z.object({\r\n user: z.object({\r\n id: z.string().min(1),\r\n name: z.string(),\r\n email: z.string().email(),\r\n }),\r\n organization: z.object({\r\n id: z.string().min(1),\r\n name: z.string().min(1),\r\n role: z.string().min(1),\r\n }),\r\n authentication: z.object({\r\n kind: AuthenticationKindSchema,\r\n credentialId: z.string().min(1).nullable(),\r\n }),\r\n capabilities: z.array(CapabilityIdSchema),\r\n});\r\n\r\nexport type Actor = z.infer<typeof ActorSchema>;\r\nexport const WhoAmIResponseSchema = successEnvelopeSchema(ActorSchema);\r\nexport type WhoAmIResponse = z.infer<typeof WhoAmIResponseSchema>;\r\n\r\nconst Base64UrlSecretSchema = z.string()\r\n .min(43)\r\n .max(128)\r\n .regex(/^[A-Za-z0-9_-]+$/);\r\n\r\nexport const CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS = 5 * 60 * 1000;\r\n\r\nexport const CliAuthorizationExchangeRequestSchema = z.object({\r\n code: Base64UrlSecretSchema,\r\n codeVerifier: Base64UrlSecretSchema,\r\n});\r\nexport type CliAuthorizationExchangeRequest = z.infer<\r\n typeof CliAuthorizationExchangeRequestSchema\r\n>;\r\n\r\nexport const CliAuthorizationCredentialSchema = z.object({\r\n token: z.string().min(1),\r\n tokenType: z.literal(\"Bearer\"),\r\n expiresAt: z.string().datetime(),\r\n organization: z.object({\r\n id: z.string().min(1),\r\n name: z.string().min(1),\r\n }),\r\n capabilities: z.array(CapabilityIdSchema),\r\n});\r\nexport type CliAuthorizationCredential = z.infer<\r\n typeof CliAuthorizationCredentialSchema\r\n>;\r\nexport const CliAuthorizationExchangeResponseSchema = successEnvelopeSchema(\r\n CliAuthorizationCredentialSchema,\r\n);\r\nexport type CliAuthorizationExchangeResponse = z.infer<\r\n typeof CliAuthorizationExchangeResponseSchema\r\n>;\r\n\r\nexport const CliAuthorizationRevokeDataSchema = z.object({\r\n revoked: z.literal(true),\r\n});\r\nexport const CliAuthorizationRevokeResponseSchema = successEnvelopeSchema(\r\n CliAuthorizationRevokeDataSchema,\r\n);\r\nexport type CliAuthorizationRevokeResponse = z.infer<\r\n typeof CliAuthorizationRevokeResponseSchema\r\n>;\r\n\r\nexport const CapabilitiesDataSchema = z.object({\r\n capabilities: z.array(CapabilitySchema),\r\n});\r\nexport const CapabilitiesResponseSchema = successEnvelopeSchema(CapabilitiesDataSchema);\r\nexport type CapabilitiesResponse = z.infer<typeof CapabilitiesResponseSchema>;\r\n\r\nexport const ProjectTypeSchema = z.enum([\r\n \"PRODUCT\",\r\n \"LAUNCH\",\r\n \"EVENT\",\r\n \"CONTENT_SERIES\",\r\n \"CLIENT\",\r\n \"BRAND\",\r\n \"INTERNAL\",\r\n]);\r\nexport type ProjectType = z.infer<typeof ProjectTypeSchema>;\r\n\r\nconst ProjectWebsiteUrlSchema = z.string()\r\n .trim()\r\n .min(1)\r\n .max(2000)\r\n .url()\r\n .refine((value) => {\r\n try {\r\n const url = new URL(value);\r\n return (\r\n (url.protocol === \"http:\" || url.protocol === \"https:\")\r\n && !url.username\r\n && !url.password\r\n );\r\n } catch {\r\n return false;\r\n }\r\n }, \"websiteUrl must be an absolute http or https URL without credentials\");\r\n\r\nexport const ProjectCreateInputSchema = z.object({\r\n name: z.string().trim().min(1).max(100),\r\n type: ProjectTypeSchema.default(\"PRODUCT\"),\r\n websiteUrl: ProjectWebsiteUrlSchema.optional(),\r\n description: z.string().trim().min(1).max(2000).optional(),\r\n}).strict();\r\nexport type ProjectCreateInput = z.input<typeof ProjectCreateInputSchema>;\r\nexport type ProjectCreateData = z.infer<typeof ProjectCreateInputSchema>;\r\n\r\nexport const ProjectSchema = z.object({\r\n id: z.string().min(1),\r\n organizationId: z.string().min(1),\r\n name: z.string().min(1),\r\n slug: z.string().min(1),\r\n type: ProjectTypeSchema,\r\n status: z.enum([\"ACTIVE\", \"PAUSED\", \"ARCHIVED\"]),\r\n websiteUrl: z.string().url().nullable(),\r\n description: z.string().nullable(),\r\n createdAt: z.string().datetime(),\r\n updatedAt: z.string().datetime(),\r\n});\r\n\r\nexport type Project = z.infer<typeof ProjectSchema>;\r\n\r\nexport const ProjectListQuerySchema = z.object({\r\n limit: z.coerce.number().int().min(1).max(100).default(50),\r\n cursor: z.string().min(1).optional(),\r\n});\r\n\r\nexport type ProjectListQuery = z.input<typeof ProjectListQuerySchema>;\r\n\r\nexport const ProjectListDataSchema = z.object({\r\n items: z.array(ProjectSchema),\r\n page: z.object({\r\n limit: z.number().int().min(1).max(100),\r\n nextCursor: z.string().min(1).nullable(),\r\n }),\r\n});\r\n\r\nexport type ProjectListData = z.infer<typeof ProjectListDataSchema>;\r\nexport const ProjectListResponseSchema = successEnvelopeSchema(ProjectListDataSchema);\r\nexport type ProjectListResponse = z.infer<typeof ProjectListResponseSchema>;\r\n\r\nexport const ProjectResponseSchema = successEnvelopeSchema(ProjectSchema);\r\nexport type ProjectResponse = z.infer<typeof ProjectResponseSchema>;\r\n\r\nexport const PostStatusSchema = z.enum([\r\n \"DRAFT\",\r\n \"SCHEDULED\",\r\n \"ACTION_REQUIRED\",\r\n \"PUBLISHING\",\r\n \"PUBLISHED\",\r\n \"PARTIALLY_PUBLISHED\",\r\n \"FAILED\",\r\n]);\r\nexport type PostStatus = z.infer<typeof PostStatusSchema>;\r\n\r\nexport const PlatformPostStatusSchema = z.enum([\r\n \"DRAFT\",\r\n \"SCHEDULED\",\r\n \"PREPARING\",\r\n \"ACTION_REQUIRED\",\r\n \"PUBLISHING\",\r\n \"PUBLISHED\",\r\n \"FAILED\",\r\n]);\r\n\r\nexport const PostMediaSchema = z.object({\r\n id: z.string().min(1),\r\n assetId: z.string().min(1).nullable().optional(),\r\n type: z.enum([\"IMAGE\", \"VIDEO\"]),\r\n url: z.string().url(),\r\n mimeType: z.string().min(1),\r\n sizeBytes: z.number().int().positive().nullable().optional(),\r\n width: z.number().int().positive().nullable(),\r\n height: z.number().int().positive().nullable(),\r\n durationMs: z.number().int().nonnegative().nullable(),\r\n thumbnailUrl: z.string().url().nullable(),\r\n altText: z.string().nullable(),\r\n position: z.number().int().nonnegative(),\r\n});\r\nexport type PostMedia = z.infer<typeof PostMediaSchema>;\r\n\r\nexport const MediaAssetSchema = z.object({\r\n id: z.string().min(1),\r\n type: z.enum([\"IMAGE\", \"VIDEO\"]),\r\n url: z.string().url(),\r\n thumbnailUrl: z.string().url().nullable(),\r\n originalFileName: z.string().nullable(),\r\n mimeType: z.string().min(1),\r\n sizeBytes: z.number().int().positive().nullable(),\r\n width: z.number().int().positive().nullable(),\r\n height: z.number().int().positive().nullable(),\r\n durationMs: z.number().int().nonnegative().nullable(),\r\n createdAt: z.string().datetime(),\r\n});\r\nexport type MediaAsset = z.infer<typeof MediaAssetSchema>;\r\n\r\nexport const MediaAssetListQuerySchema = z.object({\r\n limit: z.coerce.number().int().min(1).max(100).default(50),\r\n cursor: z.string().min(1).optional(),\r\n type: z.enum([\"IMAGE\", \"VIDEO\"]).optional(),\r\n query: z.string().trim().min(1).max(100).optional(),\r\n});\r\nexport type MediaAssetListQuery = z.input<typeof MediaAssetListQuerySchema>;\r\n\r\nexport const MediaAssetListDataSchema = z.object({\r\n items: z.array(MediaAssetSchema),\r\n page: z.object({\r\n limit: z.number().int().min(1).max(100),\r\n nextCursor: z.string().min(1).nullable(),\r\n }),\r\n});\r\nexport type MediaAssetListData = z.infer<typeof MediaAssetListDataSchema>;\r\nexport const MediaAssetListResponseSchema = successEnvelopeSchema(MediaAssetListDataSchema);\r\n\r\nexport const MediaAssetUploadInputSchema = z.object({\r\n fileName: z.string().trim().min(1).max(255),\r\n contentType: z.string().trim().min(1).max(100),\r\n fileSize: z.number().int().positive(),\r\n}).strict();\r\nexport type MediaAssetUploadInput = z.infer<typeof MediaAssetUploadInputSchema>;\r\n\r\nexport const MediaAssetUploadPreparationSchema = z.object({\r\n uploadUrl: z.string().url(),\r\n storageKey: z.string().min(1),\r\n expiresAt: z.string().datetime(),\r\n headers: z.record(z.string(), z.string()),\r\n maxFileSize: z.number().int().positive(),\r\n});\r\nexport type MediaAssetUploadPreparation = z.infer<typeof MediaAssetUploadPreparationSchema>;\r\nexport const MediaAssetUploadPreparationResponseSchema = successEnvelopeSchema(MediaAssetUploadPreparationSchema);\r\n\r\nexport const MediaAssetUploadCompleteInputSchema = MediaAssetUploadInputSchema.extend({\r\n storageKey: z.string().min(1),\r\n width: z.number().int().positive().max(100_000).nullable().optional(),\r\n height: z.number().int().positive().max(100_000).nullable().optional(),\r\n durationMs: z.number().int().nonnegative().max(86_400_000).nullable().optional(),\r\n}).strict();\r\nexport type MediaAssetUploadCompleteInput = z.infer<typeof MediaAssetUploadCompleteInputSchema>;\r\nexport const MediaAssetResponseSchema = successEnvelopeSchema(MediaAssetSchema);\r\n\r\nexport const PublishingProviderSchema = z.enum([\r\n \"INSTAGRAM\",\r\n \"TIKTOK\",\r\n \"YOUTUBE\",\r\n \"BLUESKY\",\r\n \"LINKEDIN\",\r\n]);\r\nexport type PublishingProvider = z.infer<typeof PublishingProviderSchema>;\r\nexport const PUBLISHING_PROVIDER_COUNT = PublishingProviderSchema.options.length;\r\n\r\nexport const PostDestinationSchema = z.object({\r\n provider: PublishingProviderSchema,\r\n status: PlatformPostStatusSchema,\r\n captionOverride: z.string().nullable(),\r\n scheduledAt: z.string().datetime().nullable(),\r\n publishedAt: z.string().datetime().nullable(),\r\n remoteUrl: z.string().url().nullable(),\r\n attemptCount: z.number().int().nonnegative(),\r\n});\r\nexport type PostDestination = z.infer<typeof PostDestinationSchema>;\r\n\r\nexport const TikTokPostSettingsSchema = z.object({\r\n postMode: z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]).default(\"DIRECT_POST\"),\r\n privacyLevel: z.string().trim().min(1).max(100).nullable().default(null),\r\n allowComment: z.boolean().default(false),\r\n allowDuet: z.boolean().default(false),\r\n allowStitch: z.boolean().default(false),\r\n commercialContentEnabled: z.boolean().default(false),\r\n promotesOwnBrand: z.boolean().default(false),\r\n promotesThirdParty: z.boolean().default(false),\r\n isAiGenerated: z.boolean().default(false),\r\n videoCoverTimestampMs: z.number().int().nonnegative().nullable().default(null),\r\n consentedAt: z.union([z.string().datetime(), z.literal(\"\")]).default(\"\"),\r\n}).strict();\r\nexport type TikTokPostSettings = z.infer<typeof TikTokPostSettingsSchema>;\r\n\r\nexport const TikTokDraftSettingsSchema = z.object({\r\n postMode: z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]).optional(),\r\n privacyLevel: z.string().trim().min(1).max(100).nullable().optional(),\r\n allowComment: z.boolean().optional(),\r\n allowDuet: z.boolean().optional(),\r\n allowStitch: z.boolean().optional(),\r\n commercialContentEnabled: z.boolean().optional(),\r\n promotesOwnBrand: z.boolean().optional(),\r\n promotesThirdParty: z.boolean().optional(),\r\n isAiGenerated: z.boolean().optional(),\r\n videoCoverTimestampMs: z.number().int().nonnegative().nullable().optional(),\r\n reviewed: z.boolean().optional(),\r\n consentedAt: z.union([z.string().datetime(), z.literal(\"\")]).optional(),\r\n}).strict().superRefine((input, context) => {\r\n const requestsReview = input.reviewed === true || Boolean(input.consentedAt);\r\n if (input.postMode === \"MEDIA_UPLOAD\") {\r\n if (\r\n input.privacyLevel != null\r\n || input.allowComment === true\r\n || input.allowDuet === true\r\n || input.allowStitch === true\r\n || input.commercialContentEnabled === true\r\n || input.promotesOwnBrand === true\r\n || input.promotesThirdParty === true\r\n || input.isAiGenerated === true\r\n || input.videoCoverTimestampMs != null\r\n ) {\r\n context.addIssue({\r\n code: \"custom\",\r\n message: \"TikTok inbox drafts do not apply direct-post visibility, interaction, disclosure, AI, or cover settings.\",\r\n });\r\n }\r\n return;\r\n }\r\n if (!requestsReview) return;\r\n\r\n if (!input.postMode) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"postMode\"],\r\n message: \"Choose TikTok direct publishing or inbox draft delivery explicitly.\",\r\n });\r\n return;\r\n }\r\n\r\n const requiredBooleanFields = [\r\n \"allowComment\",\r\n \"allowDuet\",\r\n \"allowStitch\",\r\n \"commercialContentEnabled\",\r\n \"promotesOwnBrand\",\r\n \"promotesThirdParty\",\r\n \"isAiGenerated\",\r\n ] as const;\r\n if (!input.privacyLevel) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"privacyLevel\"],\r\n message: \"Choose TikTok visibility explicitly before reviewing the settings.\",\r\n });\r\n }\r\n for (const field of requiredBooleanFields) {\r\n if (input[field] === undefined) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [field],\r\n message: \"Choose yes or no explicitly before reviewing TikTok settings.\",\r\n });\r\n }\r\n }\r\n if (\r\n input.commercialContentEnabled === true\r\n && input.promotesOwnBrand !== true\r\n && input.promotesThirdParty !== true\r\n ) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"commercialContentEnabled\"],\r\n message: \"Commercial TikTok content must identify own-brand or third-party promotion.\",\r\n });\r\n }\r\n if (\r\n input.commercialContentEnabled === false\r\n && (input.promotesOwnBrand === true || input.promotesThirdParty === true)\r\n ) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"commercialContentEnabled\"],\r\n message: \"Promotion declarations require commercial content to be enabled.\",\r\n });\r\n }\r\n}).transform((input) => ({\r\n postMode: input.postMode ?? \"DIRECT_POST\" as const,\r\n privacyLevel: input.privacyLevel ?? null,\r\n allowComment: input.allowComment ?? false,\r\n allowDuet: input.allowDuet ?? false,\r\n allowStitch: input.allowStitch ?? false,\r\n commercialContentEnabled: input.commercialContentEnabled ?? false,\r\n promotesOwnBrand: input.promotesOwnBrand ?? false,\r\n promotesThirdParty: input.promotesThirdParty ?? false,\r\n isAiGenerated: input.isAiGenerated ?? false,\r\n videoCoverTimestampMs: input.videoCoverTimestampMs ?? null,\r\n reviewed: input.reviewed === true || Boolean(input.consentedAt),\r\n}));\r\nexport type TikTokDraftSettingsInput = z.input<typeof TikTokDraftSettingsSchema>;\r\nexport type TikTokDraftSettings = z.infer<typeof TikTokDraftSettingsSchema>;\r\n\r\nfunction youtubeTagLength(tags: readonly string[]) {\r\n return tags.reduce((total, tag, index) => (\r\n total + (index ? 1 : 0) + tag.length + (tag.includes(\" \") ? 2 : 0)\r\n ), 0);\r\n}\r\n\r\nexport const YouTubePostSettingsSchema = z.object({\r\n title: z.string().trim().min(1).max(100).refine(\r\n (value) => !/[<>]/.test(value),\r\n \"YouTube titles cannot contain angle brackets.\",\r\n ),\r\n categoryId: z.string().trim().regex(/^\\d+$/).max(20),\r\n privacyStatus: z.enum([\"PUBLIC\", \"UNLISTED\", \"PRIVATE\"]),\r\n madeForKids: z.boolean(),\r\n containsSyntheticMedia: z.boolean().default(false),\r\n notifySubscribers: z.boolean().default(true),\r\n tags: z.array(z.string().trim().min(1).max(500)).max(50).refine(\r\n (tags) => new Set(tags).size === tags.length,\r\n \"YouTube tags must be unique.\",\r\n ).refine(\r\n (tags) => youtubeTagLength(tags) <= 500,\r\n \"YouTube tags exceed the 500-character aggregate limit.\",\r\n ).default([]),\r\n}).strict();\r\nexport type YouTubePostSettings = z.infer<typeof YouTubePostSettingsSchema>;\r\n\r\nexport const PostProviderSettingsSchema = z.object({\r\n TIKTOK: TikTokPostSettingsSchema.nullable().optional(),\r\n YOUTUBE: YouTubePostSettingsSchema.nullable().optional(),\r\n}).strict().default({});\r\nexport type PostProviderSettings = z.infer<typeof PostProviderSettingsSchema>;\r\n\r\nexport const PostSchema = z.object({\r\n id: z.string().min(1),\r\n projectId: z.string().min(1),\r\n version: z.number().int().positive(),\r\n campaign: z.object({\r\n id: z.string().min(1),\r\n title: z.string().min(1),\r\n }).nullable(),\r\n caption: z.string(),\r\n status: PostStatusSchema,\r\n scheduledAt: z.string().datetime().nullable(),\r\n timezone: z.string().nullable(),\r\n publishedAt: z.string().datetime().nullable(),\r\n createdAt: z.string().datetime(),\r\n updatedAt: z.string().datetime(),\r\n media: z.array(PostMediaSchema),\r\n destinations: z.array(PostDestinationSchema),\r\n providerSettings: PostProviderSettingsSchema.optional(),\r\n});\r\nexport type Post = z.infer<typeof PostSchema>;\r\n\r\nexport const PostListQuerySchema = z.object({\r\n limit: z.coerce.number().int().min(1).max(100).default(50),\r\n cursor: z.string().min(1).optional(),\r\n status: PostStatusSchema.optional(),\r\n});\r\nexport type PostListQuery = z.input<typeof PostListQuerySchema>;\r\n\r\nexport const PostListDataSchema = z.object({\r\n items: z.array(PostSchema),\r\n page: z.object({\r\n limit: z.number().int().min(1).max(100),\r\n nextCursor: z.string().min(1).nullable(),\r\n }),\r\n});\r\nexport type PostListData = z.infer<typeof PostListDataSchema>;\r\nexport const PostListResponseSchema = successEnvelopeSchema(PostListDataSchema);\r\nexport type PostListResponse = z.infer<typeof PostListResponseSchema>;\r\n\r\nexport const PostResponseSchema = successEnvelopeSchema(PostSchema);\r\nexport type PostResponse = z.infer<typeof PostResponseSchema>;\r\n\r\nconst blueskyGraphemeSegmenter = new Intl.Segmenter(\"en\", {\r\n granularity: \"grapheme\",\r\n});\r\n\r\nconst BlueskyCaptionSchema = z.string().max(3000).refine(\r\n (value) => Array.from(blueskyGraphemeSegmenter.segment(value)).length <= 300,\r\n \"Bluesky captions cannot exceed 300 graphemes.\",\r\n);\r\n\r\nconst utf8Encoder = new TextEncoder();\r\nconst YouTubeDescriptionSchema = z.string().max(5000).refine(\r\n (value) => utf8Encoder.encode(value).length <= 5000,\r\n \"YouTube descriptions cannot exceed 5,000 UTF-8 bytes.\",\r\n);\r\n\r\nconst DraftCaptionOverridesObjectSchema = z.object({\r\n INSTAGRAM: z.string().max(2200).nullable().optional(),\r\n TIKTOK: z.string().max(2200).nullable().optional(),\r\n YOUTUBE: YouTubeDescriptionSchema.nullable().optional(),\r\n BLUESKY: BlueskyCaptionSchema.nullable().optional(),\r\n LINKEDIN: z.string().max(3000).nullable().optional(),\r\n}).strict();\r\n\r\nconst DraftPlatformsSchema = z.array(PublishingProviderSchema).max(PUBLISHING_PROVIDER_COUNT).refine(\r\n (providers) => new Set(providers).size === providers.length,\r\n \"Publishing destinations must be unique.\",\r\n);\r\n\r\nconst DraftMediaAssetIdsSchema = z.array(z.string().trim().min(1).max(200)).max(10).refine(\r\n (ids) => new Set(ids).size === ids.length,\r\n \"Media asset IDs must be unique.\",\r\n);\r\n\r\nexport const DraftPostInputSchema = z.object({\r\n caption: z.string().max(3000).transform((value) => value.trim()).default(\"\"),\r\n platforms: DraftPlatformsSchema.default([]),\r\n mediaAssetIds: DraftMediaAssetIdsSchema.default([]),\r\n captionOverrides: DraftCaptionOverridesObjectSchema.default({}),\r\n tiktokSettings: TikTokDraftSettingsSchema.nullable().default(null),\r\n youtubeSettings: YouTubePostSettingsSchema.nullable().default(null),\r\n}).strict().superRefine((input, context) => {\r\n if (input.caption.length === 0 && input.mediaAssetIds.length === 0) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"caption\"],\r\n message: \"A draft requires a caption or at least one media asset.\",\r\n });\r\n }\r\n if (input.tiktokSettings && !input.platforms.includes(\"TIKTOK\")) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"tiktokSettings\"],\r\n message: \"TikTok settings require the TIKTOK destination.\",\r\n });\r\n }\r\n if (input.youtubeSettings && !input.platforms.includes(\"YOUTUBE\")) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"youtubeSettings\"],\r\n message: \"YouTube settings require the YOUTUBE destination.\",\r\n });\r\n }\r\n if (input.platforms.includes(\"YOUTUBE\") && !input.youtubeSettings) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"youtubeSettings\"],\r\n message: \"YouTube settings are required for the YOUTUBE destination.\",\r\n });\r\n }\r\n if (\r\n input.platforms.includes(\"YOUTUBE\")\r\n && input.captionOverrides.YOUTUBE == null\r\n && utf8Encoder.encode(input.caption).length > 5000\r\n ) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"caption\"],\r\n message: \"YouTube descriptions cannot exceed 5,000 UTF-8 bytes.\",\r\n });\r\n }\r\n if (\r\n input.platforms.includes(\"BLUESKY\")\r\n && input.captionOverrides.BLUESKY == null\r\n && Array.from(blueskyGraphemeSegmenter.segment(input.caption)).length > 300\r\n ) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"caption\"],\r\n message: \"Bluesky captions cannot exceed 300 graphemes.\",\r\n });\r\n }\r\n});\r\nexport type DraftPostInput = z.input<typeof DraftPostInputSchema>;\r\nexport type DraftPostData = z.infer<typeof DraftPostInputSchema>;\r\n\r\nexport const DraftPostUpdateInputSchema = z.object({\r\n caption: z.string().max(3000).transform((value) => value.trim()).optional(),\r\n platforms: DraftPlatformsSchema.optional(),\r\n mediaAssetIds: DraftMediaAssetIdsSchema.optional(),\r\n captionOverrides: DraftCaptionOverridesObjectSchema.optional(),\r\n tiktokSettings: TikTokDraftSettingsSchema.nullable().optional(),\r\n youtubeSettings: YouTubePostSettingsSchema.nullable().optional(),\r\n}).strict().superRefine((input, context) => {\r\n if (Object.values(input).every((value) => value === undefined)) {\r\n context.addIssue({ code: \"custom\", message: \"Provide at least one draft field to update.\" });\r\n }\r\n if (input.platforms && input.tiktokSettings && !input.platforms.includes(\"TIKTOK\")) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"tiktokSettings\"],\r\n message: \"TikTok settings require the TIKTOK destination.\",\r\n });\r\n }\r\n if (input.platforms && input.youtubeSettings && !input.platforms.includes(\"YOUTUBE\")) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"youtubeSettings\"],\r\n message: \"YouTube settings require the YOUTUBE destination.\",\r\n });\r\n }\r\n});\r\nexport type DraftPostUpdateInput = z.input<typeof DraftPostUpdateInputSchema>;\r\nexport type DraftPostUpdateData = z.infer<typeof DraftPostUpdateInputSchema>;\r\n\r\nexport const IntegrationConnectionStatusSchema = z.enum([\r\n \"PENDING\",\r\n \"CONNECTED\",\r\n \"ERROR\",\r\n \"EXPIRED\",\r\n \"DISCONNECTED\",\r\n]);\r\n\r\nexport const ProviderHealthStatusSchema = z.enum([\r\n \"pass\",\r\n \"blocking\",\r\n \"unknown\",\r\n]);\r\n\r\nexport const IntegrationHealthSchema = z.object({\r\n provider: PublishingProviderSchema,\r\n connectionStatus: IntegrationConnectionStatusSchema,\r\n connected: z.boolean(),\r\n account: z.object({\r\n username: z.string().nullable(),\r\n displayName: z.string().nullable(),\r\n avatarUrl: z.string().url().nullable(),\r\n }),\r\n grantedScopes: z.array(z.string()),\r\n expiresAt: z.string().datetime().nullable(),\r\n health: z.object({\r\n status: ProviderHealthStatusSchema,\r\n checkedAt: z.string().datetime().nullable(),\r\n code: z.string().min(1),\r\n message: z.string().min(1),\r\n isStale: z.boolean(),\r\n requiresAction: z.boolean(),\r\n refreshRecommended: z.boolean(),\r\n }),\r\n});\r\nexport type IntegrationHealth = z.infer<typeof IntegrationHealthSchema>;\r\n\r\nexport const IntegrationHealthListDataSchema = z.object({\r\n items: z.array(IntegrationHealthSchema)\r\n .max(PUBLISHING_PROVIDER_COUNT)\r\n .refine(\r\n (items) => new Set(items.map((item) => item.provider)).size === items.length,\r\n \"Provider health items must be unique.\",\r\n ),\r\n});\r\nexport type IntegrationHealthListData = z.infer<\r\n typeof IntegrationHealthListDataSchema\r\n>;\r\nexport const IntegrationHealthListResponseSchema = successEnvelopeSchema(\r\n IntegrationHealthListDataSchema,\r\n);\r\n\r\nexport const ProviderDeliveryOptionsProviderSchema = z.enum([\r\n \"TIKTOK\",\r\n \"LINKEDIN\",\r\n]);\r\nexport type ProviderDeliveryOptionsProvider = z.infer<\r\n typeof ProviderDeliveryOptionsProviderSchema\r\n>;\r\n\r\nexport const TikTokDeliveryOptionsSchema = z.object({\r\n provider: z.literal(\"TIKTOK\"),\r\n account: z.object({\r\n username: z.string().nullable(),\r\n displayName: z.string().nullable(),\r\n avatarUrl: z.string().url().nullable(),\r\n }),\r\n allowedPostModes: z.array(z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]))\r\n .max(2)\r\n .refine(\r\n (items) => new Set(items).size === items.length,\r\n \"TikTok post modes must be unique.\",\r\n ),\r\n visibilityOptions: z.array(z.string().trim().min(1).max(100)).max(20)\r\n .refine(\r\n (items) => new Set(items).size === items.length,\r\n \"TikTok visibility options must be unique.\",\r\n ),\r\n interactions: z.object({\r\n comment: z.object({ available: z.boolean() }),\r\n duet: z.object({ available: z.boolean() }),\r\n stitch: z.object({ available: z.boolean() }),\r\n }),\r\n maxVideoDurationMs: z.number().int().positive().max(86_400_000).nullable(),\r\n health: z.object({\r\n status: ProviderHealthStatusSchema,\r\n code: z.string().min(1),\r\n message: z.string().min(1),\r\n }),\r\n checkedAt: z.string().datetime(),\r\n});\r\n\r\nexport const LinkedInDeliveryOptionsSchema = z.object({\r\n provider: z.literal(\"LINKEDIN\"),\r\n account: z.object({\r\n displayName: z.string().nullable(),\r\n avatarUrl: z.string().url().nullable(),\r\n }),\r\n supportedPostTypes: z.array(z.enum([\"TEXT\", \"SINGLE_IMAGE\", \"MULTI_IMAGE\"])).length(3),\r\n image: z.object({\r\n maxItems: z.literal(10),\r\n mimeTypes: z.tuple([z.literal(\"image/jpeg\"), z.literal(\"image/png\")]),\r\n maxPixelsExclusive: z.literal(36_152_320),\r\n maxBytes: z.literal(26_214_400),\r\n }),\r\n health: z.object({\r\n status: ProviderHealthStatusSchema,\r\n code: z.string().min(1),\r\n message: z.string().min(1),\r\n }),\r\n checkedAt: z.string().datetime(),\r\n});\r\n\r\n// Add one strict provider variant here as each future social network gains\r\n// creator-specific delivery choices. Callers can always discriminate by provider.\r\nexport const ProviderDeliveryOptionsSchema = z.discriminatedUnion(\"provider\", [\r\n TikTokDeliveryOptionsSchema,\r\n LinkedInDeliveryOptionsSchema,\r\n]);\r\nexport type ProviderDeliveryOptions = z.infer<typeof ProviderDeliveryOptionsSchema>;\r\nexport const ProviderDeliveryOptionsResponseSchema = successEnvelopeSchema(\r\n ProviderDeliveryOptionsSchema,\r\n);\r\n\r\nexport const ReadinessStatusSchema = z.enum([\r\n \"checking\",\r\n \"pass\",\r\n \"warning\",\r\n \"blocking\",\r\n \"unknown\",\r\n]);\r\n\r\nexport const ReadinessActionSchema = z.object({\r\n kind: z.enum([\r\n \"reconnect\",\r\n \"replace_media\",\r\n \"review_settings\",\r\n \"edit_caption\",\r\n \"refresh_health\",\r\n ]),\r\n provider: PublishingProviderSchema.optional(),\r\n});\r\n\r\nexport const PostReadinessCheckSchema = z.object({\r\n key: z.string().min(1),\r\n id: z.enum([\r\n \"connection\",\r\n \"permissions\",\r\n \"media\",\r\n \"caption\",\r\n \"tiktok_settings\",\r\n \"youtube_settings\",\r\n \"storage\",\r\n \"schedule_lead\",\r\n \"token_health\",\r\n \"media_duration\",\r\n \"provider_health\",\r\n ]),\r\n provider: PublishingProviderSchema.nullable(),\r\n mediaId: z.string().min(1).optional(),\r\n status: ReadinessStatusSchema,\r\n source: z.enum([\"local\", \"live\"]),\r\n checkedAt: z.string().datetime().nullable(),\r\n message: z.string().min(1),\r\n code: z.string().min(1),\r\n action: ReadinessActionSchema.nullable(),\r\n});\r\n\r\nexport const PostReadinessSchema = z.object({\r\n checks: z.array(PostReadinessCheckSchema),\r\n accounts: z.array(z.object({\r\n provider: PublishingProviderSchema,\r\n connected: z.boolean(),\r\n username: z.string().nullable(),\r\n avatarUrl: z.string().url().nullable(),\r\n requiresAction: z.boolean(),\r\n })),\r\n hasBlockingChecks: z.boolean(),\r\n requiresLiveRefresh: z.array(PublishingProviderSchema),\r\n liveHealthCheckedAt: z.string().datetime().nullable(),\r\n});\r\nexport type PostReadiness = z.infer<typeof PostReadinessSchema>;\r\nexport const PostReadinessResponseSchema = successEnvelopeSchema(\r\n PostReadinessSchema,\r\n);\r\n\r\nexport const PostScheduleInputSchema = z.object({\r\n scheduledAt: z.string().datetime({ offset: true }),\r\n timezone: z.string().trim().min(1).max(100).refine((timezone) => {\r\n try {\r\n new Intl.DateTimeFormat(\"en\", { timeZone: timezone }).format();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }, \"timezone must be a valid IANA timezone\"),\r\n}).strict();\r\nexport type PostScheduleInput = z.infer<typeof PostScheduleInputSchema>;\r\n\r\nexport const PostScheduleExecuteInputSchema = PostScheduleInputSchema.extend({\r\n confirmationToken: z.string().trim().min(1).max(200),\r\n}).strict();\r\nexport type PostScheduleExecuteInput = z.infer<\r\n typeof PostScheduleExecuteInputSchema\r\n>;\r\n\r\nexport const PostSchedulePreviewSchema = z.object({\r\n operation: z.literal(\"posts.schedule.execute\"),\r\n post: z.object({\r\n id: z.string().min(1),\r\n projectId: z.string().min(1),\r\n version: z.number().int().positive(),\r\n status: PostStatusSchema,\r\n }),\r\n schedule: PostScheduleInputSchema,\r\n destinations: z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT),\r\n providerReconciliation: z.object({\r\n provider: z.literal(\"YOUTUBE\"),\r\n required: z.boolean(),\r\n message: z.string().min(1),\r\n }).nullable().optional(),\r\n readiness: PostReadinessSchema,\r\n confirmation: z.object({\r\n token: z.string().min(1),\r\n expiresAt: z.string().datetime(),\r\n }),\r\n});\r\nexport type PostSchedulePreview = z.infer<typeof PostSchedulePreviewSchema>;\r\nexport const PostSchedulePreviewResponseSchema = successEnvelopeSchema(\r\n PostSchedulePreviewSchema,\r\n);\r\n\r\nexport const PostSchedulePendingSchema = z.object({\r\n status: z.literal(\"PENDING\"),\r\n postId: z.string().min(1),\r\n provider: z.literal(\"YOUTUBE\"),\r\n mutationId: z.string().min(1),\r\n operation: z.enum([\"SCHEDULE\", \"CANCEL\"]),\r\n message: z.string().min(1),\r\n});\r\nexport type PostSchedulePending = z.infer<typeof PostSchedulePendingSchema>;\r\nexport const PostScheduleExecuteResultSchema = z.union([\r\n PostSchema,\r\n PostSchedulePendingSchema,\r\n]);\r\nexport type PostScheduleExecuteResult = z.infer<\r\n typeof PostScheduleExecuteResultSchema\r\n>;\r\nexport const PostScheduleExecuteResponseSchema = successEnvelopeSchema(\r\n PostScheduleExecuteResultSchema,\r\n);\r\n\r\nexport const PostPublishInputSchema = z.object({\r\n destinations: z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT)\r\n .refine(\r\n (destinations) => new Set(destinations).size === destinations.length,\r\n \"destinations must not contain duplicates\",\r\n ),\r\n}).strict();\r\nexport type PostPublishInput = z.infer<typeof PostPublishInputSchema>;\r\n\r\nexport const PostPublishExecuteInputSchema = PostPublishInputSchema.extend({\r\n confirmationToken: z.string().trim().min(1).max(200),\r\n}).strict();\r\nexport type PostPublishExecuteInput = z.infer<\r\n typeof PostPublishExecuteInputSchema\r\n>;\r\n\r\nexport const PostPublishPreviewSchema = z.object({\r\n operation: z.literal(\"posts.publish.execute\"),\r\n post: z.object({\r\n id: z.string().min(1),\r\n projectId: z.string().min(1),\r\n version: z.number().int().positive(),\r\n status: PostStatusSchema,\r\n }),\r\n destinations: PostPublishInputSchema.shape.destinations,\r\n readiness: PostReadinessSchema,\r\n confirmation: z.object({\r\n token: z.string().min(1),\r\n expiresAt: z.string().datetime(),\r\n }),\r\n});\r\nexport type PostPublishPreview = z.infer<typeof PostPublishPreviewSchema>;\r\nexport const PostPublishPreviewResponseSchema = successEnvelopeSchema(\r\n PostPublishPreviewSchema,\r\n);\r\n\r\nexport const CalendarEventSchema = z.object({\r\n postId: z.string().min(1),\r\n projectId: z.string().min(1),\r\n title: z.string().min(1),\r\n caption: z.string(),\r\n status: PostStatusSchema.exclude([\"DRAFT\"]),\r\n scheduledAt: z.string().datetime(),\r\n timezone: z.string().nullable(),\r\n campaign: z.object({\r\n id: z.string().min(1),\r\n title: z.string().min(1),\r\n }).nullable(),\r\n thumbnailUrl: z.string().url().nullable(),\r\n destinations: z.array(z.object({\r\n provider: PublishingProviderSchema,\r\n status: PlatformPostStatusSchema,\r\n })),\r\n});\r\nexport type CalendarEvent = z.infer<typeof CalendarEventSchema>;\r\n\r\nexport const CalendarListQuerySchema = z.object({\r\n limit: z.coerce.number().int().min(1).max(100).default(50),\r\n cursor: z.string().min(1).optional(),\r\n from: z.string().datetime().optional(),\r\n to: z.string().datetime().optional(),\r\n}).superRefine((value, context) => {\r\n if ((value.from === undefined) !== (value.to === undefined)) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: value.from === undefined ? [\"from\"] : [\"to\"],\r\n message: \"from and to must be provided together\",\r\n });\r\n }\r\n if (value.from && value.to) {\r\n const from = Date.parse(value.from);\r\n const to = Date.parse(value.to);\r\n if (from >= to) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"to\"],\r\n message: \"to must be later than from\",\r\n });\r\n } else if (to - from > 366 * 24 * 60 * 60 * 1000) {\r\n context.addIssue({\r\n code: \"custom\",\r\n path: [\"to\"],\r\n message: \"calendar ranges cannot exceed 366 days\",\r\n });\r\n }\r\n }\r\n});\r\nexport type CalendarListQuery = z.input<typeof CalendarListQuerySchema>;\r\n\r\nexport const CalendarListDataSchema = z.object({\r\n items: z.array(CalendarEventSchema),\r\n page: z.object({\r\n limit: z.number().int().min(1).max(100),\r\n nextCursor: z.string().min(1).nullable(),\r\n }),\r\n window: z.object({\r\n from: z.string().datetime(),\r\n to: z.string().datetime(),\r\n }),\r\n});\r\nexport type CalendarListData = z.infer<typeof CalendarListDataSchema>;\r\nexport const CalendarListResponseSchema = successEnvelopeSchema(\r\n CalendarListDataSchema,\r\n);\r\n"],"mappings":"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","names":[]}
|