@ttt-productions/ttt-core 0.79.78 → 0.79.80

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 (84) hide show
  1. package/dist/constants/admin-labels.d.ts +12 -3
  2. package/dist/constants/admin-labels.d.ts.map +1 -1
  3. package/dist/constants/admin-labels.js +26 -14
  4. package/dist/constants/admin-labels.js.map +1 -1
  5. package/dist/constants/business-admin.d.ts +9 -0
  6. package/dist/constants/business-admin.d.ts.map +1 -1
  7. package/dist/constants/business-admin.js +9 -0
  8. package/dist/constants/business-admin.js.map +1 -1
  9. package/dist/constants/safety-active-statuses.d.ts +2 -2
  10. package/dist/constants/text-fields.d.ts +23 -0
  11. package/dist/constants/text-fields.d.ts.map +1 -1
  12. package/dist/constants/text-fields.js +6 -1
  13. package/dist/constants/text-fields.js.map +1 -1
  14. package/dist/doc-schemas/chat-sync.d.ts +1 -1
  15. package/dist/doc-schemas/commissions.d.ts +6 -6
  16. package/dist/doc-schemas/content.d.ts +100 -69
  17. package/dist/doc-schemas/content.d.ts.map +1 -1
  18. package/dist/doc-schemas/content.js +41 -22
  19. package/dist/doc-schemas/content.js.map +1 -1
  20. package/dist/doc-schemas/media-assets.d.ts +5 -5
  21. package/dist/doc-schemas/media-copy-intents.d.ts +2 -2
  22. package/dist/doc-schemas/messaging.d.ts +1 -1
  23. package/dist/doc-schemas/moderation.d.ts +6 -6
  24. package/dist/doc-schemas/ncii/cases.d.ts +1 -1
  25. package/dist/doc-schemas/ncii/requests.d.ts +4 -4
  26. package/dist/doc-schemas/notification-archive-all-jobs.d.ts +2 -2
  27. package/dist/doc-schemas/notifications.d.ts +4 -4
  28. package/dist/doc-schemas/operational.d.ts +2 -2
  29. package/dist/doc-schemas/public-documents.d.ts +222 -167
  30. package/dist/doc-schemas/public-documents.d.ts.map +1 -1
  31. package/dist/doc-schemas/public-documents.js +7 -2
  32. package/dist/doc-schemas/public-documents.js.map +1 -1
  33. package/dist/doc-schemas/registry.d.ts +191 -151
  34. package/dist/doc-schemas/registry.d.ts.map +1 -1
  35. package/dist/doc-schemas/report-docs.d.ts +3 -3
  36. package/dist/doc-schemas/safety/case.d.ts +13 -13
  37. package/dist/doc-schemas/safety/evidence.d.ts +4 -4
  38. package/dist/doc-schemas/safety/foundation.d.ts +3 -3
  39. package/dist/doc-schemas/safety/report.d.ts +2 -2
  40. package/dist/doc-schemas/safety/sagas.d.ts +2 -2
  41. package/dist/doc-schemas/social.d.ts +4 -4
  42. package/dist/doc-schemas/square-announcement-jobs.d.ts +6 -6
  43. package/dist/doc-schemas/system-slots.d.ts +8 -1
  44. package/dist/doc-schemas/system-slots.d.ts.map +1 -1
  45. package/dist/doc-schemas/system.d.ts.map +1 -1
  46. package/dist/doc-schemas/system.js +2 -1
  47. package/dist/doc-schemas/system.js.map +1 -1
  48. package/dist/doc-schemas/user.d.ts +8 -8
  49. package/dist/doc-schemas/work-project.d.ts +1 -1
  50. package/dist/media/target-info.d.ts +9 -2
  51. package/dist/media/target-info.d.ts.map +1 -1
  52. package/dist/schemas/admin.d.ts +104 -73
  53. package/dist/schemas/admin.d.ts.map +1 -1
  54. package/dist/schemas/admin.js +48 -21
  55. package/dist/schemas/admin.js.map +1 -1
  56. package/dist/schemas/chat.d.ts +1 -1
  57. package/dist/schemas/commissions.d.ts +1 -1
  58. package/dist/schemas/notification.d.ts +1 -1
  59. package/dist/schemas/public-documents.d.ts +87 -65
  60. package/dist/schemas/public-documents.d.ts.map +1 -1
  61. package/dist/schemas/safety.d.ts +43 -43
  62. package/dist/schemas/users.d.ts +59 -1
  63. package/dist/schemas/users.d.ts.map +1 -1
  64. package/dist/schemas/users.js +36 -0
  65. package/dist/schemas/users.js.map +1 -1
  66. package/dist/schemas/work-project-management.d.ts +8 -8
  67. package/dist/system-slots/system-slots.d.ts +62 -5
  68. package/dist/system-slots/system-slots.d.ts.map +1 -1
  69. package/dist/system-slots/system-slots.js +47 -0
  70. package/dist/system-slots/system-slots.js.map +1 -1
  71. package/dist/types/admin-users.d.ts +1 -10
  72. package/dist/types/admin-users.d.ts.map +1 -1
  73. package/dist/types/admin-users.js.map +1 -1
  74. package/dist/types/content.d.ts +4 -1
  75. package/dist/types/content.d.ts.map +1 -1
  76. package/dist/types/content.js +2 -0
  77. package/dist/types/content.js.map +1 -1
  78. package/dist/upload-variables/upload-system-content-variables.d.ts +8 -1
  79. package/dist/upload-variables/upload-system-content-variables.d.ts.map +1 -1
  80. package/dist/utils/app-config.d.ts +36 -7
  81. package/dist/utils/app-config.d.ts.map +1 -1
  82. package/dist/utils/app-config.js +34 -16
  83. package/dist/utils/app-config.js.map +1 -1
  84. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { GuildChatConversationSchema } from './chat.js';\nimport {\n violationIdSchema,\n taskIdSchema,\n workProjectIdSchema,\n hallItemIdSchema,\n workProjectTypeSchema,\n moderationClearableSurfaceSchema,\n reportTargetItemIdSchema,\n reportTargetParentRefSchema,\n documentIdSegmentSchema,\n reportGroupIdSchema,\n hallSubItemIdSchema,\n workRealmIdSchema,\n userIdSchema,\n safetyCaseIdSchema,\n} from './atoms.js';\nimport {\n ReportDispositionSchema,\n ReportDispositionReasonCodeSchema,\n refineReportDispositionReasonCode,\n refineReportDispositionEvidenceRefs,\n type ReportableItemType,\n} from '../doc-schemas/safety/foundation.js';\nimport {\n ChildSafetyAccountRoleSchema,\n ChildSafetyAccountSubjectDispositionSchema,\n SafetyCaseLaneSchema,\n} from '../doc-schemas/safety/case.js';\nimport {\n ContentMediaKindSchema,\n MediaServingStatusSchema,\n} from '../doc-schemas/media-assets.js';\nimport { MAX_MANIFEST_NCMEC_RECEIPTS } from '../doc-schemas/safety/evidence.js';\nimport { RuleGroupSchema, RuleSubgroupSchema } from '../doc-schemas/content.js';\nimport { AppModeSchema } from '../doc-schemas/system.js';\nimport {\n SystemUidListSlotIdSchema,\n SystemUidSlotIdSchema,\n SystemVideoSlotIdSchema,\n} from '../system-slots/system-slots.js';\nimport {\n MODERATION_CLEARABLE_TEXT_FIELDS,\n HALL_CLEARABLE_TEXT_FIELD_NAMES,\n} from '../constants/business-content.js';\nimport {\n MAX_WORK_PROJECT_TITLE_LENGTH,\n MAX_INTERNAL_REASON_LENGTH,\n MAX_USER_FACING_REASON_LENGTH,\n MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH,\n MAX_CONTENT_PAGE_SECTIONS,\n MAX_DMCA_CONTACT_BLOCKS,\n MAX_DMCA_CONTACT_ROWS,\n MAX_SYSTEM_UID_LIST,\n} from '../constants/business.js';\nimport {\n ACCOUNT_ACTION_REASON_INPUT,\n ACCOUNT_REINSTATE_REASON_INPUT,\n ADMIN_DISPATCH_MESSAGE_INPUT,\n ADMIN_DISPATCH_SUBJECT_INPUT,\n AGREEMENT_POINT_INPUT,\n ANNOUNCEMENT_MESSAGE_INPUT,\n APP_MODE_FLIP_EVIDENCE_INPUT,\n APP_VERSION_INPUT,\n APPEAL_REVIEW_NOTES_INPUT,\n CLEAR_TEXT_REASON_INPUT,\n CLOSE_OUT_ADMIN_NOTE_INPUT,\n CONTENT_PAGE_BODY_INPUT,\n CONTENT_PAGE_HEADING_INPUT,\n DMCA_CONTACT_LABEL_INPUT,\n DMCA_CONTACT_VALUE_INPUT,\n FUTURE_PLAN_DESCRIPTION_INPUT,\n FUTURE_PLAN_TITLE_INPUT,\n HIDE_REASON_INPUT,\n MAINTENANCE_MESSAGE_INPUT,\n MODERATION_ACTION_REASON_INPUT,\n PLATFORM_RULE_DESCRIPTION_INPUT,\n PLATFORM_RULE_TITLE_INPUT,\n RETITLE_REASON_INPUT,\n SAFETY_INTERNAL_REASON_INPUT,\n TAKE_IT_DOWN_COPY_INPUT,\n USER_FACING_REASON_DETAIL_INPUT,\n} from '../constants/text-fields.js';\nimport { textFieldSchema } from './text-field.js';\nimport {\n SAFETY_ACTIONS_CONFIRMATION,\n SAFETY_CASE_REOPEN_CONFIRMATION,\n} from '../constants/safety-confirmation-phrases.js';\n\nexport const CheckoutNextImportantTaskInputSchema = z.object({}).strict();\nexport type CheckoutNextImportantTaskInput = z.infer<typeof CheckoutNextImportantTaskInputSchema>;\n\nexport const GetContentViolationInputSchema = z.object({\n violationId: violationIdSchema,\n}).strict();\nexport type GetContentViolationInput = z.infer<typeof GetContentViolationInputSchema>;\n\n// `taskType` was removed — the server derives it from the task doc; the client copy was\n// ignored (and forgeable). Callers pass only the task id + the extension window.\nexport const MarkWorkLaterInputSchema = z.object({\n taskId: taskIdSchema,\n extendHours: z.union([z.literal(24), z.literal(48)]),\n}).strict();\nexport type MarkWorkLaterInput = z.infer<typeof MarkWorkLaterInputSchema>;\n\n/** The two appeal-review decisions (ONE canonical declaration — shared by the review\n * input and its authoritative result). */\nexport const ContentAppealDecisionSchema = z.enum(['approved', 'denied']);\nexport type ContentAppealDecision = z.infer<typeof ContentAppealDecisionSchema>;\n\nexport const ReviewContentAppealInputSchema = z.object({\n violationId: violationIdSchema,\n taskId: taskIdSchema,\n decision: ContentAppealDecisionSchema,\n adminNotes: textFieldSchema(APPEAL_REVIEW_NOTES_INPUT),\n}).strict();\nexport type ReviewContentAppealInput = z.infer<typeof ReviewContentAppealInputSchema>;\n\n// Authoritative result of reviewContentAppeal. Non-strict (server → client posture).\nexport const ReviewContentAppealResultSchema = z.object({\n success: z.literal(true),\n violationId: violationIdSchema,\n /** Echo of the requested decision (always known — it is the input). */\n decision: ContentAppealDecisionSchema,\n /** The appealing user's uid ('' on the orphaned-task cleanup path, where the\n * underlying violation was already gone and only the stale task was cleared). */\n userId: z.string(),\n /** Operation-receipt audit id — the `admin.contentAppealReviewed` event written in the same\n * transaction. Optional/additive so an older backend that omits it still type-checks. */\n auditEventId: z.string().min(1).optional(),\n});\nexport type ReviewContentAppealResult = z.infer<typeof ReviewContentAppealResultSchema>;\n\n// --- Public-document content inputs ---\n// The Admin editors' strict CONTENT schemas, one per public document. A working copy is saved\n// through `SavePublicDocumentDraftInputSchema` (./public-documents.ts), which pairs each\n// document id with its content schema here; the content is FULL (a version is the whole\n// document, never a partial merge). The client never sends a version — the release publish\n// assigns it.\n\nexport const FuturePlanItemInputSchema = z.object({\n id: z.string().min(1).max(128),\n title: textFieldSchema(FUTURE_PLAN_TITLE_INPUT),\n description: textFieldSchema(FUTURE_PLAN_DESCRIPTION_INPUT),\n order: z.number().int().min(0),\n videoUrl: z.string().url().max(2048).optional(),\n mediaType: z.enum(['video', 'image', 'audio', 'other']).optional(),\n}).strict();\n\nexport const FuturePlansContentInputSchema = z.object({\n plans: z.array(FuturePlanItemInputSchema).max(200),\n}).strict();\nexport type FuturePlansContentInput = z.infer<typeof FuturePlansContentInputSchema>;\n\nexport const PlatformRuleInputSchema = z.object({\n id: z.string().min(1).max(128),\n title: textFieldSchema(PLATFORM_RULE_TITLE_INPUT),\n description: textFieldSchema(PLATFORM_RULE_DESCRIPTION_INPUT),\n videoUrl: z.string().url().max(2048).optional(),\n group: RuleGroupSchema.optional(),\n subgroup: RuleSubgroupSchema.optional(),\n order: z.number().int().min(0),\n}).strict();\n\nexport const AgreementCategoryInputSchema = z.object({\n points: z.array(textFieldSchema(AGREEMENT_POINT_INPUT)).max(200),\n videoUrl: z.string().url().max(2048).optional(),\n}).strict();\n\nexport const AgreementsInputSchema = z.object({\n tales: AgreementCategoryInputSchema.optional(),\n tunes: AgreementCategoryInputSchema.optional(),\n television: AgreementCategoryInputSchema.optional(),\n}).strict();\n\nexport const RulesAndAgreementsContentInputSchema = z.object({\n rules: z.array(PlatformRuleInputSchema).max(500),\n agreements: AgreementsInputSchema,\n}).strict();\nexport type RulesAndAgreementsContentInput = z.infer<typeof RulesAndAgreementsContentInputSchema>;\n\nexport const ContentPageSectionInputSchema = z.object({\n id: z.string().min(1).max(128),\n heading: textFieldSchema(CONTENT_PAGE_HEADING_INPUT),\n level: z.union([z.literal(1), z.literal(2)]),\n // Empty body is LEGAL: a bare divider heading (e.g. terms \"Part 1 — Our\n // Intention\") is real content. The input schema must accept everything the\n // stored ContentPageSectionSchema accepts, or a faithfully-seeded doc becomes\n // unsaveable in the admin editor (found by adversarial review 2026-07-06).\n body: textFieldSchema(CONTENT_PAGE_BODY_INPUT),\n order: z.number().int().min(0),\n}).strict();\n\n/** The Terms of Service and Privacy Policy content (the one long-form legal page shape). */\nexport const LegalPageContentInputSchema = z.object({\n sections: z.array(ContentPageSectionInputSchema).min(1).max(MAX_CONTENT_PAGE_SECTIONS),\n}).strict();\nexport type LegalPageContentInput = z.infer<typeof LegalPageContentInputSchema>;\n\nexport const TakeItDownPageCopyContentInputSchema = z.object({\n strings: z.record(z.string().min(1).max(128), textFieldSchema(TAKE_IT_DOWN_COPY_INPUT)),\n}).strict().refine(\n (data) => {\n const count = Object.keys(data.strings).length;\n return count >= 1 && count <= 200;\n },\n { message: 'strings must contain between 1 and 200 entries.' },\n);\nexport type TakeItDownPageCopyContentInput = z.infer<typeof TakeItDownPageCopyContentInputSchema>;\n\nconst DmcaContactRowInputSchema = z.object({\n id: z.string().min(1).max(128),\n label: textFieldSchema(DMCA_CONTACT_LABEL_INPUT),\n value: textFieldSchema(DMCA_CONTACT_VALUE_INPUT),\n order: z.number().int().min(0),\n}).strict();\n\nconst DmcaContactBlockInputSchema = z.object({\n id: z.string().min(1).max(128),\n heading: textFieldSchema(CONTENT_PAGE_HEADING_INPUT),\n order: z.number().int().min(0),\n rows: z.array(DmcaContactRowInputSchema).min(1).max(MAX_DMCA_CONTACT_ROWS),\n}).strict();\n\n/**\n * The DMCA policy content: the intro line, the labeled contact blocks (at least one — the page\n * exists to name the designated agent), and the long-form process sections.\n */\nexport const DmcaPolicyContentInputSchema = z.object({\n intro: textFieldSchema(CONTENT_PAGE_BODY_INPUT),\n contactBlocks: z.array(DmcaContactBlockInputSchema).min(1).max(MAX_DMCA_CONTACT_BLOCKS),\n sections: z.array(ContentPageSectionInputSchema).max(MAX_CONTENT_PAGE_SECTIONS),\n}).strict();\nexport type DmcaPolicyContentInput = z.infer<typeof DmcaPolicyContentInputSchema>;\n\nconst AppConfigDocIdSchema = z.literal('app');\n\nexport const UpdateAppConfigInputSchema = z.object({\n docId: AppConfigDocIdSchema,\n data: z.object({\n appVersion: textFieldSchema(APP_VERSION_INPUT).optional(),\n maintenanceMode: z.boolean().optional(),\n maintenanceMessage: textFieldSchema(MAINTENANCE_MESSAGE_INPUT).optional(),\n registrationEnabled: z.boolean().optional(),\n // Announcement banner copy; '' clears the banner (empty = nothing renders).\n announcementMessage: textFieldSchema(ANNOUNCEMENT_MESSAGE_INPUT).optional(),\n // Runtime abuse throttle: 0 < m <= 1 (tighten-only; 1 = no throttle).\n rateLimitMultiplier: z.number().gt(0).max(1).optional(),\n }).strict().refine(\n (d) => Object.keys(d).length > 0,\n { message: 'data must have at least one field' },\n ),\n}).strict();\nexport type UpdateAppConfigInput = z.infer<typeof UpdateAppConfigInputSchema>;\n\n// recordAppModeFlip records the deployed app mode; it never sets it, so the only input is the\n// admin's optional milestone evidence.\nexport const RecordAppModeFlipInputSchema = z.object({\n milestoneEvidence: textFieldSchema(APP_MODE_FLIP_EVIDENCE_INPUT).optional(),\n}).strict();\nexport type RecordAppModeFlipInput = z.infer<typeof RecordAppModeFlipInputSchema>;\n\n// What recordAppModeFlip answers: whether this call recorded a change (false when the marker\n// already matched the deployed mode) and the mode before and after. Server → client: non-strict.\nexport const RecordAppModeFlipResultSchema = z.object({\n success: z.literal(true),\n recorded: z.boolean(),\n mode: AppModeSchema,\n previousMode: AppModeSchema.nullable(),\n});\nexport type RecordAppModeFlipResult = z.infer<typeof RecordAppModeFlipResultSchema>;\n\n// --- System slots ---\n\n// clearSystemVideoSlot empties one video slot; the server refuses while the slot's upload is still\n// pending or processing.\nexport const ClearSystemVideoSlotInputSchema = z.object({\n slotId: SystemVideoSlotIdSchema,\n}).strict();\nexport type ClearSystemVideoSlotInput = z.infer<typeof ClearSystemVideoSlotInputSchema>;\n\n// updateSystemUidSlot sets one account slot: a `uid` slot takes one account id (null clears it), a\n// `uidList` slot an ordered list (empty clears it). The value's shape must match the slot's kind.\nexport const UpdateSystemUidSlotInputSchema = z.union([\n z.object({\n slotId: SystemUidSlotIdSchema,\n value: userIdSchema.nullable(),\n }).strict(),\n z.object({\n slotId: SystemUidListSlotIdSchema,\n value: z.array(userIdSchema).max(MAX_SYSTEM_UID_LIST),\n }).strict(),\n]);\nexport type UpdateSystemUidSlotInput = z.infer<typeof UpdateSystemUidSlotInputSchema>;\n\n// --- Admin list mutations ---\n\nconst uidSchema = z.string().min(1).max(128);\n\n/**\n * Wire input for the `updateAdminList` callable in ttt-prod.\n * Used to grant or revoke admin / jrAdmin status on `_systemData/adminList`.\n *\n * All four fields are optional arrays of UIDs. At least one must be non-empty.\n * The callable's core function rejects conflicting input (e.g. same UID in\n * both addAdmins and removeAdmins) with HttpsError invalid-argument.\n */\nexport const UpdateAdminListInputSchema = z.object({\n addAdmins: z.array(uidSchema).optional(),\n removeAdmins: z.array(uidSchema).optional(),\n addJrAdmins: z.array(uidSchema).optional(),\n removeJrAdmins: z.array(uidSchema).optional(),\n})\n .strict()\n .refine(\n (data) =>\n (data.addAdmins?.length ?? 0) +\n (data.removeAdmins?.length ?? 0) +\n (data.addJrAdmins?.length ?? 0) +\n (data.removeJrAdmins?.length ?? 0) >\n 0,\n { message: 'At least one of addAdmins/removeAdmins/addJrAdmins/removeJrAdmins must be non-empty.' },\n );\n\nexport type UpdateAdminListInput = z.infer<typeof UpdateAdminListInputSchema>;\n\n// Authoritative result of updateAdminList — the grant/revoke delta counts computed inside\n// the roster transaction (uids already in their target state are no-ops and not counted).\n// Non-strict (server → client result posture).\nexport const UpdateAdminListResultSchema = z.object({\n success: z.literal(true),\n adminsGranted: z.number().int().nonnegative(),\n adminsRevoked: z.number().int().nonnegative(),\n jrAdminsGranted: z.number().int().nonnegative(),\n jrAdminsRevoked: z.number().int().nonnegative(),\n /** Operation-receipt audit id — the `admin.systemRoleGranted` / `admin.systemRoleRevoked`\n * event(s) key off the same roster transaction. Optional/additive. (No single domain id: a\n * roster edit spans multiple uids, so only the audit id is a meaningful receipt handle.) */\n auditEventId: z.string().min(1).optional(),\n});\nexport type UpdateAdminListResult = z.infer<typeof UpdateAdminListResultSchema>;\n\n// --- Admin moderation: hide / restore / retitle content + Work/Realm objects ---\n\nexport const CheckTrademarkInputSchema = z.object({\n // Primary: the work project's title (franchise-level check).\n workTitle: z.string().min(1).max(MAX_WORK_PROJECT_TITLE_LENGTH),\n // Optional: the sub-item title (chapter, track, episode). Checked secondarily.\n // `.nullish()` (not `.optional()`): the Firebase callable client serializes an\n // undefined argument as JSON null, and the work-view caller passes\n // `subItemTitle: subItem?.title` which is undefined when the sub-item hasn't\n // loaded — that arrives here as null. A bare `.optional()` would 400 on it.\n subItemTitle: z.string().max(MAX_WORK_PROJECT_TITLE_LENGTH).nullish(),\n}).strict();\nexport type CheckTrademarkInput = z.infer<typeof CheckTrademarkInputSchema>;\n\nexport const GetReportedContentDetailInputSchema = z.object({\n reportGroupId: reportGroupIdSchema,\n}).strict();\nexport type GetReportedContentDetailInput = z.infer<typeof GetReportedContentDetailInputSchema>;\n\n// --- getReportedContentDetail result (cross-boundary: produced by the callable in functions/,\n// consumed by the admin report work-view) ---\n\n/** One display-text field of the reported doc, labeled for the review panel. The server returns\n * EVERY configured non-empty text field for the item type (title, description, body, …) in\n * display order — never just the first non-empty one. */\nexport const ReportedTextFieldSchema = z.object({\n /** Raw doc field name (e.g. 'description', 'workingTitle'). */\n field: z.string().min(1),\n /** Human label the panel renders (e.g. 'Description', 'Title'). */\n label: z.string().min(1),\n /** Current live value, trimmed; empty fields are omitted from the array. */\n value: z.string().min(1),\n});\nexport type ReportedTextField = z.infer<typeof ReportedTextFieldSchema>;\n\n/** One media asset referenced by the reported content: id + kind + current serving state\n * (for click-to-reveal) + the server-derived variant key the reveal must request. */\nexport const ReportedMediaAssetSchema = z.object({\n mediaAssetId: z.string().min(1),\n mediaKind: ContentMediaKindSchema.nullable(),\n servingStatus: MediaServingStatusSchema.nullable(),\n /** The variant key the reveal must request for its single display render (image origins split\n * between 'full' and 'main'; video/audio are always 'main'). Null when the asset doc is\n * missing/variant-less. */\n displayVariantKey: z.string().nullable(),\n /** Human label of WHAT this asset is on the reported item (e.g. 'Square cover',\n * 'Track photo — <title>'). Null when the server cannot derive one. */\n label: z.string().nullable(),\n});\nexport type ReportedMediaAsset = z.infer<typeof ReportedMediaAssetSchema>;\n\nexport const GetReportedContentDetailResultSchema = z.object({\n itemType: z.string().min(1),\n reportedItemId: reportTargetItemIdSchema,\n /** First non-empty display-text field (legacy single-field snapshot; textFields is the\n * complete labeled set). */\n textSnapshot: z.string().nullable(),\n textFields: z.array(ReportedTextFieldSchema),\n mediaAssets: z.array(ReportedMediaAssetSchema),\n /** Whether the reported doc is currently hidden (best-effort, doc-flag based). */\n isHidden: z.boolean().nullable(),\n /** The content owner / uploader uid, when derivable. */\n ownerUid: z.string().nullable(),\n /**\n * The canonical moderation-clearable SURFACE this reported doc actually IS, resolved\n * SERVER-side: `chapter` / `tuneTrack` / `televisionEpisode` for a hall sub-item (through\n * `HALL_CONTENT_SURFACES_BY_WORK_TYPE`, from the parent hall doc the callable already reads),\n * `workProject` / `workRealm` for the shells.\n *\n * Why the resolved surface and not the `workProjectType` it was resolved from: the surface is\n * what a consumer needs — `MODERATION_CLEARABLE_TEXT_FIELDS[clearableSurface]` is the exact\n * clearable field set, one canonical index with no re-derivation. Shipping the work-project type\n * instead would make every consumer redo the routing AND the detail-vs-sub-item branch, which is\n * precisely the hand-rolled duplication that map was created to end.\n *\n * What it fixes: the in-flow clear's field picker offered the hall-family UNION\n * (title/description/content) because the projection never said which surface the sub-item was —\n * so an operator could tick `description` on a Tale chapter (title/content) or `content` on a\n * Tune track (title/description), pass the wire refinement, and have the clear runner silently\n * drop it. The picker now offers only this surface's fields, and the resolve path re-checks\n * caller-supplied fields against the same set.\n *\n * `.nullish()`: absent on payloads produced before this field existed, and null when the\n * reported item is not a clearable text surface at all (a square post, a chat message, a\n * profile picture).\n */\n clearableSurface: moderationClearableSurfaceSchema.nullish(),\n /** The FROZEN report-time snapshot (captured at intake), so the operator sees what was\n * reported even if the author edited the live doc to evade. Null for older reports. */\n reportTimeSnapshot: z.object({\n capturedText: z.string().nullable(),\n capturedMediaAssetIds: z.array(z.string()),\n revision: z.number().nullable(),\n capturedAt: z.number().nullable(),\n }).nullable(),\n});\nexport type GetReportedContentDetailResult = z.infer<typeof GetReportedContentDetailResultSchema>;\n\nexport const HideHallSubItemInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideHallSubItemInput = z.infer<typeof HideHallSubItemInputSchema>;\n\nexport const RestoreHallSubItemInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n}).strict();\nexport type RestoreHallSubItemInput = z.infer<typeof RestoreHallSubItemInputSchema>;\n\nexport const HideWorkProjectInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideWorkProjectInput = z.infer<typeof HideWorkProjectInputSchema>;\n\nexport const HideWorkRealmInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideWorkRealmInput = z.infer<typeof HideWorkRealmInputSchema>;\n\n// `cascadeId` is OPTIONAL: the app backends derive all active cascades for the target when it is\n// omitted, and restore just that one cascade when it is supplied.\nexport const RestoreWorkProjectInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n cascadeId: documentIdSegmentSchema.optional(),\n}).strict();\nexport type RestoreWorkProjectInput = z.infer<typeof RestoreWorkProjectInputSchema>;\n\nexport const RestoreWorkRealmInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n cascadeId: documentIdSegmentSchema.optional(),\n}).strict();\nexport type RestoreWorkRealmInput = z.infer<typeof RestoreWorkRealmInputSchema>;\n\n// The `requireWorkProjectRetitle` / `requireWorkRealmRetitle` callables share this base\n// `{ reason }` shape and each `.extend(...)` it with its own id field at parse time.\nexport const RequireRetitleInputSchema = z.object({\n reason: textFieldSchema(RETITLE_REASON_INPUT),\n}).strict();\nexport type RequireRetitleInput = z.infer<typeof RequireRetitleInputSchema>;\n\n// --- Page-level \"Clear text (moderation)\" callables (per-field extension of the retitle family) ---\n\n// The clearable SHELL fields (raw doc field names) for the workProject + workRealm contexts.\n// Derived from the canonical clearable-field map — the two shell surfaces share the same fields.\nconst ModerationShellClearFieldSchema = z.enum(MODERATION_CLEARABLE_TEXT_FIELDS.workProject);\nexport type ModerationShellClearField = z.infer<typeof ModerationShellClearFieldSchema>;\n\nexport const ClearWorkProjectTextInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n fields: z.array(ModerationShellClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearWorkProjectTextInput = z.infer<typeof ClearWorkProjectTextInputSchema>;\n\nexport const ClearWorkRealmTextInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n fields: z.array(ModerationShellClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearWorkRealmTextInput = z.infer<typeof ClearWorkRealmTextInputSchema>;\n\n// The clearable TEXT fields across the whole hall content family — derived from the canonical\n// map (union of every hall surface's fields), never restated literals.\nconst HallClearFieldSchema = z.enum(HALL_CLEARABLE_TEXT_FIELD_NAMES);\nexport type HallClearField = z.infer<typeof HallClearFieldSchema>;\n\nexport const ClearHallContentTextInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema.optional(),\n fields: z.array(HallClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearHallContentTextInput = z.infer<typeof ClearHallContentTextInputSchema>;\n\n// --- getLatestHideCascade — resolve the latest hide-cascade id for a Work/Realm ---\n\nexport const GetLatestHideCascadeInputSchema = z.object({\n entityId: documentIdSegmentSchema,\n targetType: z.enum(['work-project', 'work-realm']),\n}).strict();\nexport type GetLatestHideCascadeInput = z.infer<typeof GetLatestHideCascadeInputSchema>;\n\n// --- moderateReportedContent — hide / restore / soft perma-remove an individual reported item ---\n\n// The single-item content-action target set (SUBSET of ReportableItemType — excludes the\n// close-out-only hall-library-sub-item).\nconst MODERATE_REPORTED_CONTENT_TARGET_TYPES = [\n 'square-streetz-post',\n 'audition',\n 'audition-entry',\n 'commission-listing',\n 'commission-proposal',\n 'work-asset',\n 'profile-picture',\n 'hall-library-item',\n 'craft-skill',\n // Conversation File — the hide/restore/remove action targets the file owner record +\n // its mediaAsset (the `work-asset` shape), never a chat message.\n 'conversation-file',\n] as const satisfies readonly ReportableItemType[];\n\nexport const ModerateReportedContentInputSchema = z.object({\n reportGroupId: reportGroupIdSchema,\n targetType: z.enum(MODERATE_REPORTED_CONTENT_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n action: z.enum(['hide', 'restore', 'remove']),\n // [EUAS-023] A destructive action (hide/remove) MUST carry a reason; restore is a reversal.\n reason: textFieldSchema(MODERATION_ACTION_REASON_INPUT).optional(),\n})\n .strict()\n .superRefine((val, ctx) => {\n if ((val.action === 'hide' || val.action === 'remove') && !val.reason) {\n ctx.addIssue({\n code: 'custom',\n message: 'A reason is required to hide or remove content.',\n path: ['reason'],\n });\n }\n });\nexport type ModerateReportedContentInput = z.infer<typeof ModerateReportedContentInputSchema>;\n\n// --- resolveAdminTask — the ONE guided close-out for EVERY admin case type ---\n\n// [EUAS-005] The content-action target set ALSO accepts hall-library-sub-item (hide/restore only),\n// which routes to the dedicated `runSetHallSubItemHidden` core (not `runModerateReportedContent`).\nconst CONTENT_ACTION_TARGET_TYPES = [\n 'square-streetz-post',\n 'audition',\n 'audition-entry',\n 'commission-listing',\n 'commission-proposal',\n 'work-asset',\n 'profile-picture',\n 'hall-library-item',\n 'craft-skill',\n 'hall-library-sub-item',\n // Conversation File — same content action as `work-asset`, routed at the file record.\n 'conversation-file',\n] as const satisfies readonly ReportableItemType[];\n\nconst ContentActionSchema = z\n .object({\n button: z.enum(['hideContent', 'restoreContent', 'permaRemoveContent']),\n targetType: z.enum(CONTENT_ACTION_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n })\n .strict();\n\nconst WarnUserSchema = z\n .object({\n button: z.literal('warnUser'),\n userId: userIdSchema,\n // A warning IS an admin dispatch (resolveAdminTask → runCreateAdminDispatchToUser),\n // so it shares the dispatch subject/body caps.\n subject: textFieldSchema(ADMIN_DISPATCH_SUBJECT_INPUT),\n message: textFieldSchema(ADMIN_DISPATCH_MESSAGE_INPUT),\n })\n .strict();\n\nconst SuspendOrBanSchema = z\n .object({\n button: z.enum(['suspendUser', 'banUser']),\n userId: userIdSchema,\n reason: textFieldSchema(ACCOUNT_ACTION_REASON_INPUT),\n })\n .strict();\n\nconst ReinstateUserSchema = z\n .object({ button: z.literal('reinstateUser'), userId: userIdSchema, reason: textFieldSchema(ACCOUNT_REINSTATE_REASON_INPUT).optional() })\n .strict();\n\nconst ForceUsernameResetSchema = z\n .object({ button: z.literal('forceUsernameReset'), userId: userIdSchema, reason: textFieldSchema(ACCOUNT_ACTION_REASON_INPUT).optional() })\n .strict();\n\n/** Whole-object Work/Realm remedies — `reportedItemId` is the workProjectId / workRealmId. */\nconst WorkObjectActionSchema = z\n .object({\n button: z.enum(['hideWorkObject', 'restoreWorkObject', 'forceRetitle']),\n targetType: z.enum(['work-project', 'work-realm']),\n reportedItemId: reportTargetItemIdSchema,\n })\n .strict();\n\n// --- The in-flow clear-content disposition (staged counterpart of the page-level clear-text\n// callables) ---\n\n/** The three targets the in-flow text clear can neutralize — the Work/Realm shells plus a single\n * published hall sub-item. Compile-linked subset of the canonical reportable-item enum. */\nconst CLEAR_CONTENT_TEXT_TARGET_TYPES = [\n 'work-project',\n 'work-realm',\n 'hall-library-sub-item',\n] as const satisfies readonly ReportableItemType[];\nexport type ClearContentTextTargetType = (typeof CLEAR_CONTENT_TEXT_TARGET_TYPES)[number];\n\n/** Every field name the staged clear can carry across those three targets — the union of the two\n * canonical clearable owners (`MODERATION_CLEARABLE_TEXT_FIELDS` for the shells,\n * `HALL_CLEARABLE_TEXT_FIELD_NAMES` for the hall family), i.e. the same two sources\n * `ClearWorkProjectTextInputSchema` / `ClearHallContentTextInputSchema` derive from. No field\n * literal is restated here. */\nconst CLEAR_CONTENT_TEXT_FIELDS = [\n ...MODERATION_CLEARABLE_TEXT_FIELDS.workProject,\n ...HALL_CLEARABLE_TEXT_FIELD_NAMES,\n] as const;\nconst ClearContentTextFieldSchema = z.enum(CLEAR_CONTENT_TEXT_FIELDS);\nexport type ClearContentTextField = z.infer<typeof ClearContentTextFieldSchema>;\n\n/** Which fields each target legally accepts — projected from those same owners, so a\n * target/field mismatch is refused at the wire instead of reaching a clear runner that would\n * drop it. Enforced by the cross-field refinement on `StagedActionSchema` below. */\nconst CLEAR_CONTENT_TEXT_FIELDS_BY_TARGET = {\n 'work-project': MODERATION_CLEARABLE_TEXT_FIELDS.workProject,\n 'work-realm': MODERATION_CLEARABLE_TEXT_FIELDS.workRealm,\n 'hall-library-sub-item': HALL_CLEARABLE_TEXT_FIELD_NAMES,\n} as const satisfies Record<ClearContentTextTargetType, readonly ClearContentTextField[]>;\n\n/** Per-field text clear — the guided close-out's staged counterpart of the page-level\n * `clearWorkProjectText` / `clearWorkRealmText` / `clearHallContentText` callables (the\n * per-field extension of `forceRetitle`). `reportedItemId` is the workProjectId / workRealmId /\n * sub-item id; `parentItemId` is the parent hall item id, required only for the sub-item target.\n * `workProjectType` is deliberately NOT on the wire — the server re-reads it from the doc (the\n * hall hide-branch precedent). */\nconst ClearContentTextActionSchema = z\n .object({\n button: z.literal('clearContentText'),\n targetType: z.enum(CLEAR_CONTENT_TEXT_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n fields: z.array(ClearContentTextFieldSchema).min(1),\n })\n .strict();\n\n/** Chat message tombstone — channel + seq from the report, revision from the live thread-read. */\nconst TombstoneChatSchema = z\n .object({\n button: z.literal('tombstoneChat'),\n channel: GuildChatConversationSchema,\n messageSeq: z.number().int().nonnegative(),\n expectedMessageRevision: z.number().int().nonnegative(),\n })\n .strict();\n\nexport const StagedActionSchema = z\n .discriminatedUnion('button', [\n ContentActionSchema,\n WarnUserSchema,\n SuspendOrBanSchema,\n ReinstateUserSchema,\n ForceUsernameResetSchema,\n WorkObjectActionSchema,\n ClearContentTextActionSchema,\n TombstoneChatSchema,\n ])\n // The clearContentText arm's two cross-field rules, applied at the union (the\n // SafetyStagedActionSchema pattern below) because no other arm carries these fields:\n // every chosen field must belong to the chosen target's canonical clearable set, and the\n // hall sub-item target must name its parent hall item.\n .superRefine((value, ctx) => {\n if (value.button !== 'clearContentText') return;\n const clearable: readonly string[] = CLEAR_CONTENT_TEXT_FIELDS_BY_TARGET[value.targetType];\n value.fields.forEach((field, index) => {\n if (!clearable.includes(field)) {\n ctx.addIssue({\n code: 'custom',\n message: `Field '${field}' is not clearable on a '${value.targetType}' target.`,\n path: ['fields', index],\n });\n }\n });\n if (value.targetType === 'hall-library-sub-item' && !value.parentItemId) {\n ctx.addIssue({\n code: 'custom',\n message: 'parentItemId (the parent hall item id) is required for a hall sub-item target.',\n path: ['parentItemId'],\n });\n }\n });\nexport type StagedAction = z.infer<typeof StagedActionSchema>;\n\nexport const NormalReportInputSchema = z\n .object({\n caseType: z.literal('normalReport').default('normalReport'),\n taskId: taskIdSchema,\n outcome: z.enum(['founded', 'unfounded']),\n resolutionSummary: z.string().trim().min(1).max(MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH),\n actions: z.array(StagedActionSchema).max(16).default([]),\n userFacingReasonCode: z.string().trim().min(1).max(128).optional(),\n userFacingReasonDetail: textFieldSchema(USER_FACING_REASON_DETAIL_INPUT).optional(),\n adminNote: textFieldSchema(CLOSE_OUT_ADMIN_NOTE_INPUT).optional(),\n })\n .strict();\nexport type ResolveAdminTaskInput = z.infer<typeof NormalReportInputSchema>;\n\nconst SafetyDispositionActionSchema = z\n .object({\n button: z.literal('setReportDisposition'),\n // Derived from the ONE canonical disposition enum — 'undetermined' is the initial\n // state, never an operator-settable target, so it is excluded (not re-declared).\n disposition: ReportDispositionSchema.exclude(['undetermined']),\n dispositionReasonCode: ReportDispositionReasonCodeSchema,\n // Derived from the ONE receipts-cap constant (doc-schemas/safety/evidence.ts) — the same\n // bound the callable + the embedded SetReportDispositionInputV1Schema use. No field-level min:\n // the reportRequired⇒non-empty rule lives in the shared cross-field refinement below, so every\n // other disposition may legally stage this action with no evidence revealed.\n evidenceRefs: z.array(z.string().min(1)).max(MAX_MANIFEST_NCMEC_RECEIPTS),\n expectedRevision: z.number().int().nonnegative(),\n })\n .strict();\n\nconst QuarantineActionSchema = z.object({ button: z.literal('quarantinePreserveFile') }).strict();\n\n// [C-01/EUAS-002] No client-supplied requestId — the linked statutory request id(s) are derived\n// SERVER-SIDE from the case's `requestLinks` inside `enqueueNciiRemovalForCase`.\nconst HashRemoveActionSchema = z.object({ button: z.literal('hashRemoveFile') }).strict();\n\nconst SafetyAccountActionSchema = z\n .object({\n button: z.enum(['suspendUser', 'banUser', 'reinstateUser']),\n targetUid: userIdSchema,\n reasonInternal: textFieldSchema(SAFETY_INTERNAL_REASON_INPUT),\n reasonUserFacing: z.string().trim().min(1).max(MAX_USER_FACING_REASON_LENGTH),\n role: ChildSafetyAccountRoleSchema,\n subjectDisposition: ChildSafetyAccountSubjectDispositionSchema,\n })\n .strict();\n\nexport const SafetyStagedActionSchema = z\n .discriminatedUnion('button', [\n SafetyDispositionActionSchema,\n QuarantineActionSchema,\n HashRemoveActionSchema,\n SafetyAccountActionSchema,\n ])\n // The setReportDisposition arm reuses the ONE canonical cross-field rules (foundation.ts) via the\n // shared refinements — never re-declaring them here: the disposition↔reason pairing AND the\n // reportRequired⇒evidence-present rule. Other arms carry no such fields.\n .superRefine((value, ctx) => {\n if (value.button === 'setReportDisposition') {\n refineReportDispositionReasonCode(value, ctx);\n refineReportDispositionEvidenceRefs(value, ctx);\n }\n });\nexport type SafetyStagedAction = z.infer<typeof SafetyStagedActionSchema>;\n\nexport const SafetyCaseInputSchema = z\n .object({\n caseType: SafetyCaseLaneSchema,\n caseId: safetyCaseIdSchema,\n outcome: z.enum(['founded', 'unfounded']),\n resolutionSummary: z.string().trim().min(1).max(MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH),\n actions: z.array(SafetyStagedActionSchema).max(16).default([]),\n adminNote: textFieldSchema(CLOSE_OUT_ADMIN_NOTE_INPUT).optional(),\n // [EUAS-017] Optimistic-concurrency token (`childSafetyCaseList.revision` / `nciiCases.revision`).\n // The close is rejected if the case changed since the operator loaded it — concurrent stale closes\n // can't silently overwrite. Optional for backward compatibility; the console always supplies it.\n expectedRevision: z.number().int().nonnegative().optional(),\n // Interim reauth: a single explicit typed confirmation for the privileged safety actions,\n // standing in for the passkey two-step until [H-17]. The callable is full-admin gated.\n confirmation: z.literal(SAFETY_ACTIONS_CONFIRMATION),\n })\n .strict();\nexport type SafetyCaseInput = z.infer<typeof SafetyCaseInputSchema>;\n\nexport const ReopenSafetyCaseInputSchema = z\n .object({\n caseType: SafetyCaseLaneSchema,\n caseId: safetyCaseIdSchema,\n reasonInternal: textFieldSchema(SAFETY_INTERNAL_REASON_INPUT),\n expectedRevision: z.number().int().nonnegative().optional(),\n confirmation: z.literal(SAFETY_CASE_REOPEN_CONFIRMATION),\n })\n .strict();\nexport type ReopenSafetyCaseInput = z.infer<typeof ReopenSafetyCaseInputSchema>;\n\n// ---------------------------------------------------------------------------\n// Dead-letter operations — adminReplayDeadLetter + getDeadLetters (Ops Repairs).\n// ---------------------------------------------------------------------------\n\n/** Every ledger the dead-letter replay callable supports. */\nexport const DeadLetterCollectionSchema = z.enum([\n 'chatSyncEvents',\n 'chatAdminActionCommands',\n 'notificationDeliveries',\n 'chatMessageOutbox',\n 'squareAnnouncementJobs',\n 'chatSyncFanoutJobs',\n 'mediaAssets',\n 'quarantineSagaJobs',\n 'nciiRemovalJobs',\n 'safetyEvidenceJobs',\n 'accountActionCommands',\n 'activeReportGroups',\n 'hallSubItemEdgeSync',\n 'chatParkedDeliveries',\n]);\nexport type DeadLetterCollection = z.infer<typeof DeadLetterCollectionSchema>;\n\n/** Every replay lane whose target is a flat top-level document. */\nexport const FlatDeadLetterCollectionSchema = DeadLetterCollectionSchema.exclude(['hallSubItemEdgeSync']);\nexport type FlatDeadLetterCollection = z.infer<typeof FlatDeadLetterCollectionSchema>;\n\n/**\n * Canonical identity for a published Hall sub-item edge-sync replay target. The work type derives\n * the only valid nested collection through PATH_BUILDERS.hallItemSubItem; callers never submit a\n * Firestore path or collection segment.\n */\nexport const HallSubItemEdgeSyncReplayTargetSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n}).strict();\nexport type HallSubItemEdgeSyncReplayTarget = z.infer<typeof HallSubItemEdgeSyncReplayTargetSchema>;\n\nexport const AdminReplayDeadLetterInputSchema = z\n .discriminatedUnion('collection', [\n z.object({\n collection: FlatDeadLetterCollectionSchema,\n docId: documentIdSegmentSchema.max(200),\n reason: z.string().min(1).max(MAX_INTERNAL_REASON_LENGTH),\n dryRun: z.boolean().optional(),\n }).strict(),\n z.object({\n collection: z.literal('hallSubItemEdgeSync'),\n ...HallSubItemEdgeSyncReplayTargetSchema.shape,\n reason: z.string().min(1).max(MAX_INTERNAL_REASON_LENGTH),\n dryRun: z.boolean().optional(),\n }).strict(),\n ]);\nexport type AdminReplayDeadLetterInput = z.infer<typeof AdminReplayDeadLetterInputSchema>;\n\nexport const GetDeadLettersInputSchema = z\n .object({\n /** Restrict to one listable flat ledger; absent = all listable flat ledgers. */\n collection: FlatDeadLetterCollectionSchema.optional(),\n /** Per-ledger row cap (the callable's own ceiling applies regardless). */\n limit: z.number().int().min(1).max(200).optional(),\n })\n .strict()\n .nullish();\nexport type GetDeadLettersInput = z.infer<typeof GetDeadLettersInputSchema>;\n\n\n"]}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/schemas/admin.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { GuildChatConversationSchema } from './chat.js';\nimport {\n violationIdSchema,\n taskIdSchema,\n workProjectIdSchema,\n hallItemIdSchema,\n workProjectTypeSchema,\n moderationClearableSurfaceSchema,\n reportTargetItemIdSchema,\n reportTargetParentRefSchema,\n documentIdSegmentSchema,\n reportGroupIdSchema,\n hallSubItemIdSchema,\n workRealmIdSchema,\n userIdSchema,\n safetyCaseIdSchema,\n} from './atoms.js';\nimport {\n ReportDispositionSchema,\n ReportDispositionReasonCodeSchema,\n refineReportDispositionReasonCode,\n refineReportDispositionEvidenceRefs,\n type ReportableItemType,\n} from '../doc-schemas/safety/foundation.js';\nimport {\n ChildSafetyAccountRoleSchema,\n ChildSafetyAccountSubjectDispositionSchema,\n SafetyCaseLaneSchema,\n} from '../doc-schemas/safety/case.js';\nimport {\n ContentMediaKindSchema,\n MediaServingStatusSchema,\n} from '../doc-schemas/media-assets.js';\nimport { MAX_MANIFEST_NCMEC_RECEIPTS } from '../doc-schemas/safety/evidence.js';\nimport { RuleGroupSchema } from '../doc-schemas/content.js';\nimport { HALL_WING_TYPE_KEYS, WORK_PROJECT_TYPE_KEYS } from '../types/content.js';\nimport { AppModeSchema } from '../doc-schemas/system.js';\nimport {\n SystemUidListSlotIdSchema,\n SystemUidSlotIdSchema,\n SystemVideoSlotIdSchema,\n} from '../system-slots/system-slots.js';\nimport {\n MODERATION_CLEARABLE_TEXT_FIELDS,\n HALL_CLEARABLE_TEXT_FIELD_NAMES,\n} from '../constants/business-content.js';\nimport {\n MAX_WORK_PROJECT_TITLE_LENGTH,\n MAX_INTERNAL_REASON_LENGTH,\n MAX_USER_FACING_REASON_LENGTH,\n MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH,\n MAX_CONTENT_PAGE_SECTIONS,\n MAX_DMCA_CONTACT_BLOCKS,\n MAX_DMCA_CONTACT_ROWS,\n MAX_SYSTEM_UID_LIST,\n MAX_FUTURE_PLAN_GROUPS,\n MAX_FUTURE_PLANS,\n MAX_PLATFORM_RULES,\n MAX_AGREEMENT_POINTS,\n} from '../constants/business.js';\nimport {\n ACCOUNT_ACTION_REASON_INPUT,\n ACCOUNT_REINSTATE_REASON_INPUT,\n ADMIN_DISPATCH_MESSAGE_INPUT,\n ADMIN_DISPATCH_SUBJECT_INPUT,\n AGREEMENT_POINT_INPUT,\n ANNOUNCEMENT_MESSAGE_INPUT,\n APP_MODE_FLIP_EVIDENCE_INPUT,\n APP_VERSION_INPUT,\n APPEAL_REVIEW_NOTES_INPUT,\n CLEAR_TEXT_REASON_INPUT,\n CLOSE_OUT_ADMIN_NOTE_INPUT,\n CONTENT_PAGE_BODY_INPUT,\n CONTENT_PAGE_HEADING_INPUT,\n DMCA_CONTACT_LABEL_INPUT,\n DMCA_CONTACT_VALUE_INPUT,\n FUTURE_PLAN_DESCRIPTION_INPUT,\n FUTURE_PLAN_GROUP_NAME_INPUT,\n FUTURE_PLAN_TITLE_INPUT,\n HIDE_REASON_INPUT,\n MAINTENANCE_MESSAGE_INPUT,\n MODERATION_ACTION_REASON_INPUT,\n PLATFORM_RULE_DESCRIPTION_INPUT,\n PLATFORM_RULE_TITLE_INPUT,\n PUBLIC_DOCUMENT_INTENTION_INPUT,\n PUBLIC_DOCUMENT_INTRO_INPUT,\n RETITLE_REASON_INPUT,\n SAFETY_INTERNAL_REASON_INPUT,\n TAKE_IT_DOWN_COPY_INPUT,\n USER_FACING_REASON_DETAIL_INPUT,\n} from '../constants/text-fields.js';\nimport { textFieldSchema } from './text-field.js';\nimport {\n SAFETY_ACTIONS_CONFIRMATION,\n SAFETY_CASE_REOPEN_CONFIRMATION,\n} from '../constants/safety-confirmation-phrases.js';\n\nexport const CheckoutNextImportantTaskInputSchema = z.object({}).strict();\nexport type CheckoutNextImportantTaskInput = z.infer<typeof CheckoutNextImportantTaskInputSchema>;\n\nexport const GetContentViolationInputSchema = z.object({\n violationId: violationIdSchema,\n}).strict();\nexport type GetContentViolationInput = z.infer<typeof GetContentViolationInputSchema>;\n\n// `taskType` was removed — the server derives it from the task doc; the client copy was\n// ignored (and forgeable). Callers pass only the task id + the extension window.\nexport const MarkWorkLaterInputSchema = z.object({\n taskId: taskIdSchema,\n extendHours: z.union([z.literal(24), z.literal(48)]),\n}).strict();\nexport type MarkWorkLaterInput = z.infer<typeof MarkWorkLaterInputSchema>;\n\n/** The two appeal-review decisions (ONE canonical declaration — shared by the review\n * input and its authoritative result). */\nexport const ContentAppealDecisionSchema = z.enum(['approved', 'denied']);\nexport type ContentAppealDecision = z.infer<typeof ContentAppealDecisionSchema>;\n\nexport const ReviewContentAppealInputSchema = z.object({\n violationId: violationIdSchema,\n taskId: taskIdSchema,\n decision: ContentAppealDecisionSchema,\n adminNotes: textFieldSchema(APPEAL_REVIEW_NOTES_INPUT),\n}).strict();\nexport type ReviewContentAppealInput = z.infer<typeof ReviewContentAppealInputSchema>;\n\n// Authoritative result of reviewContentAppeal. Non-strict (server → client posture).\nexport const ReviewContentAppealResultSchema = z.object({\n success: z.literal(true),\n violationId: violationIdSchema,\n /** Echo of the requested decision (always known — it is the input). */\n decision: ContentAppealDecisionSchema,\n /** The appealing user's uid ('' on the orphaned-task cleanup path, where the\n * underlying violation was already gone and only the stale task was cleared). */\n userId: z.string(),\n /** Operation-receipt audit id — the `admin.contentAppealReviewed` event written in the same\n * transaction. Optional/additive so an older backend that omits it still type-checks. */\n auditEventId: z.string().min(1).optional(),\n});\nexport type ReviewContentAppealResult = z.infer<typeof ReviewContentAppealResultSchema>;\n\n// --- Public-document content inputs ---\n// The Admin editors' strict CONTENT schemas, one per public document. A working copy is saved\n// through `SavePublicDocumentDraftInputSchema` (./public-documents.ts), which pairs each\n// document id with its content schema here; the content is FULL (a version is the whole\n// document, never a partial merge). The client never sends a version — the release publish\n// assigns it.\n\nconst publicDocumentItemIdSchema = z.string().min(1).max(128);\nconst publicDocumentIntroSchema = textFieldSchema(PUBLIC_DOCUMENT_INTRO_INPUT).optional();\nconst publicDocumentIntentionSchema = textFieldSchema(PUBLIC_DOCUMENT_INTENTION_INPUT).optional();\nconst appliesToTypeInputFields = {\n workProjectType: z.enum(WORK_PROJECT_TYPE_KEYS).optional(),\n hallWingType: z.enum(HALL_WING_TYPE_KEYS).optional(),\n};\n\nexport const FuturePlanGroupInputSchema = z.object({\n id: publicDocumentItemIdSchema,\n name: textFieldSchema(FUTURE_PLAN_GROUP_NAME_INPUT),\n order: z.number().int().min(0),\n intention: publicDocumentIntentionSchema,\n}).strict();\n\nexport const FuturePlanItemInputSchema = z.object({\n id: publicDocumentItemIdSchema,\n title: textFieldSchema(FUTURE_PLAN_TITLE_INPUT),\n description: textFieldSchema(FUTURE_PLAN_DESCRIPTION_INPUT),\n groupId: publicDocumentItemIdSchema,\n order: z.number().int().min(0),\n}).strict();\n\nexport const FuturePlansContentInputSchema = z.object({\n intro: publicDocumentIntroSchema,\n groups: z.array(FuturePlanGroupInputSchema).max(MAX_FUTURE_PLAN_GROUPS),\n plans: z.array(FuturePlanItemInputSchema).max(MAX_FUTURE_PLANS),\n}).strict().superRefine((content, ctx) => {\n // A plan whose group is missing would never render, so every plan names a group the document holds.\n const groupIds = new Set(content.groups.map((group) => group.id));\n if (groupIds.size !== content.groups.length) {\n ctx.addIssue({ code: 'custom', path: ['groups'], message: 'Each group needs its own id.' });\n }\n content.plans.forEach((plan, index) => {\n if (!groupIds.has(plan.groupId)) {\n ctx.addIssue({ code: 'custom', path: ['plans', index, 'groupId'], message: 'Every plan belongs to one of the groups.' });\n }\n });\n});\nexport type FuturePlansContentInput = z.infer<typeof FuturePlansContentInputSchema>;\n\nexport const PlatformRuleInputSchema = z.object({\n id: publicDocumentItemIdSchema,\n title: textFieldSchema(PLATFORM_RULE_TITLE_INPUT),\n description: textFieldSchema(PLATFORM_RULE_DESCRIPTION_INPUT),\n group: RuleGroupSchema,\n ...appliesToTypeInputFields,\n order: z.number().int().min(0),\n}).strict();\n\nexport const AgreementPointInputSchema = z.object({\n id: publicDocumentItemIdSchema,\n text: textFieldSchema(AGREEMENT_POINT_INPUT),\n ...appliesToTypeInputFields,\n}).strict();\n\nexport const ArtisanAgreementsInputSchema = z.object({\n intention: publicDocumentIntentionSchema,\n points: z.array(AgreementPointInputSchema).max(MAX_AGREEMENT_POINTS),\n}).strict();\n\nexport const RulesAndAgreementsContentInputSchema = z.object({\n intro: publicDocumentIntroSchema,\n groupIntentions: z.partialRecord(RuleGroupSchema, textFieldSchema(PUBLIC_DOCUMENT_INTENTION_INPUT)).optional(),\n rules: z.array(PlatformRuleInputSchema).max(MAX_PLATFORM_RULES),\n agreements: ArtisanAgreementsInputSchema,\n}).strict();\nexport type RulesAndAgreementsContentInput = z.infer<typeof RulesAndAgreementsContentInputSchema>;\n\nexport const ContentPageSectionInputSchema = z.object({\n id: z.string().min(1).max(128),\n heading: textFieldSchema(CONTENT_PAGE_HEADING_INPUT),\n level: z.union([z.literal(1), z.literal(2)]),\n // Empty body is LEGAL: a bare divider heading (e.g. terms \"Part 1 — Our\n // Intention\") is real content. The input schema must accept everything the\n // stored ContentPageSectionSchema accepts, or a faithfully-seeded doc becomes\n // unsaveable in the admin editor (found by adversarial review 2026-07-06).\n body: textFieldSchema(CONTENT_PAGE_BODY_INPUT),\n order: z.number().int().min(0),\n}).strict();\n\n/** The Terms of Service and Privacy Policy content (the one long-form legal page shape). */\nexport const LegalPageContentInputSchema = z.object({\n sections: z.array(ContentPageSectionInputSchema).min(1).max(MAX_CONTENT_PAGE_SECTIONS),\n}).strict();\nexport type LegalPageContentInput = z.infer<typeof LegalPageContentInputSchema>;\n\nexport const TakeItDownPageCopyContentInputSchema = z.object({\n strings: z.record(z.string().min(1).max(128), textFieldSchema(TAKE_IT_DOWN_COPY_INPUT)),\n}).strict().refine(\n (data) => {\n const count = Object.keys(data.strings).length;\n return count >= 1 && count <= 200;\n },\n { message: 'strings must contain between 1 and 200 entries.' },\n);\nexport type TakeItDownPageCopyContentInput = z.infer<typeof TakeItDownPageCopyContentInputSchema>;\n\nconst DmcaContactRowInputSchema = z.object({\n id: z.string().min(1).max(128),\n label: textFieldSchema(DMCA_CONTACT_LABEL_INPUT),\n value: textFieldSchema(DMCA_CONTACT_VALUE_INPUT),\n order: z.number().int().min(0),\n}).strict();\n\nconst DmcaContactBlockInputSchema = z.object({\n id: z.string().min(1).max(128),\n heading: textFieldSchema(CONTENT_PAGE_HEADING_INPUT),\n order: z.number().int().min(0),\n rows: z.array(DmcaContactRowInputSchema).min(1).max(MAX_DMCA_CONTACT_ROWS),\n}).strict();\n\n/**\n * The DMCA policy content: the intro line, the labeled contact blocks (at least one — the page\n * exists to name the designated agent), and the long-form process sections.\n */\nexport const DmcaPolicyContentInputSchema = z.object({\n intro: textFieldSchema(CONTENT_PAGE_BODY_INPUT),\n contactBlocks: z.array(DmcaContactBlockInputSchema).min(1).max(MAX_DMCA_CONTACT_BLOCKS),\n sections: z.array(ContentPageSectionInputSchema).max(MAX_CONTENT_PAGE_SECTIONS),\n}).strict();\nexport type DmcaPolicyContentInput = z.infer<typeof DmcaPolicyContentInputSchema>;\n\nconst AppConfigDocIdSchema = z.literal('app');\n\nexport const UpdateAppConfigInputSchema = z.object({\n docId: AppConfigDocIdSchema,\n data: z.object({\n appVersion: textFieldSchema(APP_VERSION_INPUT).optional(),\n maintenanceMode: z.boolean().optional(),\n maintenanceMessage: textFieldSchema(MAINTENANCE_MESSAGE_INPUT).optional(),\n registrationEnabled: z.boolean().optional(),\n // Announcement banner copy; '' clears the banner (empty = nothing renders).\n announcementMessage: textFieldSchema(ANNOUNCEMENT_MESSAGE_INPUT).optional(),\n // Runtime abuse throttle: 0 < m <= 1 (tighten-only; 1 = no throttle).\n rateLimitMultiplier: z.number().gt(0).max(1).optional(),\n }).strict().refine(\n (d) => Object.keys(d).length > 0,\n { message: 'data must have at least one field' },\n ),\n}).strict();\nexport type UpdateAppConfigInput = z.infer<typeof UpdateAppConfigInputSchema>;\n\n// recordAppModeFlip records the deployed app mode; it never sets it, so the only input is the\n// admin's optional milestone evidence.\nexport const RecordAppModeFlipInputSchema = z.object({\n milestoneEvidence: textFieldSchema(APP_MODE_FLIP_EVIDENCE_INPUT).optional(),\n}).strict();\nexport type RecordAppModeFlipInput = z.infer<typeof RecordAppModeFlipInputSchema>;\n\n// What recordAppModeFlip answers: whether this call recorded a change (false when the marker\n// already matched the deployed mode) and the mode before and after. Server → client: non-strict.\nexport const RecordAppModeFlipResultSchema = z.object({\n success: z.literal(true),\n recorded: z.boolean(),\n mode: AppModeSchema,\n previousMode: AppModeSchema.nullable(),\n});\nexport type RecordAppModeFlipResult = z.infer<typeof RecordAppModeFlipResultSchema>;\n\n// --- System slots ---\n\n// clearSystemVideoSlot empties one video slot; the server refuses while the slot's upload is still\n// pending or processing.\nexport const ClearSystemVideoSlotInputSchema = z.object({\n slotId: SystemVideoSlotIdSchema,\n}).strict();\nexport type ClearSystemVideoSlotInput = z.infer<typeof ClearSystemVideoSlotInputSchema>;\n\n// updateSystemUidSlot sets one account slot: a `uid` slot takes one account id (null clears it), a\n// `uidList` slot an ordered list (empty clears it). The value's shape must match the slot's kind.\nexport const UpdateSystemUidSlotInputSchema = z.union([\n z.object({\n slotId: SystemUidSlotIdSchema,\n value: userIdSchema.nullable(),\n }).strict(),\n z.object({\n slotId: SystemUidListSlotIdSchema,\n value: z.array(userIdSchema).max(MAX_SYSTEM_UID_LIST),\n }).strict(),\n]);\nexport type UpdateSystemUidSlotInput = z.infer<typeof UpdateSystemUidSlotInputSchema>;\n\n// --- Admin list mutations ---\n\nconst uidSchema = z.string().min(1).max(128);\n\n/**\n * Wire input for the `updateAdminList` callable in ttt-prod.\n * Used to grant or revoke admin / jrAdmin status on `_systemData/adminList`.\n *\n * All four fields are optional arrays of UIDs. At least one must be non-empty.\n * The callable's core function rejects conflicting input (e.g. same UID in\n * both addAdmins and removeAdmins) with HttpsError invalid-argument.\n */\nexport const UpdateAdminListInputSchema = z.object({\n addAdmins: z.array(uidSchema).optional(),\n removeAdmins: z.array(uidSchema).optional(),\n addJrAdmins: z.array(uidSchema).optional(),\n removeJrAdmins: z.array(uidSchema).optional(),\n})\n .strict()\n .refine(\n (data) =>\n (data.addAdmins?.length ?? 0) +\n (data.removeAdmins?.length ?? 0) +\n (data.addJrAdmins?.length ?? 0) +\n (data.removeJrAdmins?.length ?? 0) >\n 0,\n { message: 'At least one of addAdmins/removeAdmins/addJrAdmins/removeJrAdmins must be non-empty.' },\n );\n\nexport type UpdateAdminListInput = z.infer<typeof UpdateAdminListInputSchema>;\n\n// Authoritative result of updateAdminList — the grant/revoke delta counts computed inside\n// the roster transaction (uids already in their target state are no-ops and not counted).\n// Non-strict (server → client result posture).\nexport const UpdateAdminListResultSchema = z.object({\n success: z.literal(true),\n adminsGranted: z.number().int().nonnegative(),\n adminsRevoked: z.number().int().nonnegative(),\n jrAdminsGranted: z.number().int().nonnegative(),\n jrAdminsRevoked: z.number().int().nonnegative(),\n /** Operation-receipt audit id — the `admin.systemRoleGranted` / `admin.systemRoleRevoked`\n * event(s) key off the same roster transaction. Optional/additive. (No single domain id: a\n * roster edit spans multiple uids, so only the audit id is a meaningful receipt handle.) */\n auditEventId: z.string().min(1).optional(),\n});\nexport type UpdateAdminListResult = z.infer<typeof UpdateAdminListResultSchema>;\n\n// --- Admin moderation: hide / restore / retitle content + Work/Realm objects ---\n\nexport const CheckTrademarkInputSchema = z.object({\n // Primary: the work project's title (franchise-level check).\n workTitle: z.string().min(1).max(MAX_WORK_PROJECT_TITLE_LENGTH),\n // Optional: the sub-item title (chapter, track, episode). Checked secondarily.\n // `.nullish()` (not `.optional()`): the Firebase callable client serializes an\n // undefined argument as JSON null, and the work-view caller passes\n // `subItemTitle: subItem?.title` which is undefined when the sub-item hasn't\n // loaded — that arrives here as null. A bare `.optional()` would 400 on it.\n subItemTitle: z.string().max(MAX_WORK_PROJECT_TITLE_LENGTH).nullish(),\n}).strict();\nexport type CheckTrademarkInput = z.infer<typeof CheckTrademarkInputSchema>;\n\nexport const GetReportedContentDetailInputSchema = z.object({\n reportGroupId: reportGroupIdSchema,\n}).strict();\nexport type GetReportedContentDetailInput = z.infer<typeof GetReportedContentDetailInputSchema>;\n\n// --- getReportedContentDetail result (cross-boundary: produced by the callable in functions/,\n// consumed by the admin report work-view) ---\n\n/** One display-text field of the reported doc, labeled for the review panel. The server returns\n * EVERY configured non-empty text field for the item type (title, description, body, …) in\n * display order — never just the first non-empty one. */\nexport const ReportedTextFieldSchema = z.object({\n /** Raw doc field name (e.g. 'description', 'workingTitle'). */\n field: z.string().min(1),\n /** Human label the panel renders (e.g. 'Description', 'Title'). */\n label: z.string().min(1),\n /** Current live value, trimmed; empty fields are omitted from the array. */\n value: z.string().min(1),\n});\nexport type ReportedTextField = z.infer<typeof ReportedTextFieldSchema>;\n\n/** One media asset referenced by the reported content: id + kind + current serving state\n * (for click-to-reveal) + the server-derived variant key the reveal must request. */\nexport const ReportedMediaAssetSchema = z.object({\n mediaAssetId: z.string().min(1),\n mediaKind: ContentMediaKindSchema.nullable(),\n servingStatus: MediaServingStatusSchema.nullable(),\n /** The variant key the reveal must request for its single display render (image origins split\n * between 'full' and 'main'; video/audio are always 'main'). Null when the asset doc is\n * missing/variant-less. */\n displayVariantKey: z.string().nullable(),\n /** Human label of WHAT this asset is on the reported item (e.g. 'Square cover',\n * 'Track photo — <title>'). Null when the server cannot derive one. */\n label: z.string().nullable(),\n});\nexport type ReportedMediaAsset = z.infer<typeof ReportedMediaAssetSchema>;\n\nexport const GetReportedContentDetailResultSchema = z.object({\n itemType: z.string().min(1),\n reportedItemId: reportTargetItemIdSchema,\n /** First non-empty display-text field (legacy single-field snapshot; textFields is the\n * complete labeled set). */\n textSnapshot: z.string().nullable(),\n textFields: z.array(ReportedTextFieldSchema),\n mediaAssets: z.array(ReportedMediaAssetSchema),\n /** Whether the reported doc is currently hidden (best-effort, doc-flag based). */\n isHidden: z.boolean().nullable(),\n /** The content owner / uploader uid, when derivable. */\n ownerUid: z.string().nullable(),\n /**\n * The canonical moderation-clearable SURFACE this reported doc actually IS, resolved\n * SERVER-side: `chapter` / `tuneTrack` / `televisionEpisode` for a hall sub-item (through\n * `HALL_CONTENT_SURFACES_BY_WORK_TYPE`, from the parent hall doc the callable already reads),\n * `workProject` / `workRealm` for the shells.\n *\n * Why the resolved surface and not the `workProjectType` it was resolved from: the surface is\n * what a consumer needs — `MODERATION_CLEARABLE_TEXT_FIELDS[clearableSurface]` is the exact\n * clearable field set, one canonical index with no re-derivation. Shipping the work-project type\n * instead would make every consumer redo the routing AND the detail-vs-sub-item branch, which is\n * precisely the hand-rolled duplication that map was created to end.\n *\n * What it fixes: the in-flow clear's field picker offered the hall-family UNION\n * (title/description/content) because the projection never said which surface the sub-item was —\n * so an operator could tick `description` on a Tale chapter (title/content) or `content` on a\n * Tune track (title/description), pass the wire refinement, and have the clear runner silently\n * drop it. The picker now offers only this surface's fields, and the resolve path re-checks\n * caller-supplied fields against the same set.\n *\n * `.nullish()`: absent on payloads produced before this field existed, and null when the\n * reported item is not a clearable text surface at all (a square post, a chat message, a\n * profile picture).\n */\n clearableSurface: moderationClearableSurfaceSchema.nullish(),\n /** The FROZEN report-time snapshot (captured at intake), so the operator sees what was\n * reported even if the author edited the live doc to evade. Null for older reports. */\n reportTimeSnapshot: z.object({\n capturedText: z.string().nullable(),\n capturedMediaAssetIds: z.array(z.string()),\n revision: z.number().nullable(),\n capturedAt: z.number().nullable(),\n }).nullable(),\n});\nexport type GetReportedContentDetailResult = z.infer<typeof GetReportedContentDetailResultSchema>;\n\nexport const HideHallSubItemInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideHallSubItemInput = z.infer<typeof HideHallSubItemInputSchema>;\n\nexport const RestoreHallSubItemInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n}).strict();\nexport type RestoreHallSubItemInput = z.infer<typeof RestoreHallSubItemInputSchema>;\n\nexport const HideWorkProjectInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideWorkProjectInput = z.infer<typeof HideWorkProjectInputSchema>;\n\nexport const HideWorkRealmInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n reason: textFieldSchema(HIDE_REASON_INPUT),\n}).strict();\nexport type HideWorkRealmInput = z.infer<typeof HideWorkRealmInputSchema>;\n\n// `cascadeId` is OPTIONAL: the app backends derive all active cascades for the target when it is\n// omitted, and restore just that one cascade when it is supplied.\nexport const RestoreWorkProjectInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n cascadeId: documentIdSegmentSchema.optional(),\n}).strict();\nexport type RestoreWorkProjectInput = z.infer<typeof RestoreWorkProjectInputSchema>;\n\nexport const RestoreWorkRealmInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n cascadeId: documentIdSegmentSchema.optional(),\n}).strict();\nexport type RestoreWorkRealmInput = z.infer<typeof RestoreWorkRealmInputSchema>;\n\n// The `requireWorkProjectRetitle` / `requireWorkRealmRetitle` callables share this base\n// `{ reason }` shape and each `.extend(...)` it with its own id field at parse time.\nexport const RequireRetitleInputSchema = z.object({\n reason: textFieldSchema(RETITLE_REASON_INPUT),\n}).strict();\nexport type RequireRetitleInput = z.infer<typeof RequireRetitleInputSchema>;\n\n// --- Page-level \"Clear text (moderation)\" callables (per-field extension of the retitle family) ---\n\n// The clearable SHELL fields (raw doc field names) for the workProject + workRealm contexts.\n// Derived from the canonical clearable-field map — the two shell surfaces share the same fields.\nconst ModerationShellClearFieldSchema = z.enum(MODERATION_CLEARABLE_TEXT_FIELDS.workProject);\nexport type ModerationShellClearField = z.infer<typeof ModerationShellClearFieldSchema>;\n\nexport const ClearWorkProjectTextInputSchema = z.object({\n workProjectId: workProjectIdSchema,\n fields: z.array(ModerationShellClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearWorkProjectTextInput = z.infer<typeof ClearWorkProjectTextInputSchema>;\n\nexport const ClearWorkRealmTextInputSchema = z.object({\n workRealmId: workRealmIdSchema,\n fields: z.array(ModerationShellClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearWorkRealmTextInput = z.infer<typeof ClearWorkRealmTextInputSchema>;\n\n// The clearable TEXT fields across the whole hall content family — derived from the canonical\n// map (union of every hall surface's fields), never restated literals.\nconst HallClearFieldSchema = z.enum(HALL_CLEARABLE_TEXT_FIELD_NAMES);\nexport type HallClearField = z.infer<typeof HallClearFieldSchema>;\n\nexport const ClearHallContentTextInputSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema.optional(),\n fields: z.array(HallClearFieldSchema).min(1),\n reason: textFieldSchema(CLEAR_TEXT_REASON_INPUT),\n}).strict();\nexport type ClearHallContentTextInput = z.infer<typeof ClearHallContentTextInputSchema>;\n\n// --- getLatestHideCascade — resolve the latest hide-cascade id for a Work/Realm ---\n\nexport const GetLatestHideCascadeInputSchema = z.object({\n entityId: documentIdSegmentSchema,\n targetType: z.enum(['work-project', 'work-realm']),\n}).strict();\nexport type GetLatestHideCascadeInput = z.infer<typeof GetLatestHideCascadeInputSchema>;\n\n// --- moderateReportedContent — hide / restore / soft perma-remove an individual reported item ---\n\n// The single-item content-action target set (SUBSET of ReportableItemType — excludes the\n// close-out-only hall-library-sub-item).\nconst MODERATE_REPORTED_CONTENT_TARGET_TYPES = [\n 'square-streetz-post',\n 'audition',\n 'audition-entry',\n 'commission-listing',\n 'commission-proposal',\n 'work-asset',\n 'profile-picture',\n 'hall-library-item',\n 'craft-skill',\n // Conversation File — the hide/restore/remove action targets the file owner record +\n // its mediaAsset (the `work-asset` shape), never a chat message.\n 'conversation-file',\n] as const satisfies readonly ReportableItemType[];\n\nexport const ModerateReportedContentInputSchema = z.object({\n reportGroupId: reportGroupIdSchema,\n targetType: z.enum(MODERATE_REPORTED_CONTENT_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n action: z.enum(['hide', 'restore', 'remove']),\n // [EUAS-023] A destructive action (hide/remove) MUST carry a reason; restore is a reversal.\n reason: textFieldSchema(MODERATION_ACTION_REASON_INPUT).optional(),\n})\n .strict()\n .superRefine((val, ctx) => {\n if ((val.action === 'hide' || val.action === 'remove') && !val.reason) {\n ctx.addIssue({\n code: 'custom',\n message: 'A reason is required to hide or remove content.',\n path: ['reason'],\n });\n }\n });\nexport type ModerateReportedContentInput = z.infer<typeof ModerateReportedContentInputSchema>;\n\n// --- resolveAdminTask — the ONE guided close-out for EVERY admin case type ---\n\n// [EUAS-005] The content-action target set ALSO accepts hall-library-sub-item (hide/restore only),\n// which routes to the dedicated `runSetHallSubItemHidden` core (not `runModerateReportedContent`).\nconst CONTENT_ACTION_TARGET_TYPES = [\n 'square-streetz-post',\n 'audition',\n 'audition-entry',\n 'commission-listing',\n 'commission-proposal',\n 'work-asset',\n 'profile-picture',\n 'hall-library-item',\n 'craft-skill',\n 'hall-library-sub-item',\n // Conversation File — same content action as `work-asset`, routed at the file record.\n 'conversation-file',\n] as const satisfies readonly ReportableItemType[];\n\nconst ContentActionSchema = z\n .object({\n button: z.enum(['hideContent', 'restoreContent', 'permaRemoveContent']),\n targetType: z.enum(CONTENT_ACTION_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n })\n .strict();\n\nconst WarnUserSchema = z\n .object({\n button: z.literal('warnUser'),\n userId: userIdSchema,\n // A warning IS an admin dispatch (resolveAdminTask → runCreateAdminDispatchToUser),\n // so it shares the dispatch subject/body caps.\n subject: textFieldSchema(ADMIN_DISPATCH_SUBJECT_INPUT),\n message: textFieldSchema(ADMIN_DISPATCH_MESSAGE_INPUT),\n })\n .strict();\n\nconst SuspendOrBanSchema = z\n .object({\n button: z.enum(['suspendUser', 'banUser']),\n userId: userIdSchema,\n reason: textFieldSchema(ACCOUNT_ACTION_REASON_INPUT),\n })\n .strict();\n\nconst ReinstateUserSchema = z\n .object({ button: z.literal('reinstateUser'), userId: userIdSchema, reason: textFieldSchema(ACCOUNT_REINSTATE_REASON_INPUT).optional() })\n .strict();\n\nconst ForceUsernameResetSchema = z\n .object({ button: z.literal('forceUsernameReset'), userId: userIdSchema, reason: textFieldSchema(ACCOUNT_ACTION_REASON_INPUT).optional() })\n .strict();\n\n/** Whole-object Work/Realm remedies — `reportedItemId` is the workProjectId / workRealmId. */\nconst WorkObjectActionSchema = z\n .object({\n button: z.enum(['hideWorkObject', 'restoreWorkObject', 'forceRetitle']),\n targetType: z.enum(['work-project', 'work-realm']),\n reportedItemId: reportTargetItemIdSchema,\n })\n .strict();\n\n// --- The in-flow clear-content disposition (staged counterpart of the page-level clear-text\n// callables) ---\n\n/** The three targets the in-flow text clear can neutralize — the Work/Realm shells plus a single\n * published hall sub-item. Compile-linked subset of the canonical reportable-item enum. */\nconst CLEAR_CONTENT_TEXT_TARGET_TYPES = [\n 'work-project',\n 'work-realm',\n 'hall-library-sub-item',\n] as const satisfies readonly ReportableItemType[];\nexport type ClearContentTextTargetType = (typeof CLEAR_CONTENT_TEXT_TARGET_TYPES)[number];\n\n/** Every field name the staged clear can carry across those three targets — the union of the two\n * canonical clearable owners (`MODERATION_CLEARABLE_TEXT_FIELDS` for the shells,\n * `HALL_CLEARABLE_TEXT_FIELD_NAMES` for the hall family), i.e. the same two sources\n * `ClearWorkProjectTextInputSchema` / `ClearHallContentTextInputSchema` derive from. No field\n * literal is restated here. */\nconst CLEAR_CONTENT_TEXT_FIELDS = [\n ...MODERATION_CLEARABLE_TEXT_FIELDS.workProject,\n ...HALL_CLEARABLE_TEXT_FIELD_NAMES,\n] as const;\nconst ClearContentTextFieldSchema = z.enum(CLEAR_CONTENT_TEXT_FIELDS);\nexport type ClearContentTextField = z.infer<typeof ClearContentTextFieldSchema>;\n\n/** Which fields each target legally accepts — projected from those same owners, so a\n * target/field mismatch is refused at the wire instead of reaching a clear runner that would\n * drop it. Enforced by the cross-field refinement on `StagedActionSchema` below. */\nconst CLEAR_CONTENT_TEXT_FIELDS_BY_TARGET = {\n 'work-project': MODERATION_CLEARABLE_TEXT_FIELDS.workProject,\n 'work-realm': MODERATION_CLEARABLE_TEXT_FIELDS.workRealm,\n 'hall-library-sub-item': HALL_CLEARABLE_TEXT_FIELD_NAMES,\n} as const satisfies Record<ClearContentTextTargetType, readonly ClearContentTextField[]>;\n\n/** Per-field text clear — the guided close-out's staged counterpart of the page-level\n * `clearWorkProjectText` / `clearWorkRealmText` / `clearHallContentText` callables (the\n * per-field extension of `forceRetitle`). `reportedItemId` is the workProjectId / workRealmId /\n * sub-item id; `parentItemId` is the parent hall item id, required only for the sub-item target.\n * `workProjectType` is deliberately NOT on the wire — the server re-reads it from the doc (the\n * hall hide-branch precedent). */\nconst ClearContentTextActionSchema = z\n .object({\n button: z.literal('clearContentText'),\n targetType: z.enum(CLEAR_CONTENT_TEXT_TARGET_TYPES),\n reportedItemId: reportTargetItemIdSchema,\n parentItemId: reportTargetParentRefSchema.optional(),\n fields: z.array(ClearContentTextFieldSchema).min(1),\n })\n .strict();\n\n/** Chat message tombstone — channel + seq from the report, revision from the live thread-read. */\nconst TombstoneChatSchema = z\n .object({\n button: z.literal('tombstoneChat'),\n channel: GuildChatConversationSchema,\n messageSeq: z.number().int().nonnegative(),\n expectedMessageRevision: z.number().int().nonnegative(),\n })\n .strict();\n\nexport const StagedActionSchema = z\n .discriminatedUnion('button', [\n ContentActionSchema,\n WarnUserSchema,\n SuspendOrBanSchema,\n ReinstateUserSchema,\n ForceUsernameResetSchema,\n WorkObjectActionSchema,\n ClearContentTextActionSchema,\n TombstoneChatSchema,\n ])\n // The clearContentText arm's two cross-field rules, applied at the union (the\n // SafetyStagedActionSchema pattern below) because no other arm carries these fields:\n // every chosen field must belong to the chosen target's canonical clearable set, and the\n // hall sub-item target must name its parent hall item.\n .superRefine((value, ctx) => {\n if (value.button !== 'clearContentText') return;\n const clearable: readonly string[] = CLEAR_CONTENT_TEXT_FIELDS_BY_TARGET[value.targetType];\n value.fields.forEach((field, index) => {\n if (!clearable.includes(field)) {\n ctx.addIssue({\n code: 'custom',\n message: `Field '${field}' is not clearable on a '${value.targetType}' target.`,\n path: ['fields', index],\n });\n }\n });\n if (value.targetType === 'hall-library-sub-item' && !value.parentItemId) {\n ctx.addIssue({\n code: 'custom',\n message: 'parentItemId (the parent hall item id) is required for a hall sub-item target.',\n path: ['parentItemId'],\n });\n }\n });\nexport type StagedAction = z.infer<typeof StagedActionSchema>;\n\nexport const NormalReportInputSchema = z\n .object({\n caseType: z.literal('normalReport').default('normalReport'),\n taskId: taskIdSchema,\n outcome: z.enum(['founded', 'unfounded']),\n resolutionSummary: z.string().trim().min(1).max(MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH),\n actions: z.array(StagedActionSchema).max(16).default([]),\n userFacingReasonCode: z.string().trim().min(1).max(128).optional(),\n userFacingReasonDetail: textFieldSchema(USER_FACING_REASON_DETAIL_INPUT).optional(),\n adminNote: textFieldSchema(CLOSE_OUT_ADMIN_NOTE_INPUT).optional(),\n })\n .strict();\nexport type ResolveAdminTaskInput = z.infer<typeof NormalReportInputSchema>;\n\nconst SafetyDispositionActionSchema = z\n .object({\n button: z.literal('setReportDisposition'),\n // Derived from the ONE canonical disposition enum — 'undetermined' is the initial\n // state, never an operator-settable target, so it is excluded (not re-declared).\n disposition: ReportDispositionSchema.exclude(['undetermined']),\n dispositionReasonCode: ReportDispositionReasonCodeSchema,\n // Derived from the ONE receipts-cap constant (doc-schemas/safety/evidence.ts) — the same\n // bound the callable + the embedded SetReportDispositionInputV1Schema use. No field-level min:\n // the reportRequired⇒non-empty rule lives in the shared cross-field refinement below, so every\n // other disposition may legally stage this action with no evidence revealed.\n evidenceRefs: z.array(z.string().min(1)).max(MAX_MANIFEST_NCMEC_RECEIPTS),\n expectedRevision: z.number().int().nonnegative(),\n })\n .strict();\n\nconst QuarantineActionSchema = z.object({ button: z.literal('quarantinePreserveFile') }).strict();\n\n// [C-01/EUAS-002] No client-supplied requestId — the linked statutory request id(s) are derived\n// SERVER-SIDE from the case's `requestLinks` inside `enqueueNciiRemovalForCase`.\nconst HashRemoveActionSchema = z.object({ button: z.literal('hashRemoveFile') }).strict();\n\nconst SafetyAccountActionSchema = z\n .object({\n button: z.enum(['suspendUser', 'banUser', 'reinstateUser']),\n targetUid: userIdSchema,\n reasonInternal: textFieldSchema(SAFETY_INTERNAL_REASON_INPUT),\n reasonUserFacing: z.string().trim().min(1).max(MAX_USER_FACING_REASON_LENGTH),\n role: ChildSafetyAccountRoleSchema,\n subjectDisposition: ChildSafetyAccountSubjectDispositionSchema,\n })\n .strict();\n\nexport const SafetyStagedActionSchema = z\n .discriminatedUnion('button', [\n SafetyDispositionActionSchema,\n QuarantineActionSchema,\n HashRemoveActionSchema,\n SafetyAccountActionSchema,\n ])\n // The setReportDisposition arm reuses the ONE canonical cross-field rules (foundation.ts) via the\n // shared refinements — never re-declaring them here: the disposition↔reason pairing AND the\n // reportRequired⇒evidence-present rule. Other arms carry no such fields.\n .superRefine((value, ctx) => {\n if (value.button === 'setReportDisposition') {\n refineReportDispositionReasonCode(value, ctx);\n refineReportDispositionEvidenceRefs(value, ctx);\n }\n });\nexport type SafetyStagedAction = z.infer<typeof SafetyStagedActionSchema>;\n\nexport const SafetyCaseInputSchema = z\n .object({\n caseType: SafetyCaseLaneSchema,\n caseId: safetyCaseIdSchema,\n outcome: z.enum(['founded', 'unfounded']),\n resolutionSummary: z.string().trim().min(1).max(MAX_SAFETY_RESOLUTION_SUMMARY_LENGTH),\n actions: z.array(SafetyStagedActionSchema).max(16).default([]),\n adminNote: textFieldSchema(CLOSE_OUT_ADMIN_NOTE_INPUT).optional(),\n // [EUAS-017] Optimistic-concurrency token (`childSafetyCaseList.revision` / `nciiCases.revision`).\n // The close is rejected if the case changed since the operator loaded it — concurrent stale closes\n // can't silently overwrite. Optional for backward compatibility; the console always supplies it.\n expectedRevision: z.number().int().nonnegative().optional(),\n // Interim reauth: a single explicit typed confirmation for the privileged safety actions,\n // standing in for the passkey two-step until [H-17]. The callable is full-admin gated.\n confirmation: z.literal(SAFETY_ACTIONS_CONFIRMATION),\n })\n .strict();\nexport type SafetyCaseInput = z.infer<typeof SafetyCaseInputSchema>;\n\nexport const ReopenSafetyCaseInputSchema = z\n .object({\n caseType: SafetyCaseLaneSchema,\n caseId: safetyCaseIdSchema,\n reasonInternal: textFieldSchema(SAFETY_INTERNAL_REASON_INPUT),\n expectedRevision: z.number().int().nonnegative().optional(),\n confirmation: z.literal(SAFETY_CASE_REOPEN_CONFIRMATION),\n })\n .strict();\nexport type ReopenSafetyCaseInput = z.infer<typeof ReopenSafetyCaseInputSchema>;\n\n// ---------------------------------------------------------------------------\n// Dead-letter operations — adminReplayDeadLetter + getDeadLetters (Ops Repairs).\n// ---------------------------------------------------------------------------\n\n/** Every ledger the dead-letter replay callable supports. */\nexport const DeadLetterCollectionSchema = z.enum([\n 'chatSyncEvents',\n 'chatAdminActionCommands',\n 'notificationDeliveries',\n 'chatMessageOutbox',\n 'squareAnnouncementJobs',\n 'chatSyncFanoutJobs',\n 'mediaAssets',\n 'quarantineSagaJobs',\n 'nciiRemovalJobs',\n 'safetyEvidenceJobs',\n 'accountActionCommands',\n 'activeReportGroups',\n 'hallSubItemEdgeSync',\n 'chatParkedDeliveries',\n]);\nexport type DeadLetterCollection = z.infer<typeof DeadLetterCollectionSchema>;\n\n/** Every replay lane whose target is a flat top-level document. */\nexport const FlatDeadLetterCollectionSchema = DeadLetterCollectionSchema.exclude(['hallSubItemEdgeSync']);\nexport type FlatDeadLetterCollection = z.infer<typeof FlatDeadLetterCollectionSchema>;\n\n/**\n * Canonical identity for a published Hall sub-item edge-sync replay target. The work type derives\n * the only valid nested collection through PATH_BUILDERS.hallItemSubItem; callers never submit a\n * Firestore path or collection segment.\n */\nexport const HallSubItemEdgeSyncReplayTargetSchema = z.object({\n hallItemId: hallItemIdSchema,\n workProjectType: workProjectTypeSchema,\n subItemId: hallSubItemIdSchema,\n}).strict();\nexport type HallSubItemEdgeSyncReplayTarget = z.infer<typeof HallSubItemEdgeSyncReplayTargetSchema>;\n\nexport const AdminReplayDeadLetterInputSchema = z\n .discriminatedUnion('collection', [\n z.object({\n collection: FlatDeadLetterCollectionSchema,\n docId: documentIdSegmentSchema.max(200),\n reason: z.string().min(1).max(MAX_INTERNAL_REASON_LENGTH),\n dryRun: z.boolean().optional(),\n }).strict(),\n z.object({\n collection: z.literal('hallSubItemEdgeSync'),\n ...HallSubItemEdgeSyncReplayTargetSchema.shape,\n reason: z.string().min(1).max(MAX_INTERNAL_REASON_LENGTH),\n dryRun: z.boolean().optional(),\n }).strict(),\n ]);\nexport type AdminReplayDeadLetterInput = z.infer<typeof AdminReplayDeadLetterInputSchema>;\n\nexport const GetDeadLettersInputSchema = z\n .object({\n /** Restrict to one listable flat ledger; absent = all listable flat ledgers. */\n collection: FlatDeadLetterCollectionSchema.optional(),\n /** Per-ledger row cap (the callable's own ceiling applies regardless). */\n limit: z.number().int().min(1).max(200).optional(),\n })\n .strict()\n .nullish();\nexport type GetDeadLettersInput = z.infer<typeof GetDeadLettersInputSchema>;\n\n\n"]}
