@ttt-productions/ttt-core 0.79.124 → 0.79.125

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 (56) hide show
  1. package/dist/doc-schemas/erasure-fates.d.ts +2 -0
  2. package/dist/doc-schemas/erasure-fates.d.ts.map +1 -1
  3. package/dist/doc-schemas/erasure-fates.js +2 -0
  4. package/dist/doc-schemas/erasure-fates.js.map +1 -1
  5. package/dist/doc-schemas/media-activation-jobs.d.ts +129 -33
  6. package/dist/doc-schemas/media-activation-jobs.d.ts.map +1 -1
  7. package/dist/doc-schemas/media-activation-jobs.js +12 -3
  8. package/dist/doc-schemas/media-activation-jobs.js.map +1 -1
  9. package/dist/doc-schemas/media-assets.js +1 -1
  10. package/dist/doc-schemas/media-assets.js.map +1 -1
  11. package/dist/doc-schemas/messaging.d.ts +129 -8
  12. package/dist/doc-schemas/messaging.d.ts.map +1 -1
  13. package/dist/doc-schemas/messaging.js +13 -3
  14. package/dist/doc-schemas/messaging.js.map +1 -1
  15. package/dist/doc-schemas/moderation.d.ts +159 -12
  16. package/dist/doc-schemas/moderation.d.ts.map +1 -1
  17. package/dist/doc-schemas/moderation.js +22 -28
  18. package/dist/doc-schemas/moderation.js.map +1 -1
  19. package/dist/doc-schemas/operational.d.ts +4 -0
  20. package/dist/doc-schemas/operational.d.ts.map +1 -1
  21. package/dist/doc-schemas/operational.js +1 -0
  22. package/dist/doc-schemas/operational.js.map +1 -1
  23. package/dist/doc-schemas/registry.d.ts +239 -56
  24. package/dist/doc-schemas/registry.d.ts.map +1 -1
  25. package/dist/doc-schemas/registry.js +3 -1
  26. package/dist/doc-schemas/registry.js.map +1 -1
  27. package/dist/doc-schemas/safety/report.d.ts +1 -1
  28. package/dist/doc-schemas/safety/report.js +1 -1
  29. package/dist/doc-schemas/safety/report.js.map +1 -1
  30. package/dist/doc-schemas/work-project.d.ts +1 -0
  31. package/dist/doc-schemas/work-project.d.ts.map +1 -1
  32. package/dist/doc-schemas/work-project.js +1 -0
  33. package/dist/doc-schemas/work-project.js.map +1 -1
  34. package/dist/media/hall-library-target-fields.d.ts +1 -0
  35. package/dist/media/hall-library-target-fields.d.ts.map +1 -1
  36. package/dist/media/hall-library-target-fields.js +1 -0
  37. package/dist/media/hall-library-target-fields.js.map +1 -1
  38. package/dist/media/pending-media.d.ts +6 -6
  39. package/dist/paths/collections.d.ts +2 -0
  40. package/dist/paths/collections.d.ts.map +1 -1
  41. package/dist/paths/collections.js +2 -0
  42. package/dist/paths/collections.js.map +1 -1
  43. package/dist/paths/path-builders.d.ts +2 -0
  44. package/dist/paths/path-builders.d.ts.map +1 -1
  45. package/dist/paths/path-builders.js +8 -0
  46. package/dist/paths/path-builders.js.map +1 -1
  47. package/dist/report/report-config-values.d.ts +2 -1
  48. package/dist/report/report-config-values.d.ts.map +1 -1
  49. package/dist/report/report-config-values.js.map +1 -1
  50. package/dist/schemas/notification.d.ts +1 -0
  51. package/dist/schemas/notification.d.ts.map +1 -1
  52. package/dist/schemas/notification.js +1 -1
  53. package/dist/schemas/notification.js.map +1 -1
  54. package/dist/schemas/work-project-management.d.ts +1 -0
  55. package/dist/schemas/work-project-management.d.ts.map +1 -1
  56. package/package.json +2 -2
