@ttt-productions/ttt-core 0.78.26 → 0.79.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.
Files changed (148) hide show
  1. package/dist/capabilities/capability-registry.d.ts +2 -2
  2. package/dist/capabilities/capability-registry.d.ts.map +1 -1
  3. package/dist/capabilities/capability-registry.js +5 -5
  4. package/dist/capabilities/capability-registry.js.map +1 -1
  5. package/dist/capabilities/messaging-surfaces.d.ts.map +1 -1
  6. package/dist/capabilities/messaging-surfaces.js +7 -3
  7. package/dist/capabilities/messaging-surfaces.js.map +1 -1
  8. package/dist/constants/app-mode.d.ts +9 -0
  9. package/dist/constants/app-mode.d.ts.map +1 -1
  10. package/dist/constants/app-mode.js +17 -0
  11. package/dist/constants/app-mode.js.map +1 -1
  12. package/dist/constants/business-content.d.ts +0 -2
  13. package/dist/constants/business-content.d.ts.map +1 -1
  14. package/dist/constants/business-content.js +0 -2
  15. package/dist/constants/business-content.js.map +1 -1
  16. package/dist/constants/conversation-files.d.ts +7 -0
  17. package/dist/constants/conversation-files.d.ts.map +1 -0
  18. package/dist/constants/conversation-files.js +14 -0
  19. package/dist/constants/conversation-files.js.map +1 -0
  20. package/dist/constants/index.d.ts +1 -0
  21. package/dist/constants/index.d.ts.map +1 -1
  22. package/dist/constants/index.js +1 -0
  23. package/dist/constants/index.js.map +1 -1
  24. package/dist/doc-schemas/chat-sync.d.ts +0 -4
  25. package/dist/doc-schemas/chat-sync.d.ts.map +1 -1
  26. package/dist/doc-schemas/chat-sync.js +2 -9
  27. package/dist/doc-schemas/chat-sync.js.map +1 -1
  28. package/dist/doc-schemas/commissions.d.ts +2 -2
  29. package/dist/doc-schemas/media-activation-jobs.d.ts +3 -8
  30. package/dist/doc-schemas/media-activation-jobs.d.ts.map +1 -1
  31. package/dist/doc-schemas/media-assets.d.ts +22 -34
  32. package/dist/doc-schemas/media-assets.d.ts.map +1 -1
  33. package/dist/doc-schemas/media-assets.js +24 -21
  34. package/dist/doc-schemas/media-assets.js.map +1 -1
  35. package/dist/doc-schemas/messaging.d.ts +41 -19
  36. package/dist/doc-schemas/messaging.d.ts.map +1 -1
  37. package/dist/doc-schemas/messaging.js +64 -4
  38. package/dist/doc-schemas/messaging.js.map +1 -1
  39. package/dist/doc-schemas/moderation.d.ts +1 -1
  40. package/dist/doc-schemas/ncii/allegations.d.ts +21 -9
  41. package/dist/doc-schemas/ncii/allegations.d.ts.map +1 -1
  42. package/dist/doc-schemas/ncii/cases.d.ts +10 -4
  43. package/dist/doc-schemas/ncii/cases.d.ts.map +1 -1
  44. package/dist/doc-schemas/ncii/holds.d.ts +10 -4
  45. package/dist/doc-schemas/ncii/holds.d.ts.map +1 -1
  46. package/dist/doc-schemas/ncii/removal.d.ts +13 -7
  47. package/dist/doc-schemas/ncii/removal.d.ts.map +1 -1
  48. package/dist/doc-schemas/ncii/requests.d.ts +11 -5
  49. package/dist/doc-schemas/ncii/requests.d.ts.map +1 -1
  50. package/dist/doc-schemas/registry.d.ts +148 -119
  51. package/dist/doc-schemas/registry.d.ts.map +1 -1
  52. package/dist/doc-schemas/registry.js +5 -1
  53. package/dist/doc-schemas/registry.js.map +1 -1
  54. package/dist/doc-schemas/safety/case.d.ts +10 -4
  55. package/dist/doc-schemas/safety/case.d.ts.map +1 -1
  56. package/dist/doc-schemas/safety/case.js +4 -3
  57. package/dist/doc-schemas/safety/case.js.map +1 -1
  58. package/dist/doc-schemas/safety/evidence.d.ts +2 -3
  59. package/dist/doc-schemas/safety/evidence.d.ts.map +1 -1
  60. package/dist/doc-schemas/safety/foundation.d.ts +15 -8
  61. package/dist/doc-schemas/safety/foundation.d.ts.map +1 -1
  62. package/dist/doc-schemas/safety/foundation.js +32 -6
  63. package/dist/doc-schemas/safety/foundation.js.map +1 -1
  64. package/dist/doc-schemas/safety/holds.d.ts +1 -1
  65. package/dist/doc-schemas/safety/report.d.ts +25 -10
  66. package/dist/doc-schemas/safety/report.d.ts.map +1 -1
  67. package/dist/doc-schemas/safety/report.js +2 -1
  68. package/dist/doc-schemas/safety/report.js.map +1 -1
  69. package/dist/ids/chat-ids.d.ts +1 -2
  70. package/dist/ids/chat-ids.d.ts.map +1 -1
  71. package/dist/ids/chat-ids.js +1 -4
  72. package/dist/ids/chat-ids.js.map +1 -1
  73. package/dist/media/conversation-file-ref.d.ts +13 -0
  74. package/dist/media/conversation-file-ref.d.ts.map +1 -0
  75. package/dist/media/conversation-file-ref.js +37 -0
  76. package/dist/media/conversation-file-ref.js.map +1 -0
  77. package/dist/media/domain-events-admin.d.ts +1 -1
  78. package/dist/media/domain-events-social.d.ts +0 -7
  79. package/dist/media/domain-events-social.d.ts.map +1 -1
  80. package/dist/media/domain-events-social.js +2 -13
  81. package/dist/media/domain-events-social.js.map +1 -1
  82. package/dist/media/domain-events.d.ts +1 -7
  83. package/dist/media/domain-events.d.ts.map +1 -1
  84. package/dist/media/domain-events.js +1 -2
  85. package/dist/media/domain-events.js.map +1 -1
  86. package/dist/media/edge-serving-contract.d.ts +6 -11
  87. package/dist/media/edge-serving-contract.d.ts.map +1 -1
  88. package/dist/media/edge-serving-contract.js.map +1 -1
  89. package/dist/media/file-origin.d.ts +1 -1
  90. package/dist/media/file-origin.d.ts.map +1 -1
  91. package/dist/media/file-origin.js +6 -1
  92. package/dist/media/file-origin.js.map +1 -1
  93. package/dist/media/index.d.ts +1 -0
  94. package/dist/media/index.d.ts.map +1 -1
  95. package/dist/media/index.js +1 -0
  96. package/dist/media/index.js.map +1 -1
  97. package/dist/media/pending-media.d.ts +25 -79
  98. package/dist/media/pending-media.d.ts.map +1 -1
  99. package/dist/media/photodna-coverage.js +1 -1
  100. package/dist/media/photodna-coverage.js.map +1 -1
  101. package/dist/media/start-upload.d.ts +1 -1
  102. package/dist/media/target-info.d.ts +6 -26
  103. package/dist/media/target-info.d.ts.map +1 -1
  104. package/dist/media/target-info.js +9 -35
  105. package/dist/media/target-info.js.map +1 -1
  106. package/dist/media/ttt-media-specs.d.ts.map +1 -1
  107. package/dist/media/ttt-media-specs.js +8 -5
  108. package/dist/media/ttt-media-specs.js.map +1 -1
  109. package/dist/media/upload-tray-display.js +1 -1
  110. package/dist/media/upload-tray-display.js.map +1 -1
  111. package/dist/paths/collection-refs.d.ts +2 -0
  112. package/dist/paths/collection-refs.d.ts.map +1 -1
  113. package/dist/paths/collection-refs.js +4 -0
  114. package/dist/paths/collection-refs.js.map +1 -1
  115. package/dist/paths/collections.d.ts +1 -0
  116. package/dist/paths/collections.d.ts.map +1 -1
  117. package/dist/paths/collections.js +7 -0
  118. package/dist/paths/collections.js.map +1 -1
  119. package/dist/paths/path-builders.d.ts +2 -0
  120. package/dist/paths/path-builders.d.ts.map +1 -1
  121. package/dist/paths/path-builders.js +5 -0
  122. package/dist/paths/path-builders.js.map +1 -1
  123. package/dist/report/report-config-values.d.ts +3 -1
  124. package/dist/report/report-config-values.d.ts.map +1 -1
  125. package/dist/report/report-config-values.js +5 -1
  126. package/dist/report/report-config-values.js.map +1 -1
  127. package/dist/safety/ncii-intake-derivations.d.ts.map +1 -1
  128. package/dist/safety/ncii-intake-derivations.js +17 -5
  129. package/dist/safety/ncii-intake-derivations.js.map +1 -1
  130. package/dist/schemas/admin.d.ts +3 -0
  131. package/dist/schemas/admin.d.ts.map +1 -1
  132. package/dist/schemas/admin.js +5 -0
  133. package/dist/schemas/admin.js.map +1 -1
  134. package/dist/schemas/chat.js +3 -3
  135. package/dist/schemas/chat.js.map +1 -1
  136. package/dist/schemas/commissions.d.ts +1 -1
  137. package/dist/schemas/media.d.ts +0 -4
  138. package/dist/schemas/media.d.ts.map +1 -1
  139. package/dist/schemas/media.js +5 -10
  140. package/dist/schemas/media.js.map +1 -1
  141. package/dist/schemas/ncii.d.ts +3 -0
  142. package/dist/schemas/ncii.d.ts.map +1 -1
  143. package/dist/schemas/notification.d.ts +1 -0
  144. package/dist/schemas/notification.d.ts.map +1 -1
  145. package/dist/types/audit.d.ts +1 -1
  146. package/dist/types/audit.d.ts.map +1 -1
  147. package/dist/types/audit.js.map +1 -1
  148. package/package.json +2 -2
