@rolino/contracts 0.8.0 → 0.10.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 +17 -0
- package/dist/index.cjs +248 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1285 -31
- package/dist/index.d.ts +1285 -31
- package/dist/index.js +221 -13
- 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.20.0";
|
|
5
5
|
var RequestMetadataSchema = z.object({
|
|
6
6
|
requestId: z.string().min(1)
|
|
7
7
|
});
|
|
@@ -90,11 +90,13 @@ var CapabilityIdSchema = z.enum([
|
|
|
90
90
|
"projects:write",
|
|
91
91
|
"posts:read",
|
|
92
92
|
"posts:write",
|
|
93
|
+
"posts:delete",
|
|
93
94
|
"posts:schedule",
|
|
94
95
|
"posts:publish",
|
|
95
96
|
"storage:read",
|
|
96
97
|
"media:delete",
|
|
97
98
|
"integrations:read",
|
|
99
|
+
"integrations:disconnect",
|
|
98
100
|
"calendar:read",
|
|
99
101
|
"seo:read",
|
|
100
102
|
"backlinks:read",
|
|
@@ -1040,6 +1042,13 @@ var PostDestinationStageSchema = z.enum([
|
|
|
1040
1042
|
"FAILED"
|
|
1041
1043
|
]);
|
|
1042
1044
|
var PostDestinationSchema = z.object({
|
|
1045
|
+
id: z.string().min(1).optional(),
|
|
1046
|
+
integrationId: z.string().min(1).nullable().optional(),
|
|
1047
|
+
accountId: z.string().nullable().optional(),
|
|
1048
|
+
accountName: z.string().nullable().optional(),
|
|
1049
|
+
accountAvatar: z.string().nullable().optional(),
|
|
1050
|
+
tiktokSettings: z.lazy(() => TikTokPostSettingsSchema).nullable().optional(),
|
|
1051
|
+
youtubeSettings: z.lazy(() => YouTubePostSettingsSchema).nullable().optional(),
|
|
1043
1052
|
provider: PublishingProviderSchema,
|
|
1044
1053
|
status: PlatformPostStatusSchema,
|
|
1045
1054
|
deliveryMode: PostDeliveryModeSchema,
|
|
@@ -1048,6 +1057,9 @@ var PostDestinationSchema = z.object({
|
|
|
1048
1057
|
scheduledAt: z.string().datetime().nullable(),
|
|
1049
1058
|
publishedAt: z.string().datetime().nullable(),
|
|
1050
1059
|
remoteUrl: z.string().url().nullable(),
|
|
1060
|
+
remotePostId: z.string().nullable().optional(),
|
|
1061
|
+
remoteContainerId: z.string().nullable().optional(),
|
|
1062
|
+
studioUrl: z.string().url().nullable().optional(),
|
|
1051
1063
|
attemptCount: z.number().int().nonnegative()
|
|
1052
1064
|
});
|
|
1053
1065
|
var TikTokPostSettingsSchema = z.object({
|
|
@@ -1234,14 +1246,35 @@ var DraftMediaAssetIdsSchema = z.array(z.string().trim().min(1).max(200)).max(10
|
|
|
1234
1246
|
(ids) => new Set(ids).size === ids.length,
|
|
1235
1247
|
"Media asset IDs must be unique."
|
|
1236
1248
|
);
|
|
1249
|
+
var DraftMediaAltTextSchema = z.record(z.string().min(1).max(200), z.string().trim().max(1e3).nullable()).refine((items) => Object.keys(items).length <= 10, "At most ten media descriptions are allowed.");
|
|
1250
|
+
var DraftAccountDestinationSchema = z.object({
|
|
1251
|
+
integrationId: z.string().trim().min(1).max(200),
|
|
1252
|
+
provider: PublishingProviderSchema,
|
|
1253
|
+
captionOverride: z.string().max(5e3).nullable().default(null),
|
|
1254
|
+
tiktokSettings: TikTokDraftSettingsSchema.nullable().default(null),
|
|
1255
|
+
youtubeSettings: YouTubePostSettingsSchema.nullable().default(null)
|
|
1256
|
+
}).strict().superRefine((input, context) => {
|
|
1257
|
+
const captionSchema = DraftCaptionOverridesObjectSchema.shape[input.provider];
|
|
1258
|
+
if (!captionSchema.safeParse(input.captionOverride).success) context.addIssue({ code: "custom", path: ["captionOverride"], message: "The account caption exceeds this network's limit." });
|
|
1259
|
+
if (input.tiktokSettings && input.provider !== "TIKTOK") context.addIssue({ code: "custom", path: ["tiktokSettings"], message: "TikTok settings require a TikTok account." });
|
|
1260
|
+
if (input.youtubeSettings && input.provider !== "YOUTUBE") context.addIssue({ code: "custom", path: ["youtubeSettings"], message: "YouTube settings require a YouTube account." });
|
|
1261
|
+
if (input.provider === "YOUTUBE" && !input.youtubeSettings) context.addIssue({ code: "custom", path: ["youtubeSettings"], message: "Provide settings for this YouTube account." });
|
|
1262
|
+
});
|
|
1263
|
+
var DraftAccountDestinationsSchema = z.array(DraftAccountDestinationSchema).max(75).refine((items) => new Set(items.map((item) => item.integrationId)).size === items.length, "Select each account only once.");
|
|
1237
1264
|
var DraftPostInputSchema = z.object({
|
|
1265
|
+
destinations: DraftAccountDestinationsSchema.optional(),
|
|
1238
1266
|
caption: z.string().max(3e3).transform((value) => value.trim()).default(""),
|
|
1239
1267
|
platforms: DraftPlatformsSchema.default([]),
|
|
1240
1268
|
mediaAssetIds: DraftMediaAssetIdsSchema.default([]),
|
|
1269
|
+
mediaAltText: DraftMediaAltTextSchema.optional(),
|
|
1241
1270
|
captionOverrides: DraftCaptionOverridesObjectSchema.default({}),
|
|
1242
1271
|
tiktokSettings: TikTokDraftSettingsSchema.nullable().default(null),
|
|
1243
1272
|
youtubeSettings: YouTubePostSettingsSchema.nullable().default(null)
|
|
1244
1273
|
}).strict().superRefine((input, context) => {
|
|
1274
|
+
if (input.destinations !== void 0 && (input.platforms?.length || Object.keys(input.captionOverrides ?? {}).length || input.tiktokSettings || input.youtubeSettings)) context.addIssue({ code: "custom", path: ["destinations"], message: "Use account destinations with their own settings, without legacy platform fields." });
|
|
1275
|
+
if (input.mediaAltText && Object.keys(input.mediaAltText).some((id) => !input.mediaAssetIds.includes(id))) {
|
|
1276
|
+
context.addIssue({ code: "custom", path: ["mediaAltText"], message: "Alternative text must name a selected media asset." });
|
|
1277
|
+
}
|
|
1245
1278
|
if (input.caption.length === 0 && input.mediaAssetIds.length === 0) {
|
|
1246
1279
|
context.addIssue({
|
|
1247
1280
|
code: "custom",
|
|
@@ -1286,13 +1319,16 @@ var DraftPostInputSchema = z.object({
|
|
|
1286
1319
|
}
|
|
1287
1320
|
});
|
|
1288
1321
|
var DraftPostUpdateInputSchema = z.object({
|
|
1322
|
+
destinations: DraftAccountDestinationsSchema.optional(),
|
|
1289
1323
|
caption: z.string().max(3e3).transform((value) => value.trim()).optional(),
|
|
1290
1324
|
platforms: DraftPlatformsSchema.optional(),
|
|
1291
1325
|
mediaAssetIds: DraftMediaAssetIdsSchema.optional(),
|
|
1326
|
+
mediaAltText: DraftMediaAltTextSchema.optional(),
|
|
1292
1327
|
captionOverrides: DraftCaptionOverridesObjectSchema.optional(),
|
|
1293
1328
|
tiktokSettings: TikTokDraftSettingsSchema.nullable().optional(),
|
|
1294
1329
|
youtubeSettings: YouTubePostSettingsSchema.nullable().optional()
|
|
1295
1330
|
}).strict().superRefine((input, context) => {
|
|
1331
|
+
if (input.destinations !== void 0 && (input.platforms?.length || Object.keys(input.captionOverrides ?? {}).length || input.tiktokSettings || input.youtubeSettings)) context.addIssue({ code: "custom", path: ["destinations"], message: "Use account destinations with their own settings, without legacy platform fields." });
|
|
1296
1332
|
if (Object.values(input).every((value) => value === void 0)) {
|
|
1297
1333
|
context.addIssue({ code: "custom", message: "Provide at least one draft field to update." });
|
|
1298
1334
|
}
|
|
@@ -1324,6 +1360,8 @@ var ProviderHealthStatusSchema = z.enum([
|
|
|
1324
1360
|
"unknown"
|
|
1325
1361
|
]);
|
|
1326
1362
|
var IntegrationHealthSchema = z.object({
|
|
1363
|
+
integrationId: z.string().nullable().optional(),
|
|
1364
|
+
accountId: z.string().nullable().optional(),
|
|
1327
1365
|
provider: PublishingProviderSchema,
|
|
1328
1366
|
connectionStatus: IntegrationConnectionStatusSchema,
|
|
1329
1367
|
connected: z.boolean(),
|
|
@@ -1345,9 +1383,9 @@ var IntegrationHealthSchema = z.object({
|
|
|
1345
1383
|
})
|
|
1346
1384
|
});
|
|
1347
1385
|
var IntegrationHealthListDataSchema = z.object({
|
|
1348
|
-
items: z.array(IntegrationHealthSchema).
|
|
1349
|
-
(items) => new Set(items.map((item) => item.provider)).size === items.length,
|
|
1350
|
-
"
|
|
1386
|
+
items: z.array(IntegrationHealthSchema).refine(
|
|
1387
|
+
(items) => new Set(items.map((item) => item.integrationId ?? item.provider)).size === items.length,
|
|
1388
|
+
"Account health items must be unique."
|
|
1351
1389
|
)
|
|
1352
1390
|
});
|
|
1353
1391
|
var IntegrationHealthListResponseSchema = successEnvelopeSchema(
|
|
@@ -1355,9 +1393,12 @@ var IntegrationHealthListResponseSchema = successEnvelopeSchema(
|
|
|
1355
1393
|
);
|
|
1356
1394
|
var ProviderDeliveryOptionsProviderSchema = z.enum([
|
|
1357
1395
|
"TIKTOK",
|
|
1358
|
-
"LINKEDIN"
|
|
1396
|
+
"LINKEDIN",
|
|
1397
|
+
"BLUESKY"
|
|
1359
1398
|
]);
|
|
1360
1399
|
var TikTokDeliveryOptionsSchema = z.object({
|
|
1400
|
+
integrationId: z.string().nullable().optional(),
|
|
1401
|
+
accountId: z.string().nullable().optional(),
|
|
1361
1402
|
provider: z.literal("TIKTOK"),
|
|
1362
1403
|
account: z.object({
|
|
1363
1404
|
username: z.string().nullable(),
|
|
@@ -1386,6 +1427,8 @@ var TikTokDeliveryOptionsSchema = z.object({
|
|
|
1386
1427
|
checkedAt: z.string().datetime()
|
|
1387
1428
|
});
|
|
1388
1429
|
var LinkedInDeliveryOptionsSchema = z.object({
|
|
1430
|
+
integrationId: z.string().nullable().optional(),
|
|
1431
|
+
accountId: z.string().nullable().optional(),
|
|
1389
1432
|
provider: z.literal("LINKEDIN"),
|
|
1390
1433
|
account: z.object({
|
|
1391
1434
|
displayName: z.string().nullable(),
|
|
@@ -1413,13 +1456,72 @@ var LinkedInDeliveryOptionsSchema = z.object({
|
|
|
1413
1456
|
}),
|
|
1414
1457
|
checkedAt: z.string().datetime()
|
|
1415
1458
|
});
|
|
1459
|
+
var BlueskyDeliveryOptionsSchema = z.object({
|
|
1460
|
+
integrationId: z.string().nullable().optional(),
|
|
1461
|
+
accountId: z.string().nullable().optional(),
|
|
1462
|
+
provider: z.literal("BLUESKY"),
|
|
1463
|
+
account: z.object({ username: z.string().nullable(), displayName: z.string().nullable(), avatarUrl: z.string().url().nullable() }),
|
|
1464
|
+
supportedPostTypes: z.tuple([z.literal("TEXT"), z.literal("SINGLE_IMAGE"), z.literal("MULTI_IMAGE")]),
|
|
1465
|
+
maxCaptionGraphemes: z.literal(300),
|
|
1466
|
+
image: z.object({ maxItems: z.literal(4), mimeTypes: z.tuple([z.literal("image/jpeg"), z.literal("image/png"), z.literal("image/webp")]), maxBytes: z.literal(2e6), maxProcessedBytes: z.literal(2e6) }),
|
|
1467
|
+
authorization: z.object({ kind: z.literal("HUMAN_OAUTH"), path: z.string().startsWith("/projects/"), instruction: z.string().min(1) }),
|
|
1468
|
+
health: z.object({ status: ProviderHealthStatusSchema, code: z.string().min(1), message: z.string().min(1) }),
|
|
1469
|
+
checkedAt: z.string().datetime()
|
|
1470
|
+
});
|
|
1416
1471
|
var ProviderDeliveryOptionsSchema = z.discriminatedUnion("provider", [
|
|
1417
1472
|
TikTokDeliveryOptionsSchema,
|
|
1418
|
-
LinkedInDeliveryOptionsSchema
|
|
1473
|
+
LinkedInDeliveryOptionsSchema,
|
|
1474
|
+
BlueskyDeliveryOptionsSchema
|
|
1419
1475
|
]);
|
|
1420
1476
|
var ProviderDeliveryOptionsResponseSchema = successEnvelopeSchema(
|
|
1421
1477
|
ProviderDeliveryOptionsSchema
|
|
1422
1478
|
);
|
|
1479
|
+
var IntegrationDisconnectInputSchema = z.object({ provider: z.literal("BLUESKY"), integrationId: z.string().min(1).max(200).optional() }).strict();
|
|
1480
|
+
var IntegrationDisconnectExecuteInputSchema = IntegrationDisconnectInputSchema.extend({ expectedVersion: z.string().min(1).max(100), confirmationToken: z.string().min(1).max(1024) });
|
|
1481
|
+
var IntegrationDisconnectPreviewSchema = z.object({
|
|
1482
|
+
integrationId: z.string().optional(),
|
|
1483
|
+
accountId: z.string().nullable().optional(),
|
|
1484
|
+
provider: z.literal("BLUESKY"),
|
|
1485
|
+
projectId: z.string().min(1),
|
|
1486
|
+
expectedVersion: z.string().min(1),
|
|
1487
|
+
account: z.string().nullable(),
|
|
1488
|
+
pendingDeliveries: z.number().int().nonnegative(),
|
|
1489
|
+
consequence: z.string().min(1),
|
|
1490
|
+
confirmation: z.object({ token: z.string().min(1), expiresAt: z.string().datetime() })
|
|
1491
|
+
});
|
|
1492
|
+
var IntegrationDisconnectResultSchema = z.object({ integrationId: z.string().optional(), provider: z.literal("BLUESKY"), projectId: z.string().min(1), status: z.literal("DISCONNECTED"), remoteRevocation: z.enum(["PENDING", "REVOKED", "UNRESOLVED", "NOT_REQUIRED"]) });
|
|
1493
|
+
var IntegrationDisconnectPreviewResponseSchema = successEnvelopeSchema(IntegrationDisconnectPreviewSchema);
|
|
1494
|
+
var IntegrationDisconnectResponseSchema = successEnvelopeSchema(IntegrationDisconnectResultSchema);
|
|
1495
|
+
var DraftDeletePreviewSchema = z.object({
|
|
1496
|
+
operation: z.literal("posts.delete.execute"),
|
|
1497
|
+
projectId: z.string().min(1),
|
|
1498
|
+
postId: z.string().min(1),
|
|
1499
|
+
version: z.number().int().positive(),
|
|
1500
|
+
caption: z.string(),
|
|
1501
|
+
mediaCount: z.number().int().nonnegative(),
|
|
1502
|
+
consequence: z.string().min(1),
|
|
1503
|
+
confirmation: z.object({ token: z.string().min(1), expiresAt: z.string().datetime() })
|
|
1504
|
+
});
|
|
1505
|
+
var DraftDeleteResultSchema = z.object({ postId: z.string().min(1), status: z.literal("DELETED") });
|
|
1506
|
+
var DraftDeletePreviewResponseSchema = successEnvelopeSchema(DraftDeletePreviewSchema);
|
|
1507
|
+
var DraftDeleteResponseSchema = successEnvelopeSchema(DraftDeleteResultSchema);
|
|
1508
|
+
var PostScheduleCancelInputSchema = z.object({}).strict();
|
|
1509
|
+
var PostScheduleCancelExecuteInputSchema = z.object({ confirmationToken: z.string().min(1).max(1024) }).strict();
|
|
1510
|
+
var PostScheduleCancelResultSchema = z.object({ postId: z.string().min(1), version: z.number().int().positive(), status: z.literal("DRAFT") });
|
|
1511
|
+
var PostScheduleCancelPreviewSchema = z.object({
|
|
1512
|
+
accounts: z.array(z.object({ destinationId: z.string().min(1), integrationId: z.string().nullable(), provider: PublishingProviderSchema, accountId: z.string().nullable(), accountName: z.string().nullable() })).optional(),
|
|
1513
|
+
operation: z.literal("posts.schedule.cancel.execute"),
|
|
1514
|
+
projectId: z.string().min(1),
|
|
1515
|
+
postId: z.string().min(1),
|
|
1516
|
+
version: z.number().int().positive(),
|
|
1517
|
+
scheduledAt: z.string().datetime(),
|
|
1518
|
+
timezone: z.string().nullable(),
|
|
1519
|
+
destinations: z.array(PublishingProviderSchema).min(1),
|
|
1520
|
+
consequence: z.string().min(1),
|
|
1521
|
+
confirmation: z.object({ token: z.string().min(1), expiresAt: z.string().datetime() })
|
|
1522
|
+
});
|
|
1523
|
+
var PostScheduleCancelPreviewResponseSchema = successEnvelopeSchema(PostScheduleCancelPreviewSchema);
|
|
1524
|
+
var PostScheduleCancelResponseSchema = successEnvelopeSchema(PostScheduleCancelResultSchema);
|
|
1423
1525
|
var ReadinessStatusSchema = z.enum([
|
|
1424
1526
|
"checking",
|
|
1425
1527
|
"pass",
|
|
@@ -1428,18 +1530,21 @@ var ReadinessStatusSchema = z.enum([
|
|
|
1428
1530
|
"unknown"
|
|
1429
1531
|
]);
|
|
1430
1532
|
var ReadinessActionSchema = z.object({
|
|
1533
|
+
integrationId: z.string().optional(),
|
|
1431
1534
|
kind: z.enum([
|
|
1432
1535
|
"reconnect",
|
|
1433
1536
|
"replace_media",
|
|
1434
1537
|
"adjust_media",
|
|
1435
1538
|
"review_settings",
|
|
1436
1539
|
"edit_caption",
|
|
1437
|
-
"refresh_health"
|
|
1540
|
+
"refresh_health",
|
|
1541
|
+
"refresh_readiness"
|
|
1438
1542
|
]),
|
|
1439
1543
|
provider: PublishingProviderSchema.optional(),
|
|
1440
1544
|
mediaId: z.string().min(1).optional()
|
|
1441
1545
|
});
|
|
1442
1546
|
var PostReadinessCheckSchema = z.object({
|
|
1547
|
+
integrationId: z.string().optional(),
|
|
1443
1548
|
key: z.string().min(1),
|
|
1444
1549
|
id: z.enum([
|
|
1445
1550
|
"connection",
|
|
@@ -1466,6 +1571,8 @@ var PostReadinessCheckSchema = z.object({
|
|
|
1466
1571
|
var PostReadinessSchema = z.object({
|
|
1467
1572
|
checks: z.array(PostReadinessCheckSchema),
|
|
1468
1573
|
accounts: z.array(z.object({
|
|
1574
|
+
integrationId: z.string().optional(),
|
|
1575
|
+
externalAccountId: z.string().nullable().optional(),
|
|
1469
1576
|
provider: PublishingProviderSchema,
|
|
1470
1577
|
connected: z.boolean(),
|
|
1471
1578
|
username: z.string().nullable(),
|
|
@@ -1493,7 +1600,9 @@ var PostScheduleInputSchema = z.object({
|
|
|
1493
1600
|
var PostScheduleExecuteInputSchema = PostScheduleInputSchema.extend({
|
|
1494
1601
|
confirmationToken: z.string().trim().min(1).max(200)
|
|
1495
1602
|
}).strict();
|
|
1603
|
+
var PublishingAccountReviewListSchema = z.array(z.object({ destinationId: z.string(), integrationId: z.string(), provider: PublishingProviderSchema, accountId: z.string().nullable(), accountName: z.string().nullable(), accountAvatar: z.string().nullable(), caption: z.string(), tiktokSettings: TikTokPostSettingsSchema.nullable(), youtubeSettings: YouTubePostSettingsSchema.nullable() })).optional();
|
|
1496
1604
|
var PostSchedulePreviewSchema = z.object({
|
|
1605
|
+
accounts: PublishingAccountReviewListSchema,
|
|
1497
1606
|
operation: z.literal("posts.schedule.execute"),
|
|
1498
1607
|
deliveryMode: z.literal("SCHEDULED"),
|
|
1499
1608
|
post: z.object({
|
|
@@ -1525,6 +1634,7 @@ var PostSchedulePreviewResponseSchema = successEnvelopeSchema(
|
|
|
1525
1634
|
PostSchedulePreviewSchema
|
|
1526
1635
|
);
|
|
1527
1636
|
var PostSchedulePendingSchema = z.object({
|
|
1637
|
+
destinations: z.array(z.object({ destinationId: z.string().min(1), integrationId: z.string().min(1), mutationId: z.string().min(1) })).optional(),
|
|
1528
1638
|
status: z.literal("PENDING"),
|
|
1529
1639
|
postId: z.string().min(1),
|
|
1530
1640
|
provider: z.literal("YOUTUBE"),
|
|
@@ -1542,12 +1652,12 @@ var PostScheduleExecuteResponseSchema = successEnvelopeSchema(
|
|
|
1542
1652
|
PostScheduleExecuteResultSchema
|
|
1543
1653
|
);
|
|
1544
1654
|
var PostPublishInputSchema = z.object({
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
)
|
|
1549
|
-
})
|
|
1550
|
-
var PostPublishExecuteInputSchema = PostPublishInputSchema.
|
|
1655
|
+
destinationIds: z.array(z.string().trim().min(1).max(200)).min(1).max(75).refine((ids) => new Set(ids).size === ids.length, "Select each destination only once.").optional(),
|
|
1656
|
+
destinations: z.array(PublishingProviderSchema).max(PUBLISHING_PROVIDER_COUNT).refine((items) => new Set(items).size === items.length, "Select each network only once.").default([])
|
|
1657
|
+
}).strict().superRefine((input, context) => {
|
|
1658
|
+
if (input.destinationIds ? input.destinations.length > 0 : input.destinations.length === 0) context.addIssue({ code: "custom", message: "Provide destinationIds, or unambiguous legacy destinations, but not both." });
|
|
1659
|
+
});
|
|
1660
|
+
var PostPublishExecuteInputSchema = PostPublishInputSchema.safeExtend({
|
|
1551
1661
|
confirmationToken: z.string().trim().min(1).max(200)
|
|
1552
1662
|
}).strict();
|
|
1553
1663
|
var PostPublishPreviewSchema = z.object({
|
|
@@ -1560,6 +1670,8 @@ var PostPublishPreviewSchema = z.object({
|
|
|
1560
1670
|
status: PostStatusSchema
|
|
1561
1671
|
}),
|
|
1562
1672
|
destinations: PostPublishInputSchema.shape.destinations,
|
|
1673
|
+
destinationIds: z.array(z.string()).optional(),
|
|
1674
|
+
accounts: PublishingAccountReviewListSchema,
|
|
1563
1675
|
youtube: z.object({
|
|
1564
1676
|
visibility: YouTubePostSettingsSchema.shape.privacyStatus,
|
|
1565
1677
|
preparationStartsImmediately: z.literal(true),
|
|
@@ -1588,6 +1700,11 @@ var CalendarEventSchema = z.object({
|
|
|
1588
1700
|
}).nullable(),
|
|
1589
1701
|
thumbnailUrl: z.string().url().nullable(),
|
|
1590
1702
|
destinations: z.array(z.object({
|
|
1703
|
+
id: z.string().optional(),
|
|
1704
|
+
integrationId: z.string().nullable().optional(),
|
|
1705
|
+
accountId: z.string().nullable().optional(),
|
|
1706
|
+
accountName: z.string().nullable().optional(),
|
|
1707
|
+
accountAvatar: z.string().nullable().optional(),
|
|
1591
1708
|
provider: PublishingProviderSchema,
|
|
1592
1709
|
status: PlatformPostStatusSchema
|
|
1593
1710
|
}))
|
|
@@ -1990,6 +2107,70 @@ var BacklinkContactSchema = z.object({
|
|
|
1990
2107
|
var BacklinkContactListDataSchema = z.object({ items: z.array(BacklinkContactSchema).max(50), page: z.object({ limit: z.number().int().min(1).max(50), nextCursor: SeoCursorSchema.nullable() }).strict() }).strict();
|
|
1991
2108
|
var BacklinkContactListQuerySchema = z.object({ limit: z.coerce.number().int().min(1).max(50).default(20), cursor: SeoCursorSchema.optional() }).strict();
|
|
1992
2109
|
var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactListDataSchema);
|
|
2110
|
+
var PostDeliveryCheckInputSchema = z.object({ provider: PublishingProviderSchema, destinationId: z.string().min(1).max(200).optional() }).strict();
|
|
2111
|
+
var PostDeliveryCheckResultSchema = z.object({
|
|
2112
|
+
destinationId: z.string().min(1).optional(),
|
|
2113
|
+
integrationId: z.string().nullable().optional(),
|
|
2114
|
+
accountId: z.string().nullable().optional(),
|
|
2115
|
+
postId: z.string().min(1),
|
|
2116
|
+
provider: PublishingProviderSchema,
|
|
2117
|
+
kind: z.enum(["PUBLISHED", "SCHEDULED", "PROCESSING", "ACTION_REQUIRED", "UNKNOWN", "BUSY"]),
|
|
2118
|
+
message: z.string(),
|
|
2119
|
+
version: z.number().int().positive(),
|
|
2120
|
+
remotePostId: z.string().nullable(),
|
|
2121
|
+
remoteContainerId: z.string().nullable(),
|
|
2122
|
+
studioUrl: z.string().url().nullable()
|
|
2123
|
+
});
|
|
2124
|
+
var PostDeliveryCheckResponseSchema = successEnvelopeSchema(PostDeliveryCheckResultSchema);
|
|
2125
|
+
var PostRecoveryInputSchema = z.object({
|
|
2126
|
+
destinationId: z.string().min(1).max(200).optional(),
|
|
2127
|
+
provider: z.literal("YOUTUBE"),
|
|
2128
|
+
action: z.enum(["ATTACH", "RESUME"]),
|
|
2129
|
+
videoId: z.string().regex(/^[\w-]{11}$/),
|
|
2130
|
+
publishAt: z.string().datetime({ offset: true }).nullable().optional()
|
|
2131
|
+
}).strict().superRefine((input, context) => {
|
|
2132
|
+
if (input.action === "RESUME" && input.publishAt === void 0) {
|
|
2133
|
+
context.addIssue({ code: "custom", path: ["publishAt"], message: "RESUME requires a future time or explicit null to publish now." });
|
|
2134
|
+
}
|
|
2135
|
+
if (input.action === "ATTACH" && input.publishAt !== void 0) {
|
|
2136
|
+
context.addIssue({ code: "custom", path: ["publishAt"], message: "Attachment cannot change publication time." });
|
|
2137
|
+
}
|
|
2138
|
+
});
|
|
2139
|
+
var PostRecoveryExecuteInputSchema = PostRecoveryInputSchema.safeExtend({
|
|
2140
|
+
confirmationToken: z.string().trim().min(1).max(200)
|
|
2141
|
+
});
|
|
2142
|
+
var PostRecoveryPreviewSchema = z.object({
|
|
2143
|
+
destinationId: z.string().min(1).optional(),
|
|
2144
|
+
integrationId: z.string().nullable().optional(),
|
|
2145
|
+
operation: z.literal("posts.recovery.execute"),
|
|
2146
|
+
projectId: z.string().min(1),
|
|
2147
|
+
postId: z.string().min(1),
|
|
2148
|
+
provider: z.literal("YOUTUBE"),
|
|
2149
|
+
action: z.enum(["ATTACH", "RESUME"]),
|
|
2150
|
+
videoId: z.string(),
|
|
2151
|
+
publishAt: z.string().datetime({ offset: true }).nullable().optional(),
|
|
2152
|
+
version: z.number().int().positive(),
|
|
2153
|
+
title: z.string(),
|
|
2154
|
+
description: z.string(),
|
|
2155
|
+
channel: z.string().nullable(),
|
|
2156
|
+
accountId: z.string(),
|
|
2157
|
+
privacy: z.string(),
|
|
2158
|
+
consequence: z.string(),
|
|
2159
|
+
confirmation: z.object({ token: z.string().min(1), expiresAt: z.string().datetime() })
|
|
2160
|
+
});
|
|
2161
|
+
var PostRecoveryPreviewResponseSchema = successEnvelopeSchema(PostRecoveryPreviewSchema);
|
|
2162
|
+
var PostRecoveryResultSchema = z.object({
|
|
2163
|
+
destinationId: z.string().min(1).optional(),
|
|
2164
|
+
integrationId: z.string().nullable().optional(),
|
|
2165
|
+
accountId: z.string().nullable().optional(),
|
|
2166
|
+
postId: z.string().min(1),
|
|
2167
|
+
provider: z.literal("YOUTUBE"),
|
|
2168
|
+
action: z.enum(["ATTACH", "RESUME"]),
|
|
2169
|
+
videoId: z.string(),
|
|
2170
|
+
kind: z.enum(["ATTACHED", "QUEUED", "PUBLISHED"]),
|
|
2171
|
+
version: z.number().int().positive()
|
|
2172
|
+
});
|
|
2173
|
+
var PostRecoveryResponseSchema = successEnvelopeSchema(PostRecoveryResultSchema);
|
|
1993
2174
|
export {
|
|
1994
2175
|
AGENT_CAPABILITIES,
|
|
1995
2176
|
API_VERSION,
|
|
@@ -2137,6 +2318,7 @@ export {
|
|
|
2137
2318
|
BlogMetadataSchema,
|
|
2138
2319
|
BlogSitemapEntrySchema,
|
|
2139
2320
|
BlogSlugRedirectSchema,
|
|
2321
|
+
BlueskyDeliveryOptionsSchema,
|
|
2140
2322
|
CONTRACT_VERSION,
|
|
2141
2323
|
CalendarEventSchema,
|
|
2142
2324
|
CalendarListDataSchema,
|
|
@@ -2146,9 +2328,20 @@ export {
|
|
|
2146
2328
|
CapabilitiesResponseSchema,
|
|
2147
2329
|
CapabilityIdSchema,
|
|
2148
2330
|
CapabilitySchema,
|
|
2331
|
+
DraftAccountDestinationSchema,
|
|
2332
|
+
DraftDeletePreviewResponseSchema,
|
|
2333
|
+
DraftDeletePreviewSchema,
|
|
2334
|
+
DraftDeleteResponseSchema,
|
|
2335
|
+
DraftDeleteResultSchema,
|
|
2149
2336
|
DraftPostInputSchema,
|
|
2150
2337
|
DraftPostUpdateInputSchema,
|
|
2151
2338
|
IntegrationConnectionStatusSchema,
|
|
2339
|
+
IntegrationDisconnectExecuteInputSchema,
|
|
2340
|
+
IntegrationDisconnectInputSchema,
|
|
2341
|
+
IntegrationDisconnectPreviewResponseSchema,
|
|
2342
|
+
IntegrationDisconnectPreviewSchema,
|
|
2343
|
+
IntegrationDisconnectResponseSchema,
|
|
2344
|
+
IntegrationDisconnectResultSchema,
|
|
2152
2345
|
IntegrationHealthListDataSchema,
|
|
2153
2346
|
IntegrationHealthListResponseSchema,
|
|
2154
2347
|
IntegrationHealthSchema,
|
|
@@ -2181,6 +2374,9 @@ export {
|
|
|
2181
2374
|
NormalizedMediaCleanupSelectionSchema,
|
|
2182
2375
|
PUBLISHING_PROVIDER_COUNT,
|
|
2183
2376
|
PlatformPostStatusSchema,
|
|
2377
|
+
PostDeliveryCheckInputSchema,
|
|
2378
|
+
PostDeliveryCheckResponseSchema,
|
|
2379
|
+
PostDeliveryCheckResultSchema,
|
|
2184
2380
|
PostDeliveryModeSchema,
|
|
2185
2381
|
PostDestinationSchema,
|
|
2186
2382
|
PostDestinationStageSchema,
|
|
@@ -2196,7 +2392,19 @@ export {
|
|
|
2196
2392
|
PostReadinessCheckSchema,
|
|
2197
2393
|
PostReadinessResponseSchema,
|
|
2198
2394
|
PostReadinessSchema,
|
|
2395
|
+
PostRecoveryExecuteInputSchema,
|
|
2396
|
+
PostRecoveryInputSchema,
|
|
2397
|
+
PostRecoveryPreviewResponseSchema,
|
|
2398
|
+
PostRecoveryPreviewSchema,
|
|
2399
|
+
PostRecoveryResponseSchema,
|
|
2400
|
+
PostRecoveryResultSchema,
|
|
2199
2401
|
PostResponseSchema,
|
|
2402
|
+
PostScheduleCancelExecuteInputSchema,
|
|
2403
|
+
PostScheduleCancelInputSchema,
|
|
2404
|
+
PostScheduleCancelPreviewResponseSchema,
|
|
2405
|
+
PostScheduleCancelPreviewSchema,
|
|
2406
|
+
PostScheduleCancelResponseSchema,
|
|
2407
|
+
PostScheduleCancelResultSchema,
|
|
2200
2408
|
PostScheduleExecuteInputSchema,
|
|
2201
2409
|
PostScheduleExecuteResponseSchema,
|
|
2202
2410
|
PostScheduleExecuteResultSchema,
|