@@ -22,6 +22,7 @@ export declare const ERASURE_FATES_BY_COLLECTION_PATH: {
22
22
  readonly 'reservedDisplayNames/{displayNameUppercase}': readonly ["delete"];
23
23
  readonly 'accountDeletionRequests/{uid}': readonly ["retain"];
24
24
  readonly 'statusReconcileQueue/{uid}': readonly ["delete"];
25
+ readonly 'adminDispatchAppealLocks/{uid}': readonly ["delete"];
25
26
  readonly 'ageAttestationNonces/{nonceHash}': readonly ["retain"];
26
27
  readonly 'allWorkProjects/{workProjectId}': readonly ["delete", "retain"];
27
28
  readonly 'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': readonly ["delete", "retain"];
@@ -48,6 +49,7 @@ export declare const ERASURE_FATES_BY_COLLECTION_PATH: {
48
49
  readonly 'hallItems/{hallItemId}/hallItemTunes/{itemId}': readonly ["none"];
49
50
  readonly 'hallItems/{hallItemId}/hallItemTelevision/{itemId}': readonly ["none"];
50
51
  readonly 'hallContentChangeRequests/{changeRequestId}': readonly ["retain"];
52
+ readonly 'hallContentChangeRequestLocks/{targetKey}': readonly ["none"];
51
53
  readonly 'squareStreetzFeed/activePosts/socialPosts/{postId}': readonly ["delete"];
52
54
  readonly 'squareStreetzFeed/trendingPosts': readonly ["none"];
53
55
  readonly 'followEdges/{followEdgeId}': readonly ["delete"];
@@ -1 +1 @@
1
- {"version":3,"file":"erasure-fates.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,eAAO,MAAM,iBAAiB;;;;;EAAwB,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAU5D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsMkC,CAAC;AAEhF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,wBAAwB,EAAE,CAI5F;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC,EACnE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,CAI9C"}
1
+ {"version":3,"file":"erasure-fates.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,eAAO,MAAM,iBAAiB;;;;;EAAwB,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAU5D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMkC,CAAC;AAEhF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,wBAAwB,EAAE,CAI5F;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC,EACnE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,CAI9C"}
@@ -19,6 +19,7 @@ export const ERASURE_FATES_BY_COLLECTION_PATH = {
19
19
  'reservedDisplayNames/{displayNameUppercase}': DELETE,
20
20
  'accountDeletionRequests/{uid}': RETAIN,
21
21
  'statusReconcileQueue/{uid}': DELETE,
22
+ 'adminDispatchAppealLocks/{uid}': DELETE,
22
23
  'ageAttestationNonces/{nonceHash}': RETAIN,
23
24
  'allWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,
24
25
  'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': SOLO_DRAFT_WORK,
@@ -48,6 +49,7 @@ export const ERASURE_FATES_BY_COLLECTION_PATH = {
48
49
  'hallItems/{hallItemId}/hallItemTunes/{itemId}': NONE,
49
50
  'hallItems/{hallItemId}/hallItemTelevision/{itemId}': NONE,
50
51
  'hallContentChangeRequests/{changeRequestId}': RETAIN,
52
+ 'hallContentChangeRequestLocks/{targetKey}': NONE,
51
53
  'squareStreetzFeed/activePosts/socialPosts/{postId}': DELETE,
52
54
  'squareStreetzFeed/trendingPosts': NONE,
53
55
  'followEdges/{followEdgeId}': DELETE,
@@ -1 +1 @@
1
- {"version":3,"file":"erasure-fates.js","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport type { AdminDispatch } from './messaging.js';\nimport type { RegisteredCollectionPath } from './registry.js';\n\nexport const ERASURE_FATES = ['delete', 'anonymize', 'retain', 'none'] as const;\nexport const ErasureFateSchema = z.enum(ERASURE_FATES);\nexport type ErasureFate = z.infer<typeof ErasureFateSchema>;\n\ntype ErasureFates = readonly [ErasureFate, ...ErasureFate[]];\n\nconst DELETE = ['delete'] as const;\nconst ANONYMIZE = ['anonymize'] as const;\nconst RETAIN = ['retain'] as const;\nconst NONE = ['none'] as const;\nconst SOLO_DRAFT_WORK = ['delete', 'retain'] as const;\n\nexport const ERASURE_FATES_BY_COLLECTION_PATH = {\n 'userProfiles/{userId}': ANONYMIZE,\n 'userProfiles/{userId}/privateData/{userId}': DELETE,\n 'userProfiles/{userId}/privateData/hallLibraryPreferences': DELETE,\n 'userProfiles/{userId}/profileCraftSkills/{craftSkillId}': DELETE,\n 'userProfiles/{userId}/auditionVotes/{auditionId}': DELETE,\n 'userProfiles/{userId}/mentionHistory/{docId}': DELETE,\n 'userProfiles/{userId}/notificationHistory/{notificationId}': DELETE,\n 'userProfiles/{userId}/userLikes/likeHistory/squareStreetzLikes/{postId}': DELETE,\n 'publicUsers/{uid}': ANONYMIZE,\n 'reservedDisplayNames/{displayNameUppercase}': DELETE,\n 'accountDeletionRequests/{uid}': RETAIN,\n 'statusReconcileQueue/{uid}': DELETE,\n 'ageAttestationNonces/{nonceHash}': RETAIN,\n\n 'allWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/publicGuildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}/workFiles/{workFileId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/hallSubmissionReservation/reservation': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}/taleChapters/{chapterId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}/tuneTracks/{trackId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}/televisionEpisodes/{episodeId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildChatChannels/{guildChatChannelId}': SOLO_DRAFT_WORK,\n 'publicWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}': SOLO_DRAFT_WORK,\n 'reservedRealmNames/{workingTitleUppercase}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}/realmFileFolders/{realmFileFolderId}': RETAIN,\n 'guildInviteConversations/{guildInviteId}': RETAIN,\n 'guildInviteConversations/{guildInviteId}/conversationFiles/{conversationFileId}': [\n 'delete',\n 'retain',\n ],\n 'thresholdItems/{thresholdItemId}': SOLO_DRAFT_WORK,\n 'hallItems/{hallItemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTales/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTunes/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTelevision/{itemId}': NONE,\n 'hallContentChangeRequests/{changeRequestId}': RETAIN,\n\n 'squareStreetzFeed/activePosts/socialPosts/{postId}': DELETE,\n 'squareStreetzFeed/trendingPosts': NONE,\n 'followEdges/{followEdgeId}': DELETE,\n 'followCounters/{followCounterId}': DELETE,\n 'squareAnnouncementJobs/{jobId}': ['delete', 'retain'],\n 'craftSkillsByTag/{tag}/taggedCraftSkills/{compositeId}': DELETE,\n\n 'commissionListings/{commissionListingId}': RETAIN,\n 'commissionListings/{commissionListingId}/commissionProposals/{commissionProposalId}': DELETE,\n 'auditionBoard/{auditionId}': RETAIN,\n 'auditionBoard/{auditionId}/auditionEntries/{auditionEntryId}': DELETE,\n\n 'pledgePayments/{pledgePaymentId}': RETAIN,\n 'pledgePaymentProviderRefs/{pledgePaymentId}': RETAIN,\n 'processedStripeEvents/{stripeEventId}': NONE,\n 'pledgePaymentLedgerEvents/{ledgerId}': RETAIN,\n 'paymentWebhookQuarantine/{stripeEventId}': RETAIN,\n 'pledgePaymentTotals/summary': NONE,\n 'pledgeRefundRequests/{requestId}': RETAIN,\n\n 'contentReports/{reportId}': ['anonymize', 'retain'],\n 'contentReports/{reportId}/publicProjection/{reportId}': NONE,\n 'contentReports/{reportId}/privateDetails/snapshot': RETAIN,\n 'contentReports/{reportId}/privateDetails/narrative': ['delete', 'retain'],\n 'contentReports/{reportId}/privateDetails/narrativeEscalation': RETAIN,\n 'activeReportGroups/{groupKey}': RETAIN,\n 'activeReportGroups/{groupKey}/reportGroupCountedReports/{reportId}': NONE,\n 'adminTasks/{taskId}': ['delete', 'retain'],\n 'contentViolations/{violationId}': DELETE,\n 'moderationCascadeManifests/{cascadeId}': RETAIN,\n 'moderationCascadeManifests/{cascadeId}/changedDocs/{changedDocId}': RETAIN,\n 'auditEvents/{eventId}': RETAIN,\n 'stakeShareAuditEvents/{eventId}': RETAIN,\n 'pendingAdminDispatches/{adminDispatchId}': ['delete', 'anonymize'],\n 'pendingAdminDispatches/{adminDispatchId}/conversationMessages/{adminDispatchMessageId}': [\n 'delete',\n 'anonymize',\n ],\n 'pendingAdminDispatches/{adminDispatchId}/conversationFiles/{conversationFileId}': [\n 'delete',\n 'retain',\n ],\n 'pendingAdminDispatches/{adminDispatchId}/dispatchReadMarkers/{uid}': DELETE,\n 'shortLinks/{shortId}': RETAIN,\n 'feedbackSubmissions/{feedbackType}/userSuggestions/{suggestionId}': ANONYMIZE,\n\n 'pendingMedia/{pendingMediaId}': ['delete', 'anonymize'],\n 'pendingMediaArchive/{pendingMediaId}': ['delete', 'anonymize'],\n 'mediaAssets/{mediaAssetId}': ['delete', 'retain'],\n 'mediaActivationJobs/{jobId}': RETAIN,\n 'mediaCopyIntents/{newAssetId}': NONE,\n\n 'activeUserNotifications/{notificationId}': ['delete', 'retain'],\n 'activeAdminNotifications/{notificationId}': RETAIN,\n 'adminNotificationHistory/{notificationId}': RETAIN,\n 'pendingNotifications/{notificationId}': ['delete', 'retain'],\n 'notificationDeliveries/{deliveryId}': ['delete', 'retain'],\n 'notificationFanoutJobs/{jobId}': RETAIN,\n 'notificationArchiveAllJobs/{jobId}': DELETE,\n\n 'chatChannelAuthProjections/{authPairKey}': DELETE,\n 'chatScopeDegraded/{scopeKey}': RETAIN,\n 'chatScopeDegraded/{scopeKey}/chatScopeDegradedCauses/{causeId}': RETAIN,\n 'chatSyncEvents/{eventId}': RETAIN,\n 'chatSyncFanoutJobs/{jobId}': RETAIN,\n 'chatMessageOutbox/{commandId}': ['delete', 'retain'],\n 'chatAdminActionCommands/{requestId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}/affectedChunks/{chunkOrdinal}': NONE,\n 'chatParkedDeliveries/{deliveryId}': RETAIN,\n\n 'publicDocuments/{documentId}/publicDocumentVersions/{versionId}': RETAIN,\n 'publicDocumentDrafts/{documentId}': RETAIN,\n 'publicDocumentReleases/{releaseId}': RETAIN,\n\n 'childSafetyCaseList/{caseId}': RETAIN,\n 'activeSafetyCaseAlerts/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}/sourceSignals/{signalId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}/childSafetyDecisionViews/{viewId}':\n RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}/childSafetyCaseAccountHistory/{historyId}':\n RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseCrossoverItems/{mediaAssetId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecSubmissionFiles/{fileId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecCompletionProof/record': RETAIN,\n 'childSafetyCases/{caseId}/legalProcess/{eventId}': RETAIN,\n 'childSafetyCases/{caseId}/portalReceiptArtifacts/{artifactId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecPortalCorrections/{correctionId}': RETAIN,\n 'childSafetyOwningAliases/{aliasId}': RETAIN,\n 'safetyHoldRefs/{holdRefId}': RETAIN,\n 'safetyHoldResources/{resourceKeyHash}': RETAIN,\n 'safetyResourceCommands/{commandDocId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/authorizedRequests/{requestId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/bypassRefs/{refId}': RETAIN,\n 'safetyEvidenceManifests/{manifestId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobItems/{itemId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobDisposition/{locationId}': RETAIN,\n 'eventProvenance/{eventId}': ['delete', 'retain'],\n 'quarantineSagaJobs/{caseId}': RETAIN,\n 'quarantineSagaJobs/{caseId}/relatedAssets/{assetId}': RETAIN,\n 'ncmecSubmissionJobs/{ncmecJobId}': RETAIN,\n 'accountActionCommands/{accountActionCommandId}': RETAIN,\n 'safetySlaMonitors/{monitorId}': NONE,\n 'safetyMonitorHeartbeat/global': NONE,\n 'operatorStepUp/{uid}': DELETE,\n 'sweepState/{sweepName}': NONE,\n 'nciiAllegations/{allegationId}': RETAIN,\n 'takeItDownRequests/{requestId}': RETAIN,\n 'takeItDownRequests/{requestId}/privateDetails/requester': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownSubmissions/{submissionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}/takeItDownValidityRationale/record':\n RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownActions/{actionId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidenceDisposition/{evidenceId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidence/{evidenceId}': RETAIN,\n 'nciiCases/{caseId}': RETAIN,\n 'nciiCases/{caseId}/allegationLinks/{allegationId}': RETAIN,\n 'nciiCases/{caseId}/requestLinks/{requestId}': RETAIN,\n 'nciiCases/{caseId}/removalActions/{actionId}': RETAIN,\n 'nciiCases/{caseId}/blockedHashes/{hashId}': RETAIN,\n 'nciiCases/{caseId}/closureEvents/{eventId}': RETAIN,\n 'nciiRetainedEvidenceInventory/{inventoryId}': RETAIN,\n 'nciiInventoryDeadLetter/{inventoryId}': RETAIN,\n 'nciiTemporaryHolds/{holdId}': RETAIN,\n 'nciiRemovalJobs/{jobId}': RETAIN,\n 'nciiRemovalJobs/{jobId}/nciiRemovalTargets/{targetKeyHash}': RETAIN,\n\n '_appConfig/app': NONE,\n '_appConfig/futurePlans': NONE,\n '_appConfig/rulesAndAgreements': NONE,\n '_appConfig/termsOfService': NONE,\n '_appConfig/privacyPolicy': NONE,\n '_appConfig/takeItDownPageCopy': NONE,\n '_appConfig/dmcaPolicy': NONE,\n '_appConfig/systemUidSlots': RETAIN,\n '_serverData/agePolicy': NONE,\n '_serverData/nciiPolicy': RETAIN,\n '_serverData/privilegedReviewerSecurity': NONE,\n '_serverData/feedbackLists/feedbackAliases/{aliasId}': NONE,\n '_systemData/adminList': ANONYMIZE,\n '_systemData/profanityList': NONE,\n '_systemData/reservedUsernames': NONE,\n '_systemData/blockedFranchiseNames': NONE,\n '_systemData/appMode': NONE,\n '_systemData/systemVideoSlots': NONE,\n} as const satisfies { readonly [P in RegisteredCollectionPath]: ErasureFates };\n\nexport function collectionPathsWithErasureFate(fate: ErasureFate): RegisteredCollectionPath[] {\n return (Object.keys(ERASURE_FATES_BY_COLLECTION_PATH) as RegisteredCollectionPath[]).filter(\n (path) => (ERASURE_FATES_BY_COLLECTION_PATH[path] as ErasureFates).includes(fate),\n );\n}\n\nexport function adminDispatchErasureFate(\n thread: Pick<AdminDispatch, 'partyKind' | 'initiatedBy' | 'userId'>,\n erasedUid: string,\n): Extract<ErasureFate, 'delete' | 'anonymize'> {\n return thread.partyKind === 'user' && thread.initiatedBy === 'user' && thread.userId === erasedUid\n ? 'delete'\n : 'anonymize';\n}\n"]}
1
+ {"version":3,"file":"erasure-fates.js","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport type { AdminDispatch } from './messaging.js';\nimport type { RegisteredCollectionPath } from './registry.js';\n\nexport const ERASURE_FATES = ['delete', 'anonymize', 'retain', 'none'] as const;\nexport const ErasureFateSchema = z.enum(ERASURE_FATES);\nexport type ErasureFate = z.infer<typeof ErasureFateSchema>;\n\ntype ErasureFates = readonly [ErasureFate, ...ErasureFate[]];\n\nconst DELETE = ['delete'] as const;\nconst ANONYMIZE = ['anonymize'] as const;\nconst RETAIN = ['retain'] as const;\nconst NONE = ['none'] as const;\nconst SOLO_DRAFT_WORK = ['delete', 'retain'] as const;\n\nexport const ERASURE_FATES_BY_COLLECTION_PATH = {\n 'userProfiles/{userId}': ANONYMIZE,\n 'userProfiles/{userId}/privateData/{userId}': DELETE,\n 'userProfiles/{userId}/privateData/hallLibraryPreferences': DELETE,\n 'userProfiles/{userId}/profileCraftSkills/{craftSkillId}': DELETE,\n 'userProfiles/{userId}/auditionVotes/{auditionId}': DELETE,\n 'userProfiles/{userId}/mentionHistory/{docId}': DELETE,\n 'userProfiles/{userId}/notificationHistory/{notificationId}': DELETE,\n 'userProfiles/{userId}/userLikes/likeHistory/squareStreetzLikes/{postId}': DELETE,\n 'publicUsers/{uid}': ANONYMIZE,\n 'reservedDisplayNames/{displayNameUppercase}': DELETE,\n 'accountDeletionRequests/{uid}': RETAIN,\n 'statusReconcileQueue/{uid}': DELETE,\n 'adminDispatchAppealLocks/{uid}': DELETE,\n 'ageAttestationNonces/{nonceHash}': RETAIN,\n\n 'allWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/publicGuildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}/workFiles/{workFileId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/hallSubmissionReservation/reservation': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}/taleChapters/{chapterId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}/tuneTracks/{trackId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}/televisionEpisodes/{episodeId}':\n SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildChatChannels/{guildChatChannelId}': SOLO_DRAFT_WORK,\n 'publicWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}': SOLO_DRAFT_WORK,\n 'reservedRealmNames/{workingTitleUppercase}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}/realmFileFolders/{realmFileFolderId}': RETAIN,\n 'guildInviteConversations/{guildInviteId}': RETAIN,\n 'guildInviteConversations/{guildInviteId}/conversationFiles/{conversationFileId}': [\n 'delete',\n 'retain',\n ],\n 'thresholdItems/{thresholdItemId}': SOLO_DRAFT_WORK,\n 'hallItems/{hallItemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTales/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTunes/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTelevision/{itemId}': NONE,\n 'hallContentChangeRequests/{changeRequestId}': RETAIN,\n 'hallContentChangeRequestLocks/{targetKey}': NONE,\n\n 'squareStreetzFeed/activePosts/socialPosts/{postId}': DELETE,\n 'squareStreetzFeed/trendingPosts': NONE,\n 'followEdges/{followEdgeId}': DELETE,\n 'followCounters/{followCounterId}': DELETE,\n 'squareAnnouncementJobs/{jobId}': ['delete', 'retain'],\n 'craftSkillsByTag/{tag}/taggedCraftSkills/{compositeId}': DELETE,\n\n 'commissionListings/{commissionListingId}': RETAIN,\n 'commissionListings/{commissionListingId}/commissionProposals/{commissionProposalId}': DELETE,\n 'auditionBoard/{auditionId}': RETAIN,\n 'auditionBoard/{auditionId}/auditionEntries/{auditionEntryId}': DELETE,\n\n 'pledgePayments/{pledgePaymentId}': RETAIN,\n 'pledgePaymentProviderRefs/{pledgePaymentId}': RETAIN,\n 'processedStripeEvents/{stripeEventId}': NONE,\n 'pledgePaymentLedgerEvents/{ledgerId}': RETAIN,\n 'paymentWebhookQuarantine/{stripeEventId}': RETAIN,\n 'pledgePaymentTotals/summary': NONE,\n 'pledgeRefundRequests/{requestId}': RETAIN,\n\n 'contentReports/{reportId}': ['anonymize', 'retain'],\n 'contentReports/{reportId}/publicProjection/{reportId}': NONE,\n 'contentReports/{reportId}/privateDetails/snapshot': RETAIN,\n 'contentReports/{reportId}/privateDetails/narrative': ['delete', 'retain'],\n 'contentReports/{reportId}/privateDetails/narrativeEscalation': RETAIN,\n 'activeReportGroups/{groupKey}': RETAIN,\n 'activeReportGroups/{groupKey}/reportGroupCountedReports/{reportId}': NONE,\n 'adminTasks/{taskId}': ['delete', 'retain'],\n 'contentViolations/{violationId}': DELETE,\n 'moderationCascadeManifests/{cascadeId}': RETAIN,\n 'moderationCascadeManifests/{cascadeId}/changedDocs/{changedDocId}': RETAIN,\n 'auditEvents/{eventId}': RETAIN,\n 'stakeShareAuditEvents/{eventId}': RETAIN,\n 'pendingAdminDispatches/{adminDispatchId}': ['delete', 'anonymize'],\n 'pendingAdminDispatches/{adminDispatchId}/conversationMessages/{adminDispatchMessageId}': [\n 'delete',\n 'anonymize',\n ],\n 'pendingAdminDispatches/{adminDispatchId}/conversationFiles/{conversationFileId}': [\n 'delete',\n 'retain',\n ],\n 'pendingAdminDispatches/{adminDispatchId}/dispatchReadMarkers/{uid}': DELETE,\n 'shortLinks/{shortId}': RETAIN,\n 'feedbackSubmissions/{feedbackType}/userSuggestions/{suggestionId}': ANONYMIZE,\n\n 'pendingMedia/{pendingMediaId}': ['delete', 'anonymize'],\n 'pendingMediaArchive/{pendingMediaId}': ['delete', 'anonymize'],\n 'mediaAssets/{mediaAssetId}': ['delete', 'retain'],\n 'mediaActivationJobs/{jobId}': RETAIN,\n 'mediaCopyIntents/{newAssetId}': NONE,\n\n 'activeUserNotifications/{notificationId}': ['delete', 'retain'],\n 'activeAdminNotifications/{notificationId}': RETAIN,\n 'adminNotificationHistory/{notificationId}': RETAIN,\n 'pendingNotifications/{notificationId}': ['delete', 'retain'],\n 'notificationDeliveries/{deliveryId}': ['delete', 'retain'],\n 'notificationFanoutJobs/{jobId}': RETAIN,\n 'notificationArchiveAllJobs/{jobId}': DELETE,\n\n 'chatChannelAuthProjections/{authPairKey}': DELETE,\n 'chatScopeDegraded/{scopeKey}': RETAIN,\n 'chatScopeDegraded/{scopeKey}/chatScopeDegradedCauses/{causeId}': RETAIN,\n 'chatSyncEvents/{eventId}': RETAIN,\n 'chatSyncFanoutJobs/{jobId}': RETAIN,\n 'chatMessageOutbox/{commandId}': ['delete', 'retain'],\n 'chatAdminActionCommands/{requestId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}/affectedChunks/{chunkOrdinal}': NONE,\n 'chatParkedDeliveries/{deliveryId}': RETAIN,\n\n 'publicDocuments/{documentId}/publicDocumentVersions/{versionId}': RETAIN,\n 'publicDocumentDrafts/{documentId}': RETAIN,\n 'publicDocumentReleases/{releaseId}': RETAIN,\n\n 'childSafetyCaseList/{caseId}': RETAIN,\n 'activeSafetyCaseAlerts/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}/sourceSignals/{signalId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}/childSafetyDecisionViews/{viewId}':\n RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}/childSafetyCaseAccountHistory/{historyId}':\n RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseCrossoverItems/{mediaAssetId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecSubmissionFiles/{fileId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecCompletionProof/record': RETAIN,\n 'childSafetyCases/{caseId}/legalProcess/{eventId}': RETAIN,\n 'childSafetyCases/{caseId}/portalReceiptArtifacts/{artifactId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecPortalCorrections/{correctionId}': RETAIN,\n 'childSafetyOwningAliases/{aliasId}': RETAIN,\n 'safetyHoldRefs/{holdRefId}': RETAIN,\n 'safetyHoldResources/{resourceKeyHash}': RETAIN,\n 'safetyResourceCommands/{commandDocId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/authorizedRequests/{requestId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/bypassRefs/{refId}': RETAIN,\n 'safetyEvidenceManifests/{manifestId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobItems/{itemId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobDisposition/{locationId}': RETAIN,\n 'eventProvenance/{eventId}': ['delete', 'retain'],\n 'quarantineSagaJobs/{caseId}': RETAIN,\n 'quarantineSagaJobs/{caseId}/relatedAssets/{assetId}': RETAIN,\n 'ncmecSubmissionJobs/{ncmecJobId}': RETAIN,\n 'accountActionCommands/{accountActionCommandId}': RETAIN,\n 'safetySlaMonitors/{monitorId}': NONE,\n 'safetyMonitorHeartbeat/global': NONE,\n 'operatorStepUp/{uid}': DELETE,\n 'sweepState/{sweepName}': NONE,\n 'nciiAllegations/{allegationId}': RETAIN,\n 'takeItDownRequests/{requestId}': RETAIN,\n 'takeItDownRequests/{requestId}/privateDetails/requester': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownSubmissions/{submissionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}/takeItDownValidityRationale/record':\n RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownActions/{actionId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidenceDisposition/{evidenceId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidence/{evidenceId}': RETAIN,\n 'nciiCases/{caseId}': RETAIN,\n 'nciiCases/{caseId}/allegationLinks/{allegationId}': RETAIN,\n 'nciiCases/{caseId}/requestLinks/{requestId}': RETAIN,\n 'nciiCases/{caseId}/removalActions/{actionId}': RETAIN,\n 'nciiCases/{caseId}/blockedHashes/{hashId}': RETAIN,\n 'nciiCases/{caseId}/closureEvents/{eventId}': RETAIN,\n 'nciiRetainedEvidenceInventory/{inventoryId}': RETAIN,\n 'nciiInventoryDeadLetter/{inventoryId}': RETAIN,\n 'nciiTemporaryHolds/{holdId}': RETAIN,\n 'nciiRemovalJobs/{jobId}': RETAIN,\n 'nciiRemovalJobs/{jobId}/nciiRemovalTargets/{targetKeyHash}': RETAIN,\n\n '_appConfig/app': NONE,\n '_appConfig/futurePlans': NONE,\n '_appConfig/rulesAndAgreements': NONE,\n '_appConfig/termsOfService': NONE,\n '_appConfig/privacyPolicy': NONE,\n '_appConfig/takeItDownPageCopy': NONE,\n '_appConfig/dmcaPolicy': NONE,\n '_appConfig/systemUidSlots': RETAIN,\n '_serverData/agePolicy': NONE,\n '_serverData/nciiPolicy': RETAIN,\n '_serverData/privilegedReviewerSecurity': NONE,\n '_serverData/feedbackLists/feedbackAliases/{aliasId}': NONE,\n '_systemData/adminList': ANONYMIZE,\n '_systemData/profanityList': NONE,\n '_systemData/reservedUsernames': NONE,\n '_systemData/blockedFranchiseNames': NONE,\n '_systemData/appMode': NONE,\n '_systemData/systemVideoSlots': NONE,\n} as const satisfies { readonly [P in RegisteredCollectionPath]: ErasureFates };\n\nexport function collectionPathsWithErasureFate(fate: ErasureFate): RegisteredCollectionPath[] {\n return (Object.keys(ERASURE_FATES_BY_COLLECTION_PATH) as RegisteredCollectionPath[]).filter(\n (path) => (ERASURE_FATES_BY_COLLECTION_PATH[path] as ErasureFates).includes(fate),\n );\n}\n\nexport function adminDispatchErasureFate(\n thread: Pick<AdminDispatch, 'partyKind' | 'initiatedBy' | 'userId'>,\n erasedUid: string,\n): Extract<ErasureFate, 'delete' | 'anonymize'> {\n return thread.partyKind === 'user' && thread.initiatedBy === 'user' && thread.userId === erasedUid\n ? 'delete'\n : 'anonymize';\n}\n"]}
@@ -6,35 +6,108 @@ export declare const MediaActivationJobStatusSchema: z.ZodEnum<{
6
6
  authorityApplied: "authorityApplied";
7
7
  }>;
8
8
  export type MediaActivationJobStatus = z.infer<typeof MediaActivationJobStatusSchema>;
9
- export declare const MediaActivationJobSchema: z.ZodObject<{
9
+ export declare const MediaActivationJobSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10
10
  jobId: z.ZodString;
11
11
  schemaVersion: z.ZodNumber;
12
12
  assetId: z.ZodString;
13
13
  pendingMediaId: z.ZodString;
14
+ authorityVersion: z.ZodNumber;
15
+ payloadHash: z.ZodString;
16
+ authorityPayload: z.ZodObject<{
17
+ schemaVersion: z.ZodNumber;
18
+ assetId: z.ZodString;
19
+ authorityVersion: z.ZodNumber;
20
+ operationId: z.ZodString;
21
+ payloadHash: z.ZodString;
22
+ servingStatus: z.ZodEnum<{
23
+ servable: "servable";
24
+ hidden: "hidden";
25
+ quarantined: "quarantined";
26
+ deleted: "deleted";
27
+ }>;
28
+ accessTier: z.ZodEnum<{
29
+ broad: "broad";
30
+ scoped: "scoped";
31
+ artisan: "artisan";
32
+ adminOnly: "adminOnly";
33
+ }>;
34
+ ownerType: z.ZodEnum<{
35
+ workProject: "workProject";
36
+ userProfile: "userProfile";
37
+ craftSkill: "craftSkill";
38
+ squareStreetzPost: "squareStreetzPost";
39
+ workContent: "workContent";
40
+ hallItem: "hallItem";
41
+ commissionListing: "commissionListing";
42
+ commissionProposal: "commissionProposal";
43
+ audition: "audition";
44
+ auditionEntry: "auditionEntry";
45
+ conversationFile: "conversationFile";
46
+ realmFile: "realmFile";
47
+ safetyEvidence: "safetyEvidence";
48
+ systemContent: "systemContent";
49
+ }>;
50
+ ownerId: z.ZodString;
51
+ scope: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
52
+ kind: z.ZodLiteral<"workProject">;
53
+ workProjectId: z.ZodString;
54
+ }, z.core.$strict>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"workFileFolder">;
56
+ workProjectId: z.ZodString;
57
+ workFileFolderId: z.ZodString;
58
+ }, z.core.$strict>, z.ZodObject<{
59
+ kind: z.ZodLiteral<"guildInvite">;
60
+ guildInviteId: z.ZodString;
61
+ }, z.core.$strict>, z.ZodObject<{
62
+ kind: z.ZodLiteral<"adminSupport">;
63
+ adminDispatchId: z.ZodString;
64
+ }, z.core.$strict>], "kind">>;
65
+ variants: z.ZodRecord<z.ZodString, z.ZodObject<{
66
+ contentType: z.ZodString;
67
+ sizeBytes: z.ZodNumber;
68
+ width: z.ZodOptional<z.ZodNumber>;
69
+ height: z.ZodOptional<z.ZodNumber>;
70
+ durationSec: z.ZodOptional<z.ZodNumber>;
71
+ downloadFilename: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strict>>;
73
+ updatedAtMs: z.ZodNumber;
74
+ }, z.core.$strict>;
75
+ publicationArgs: z.ZodUnknown;
76
+ status: z.ZodEnum<{
77
+ pending: "pending";
78
+ deadLetter: "deadLetter";
79
+ complete: "complete";
80
+ authorityApplied: "authorityApplied";
81
+ }>;
82
+ attemptCount: z.ZodNumber;
83
+ nextAttemptAt: z.ZodNumber;
84
+ lastError: z.ZodOptional<z.ZodObject<{
85
+ code: z.ZodString;
86
+ message: z.ZodString;
87
+ retryable: z.ZodOptional<z.ZodBoolean>;
88
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
89
+ at: z.ZodOptional<z.ZodNumber>;
90
+ }, z.core.$strict>>;
91
+ parentKey: z.ZodOptional<z.ZodString>;
92
+ parentWaitStartedAt: z.ZodOptional<z.ZodNumber>;
93
+ createdAt: z.ZodNumber;
94
+ authorityAppliedAt: z.ZodOptional<z.ZodNumber>;
95
+ completedAt: z.ZodOptional<z.ZodNumber>;
96
+ deadLetteredAt: z.ZodOptional<z.ZodNumber>;
97
+ expireAt: z.ZodOptional<z.ZodCustom<import("./firestore-primitives.js").FirestoreTimestampLike, import("./firestore-primitives.js").FirestoreTimestampLike>>;
98
+ publicationKind: z.ZodLiteral<"workContentMedia">;
14
99
  fileOrigin: z.ZodEnum<{
15
- "profile-picture": "profile-picture";
16
- "craft-skill-media": "craft-skill-media";
17
- squareStreetz: "squareStreetz";
18
- "commission-posting": "commission-posting";
19
- "commission-proposal": "commission-proposal";
20
- "audition-prompt": "audition-prompt";
21
- "audition-entry": "audition-entry";
22
- "audition-curated-option": "audition-curated-option";
23
- "admin-audition-prompt": "admin-audition-prompt";
24
- "hallLibrary-cover-square": "hallLibrary-cover-square";
25
- "hallLibrary-cover-poster": "hallLibrary-cover-poster";
26
- "hallLibrary-cover-cinematic": "hallLibrary-cover-cinematic";
27
- "realm-cover": "realm-cover";
28
100
  "chapter-photo": "chapter-photo";
29
101
  "tune-track-photo": "tune-track-photo";
30
102
  "tune-track-audio": "tune-track-audio";
31
103
  "television-episode-photo": "television-episode-photo";
32
104
  "television-episode-video": "television-episode-video";
33
- "conversation-file": "conversation-file";
34
- "work-asset": "work-asset";
35
- "system-content": "system-content";
36
- "ncii-evidence": "ncii-evidence";
37
105
  }>;
106
+ }, z.core.$strict>, z.ZodObject<{
107
+ jobId: z.ZodString;
108
+ schemaVersion: z.ZodNumber;
109
+ assetId: z.ZodString;
110
+ pendingMediaId: z.ZodString;
38
111
  authorityVersion: z.ZodNumber;
39
112
  payloadHash: z.ZodString;
40
113
  authorityPayload: z.ZodObject<{
@@ -96,20 +169,6 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
96
169
  }, z.core.$strict>>;
97
170
  updatedAtMs: z.ZodNumber;
98
171
  }, z.core.$strict>;