@@ -96,6 +96,7 @@ export declare const PendingMediaResultSchema: z.ZodObject<{
96
96
  fileOrigin: z.ZodEnum<{
97
97
  "commission-proposal": "commission-proposal";
98
98
  "profile-picture": "profile-picture";
99
+ "conversation-file": "conversation-file";
99
100
  "audition-entry": "audition-entry";
100
101
  "work-asset": "work-asset";
101
102
  "craft-skill-media": "craft-skill-media";
@@ -112,17 +113,10 @@ export declare const PendingMediaResultSchema: z.ZodObject<{
112
113
  "tune-track-audio": "tune-track-audio";
113
114
  "television-episode-photo": "television-episode-photo";
114
115
  "television-episode-video": "television-episode-video";
115
- "guild-chat-message-attachment": "guild-chat-message-attachment";
116
116
  "ncii-evidence": "ncii-evidence";
117
117
  }>;
118
118
  pendingMediaId: z.ZodString;
119
119
  }, z.core.$strict>;
120
- }, z.core.$strict>, z.ZodObject<{
121
- type: z.ZodLiteral<"chat.attachmentFinalized">;
122
- ids: z.ZodObject<{
123
- guildChatMessageId: z.ZodString;
124
- conversationId: z.ZodString;
125
- }, z.core.$strict>;
126
120
  }, z.core.$strict>, z.ZodObject<{
127
121
  type: z.ZodLiteral<"follow.created">;
128
122
  ids: z.ZodObject<{
@@ -325,6 +319,7 @@ export declare const PendingMediaPendingSchema: z.ZodObject<{
325
319
  fileOrigin: z.ZodEnum<{
326
320
  "commission-proposal": "commission-proposal";
327
321
  "profile-picture": "profile-picture";
322
+ "conversation-file": "conversation-file";
328
323
  "audition-entry": "audition-entry";
329
324
  "work-asset": "work-asset";
330
325
  "craft-skill-media": "craft-skill-media";
@@ -341,7 +336,6 @@ export declare const PendingMediaPendingSchema: z.ZodObject<{
341
336
  "tune-track-audio": "tune-track-audio";
342
337
  "television-episode-photo": "television-episode-photo";
343
338
  "television-episode-video": "television-episode-video";
344
- "guild-chat-message-attachment": "guild-chat-message-attachment";
345
339
  "ncii-evidence": "ncii-evidence";
346
340
  }>;
347
341
  originalFileName: z.ZodString;
@@ -376,6 +370,7 @@ export declare const PendingMediaProcessingSchema: z.ZodObject<{
376
370
  fileOrigin: z.ZodEnum<{
377
371
  "commission-proposal": "commission-proposal";
378
372
  "profile-picture": "profile-picture";
373
+ "conversation-file": "conversation-file";
379
374
  "audition-entry": "audition-entry";
380
375
  "work-asset": "work-asset";
381
376
  "craft-skill-media": "craft-skill-media";
@@ -392,7 +387,6 @@ export declare const PendingMediaProcessingSchema: z.ZodObject<{
392
387
  "tune-track-audio": "tune-track-audio";
393
388
  "television-episode-photo": "television-episode-photo";
394
389
  "television-episode-video": "television-episode-video";
395
- "guild-chat-message-attachment": "guild-chat-message-attachment";
396
390
  "ncii-evidence": "ncii-evidence";
397
391
  }>;
398
392
  originalFileName: z.ZodString;
@@ -517,6 +511,7 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
517
511
  fileOrigin: z.ZodEnum<{
518
512
  "commission-proposal": "commission-proposal";
519
513
  "profile-picture": "profile-picture";
514
+ "conversation-file": "conversation-file";
520
515
  "audition-entry": "audition-entry";
521
516
  "work-asset": "work-asset";
522
517
  "craft-skill-media": "craft-skill-media";
@@ -533,17 +528,10 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
533
528
  "tune-track-audio": "tune-track-audio";
534
529
  "television-episode-photo": "television-episode-photo";
535
530
  "television-episode-video": "television-episode-video";
536
- "guild-chat-message-attachment": "guild-chat-message-attachment";
537
531
  "ncii-evidence": "ncii-evidence";
538
532
  }>;
539
533
  pendingMediaId: z.ZodString;
540
534
  }, z.core.$strict>;
541
- }, z.core.$strict>, z.ZodObject<{
542
- type: z.ZodLiteral<"chat.attachmentFinalized">;
543
- ids: z.ZodObject<{
544
- guildChatMessageId: z.ZodString;
545
- conversationId: z.ZodString;
546
- }, z.core.$strict>;
547
535
  }, z.core.$strict>, z.ZodObject<{
548
536
  type: z.ZodLiteral<"follow.created">;
549
537
  ids: z.ZodObject<{
@@ -744,6 +732,7 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
744
732
  fileOrigin: z.ZodEnum<{
745
733
  "commission-proposal": "commission-proposal";
746
734
  "profile-picture": "profile-picture";
735
+ "conversation-file": "conversation-file";
747
736
  "audition-entry": "audition-entry";
748
737
  "work-asset": "work-asset";
749
738
  "craft-skill-media": "craft-skill-media";
@@ -760,7 +749,6 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
760
749
  "tune-track-audio": "tune-track-audio";
761
750
  "television-episode-photo": "television-episode-photo";
762
751
  "television-episode-video": "television-episode-video";
763
- "guild-chat-message-attachment": "guild-chat-message-attachment";
764
752
  "ncii-evidence": "ncii-evidence";
765
753
  }>;
766
754
  originalFileName: z.ZodString;
@@ -809,6 +797,7 @@ export declare const PendingMediaFailedSchema: z.ZodObject<{
809
797
  fileOrigin: z.ZodEnum<{
810
798
  "commission-proposal": "commission-proposal";
811
799
  "profile-picture": "profile-picture";
800
+ "conversation-file": "conversation-file";
812
801
  "audition-entry": "audition-entry";
813
802
  "work-asset": "work-asset";
814
803
  "craft-skill-media": "craft-skill-media";
@@ -825,7 +814,6 @@ export declare const PendingMediaFailedSchema: z.ZodObject<{
825
814
  "tune-track-audio": "tune-track-audio";
826
815
  "television-episode-photo": "television-episode-photo";
827
816
  "television-episode-video": "television-episode-video";
828
- "guild-chat-message-attachment": "guild-chat-message-attachment";
829
817
  "ncii-evidence": "ncii-evidence";
830
818
  }>;
831
819
  originalFileName: z.ZodString;
@@ -955,6 +943,7 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
955
943
  fileOrigin: z.ZodEnum<{
956
944
  "commission-proposal": "commission-proposal";
957
945
  "profile-picture": "profile-picture";
946
+ "conversation-file": "conversation-file";
958
947
  "audition-entry": "audition-entry";
959
948
  "work-asset": "work-asset";
960
949
  "craft-skill-media": "craft-skill-media";
@@ -971,17 +960,10 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
971
960
  "tune-track-audio": "tune-track-audio";
972
961
  "television-episode-photo": "television-episode-photo";
973
962
  "television-episode-video": "television-episode-video";
974
- "guild-chat-message-attachment": "guild-chat-message-attachment";
975
963
  "ncii-evidence": "ncii-evidence";
976
964
  }>;
977
965
  pendingMediaId: z.ZodString;
978
966
  }, z.core.$strict>;
979
- }, z.core.$strict>, z.ZodObject<{
980
- type: z.ZodLiteral<"chat.attachmentFinalized">;
981
- ids: z.ZodObject<{
982
- guildChatMessageId: z.ZodString;
983
- conversationId: z.ZodString;
984
- }, z.core.$strict>;
985
967
  }, z.core.$strict>, z.ZodObject<{
986
968
  type: z.ZodLiteral<"follow.created">;
987
969
  ids: z.ZodObject<{
@@ -1182,6 +1164,7 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
1182
1164
  fileOrigin: z.ZodEnum<{
1183
1165
  "commission-proposal": "commission-proposal";
1184
1166
  "profile-picture": "profile-picture";
1167
+ "conversation-file": "conversation-file";
1185
1168
  "audition-entry": "audition-entry";
1186
1169
  "work-asset": "work-asset";
1187
1170
  "craft-skill-media": "craft-skill-media";
@@ -1198,7 +1181,6 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
1198
1181
  "tune-track-audio": "tune-track-audio";
1199
1182
  "television-episode-photo": "television-episode-photo";
1200
1183
  "television-episode-video": "television-episode-video";
1201
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1202
1184
  "ncii-evidence": "ncii-evidence";
1203
1185
  }>;
1204
1186
  originalFileName: z.ZodString;
@@ -1232,6 +1214,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1232
1214
  fileOrigin: z.ZodEnum<{
1233
1215
  "commission-proposal": "commission-proposal";
1234
1216
  "profile-picture": "profile-picture";
1217
+ "conversation-file": "conversation-file";
1235
1218
  "audition-entry": "audition-entry";
1236
1219
  "work-asset": "work-asset";
1237
1220
  "craft-skill-media": "craft-skill-media";
@@ -1248,7 +1231,6 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1248
1231
  "tune-track-audio": "tune-track-audio";
1249
1232
  "television-episode-photo": "television-episode-photo";
1250
1233
  "television-episode-video": "television-episode-video";
1251
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1252
1234
  "ncii-evidence": "ncii-evidence";
1253
1235
  }>;
1254
1236
  originalFileName: z.ZodString;
@@ -1282,6 +1264,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1282
1264
  fileOrigin: z.ZodEnum<{
1283
1265
  "commission-proposal": "commission-proposal";
1284
1266
  "profile-picture": "profile-picture";
1267
+ "conversation-file": "conversation-file";
1285
1268
  "audition-entry": "audition-entry";
1286
1269
  "work-asset": "work-asset";
1287
1270
  "craft-skill-media": "craft-skill-media";
@@ -1298,7 +1281,6 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1298
1281
  "tune-track-audio": "tune-track-audio";
1299
1282
  "television-episode-photo": "television-episode-photo";
1300
1283
  "television-episode-video": "television-episode-video";
1301
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1302
1284
  "ncii-evidence": "ncii-evidence";
1303
1285
  }>;
1304
1286
  originalFileName: z.ZodString;
@@ -1422,6 +1404,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1422
1404
  fileOrigin: z.ZodEnum<{
1423
1405
  "commission-proposal": "commission-proposal";
1424
1406
  "profile-picture": "profile-picture";
1407
+ "conversation-file": "conversation-file";
1425
1408
  "audition-entry": "audition-entry";
1426
1409
  "work-asset": "work-asset";
1427
1410
  "craft-skill-media": "craft-skill-media";
@@ -1438,17 +1421,10 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1438
1421
  "tune-track-audio": "tune-track-audio";
1439
1422
  "television-episode-photo": "television-episode-photo";
1440
1423
  "television-episode-video": "television-episode-video";
1441
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1442
1424
  "ncii-evidence": "ncii-evidence";
1443
1425
  }>;
1444
1426
  pendingMediaId: z.ZodString;
1445
1427
  }, z.core.$strict>;
1446
- }, z.core.$strict>, z.ZodObject<{
1447
- type: z.ZodLiteral<"chat.attachmentFinalized">;
1448
- ids: z.ZodObject<{
1449
- guildChatMessageId: z.ZodString;
1450
- conversationId: z.ZodString;
1451
- }, z.core.$strict>;
1452
1428
  }, z.core.$strict>, z.ZodObject<{
1453
1429
  type: z.ZodLiteral<"follow.created">;
1454
1430
  ids: z.ZodObject<{
@@ -1649,6 +1625,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1649
1625
  fileOrigin: z.ZodEnum<{
1650
1626
  "commission-proposal": "commission-proposal";
1651
1627
  "profile-picture": "profile-picture";
1628
+ "conversation-file": "conversation-file";
1652
1629
  "audition-entry": "audition-entry";
1653
1630
  "work-asset": "work-asset";
1654
1631
  "craft-skill-media": "craft-skill-media";
@@ -1665,7 +1642,6 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1665
1642
  "tune-track-audio": "tune-track-audio";
1666
1643
  "television-episode-photo": "television-episode-photo";
1667
1644
  "television-episode-video": "television-episode-video";
1668
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1669
1645
  "ncii-evidence": "ncii-evidence";
1670
1646
  }>;
1671
1647
  originalFileName: z.ZodString;
@@ -1713,6 +1689,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1713
1689
  fileOrigin: z.ZodEnum<{
1714
1690
  "commission-proposal": "commission-proposal";
1715
1691
  "profile-picture": "profile-picture";
1692
+ "conversation-file": "conversation-file";
1716
1693
  "audition-entry": "audition-entry";
1717
1694
  "work-asset": "work-asset";
1718
1695
  "craft-skill-media": "craft-skill-media";
@@ -1729,7 +1706,6 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1729
1706
  "tune-track-audio": "tune-track-audio";
1730
1707
  "television-episode-photo": "television-episode-photo";
1731
1708
  "television-episode-video": "television-episode-video";
1732
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1733
1709
  "ncii-evidence": "ncii-evidence";
1734
1710
  }>;
1735
1711
  originalFileName: z.ZodString;
@@ -1858,6 +1834,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1858
1834
  fileOrigin: z.ZodEnum<{
1859
1835
  "commission-proposal": "commission-proposal";
1860
1836
  "profile-picture": "profile-picture";
1837
+ "conversation-file": "conversation-file";
1861
1838
  "audition-entry": "audition-entry";
1862
1839
  "work-asset": "work-asset";
1863
1840
  "craft-skill-media": "craft-skill-media";
@@ -1874,17 +1851,10 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1874
1851
  "tune-track-audio": "tune-track-audio";
1875
1852
  "television-episode-photo": "television-episode-photo";
1876
1853
  "television-episode-video": "television-episode-video";
1877
- "guild-chat-message-attachment": "guild-chat-message-attachment";
1878
1854
  "ncii-evidence": "ncii-evidence";
1879
1855
  }>;
1880
1856
  pendingMediaId: z.ZodString;
1881
1857
  }, z.core.$strict>;
1882
- }, z.core.$strict>, z.ZodObject<{
1883
- type: z.ZodLiteral<"chat.attachmentFinalized">;
1884
- ids: z.ZodObject<{
1885
- guildChatMessageId: z.ZodString;
1886
- conversationId: z.ZodString;
1887
- }, z.core.$strict>;
1888
1858
  }, z.core.$strict>, z.ZodObject<{
1889
1859
  type: z.ZodLiteral<"follow.created">;
1890
1860
  ids: z.ZodObject<{
@@ -2085,6 +2055,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2085
2055
  fileOrigin: z.ZodEnum<{
2086
2056
  "commission-proposal": "commission-proposal";
2087
2057
  "profile-picture": "profile-picture";
2058
+ "conversation-file": "conversation-file";
2088
2059
  "audition-entry": "audition-entry";
2089
2060
  "work-asset": "work-asset";
2090
2061
  "craft-skill-media": "craft-skill-media";
@@ -2101,7 +2072,6 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2101
2072
  "tune-track-audio": "tune-track-audio";
2102
2073
  "television-episode-photo": "television-episode-photo";
2103
2074
  "television-episode-video": "television-episode-video";
2104
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2105
2075
  "ncii-evidence": "ncii-evidence";
2106
2076
  }>;
2107
2077
  originalFileName: z.ZodString;
@@ -2225,6 +2195,7 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2225
2195
  fileOrigin: z.ZodEnum<{
2226
2196
  "commission-proposal": "commission-proposal";
2227
2197
  "profile-picture": "profile-picture";
2198
+ "conversation-file": "conversation-file";
2228
2199
  "audition-entry": "audition-entry";
2229
2200
  "work-asset": "work-asset";
2230
2201
  "craft-skill-media": "craft-skill-media";
@@ -2241,17 +2212,10 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2241
2212
  "tune-track-audio": "tune-track-audio";
2242
2213
  "television-episode-photo": "television-episode-photo";
2243
2214
  "television-episode-video": "television-episode-video";
2244
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2245
2215
  "ncii-evidence": "ncii-evidence";
2246
2216
  }>;
2247
2217
  pendingMediaId: z.ZodString;
2248
2218
  }, z.core.$strict>;
2249
- }, z.core.$strict>, z.ZodObject<{
2250
- type: z.ZodLiteral<"chat.attachmentFinalized">;
2251
- ids: z.ZodObject<{
2252
- guildChatMessageId: z.ZodString;
2253
- conversationId: z.ZodString;
2254
- }, z.core.$strict>;
2255
2219
  }, z.core.$strict>, z.ZodObject<{
2256
2220
  type: z.ZodLiteral<"follow.created">;
2257
2221
  ids: z.ZodObject<{
@@ -2453,6 +2417,7 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2453
2417
  fileOrigin: z.ZodEnum<{
2454
2418
  "commission-proposal": "commission-proposal";
2455
2419
  "profile-picture": "profile-picture";
2420
+ "conversation-file": "conversation-file";
2456
2421
  "audition-entry": "audition-entry";
2457
2422
  "work-asset": "work-asset";
2458
2423
  "craft-skill-media": "craft-skill-media";
@@ -2469,7 +2434,6 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2469
2434
  "tune-track-audio": "tune-track-audio";
2470
2435
  "television-episode-photo": "television-episode-photo";
2471
2436
  "television-episode-video": "television-episode-video";
2472
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2473
2437
  "ncii-evidence": "ncii-evidence";
2474
2438
  }>;
2475
2439
  originalFileName: z.ZodString;
@@ -2519,6 +2483,7 @@ export declare const ArchivedPendingMediaFailedSchema: z.ZodObject<{
2519
2483
  fileOrigin: z.ZodEnum<{
2520
2484
  "commission-proposal": "commission-proposal";
2521
2485
  "profile-picture": "profile-picture";
2486
+ "conversation-file": "conversation-file";
2522
2487
  "audition-entry": "audition-entry";
2523
2488
  "work-asset": "work-asset";
2524
2489
  "craft-skill-media": "craft-skill-media";
@@ -2535,7 +2500,6 @@ export declare const ArchivedPendingMediaFailedSchema: z.ZodObject<{
2535
2500
  "tune-track-audio": "tune-track-audio";
2536
2501
  "television-episode-photo": "television-episode-photo";
2537
2502
  "television-episode-video": "television-episode-video";
2538
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2539
2503
  "ncii-evidence": "ncii-evidence";
2540
2504
  }>;
2541
2505
  originalFileName: z.ZodString;
@@ -2665,6 +2629,7 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
2665
2629
  fileOrigin: z.ZodEnum<{
2666
2630
  "commission-proposal": "commission-proposal";
2667
2631
  "profile-picture": "profile-picture";
2632
+ "conversation-file": "conversation-file";
2668
2633
  "audition-entry": "audition-entry";
2669
2634
  "work-asset": "work-asset";
2670
2635
  "craft-skill-media": "craft-skill-media";
@@ -2681,17 +2646,10 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
2681
2646
  "tune-track-audio": "tune-track-audio";
2682
2647
  "television-episode-photo": "television-episode-photo";
2683
2648
  "television-episode-video": "television-episode-video";
2684
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2685
2649
  "ncii-evidence": "ncii-evidence";
2686
2650
  }>;
2687
2651
  pendingMediaId: z.ZodString;
2688
2652
  }, z.core.$strict>;
2689
- }, z.core.$strict>, z.ZodObject<{
2690
- type: z.ZodLiteral<"chat.attachmentFinalized">;
2691
- ids: z.ZodObject<{
2692
- guildChatMessageId: z.ZodString;
2693
- conversationId: z.ZodString;
2694
- }, z.core.$strict>;
2695
2653
  }, z.core.$strict>, z.ZodObject<{
2696
2654
  type: z.ZodLiteral<"follow.created">;
2697
2655
  ids: z.ZodObject<{
@@ -2893,6 +2851,7 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
2893
2851
  fileOrigin: z.ZodEnum<{
2894
2852
  "commission-proposal": "commission-proposal";
2895
2853
  "profile-picture": "profile-picture";
2854
+ "conversation-file": "conversation-file";
2896
2855
  "audition-entry": "audition-entry";
2897
2856
  "work-asset": "work-asset";
2898
2857
  "craft-skill-media": "craft-skill-media";
@@ -2909,7 +2868,6 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
2909
2868
  "tune-track-audio": "tune-track-audio";
2910
2869
  "television-episode-photo": "television-episode-photo";
2911
2870
  "television-episode-video": "television-episode-video";
2912
- "guild-chat-message-attachment": "guild-chat-message-attachment";
2913
2871
  "ncii-evidence": "ncii-evidence";
2914
2872
  }>;
2915
2873
  originalFileName: z.ZodString;
@@ -3033,6 +2991,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3033
2991
  fileOrigin: z.ZodEnum<{
3034
2992
  "commission-proposal": "commission-proposal";
3035
2993
  "profile-picture": "profile-picture";
2994
+ "conversation-file": "conversation-file";
3036
2995
  "audition-entry": "audition-entry";
3037
2996
  "work-asset": "work-asset";
3038
2997
  "craft-skill-media": "craft-skill-media";
@@ -3049,17 +3008,10 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3049
3008
  "tune-track-audio": "tune-track-audio";
3050
3009
  "television-episode-photo": "television-episode-photo";
3051
3010
  "television-episode-video": "television-episode-video";
3052
- "guild-chat-message-attachment": "guild-chat-message-attachment";
3053
3011
  "ncii-evidence": "ncii-evidence";
3054
3012
  }>;
3055
3013
  pendingMediaId: z.ZodString;
3056
3014
  }, z.core.$strict>;
3057
- }, z.core.$strict>, z.ZodObject<{
3058
- type: z.ZodLiteral<"chat.attachmentFinalized">;
3059
- ids: z.ZodObject<{
3060
- guildChatMessageId: z.ZodString;
3061
- conversationId: z.ZodString;
3062
- }, z.core.$strict>;
3063
3015
  }, z.core.$strict>, z.ZodObject<{
3064
3016
  type: z.ZodLiteral<"follow.created">;
3065
3017
  ids: z.ZodObject<{
@@ -3261,6 +3213,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3261
3213
  fileOrigin: z.ZodEnum<{
3262
3214
  "commission-proposal": "commission-proposal";
3263
3215
  "profile-picture": "profile-picture";
3216
+ "conversation-file": "conversation-file";
3264
3217
  "audition-entry": "audition-entry";
3265
3218
  "work-asset": "work-asset";
3266
3219
  "craft-skill-media": "craft-skill-media";
@@ -3277,7 +3230,6 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3277
3230
  "tune-track-audio": "tune-track-audio";
3278
3231
  "television-episode-photo": "television-episode-photo";
3279
3232
  "television-episode-video": "television-episode-video";
3280
- "guild-chat-message-attachment": "guild-chat-message-attachment";
3281
3233
  "ncii-evidence": "ncii-evidence";
3282
3234
  }>;
3283
3235
  originalFileName: z.ZodString;
@@ -3326,6 +3278,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3326
3278
  fileOrigin: z.ZodEnum<{
3327
3279
  "commission-proposal": "commission-proposal";
3328
3280
  "profile-picture": "profile-picture";
3281
+ "conversation-file": "conversation-file";
3329
3282
  "audition-entry": "audition-entry";
3330
3283
  "work-asset": "work-asset";
3331
3284
  "craft-skill-media": "craft-skill-media";
@@ -3342,7 +3295,6 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3342
3295
  "tune-track-audio": "tune-track-audio";
3343
3296
  "television-episode-photo": "television-episode-photo";
3344
3297
  "television-episode-video": "television-episode-video";
3345
- "guild-chat-message-attachment": "guild-chat-message-attachment";
3346
3298
  "ncii-evidence": "ncii-evidence";
3347
3299
  }>;
3348
3300
  originalFileName: z.ZodString;
@@ -3471,6 +3423,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3471
3423
  fileOrigin: z.ZodEnum<{
3472
3424
  "commission-proposal": "commission-proposal";
3473
3425
  "profile-picture": "profile-picture";
3426
+ "conversation-file": "conversation-file";
3474
3427
  "audition-entry": "audition-entry";
3475
3428
  "work-asset": "work-asset";
3476
3429
  "craft-skill-media": "craft-skill-media";
@@ -3487,17 +3440,10 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3487
3440
  "tune-track-audio": "tune-track-audio";
3488
3441
  "television-episode-photo": "television-episode-photo";
3489
3442
  "television-episode-video": "television-episode-video";
3490
- "guild-chat-message-attachment": "guild-chat-message-attachment";
3491
3443
  "ncii-evidence": "ncii-evidence";
3492
3444
  }>;
3493
3445
  pendingMediaId: z.ZodString;
3494
3446
  }, z.core.$strict>;
3495
- }, z.core.$strict>, z.ZodObject<{
3496
- type: z.ZodLiteral<"chat.attachmentFinalized">;
3497
- ids: z.ZodObject<{
3498
- guildChatMessageId: z.ZodString;
3499
- conversationId: z.ZodString;
3500
- }, z.core.$strict>;
3501
3447
  }, z.core.$strict>, z.ZodObject<{
3502
3448
  type: z.ZodLiteral<"follow.created">;
3503
3449
  ids: z.ZodObject<{
@@ -3699,6 +3645,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3699
3645
  fileOrigin: z.ZodEnum<{
3700
3646
  "commission-proposal": "commission-proposal";
3701
3647
  "profile-picture": "profile-picture";
3648
+ "conversation-file": "conversation-file";
3702
3649
  "audition-entry": "audition-entry";
3703
3650
  "work-asset": "work-asset";
3704
3651
  "craft-skill-media": "craft-skill-media";
@@ -3715,7 +3662,6 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3715
3662
  "tune-track-audio": "tune-track-audio";
3716
3663
  "television-episode-photo": "television-episode-photo";
3717
3664
  "television-episode-video": "television-episode-video";
3718
- "guild-chat-message-attachment": "guild-chat-message-attachment";
3719
3665
  "ncii-evidence": "ncii-evidence";
3720
3666
  }>;
3721
3667
  originalFileName: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"pending-media.d.ts","sourceRoot":"","sources":["../../src/media/pending-media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAS7B,eAAO,MAAM,+BAA+B;;;;;;;EAA0C,CAAC;AACvF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAoC,CAAC;AAC3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsC,CAAC;AAC/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAC7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"pending-media.d.ts","sourceRoot":"","sources":["../../src/media/pending-media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAS7B,eAAO,MAAM,+BAA+B;;;;;;;EAA0C,CAAC;AACvF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAoC,CAAC;AAC3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsC,CAAC;AAC/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAC7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAA6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"}
@@ -7,7 +7,7 @@
7
7
  // The source of truth for what a media origin accepts is
8
8
  // `TTT_MEDIA_SPECS[origin].accept.kinds`, NOT the top-level `spec.kind` (which
9
9
  // mislabels `craft-skill-media`/`squareStreetz` as 'image' and
10
- // `guild-chat-message-attachment`/`work-asset` as 'generic', although all four
10
+ // `conversation-file`/`work-asset` as 'generic', although all four
11
11
  // accept image+video+audio). Nothing here is hard-coded per-origin — every entry
12
12
  // is computed from the registry, so a new accepted kind on any origin fails CI
13
13
  // (via photodna-coverage.test.ts) until a branch covers it.
@@ -1 +1 @@
1
- {"version":3,"file":"photodna-coverage.js","sourceRoot":"","sources":["../../src/media/photodna-coverage.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,qBAAqB;AACrB,EAAE;AACF,yDAAyD;AACzD,+EAA+E;AAC/E,+DAA+D;AAC/D,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,4DAA4D;AAG5D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAuBvD;;;;;GAKG;AACH,MAAM,uBAAuB,GAAwD;IACnF,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CACxC,uBAAuB,CACC,CAAC;AAE3B,SAAS,qBAAqB,CAAC,IAAe;IAC5C,OAAQ,sBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,SAAS,sBAAsB,CAAC,MAAkB;IAChD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,+EAA+E;IAC/E,sEAAsE;IACtE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CACxC,CAAC;AACJ,CAAC;AAUD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACjD,MAAM,CAAC,MAAM,CAAC,GAAG;QACf,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC7C,gBAAgB,EAAE,iCAAiC,CAAC,MAAM,CAAC;KAC5D,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,EAAE,EAA+C,CAAC,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAAqB;IAErB,OAAO,qBAAqB,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC","sourcesContent":["// PhotoDNA coverage matrix (frozen Trust & Safety spec, Appendix A §A10 —\n// Finding-M3, decision-free algorithm; durable design owner: ttt-prod\n// docs/design/csam-detection-and-response.md). The CI coverage test and the\n// runtime router are BOTH derived from this module so they cannot drift from\n// `TTT_MEDIA_SPECS`.\n//\n// The source of truth for what a media origin accepts is\n// `TTT_MEDIA_SPECS[origin].accept.kinds`, NOT the top-level `spec.kind` (which\n// mislabels `craft-skill-media`/`squareStreetz` as 'image' and\n// `guild-chat-message-attachment`/`work-asset` as 'generic', although all four\n// accept image+video+audio). Nothing here is hard-coded per-origin — every entry\n// is computed from the registry, so a new accepted kind on any origin fails CI\n// (via photodna-coverage.test.ts) until a branch covers it.\n\nimport type { MediaKind } from '@ttt-productions/media-schemas';\nimport { FileOriginSchema, type FileOrigin } from './file-origin.js';\nimport { TTT_MEDIA_SPECS } from './ttt-media-specs.js';\n\n/**\n * The required pre-publication PhotoDNA / spoof-guard branch implied by an\n * accepted (or, at runtime, magic-byte-detected) media kind:\n * - 'image' ⇒ image PhotoDNA (pre-publication, fail-closed)\n * - 'video' ⇒ frame-extraction (keyframes / ~1fps, capped) → PhotoDNA every frame\n * - 'audio' ⇒ AUDIO-ONLY SPOOF GUARD: confirm the bytes are genuinely audio\n * (a non-audio payload on an audio path is rejected, not skipped).\n * Audio is NOT image/video hashed.\n */\nexport type PhotoDnaRequiredBranch =\n | 'imagePhotoDna'\n | 'videoFramePhotoDna'\n | 'audioSpoofGuard';\n\n/**\n * The PhotoDNA-relevant subset of `MediaKind`. The generic 'file' kind has no\n * PhotoDNA / spoof-guard branch and never appears in any TTT origin's\n * `accept.kinds`, so it is excluded from the §A10 mapping.\n */\ntype PhotoDnaCoveredKind = Extract<MediaKind, 'image' | 'video' | 'audio'>;\n\n/**\n * The §A10 kind → required-branch mapping. This is the ONLY place the\n * kind↔branch correspondence is written; both the build-time matrix and the\n * runtime router derive from it. A newly accepted PhotoDNA-relevant kind must be\n * added here to compile (the `Record` is total over `PhotoDnaCoveredKind`).\n */\nconst REQUIRED_BRANCH_BY_KIND: Record<PhotoDnaCoveredKind, PhotoDnaRequiredBranch> = {\n image: 'imagePhotoDna',\n video: 'videoFramePhotoDna',\n audio: 'audioSpoofGuard',\n};\n\nconst PHOTODNA_COVERED_KINDS = Object.keys(\n REQUIRED_BRANCH_BY_KIND,\n) as PhotoDnaCoveredKind[];\n\nfunction isPhotoDnaCoveredKind(kind: MediaKind): kind is PhotoDnaCoveredKind {\n return (PHOTODNA_COVERED_KINDS as MediaKind[]).includes(kind);\n}\n\n/** The authoritative accepted-kinds set for an origin (`accept.kinds`). */\nfunction acceptedKindsForOrigin(origin: FileOrigin): MediaKind[] {\n return TTT_MEDIA_SPECS[origin].accept?.kinds ?? [];\n}\n\n/**\n * The required PhotoDNA / spoof-guard branches for an origin, derived from its\n * `accept.kinds` per the §A10 algorithm. Deduped, in\n * image → video → audio canonical order. Pure / decision-free.\n */\nexport function requiredPhotoDnaBranchesForOrigin(\n origin: FileOrigin,\n): PhotoDnaRequiredBranch[] {\n const kinds = new Set(acceptedKindsForOrigin(origin));\n // Iterate the canonical kind order (not the registry array order) so output is\n // deterministic regardless of how an origin lists its accepted kinds.\n return PHOTODNA_COVERED_KINDS.filter((kind) => kinds.has(kind)).map(\n (kind) => REQUIRED_BRANCH_BY_KIND[kind],\n );\n}\n\n/** One row of the derived build-time coverage matrix. */\nexport interface PhotoDnaCoverageEntry {\n /** The authoritative accepted-kinds set (`TTT_MEDIA_SPECS[origin].accept.kinds`). */\n readonly acceptedKinds: readonly MediaKind[];\n /** The required pre-publication branches implied by `acceptedKinds`. */\n readonly requiredBranches: readonly PhotoDnaRequiredBranch[];\n}\n\n/**\n * The build-time / CI coverage matrix: every `FileOriginSchema.options` value\n * mapped to its accepted kinds + required PhotoDNA branches. Derived from\n * `TTT_MEDIA_SPECS` at module load — never hand-maintained. `photodna-coverage.test.ts`\n * fails CI if any origin is missing OR any accepted kind has no required branch.\n */\nexport const PHOTODNA_COVERAGE_MATRIX: Record<FileOrigin, PhotoDnaCoverageEntry> =\n FileOriginSchema.options.reduce((matrix, origin) => {\n matrix[origin] = {\n acceptedKinds: acceptedKindsForOrigin(origin),\n requiredBranches: requiredPhotoDnaBranchesForOrigin(origin),\n };\n return matrix;\n }, {} as Record<FileOrigin, PhotoDnaCoverageEntry>);\n\n/**\n * Runtime dispatch (per uploaded object). `serverKind` is the SERVER-DETECTED\n * magic-byte kind — NEVER the client MIME / display kind — and MUST be a member\n * of `TTT_MEDIA_SPECS[origin].accept.kinds` for the upload's origin; a kind\n * outside that set is a spoof and the caller rejects (this helper does not see\n * the origin — the `accept.kinds ∋ serverKind` assertion is the caller's gate,\n * per §A10). For a covered kind it returns the branch the object must traverse:\n * image → imagePhotoDna, video → videoFramePhotoDna, audio → audioSpoofGuard.\n *\n * Returns `null` for the generic 'file' kind (no PhotoDNA path); callers treat a\n * `null` here on a non-'file' detection as a hard reject, never a skip.\n */\nexport function runtimePhotoDnaBranchForDetectedKind(\n serverKind: MediaKind,\n): PhotoDnaRequiredBranch | null {\n return isPhotoDnaCoveredKind(serverKind)\n ? REQUIRED_BRANCH_BY_KIND[serverKind]\n : null;\n}\n"]}
1
+ {"version":3,"file":"photodna-coverage.js","sourceRoot":"","sources":["../../src/media/photodna-coverage.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,qBAAqB;AACrB,EAAE;AACF,yDAAyD;AACzD,+EAA+E;AAC/E,+DAA+D;AAC/D,mEAAmE;AACnE,iFAAiF;AACjF,+EAA+E;AAC/E,4DAA4D;AAG5D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAuBvD;;;;;GAKG;AACH,MAAM,uBAAuB,GAAwD;IACnF,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CACxC,uBAAuB,CACC,CAAC;AAE3B,SAAS,qBAAqB,CAAC,IAAe;IAC5C,OAAQ,sBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,SAAS,sBAAsB,CAAC,MAAkB;IAChD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,+EAA+E;IAC/E,sEAAsE;IACtE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CACxC,CAAC;AACJ,CAAC;AAUD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACjD,MAAM,CAAC,MAAM,CAAC,GAAG;QACf,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC7C,gBAAgB,EAAE,iCAAiC,CAAC,MAAM,CAAC;KAC5D,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,EAAE,EAA+C,CAAC,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oCAAoC,CAClD,UAAqB;IAErB,OAAO,qBAAqB,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC","sourcesContent":["// PhotoDNA coverage matrix (frozen Trust & Safety spec, Appendix A §A10 —\n// Finding-M3, decision-free algorithm; durable design owner: ttt-prod\n// docs/design/csam-detection-and-response.md). The CI coverage test and the\n// runtime router are BOTH derived from this module so they cannot drift from\n// `TTT_MEDIA_SPECS`.\n//\n// The source of truth for what a media origin accepts is\n// `TTT_MEDIA_SPECS[origin].accept.kinds`, NOT the top-level `spec.kind` (which\n// mislabels `craft-skill-media`/`squareStreetz` as 'image' and\n// `conversation-file`/`work-asset` as 'generic', although all four\n// accept image+video+audio). Nothing here is hard-coded per-origin — every entry\n// is computed from the registry, so a new accepted kind on any origin fails CI\n// (via photodna-coverage.test.ts) until a branch covers it.\n\nimport type { MediaKind } from '@ttt-productions/media-schemas';\nimport { FileOriginSchema, type FileOrigin } from './file-origin.js';\nimport { TTT_MEDIA_SPECS } from './ttt-media-specs.js';\n\n/**\n * The required pre-publication PhotoDNA / spoof-guard branch implied by an\n * accepted (or, at runtime, magic-byte-detected) media kind:\n * - 'image' ⇒ image PhotoDNA (pre-publication, fail-closed)\n * - 'video' ⇒ frame-extraction (keyframes / ~1fps, capped) → PhotoDNA every frame\n * - 'audio' ⇒ AUDIO-ONLY SPOOF GUARD: confirm the bytes are genuinely audio\n * (a non-audio payload on an audio path is rejected, not skipped).\n * Audio is NOT image/video hashed.\n */\nexport type PhotoDnaRequiredBranch =\n | 'imagePhotoDna'\n | 'videoFramePhotoDna'\n | 'audioSpoofGuard';\n\n/**\n * The PhotoDNA-relevant subset of `MediaKind`. The generic 'file' kind has no\n * PhotoDNA / spoof-guard branch and never appears in any TTT origin's\n * `accept.kinds`, so it is excluded from the §A10 mapping.\n */\ntype PhotoDnaCoveredKind = Extract<MediaKind, 'image' | 'video' | 'audio'>;\n\n/**\n * The §A10 kind → required-branch mapping. This is the ONLY place the\n * kind↔branch correspondence is written; both the build-time matrix and the\n * runtime router derive from it. A newly accepted PhotoDNA-relevant kind must be\n * added here to compile (the `Record` is total over `PhotoDnaCoveredKind`).\n */\nconst REQUIRED_BRANCH_BY_KIND: Record<PhotoDnaCoveredKind, PhotoDnaRequiredBranch> = {\n image: 'imagePhotoDna',\n video: 'videoFramePhotoDna',\n audio: 'audioSpoofGuard',\n};\n\nconst PHOTODNA_COVERED_KINDS = Object.keys(\n REQUIRED_BRANCH_BY_KIND,\n) as PhotoDnaCoveredKind[];\n\nfunction isPhotoDnaCoveredKind(kind: MediaKind): kind is PhotoDnaCoveredKind {\n return (PHOTODNA_COVERED_KINDS as MediaKind[]).includes(kind);\n}\n\n/** The authoritative accepted-kinds set for an origin (`accept.kinds`). */\nfunction acceptedKindsForOrigin(origin: FileOrigin): MediaKind[] {\n return TTT_MEDIA_SPECS[origin].accept?.kinds ?? [];\n}\n\n/**\n * The required PhotoDNA / spoof-guard branches for an origin, derived from its\n * `accept.kinds` per the §A10 algorithm. Deduped, in\n * image → video → audio canonical order. Pure / decision-free.\n */\nexport function requiredPhotoDnaBranchesForOrigin(\n origin: FileOrigin,\n): PhotoDnaRequiredBranch[] {\n const kinds = new Set(acceptedKindsForOrigin(origin));\n // Iterate the canonical kind order (not the registry array order) so output is\n // deterministic regardless of how an origin lists its accepted kinds.\n return PHOTODNA_COVERED_KINDS.filter((kind) => kinds.has(kind)).map(\n (kind) => REQUIRED_BRANCH_BY_KIND[kind],\n );\n}\n\n/** One row of the derived build-time coverage matrix. */\nexport interface PhotoDnaCoverageEntry {\n /** The authoritative accepted-kinds set (`TTT_MEDIA_SPECS[origin].accept.kinds`). */\n readonly acceptedKinds: readonly MediaKind[];\n /** The required pre-publication branches implied by `acceptedKinds`. */\n readonly requiredBranches: readonly PhotoDnaRequiredBranch[];\n}\n\n/**\n * The build-time / CI coverage matrix: every `FileOriginSchema.options` value\n * mapped to its accepted kinds + required PhotoDNA branches. Derived from\n * `TTT_MEDIA_SPECS` at module load — never hand-maintained. `photodna-coverage.test.ts`\n * fails CI if any origin is missing OR any accepted kind has no required branch.\n */\nexport const PHOTODNA_COVERAGE_MATRIX: Record<FileOrigin, PhotoDnaCoverageEntry> =\n FileOriginSchema.options.reduce((matrix, origin) => {\n matrix[origin] = {\n acceptedKinds: acceptedKindsForOrigin(origin),\n requiredBranches: requiredPhotoDnaBranchesForOrigin(origin),\n };\n return matrix;\n }, {} as Record<FileOrigin, PhotoDnaCoverageEntry>);\n\n/**\n * Runtime dispatch (per uploaded object). `serverKind` is the SERVER-DETECTED\n * magic-byte kind — NEVER the client MIME / display kind — and MUST be a member\n * of `TTT_MEDIA_SPECS[origin].accept.kinds` for the upload's origin; a kind\n * outside that set is a spoof and the caller rejects (this helper does not see\n * the origin — the `accept.kinds ∋ serverKind` assertion is the caller's gate,\n * per §A10). For a covered kind it returns the branch the object must traverse:\n * image → imagePhotoDna, video → videoFramePhotoDna, audio → audioSpoofGuard.\n *\n * Returns `null` for the generic 'file' kind (no PhotoDNA path); callers treat a\n * `null` here on a non-'file' detection as a hard reject, never a skip.\n */\nexport function runtimePhotoDnaBranchForDetectedKind(\n serverKind: MediaKind,\n): PhotoDnaRequiredBranch | null {\n return isPhotoDnaCoveredKind(serverKind)\n ? REQUIRED_BRANCH_BY_KIND[serverKind]\n : null;\n}\n"]}
@@ -5,6 +5,7 @@ export declare const StartUploadRequestSchema: z.ZodObject<{
5
5
  fileOrigin: z.ZodEnum<{
6
6
  "commission-proposal": "commission-proposal";
7
7
  "profile-picture": "profile-picture";
8
+ "conversation-file": "conversation-file";
8
9
  "audition-entry": "audition-entry";
9
10
  "work-asset": "work-asset";
10
11
  "craft-skill-media": "craft-skill-media";
@@ -21,7 +22,6 @@ export declare const StartUploadRequestSchema: z.ZodObject<{
21
22
  "tune-track-audio": "tune-track-audio";
22
23
  "television-episode-photo": "television-episode-photo";
23
24
  "television-episode-video": "television-episode-video";
24
- "guild-chat-message-attachment": "guild-chat-message-attachment";
25
25
  "ncii-evidence": "ncii-evidence";
26
26
  }>;
27
27
  targetInfo: z.ZodOptional<z.ZodUnknown>;
@@ -144,33 +144,13 @@ export declare const TelevisionEpisodeVideoTargetInfoSchema: z.ZodObject<{
144
144
  televisionId: z.ZodString;
145
145
  episodeId: z.ZodString;
146
146
  }, z.core.$strict>;
147
- export declare const ChatAttachmentTargetInfoSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
148
- threadKind: z.ZodLiteral<"guildChatChannel">;
149
- workProjectId: z.ZodString;
150
- guildChatChannelId: z.ZodString;
151
- replyTo: z.ZodOptional<z.ZodObject<{
152
- messageId: z.ZodString;
153
- senderId: z.ZodString;
154
- messagePreview: z.ZodString;
155
- }, z.core.$strict>>;
156
- }, z.core.$strict>, z.ZodObject<{
157
- threadKind: z.ZodLiteral<"guildInvite">;
147
+ export declare const ConversationFileTargetInfoSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
148
+ kind: z.ZodLiteral<"guildInvite">;
158
149
  guildInviteId: z.ZodString;
159
- replyTo: z.ZodOptional<z.ZodObject<{
160
- messageId: z.ZodString;
161
- senderId: z.ZodString;
162
- messagePreview: z.ZodString;
163
- }, z.core.$strict>>;
164
150
  }, z.core.$strict>, z.ZodObject<{
165
- threadKind: z.ZodLiteral<"adminSupport">;
151
+ kind: z.ZodLiteral<"adminSupport">;
166
152
  adminDispatchId: z.ZodString;
167
- isUserReply: z.ZodBoolean;
168
- replyTo: z.ZodOptional<z.ZodObject<{
169
- messageId: z.ZodString;
170
- senderId: z.ZodString;
171
- messagePreview: z.ZodString;
172
- }, z.core.$strict>>;
173
- }, z.core.$strict>], "threadKind">;
153
+ }, z.core.$strict>], "kind">;
174
154
  export declare const WorkAssetTargetInfoSchema: z.ZodObject<{
175
155
  workProjectId: z.ZodString;
176
156
  folderId: z.ZodString;
@@ -192,12 +172,12 @@ export type TuneTrackPhotoTargetInfo = z.infer<typeof TuneTrackPhotoTargetInfoSc
192
172
  export type TuneTrackAudioTargetInfo = z.infer<typeof TuneTrackAudioTargetInfoSchema>;
193
173
  export type TelevisionEpisodePhotoTargetInfo = z.infer<typeof TelevisionEpisodePhotoTargetInfoSchema>;
194
174
  export type TelevisionEpisodeVideoTargetInfo = z.infer<typeof TelevisionEpisodeVideoTargetInfoSchema>;
195
- export type ChatAttachmentTargetInfo = z.infer<typeof ChatAttachmentTargetInfoSchema>;
175
+ export type ConversationFileTargetInfo = z.infer<typeof ConversationFileTargetInfoSchema>;
196
176
  export type WorkAssetTargetInfo = z.infer<typeof WorkAssetTargetInfoSchema>;
197
177
  export declare const NciiEvidenceTargetInfoSchema: z.ZodObject<{
198
178
  requestReference: z.ZodString;
199
179
  }, z.core.$strict>;
200
180
  export type NciiEvidenceTargetInfo = z.infer<typeof NciiEvidenceTargetInfoSchema>;
201
- export type TargetInfoFor<O extends FileOrigin> = O extends 'profile-picture' ? ProfilePictureTargetInfo : O extends 'craft-skill-media' ? CraftSkillMediaTargetInfo : O extends 'squareStreetz' ? SquareStreetzTargetInfo : O extends 'commission-posting' ? CommissionPostingTargetInfo : O extends 'commission-proposal' ? CommissionProposalTargetInfo : O extends 'audition-prompt' ? AuditionPromptTargetInfo : O extends 'admin-audition-prompt' ? AdminAuditionPromptTargetInfo : O extends 'audition-entry' ? AuditionEntryTargetInfo : O extends 'hallLibrary-cover-square' ? HallLibraryCoverSquareTargetInfo : O extends 'hallLibrary-cover-poster' ? HallLibraryCoverPosterTargetInfo : O extends 'hallLibrary-cover-cinematic' ? HallLibraryCoverCinematicTargetInfo : O extends 'realm-cover' ? RealmCoverTargetInfo : O extends 'chapter-photo' ? ChapterPhotoTargetInfo : O extends 'tune-track-photo' ? TuneTrackPhotoTargetInfo : O extends 'tune-track-audio' ? TuneTrackAudioTargetInfo : O extends 'television-episode-photo' ? TelevisionEpisodePhotoTargetInfo : O extends 'television-episode-video' ? TelevisionEpisodeVideoTargetInfo : O extends 'guild-chat-message-attachment' ? ChatAttachmentTargetInfo : O extends 'work-asset' ? WorkAssetTargetInfo : O extends 'ncii-evidence' ? NciiEvidenceTargetInfo : never;
181
+ export type TargetInfoFor<O extends FileOrigin> = O extends 'profile-picture' ? ProfilePictureTargetInfo : O extends 'craft-skill-media' ? CraftSkillMediaTargetInfo : O extends 'squareStreetz' ? SquareStreetzTargetInfo : O extends 'commission-posting' ? CommissionPostingTargetInfo : O extends 'commission-proposal' ? CommissionProposalTargetInfo : O extends 'audition-prompt' ? AuditionPromptTargetInfo : O extends 'admin-audition-prompt' ? AdminAuditionPromptTargetInfo : O extends 'audition-entry' ? AuditionEntryTargetInfo : O extends 'hallLibrary-cover-square' ? HallLibraryCoverSquareTargetInfo : O extends 'hallLibrary-cover-poster' ? HallLibraryCoverPosterTargetInfo : O extends 'hallLibrary-cover-cinematic' ? HallLibraryCoverCinematicTargetInfo : O extends 'realm-cover' ? RealmCoverTargetInfo : O extends 'chapter-photo' ? ChapterPhotoTargetInfo : O extends 'tune-track-photo' ? TuneTrackPhotoTargetInfo : O extends 'tune-track-audio' ? TuneTrackAudioTargetInfo : O extends 'television-episode-photo' ? TelevisionEpisodePhotoTargetInfo : O extends 'television-episode-video' ? TelevisionEpisodeVideoTargetInfo : O extends 'conversation-file' ? ConversationFileTargetInfo : O extends 'work-asset' ? WorkAssetTargetInfo : O extends 'ncii-evidence' ? NciiEvidenceTargetInfo : never;
202
182
  export declare function parseTargetInfo<O extends FileOrigin>(fileOrigin: O, raw: unknown): TargetInfoFor<O>;
203
183
  //# sourceMappingURL=target-info.d.ts.map