@@ -136,8 +136,8 @@ export type UpdateGuildChatChannelInput = z.infer<typeof UpdateGuildChatChannelI
136
136
  export declare const AdminModerateChatMessageInputSchema: z.ZodObject<{
137
137
  requestId: z.ZodString;
138
138
  action: z.ZodEnum<{
139
- hide: "hide";
140
139
  delete: "delete";
140
+ hide: "hide";
141
141
  }>;
142
142
  messageSeq: z.ZodNumber;
143
143
  expectedMessageRevision: z.ZodNumber;
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const CommissionProposalStatusSchema: z.ZodEnum<{
3
- rejected: "rejected";
4
3
  accepted: "accepted";
4
+ rejected: "rejected";
5
5
  open: "open";
6
6
  invited: "invited";
7
7
  }>;
@@ -23,8 +23,8 @@ export type NotificationType = z.infer<typeof NotificationTypeSchema>;
23
23
  export declare const NOTIFICATION_CHANNEL_VALUES: readonly ["inApp", "email", "push"];
24
24
  export declare const NotificationChannelSchema: z.ZodEnum<{
25
25
  email: "email";
26
- push: "push";
27
26
  inApp: "inApp";
27
+ push: "push";
28
28
  }>;
29
29
  export type NotificationChannel = z.infer<typeof NotificationChannelSchema>;
30
30
  export type NotificationCategory = 'user' | 'admin';
@@ -63,40 +63,50 @@ export declare const SavePublicDocumentDraftInputSchema: z.ZodDiscriminatedUnion
63
63
  baseVersion: z.ZodNumber;
64
64
  expectedRevision: z.ZodNumber;
65
65
  content: z.ZodObject<{
66
+ intro: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
67
+ groupIntentions: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
68
+ workRealm: "workRealm";
69
+ generic: "generic";
70
+ merchandising: "merchandising";
71
+ hallWing: "hallWing";
72
+ }> & z.core.$partial, z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
66
73
  rules: z.ZodArray<z.ZodObject<{
67
- id: z.ZodString;
68
- title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
69
- description: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
70
- videoUrl: z.ZodOptional<z.ZodString>;
71
- group: z.ZodOptional<z.ZodEnum<{
72
- workRealm: "workRealm";
73
- workProjectType: "workProjectType";
74
- hallWingType: "hallWingType";
75
- generic: "generic";
76
- merchandising: "merchandising";
77
- }>>;
78
- subgroup: z.ZodOptional<z.ZodEnum<{
74
+ order: z.ZodNumber;
75
+ workProjectType: z.ZodOptional<z.ZodEnum<{
79
76
  Tales: "Tales";
80
77
  Tunes: "Tunes";
81
78
  Television: "Television";
79
+ }>>;
80
+ hallWingType: z.ZodOptional<z.ZodEnum<{
82
81
  entertainment: "entertainment";
83
82
  educational: "educational";
84
83
  newsPolitical: "newsPolitical";
85
84
  }>>;
86
- order: z.ZodNumber;
85
+ id: z.ZodString;
86
+ title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
87
+ description: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
88
+ group: z.ZodEnum<{
89
+ workRealm: "workRealm";
90
+ generic: "generic";
91
+ merchandising: "merchandising";
92
+ hallWing: "hallWing";
93
+ }>;
87
94
  }, z.core.$strict>>;
88
95
  agreements: z.ZodObject<{
89
- tales: z.ZodOptional<z.ZodObject<{
90
- points: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
91
- videoUrl: z.ZodOptional<z.ZodString>;
92
- }, z.core.$strict>>;
93
- tunes: z.ZodOptional<z.ZodObject<{
94
- points: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
95
- videoUrl: z.ZodOptional<z.ZodString>;
96
- }, z.core.$strict>>;
97
- television: z.ZodOptional<z.ZodObject<{
98
- points: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
99
- videoUrl: z.ZodOptional<z.ZodString>;
96
+ intention: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
97
+ points: z.ZodArray<z.ZodObject<{
98
+ workProjectType: z.ZodOptional<z.ZodEnum<{
99
+ Tales: "Tales";
100
+ Tunes: "Tunes";
101
+ Television: "Television";
102
+ }>>;
103
+ hallWingType: z.ZodOptional<z.ZodEnum<{
104
+ entertainment: "entertainment";
105
+ educational: "educational";
106
+ newsPolitical: "newsPolitical";
107
+ }>>;
108
+ id: z.ZodString;
109
+ text: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
100
110
  }, z.core.$strict>>;
101
111
  }, z.core.$strict>;
102
112
  }, z.core.$strict>;
@@ -105,18 +115,19 @@ export declare const SavePublicDocumentDraftInputSchema: z.ZodDiscriminatedUnion
105
115
  baseVersion: z.ZodNumber;
106
116
  expectedRevision: z.ZodNumber;
107
117
  content: z.ZodObject<{
118
+ intro: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
119
+ groups: z.ZodArray<z.ZodObject<{
120
+ id: z.ZodString;
121
+ name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
122
+ order: z.ZodNumber;
123
+ intention: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
124
+ }, z.core.$strict>>;
108
125
  plans: z.ZodArray<z.ZodObject<{
109
126
  id: z.ZodString;
110
127
  title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
111
128
  description: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
129
+ groupId: z.ZodString;
112
130
  order: z.ZodNumber;
113
- videoUrl: z.ZodOptional<z.ZodString>;
114
- mediaType: z.ZodOptional<z.ZodEnum<{
115
- video: "video";
116
- image: "image";
117
- audio: "audio";
118
- other: "other";
119
- }>>;
120
131
  }, z.core.$strict>>;
121
132
  }, z.core.$strict>;
122
133
  }, z.core.$strict>, z.ZodObject<{
@@ -299,42 +310,52 @@ export declare const ReadPublicDocumentHistoryResultSchema: z.ZodObject<{
299
310
  }, z.core.$strip>, z.ZodObject<{
300
311
  documentId: z.ZodLiteral<"rulesAndAgreements">;
301
312
  content: z.ZodObject<{
313
+ agreements: z.ZodObject<{
314
+ intention: z.ZodOptional<z.ZodString>;
315
+ points: z.ZodArray<z.ZodObject<{
316
+ workProjectType: z.ZodOptional<z.ZodEnum<{
317
+ Tales: "Tales";
318
+ Tunes: "Tunes";
319
+ Television: "Television";
320
+ }>>;
321
+ hallWingType: z.ZodOptional<z.ZodEnum<{
322
+ entertainment: "entertainment";
323
+ educational: "educational";
324
+ newsPolitical: "newsPolitical";
325
+ }>>;
326
+ id: z.ZodString;
327
+ text: z.ZodString;
328
+ }, z.core.$strip>>;
329
+ }, z.core.$strip>;
330
+ intro: z.ZodOptional<z.ZodString>;
331
+ groupIntentions: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
332
+ workRealm: "workRealm";
333
+ generic: "generic";
334
+ merchandising: "merchandising";
335
+ hallWing: "hallWing";
336
+ }> & z.core.$partial, z.ZodString>>;
302
337
  rules: z.ZodArray<z.ZodObject<{
303
- id: z.ZodString;
304
- title: z.ZodString;
305
- description: z.ZodString;
306
- videoUrl: z.ZodOptional<z.ZodString>;
307
- group: z.ZodOptional<z.ZodEnum<{
308
- workRealm: "workRealm";
309
- workProjectType: "workProjectType";
310
- hallWingType: "hallWingType";
311
- generic: "generic";
312
- merchandising: "merchandising";
313
- }>>;
314
- subgroup: z.ZodOptional<z.ZodEnum<{
338
+ order: z.ZodNumber;
339
+ workProjectType: z.ZodOptional<z.ZodEnum<{
315
340
  Tales: "Tales";
316
341
  Tunes: "Tunes";
317
342
  Television: "Television";
343
+ }>>;
344
+ hallWingType: z.ZodOptional<z.ZodEnum<{
318
345
  entertainment: "entertainment";
319
346
  educational: "educational";
320
347
  newsPolitical: "newsPolitical";
321
348
  }>>;
322
- order: z.ZodNumber;
349
+ id: z.ZodString;
350
+ title: z.ZodString;
351
+ description: z.ZodString;
352
+ group: z.ZodEnum<{
353
+ workRealm: "workRealm";
354
+ generic: "generic";
355
+ merchandising: "merchandising";
356
+ hallWing: "hallWing";
357
+ }>;
323
358
  }, z.core.$strip>>;
324
- agreements: z.ZodObject<{
325
- tales: z.ZodOptional<z.ZodObject<{
326
- points: z.ZodArray<z.ZodString>;
327
- videoUrl: z.ZodOptional<z.ZodString>;
328
- }, z.core.$strip>>;
329
- tunes: z.ZodOptional<z.ZodObject<{
330
- points: z.ZodArray<z.ZodString>;
331
- videoUrl: z.ZodOptional<z.ZodString>;
332
- }, z.core.$strip>>;
333
- television: z.ZodOptional<z.ZodObject<{
334
- points: z.ZodArray<z.ZodString>;
335
- videoUrl: z.ZodOptional<z.ZodString>;
336
- }, z.core.$strip>>;
337
- }, z.core.$strip>;
338
359
  }, z.core.$strip>;
339
360
  version: z.ZodNumber;
340
361
  releaseId: z.ZodString;
@@ -343,18 +364,19 @@ export declare const ReadPublicDocumentHistoryResultSchema: z.ZodObject<{
343
364
  }, z.core.$strip>, z.ZodObject<{
344
365
  documentId: z.ZodLiteral<"futurePlans">;
345
366
  content: z.ZodObject<{
367
+ intro: z.ZodOptional<z.ZodString>;
368
+ groups: z.ZodArray<z.ZodObject<{
369
+ id: z.ZodString;
370
+ name: z.ZodString;
371
+ order: z.ZodNumber;
372
+ intention: z.ZodOptional<z.ZodString>;
373
+ }, z.core.$strip>>;
346
374
  plans: z.ZodArray<z.ZodObject<{
347
375
  id: z.ZodString;
348
376
  title: z.ZodString;
349
377
  description: z.ZodString;
378
+ groupId: z.ZodString;
350
379
  order: z.ZodNumber;
351
- videoUrl: z.ZodOptional<z.ZodString>;
352
- mediaType: z.ZodOptional<z.ZodEnum<{
353
- video: "video";
354
- image: "image";
355
- audio: "audio";
356
- other: "other";
357
- }>>;
358
380
  }, z.core.$strip>>;
359
381
  }, z.core.$strip>;
360
382
  version: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"public-documents.d.ts","sourceRoot":"","sources":["../../src/schemas/public-documents.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;mBAGyB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,0CAA0C;;iBAErD,CAAC;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAqC7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;;;;;;;;;;;iBAM9C,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAIhG,kEAAkE;AAClE,eAAO,MAAM,oCAAoC;;;;;;;;;;kBAKtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;;GAOG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;kBAUzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAExG,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;iBAKnD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wCAAwC,CAAC,CAAC;AAI1G;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,iCAAiC;;;;;6BAO5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAI5F;;;;GAIG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;kBAGtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAMpG,2FAA2F;AAC3F,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;kBAK3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAE5G;;;;GAIG;AACH,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;kBAM3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC"}
1
+ {"version":3,"file":"public-documents.d.ts","sourceRoot":"","sources":["../../src/schemas/public-documents.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;mBAGyB,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,0CAA0C;;iBAErD,CAAC;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAqC7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,mCAAmC;;;;;;;;;;;;iBAM9C,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAIhG,kEAAkE;AAClE,eAAO,MAAM,oCAAoC;;;;;;;;;;kBAKtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;;GAOG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;kBAUzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAExG,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;iBAKnD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wCAAwC,CAAC,CAAC;AAI1G;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;kBAElC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,iCAAiC;;;;;6BAO5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAI5F;;;;GAIG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;kBAGtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAMpG,2FAA2F;AAC3F,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;kBAK3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAE5G;;;;GAIG;AACH,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;kBAM3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC"}