99
- publicationKind: z.ZodEnum<{
100
- conversationFile: "conversationFile";
101
- profilePicture: "profilePicture";
102
- squarePostMedia: "squarePostMedia";
103
- workAsset: "workAsset";
104
- hallCover: "hallCover";
105
- realmCover: "realmCover";
106
- workContentMedia: "workContentMedia";
107
- auditionMedia: "auditionMedia";
108
- commissionListingMedia: "commissionListingMedia";
109
- commissionProposalMedia: "commissionProposalMedia";
110
- craftSkillMedia: "craftSkillMedia";
111
- systemVideoSlot: "systemVideoSlot";
112
- }>;
113
172
  publicationArgs: z.ZodUnknown;
114
173
  status: z.ZodEnum<{
115
174
  pending: "pending";
@@ -133,6 +192,43 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
133
192
  completedAt: z.ZodOptional<z.ZodNumber>;
134
193
  deadLetteredAt: z.ZodOptional<z.ZodNumber>;
135
194
  expireAt: z.ZodOptional<z.ZodCustom<import("./firestore-primitives.js").FirestoreTimestampLike, import("./firestore-primitives.js").FirestoreTimestampLike>>;
136
- }, z.core.$strict>;
195
+ publicationKind: z.ZodEnum<{
196
+ conversationFile: "conversationFile";
197
+ profilePicture: "profilePicture";
198
+ squarePostMedia: "squarePostMedia";
199
+ workAsset: "workAsset";
200
+ hallCover: "hallCover";
201
+ realmCover: "realmCover";
202
+ auditionMedia: "auditionMedia";
203
+ commissionListingMedia: "commissionListingMedia";
204
+ commissionProposalMedia: "commissionProposalMedia";
205
+ craftSkillMedia: "craftSkillMedia";
206
+ systemVideoSlot: "systemVideoSlot";
207
+ }>;
208
+ fileOrigin: z.ZodEnum<{
209
+ "profile-picture": "profile-picture";
210
+ "craft-skill-media": "craft-skill-media";
211
+ squareStreetz: "squareStreetz";
212
+ "commission-posting": "commission-posting";
213
+ "commission-proposal": "commission-proposal";
214
+ "audition-prompt": "audition-prompt";
215
+ "audition-entry": "audition-entry";
216
+ "audition-curated-option": "audition-curated-option";
217
+ "admin-audition-prompt": "admin-audition-prompt";
218
+ "hallLibrary-cover-square": "hallLibrary-cover-square";
219
+ "hallLibrary-cover-poster": "hallLibrary-cover-poster";
220
+ "hallLibrary-cover-cinematic": "hallLibrary-cover-cinematic";
221
+ "realm-cover": "realm-cover";
222
+ "chapter-photo": "chapter-photo";
223
+ "tune-track-photo": "tune-track-photo";
224
+ "tune-track-audio": "tune-track-audio";
225
+ "television-episode-photo": "television-episode-photo";
226
+ "television-episode-video": "television-episode-video";
227
+ "conversation-file": "conversation-file";
228
+ "work-asset": "work-asset";
229
+ "system-content": "system-content";
230
+ "ncii-evidence": "ncii-evidence";
231
+ }>;
232
+ }, z.core.$strict>], "publicationKind">;
137
233
  export type MediaActivationJob = z.infer<typeof MediaActivationJobSchema>;
