@rolino/contracts 0.2.0 → 0.4.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 +13 -0
- package/README.md +26 -22
- package/dist/index.cjs +48 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +185 -4
- package/dist/index.d.ts +185 -4
- package/dist/index.js +46 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
var API_VERSION = "v1";
|
|
4
|
-
var CONTRACT_VERSION = "0.
|
|
4
|
+
var CONTRACT_VERSION = "0.14.0";
|
|
5
5
|
var RequestMetadataSchema = z.object({
|
|
6
6
|
requestId: z.string().min(1)
|
|
7
7
|
});
|
|
@@ -250,7 +250,8 @@ var PublishingProviderSchema = z.enum([
|
|
|
250
250
|
"INSTAGRAM",
|
|
251
251
|
"TIKTOK",
|
|
252
252
|
"YOUTUBE",
|
|
253
|
-
"BLUESKY"
|
|
253
|
+
"BLUESKY",
|
|
254
|
+
"LINKEDIN"
|
|
254
255
|
]);
|
|
255
256
|
var PUBLISHING_PROVIDER_COUNT = PublishingProviderSchema.options.length;
|
|
256
257
|
var PostDestinationSchema = z.object({
|
|
@@ -434,7 +435,8 @@ var DraftCaptionOverridesObjectSchema = z.object({
|
|
|
434
435
|
INSTAGRAM: z.string().max(2200).nullable().optional(),
|
|
435
436
|
TIKTOK: z.string().max(2200).nullable().optional(),
|
|
436
437
|
YOUTUBE: YouTubeDescriptionSchema.nullable().optional(),
|
|
437
|
-
BLUESKY: BlueskyCaptionSchema.nullable().optional()
|
|
438
|
+
BLUESKY: BlueskyCaptionSchema.nullable().optional(),
|
|
439
|
+
LINKEDIN: z.string().max(3e3).nullable().optional()
|
|
438
440
|
}).strict();
|
|
439
441
|
var DraftPlatformsSchema = z.array(PublishingProviderSchema).max(PUBLISHING_PROVIDER_COUNT).refine(
|
|
440
442
|
(providers) => new Set(providers).size === providers.length,
|
|
@@ -445,7 +447,7 @@ var DraftMediaAssetIdsSchema = z.array(z.string().trim().min(1).max(200)).max(10
|
|
|
445
447
|
"Media asset IDs must be unique."
|
|
446
448
|
);
|
|
447
449
|
var DraftPostInputSchema = z.object({
|
|
448
|
-
caption: z.string().max(
|
|
450
|
+
caption: z.string().max(3e3).transform((value) => value.trim()).default(""),
|
|
449
451
|
platforms: DraftPlatformsSchema.default([]),
|
|
450
452
|
mediaAssetIds: DraftMediaAssetIdsSchema.default([]),
|
|
451
453
|
captionOverrides: DraftCaptionOverridesObjectSchema.default({}),
|
|
@@ -496,7 +498,7 @@ var DraftPostInputSchema = z.object({
|
|
|
496
498
|
}
|
|
497
499
|
});
|
|
498
500
|
var DraftPostUpdateInputSchema = z.object({
|
|
499
|
-
caption: z.string().max(
|
|
501
|
+
caption: z.string().max(3e3).transform((value) => value.trim()).optional(),
|
|
500
502
|
platforms: DraftPlatformsSchema.optional(),
|
|
501
503
|
mediaAssetIds: DraftMediaAssetIdsSchema.optional(),
|
|
502
504
|
captionOverrides: DraftCaptionOverridesObjectSchema.optional(),
|
|
@@ -563,6 +565,10 @@ var IntegrationHealthListDataSchema = z.object({
|
|
|
563
565
|
var IntegrationHealthListResponseSchema = successEnvelopeSchema(
|
|
564
566
|
IntegrationHealthListDataSchema
|
|
565
567
|
);
|
|
568
|
+
var ProviderDeliveryOptionsProviderSchema = z.enum([
|
|
569
|
+
"TIKTOK",
|
|
570
|
+
"LINKEDIN"
|
|
571
|
+
]);
|
|
566
572
|
var TikTokDeliveryOptionsSchema = z.object({
|
|
567
573
|
provider: z.literal("TIKTOK"),
|
|
568
574
|
account: z.object({
|
|
@@ -591,8 +597,37 @@ var TikTokDeliveryOptionsSchema = z.object({
|
|
|
591
597
|
}),
|
|
592
598
|
checkedAt: z.string().datetime()
|
|
593
599
|
});
|
|
600
|
+
var LinkedInDeliveryOptionsSchema = z.object({
|
|
601
|
+
provider: z.literal("LINKEDIN"),
|
|
602
|
+
account: z.object({
|
|
603
|
+
displayName: z.string().nullable(),
|
|
604
|
+
avatarUrl: z.string().url().nullable()
|
|
605
|
+
}),
|
|
606
|
+
supportedPostTypes: z.array(z.enum(["TEXT", "SINGLE_IMAGE", "MULTI_IMAGE", "VIDEO"])).length(4),
|
|
607
|
+
image: z.object({
|
|
608
|
+
maxItems: z.literal(10),
|
|
609
|
+
mimeTypes: z.tuple([z.literal("image/jpeg"), z.literal("image/png")]),
|
|
610
|
+
maxPixelsExclusive: z.literal(36152320),
|
|
611
|
+
maxBytes: z.literal(26214400)
|
|
612
|
+
}),
|
|
613
|
+
video: z.object({
|
|
614
|
+
maxItems: z.literal(1),
|
|
615
|
+
mimeTypes: z.tuple([z.literal("video/mp4")]),
|
|
616
|
+
minBytes: z.literal(76800),
|
|
617
|
+
maxBytes: z.literal(524288e3),
|
|
618
|
+
minDurationMs: z.literal(3e3),
|
|
619
|
+
maxDurationMs: z.literal(18e5)
|
|
620
|
+
}),
|
|
621
|
+
health: z.object({
|
|
622
|
+
status: ProviderHealthStatusSchema,
|
|
623
|
+
code: z.string().min(1),
|
|
624
|
+
message: z.string().min(1)
|
|
625
|
+
}),
|
|
626
|
+
checkedAt: z.string().datetime()
|
|
627
|
+
});
|
|
594
628
|
var ProviderDeliveryOptionsSchema = z.discriminatedUnion("provider", [
|
|
595
|
-
TikTokDeliveryOptionsSchema
|
|
629
|
+
TikTokDeliveryOptionsSchema,
|
|
630
|
+
LinkedInDeliveryOptionsSchema
|
|
596
631
|
]);
|
|
597
632
|
var ProviderDeliveryOptionsResponseSchema = successEnvelopeSchema(
|
|
598
633
|
ProviderDeliveryOptionsSchema
|
|
@@ -608,11 +643,13 @@ var ReadinessActionSchema = z.object({
|
|
|
608
643
|
kind: z.enum([
|
|
609
644
|
"reconnect",
|
|
610
645
|
"replace_media",
|
|
646
|
+
"adjust_media",
|
|
611
647
|
"review_settings",
|
|
612
648
|
"edit_caption",
|
|
613
649
|
"refresh_health"
|
|
614
650
|
]),
|
|
615
|
-
provider: PublishingProviderSchema.optional()
|
|
651
|
+
provider: PublishingProviderSchema.optional(),
|
|
652
|
+
mediaId: z.string().min(1).optional()
|
|
616
653
|
});
|
|
617
654
|
var PostReadinessCheckSchema = z.object({
|
|
618
655
|
key: z.string().min(1),
|
|
@@ -826,6 +863,7 @@ export {
|
|
|
826
863
|
IntegrationHealthListDataSchema,
|
|
827
864
|
IntegrationHealthListResponseSchema,
|
|
828
865
|
IntegrationHealthSchema,
|
|
866
|
+
LinkedInDeliveryOptionsSchema,
|
|
829
867
|
MediaAssetListDataSchema,
|
|
830
868
|
MediaAssetListQuerySchema,
|
|
831
869
|
MediaAssetListResponseSchema,
|
|
@@ -867,6 +905,7 @@ export {
|
|
|
867
905
|
ProjectResponseSchema,
|
|
868
906
|
ProjectSchema,
|
|
869
907
|
ProjectTypeSchema,
|
|
908
|
+
ProviderDeliveryOptionsProviderSchema,
|
|
870
909
|
ProviderDeliveryOptionsResponseSchema,
|
|
871
910
|
ProviderDeliveryOptionsSchema,
|
|
872
911
|
ProviderHealthStatusSchema,
|
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.13.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 assetId: z.string().min(1).nullable().optional(),\n type: z.enum([\"IMAGE\", \"VIDEO\"]),\n url: z.string().url(),\n mimeType: z.string().min(1),\n sizeBytes: z.number().int().positive().nullable().optional(),\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 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 PostDestinationSchema = z.object({\n provider: PublishingProviderSchema,\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 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\nexport const TikTokDraftSettingsSchema = z.object({\n postMode: z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]).optional(),\n privacyLevel: z.string().trim().min(1).max(100).nullable().optional(),\n allowComment: z.boolean().optional(),\n allowDuet: z.boolean().optional(),\n allowStitch: z.boolean().optional(),\n commercialContentEnabled: z.boolean().optional(),\n promotesOwnBrand: z.boolean().optional(),\n promotesThirdParty: z.boolean().optional(),\n isAiGenerated: z.boolean().optional(),\n videoCoverTimestampMs: z.number().int().nonnegative().nullable().optional(),\n reviewed: z.boolean().optional(),\n consentedAt: z.union([z.string().datetime(), z.literal(\"\")]).optional(),\n}).strict().superRefine((input, context) => {\n const requestsReview = input.reviewed === true || Boolean(input.consentedAt);\n if (input.postMode === \"MEDIA_UPLOAD\") {\n if (\n input.privacyLevel != null\n || input.allowComment === true\n || input.allowDuet === true\n || input.allowStitch === true\n || input.commercialContentEnabled === true\n || input.promotesOwnBrand === true\n || input.promotesThirdParty === true\n || input.isAiGenerated === true\n || input.videoCoverTimestampMs != null\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"TikTok inbox drafts do not apply direct-post visibility, interaction, disclosure, AI, or cover settings.\",\n });\n }\n return;\n }\n if (!requestsReview) return;\n\n if (!input.postMode) {\n context.addIssue({\n code: \"custom\",\n path: [\"postMode\"],\n message: \"Choose TikTok direct publishing or inbox draft delivery explicitly.\",\n });\n return;\n }\n\n const requiredBooleanFields = [\n \"allowComment\",\n \"allowDuet\",\n \"allowStitch\",\n \"commercialContentEnabled\",\n \"promotesOwnBrand\",\n \"promotesThirdParty\",\n \"isAiGenerated\",\n ] as const;\n if (!input.privacyLevel) {\n context.addIssue({\n code: \"custom\",\n path: [\"privacyLevel\"],\n message: \"Choose TikTok visibility explicitly before reviewing the settings.\",\n });\n }\n for (const field of requiredBooleanFields) {\n if (input[field] === undefined) {\n context.addIssue({\n code: \"custom\",\n path: [field],\n message: \"Choose yes or no explicitly before reviewing TikTok settings.\",\n });\n }\n }\n if (\n input.commercialContentEnabled === true\n && input.promotesOwnBrand !== true\n && input.promotesThirdParty !== true\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"commercialContentEnabled\"],\n message: \"Commercial TikTok content must identify own-brand or third-party promotion.\",\n });\n }\n if (\n input.commercialContentEnabled === false\n && (input.promotesOwnBrand === true || input.promotesThirdParty === true)\n ) {\n context.addIssue({\n code: \"custom\",\n path: [\"commercialContentEnabled\"],\n message: \"Promotion declarations require commercial content to be enabled.\",\n });\n }\n}).transform((input) => ({\n postMode: input.postMode ?? \"DIRECT_POST\" as const,\n privacyLevel: input.privacyLevel ?? null,\n allowComment: input.allowComment ?? false,\n allowDuet: input.allowDuet ?? false,\n allowStitch: input.allowStitch ?? false,\n commercialContentEnabled: input.commercialContentEnabled ?? false,\n promotesOwnBrand: input.promotesOwnBrand ?? false,\n promotesThirdParty: input.promotesThirdParty ?? false,\n isAiGenerated: input.isAiGenerated ?? false,\n videoCoverTimestampMs: input.videoCoverTimestampMs ?? null,\n reviewed: input.reviewed === true || Boolean(input.consentedAt),\n}));\nexport type TikTokDraftSettingsInput = z.input<typeof TikTokDraftSettingsSchema>;\nexport type TikTokDraftSettings = z.infer<typeof TikTokDraftSettingsSchema>;\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\nexport const PostProviderSettingsSchema = z.object({\n TIKTOK: TikTokPostSettingsSchema.nullable().optional(),\n YOUTUBE: YouTubePostSettingsSchema.nullable().optional(),\n}).strict().default({});\nexport type PostProviderSettings = z.infer<typeof PostProviderSettingsSchema>;\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 providerSettings: PostProviderSettingsSchema.optional(),\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\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 DraftCaptionOverridesObjectSchema = 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();\n\nconst DraftPlatformsSchema = z.array(PublishingProviderSchema).max(PUBLISHING_PROVIDER_COUNT).refine(\n (providers) => new Set(providers).size === providers.length,\n \"Publishing destinations must be unique.\",\n);\n\nconst DraftMediaAssetIdsSchema = 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);\n\nexport const DraftPostInputSchema = z.object({\n caption: z.string().max(2200).transform((value) => value.trim()).default(\"\"),\n platforms: DraftPlatformsSchema.default([]),\n mediaAssetIds: DraftMediaAssetIdsSchema.default([]),\n captionOverrides: DraftCaptionOverridesObjectSchema.default({}),\n tiktokSettings: TikTokDraftSettingsSchema.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 DraftPostUpdateInputSchema = z.object({\n caption: z.string().max(2200).transform((value) => value.trim()).optional(),\n platforms: DraftPlatformsSchema.optional(),\n mediaAssetIds: DraftMediaAssetIdsSchema.optional(),\n captionOverrides: DraftCaptionOverridesObjectSchema.optional(),\n tiktokSettings: TikTokDraftSettingsSchema.nullable().optional(),\n youtubeSettings: YouTubePostSettingsSchema.nullable().optional(),\n}).strict().superRefine((input, context) => {\n if (Object.values(input).every((value) => value === undefined)) {\n context.addIssue({ code: \"custom\", message: \"Provide at least one draft field to update.\" });\n }\n if (input.platforms && 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.platforms && 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});\nexport type DraftPostUpdateInput = z.input<typeof DraftPostUpdateInputSchema>;\nexport type DraftPostUpdateData = z.infer<typeof DraftPostUpdateInputSchema>;\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 TikTokDeliveryOptionsSchema = z.object({\n provider: z.literal(\"TIKTOK\"),\n account: z.object({\n username: z.string().nullable(),\n displayName: z.string().nullable(),\n avatarUrl: z.string().url().nullable(),\n }),\n allowedPostModes: z.array(z.enum([\"DIRECT_POST\", \"MEDIA_UPLOAD\"]))\n .max(2)\n .refine(\n (items) => new Set(items).size === items.length,\n \"TikTok post modes must be unique.\",\n ),\n visibilityOptions: z.array(z.string().trim().min(1).max(100)).max(20)\n .refine(\n (items) => new Set(items).size === items.length,\n \"TikTok visibility options must be unique.\",\n ),\n interactions: z.object({\n comment: z.object({ available: z.boolean() }),\n duet: z.object({ available: z.boolean() }),\n stitch: z.object({ available: z.boolean() }),\n }),\n maxVideoDurationMs: z.number().int().positive().max(86_400_000).nullable(),\n health: z.object({\n status: ProviderHealthStatusSchema,\n code: z.string().min(1),\n message: z.string().min(1),\n }),\n checkedAt: z.string().datetime(),\n});\n\n// Add one strict provider variant here as each future social network gains\n// creator-specific delivery choices. Callers can always discriminate by provider.\nexport const ProviderDeliveryOptionsSchema = z.discriminatedUnion(\"provider\", [\n TikTokDeliveryOptionsSchema,\n]);\nexport type ProviderDeliveryOptions = z.infer<typeof ProviderDeliveryOptionsSchema>;\nexport const ProviderDeliveryOptionsResponseSchema = successEnvelopeSchema(\n ProviderDeliveryOptionsSchema,\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\", \"VIDEO\"])).length(4),\n image: z.object({\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 }),\n video: z.object({\n maxItems: z.literal(1),\n mimeTypes: z.tuple([z.literal(\"video/mp4\")]),\n minBytes: z.literal(76_800),\n maxBytes: z.literal(524_288_000),\n minDurationMs: z.literal(3_000),\n maxDurationMs: z.literal(1_800_000),\n }),\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\",\n \"replace_media\",\n \"adjust_media\",\n \"review_settings\",\r\n \"edit_caption\",\r\n \"refresh_health\",\r\n ]),\r\n provider: PublishingProviderSchema.optional(),\n mediaId: z.string().min(1).optional(),\n});\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":[]}
|