138
234
  //# sourceMappingURL=media-activation-jobs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-activation-jobs.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8B1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"media-activation-jobs.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAgCtF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCASnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { StructuredErrorSchema } from '@ttt-productions/edge-protocol-core';
3
3
  import { FileOriginSchema } from '../media/file-origin.js';
4
+ import { HALL_LIBRARY_SUB_ITEM_FILE_ORIGINS } from '../media/hall-library-target-fields.js';
4
5
  import { FirestoreTimestampSchema } from './firestore-primitives.js';
5
6
  import { MediaPublicationKindSchema, MediaServingAuthorityRecordSchema } from './media-assets.js';
6
7
  export const MediaActivationJobStatusSchema = z.enum([
@@ -9,17 +10,15 @@ export const MediaActivationJobStatusSchema = z.enum([
9
10
  'complete',
10
11
  'deadLetter',
11
12
  ]);
12
- export const MediaActivationJobSchema = z
13
+ const MediaActivationJobFieldsSchema = z
13
14
  .object({
14
15
  jobId: z.string().min(1),
15
16
  schemaVersion: z.number().int().positive(),
16
17
  assetId: z.string().min(1),
17
18
  pendingMediaId: z.string().min(1),
18
- fileOrigin: FileOriginSchema,
19
19
  authorityVersion: z.number().int().nonnegative(),
20
20
  payloadHash: z.string().min(1),
21
21
  authorityPayload: MediaServingAuthorityRecordSchema,
22
- publicationKind: MediaPublicationKindSchema,
23
22
  publicationArgs: z.unknown(),
24
23
  status: MediaActivationJobStatusSchema,
25
24
  attemptCount: z.number().int().nonnegative(),
@@ -34,4 +33,14 @@ export const MediaActivationJobSchema = z
34
33
  expireAt: FirestoreTimestampSchema.optional(),
35
34
  })
36
35
  .strict();
36
+ export const MediaActivationJobSchema = z.discriminatedUnion('publicationKind', [
37
+ MediaActivationJobFieldsSchema.extend({
38
+ publicationKind: z.literal('workContentMedia'),
39
+ fileOrigin: FileOriginSchema.extract(HALL_LIBRARY_SUB_ITEM_FILE_ORIGINS),
40
+ }),
41
+ MediaActivationJobFieldsSchema.extend({
42
+ publicationKind: MediaPublicationKindSchema.exclude(['workContentMedia']),
43
+ fileOrigin: FileOriginSchema,
44
+ }),
45
+ ]);
37
46
  //# sourceMappingURL=media-activation-jobs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-activation-jobs.js","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAElG,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,SAAS;IACT,kBAAkB;IAClB,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAE1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,UAAU,EAAE,gBAAgB;IAE5B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,gBAAgB,EAAE,iCAAiC;IAEnD,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAE5B,MAAM,EAAE,8BAA8B;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAE3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAE9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACzD,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { StructuredErrorSchema } from '@ttt-productions/edge-protocol-core';\nimport { FileOriginSchema } from '../media/file-origin.js';\nimport { FirestoreTimestampSchema } from './firestore-primitives.js';\nimport { MediaPublicationKindSchema, MediaServingAuthorityRecordSchema } from './media-assets.js';\n\nexport const MediaActivationJobStatusSchema = z.enum([\n 'pending',\n 'authorityApplied',\n 'complete',\n 'deadLetter',\n]);\nexport type MediaActivationJobStatus = z.infer<typeof MediaActivationJobStatusSchema>;\n\nexport const MediaActivationJobSchema = z\n .object({\n jobId: z.string().min(1),\n schemaVersion: z.number().int().positive(),\n\n assetId: z.string().min(1),\n pendingMediaId: z.string().min(1),\n fileOrigin: FileOriginSchema,\n\n authorityVersion: z.number().int().nonnegative(),\n payloadHash: z.string().min(1),\n authorityPayload: MediaServingAuthorityRecordSchema,\n\n publicationKind: MediaPublicationKindSchema,\n publicationArgs: z.unknown(),\n\n status: MediaActivationJobStatusSchema,\n attemptCount: z.number().int().nonnegative(),\n nextAttemptAt: z.number().int().nonnegative(),\n lastError: StructuredErrorSchema.optional(),\n\n parentKey: z.string().min(1).optional(),\n parentWaitStartedAt: z.number().int().nonnegative().optional(),\n\n createdAt: z.number().int().nonnegative(),\n authorityAppliedAt: z.number().int().nonnegative().optional(),\n completedAt: z.number().int().nonnegative().optional(),\n deadLetteredAt: z.number().int().nonnegative().optional(),\n expireAt: FirestoreTimestampSchema.optional(),\n })\n .strict();\nexport type MediaActivationJob = z.infer<typeof MediaActivationJobSchema>;\n"]}
1
+ {"version":3,"file":"media-activation-jobs.js","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAElG,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,SAAS;IACT,kBAAkB;IAClB,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAGH,MAAM,8BAA8B,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAE1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,gBAAgB,EAAE,iCAAiC;IAEnD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;IAE5B,MAAM,EAAE,8BAA8B;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAE3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAE9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACzD,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;IAC9E,8BAA8B,CAAC,MAAM,CAAC;QACpC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC9C,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;KACzE,CAAC;IACF,8BAA8B,CAAC,MAAM,CAAC;QACpC,eAAe,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACzE,UAAU,EAAE,gBAAgB;KAC7B,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { StructuredErrorSchema } from '@ttt-productions/edge-protocol-core';\nimport { FileOriginSchema } from '../media/file-origin.js';\nimport { HALL_LIBRARY_SUB_ITEM_FILE_ORIGINS } from '../media/hall-library-target-fields.js';\nimport { FirestoreTimestampSchema } from './firestore-primitives.js';\nimport { MediaPublicationKindSchema, MediaServingAuthorityRecordSchema } from './media-assets.js';\n\nexport const MediaActivationJobStatusSchema = z.enum([\n 'pending',\n 'authorityApplied',\n 'complete',\n 'deadLetter',\n]);\nexport type MediaActivationJobStatus = z.infer<typeof MediaActivationJobStatusSchema>;\n\nconst MediaActivationJobFieldsSchema = z\n .object({\n jobId: z.string().min(1),\n schemaVersion: z.number().int().positive(),\n\n assetId: z.string().min(1),\n pendingMediaId: z.string().min(1),\n\n authorityVersion: z.number().int().nonnegative(),\n payloadHash: z.string().min(1),\n authorityPayload: MediaServingAuthorityRecordSchema,\n\n publicationArgs: z.unknown(),\n\n status: MediaActivationJobStatusSchema,\n attemptCount: z.number().int().nonnegative(),\n nextAttemptAt: z.number().int().nonnegative(),\n lastError: StructuredErrorSchema.optional(),\n\n parentKey: z.string().min(1).optional(),\n parentWaitStartedAt: z.number().int().nonnegative().optional(),\n\n createdAt: z.number().int().nonnegative(),\n authorityAppliedAt: z.number().int().nonnegative().optional(),\n completedAt: z.number().int().nonnegative().optional(),\n deadLetteredAt: z.number().int().nonnegative().optional(),\n expireAt: FirestoreTimestampSchema.optional(),\n })\n .strict();\n\nexport const MediaActivationJobSchema = z.discriminatedUnion('publicationKind', [\n MediaActivationJobFieldsSchema.extend({\n publicationKind: z.literal('workContentMedia'),\n fileOrigin: FileOriginSchema.extract(HALL_LIBRARY_SUB_ITEM_FILE_ORIGINS),\n }),\n MediaActivationJobFieldsSchema.extend({\n publicationKind: MediaPublicationKindSchema.exclude(['workContentMedia']),\n fileOrigin: FileOriginSchema,\n }),\n]);\nexport type MediaActivationJob = z.infer<typeof MediaActivationJobSchema>;\n"]}
@@ -56,7 +56,7 @@ export const MediaOriginLineageV1Schema = z
56
56
  originatingUploaderUid: z.string().min(1),
57
57
  originatingUploadEventId: z.string(),
58
58
  originalUploadCreatedAt: z.number(),
59
- // Not `.min(1)`: no hash is computed at finalize, so a fresh asset carries ''.
59
+ // Not `.min(1)`: a lineage can be stored before its content is hashed, as ''.
60
60
  rootSha256: z.string(),
61
61
  originalSha256: z.string().min(1).optional(),
62
62
  // `z.partialRecord`, not `z.record`: in Zod 4 a record over an enum demands every key.
@@ -1 +1 @@
1
- {"version":3,"file":"media-assets.js","sourceRoot":"","sources":["../../src/doc-schemas/media-assets.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { StructuredErrorSchema } from '@ttt-productions/edge-protocol-core';\nimport {\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n VIDEO_POSTER_OUTPUT_KEY,\n} from '@ttt-productions/media-schemas';\nimport { FileOriginSchema } from '../media/file-origin.js';\n\nexport const MediaAccessTierSchema = z.enum(['broad', 'scoped', 'artisan', 'adminOnly']);\nexport type MediaAccessTier = z.infer<typeof MediaAccessTierSchema>;\n\nexport const MediaServingStatusSchema = z.enum(['servable', 'hidden', 'quarantined', 'deleted']);\nexport type MediaServingStatus = z.infer<typeof MediaServingStatusSchema>;\n\nexport const MediaAssetOwnerTypeSchema = z.enum([\n 'userProfile',\n 'craftSkill',\n 'squareStreetzPost',\n 'workProject',\n 'workContent',\n 'hallItem',\n 'commissionListing',\n 'commissionProposal',\n 'audition',\n 'auditionEntry',\n 'conversationFile',\n 'realmFile',\n 'safetyEvidence',\n 'systemContent',\n]);\nexport type MediaAssetOwnerType = z.infer<typeof MediaAssetOwnerTypeSchema>;\n\nexport const ContentMediaKindSchema = z.enum(['image', 'video', 'audio']);\nexport type ContentMediaKind = z.infer<typeof ContentMediaKindSchema>;\n\nexport const MEDIA_VARIANT_KEYS = [\n 'full',\n 'medium',\n 'small',\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n VIDEO_POSTER_OUTPUT_KEY,\n] as const;\nexport const MediaVariantKeySchema = z.enum(MEDIA_VARIANT_KEYS);\nexport type MediaVariantKey = z.infer<typeof MediaVariantKeySchema>;\n\nexport const PROFILE_PICTURE_VARIANT_KEYS = [\n 'full',\n 'medium',\n 'small',\n] as const satisfies readonly MediaVariantKey[];\nexport type ProfilePictureVariantKey = (typeof PROFILE_PICTURE_VARIANT_KEYS)[number];\n\nexport const MEDIA_DISPLAY_VARIANT_PRECEDENCE = [\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n ...PROFILE_PICTURE_VARIANT_KEYS,\n] as const satisfies readonly MediaVariantKey[];\n\nexport const MediaCopyReasonSchema = z.enum([\n 'original',\n 'variant',\n 'hall_publish',\n 'profile_derivative',\n 'moderation_copy',\n 'evidence_copy',\n 'other',\n]);\nexport type MediaCopyReason = z.infer<typeof MediaCopyReasonSchema>;\n\nexport const MediaOriginLineageV1Schema = z\n .object({\n lineageVersion: z.literal(1),\n rootIngestId: z.string().min(1),\n rootAssetId: z.string().min(1),\n sourceAssetId: z.string().min(1).optional(),\n originatingUploaderUid: z.string().min(1),\n originatingUploadEventId: z.string(),\n originalUploadCreatedAt: z.number(),\n // Not `.min(1)`: no hash is computed at finalize, so a fresh asset carries ''.\n rootSha256: z.string(),\n originalSha256: z.string().min(1).optional(),\n // `z.partialRecord`, not `z.record`: in Zod 4 a record over an enum demands every key.\n variantSha256s: z.partialRecord(MediaVariantKeySchema, z.string().min(1)),\n copyReason: MediaCopyReasonSchema,\n createdFromOwnerType: MediaAssetOwnerTypeSchema.optional(),\n createdFromOwnerId: z.string().min(1).optional(),\n copyActorUid: z.string().min(1).optional(),\n currentOwnerType: MediaAssetOwnerTypeSchema,\n currentOwnerId: z.string().min(1),\n })\n .strict();\nexport type MediaOriginLineageV1 = z.infer<typeof MediaOriginLineageV1Schema>;\n\nexport const MediaAssetVariantSchema = z\n .object({\n contentType: z.string().min(1),\n sizeBytes: z.number().int().nonnegative(),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n durationSec: z.number().positive().optional(),\n downloadFilename: z.string().min(1).optional(),\n })\n .strict();\nexport type MediaAssetVariant = z.infer<typeof MediaAssetVariantSchema>;\n\nexport const MediaRetentionPolicySchema = z.enum([\n 'standard',\n 'preserveForTrustAndSafety',\n 'legalHold',\n]);\nexport type MediaRetentionPolicy = z.infer<typeof MediaRetentionPolicySchema>;\n\nexport const REALM_FILE_NONE_STATUS = 'none' as const;\nexport const REALM_FILE_PENDING_APPROVAL_STATUS = 'pendingApproval' as const;\nexport const REALM_FILE_NON_CANON_STATUS = 'nonCanon' as const;\nexport const REALM_FILE_CANON_STATUS = 'canon' as const;\n\nexport const REALM_FILE_CANON_STATUS_VALUES = [\n REALM_FILE_NONE_STATUS,\n REALM_FILE_PENDING_APPROVAL_STATUS,\n REALM_FILE_NON_CANON_STATUS,\n REALM_FILE_CANON_STATUS,\n] as const;\nexport const RealmFileCanonStatusSchema = z.enum(REALM_FILE_CANON_STATUS_VALUES);\nexport type RealmFileCanonStatus = z.infer<typeof RealmFileCanonStatusSchema>;\n\nexport const REALM_FILE_APPROVED_STATUS_VALUES = [\n REALM_FILE_NON_CANON_STATUS,\n REALM_FILE_CANON_STATUS,\n] as const;\nexport const RealmFileApprovedStatusSchema = z.enum(REALM_FILE_APPROVED_STATUS_VALUES);\nexport type RealmFileApprovedStatus = z.infer<typeof RealmFileApprovedStatusSchema>;\n\nexport const RealmFilePendingApprovalStatusSchema = z.literal(REALM_FILE_PENDING_APPROVAL_STATUS);\nexport type RealmFilePendingApprovalStatus = z.infer<typeof RealmFilePendingApprovalStatusSchema>;\n\nexport const REALM_FILE_ACTIVE_STATUS_VALUES = [\n REALM_FILE_PENDING_APPROVAL_STATUS,\n ...REALM_FILE_APPROVED_STATUS_VALUES,\n] as const;\nexport const RealmFileActiveStatusSchema = z.enum(REALM_FILE_ACTIVE_STATUS_VALUES);\nexport type RealmFileActiveStatus = z.infer<typeof RealmFileActiveStatusSchema>;\n\nexport const MediaAuthoritySyncStateSchema = z.enum(['pending', 'applied', 'deadLetter']);\nexport type MediaAuthoritySyncState = z.infer<typeof MediaAuthoritySyncStateSchema>;\n\nexport const MediaAssetPublicationStateSchema = z.enum(['unpublished', 'published', 'retired']);\nexport type MediaAssetPublicationState = z.infer<typeof MediaAssetPublicationStateSchema>;\n\nexport const MediaServingScopeSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('workProject'),\n workProjectId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('workFileFolder'),\n workProjectId: z.string().min(1),\n workFileFolderId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('guildInvite'),\n guildInviteId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('adminSupport'),\n adminDispatchId: z.string().min(1),\n })\n .strict(),\n]);\nexport type MediaServingScope = z.infer<typeof MediaServingScopeSchema>;\n\nexport const MediaPublicationKindSchema = z.enum([\n 'profilePicture',\n 'squarePostMedia',\n 'workAsset',\n 'hallCover',\n 'realmCover',\n 'workContentMedia',\n 'auditionMedia',\n 'commissionListingMedia',\n 'commissionProposalMedia',\n 'craftSkillMedia',\n 'conversationFile',\n 'systemVideoSlot',\n]);\nexport type MediaPublicationKind = z.infer<typeof MediaPublicationKindSchema>;\n\nexport const MediaServingAuthorityRecordSchema = z\n .object({\n schemaVersion: z.number().int().positive(),\n assetId: z.string().min(1),\n authorityVersion: z.number().int().nonnegative(),\n operationId: z.string().min(1),\n payloadHash: z.string().min(1),\n\n servingStatus: MediaServingStatusSchema,\n accessTier: MediaAccessTierSchema,\n\n ownerType: MediaAssetOwnerTypeSchema,\n ownerId: z.string().min(1),\n scope: MediaServingScopeSchema.nullable(),\n\n variants: z.record(z.string(), MediaAssetVariantSchema),\n\n updatedAtMs: z.number(),\n })\n .strict();\nexport type MediaServingAuthorityRecord = z.infer<typeof MediaServingAuthorityRecordSchema>;\n\nexport const MediaAssetRetirementDeferralSchema = z.enum(['held', 'failed']);\nexport type MediaAssetRetirementDeferral = z.infer<typeof MediaAssetRetirementDeferralSchema>;\n\nexport const MediaAssetRetirementSchema = z\n .object({\n requestedAt: z.number().int().nonnegative(),\n pendingVariantKeys: z.array(z.string().min(1)),\n attemptCount: z.number().int().nonnegative(),\n nextAttemptAt: z.number().int().nonnegative(),\n lastDeferral: MediaAssetRetirementDeferralSchema.optional(),\n lastError: StructuredErrorSchema.optional(),\n })\n .strict()\n .superRefine((val, ctx) => {\n if (new Set(val.pendingVariantKeys).size !== val.pendingVariantKeys.length) {\n ctx.addIssue({\n code: 'custom',\n path: ['pendingVariantKeys'],\n message: 'a variant key is owed at most once',\n });\n }\n if (val.lastError !== undefined && val.lastDeferral !== 'failed') {\n ctx.addIssue({\n code: 'custom',\n path: ['lastError'],\n message: 'an error is recorded only for a failed attempt',\n });\n }\n });\nexport type MediaAssetRetirement = z.infer<typeof MediaAssetRetirementSchema>;\n\nexport const MediaAssetSchema = z\n .object({\n mediaAssetId: z.string().min(1),\n mediaKind: ContentMediaKindSchema,\n fileOrigin: FileOriginSchema,\n\n ownerType: MediaAssetOwnerTypeSchema,\n ownerId: z.string().min(1),\n workProjectId: z.string().optional(),\n realmId: z.string().optional(),\n createdByUid: z.string().min(1),\n\n accessTier: MediaAccessTierSchema,\n servingStatus: MediaServingStatusSchema,\n\n variants: z.record(z.string(), MediaAssetVariantSchema),\n\n moderationStatus: z.enum(['approved', 'quarantined']),\n retentionPolicy: MediaRetentionPolicySchema,\n legalHold: z.boolean(),\n originalDeletedAt: z.number().optional(),\n\n originLineage: MediaOriginLineageV1Schema.optional(),\n\n realmFileCanonStatus: RealmFileCanonStatusSchema,\n\n realmFileFolderId: z.string().min(1).optional(),\n\n realmFileShareRequestId: z.string().min(1).optional(),\n realmFileShareRequestedByUid: z.string().min(1).optional(),\n realmFileShareRequestedAt: z.number().optional(),\n\n authorityVersion: z.number().int().nonnegative().optional(),\n authorityPayloadHash: z.string().optional(),\n authoritySyncState: MediaAuthoritySyncStateSchema.optional(),\n publicationState: MediaAssetPublicationStateSchema.optional(),\n scope: MediaServingScopeSchema.optional(),\n authorityAppliedAt: z.number().optional(),\n publishedAt: z.number().optional(),\n lastAuthorityError: StructuredErrorSchema.optional(),\n authoritySyncAttemptCount: z.number().int().nonnegative().optional(),\n authoritySyncNextAttemptAt: z.number().optional(),\n\n retirement: MediaAssetRetirementSchema.optional(),\n\n createdAt: z.number(),\n updatedAt: z.number(),\n })\n .strict()\n .superRefine((val, ctx) => {\n if (val.retirement !== undefined) {\n if (val.servingStatus === 'servable') {\n ctx.addIssue({\n code: 'custom',\n path: ['servingStatus'],\n message: 'an asset owing retirement is never servable',\n });\n }\n if (val.publicationState === 'retired') {\n ctx.addIssue({\n code: 'custom',\n path: ['retirement'],\n message: 'a retired asset owes no retirement',\n });\n }\n for (const key of val.retirement.pendingVariantKeys) {\n if (!Object.prototype.hasOwnProperty.call(val.variants, key)) {\n ctx.addIssue({\n code: 'custom',\n path: ['retirement', 'pendingVariantKeys'],\n message: `${key} is not one of this asset's variants`,\n });\n }\n }\n }\n\n const requestFields = [\n ['realmFileShareRequestId', val.realmFileShareRequestId],\n ['realmFileShareRequestedByUid', val.realmFileShareRequestedByUid],\n ['realmFileShareRequestedAt', val.realmFileShareRequestedAt],\n ] as const;\n\n const forbid = (path: string, value: unknown, message: string) => {\n if (value !== undefined) ctx.addIssue({ code: 'custom', path: [path], message });\n };\n const require_ = (path: string, value: unknown, message: string) => {\n if (value === undefined) ctx.addIssue({ code: 'custom', path: [path], message });\n };\n\n if (val.realmFileCanonStatus === 'none') {\n forbid(\n 'realmId',\n val.realmId,\n 'realmId is only set on a realm-shared or pending asset (realmFileCanonStatus is \"none\")',\n );\n forbid(\n 'realmFileFolderId',\n val.realmFileFolderId,\n 'realmFileFolderId is only set on an APPROVED realm-shared asset (realmFileCanonStatus is \"none\")',\n );\n for (const [path, value] of requestFields) {\n forbid(\n path,\n value,\n `${path} is only set while a promotion request is pending (realmFileCanonStatus is \"none\")`,\n );\n }\n return;\n }\n\n require_(\n 'realmId',\n val.realmId,\n `realmId is required whenever realmFileCanonStatus is \"${val.realmFileCanonStatus}\"`,\n );\n\n if (val.realmFileCanonStatus === 'pendingApproval') {\n forbid(\n 'realmFileFolderId',\n val.realmFileFolderId,\n 'a pending request has no folder yet — the steward assigns the folder AT approval',\n );\n for (const [path, value] of requestFields) {\n require_(\n path,\n value,\n `${path} is required while realmFileCanonStatus is \"pendingApproval\"`,\n );\n }\n return;\n }\n\n require_(\n 'realmFileFolderId',\n val.realmFileFolderId,\n `realmFileFolderId is required on an approved realm file (realmFileCanonStatus is \"${val.realmFileCanonStatus}\")`,\n );\n for (const [path, value] of requestFields) {\n forbid(\n path,\n value,\n `${path} must be cleared once the request is resolved (realmFileCanonStatus is \"${val.realmFileCanonStatus}\")`,\n );\n }\n });\nexport type MediaAsset = z.infer<typeof MediaAssetSchema>;\n\nexport const MediaAssetReapCandidateSchema = z.object({\n mediaAssetId: MediaAssetSchema.shape.mediaAssetId,\n ownerId: MediaAssetSchema.shape.ownerId,\n createdAt: MediaAssetSchema.shape.createdAt,\n publicationState: MediaAssetSchema.shape.publicationState,\n retirement: MediaAssetSchema.shape.retirement,\n});\nexport type MediaAssetReapCandidate = z.infer<typeof MediaAssetReapCandidateSchema>;\n\nexport const MediaAssetHoldFieldsSchema = z.object({\n mediaAssetId: MediaAssetSchema.shape.mediaAssetId,\n originLineage: MediaAssetSchema.shape.originLineage,\n legalHold: MediaAssetSchema.shape.legalHold,\n});\nexport type MediaAssetHoldFields = z.infer<typeof MediaAssetHoldFieldsSchema>;\n\nexport type MediaAssetRetirementStanding = 'absent' | 'retired' | 'owed' | 'none';\n\nexport function mediaAssetRetirementStanding(\n asset: Pick<MediaAsset, 'publicationState' | 'retirement'> | undefined,\n): MediaAssetRetirementStanding {\n if (asset === undefined) return 'absent';\n if (asset.publicationState === 'retired') return 'retired';\n if (asset.retirement !== undefined) return 'owed';\n return 'none';\n}\n\nexport function servingStatusOnRetirementRequest(current: MediaServingStatus): MediaServingStatus {\n return current === 'servable' ? 'hidden' : current;\n}\n\nexport function servingStatusOnRetirementComplete(current: MediaServingStatus): MediaServingStatus {\n return current === 'quarantined' ? 'quarantined' : 'deleted';\n}\n"]}
1
+ {"version":3,"file":"media-assets.js","sourceRoot":"","sources":["../../src/doc-schemas/media-assets.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { StructuredErrorSchema } from '@ttt-productions/edge-protocol-core';\nimport {\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n VIDEO_POSTER_OUTPUT_KEY,\n} from '@ttt-productions/media-schemas';\nimport { FileOriginSchema } from '../media/file-origin.js';\n\nexport const MediaAccessTierSchema = z.enum(['broad', 'scoped', 'artisan', 'adminOnly']);\nexport type MediaAccessTier = z.infer<typeof MediaAccessTierSchema>;\n\nexport const MediaServingStatusSchema = z.enum(['servable', 'hidden', 'quarantined', 'deleted']);\nexport type MediaServingStatus = z.infer<typeof MediaServingStatusSchema>;\n\nexport const MediaAssetOwnerTypeSchema = z.enum([\n 'userProfile',\n 'craftSkill',\n 'squareStreetzPost',\n 'workProject',\n 'workContent',\n 'hallItem',\n 'commissionListing',\n 'commissionProposal',\n 'audition',\n 'auditionEntry',\n 'conversationFile',\n 'realmFile',\n 'safetyEvidence',\n 'systemContent',\n]);\nexport type MediaAssetOwnerType = z.infer<typeof MediaAssetOwnerTypeSchema>;\n\nexport const ContentMediaKindSchema = z.enum(['image', 'video', 'audio']);\nexport type ContentMediaKind = z.infer<typeof ContentMediaKindSchema>;\n\nexport const MEDIA_VARIANT_KEYS = [\n 'full',\n 'medium',\n 'small',\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n VIDEO_POSTER_OUTPUT_KEY,\n] as const;\nexport const MediaVariantKeySchema = z.enum(MEDIA_VARIANT_KEYS);\nexport type MediaVariantKey = z.infer<typeof MediaVariantKeySchema>;\n\nexport const PROFILE_PICTURE_VARIANT_KEYS = [\n 'full',\n 'medium',\n 'small',\n] as const satisfies readonly MediaVariantKey[];\nexport type ProfilePictureVariantKey = (typeof PROFILE_PICTURE_VARIANT_KEYS)[number];\n\nexport const MEDIA_DISPLAY_VARIANT_PRECEDENCE = [\n TIMED_MEDIA_MAIN_OUTPUT_KEY,\n ...PROFILE_PICTURE_VARIANT_KEYS,\n] as const satisfies readonly MediaVariantKey[];\n\nexport const MediaCopyReasonSchema = z.enum([\n 'original',\n 'variant',\n 'hall_publish',\n 'profile_derivative',\n 'moderation_copy',\n 'evidence_copy',\n 'other',\n]);\nexport type MediaCopyReason = z.infer<typeof MediaCopyReasonSchema>;\n\nexport const MediaOriginLineageV1Schema = z\n .object({\n lineageVersion: z.literal(1),\n rootIngestId: z.string().min(1),\n rootAssetId: z.string().min(1),\n sourceAssetId: z.string().min(1).optional(),\n originatingUploaderUid: z.string().min(1),\n originatingUploadEventId: z.string(),\n originalUploadCreatedAt: z.number(),\n // Not `.min(1)`: a lineage can be stored before its content is hashed, as ''.\n rootSha256: z.string(),\n originalSha256: z.string().min(1).optional(),\n // `z.partialRecord`, not `z.record`: in Zod 4 a record over an enum demands every key.\n variantSha256s: z.partialRecord(MediaVariantKeySchema, z.string().min(1)),\n copyReason: MediaCopyReasonSchema,\n createdFromOwnerType: MediaAssetOwnerTypeSchema.optional(),\n createdFromOwnerId: z.string().min(1).optional(),\n copyActorUid: z.string().min(1).optional(),\n currentOwnerType: MediaAssetOwnerTypeSchema,\n currentOwnerId: z.string().min(1),\n })\n .strict();\nexport type MediaOriginLineageV1 = z.infer<typeof MediaOriginLineageV1Schema>;\n\nexport const MediaAssetVariantSchema = z\n .object({\n contentType: z.string().min(1),\n sizeBytes: z.number().int().nonnegative(),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n durationSec: z.number().positive().optional(),\n downloadFilename: z.string().min(1).optional(),\n })\n .strict();\nexport type MediaAssetVariant = z.infer<typeof MediaAssetVariantSchema>;\n\nexport const MediaRetentionPolicySchema = z.enum([\n 'standard',\n 'preserveForTrustAndSafety',\n 'legalHold',\n]);\nexport type MediaRetentionPolicy = z.infer<typeof MediaRetentionPolicySchema>;\n\nexport const REALM_FILE_NONE_STATUS = 'none' as const;\nexport const REALM_FILE_PENDING_APPROVAL_STATUS = 'pendingApproval' as const;\nexport const REALM_FILE_NON_CANON_STATUS = 'nonCanon' as const;\nexport const REALM_FILE_CANON_STATUS = 'canon' as const;\n\nexport const REALM_FILE_CANON_STATUS_VALUES = [\n REALM_FILE_NONE_STATUS,\n REALM_FILE_PENDING_APPROVAL_STATUS,\n REALM_FILE_NON_CANON_STATUS,\n REALM_FILE_CANON_STATUS,\n] as const;\nexport const RealmFileCanonStatusSchema = z.enum(REALM_FILE_CANON_STATUS_VALUES);\nexport type RealmFileCanonStatus = z.infer<typeof RealmFileCanonStatusSchema>;\n\nexport const REALM_FILE_APPROVED_STATUS_VALUES = [\n REALM_FILE_NON_CANON_STATUS,\n REALM_FILE_CANON_STATUS,\n] as const;\nexport const RealmFileApprovedStatusSchema = z.enum(REALM_FILE_APPROVED_STATUS_VALUES);\nexport type RealmFileApprovedStatus = z.infer<typeof RealmFileApprovedStatusSchema>;\n\nexport const RealmFilePendingApprovalStatusSchema = z.literal(REALM_FILE_PENDING_APPROVAL_STATUS);\nexport type RealmFilePendingApprovalStatus = z.infer<typeof RealmFilePendingApprovalStatusSchema>;\n\nexport const REALM_FILE_ACTIVE_STATUS_VALUES = [\n REALM_FILE_PENDING_APPROVAL_STATUS,\n ...REALM_FILE_APPROVED_STATUS_VALUES,\n] as const;\nexport const RealmFileActiveStatusSchema = z.enum(REALM_FILE_ACTIVE_STATUS_VALUES);\nexport type RealmFileActiveStatus = z.infer<typeof RealmFileActiveStatusSchema>;\n\nexport const MediaAuthoritySyncStateSchema = z.enum(['pending', 'applied', 'deadLetter']);\nexport type MediaAuthoritySyncState = z.infer<typeof MediaAuthoritySyncStateSchema>;\n\nexport const MediaAssetPublicationStateSchema = z.enum(['unpublished', 'published', 'retired']);\nexport type MediaAssetPublicationState = z.infer<typeof MediaAssetPublicationStateSchema>;\n\nexport const MediaServingScopeSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('workProject'),\n workProjectId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('workFileFolder'),\n workProjectId: z.string().min(1),\n workFileFolderId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('guildInvite'),\n guildInviteId: z.string().min(1),\n })\n .strict(),\n z\n .object({\n kind: z.literal('adminSupport'),\n adminDispatchId: z.string().min(1),\n })\n .strict(),\n]);\nexport type MediaServingScope = z.infer<typeof MediaServingScopeSchema>;\n\nexport const MediaPublicationKindSchema = z.enum([\n 'profilePicture',\n 'squarePostMedia',\n 'workAsset',\n 'hallCover',\n 'realmCover',\n 'workContentMedia',\n 'auditionMedia',\n 'commissionListingMedia',\n 'commissionProposalMedia',\n 'craftSkillMedia',\n 'conversationFile',\n 'systemVideoSlot',\n]);\nexport type MediaPublicationKind = z.infer<typeof MediaPublicationKindSchema>;\n\nexport const MediaServingAuthorityRecordSchema = z\n .object({\n schemaVersion: z.number().int().positive(),\n assetId: z.string().min(1),\n authorityVersion: z.number().int().nonnegative(),\n operationId: z.string().min(1),\n payloadHash: z.string().min(1),\n\n servingStatus: MediaServingStatusSchema,\n accessTier: MediaAccessTierSchema,\n\n ownerType: MediaAssetOwnerTypeSchema,\n ownerId: z.string().min(1),\n scope: MediaServingScopeSchema.nullable(),\n\n variants: z.record(z.string(), MediaAssetVariantSchema),\n\n updatedAtMs: z.number(),\n })\n .strict();\nexport type MediaServingAuthorityRecord = z.infer<typeof MediaServingAuthorityRecordSchema>;\n\nexport const MediaAssetRetirementDeferralSchema = z.enum(['held', 'failed']);\nexport type MediaAssetRetirementDeferral = z.infer<typeof MediaAssetRetirementDeferralSchema>;\n\nexport const MediaAssetRetirementSchema = z\n .object({\n requestedAt: z.number().int().nonnegative(),\n pendingVariantKeys: z.array(z.string().min(1)),\n attemptCount: z.number().int().nonnegative(),\n nextAttemptAt: z.number().int().nonnegative(),\n lastDeferral: MediaAssetRetirementDeferralSchema.optional(),\n lastError: StructuredErrorSchema.optional(),\n })\n .strict()\n .superRefine((val, ctx) => {\n if (new Set(val.pendingVariantKeys).size !== val.pendingVariantKeys.length) {\n ctx.addIssue({\n code: 'custom',\n path: ['pendingVariantKeys'],\n message: 'a variant key is owed at most once',\n });\n }\n if (val.lastError !== undefined && val.lastDeferral !== 'failed') {\n ctx.addIssue({\n code: 'custom',\n path: ['lastError'],\n message: 'an error is recorded only for a failed attempt',\n });\n }\n });\nexport type MediaAssetRetirement = z.infer<typeof MediaAssetRetirementSchema>;\n\nexport const MediaAssetSchema = z\n .object({\n mediaAssetId: z.string().min(1),\n mediaKind: ContentMediaKindSchema,\n fileOrigin: FileOriginSchema,\n\n ownerType: MediaAssetOwnerTypeSchema,\n ownerId: z.string().min(1),\n workProjectId: z.string().optional(),\n realmId: z.string().optional(),\n createdByUid: z.string().min(1),\n\n accessTier: MediaAccessTierSchema,\n servingStatus: MediaServingStatusSchema,\n\n variants: z.record(z.string(), MediaAssetVariantSchema),\n\n moderationStatus: z.enum(['approved', 'quarantined']),\n retentionPolicy: MediaRetentionPolicySchema,\n legalHold: z.boolean(),\n originalDeletedAt: z.number().optional(),\n\n originLineage: MediaOriginLineageV1Schema.optional(),\n\n realmFileCanonStatus: RealmFileCanonStatusSchema,\n\n realmFileFolderId: z.string().min(1).optional(),\n\n realmFileShareRequestId: z.string().min(1).optional(),\n realmFileShareRequestedByUid: z.string().min(1).optional(),\n realmFileShareRequestedAt: z.number().optional(),\n\n authorityVersion: z.number().int().nonnegative().optional(),\n authorityPayloadHash: z.string().optional(),\n authoritySyncState: MediaAuthoritySyncStateSchema.optional(),\n publicationState: MediaAssetPublicationStateSchema.optional(),\n scope: MediaServingScopeSchema.optional(),\n authorityAppliedAt: z.number().optional(),\n publishedAt: z.number().optional(),\n lastAuthorityError: StructuredErrorSchema.optional(),\n authoritySyncAttemptCount: z.number().int().nonnegative().optional(),\n authoritySyncNextAttemptAt: z.number().optional(),\n\n retirement: MediaAssetRetirementSchema.optional(),\n\n createdAt: z.number(),\n updatedAt: z.number(),\n })\n .strict()\n .superRefine((val, ctx) => {\n if (val.retirement !== undefined) {\n if (val.servingStatus === 'servable') {\n ctx.addIssue({\n code: 'custom',\n path: ['servingStatus'],\n message: 'an asset owing retirement is never servable',\n });\n }\n if (val.publicationState === 'retired') {\n ctx.addIssue({\n code: 'custom',\n path: ['retirement'],\n message: 'a retired asset owes no retirement',\n });\n }\n for (const key of val.retirement.pendingVariantKeys) {\n if (!Object.prototype.hasOwnProperty.call(val.variants, key)) {\n ctx.addIssue({\n code: 'custom',\n path: ['retirement', 'pendingVariantKeys'],\n message: `${key} is not one of this asset's variants`,\n });\n }\n }\n }\n\n const requestFields = [\n ['realmFileShareRequestId', val.realmFileShareRequestId],\n ['realmFileShareRequestedByUid', val.realmFileShareRequestedByUid],\n ['realmFileShareRequestedAt', val.realmFileShareRequestedAt],\n ] as const;\n\n const forbid = (path: string, value: unknown, message: string) => {\n if (value !== undefined) ctx.addIssue({ code: 'custom', path: [path], message });\n };\n const require_ = (path: string, value: unknown, message: string) => {\n if (value === undefined) ctx.addIssue({ code: 'custom', path: [path], message });\n };\n\n if (val.realmFileCanonStatus === 'none') {\n forbid(\n 'realmId',\n val.realmId,\n 'realmId is only set on a realm-shared or pending asset (realmFileCanonStatus is \"none\")',\n );\n forbid(\n 'realmFileFolderId',\n val.realmFileFolderId,\n 'realmFileFolderId is only set on an APPROVED realm-shared asset (realmFileCanonStatus is \"none\")',\n );\n for (const [path, value] of requestFields) {\n forbid(\n path,\n value,\n `${path} is only set while a promotion request is pending (realmFileCanonStatus is \"none\")`,\n );\n }\n return;\n }\n\n require_(\n 'realmId',\n val.realmId,\n `realmId is required whenever realmFileCanonStatus is \"${val.realmFileCanonStatus}\"`,\n );\n\n if (val.realmFileCanonStatus === 'pendingApproval') {\n forbid(\n 'realmFileFolderId',\n val.realmFileFolderId,\n 'a pending request has no folder yet — the steward assigns the folder AT approval',\n );\n for (const [path, value] of requestFields) {\n require_(\n path,\n value,\n `${path} is required while realmFileCanonStatus is \"pendingApproval\"`,\n );\n }\n return;\n }\n\n require_(\n 'realmFileFolderId',\n val.realmFileFolderId,\n `realmFileFolderId is required on an approved realm file (realmFileCanonStatus is \"${val.realmFileCanonStatus}\")`,\n );\n for (const [path, value] of requestFields) {\n forbid(\n path,\n value,\n `${path} must be cleared once the request is resolved (realmFileCanonStatus is \"${val.realmFileCanonStatus}\")`,\n );\n }\n });\nexport type MediaAsset = z.infer<typeof MediaAssetSchema>;\n\nexport const MediaAssetReapCandidateSchema = z.object({\n mediaAssetId: MediaAssetSchema.shape.mediaAssetId,\n ownerId: MediaAssetSchema.shape.ownerId,\n createdAt: MediaAssetSchema.shape.createdAt,\n publicationState: MediaAssetSchema.shape.publicationState,\n retirement: MediaAssetSchema.shape.retirement,\n});\nexport type MediaAssetReapCandidate = z.infer<typeof MediaAssetReapCandidateSchema>;\n\nexport const MediaAssetHoldFieldsSchema = z.object({\n mediaAssetId: MediaAssetSchema.shape.mediaAssetId,\n originLineage: MediaAssetSchema.shape.originLineage,\n legalHold: MediaAssetSchema.shape.legalHold,\n});\nexport type MediaAssetHoldFields = z.infer<typeof MediaAssetHoldFieldsSchema>;\n\nexport type MediaAssetRetirementStanding = 'absent' | 'retired' | 'owed' | 'none';\n\nexport function mediaAssetRetirementStanding(\n asset: Pick<MediaAsset, 'publicationState' | 'retirement'> | undefined,\n): MediaAssetRetirementStanding {\n if (asset === undefined) return 'absent';\n if (asset.publicationState === 'retired') return 'retired';\n if (asset.retirement !== undefined) return 'owed';\n return 'none';\n}\n\nexport function servingStatusOnRetirementRequest(current: MediaServingStatus): MediaServingStatus {\n return current === 'servable' ? 'hidden' : current;\n}\n\nexport function servingStatusOnRetirementComplete(current: MediaServingStatus): MediaServingStatus {\n return current === 'quarantined' ? 'quarantined' : 'deleted';\n}\n"]}