@ttt-productions/ttt-core 0.79.67 → 0.79.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/app-mode.d.ts +3 -1
- package/dist/constants/app-mode.d.ts.map +1 -1
- package/dist/constants/app-mode.js +2 -0
- package/dist/constants/app-mode.js.map +1 -1
- package/dist/constants/business-admin.d.ts +6 -0
- package/dist/constants/business-admin.d.ts.map +1 -1
- package/dist/constants/business-admin.js +6 -0
- package/dist/constants/business-admin.js.map +1 -1
- package/dist/constants/business-platform.d.ts +3 -0
- package/dist/constants/business-platform.d.ts.map +1 -1
- package/dist/constants/business-platform.js +4 -1
- package/dist/constants/business-platform.js.map +1 -1
- package/dist/constants/business-user.d.ts +6 -0
- package/dist/constants/business-user.d.ts.map +1 -1
- package/dist/constants/business-user.js +2 -0
- package/dist/constants/business-user.js.map +1 -1
- package/dist/constants/text-fields.d.ts +14 -0
- package/dist/constants/text-fields.d.ts.map +1 -1
- package/dist/constants/text-fields.js +5 -1
- package/dist/constants/text-fields.js.map +1 -1
- package/dist/doc-schemas/commissions.d.ts +4 -4
- package/dist/doc-schemas/content.d.ts +2 -2
- package/dist/doc-schemas/erasure-fates.d.ts +2 -0
- package/dist/doc-schemas/erasure-fates.d.ts.map +1 -1
- package/dist/doc-schemas/erasure-fates.js +3 -0
- package/dist/doc-schemas/erasure-fates.js.map +1 -1
- package/dist/doc-schemas/index.d.ts +1 -0
- package/dist/doc-schemas/index.d.ts.map +1 -1
- package/dist/doc-schemas/index.js +1 -0
- package/dist/doc-schemas/index.js.map +1 -1
- package/dist/doc-schemas/media-activation-jobs.d.ts +3 -0
- package/dist/doc-schemas/media-activation-jobs.d.ts.map +1 -1
- package/dist/doc-schemas/media-assets.d.ts +11 -2
- package/dist/doc-schemas/media-assets.d.ts.map +1 -1
- package/dist/doc-schemas/media-assets.js +5 -0
- package/dist/doc-schemas/media-assets.js.map +1 -1
- package/dist/doc-schemas/media-copy-intents.d.ts +2 -0
- package/dist/doc-schemas/media-copy-intents.d.ts.map +1 -1
- package/dist/doc-schemas/messaging.d.ts +1 -1
- package/dist/doc-schemas/moderation.d.ts +3 -1
- package/dist/doc-schemas/moderation.d.ts.map +1 -1
- package/dist/doc-schemas/notification-ledger.d.ts +3 -4
- package/dist/doc-schemas/notification-ledger.d.ts.map +1 -1
- package/dist/doc-schemas/notification-ledger.js +3 -2
- package/dist/doc-schemas/notification-ledger.js.map +1 -1
- package/dist/doc-schemas/public-documents.d.ts +5 -5
- package/dist/doc-schemas/registry.d.ts +173 -18
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +3 -0
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/doc-schemas/safety/evidence.d.ts +8 -0
- package/dist/doc-schemas/safety/evidence.d.ts.map +1 -1
- package/dist/doc-schemas/safety/report.d.ts +1 -0
- package/dist/doc-schemas/safety/report.d.ts.map +1 -1
- package/dist/doc-schemas/social.d.ts +4 -4
- package/dist/doc-schemas/square-announcement-jobs.d.ts +6 -6
- package/dist/doc-schemas/system-slots.d.ts +50 -0
- package/dist/doc-schemas/system-slots.d.ts.map +1 -0
- package/dist/doc-schemas/system-slots.js +56 -0
- package/dist/doc-schemas/system-slots.js.map +1 -0
- package/dist/doc-schemas/system.d.ts +5 -0
- package/dist/doc-schemas/system.d.ts.map +1 -1
- package/dist/doc-schemas/system.js +4 -1
- package/dist/doc-schemas/system.js.map +1 -1
- package/dist/doc-schemas/user.d.ts +5 -5
- package/dist/doc-schemas/work-project.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/media/domain-events-admin.d.ts +28 -0
- package/dist/media/domain-events-admin.d.ts.map +1 -1
- package/dist/media/domain-events-admin.js +24 -0
- package/dist/media/domain-events-admin.js.map +1 -1
- package/dist/media/domain-events.d.ts +26 -0
- package/dist/media/domain-events.d.ts.map +1 -1
- package/dist/media/domain-events.js +3 -1
- package/dist/media/domain-events.js.map +1 -1
- package/dist/media/edge-serving-contract.d.ts +3 -0
- package/dist/media/edge-serving-contract.d.ts.map +1 -1
- package/dist/media/file-origin.d.ts +1 -0
- package/dist/media/file-origin.d.ts.map +1 -1
- package/dist/media/file-origin.js +2 -0
- package/dist/media/file-origin.js.map +1 -1
- package/dist/media/pending-media.d.ts +305 -0
- package/dist/media/pending-media.d.ts.map +1 -1
- package/dist/media/start-upload.d.ts +1 -0
- package/dist/media/start-upload.d.ts.map +1 -1
- package/dist/media/target-info.d.ts +18 -2
- package/dist/media/target-info.d.ts.map +1 -1
- package/dist/media/target-info.js +8 -0
- package/dist/media/target-info.js.map +1 -1
- package/dist/media/ttt-media-specs.d.ts.map +1 -1
- package/dist/media/ttt-media-specs.js +38 -3
- package/dist/media/ttt-media-specs.js.map +1 -1
- package/dist/media/upload-tray-display.d.ts.map +1 -1
- package/dist/media/upload-tray-display.js +1 -0
- package/dist/media/upload-tray-display.js.map +1 -1
- package/dist/paths/collections.d.ts +2 -0
- package/dist/paths/collections.d.ts.map +1 -1
- package/dist/paths/collections.js +4 -0
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.d.ts +2 -0
- package/dist/paths/path-builders.d.ts.map +1 -1
- package/dist/paths/path-builders.js +2 -0
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/schemas/admin.d.ts +54 -9
- package/dist/schemas/admin.d.ts.map +1 -1
- package/dist/schemas/admin.js +35 -2
- package/dist/schemas/admin.js.map +1 -1
- package/dist/schemas/notification.d.ts +2 -2
- package/dist/schemas/public-documents.d.ts +2 -2
- package/dist/schemas/safety.d.ts.map +1 -1
- package/dist/schemas/safety.js +6 -3
- package/dist/schemas/safety.js.map +1 -1
- package/dist/schemas/work-project-management.d.ts +8 -8
- package/dist/system-slots/guide-videos.d.ts +36 -0
- package/dist/system-slots/guide-videos.d.ts.map +1 -0
- package/dist/system-slots/guide-videos.js +19 -0
- package/dist/system-slots/guide-videos.js.map +1 -0
- package/dist/system-slots/index.d.ts +3 -0
- package/dist/system-slots/index.d.ts.map +1 -0
- package/dist/system-slots/index.js +3 -0
- package/dist/system-slots/index.js.map +1 -0
- package/dist/system-slots/system-slots.d.ts +92 -0
- package/dist/system-slots/system-slots.d.ts.map +1 -0
- package/dist/system-slots/system-slots.js +55 -0
- package/dist/system-slots/system-slots.js.map +1 -0
- package/dist/types/audit.d.ts +1 -1
- package/dist/types/audit.d.ts.map +1 -1
- package/dist/types/audit.js.map +1 -1
- package/dist/upload-variables/index.d.ts +1 -0
- package/dist/upload-variables/index.d.ts.map +1 -1
- package/dist/upload-variables/index.js +1 -0
- package/dist/upload-variables/index.js.map +1 -1
- package/dist/upload-variables/upload-system-content-variables.d.ts +34 -0
- package/dist/upload-variables/upload-system-content-variables.d.ts.map +1 -0
- package/dist/upload-variables/upload-system-content-variables.js +14 -0
- package/dist/upload-variables/upload-system-content-variables.js.map +1 -0
- package/dist/utils/display-name-reservation.d.ts +8 -0
- package/dist/utils/display-name-reservation.d.ts.map +1 -0
- package/dist/utils/display-name-reservation.js +11 -0
- package/dist/utils/display-name-reservation.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-fields.js","sourceRoot":"","sources":["../../src/constants/text-fields.ts"],"names":[],"mappings":"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","sourcesContent":["// The declaration of every TTT text field a person types: its input format, its min, and its max\n// (ARCH-102). input-format-core owns the formats and the one check; this file only says which\n// format each field uses and how long it may be. The field's form input, its wire schema\n// (`textFieldSchema`), and its writer all read the one declaration, so they accept exactly the same\n// texts. Every text is trimmed before it is judged and kept; `keepAsTyped` is reserved for the\n// legal public documents and the NCII statutory fields, whose words are kept verbatim.\n\nimport { CHAT_MESSAGE_TEXT_INPUT } from '@ttt-productions/chat-schemas';\nimport { defineInputFormat, type InputFormatSpec } from '@ttt-productions/input-format-core';\nimport type { TextFieldDeclaration } from '../utils/text-field.js';\nimport {\n MAX_CHAPTER_CONTENT_LENGTH,\n MAX_CHAPTER_TITLE_LENGTH,\n MAX_FILE_FOLDER_NAME_LENGTH,\n MAX_TELEVISION_EPISODE_DESCRIPTION_LENGTH,\n MAX_TELEVISION_EPISODE_TITLE_LENGTH,\n MAX_TUNE_TRACK_DESCRIPTION_LENGTH,\n MAX_TUNE_TRACK_TITLE_LENGTH,\n MAX_WORK_PROJECT_DESCRIPTION_LENGTH,\n MAX_WORK_PROJECT_TITLE_LENGTH,\n MAX_WORK_REALM_DESCRIPTION_LENGTH,\n MAX_WORK_REALM_TITLE_LENGTH,\n} from './business-work-project.js';\nimport {\n MAX_AUDITION_DESCRIPTION_LENGTH,\n MAX_AUDITION_TITLE_LENGTH,\n MAX_COMMISSION_DESCRIPTION_LENGTH,\n MAX_COMMISSION_TITLE_LENGTH,\n MAX_GUILD_INVITE_MESSAGE_LENGTH,\n MAX_HALL_CHANGE_REQUEST_REASON_LENGTH,\n MAX_POST_LENGTH,\n type ModerationClearableSurface,\n type MODERATION_CLEARABLE_TEXT_FIELDS,\n} from './business-content.js';\nimport {\n MAX_ADMIN_DISPATCH_INITIAL_TEXT_LENGTH,\n MAX_ADMIN_DISPATCH_SUBJECT_LENGTH,\n MAX_AGREEMENT_POINT_LENGTH,\n MAX_ANNOUNCEMENT_MESSAGE_LENGTH,\n MAX_APP_VERSION_LENGTH,\n MAX_APPEAL_MESSAGE_LENGTH,\n MAX_APPEAL_REVIEW_NOTES_LENGTH,\n MAX_BROADCAST_TITLE_LENGTH,\n MAX_CONTENT_PAGE_BODY_LENGTH,\n MAX_CONTENT_PAGE_HEADING_LENGTH,\n MAX_DMCA_CONTACT_LABEL_LENGTH,\n MAX_DMCA_CONTACT_VALUE_LENGTH,\n MAX_FEEDBACK_SUGGESTION_LENGTH,\n MAX_FUTURE_PLAN_DESCRIPTION_LENGTH,\n MAX_FUTURE_PLAN_TITLE_LENGTH,\n MAX_INTERNAL_REASON_LENGTH,\n MAX_MAINTENANCE_MESSAGE_LENGTH,\n MAX_NCII_AUTHORITY_BASIS_LENGTH,\n MAX_NCII_NONCONSENT_STATEMENT_LENGTH,\n MAX_NCII_RATIONALE_LENGTH,\n MAX_NCII_REPRESENTED_PERSON_NAME_LENGTH,\n MAX_NCII_REQUESTER_NAME_LENGTH,\n MAX_NCII_SIGNED_NAME_LENGTH,\n MAX_NCII_SUPPORTING_FACTS_LENGTH,\n MAX_NCMEC_PORTAL_PROOF_TEXT_LENGTH,\n MAX_NOTIFICATION_MESSAGE_LENGTH,\n MAX_PLATFORM_RULE_DESCRIPTION_LENGTH,\n MAX_PLATFORM_RULE_TITLE_LENGTH,\n MAX_REPORT_COMMENT_LENGTH,\n MAX_REQUIRE_RETITLE_REASON_LENGTH,\n MAX_SAFETY_ADMIN_NOTE_LENGTH,\n MAX_SAFETY_ARTIFACT_DESCRIPTION_LENGTH,\n MAX_TAKE_IT_DOWN_COPY_LENGTH,\n MAX_THRESHOLD_REVIEW_NOTES_LENGTH,\n MAX_USER_FACING_REASON_DETAIL_LENGTH,\n MAX_USER_FACING_REASON_LENGTH,\n MIN_SAFETY_RATIONALE_LENGTH,\n} from './business-admin.js';\nimport {\n MAX_ARTISAN_LOCATION_LENGTH,\n MAX_THEME_NAME_LENGTH,\n USERNAME_MAX_LENGTH,\n USERNAME_MIN_LENGTH,\n} from './business-user.js';\nimport {\n MAX_GUILD_CHAT_CHANNEL_DESCRIPTION_LENGTH,\n MAX_GUILD_CHAT_CHANNEL_NAME_LENGTH,\n} from './chat.js';\nimport {\n MAX_CURATED_PROFANITY_TERM_LENGTH,\n MIN_CURATED_PROFANITY_TERM_LENGTH,\n} from './moderation.js';\n\n// --- Works, Realms, and the Hall ---\n\n/** A Work's title — its one name, which the Hall entry snapshots at first publication. */\nexport const WORK_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'englishNormal', min: 1, max: MAX_WORK_PROJECT_TITLE_LENGTH });\n/** A Work's description — the Hall entry snapshots it with the title. */\nexport const WORK_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_WORK_PROJECT_DESCRIPTION_LENGTH });\n/** A Realm's name, which is also its platform-wide reservation key. */\nexport const REALM_NAME_INPUT = defineInputFormat({ label: 'Realm name', format: 'englishNormal', min: 1, max: MAX_WORK_REALM_TITLE_LENGTH });\nexport const REALM_DESCRIPTION_INPUT = defineInputFormat({ label: 'Realm description', format: 'none', min: 1, max: MAX_WORK_REALM_DESCRIPTION_LENGTH });\nexport const CHAPTER_TITLE_INPUT = defineInputFormat({ label: 'Chapter title', format: 'englishNormal', min: 1, max: MAX_CHAPTER_TITLE_LENGTH });\nexport const CHAPTER_CONTENT_INPUT = defineInputFormat({ label: 'Chapter text', format: 'none', min: 0, max: MAX_CHAPTER_CONTENT_LENGTH });\nexport const TUNE_TRACK_TITLE_INPUT = defineInputFormat({ label: 'Track title', format: 'englishNormal', min: 1, max: MAX_TUNE_TRACK_TITLE_LENGTH });\nexport const TUNE_TRACK_DESCRIPTION_INPUT = defineInputFormat({ label: 'Track description', format: 'none', min: 0, max: MAX_TUNE_TRACK_DESCRIPTION_LENGTH });\nexport const TELEVISION_EPISODE_TITLE_INPUT = defineInputFormat({ label: 'Episode title', format: 'englishNormal', min: 1, max: MAX_TELEVISION_EPISODE_TITLE_LENGTH });\nexport const TELEVISION_EPISODE_DESCRIPTION_INPUT = defineInputFormat({ label: 'Episode description', format: 'none', min: 0, max: MAX_TELEVISION_EPISODE_DESCRIPTION_LENGTH });\n/** An admin's reason for denying a published change request; the deny itself requires it. */\nexport const HALL_CHANGE_REQUEST_DENY_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_HALL_CHANGE_REQUEST_REASON_LENGTH });\nexport const THRESHOLD_REVIEW_NOTES_INPUT = defineInputFormat({ label: 'Review notes', format: 'none', min: 0, max: MAX_THRESHOLD_REVIEW_NOTES_LENGTH });\nexport const WORK_FILE_FOLDER_NAME_INPUT = defineInputFormat({ label: 'Folder name', format: 'singleLine', min: 1, max: MAX_FILE_FOLDER_NAME_LENGTH });\nexport const REALM_FILE_FOLDER_NAME_INPUT = defineInputFormat({ label: 'Folder name', format: 'singleLine', min: 1, max: MAX_FILE_FOLDER_NAME_LENGTH });\n\n/** A field as a published change request proposes it: its authoring declaration, except that a\n * proposal always carries text — an optional field cannot be changed to nothing. */\nfunction proposedText<const S extends InputFormatSpec>(declaration: S) {\n return defineInputFormat({ ...declaration, min: Math.max(declaration.min, 1) });\n}\n\n/**\n * Each published surface's changeable text fields and the declaration a proposed value must meet.\n * A Tale / Tune / Television detail is the Work's own title and description, so it takes the Work's\n * declarations; a Realm proposal takes the Realm's.\n */\nexport const HALL_CONTENT_CHANGE_REQUEST_INPUTS: {\n readonly [S in Exclude<ModerationClearableSurface, 'workProject'>]: Readonly<\n Record<(typeof MODERATION_CLEARABLE_TEXT_FIELDS)[S][number], TextFieldDeclaration>\n >;\n} = {\n tale: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n tune: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n television: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n chapter: { title: CHAPTER_TITLE_INPUT, content: proposedText(CHAPTER_CONTENT_INPUT) },\n tuneTrack: { title: TUNE_TRACK_TITLE_INPUT, description: proposedText(TUNE_TRACK_DESCRIPTION_INPUT) },\n televisionEpisode: {\n title: TELEVISION_EPISODE_TITLE_INPUT,\n description: proposedText(TELEVISION_EPISODE_DESCRIPTION_INPUT),\n },\n workRealm: { workingTitle: REALM_NAME_INPUT, workingDescription: REALM_DESCRIPTION_INPUT },\n};\n\n// --- Commissions, auditions, and the guild ---\n\nexport const COMMISSION_TITLE_INPUT = defineInputFormat({ label: 'Commission title', format: 'englishNormal', min: 1, max: MAX_COMMISSION_TITLE_LENGTH });\nexport const COMMISSION_DESCRIPTION_INPUT = defineInputFormat({ label: 'Commission description', format: 'none', min: 1, max: MAX_COMMISSION_DESCRIPTION_LENGTH });\nexport const COMMISSION_COVER_LETTER_INPUT = defineInputFormat({ label: 'Cover letter', format: 'none', min: 1, max: MAX_COMMISSION_DESCRIPTION_LENGTH });\nexport const AUDITION_TITLE_INPUT = defineInputFormat({ label: 'Audition title', format: 'englishNormal', min: 1, max: MAX_AUDITION_TITLE_LENGTH });\nexport const AUDITION_DESCRIPTION_INPUT = defineInputFormat({ label: 'Audition description', format: 'none', min: 0, max: MAX_AUDITION_DESCRIPTION_LENGTH });\nexport const GUILD_INVITE_MESSAGE_INPUT = defineInputFormat({ label: 'Invite message', format: 'none', min: 1, max: MAX_GUILD_INVITE_MESSAGE_LENGTH });\nexport const GUILD_CHAT_CHANNEL_NAME_INPUT = defineInputFormat({ label: 'Channel name', format: 'singleLine', min: 1, max: MAX_GUILD_CHAT_CHANNEL_NAME_LENGTH });\nexport const GUILD_CHAT_CHANNEL_DESCRIPTION_INPUT = defineInputFormat({ label: 'Channel description', format: 'none', min: 0, max: MAX_GUILD_CHAT_CHANNEL_DESCRIPTION_LENGTH });\n\n// --- Posts, messages, and chat ---\n\n/** A Square post's text: the text post and a media post's caption are one field. */\nexport const SQUARE_POST_TEXT_INPUT = defineInputFormat({ label: 'Post', format: 'none', min: 1, max: MAX_POST_LENGTH });\n/** A message in an admin-support thread: the live chat message's format and bounds, from the chat contract. */\nexport const SUPPORT_THREAD_MESSAGE_INPUT = defineInputFormat({\n label: 'Message',\n format: CHAT_MESSAGE_TEXT_INPUT.format,\n min: CHAT_MESSAGE_TEXT_INPUT.min,\n max: CHAT_MESSAGE_TEXT_INPUT.max,\n});\n/** A support thread's or an admin message's subject. */\nexport const ADMIN_DISPATCH_SUBJECT_INPUT = defineInputFormat({ label: 'Subject', format: 'singleLine', min: 1, max: MAX_ADMIN_DISPATCH_SUBJECT_LENGTH });\n/** A support thread's first message, and the body of an admin message or warning. */\nexport const ADMIN_DISPATCH_MESSAGE_INPUT = defineInputFormat({ label: 'Message', format: 'none', min: 1, max: MAX_ADMIN_DISPATCH_INITIAL_TEXT_LENGTH });\nexport const BROADCAST_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_BROADCAST_TITLE_LENGTH });\nexport const BROADCAST_MESSAGE_INPUT = defineInputFormat({ label: 'Message', format: 'none', min: 1, max: MAX_NOTIFICATION_MESSAGE_LENGTH });\n\n// --- Accounts and members ---\n\nexport const USERNAME_INPUT = defineInputFormat({ label: 'Username', format: 'englishNormalNoSpaces', min: USERNAME_MIN_LENGTH, max: USERNAME_MAX_LENGTH });\nexport const ARTISAN_REGION_INPUT = defineInputFormat({ label: 'Region', format: 'singleLine', min: 0, max: MAX_ARTISAN_LOCATION_LENGTH });\n/** A feedback suggestion: one word of English letters, stored lowercase. */\nexport const FEEDBACK_SUGGESTION_INPUT = defineInputFormat({ label: 'Suggestion', format: 'englishLettersOnly', min: 1, max: MAX_FEEDBACK_SUGGESTION_LENGTH });\nexport const APPEAL_MESSAGE_INPUT = defineInputFormat({ label: 'Appeal message', format: 'none', min: 1, max: MAX_APPEAL_MESSAGE_LENGTH });\n/** A report's comment, and an admin's reason for marking NCII evidence. */\nexport const REPORT_COMMENT_INPUT = defineInputFormat({ label: 'Comment', format: 'none', min: 1, max: MAX_REPORT_COMMENT_LENGTH });\n/** The name of a theme a member builds in Theme Studio. */\nexport const THEME_NAME_INPUT = defineInputFormat({ label: 'Theme name', format: 'singleLine', min: 1, max: MAX_THEME_NAME_LENGTH });\n\n// --- Admin and moderation ---\n\n/** The reason for hiding a Work, a Realm, or a Hall sub-item. */\nexport const HIDE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\nexport const RETITLE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_REQUIRE_RETITLE_REASON_LENGTH });\nexport const CLEAR_TEXT_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_REQUIRE_RETITLE_REASON_LENGTH });\n/** The reason on a reported item's hide or removal; the action itself requires it. */\nexport const MODERATION_ACTION_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\n/** An admin's reason for an account action — a suspension, a ban, a forced username reset —\n * or a forced display-name reset's note. */\nexport const ACCOUNT_ACTION_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\n/** An admin's optional note on a reinstatement. */\nexport const ACCOUNT_REINSTATE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\nexport const USER_FACING_REASON_DETAIL_INPUT = defineInputFormat({ label: 'Reason detail', format: 'none', min: 0, max: MAX_USER_FACING_REASON_DETAIL_LENGTH });\n/** The admin note on a report's or a safety case's close-out. */\nexport const CLOSE_OUT_ADMIN_NOTE_INPUT = defineInputFormat({ label: 'Admin note', format: 'none', min: 0, max: MAX_SAFETY_ADMIN_NOTE_LENGTH });\n/** The resolution note an admin leaves when checking in an admin task (an ops anomaly's disposition). */\nexport const ADMIN_TASK_RESOLUTION_INPUT = defineInputFormat({ label: 'Resolution note', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\nexport const APPEAL_REVIEW_NOTES_INPUT = defineInputFormat({ label: 'Review notes', format: 'none', min: 0, max: MAX_APPEAL_REVIEW_NOTES_LENGTH });\n/** A pledge refund denial reason, shown to the requester; the deny itself requires it. */\nexport const PLEDGE_REFUND_DENIAL_REASON_INPUT = defineInputFormat({ label: 'Denial reason', format: 'none', min: 1, max: MAX_USER_FACING_REASON_LENGTH });\nexport const CURATED_PROFANITY_TERM_INPUT = defineInputFormat({\n label: 'Word',\n format: 'singleLine',\n min: MIN_CURATED_PROFANITY_TERM_LENGTH,\n max: MAX_CURATED_PROFANITY_TERM_LENGTH,\n});\nexport const MAINTENANCE_MESSAGE_INPUT = defineInputFormat({ label: 'Maintenance message', format: 'none', min: 0, max: MAX_MAINTENANCE_MESSAGE_LENGTH });\n/** The site announcement banner; empty clears it. */\nexport const ANNOUNCEMENT_MESSAGE_INPUT = defineInputFormat({ label: 'Announcement', format: 'none', min: 0, max: MAX_ANNOUNCEMENT_MESSAGE_LENGTH });\nexport const APP_VERSION_INPUT = defineInputFormat({ label: 'App version', format: 'none', min: 1, max: MAX_APP_VERSION_LENGTH });\n\n// --- The safety console ---\n\nexport const TAKE_IT_DOWN_VALIDITY_RATIONALE_INPUT = defineInputFormat({ label: 'Rationale', format: 'none', min: MIN_SAFETY_RATIONALE_LENGTH, max: MAX_NCII_RATIONALE_LENGTH });\n/** An operator's internal reason for reopening a safety case or taking a safety account action. */\nexport const SAFETY_INTERNAL_REASON_INPUT = defineInputFormat({ label: 'Internal reason', format: 'none', min: MIN_SAFETY_RATIONALE_LENGTH, max: MAX_INTERNAL_REASON_LENGTH });\nexport const NCMEC_ARTIFACT_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'singleLine', min: 0, max: MAX_SAFETY_ARTIFACT_DESCRIPTION_LENGTH });\nexport const NCMEC_PORTAL_PROOF_TEXT_INPUT = defineInputFormat({ label: 'Proof note', format: 'none', min: 0, max: MAX_NCMEC_PORTAL_PROOF_TEXT_LENGTH });\nexport const NCMEC_CORRECTION_REASON_INPUT = defineInputFormat({ label: 'Correction reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\n\n// --- Kept as typed: the legal public documents ---\n\nexport const FUTURE_PLAN_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_FUTURE_PLAN_TITLE_LENGTH, keepAsTyped: true });\nexport const FUTURE_PLAN_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_FUTURE_PLAN_DESCRIPTION_LENGTH, keepAsTyped: true });\nexport const PLATFORM_RULE_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_PLATFORM_RULE_TITLE_LENGTH, keepAsTyped: true });\nexport const PLATFORM_RULE_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_PLATFORM_RULE_DESCRIPTION_LENGTH, keepAsTyped: true });\nexport const AGREEMENT_POINT_INPUT = defineInputFormat({ label: 'Agreement point', format: 'singleLine', min: 1, max: MAX_AGREEMENT_POINT_LENGTH, keepAsTyped: true });\n/** A legal page's section heading, and a DMCA contact block's heading. */\nexport const CONTENT_PAGE_HEADING_INPUT = defineInputFormat({ label: 'Heading', format: 'singleLine', min: 1, max: MAX_CONTENT_PAGE_HEADING_LENGTH, keepAsTyped: true });\n/** A legal page's section body (empty is a bare divider heading), and the DMCA policy's intro. */\nexport const CONTENT_PAGE_BODY_INPUT = defineInputFormat({ label: 'Text', format: 'none', min: 0, max: MAX_CONTENT_PAGE_BODY_LENGTH, keepAsTyped: true });\nexport const DMCA_CONTACT_LABEL_INPUT = defineInputFormat({ label: 'Label', format: 'singleLine', min: 1, max: MAX_DMCA_CONTACT_LABEL_LENGTH, keepAsTyped: true });\nexport const DMCA_CONTACT_VALUE_INPUT = defineInputFormat({ label: 'Value', format: 'singleLine', min: 1, max: MAX_DMCA_CONTACT_VALUE_LENGTH, keepAsTyped: true });\nexport const TAKE_IT_DOWN_COPY_INPUT = defineInputFormat({ label: 'Text', format: 'none', min: 1, max: MAX_TAKE_IT_DOWN_COPY_LENGTH, keepAsTyped: true });\n\n// --- Kept as typed: the NCII statutory fields ---\n\nexport const NCII_REQUESTER_NAME_INPUT = defineInputFormat({ label: 'Your name', format: 'singleLine', min: 1, max: MAX_NCII_REQUESTER_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_SIGNED_NAME_INPUT = defineInputFormat({ label: 'Signature', format: 'singleLine', min: 1, max: MAX_NCII_SIGNED_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_REPRESENTED_PERSON_NAME_INPUT = defineInputFormat({ label: 'Name of the person you represent', format: 'singleLine', min: 1, max: MAX_NCII_REPRESENTED_PERSON_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_AUTHORITY_BASIS_INPUT = defineInputFormat({ label: 'Basis of authority', format: 'none', min: 1, max: MAX_NCII_AUTHORITY_BASIS_LENGTH, keepAsTyped: true });\nexport const NCII_NONCONSENT_STATEMENT_INPUT = defineInputFormat({ label: 'Statement', format: 'none', min: 1, max: MAX_NCII_NONCONSENT_STATEMENT_LENGTH, keepAsTyped: true });\nexport const NCII_SUPPORTING_FACTS_INPUT = defineInputFormat({ label: 'Supporting facts', format: 'none', min: 0, max: MAX_NCII_SUPPORTING_FACTS_LENGTH, keepAsTyped: true });\n"]}
|
|
1
|
+
{"version":3,"file":"text-fields.js","sourceRoot":"","sources":["../../src/constants/text-fields.ts"],"names":[],"mappings":"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","sourcesContent":["// The declaration of every TTT text field a person types: its input format, its min, and its max\n// (ARCH-102). input-format-core owns the formats and the one check; this file only says which\n// format each field uses and how long it may be. The field's form input, its wire schema\n// (`textFieldSchema`), and its writer all read the one declaration, so they accept exactly the same\n// texts. Every text is trimmed before it is judged and kept; `keepAsTyped` is reserved for the\n// legal public documents and the NCII statutory fields, whose words are kept verbatim.\n\nimport { CHAT_MESSAGE_TEXT_INPUT } from '@ttt-productions/chat-schemas';\nimport { defineInputFormat, type InputFormatSpec } from '@ttt-productions/input-format-core';\nimport type { TextFieldDeclaration } from '../utils/text-field.js';\nimport {\n MAX_CHAPTER_CONTENT_LENGTH,\n MAX_CHAPTER_TITLE_LENGTH,\n MAX_FILE_FOLDER_NAME_LENGTH,\n MAX_TELEVISION_EPISODE_DESCRIPTION_LENGTH,\n MAX_TELEVISION_EPISODE_TITLE_LENGTH,\n MAX_TUNE_TRACK_DESCRIPTION_LENGTH,\n MAX_TUNE_TRACK_TITLE_LENGTH,\n MAX_WORK_PROJECT_DESCRIPTION_LENGTH,\n MAX_WORK_PROJECT_TITLE_LENGTH,\n MAX_WORK_REALM_DESCRIPTION_LENGTH,\n MAX_WORK_REALM_TITLE_LENGTH,\n} from './business-work-project.js';\nimport {\n MAX_AUDITION_DESCRIPTION_LENGTH,\n MAX_AUDITION_TITLE_LENGTH,\n MAX_COMMISSION_DESCRIPTION_LENGTH,\n MAX_COMMISSION_TITLE_LENGTH,\n MAX_GUILD_INVITE_MESSAGE_LENGTH,\n MAX_HALL_CHANGE_REQUEST_REASON_LENGTH,\n MAX_POST_LENGTH,\n type ModerationClearableSurface,\n type MODERATION_CLEARABLE_TEXT_FIELDS,\n} from './business-content.js';\nimport {\n MAX_ADMIN_DISPATCH_INITIAL_TEXT_LENGTH,\n MAX_ADMIN_DISPATCH_SUBJECT_LENGTH,\n MAX_AGREEMENT_POINT_LENGTH,\n MAX_ANNOUNCEMENT_MESSAGE_LENGTH,\n MAX_APP_VERSION_LENGTH,\n MAX_APPEAL_MESSAGE_LENGTH,\n MAX_APPEAL_REVIEW_NOTES_LENGTH,\n MAX_BROADCAST_TITLE_LENGTH,\n MAX_CONTENT_PAGE_BODY_LENGTH,\n MAX_CONTENT_PAGE_HEADING_LENGTH,\n MAX_DMCA_CONTACT_LABEL_LENGTH,\n MAX_DMCA_CONTACT_VALUE_LENGTH,\n MAX_FEEDBACK_SUGGESTION_LENGTH,\n MAX_FUTURE_PLAN_DESCRIPTION_LENGTH,\n MAX_FUTURE_PLAN_TITLE_LENGTH,\n MAX_INTERNAL_REASON_LENGTH,\n MAX_MAINTENANCE_MESSAGE_LENGTH,\n MAX_NCII_AUTHORITY_BASIS_LENGTH,\n MAX_NCII_NONCONSENT_STATEMENT_LENGTH,\n MAX_NCII_RATIONALE_LENGTH,\n MAX_NCII_REPRESENTED_PERSON_NAME_LENGTH,\n MAX_NCII_REQUESTER_NAME_LENGTH,\n MAX_NCII_SIGNED_NAME_LENGTH,\n MAX_NCII_SUPPORTING_FACTS_LENGTH,\n MAX_NCMEC_PORTAL_PROOF_TEXT_LENGTH,\n MAX_NOTIFICATION_MESSAGE_LENGTH,\n MAX_PLATFORM_RULE_DESCRIPTION_LENGTH,\n MAX_PLATFORM_RULE_TITLE_LENGTH,\n MAX_REPORT_COMMENT_LENGTH,\n MAX_REQUIRE_RETITLE_REASON_LENGTH,\n MAX_SAFETY_ADMIN_NOTE_LENGTH,\n MAX_SAFETY_ARTIFACT_DESCRIPTION_LENGTH,\n MAX_TAKE_IT_DOWN_COPY_LENGTH,\n MAX_THRESHOLD_REVIEW_NOTES_LENGTH,\n MAX_UNDER_13_CLOSE_REASON_LENGTH,\n MAX_USER_FACING_REASON_DETAIL_LENGTH,\n MAX_USER_FACING_REASON_LENGTH,\n MIN_SAFETY_RATIONALE_LENGTH,\n} from './business-admin.js';\nimport {\n MAX_ARTISAN_LOCATION_LENGTH,\n MAX_THEME_NAME_LENGTH,\n USERNAME_MAX_LENGTH,\n USERNAME_MIN_LENGTH,\n} from './business-user.js';\nimport {\n MAX_GUILD_CHAT_CHANNEL_DESCRIPTION_LENGTH,\n MAX_GUILD_CHAT_CHANNEL_NAME_LENGTH,\n} from './chat.js';\nimport {\n MAX_CURATED_PROFANITY_TERM_LENGTH,\n MIN_CURATED_PROFANITY_TERM_LENGTH,\n} from './moderation.js';\n\n// --- Works, Realms, and the Hall ---\n\n/** A Work's title — its one name, which the Hall entry snapshots at first publication. */\nexport const WORK_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'englishNormal', min: 1, max: MAX_WORK_PROJECT_TITLE_LENGTH });\n/** A Work's description — the Hall entry snapshots it with the title. */\nexport const WORK_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_WORK_PROJECT_DESCRIPTION_LENGTH });\n/** A Realm's name, which is also its platform-wide reservation key. */\nexport const REALM_NAME_INPUT = defineInputFormat({ label: 'Realm name', format: 'englishNormal', min: 1, max: MAX_WORK_REALM_TITLE_LENGTH });\nexport const REALM_DESCRIPTION_INPUT = defineInputFormat({ label: 'Realm description', format: 'none', min: 1, max: MAX_WORK_REALM_DESCRIPTION_LENGTH });\nexport const CHAPTER_TITLE_INPUT = defineInputFormat({ label: 'Chapter title', format: 'englishNormal', min: 1, max: MAX_CHAPTER_TITLE_LENGTH });\nexport const CHAPTER_CONTENT_INPUT = defineInputFormat({ label: 'Chapter text', format: 'none', min: 0, max: MAX_CHAPTER_CONTENT_LENGTH });\nexport const TUNE_TRACK_TITLE_INPUT = defineInputFormat({ label: 'Track title', format: 'englishNormal', min: 1, max: MAX_TUNE_TRACK_TITLE_LENGTH });\nexport const TUNE_TRACK_DESCRIPTION_INPUT = defineInputFormat({ label: 'Track description', format: 'none', min: 0, max: MAX_TUNE_TRACK_DESCRIPTION_LENGTH });\nexport const TELEVISION_EPISODE_TITLE_INPUT = defineInputFormat({ label: 'Episode title', format: 'englishNormal', min: 1, max: MAX_TELEVISION_EPISODE_TITLE_LENGTH });\nexport const TELEVISION_EPISODE_DESCRIPTION_INPUT = defineInputFormat({ label: 'Episode description', format: 'none', min: 0, max: MAX_TELEVISION_EPISODE_DESCRIPTION_LENGTH });\n/** An admin's reason for denying a published change request; the deny itself requires it. */\nexport const HALL_CHANGE_REQUEST_DENY_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_HALL_CHANGE_REQUEST_REASON_LENGTH });\nexport const THRESHOLD_REVIEW_NOTES_INPUT = defineInputFormat({ label: 'Review notes', format: 'none', min: 0, max: MAX_THRESHOLD_REVIEW_NOTES_LENGTH });\nexport const WORK_FILE_FOLDER_NAME_INPUT = defineInputFormat({ label: 'Folder name', format: 'singleLine', min: 1, max: MAX_FILE_FOLDER_NAME_LENGTH });\nexport const REALM_FILE_FOLDER_NAME_INPUT = defineInputFormat({ label: 'Folder name', format: 'singleLine', min: 1, max: MAX_FILE_FOLDER_NAME_LENGTH });\n\n/** A field as a published change request proposes it: its authoring declaration, except that a\n * proposal always carries text — an optional field cannot be changed to nothing. */\nfunction proposedText<const S extends InputFormatSpec>(declaration: S) {\n return defineInputFormat({ ...declaration, min: Math.max(declaration.min, 1) });\n}\n\n/**\n * Each published surface's changeable text fields and the declaration a proposed value must meet.\n * A Tale / Tune / Television detail is the Work's own title and description, so it takes the Work's\n * declarations; a Realm proposal takes the Realm's.\n */\nexport const HALL_CONTENT_CHANGE_REQUEST_INPUTS: {\n readonly [S in Exclude<ModerationClearableSurface, 'workProject'>]: Readonly<\n Record<(typeof MODERATION_CLEARABLE_TEXT_FIELDS)[S][number], TextFieldDeclaration>\n >;\n} = {\n tale: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n tune: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n television: { title: WORK_TITLE_INPUT, description: WORK_DESCRIPTION_INPUT },\n chapter: { title: CHAPTER_TITLE_INPUT, content: proposedText(CHAPTER_CONTENT_INPUT) },\n tuneTrack: { title: TUNE_TRACK_TITLE_INPUT, description: proposedText(TUNE_TRACK_DESCRIPTION_INPUT) },\n televisionEpisode: {\n title: TELEVISION_EPISODE_TITLE_INPUT,\n description: proposedText(TELEVISION_EPISODE_DESCRIPTION_INPUT),\n },\n workRealm: { workingTitle: REALM_NAME_INPUT, workingDescription: REALM_DESCRIPTION_INPUT },\n};\n\n// --- Commissions, auditions, and the guild ---\n\nexport const COMMISSION_TITLE_INPUT = defineInputFormat({ label: 'Commission title', format: 'englishNormal', min: 1, max: MAX_COMMISSION_TITLE_LENGTH });\nexport const COMMISSION_DESCRIPTION_INPUT = defineInputFormat({ label: 'Commission description', format: 'none', min: 1, max: MAX_COMMISSION_DESCRIPTION_LENGTH });\nexport const COMMISSION_COVER_LETTER_INPUT = defineInputFormat({ label: 'Cover letter', format: 'none', min: 1, max: MAX_COMMISSION_DESCRIPTION_LENGTH });\nexport const AUDITION_TITLE_INPUT = defineInputFormat({ label: 'Audition title', format: 'englishNormal', min: 1, max: MAX_AUDITION_TITLE_LENGTH });\nexport const AUDITION_DESCRIPTION_INPUT = defineInputFormat({ label: 'Audition description', format: 'none', min: 0, max: MAX_AUDITION_DESCRIPTION_LENGTH });\nexport const GUILD_INVITE_MESSAGE_INPUT = defineInputFormat({ label: 'Invite message', format: 'none', min: 1, max: MAX_GUILD_INVITE_MESSAGE_LENGTH });\nexport const GUILD_CHAT_CHANNEL_NAME_INPUT = defineInputFormat({ label: 'Channel name', format: 'singleLine', min: 1, max: MAX_GUILD_CHAT_CHANNEL_NAME_LENGTH });\nexport const GUILD_CHAT_CHANNEL_DESCRIPTION_INPUT = defineInputFormat({ label: 'Channel description', format: 'none', min: 0, max: MAX_GUILD_CHAT_CHANNEL_DESCRIPTION_LENGTH });\n\n// --- Posts, messages, and chat ---\n\n/** A Square post's text: the text post and a media post's caption are one field. */\nexport const SQUARE_POST_TEXT_INPUT = defineInputFormat({ label: 'Post', format: 'none', min: 1, max: MAX_POST_LENGTH });\n/** A message in an admin-support thread: the live chat message's format and bounds, from the chat contract. */\nexport const SUPPORT_THREAD_MESSAGE_INPUT = defineInputFormat({\n label: 'Message',\n format: CHAT_MESSAGE_TEXT_INPUT.format,\n min: CHAT_MESSAGE_TEXT_INPUT.min,\n max: CHAT_MESSAGE_TEXT_INPUT.max,\n});\n/** A support thread's or an admin message's subject. */\nexport const ADMIN_DISPATCH_SUBJECT_INPUT = defineInputFormat({ label: 'Subject', format: 'singleLine', min: 1, max: MAX_ADMIN_DISPATCH_SUBJECT_LENGTH });\n/** A support thread's first message, and the body of an admin message or warning. */\nexport const ADMIN_DISPATCH_MESSAGE_INPUT = defineInputFormat({ label: 'Message', format: 'none', min: 1, max: MAX_ADMIN_DISPATCH_INITIAL_TEXT_LENGTH });\nexport const BROADCAST_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_BROADCAST_TITLE_LENGTH });\nexport const BROADCAST_MESSAGE_INPUT = defineInputFormat({ label: 'Message', format: 'none', min: 1, max: MAX_NOTIFICATION_MESSAGE_LENGTH });\n\n// --- Accounts and members ---\n\nexport const USERNAME_INPUT = defineInputFormat({ label: 'Username', format: 'englishNormalNoSpaces', min: USERNAME_MIN_LENGTH, max: USERNAME_MAX_LENGTH });\nexport const ARTISAN_REGION_INPUT = defineInputFormat({ label: 'Region', format: 'singleLine', min: 0, max: MAX_ARTISAN_LOCATION_LENGTH });\n/** A feedback suggestion: one word of English letters, stored lowercase. */\nexport const FEEDBACK_SUGGESTION_INPUT = defineInputFormat({ label: 'Suggestion', format: 'englishLettersOnly', min: 1, max: MAX_FEEDBACK_SUGGESTION_LENGTH });\nexport const APPEAL_MESSAGE_INPUT = defineInputFormat({ label: 'Appeal message', format: 'none', min: 1, max: MAX_APPEAL_MESSAGE_LENGTH });\n/** A report's comment, and an admin's reason for marking NCII evidence. */\nexport const REPORT_COMMENT_INPUT = defineInputFormat({ label: 'Comment', format: 'none', min: 1, max: MAX_REPORT_COMMENT_LENGTH });\n/** The name of a theme a member builds in Theme Studio. */\nexport const THEME_NAME_INPUT = defineInputFormat({ label: 'Theme name', format: 'singleLine', min: 1, max: MAX_THEME_NAME_LENGTH });\n\n// --- Admin and moderation ---\n\n/** The reason for hiding a Work, a Realm, or a Hall sub-item. */\nexport const HIDE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\nexport const RETITLE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_REQUIRE_RETITLE_REASON_LENGTH });\nexport const CLEAR_TEXT_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_REQUIRE_RETITLE_REASON_LENGTH });\n/** The reason on a reported item's hide or removal; the action itself requires it. */\nexport const MODERATION_ACTION_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\n/** An admin's reason for an account action — a suspension, a ban, a forced username reset —\n * or a forced display-name reset's note. */\nexport const ACCOUNT_ACTION_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\n/** An admin's optional note on a reinstatement. */\nexport const ACCOUNT_REINSTATE_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\nexport const USER_FACING_REASON_DETAIL_INPUT = defineInputFormat({ label: 'Reason detail', format: 'none', min: 0, max: MAX_USER_FACING_REASON_DETAIL_LENGTH });\n/** The admin note on a report's or a safety case's close-out. */\nexport const CLOSE_OUT_ADMIN_NOTE_INPUT = defineInputFormat({ label: 'Admin note', format: 'none', min: 0, max: MAX_SAFETY_ADMIN_NOTE_LENGTH });\n/** The resolution note an admin leaves when checking in an admin task (an ops anomaly's disposition). */\nexport const ADMIN_TASK_RESOLUTION_INPUT = defineInputFormat({ label: 'Resolution note', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\nexport const APPEAL_REVIEW_NOTES_INPUT = defineInputFormat({ label: 'Review notes', format: 'none', min: 0, max: MAX_APPEAL_REVIEW_NOTES_LENGTH });\n/** A pledge refund denial reason, shown to the requester; the deny itself requires it. */\nexport const PLEDGE_REFUND_DENIAL_REASON_INPUT = defineInputFormat({ label: 'Denial reason', format: 'none', min: 1, max: MAX_USER_FACING_REASON_LENGTH });\nexport const CURATED_PROFANITY_TERM_INPUT = defineInputFormat({\n label: 'Word',\n format: 'singleLine',\n min: MIN_CURATED_PROFANITY_TERM_LENGTH,\n max: MAX_CURATED_PROFANITY_TERM_LENGTH,\n});\nexport const MAINTENANCE_MESSAGE_INPUT = defineInputFormat({ label: 'Maintenance message', format: 'none', min: 0, max: MAX_MAINTENANCE_MESSAGE_LENGTH });\n/** The site announcement banner; empty clears it. */\nexport const ANNOUNCEMENT_MESSAGE_INPUT = defineInputFormat({ label: 'Announcement', format: 'none', min: 0, max: MAX_ANNOUNCEMENT_MESSAGE_LENGTH });\nexport const APP_VERSION_INPUT = defineInputFormat({ label: 'App version', format: 'none', min: 1, max: MAX_APP_VERSION_LENGTH });\n/** The optional milestone evidence an admin records with an app-mode flip. */\nexport const APP_MODE_FLIP_EVIDENCE_INPUT = defineInputFormat({ label: 'Milestone evidence', format: 'none', min: 0, max: MAX_INTERNAL_REASON_LENGTH });\n/** The optional reason an admin records when closing an account discovered to be under 13. */\nexport const CLOSE_UNDER_13_REASON_INPUT = defineInputFormat({ label: 'Reason', format: 'none', min: 0, max: MAX_UNDER_13_CLOSE_REASON_LENGTH });\n\n// --- The safety console ---\n\nexport const TAKE_IT_DOWN_VALIDITY_RATIONALE_INPUT = defineInputFormat({ label: 'Rationale', format: 'none', min: MIN_SAFETY_RATIONALE_LENGTH, max: MAX_NCII_RATIONALE_LENGTH });\n/** An operator's internal reason for reopening a safety case or taking a safety account action. */\nexport const SAFETY_INTERNAL_REASON_INPUT = defineInputFormat({ label: 'Internal reason', format: 'none', min: MIN_SAFETY_RATIONALE_LENGTH, max: MAX_INTERNAL_REASON_LENGTH });\nexport const NCMEC_ARTIFACT_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'singleLine', min: 0, max: MAX_SAFETY_ARTIFACT_DESCRIPTION_LENGTH });\nexport const NCMEC_PORTAL_PROOF_TEXT_INPUT = defineInputFormat({ label: 'Proof note', format: 'none', min: 0, max: MAX_NCMEC_PORTAL_PROOF_TEXT_LENGTH });\nexport const NCMEC_CORRECTION_REASON_INPUT = defineInputFormat({ label: 'Correction reason', format: 'none', min: 1, max: MAX_INTERNAL_REASON_LENGTH });\n\n// --- Kept as typed: the legal public documents ---\n\nexport const FUTURE_PLAN_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_FUTURE_PLAN_TITLE_LENGTH, keepAsTyped: true });\nexport const FUTURE_PLAN_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_FUTURE_PLAN_DESCRIPTION_LENGTH, keepAsTyped: true });\nexport const PLATFORM_RULE_TITLE_INPUT = defineInputFormat({ label: 'Title', format: 'singleLine', min: 1, max: MAX_PLATFORM_RULE_TITLE_LENGTH, keepAsTyped: true });\nexport const PLATFORM_RULE_DESCRIPTION_INPUT = defineInputFormat({ label: 'Description', format: 'none', min: 1, max: MAX_PLATFORM_RULE_DESCRIPTION_LENGTH, keepAsTyped: true });\nexport const AGREEMENT_POINT_INPUT = defineInputFormat({ label: 'Agreement point', format: 'singleLine', min: 1, max: MAX_AGREEMENT_POINT_LENGTH, keepAsTyped: true });\n/** A legal page's section heading, and a DMCA contact block's heading. */\nexport const CONTENT_PAGE_HEADING_INPUT = defineInputFormat({ label: 'Heading', format: 'singleLine', min: 1, max: MAX_CONTENT_PAGE_HEADING_LENGTH, keepAsTyped: true });\n/** A legal page's section body (empty is a bare divider heading), and the DMCA policy's intro. */\nexport const CONTENT_PAGE_BODY_INPUT = defineInputFormat({ label: 'Text', format: 'none', min: 0, max: MAX_CONTENT_PAGE_BODY_LENGTH, keepAsTyped: true });\nexport const DMCA_CONTACT_LABEL_INPUT = defineInputFormat({ label: 'Label', format: 'singleLine', min: 1, max: MAX_DMCA_CONTACT_LABEL_LENGTH, keepAsTyped: true });\nexport const DMCA_CONTACT_VALUE_INPUT = defineInputFormat({ label: 'Value', format: 'singleLine', min: 1, max: MAX_DMCA_CONTACT_VALUE_LENGTH, keepAsTyped: true });\nexport const TAKE_IT_DOWN_COPY_INPUT = defineInputFormat({ label: 'Text', format: 'none', min: 1, max: MAX_TAKE_IT_DOWN_COPY_LENGTH, keepAsTyped: true });\n\n// --- Kept as typed: the NCII statutory fields ---\n\nexport const NCII_REQUESTER_NAME_INPUT = defineInputFormat({ label: 'Your name', format: 'singleLine', min: 1, max: MAX_NCII_REQUESTER_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_SIGNED_NAME_INPUT = defineInputFormat({ label: 'Signature', format: 'singleLine', min: 1, max: MAX_NCII_SIGNED_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_REPRESENTED_PERSON_NAME_INPUT = defineInputFormat({ label: 'Name of the person you represent', format: 'singleLine', min: 1, max: MAX_NCII_REPRESENTED_PERSON_NAME_LENGTH, keepAsTyped: true });\nexport const NCII_AUTHORITY_BASIS_INPUT = defineInputFormat({ label: 'Basis of authority', format: 'none', min: 1, max: MAX_NCII_AUTHORITY_BASIS_LENGTH, keepAsTyped: true });\nexport const NCII_NONCONSENT_STATEMENT_INPUT = defineInputFormat({ label: 'Statement', format: 'none', min: 1, max: MAX_NCII_NONCONSENT_STATEMENT_LENGTH, keepAsTyped: true });\nexport const NCII_SUPPORTING_FACTS_INPUT = defineInputFormat({ label: 'Supporting facts', format: 'none', min: 0, max: MAX_NCII_SUPPORTING_FACTS_LENGTH, keepAsTyped: true });\n"]}
|
|
@@ -4,8 +4,8 @@ export declare const CommissionAttachmentSchema: z.ZodObject<{
|
|
|
4
4
|
name: z.ZodString;
|
|
5
5
|
mediaAssetId: z.ZodString;
|
|
6
6
|
type: z.ZodEnum<{
|
|
7
|
-
image: "image";
|
|
8
7
|
video: "video";
|
|
8
|
+
image: "image";
|
|
9
9
|
audio: "audio";
|
|
10
10
|
}>;
|
|
11
11
|
size: z.ZodNumber;
|
|
@@ -20,8 +20,8 @@ export declare const FullCommissionListingSchema: z.ZodObject<{
|
|
|
20
20
|
name: z.ZodString;
|
|
21
21
|
mediaAssetId: z.ZodString;
|
|
22
22
|
type: z.ZodEnum<{
|
|
23
|
-
image: "image";
|
|
24
23
|
video: "video";
|
|
24
|
+
image: "image";
|
|
25
25
|
audio: "audio";
|
|
26
26
|
}>;
|
|
27
27
|
size: z.ZodNumber;
|
|
@@ -58,8 +58,8 @@ export declare const CommissionProposalSchema: z.ZodObject<{
|
|
|
58
58
|
proposalText: z.ZodString;
|
|
59
59
|
proposalFileAssetId: z.ZodOptional<z.ZodString>;
|
|
60
60
|
proposalFileType: z.ZodOptional<z.ZodEnum<{
|
|
61
|
-
image: "image";
|
|
62
61
|
video: "video";
|
|
62
|
+
image: "image";
|
|
63
63
|
audio: "audio";
|
|
64
64
|
}>>;
|
|
65
65
|
createdBy: z.ZodObject<{
|
|
@@ -94,8 +94,8 @@ export declare const CreateCommissionProposalTextResultSchema: z.ZodObject<{
|
|
|
94
94
|
proposalText: z.ZodString;
|
|
95
95
|
proposalFileAssetId: z.ZodOptional<z.ZodString>;
|
|
96
96
|
proposalFileType: z.ZodOptional<z.ZodEnum<{
|
|
97
|
-
image: "image";
|
|
98
97
|
video: "video";
|
|
98
|
+
image: "image";
|
|
99
99
|
audio: "audio";
|
|
100
100
|
}>>;
|
|
101
101
|
createdBy: z.ZodObject<{
|
|
@@ -388,8 +388,8 @@ export declare const FuturePlanItemSchema: z.ZodObject<{
|
|
|
388
388
|
order: z.ZodNumber;
|
|
389
389
|
videoUrl: z.ZodOptional<z.ZodString>;
|
|
390
390
|
mediaType: z.ZodOptional<z.ZodEnum<{
|
|
391
|
-
image: "image";
|
|
392
391
|
video: "video";
|
|
392
|
+
image: "image";
|
|
393
393
|
audio: "audio";
|
|
394
394
|
other: "other";
|
|
395
395
|
}>>;
|
|
@@ -404,8 +404,8 @@ export declare const FuturePlansDocumentSchema: z.ZodObject<{
|
|
|
404
404
|
order: z.ZodNumber;
|
|
405
405
|
videoUrl: z.ZodOptional<z.ZodString>;
|
|
406
406
|
mediaType: z.ZodOptional<z.ZodEnum<{
|
|
407
|
-
image: "image";
|
|
408
407
|
video: "video";
|
|
408
|
+
image: "image";
|
|
409
409
|
audio: "audio";
|
|
410
410
|
other: "other";
|
|
411
411
|
}>>;
|
|
@@ -179,6 +179,7 @@ export declare const ERASURE_FATES_BY_COLLECTION_PATH: {
|
|
|
179
179
|
readonly '_appConfig/privacyPolicy': readonly ["none"];
|
|
180
180
|
readonly '_appConfig/takeItDownPageCopy': readonly ["none"];
|
|
181
181
|
readonly '_appConfig/dmcaPolicy': readonly ["none"];
|
|
182
|
+
readonly '_appConfig/systemUidSlots': readonly ["retain"];
|
|
182
183
|
readonly '_serverData/agePolicy': readonly ["none"];
|
|
183
184
|
readonly '_serverData/nciiPolicy': readonly ["retain"];
|
|
184
185
|
readonly '_serverData/privilegedReviewerSecurity': readonly ["none"];
|
|
@@ -188,6 +189,7 @@ export declare const ERASURE_FATES_BY_COLLECTION_PATH: {
|
|
|
188
189
|
readonly '_systemData/reservedUsernames': readonly ["none"];
|
|
189
190
|
readonly '_systemData/blockedFranchiseNames': readonly ["none"];
|
|
190
191
|
readonly '_systemData/appMode': readonly ["none"];
|
|
192
|
+
readonly '_systemData/systemVideoSlots': readonly ["none"];
|
|
191
193
|
};
|
|
192
194
|
/** Every registered path whose declared fates include `fate`. */
|
|
193
195
|
export declare function collectionPathsWithErasureFate(fate: ErasureFate): RegisteredCollectionPath[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erasure-fates.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,eAAO,MAAM,iBAAiB;;;;;EAAwB,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAW5D,eAAO,MAAM,gCAAgC
|
|
1
|
+
{"version":3,"file":"erasure-fates.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,oDAAqD,CAAC;AAChF,eAAO,MAAM,iBAAiB;;;;;EAAwB,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAW5D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8PkC,CAAC;AAEhF,iEAAiE;AACjE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,wBAAwB,EAAE,CAI5F;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC,EACnE,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,CAI9C"}
|
|
@@ -254,6 +254,8 @@ export const ERASURE_FATES_BY_COLLECTION_PATH = {
|
|
|
254
254
|
'_appConfig/privacyPolicy': NONE,
|
|
255
255
|
'_appConfig/takeItDownPageCopy': NONE,
|
|
256
256
|
'_appConfig/dmcaPolicy': NONE,
|
|
257
|
+
// A slot naming the erased member keeps the uid, which renders as Former Member.
|
|
258
|
+
'_appConfig/systemUidSlots': RETAIN,
|
|
257
259
|
'_serverData/agePolicy': NONE,
|
|
258
260
|
'_serverData/nciiPolicy': RETAIN,
|
|
259
261
|
'_serverData/privilegedReviewerSecurity': NONE,
|
|
@@ -264,6 +266,7 @@ export const ERASURE_FATES_BY_COLLECTION_PATH = {
|
|
|
264
266
|
'_systemData/reservedUsernames': NONE,
|
|
265
267
|
'_systemData/blockedFranchiseNames': NONE,
|
|
266
268
|
'_systemData/appMode': NONE,
|
|
269
|
+
'_systemData/systemVideoSlots': NONE,
|
|
267
270
|
};
|
|
268
271
|
/** Every registered path whose declared fates include `fate`. */
|
|
269
272
|
export function collectionPathsWithErasureFate(fate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erasure-fates.js","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"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","sourcesContent":["// The account-erasure fate of every registered Firestore path — what erasing one member does to\n// the documents there that belong to or name them. TOTAL over COLLECTION_SCHEMAS, so a new\n// collection cannot be registered without declaring its fate; the erasure scrub and the published\n// deletion policy both follow it.\n//\n// A path listing two fates splits by the per-document rule written at its entry. Every\n// destructive fate is subject to the scrub's hold carve-out: a document under a safety hold is left\n// untouched and the erasure stays incomplete until the hold is released.\n\nimport { z } from 'zod';\nimport type { AdminDispatch } from './messaging.js';\nimport type { RegisteredCollectionPath } from './registry.js';\n\n/**\n * - `delete` — the member's documents there are deleted; a media asset is retired (its bytes\n * removed, its doc tombstoned).\n * - `anonymize` — kept, with the member's identity rewritten in place (the Former Member identity,\n * the chat tombstone, `reporterUid: 'erased'`, blanked personal fields).\n * - `retain` — kept unchanged; a uid it holds renders as Former Member through the anonymized\n * public mirror.\n * - `none` — no document there belongs to or names a member.\n */\nexport const ERASURE_FATES = ['delete', 'anonymize', 'retain', 'none'] as const;\nexport const ErasureFateSchema = z.enum(ERASURE_FATES);\nexport type ErasureFate = z.infer<typeof ErasureFateSchema>;\n\ntype ErasureFates = readonly [ErasureFate, ...ErasureFate[]];\n\nconst DELETE = ['delete'] as const;\nconst ANONYMIZE = ['anonymize'] as const;\nconst RETAIN = ['retain'] as const;\nconst NONE = ['none'] as const;\n/** A Work-owned path: deleted with a solo unpublished draft Work, retained on any other Work. */\nconst SOLO_DRAFT_WORK = ['delete', 'retain'] as const;\n\nexport const ERASURE_FATES_BY_COLLECTION_PATH = {\n // ===== The member's own account =====\n 'userProfiles/{userId}': ANONYMIZE,\n 'userProfiles/{userId}/privateData/{userId}': DELETE,\n // Viewing history, resume points, and watchlist.\n 'userProfiles/{userId}/privateData/hallLibraryPreferences': DELETE,\n 'userProfiles/{userId}/profileCraftSkills/{craftSkillId}': DELETE,\n 'userProfiles/{userId}/auditionVotes/{auditionId}': DELETE,\n 'userProfiles/{userId}/mentionHistory/{docId}': DELETE,\n 'userProfiles/{userId}/notificationHistory/{notificationId}': DELETE,\n // The member's like history; the like counts on posts stay.\n 'userProfiles/{userId}/userLikes/likeHistory/squareStreetzLikes/{postId}': DELETE,\n 'publicUsers/{uid}': ANONYMIZE,\n 'reservedDisplayNames/{displayNameUppercase}': DELETE,\n // The compliance record of the erasure itself: kept permanently, account id only.\n 'accountDeletionRequests/{uid}': RETAIN,\n // No scrub step: the account-status drain deletes the entry on its next run, once the Auth user is gone.\n 'statusReconcileQueue/{uid}': DELETE,\n 'ageAttestationNonces/{nonceHash}': RETAIN,\n\n // ===== Work / Realm / Guild =====\n 'allWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n // Otherwise the membership is kept as `departed`.\n 'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/publicGuildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}/workFiles/{workFileId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/hallSubmissionReservation/reservation': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}/taleChapters/{chapterId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}/tuneTracks/{trackId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}/televisionEpisodes/{episodeId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildChatChannels/{guildChatChannelId}': SOLO_DRAFT_WORK,\n 'publicWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n // Deleted with a draft Realm the solo draft founded and no other Work joined.\n 'workRealms/{workRealmId}': SOLO_DRAFT_WORK,\n 'reservedRealmNames/{workingTitleUppercase}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}/realmFileFolders/{realmFileFolderId}': RETAIN,\n // The two parties' invite, and how a guildmate joined with stake: an open invite is closed\n // (cancelled or declined) and every invite is kept, the member shown as Former Member.\n 'guildInviteConversations/{guildInviteId}': RETAIN,\n // A file the member uploaded is deleted, its bytes retired first (only its uploader controls it);\n // a file the other party uploaded is theirs and stays.\n 'guildInviteConversations/{guildInviteId}/conversationFiles/{conversationFileId}': ['delete', 'retain'],\n 'thresholdItems/{thresholdItemId}': SOLO_DRAFT_WORK,\n 'hallItems/{hallItemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTales/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTunes/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTelevision/{itemId}': NONE,\n // The Work's record — every guildmate reads it and it holds the target's one open request; the\n // proposer renders as Former Member, and a pending request stays open for the admin to decide.\n 'hallContentChangeRequests/{changeRequestId}': RETAIN,\n\n // ===== Square / Social =====\n 'squareStreetzFeed/activePosts/socialPosts/{postId}': DELETE,\n 'squareStreetzFeed/trendingPosts': NONE,\n // Both directions; each outbound edge decrements its target's count.\n 'followEdges/{followEdgeId}': DELETE,\n // The member's own counter; other members' counters name no one.\n 'followCounters/{followCounterId}': DELETE,\n // A job whose post the member would author is deleted in every status, so no pending, stale, or\n // replayed job posts under the erased account; a Work-authored announcement is retained.\n 'squareAnnouncementJobs/{jobId}': ['delete', 'retain'],\n 'craftSkillsByTag/{tag}/taggedCraftSkills/{compositeId}': DELETE,\n\n // ===== Commission / Audition =====\n // A posting belongs to its Work; its creator renders as Former Member.\n 'commissionListings/{commissionListingId}': RETAIN,\n 'commissionListings/{commissionListingId}/commissionProposals/{commissionProposalId}': DELETE,\n 'auditionBoard/{auditionId}': RETAIN,\n 'auditionBoard/{auditionId}/auditionEntries/{auditionEntryId}': DELETE,\n\n // ===== Payments =====\n 'pledgePayments/{pledgePaymentId}': RETAIN,\n // Money, dispute, and checkout-consent evidence, and the money ledger's integrity record: each kept\n // for as long as the pledge ledger it serves.\n 'pledgePaymentProviderRefs/{pledgePaymentId}': RETAIN,\n 'processedStripeEvents/{stripeEventId}': NONE,\n 'pledgePaymentLedgerEvents/{ledgerId}': RETAIN,\n 'paymentWebhookQuarantine/{stripeEventId}': RETAIN,\n 'pledgePaymentTotals/summary': NONE,\n // Money and chargeback evidence, kept account-id only for as long as the pledge ledger.\n 'pledgeRefundRequests/{requestId}': RETAIN,\n\n // ===== Reports / moderation / admin =====\n // A report the member filed: an ordinary report's reporter is anonymized; a report that opened a\n // child-safety or NCII case is retained with the case. A report someone else filed about the\n // member is theirs and the evidence behind a decision: retained, the member an account id, with\n // its frozen evidence snapshot.\n 'contentReports/{reportId}': ['anonymize', 'retain'],\n 'contentReports/{reportId}/publicProjection/{reportId}': NONE,\n 'contentReports/{reportId}/privateDetails/snapshot': RETAIN,\n // Ordinary report: deleted. Protected-case report: retained with the case.\n 'contentReports/{reportId}/privateDetails/narrative': ['delete', 'retain'],\n 'contentReports/{reportId}/privateDetails/narrativeEscalation': RETAIN,\n 'activeReportGroups/{groupKey}': RETAIN,\n 'activeReportGroups/{groupKey}/reportGroupCountedReports/{reportId}': NONE,\n // The member's appeal task, a solo draft's review task, and an own support thread's task are\n // deleted with their source; every other task is retained.\n 'adminTasks/{taskId}': ['delete', 'retain'],\n 'contentViolations/{violationId}': DELETE,\n 'moderationCascadeManifests/{cascadeId}': RETAIN,\n 'moderationCascadeManifests/{cascadeId}/changedDocs/{changedDocId}': RETAIN,\n 'auditEvents/{eventId}': RETAIN,\n 'stakeShareAuditEvents/{eventId}': RETAIN,\n // By `adminDispatchErasureFate`.\n 'pendingAdminDispatches/{adminDispatchId}': ['delete', 'anonymize'],\n 'pendingAdminDispatches/{adminDispatchId}/conversationMessages/{adminDispatchMessageId}': ['delete', 'anonymize'],\n // Deleted with a deleted thread; a kept thread keeps its files.\n 'pendingAdminDispatches/{adminDispatchId}/conversationFiles/{conversationFileId}': ['delete', 'retain'],\n // The member's own read position — nobody else reads it, so it goes with them.\n 'pendingAdminDispatches/{adminDispatchId}/dispatchReadMarkers/{uid}': DELETE,\n // A link others may already have shared; its creator is an account id only.\n 'shortLinks/{shortId}': RETAIN,\n // A suggestion is shared by everyone who sent the same word: the member is removed from its\n // submitter list, and the suggestion and its count stay.\n 'feedbackSubmissions/{feedbackType}/userSuggestions/{suggestionId}': ANONYMIZE,\n\n // ===== Media pipeline =====\n // A rejected upload's row is deleted with its violation; every other row is kept as an operational\n // record with its personal fields blanked and its staged original deleted, and a row still in\n // flight is made terminal so its activation job aborts instead of publishing.\n 'pendingMedia/{pendingMediaId}': ['delete', 'anonymize'],\n 'pendingMediaArchive/{pendingMediaId}': ['delete', 'anonymize'],\n // The member's own media is retired; media a Work owns is retained with the Work.\n 'mediaAssets/{mediaAssetId}': ['delete', 'retain'],\n // A job for the member's in-flight upload aborts through that upload's terminal row and is kept\n // as its closed record; every other job is retained.\n 'mediaActivationJobs/{jobId}': RETAIN,\n 'mediaCopyIntents/{newAssetId}': NONE,\n\n // ===== Notifications =====\n // Every notification sent to the member — its card, its delivery row in any state, its archive\n // job — is deleted. Another recipient's notification naming the member as actor is theirs: it is\n // kept, account id only, until its existing expiry. Admin cards are shared by the admin team, so\n // they only ever name the member as actor.\n 'activeUserNotifications/{notificationId}': ['delete', 'retain'],\n 'activeAdminNotifications/{notificationId}': RETAIN,\n 'adminNotificationHistory/{notificationId}': RETAIN,\n 'pendingNotifications/{notificationId}': ['delete', 'retain'],\n 'notificationDeliveries/{deliveryId}': ['delete', 'retain'],\n 'notificationFanoutJobs/{jobId}': RETAIN,\n 'notificationArchiveAllJobs/{jobId}': DELETE,\n\n // ===== Chat sync =====\n // Deleted LAST — after both chat legs are done, because their discovery reads these rows — so\n // no kept row re-seeds the member into a channel's membership.\n 'chatChannelAuthProjections/{authPairKey}': DELETE,\n 'chatScopeDegraded/{scopeKey}': RETAIN,\n 'chatScopeDegraded/{scopeKey}/chatScopeDegradedCauses/{causeId}': RETAIN,\n 'chatSyncEvents/{eventId}': RETAIN,\n 'chatSyncFanoutJobs/{jobId}': RETAIN,\n // Every unapplied opening message the member sent — pending or dead-lettered, whatever its\n // invite's state — is deleted before the live-chat leg, so it is never delivered under the erased\n // account (never seen, so nothing a kept conversation shows is lost); an applied row is retained\n // until its expiry.\n 'chatMessageOutbox/{commandId}': ['delete', 'retain'],\n 'chatAdminActionCommands/{requestId}': RETAIN,\n // The erasure's own anonymization work: the erasure completes only once every job for the member\n // is done; a done job is retained until its expiry.\n 'chatHistoryAnonymizationJobs/{jobId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}/affectedChunks/{chunkOrdinal}': NONE,\n // An operator ledger row: a room's address (an inbox room's names its member) and ids only,\n // kept like the sync events it sits beside.\n 'chatParkedDeliveries/{deliveryId}': RETAIN,\n\n // ===== Public documents (admin-written) =====\n 'publicDocuments/{documentId}/publicDocumentVersions/{versionId}': RETAIN,\n 'publicDocumentDrafts/{documentId}': RETAIN,\n 'publicDocumentReleases/{releaseId}': RETAIN,\n\n // ===== Trust & Safety — retained under the safety evidence profile =====\n 'childSafetyCaseList/{caseId}': RETAIN,\n 'activeSafetyCaseAlerts/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}/sourceSignals/{signalId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}/childSafetyDecisionViews/{viewId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}/childSafetyCaseAccountHistory/{historyId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseCrossoverItems/{mediaAssetId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecSubmissionFiles/{fileId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecCompletionProof/record': RETAIN,\n 'childSafetyCases/{caseId}/legalProcess/{eventId}': RETAIN,\n 'childSafetyCases/{caseId}/portalReceiptArtifacts/{artifactId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecPortalCorrections/{correctionId}': RETAIN,\n 'childSafetyOwningAliases/{aliasId}': RETAIN,\n 'safetyHoldRefs/{holdRefId}': RETAIN,\n 'safetyHoldResources/{resourceKeyHash}': RETAIN,\n 'safetyResourceCommands/{commandDocId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/authorizedRequests/{requestId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/bypassRefs/{refId}': RETAIN,\n 'safetyEvidenceManifests/{manifestId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobItems/{itemId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobDisposition/{locationId}': RETAIN,\n // The `reportSubmit` row of an ordinary report the member filed is deleted; a protected-case\n // report's row is retained with the case, and a routine upload row for its existing 90-day window.\n 'eventProvenance/{eventId}': ['delete', 'retain'],\n 'quarantineSagaJobs/{caseId}': RETAIN,\n 'quarantineSagaJobs/{caseId}/relatedAssets/{assetId}': RETAIN,\n 'ncmecSubmissionJobs/{ncmecJobId}': RETAIN,\n 'accountActionCommands/{accountActionCommandId}': RETAIN,\n 'safetySlaMonitors/{monitorId}': NONE,\n 'safetyMonitorHeartbeat/global': NONE,\n // An admin's live step-up secret: no reader once the account is gone, and every enrollment and\n // verification is already recorded in the audit log.\n 'operatorStepUp/{uid}': DELETE,\n 'sweepState/{sweepName}': NONE,\n 'nciiAllegations/{allegationId}': RETAIN,\n 'takeItDownRequests/{requestId}': RETAIN,\n 'takeItDownRequests/{requestId}/privateDetails/requester': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownSubmissions/{submissionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}/takeItDownValidityRationale/record': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownActions/{actionId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidenceDisposition/{evidenceId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidence/{evidenceId}': RETAIN,\n 'nciiCases/{caseId}': RETAIN,\n 'nciiCases/{caseId}/allegationLinks/{allegationId}': RETAIN,\n 'nciiCases/{caseId}/requestLinks/{requestId}': RETAIN,\n 'nciiCases/{caseId}/removalActions/{actionId}': RETAIN,\n 'nciiCases/{caseId}/blockedHashes/{hashId}': RETAIN,\n 'nciiCases/{caseId}/closureEvents/{eventId}': RETAIN,\n 'nciiRetainedEvidenceInventory/{inventoryId}': RETAIN,\n 'nciiInventoryDeadLetter/{inventoryId}': RETAIN,\n 'nciiTemporaryHolds/{holdId}': RETAIN,\n 'nciiRemovalJobs/{jobId}': RETAIN,\n 'nciiRemovalJobs/{jobId}/nciiRemovalTargets/{targetKeyHash}': RETAIN,\n\n // ===== Singletons =====\n '_appConfig/app': NONE,\n '_appConfig/futurePlans': NONE,\n '_appConfig/rulesAndAgreements': NONE,\n '_appConfig/termsOfService': NONE,\n '_appConfig/privacyPolicy': NONE,\n '_appConfig/takeItDownPageCopy': NONE,\n '_appConfig/dmcaPolicy': NONE,\n '_serverData/agePolicy': NONE,\n '_serverData/nciiPolicy': RETAIN,\n '_serverData/privilegedReviewerSecurity': NONE,\n '_serverData/feedbackLists/feedbackAliases/{aliasId}': NONE,\n // An erased admin is removed from the roster through the roster core.\n '_systemData/adminList': ANONYMIZE,\n '_systemData/profanityList': NONE,\n '_systemData/reservedUsernames': NONE,\n '_systemData/blockedFranchiseNames': NONE,\n '_systemData/appMode': NONE,\n} as const satisfies { readonly [P in RegisteredCollectionPath]: ErasureFates };\n\n/** Every registered path whose declared fates include `fate`. */\nexport function collectionPathsWithErasureFate(fate: ErasureFate): RegisteredCollectionPath[] {\n return (Object.keys(ERASURE_FATES_BY_COLLECTION_PATH) as RegisteredCollectionPath[]).filter((path) =>\n (ERASURE_FATES_BY_COLLECTION_PATH[path] as ErasureFates).includes(fate),\n );\n}\n\n/**\n * The fate of a support thread that names the member being erased. Only the member's OWN user-party\n * thread — one they started, as its user — is theirs alone: it is deleted with its messages and\n * files. Every other thread naming them is kept with them shown as Former Member: one the admin\n * team started to them, a Work thread they started, and another member's thread they took part in\n * (an erased admin's replies never delete a member's thread).\n */\nexport function adminDispatchErasureFate(\n thread: Pick<AdminDispatch, 'partyKind' | 'initiatedBy' | 'userId'>,\n erasedUid: string,\n): Extract<ErasureFate, 'delete' | 'anonymize'> {\n return thread.partyKind === 'user' && thread.initiatedBy === 'user' && thread.userId === erasedUid\n ? 'delete'\n : 'anonymize';\n}\n"]}
|
|
1
|
+
{"version":3,"file":"erasure-fates.js","sourceRoot":"","sources":["../../src/doc-schemas/erasure-fates.ts"],"names":[],"mappings":"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","sourcesContent":["// The account-erasure fate of every registered Firestore path — what erasing one member does to\n// the documents there that belong to or name them. TOTAL over COLLECTION_SCHEMAS, so a new\n// collection cannot be registered without declaring its fate; the erasure scrub and the published\n// deletion policy both follow it.\n//\n// A path listing two fates splits by the per-document rule written at its entry. Every\n// destructive fate is subject to the scrub's hold carve-out: a document under a safety hold is left\n// untouched and the erasure stays incomplete until the hold is released.\n\nimport { z } from 'zod';\nimport type { AdminDispatch } from './messaging.js';\nimport type { RegisteredCollectionPath } from './registry.js';\n\n/**\n * - `delete` — the member's documents there are deleted; a media asset is retired (its bytes\n * removed, its doc tombstoned).\n * - `anonymize` — kept, with the member's identity rewritten in place (the Former Member identity,\n * the chat tombstone, `reporterUid: 'erased'`, blanked personal fields).\n * - `retain` — kept unchanged; a uid it holds renders as Former Member through the anonymized\n * public mirror.\n * - `none` — no document there belongs to or names a member.\n */\nexport const ERASURE_FATES = ['delete', 'anonymize', 'retain', 'none'] as const;\nexport const ErasureFateSchema = z.enum(ERASURE_FATES);\nexport type ErasureFate = z.infer<typeof ErasureFateSchema>;\n\ntype ErasureFates = readonly [ErasureFate, ...ErasureFate[]];\n\nconst DELETE = ['delete'] as const;\nconst ANONYMIZE = ['anonymize'] as const;\nconst RETAIN = ['retain'] as const;\nconst NONE = ['none'] as const;\n/** A Work-owned path: deleted with a solo unpublished draft Work, retained on any other Work. */\nconst SOLO_DRAFT_WORK = ['delete', 'retain'] as const;\n\nexport const ERASURE_FATES_BY_COLLECTION_PATH = {\n // ===== The member's own account =====\n 'userProfiles/{userId}': ANONYMIZE,\n 'userProfiles/{userId}/privateData/{userId}': DELETE,\n // Viewing history, resume points, and watchlist.\n 'userProfiles/{userId}/privateData/hallLibraryPreferences': DELETE,\n 'userProfiles/{userId}/profileCraftSkills/{craftSkillId}': DELETE,\n 'userProfiles/{userId}/auditionVotes/{auditionId}': DELETE,\n 'userProfiles/{userId}/mentionHistory/{docId}': DELETE,\n 'userProfiles/{userId}/notificationHistory/{notificationId}': DELETE,\n // The member's like history; the like counts on posts stay.\n 'userProfiles/{userId}/userLikes/likeHistory/squareStreetzLikes/{postId}': DELETE,\n 'publicUsers/{uid}': ANONYMIZE,\n 'reservedDisplayNames/{displayNameUppercase}': DELETE,\n // The compliance record of the erasure itself: kept permanently, account id only.\n 'accountDeletionRequests/{uid}': RETAIN,\n // No scrub step: the account-status drain deletes the entry on its next run, once the Auth user is gone.\n 'statusReconcileQueue/{uid}': DELETE,\n 'ageAttestationNonces/{nonceHash}': RETAIN,\n\n // ===== Work / Realm / Guild =====\n 'allWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n // Otherwise the membership is kept as `departed`.\n 'allWorkProjects/{workProjectId}/guildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/publicGuildmateUsers/{uid}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workFileFolders/{workFileFolderId}/workFiles/{workFileId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/hallSubmissionReservation/reservation': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTales/{taleId}/taleChapters/{chapterId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTunes/{tuneId}/tuneTracks/{trackId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/workProjectTelevision/{televisionId}/televisionEpisodes/{episodeId}': SOLO_DRAFT_WORK,\n 'allWorkProjects/{workProjectId}/guildChatChannels/{guildChatChannelId}': SOLO_DRAFT_WORK,\n 'publicWorkProjects/{workProjectId}': SOLO_DRAFT_WORK,\n // Deleted with a draft Realm the solo draft founded and no other Work joined.\n 'workRealms/{workRealmId}': SOLO_DRAFT_WORK,\n 'reservedRealmNames/{workingTitleUppercase}': SOLO_DRAFT_WORK,\n 'workRealms/{workRealmId}/realmFileFolders/{realmFileFolderId}': RETAIN,\n // The two parties' invite, and how a guildmate joined with stake: an open invite is closed\n // (cancelled or declined) and every invite is kept, the member shown as Former Member.\n 'guildInviteConversations/{guildInviteId}': RETAIN,\n // A file the member uploaded is deleted, its bytes retired first (only its uploader controls it);\n // a file the other party uploaded is theirs and stays.\n 'guildInviteConversations/{guildInviteId}/conversationFiles/{conversationFileId}': ['delete', 'retain'],\n 'thresholdItems/{thresholdItemId}': SOLO_DRAFT_WORK,\n 'hallItems/{hallItemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTales/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTunes/{itemId}': NONE,\n 'hallItems/{hallItemId}/hallItemTelevision/{itemId}': NONE,\n // The Work's record — every guildmate reads it and it holds the target's one open request; the\n // proposer renders as Former Member, and a pending request stays open for the admin to decide.\n 'hallContentChangeRequests/{changeRequestId}': RETAIN,\n\n // ===== Square / Social =====\n 'squareStreetzFeed/activePosts/socialPosts/{postId}': DELETE,\n 'squareStreetzFeed/trendingPosts': NONE,\n // Both directions; each outbound edge decrements its target's count.\n 'followEdges/{followEdgeId}': DELETE,\n // The member's own counter; other members' counters name no one.\n 'followCounters/{followCounterId}': DELETE,\n // A job whose post the member would author is deleted in every status, so no pending, stale, or\n // replayed job posts under the erased account; a Work-authored announcement is retained.\n 'squareAnnouncementJobs/{jobId}': ['delete', 'retain'],\n 'craftSkillsByTag/{tag}/taggedCraftSkills/{compositeId}': DELETE,\n\n // ===== Commission / Audition =====\n // A posting belongs to its Work; its creator renders as Former Member.\n 'commissionListings/{commissionListingId}': RETAIN,\n 'commissionListings/{commissionListingId}/commissionProposals/{commissionProposalId}': DELETE,\n 'auditionBoard/{auditionId}': RETAIN,\n 'auditionBoard/{auditionId}/auditionEntries/{auditionEntryId}': DELETE,\n\n // ===== Payments =====\n 'pledgePayments/{pledgePaymentId}': RETAIN,\n // Money, dispute, and checkout-consent evidence, and the money ledger's integrity record: each kept\n // for as long as the pledge ledger it serves.\n 'pledgePaymentProviderRefs/{pledgePaymentId}': RETAIN,\n 'processedStripeEvents/{stripeEventId}': NONE,\n 'pledgePaymentLedgerEvents/{ledgerId}': RETAIN,\n 'paymentWebhookQuarantine/{stripeEventId}': RETAIN,\n 'pledgePaymentTotals/summary': NONE,\n // Money and chargeback evidence, kept account-id only for as long as the pledge ledger.\n 'pledgeRefundRequests/{requestId}': RETAIN,\n\n // ===== Reports / moderation / admin =====\n // A report the member filed: an ordinary report's reporter is anonymized; a report that opened a\n // child-safety or NCII case is retained with the case. A report someone else filed about the\n // member is theirs and the evidence behind a decision: retained, the member an account id, with\n // its frozen evidence snapshot.\n 'contentReports/{reportId}': ['anonymize', 'retain'],\n 'contentReports/{reportId}/publicProjection/{reportId}': NONE,\n 'contentReports/{reportId}/privateDetails/snapshot': RETAIN,\n // Ordinary report: deleted. Protected-case report: retained with the case.\n 'contentReports/{reportId}/privateDetails/narrative': ['delete', 'retain'],\n 'contentReports/{reportId}/privateDetails/narrativeEscalation': RETAIN,\n 'activeReportGroups/{groupKey}': RETAIN,\n 'activeReportGroups/{groupKey}/reportGroupCountedReports/{reportId}': NONE,\n // The member's appeal task, a solo draft's review task, and an own support thread's task are\n // deleted with their source; every other task is retained.\n 'adminTasks/{taskId}': ['delete', 'retain'],\n 'contentViolations/{violationId}': DELETE,\n 'moderationCascadeManifests/{cascadeId}': RETAIN,\n 'moderationCascadeManifests/{cascadeId}/changedDocs/{changedDocId}': RETAIN,\n 'auditEvents/{eventId}': RETAIN,\n 'stakeShareAuditEvents/{eventId}': RETAIN,\n // By `adminDispatchErasureFate`.\n 'pendingAdminDispatches/{adminDispatchId}': ['delete', 'anonymize'],\n 'pendingAdminDispatches/{adminDispatchId}/conversationMessages/{adminDispatchMessageId}': ['delete', 'anonymize'],\n // Deleted with a deleted thread; a kept thread keeps its files.\n 'pendingAdminDispatches/{adminDispatchId}/conversationFiles/{conversationFileId}': ['delete', 'retain'],\n // The member's own read position — nobody else reads it, so it goes with them.\n 'pendingAdminDispatches/{adminDispatchId}/dispatchReadMarkers/{uid}': DELETE,\n // A link others may already have shared; its creator is an account id only.\n 'shortLinks/{shortId}': RETAIN,\n // A suggestion is shared by everyone who sent the same word: the member is removed from its\n // submitter list, and the suggestion and its count stay.\n 'feedbackSubmissions/{feedbackType}/userSuggestions/{suggestionId}': ANONYMIZE,\n\n // ===== Media pipeline =====\n // A rejected upload's row is deleted with its violation; every other row is kept as an operational\n // record with its personal fields blanked and its staged original deleted, and a row still in\n // flight is made terminal so its activation job aborts instead of publishing.\n 'pendingMedia/{pendingMediaId}': ['delete', 'anonymize'],\n 'pendingMediaArchive/{pendingMediaId}': ['delete', 'anonymize'],\n // The member's own media is retired; media a Work owns is retained with the Work.\n 'mediaAssets/{mediaAssetId}': ['delete', 'retain'],\n // A job for the member's in-flight upload aborts through that upload's terminal row and is kept\n // as its closed record; every other job is retained.\n 'mediaActivationJobs/{jobId}': RETAIN,\n 'mediaCopyIntents/{newAssetId}': NONE,\n\n // ===== Notifications =====\n // Every notification sent to the member — its card, its delivery row in any state, its archive\n // job — is deleted. Another recipient's notification naming the member as actor is theirs: it is\n // kept, account id only, until its existing expiry. Admin cards are shared by the admin team, so\n // they only ever name the member as actor.\n 'activeUserNotifications/{notificationId}': ['delete', 'retain'],\n 'activeAdminNotifications/{notificationId}': RETAIN,\n 'adminNotificationHistory/{notificationId}': RETAIN,\n 'pendingNotifications/{notificationId}': ['delete', 'retain'],\n 'notificationDeliveries/{deliveryId}': ['delete', 'retain'],\n 'notificationFanoutJobs/{jobId}': RETAIN,\n 'notificationArchiveAllJobs/{jobId}': DELETE,\n\n // ===== Chat sync =====\n // Deleted LAST — after both chat legs are done, because their discovery reads these rows — so\n // no kept row re-seeds the member into a channel's membership.\n 'chatChannelAuthProjections/{authPairKey}': DELETE,\n 'chatScopeDegraded/{scopeKey}': RETAIN,\n 'chatScopeDegraded/{scopeKey}/chatScopeDegradedCauses/{causeId}': RETAIN,\n 'chatSyncEvents/{eventId}': RETAIN,\n 'chatSyncFanoutJobs/{jobId}': RETAIN,\n // Every unapplied opening message the member sent — pending or dead-lettered, whatever its\n // invite's state — is deleted before the live-chat leg, so it is never delivered under the erased\n // account (never seen, so nothing a kept conversation shows is lost); an applied row is retained\n // until its expiry.\n 'chatMessageOutbox/{commandId}': ['delete', 'retain'],\n 'chatAdminActionCommands/{requestId}': RETAIN,\n // The erasure's own anonymization work: the erasure completes only once every job for the member\n // is done; a done job is retained until its expiry.\n 'chatHistoryAnonymizationJobs/{jobId}': RETAIN,\n 'chatHistoryAnonymizationJobs/{jobId}/affectedChunks/{chunkOrdinal}': NONE,\n // An operator ledger row: a room's address (an inbox room's names its member) and ids only,\n // kept like the sync events it sits beside.\n 'chatParkedDeliveries/{deliveryId}': RETAIN,\n\n // ===== Public documents (admin-written) =====\n 'publicDocuments/{documentId}/publicDocumentVersions/{versionId}': RETAIN,\n 'publicDocumentDrafts/{documentId}': RETAIN,\n 'publicDocumentReleases/{releaseId}': RETAIN,\n\n // ===== Trust & Safety — retained under the safety evidence profile =====\n 'childSafetyCaseList/{caseId}': RETAIN,\n 'activeSafetyCaseAlerts/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}': RETAIN,\n 'childSafetyCases/{caseId}/sourceSignals/{signalId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyDecisions/{decisionId}/childSafetyDecisionViews/{viewId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseAccounts/{uid}/childSafetyCaseAccountHistory/{historyId}': RETAIN,\n 'childSafetyCases/{caseId}/childSafetyCaseCrossoverItems/{mediaAssetId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecSubmissionFiles/{fileId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecSubmissions/{submissionId}/ncmecCompletionProof/record': RETAIN,\n 'childSafetyCases/{caseId}/legalProcess/{eventId}': RETAIN,\n 'childSafetyCases/{caseId}/portalReceiptArtifacts/{artifactId}': RETAIN,\n 'childSafetyCases/{caseId}/ncmecPortalCorrections/{correctionId}': RETAIN,\n 'childSafetyOwningAliases/{aliasId}': RETAIN,\n 'safetyHoldRefs/{holdRefId}': RETAIN,\n 'safetyHoldResources/{resourceKeyHash}': RETAIN,\n 'safetyResourceCommands/{commandDocId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/authorizedRequests/{requestId}': RETAIN,\n 'safetyResourceCommands/{commandDocId}/bypassRefs/{refId}': RETAIN,\n 'safetyEvidenceManifests/{manifestId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobItems/{itemId}': RETAIN,\n 'safetyEvidenceJobs/{jobId}/safetyEvidenceJobDisposition/{locationId}': RETAIN,\n // The `reportSubmit` row of an ordinary report the member filed is deleted; a protected-case\n // report's row is retained with the case, and a routine upload row for its existing 90-day window.\n 'eventProvenance/{eventId}': ['delete', 'retain'],\n 'quarantineSagaJobs/{caseId}': RETAIN,\n 'quarantineSagaJobs/{caseId}/relatedAssets/{assetId}': RETAIN,\n 'ncmecSubmissionJobs/{ncmecJobId}': RETAIN,\n 'accountActionCommands/{accountActionCommandId}': RETAIN,\n 'safetySlaMonitors/{monitorId}': NONE,\n 'safetyMonitorHeartbeat/global': NONE,\n // An admin's live step-up secret: no reader once the account is gone, and every enrollment and\n // verification is already recorded in the audit log.\n 'operatorStepUp/{uid}': DELETE,\n 'sweepState/{sweepName}': NONE,\n 'nciiAllegations/{allegationId}': RETAIN,\n 'takeItDownRequests/{requestId}': RETAIN,\n 'takeItDownRequests/{requestId}/privateDetails/requester': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownSubmissions/{submissionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}': RETAIN,\n 'takeItDownRequests/{requestId}/validityDecisions/{decisionId}/takeItDownValidityRationale/record': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownActions/{actionId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidenceDisposition/{evidenceId}': RETAIN,\n 'takeItDownRequests/{requestId}/takeItDownEvidence/{evidenceId}': RETAIN,\n 'nciiCases/{caseId}': RETAIN,\n 'nciiCases/{caseId}/allegationLinks/{allegationId}': RETAIN,\n 'nciiCases/{caseId}/requestLinks/{requestId}': RETAIN,\n 'nciiCases/{caseId}/removalActions/{actionId}': RETAIN,\n 'nciiCases/{caseId}/blockedHashes/{hashId}': RETAIN,\n 'nciiCases/{caseId}/closureEvents/{eventId}': RETAIN,\n 'nciiRetainedEvidenceInventory/{inventoryId}': RETAIN,\n 'nciiInventoryDeadLetter/{inventoryId}': RETAIN,\n 'nciiTemporaryHolds/{holdId}': RETAIN,\n 'nciiRemovalJobs/{jobId}': RETAIN,\n 'nciiRemovalJobs/{jobId}/nciiRemovalTargets/{targetKeyHash}': RETAIN,\n\n // ===== Singletons =====\n '_appConfig/app': NONE,\n '_appConfig/futurePlans': NONE,\n '_appConfig/rulesAndAgreements': NONE,\n '_appConfig/termsOfService': NONE,\n '_appConfig/privacyPolicy': NONE,\n '_appConfig/takeItDownPageCopy': NONE,\n '_appConfig/dmcaPolicy': NONE,\n // A slot naming the erased member keeps the uid, which renders as Former Member.\n '_appConfig/systemUidSlots': RETAIN,\n '_serverData/agePolicy': NONE,\n '_serverData/nciiPolicy': RETAIN,\n '_serverData/privilegedReviewerSecurity': NONE,\n '_serverData/feedbackLists/feedbackAliases/{aliasId}': NONE,\n // An erased admin is removed from the roster through the roster core.\n '_systemData/adminList': ANONYMIZE,\n '_systemData/profanityList': NONE,\n '_systemData/reservedUsernames': NONE,\n '_systemData/blockedFranchiseNames': NONE,\n '_systemData/appMode': NONE,\n '_systemData/systemVideoSlots': NONE,\n} as const satisfies { readonly [P in RegisteredCollectionPath]: ErasureFates };\n\n/** Every registered path whose declared fates include `fate`. */\nexport function collectionPathsWithErasureFate(fate: ErasureFate): RegisteredCollectionPath[] {\n return (Object.keys(ERASURE_FATES_BY_COLLECTION_PATH) as RegisteredCollectionPath[]).filter((path) =>\n (ERASURE_FATES_BY_COLLECTION_PATH[path] as ErasureFates).includes(fate),\n );\n}\n\n/**\n * The fate of a support thread that names the member being erased. Only the member's OWN user-party\n * thread — one they started, as its user — is theirs alone: it is deleted with its messages and\n * files. Every other thread naming them is kept with them shown as Former Member: one the admin\n * team started to them, a Work thread they started, and another member's thread they took part in\n * (an erased admin's replies never delete a member's thread).\n */\nexport function adminDispatchErasureFate(\n thread: Pick<AdminDispatch, 'partyKind' | 'initiatedBy' | 'userId'>,\n erasedUid: string,\n): Extract<ErasureFate, 'delete' | 'anonymize'> {\n return thread.partyKind === 'user' && thread.initiatedBy === 'user' && thread.userId === erasedUid\n ? 'delete'\n : 'anonymize';\n}\n"]}
|
|
@@ -14,6 +14,7 @@ export * from './commissions.js';
|
|
|
14
14
|
export * from './messaging.js';
|
|
15
15
|
export * from './admin-dispatch-read-markers.js';
|
|
16
16
|
export * from './system.js';
|
|
17
|
+
export * from './system-slots.js';
|
|
17
18
|
export * from './public-documents.js';
|
|
18
19
|
export * from './legal-review-notice.js';
|
|
19
20
|
export * from './moderation.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/index.ts"],"names":[],"mappings":"AAMA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/index.ts"],"names":[],"mappings":"AAMA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC"}
|
|
@@ -19,6 +19,7 @@ export * from './commissions.js';
|
|
|
19
19
|
export * from './messaging.js';
|
|
20
20
|
export * from './admin-dispatch-read-markers.js';
|
|
21
21
|
export * from './system.js';
|
|
22
|
+
export * from './system-slots.js';
|
|
22
23
|
export * from './public-documents.js';
|
|
23
24
|
export * from './legal-review-notice.js';
|
|
24
25
|
export * from './moderation.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-schemas/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,mFAAmF;AAEnF,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,6EAA6E;AAC7E,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAEhC,0DAA0D;AAC1D,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,sDAAsD;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAE9B,4DAA4D;AAC5D,cAAc,oBAAoB,CAAC","sourcesContent":["// Barrel for the Firestore document SCHEMAS (Zod) and the collection registry.\n// Exposed on the `@ttt-productions/ttt-core/doc-schemas` subpath. The schema registry\n// (COLLECTION_SCHEMAS) is consumed by the schema-doc generator (ttt-packages) and the\n// drift-check (ttt-prod). Document TYPES are inferred from these schemas and surface on\n// the main barrel via ../types/*; this subpath is the home of the runtime schemas.\n\nexport * from './user.js';\nexport * from './firestore-primitives.js';\nexport * from './media-assets.js';\nexport * from './media-activation-jobs.js';\nexport * from './media-copy-intents.js';\nexport * from './publicUser.js';\nexport * from './account-deletion.js';\nexport * from './work-project.js';\nexport * from './content.js';\nexport * from './social.js';\nexport * from './square-announcement-jobs.js';\nexport * from './payments.js';\nexport * from './commissions.js';\nexport * from './messaging.js';\nexport * from './admin-dispatch-read-markers.js';\nexport * from './system.js';\nexport * from './public-documents.js';\nexport * from './legal-review-notice.js';\nexport * from './moderation.js';\nexport * from './report-docs.js';\nexport * from './audit.js';\nexport * from './notifications.js';\nexport * from './notification-ledger.js';\nexport * from './notification-archive-all-jobs.js';\nexport * from './chat-sync.js';\nexport * from './operational.js';\n\n// ===== Trust & Safety — shared foundation + cluster schemas (§A1–A11) =====\nexport * from './safety/foundation.js';\nexport * from './safety/report.js';\nexport * from './safety/case-alert.js';\nexport * from './safety/case.js';\nexport * from './safety/case-aliases.js';\nexport * from './safety/holds.js';\nexport * from './safety/evidence.js';\nexport * from './safety/provenance.js';\nexport * from './safety/sagas.js';\nexport * from './safety/monitors.js';\nexport * from './safety/age.js';\n\n// ===== Trust & Safety — NCII / TAKE IT DOWN (§A11) =====\nexport * from './ncii/allegations.js';\nexport * from './ncii/requests.js';\nexport * from './ncii/cases.js';\nexport * from './ncii/holds.js';\nexport * from './ncii/removal.js';\nexport * from './ncii/config.js';\n\n// ===== Backend-only cursor / operational state =====\nexport * from './backend-state.js';\nexport * from './sweep-cursor.js';\n\nexport * from './registry.js';\n\n// ===== Account-erasure fate of every registered path =====\nexport * from './erasure-fates.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-schemas/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,mFAAmF;AAEnF,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,6EAA6E;AAC7E,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAEhC,0DAA0D;AAC1D,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,sDAAsD;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAE9B,4DAA4D;AAC5D,cAAc,oBAAoB,CAAC","sourcesContent":["// Barrel for the Firestore document SCHEMAS (Zod) and the collection registry.\n// Exposed on the `@ttt-productions/ttt-core/doc-schemas` subpath. The schema registry\n// (COLLECTION_SCHEMAS) is consumed by the schema-doc generator (ttt-packages) and the\n// drift-check (ttt-prod). Document TYPES are inferred from these schemas and surface on\n// the main barrel via ../types/*; this subpath is the home of the runtime schemas.\n\nexport * from './user.js';\nexport * from './firestore-primitives.js';\nexport * from './media-assets.js';\nexport * from './media-activation-jobs.js';\nexport * from './media-copy-intents.js';\nexport * from './publicUser.js';\nexport * from './account-deletion.js';\nexport * from './work-project.js';\nexport * from './content.js';\nexport * from './social.js';\nexport * from './square-announcement-jobs.js';\nexport * from './payments.js';\nexport * from './commissions.js';\nexport * from './messaging.js';\nexport * from './admin-dispatch-read-markers.js';\nexport * from './system.js';\nexport * from './system-slots.js';\nexport * from './public-documents.js';\nexport * from './legal-review-notice.js';\nexport * from './moderation.js';\nexport * from './report-docs.js';\nexport * from './audit.js';\nexport * from './notifications.js';\nexport * from './notification-ledger.js';\nexport * from './notification-archive-all-jobs.js';\nexport * from './chat-sync.js';\nexport * from './operational.js';\n\n// ===== Trust & Safety — shared foundation + cluster schemas (§A1–A11) =====\nexport * from './safety/foundation.js';\nexport * from './safety/report.js';\nexport * from './safety/case-alert.js';\nexport * from './safety/case.js';\nexport * from './safety/case-aliases.js';\nexport * from './safety/holds.js';\nexport * from './safety/evidence.js';\nexport * from './safety/provenance.js';\nexport * from './safety/sagas.js';\nexport * from './safety/monitors.js';\nexport * from './safety/age.js';\n\n// ===== Trust & Safety — NCII / TAKE IT DOWN (§A11) =====\nexport * from './ncii/allegations.js';\nexport * from './ncii/requests.js';\nexport * from './ncii/cases.js';\nexport * from './ncii/holds.js';\nexport * from './ncii/removal.js';\nexport * from './ncii/config.js';\n\n// ===== Backend-only cursor / operational state =====\nexport * from './backend-state.js';\nexport * from './sweep-cursor.js';\n\nexport * from './registry.js';\n\n// ===== Account-erasure fate of every registered path =====\nexport * from './erasure-fates.js';\n"]}
|
|
@@ -31,6 +31,7 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
31
31
|
"television-episode-video": "television-episode-video";
|
|
32
32
|
"conversation-file": "conversation-file";
|
|
33
33
|
"work-asset": "work-asset";
|
|
34
|
+
"system-content": "system-content";
|
|
34
35
|
"ncii-evidence": "ncii-evidence";
|
|
35
36
|
}>;
|
|
36
37
|
authorityVersion: z.ZodNumber;
|
|
@@ -67,6 +68,7 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
67
68
|
workContent: "workContent";
|
|
68
69
|
realmFile: "realmFile";
|
|
69
70
|
safetyEvidence: "safetyEvidence";
|
|
71
|
+
systemContent: "systemContent";
|
|
70
72
|
}>;
|
|
71
73
|
ownerId: z.ZodString;
|
|
72
74
|
scope: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -105,6 +107,7 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
105
107
|
commissionListingMedia: "commissionListingMedia";
|
|
106
108
|
commissionProposalMedia: "commissionProposalMedia";
|
|
107
109
|
craftSkillMedia: "craftSkillMedia";
|
|
110
|
+
systemVideoSlot: "systemVideoSlot";
|
|
108
111
|
}>;
|
|
109
112
|
publicationArgs: z.ZodUnknown;
|
|
110
113
|
status: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-activation-jobs.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"media-activation-jobs.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-activation-jobs.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0D1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -33,14 +33,15 @@ export declare const MediaAssetOwnerTypeSchema: z.ZodEnum<{
|
|
|
33
33
|
workContent: "workContent";
|
|
34
34
|
realmFile: "realmFile";
|
|
35
35
|
safetyEvidence: "safetyEvidence";
|
|
36
|
+
systemContent: "systemContent";
|
|
36
37
|
}>;
|
|
37
38
|
export type MediaAssetOwnerType = z.infer<typeof MediaAssetOwnerTypeSchema>;
|
|
38
39
|
/** The ONE canonical stored content media kind (what the pipeline produces and the
|
|
39
40
|
* asset doc records). Distinct from the 4-value display/transport MediaTypeSchema
|
|
40
41
|
* (doc-schemas/social.ts, adds 'other') and media-schemas' generic MediaKindSchema. */
|
|
41
42
|
export declare const ContentMediaKindSchema: z.ZodEnum<{
|
|
42
|
-
image: "image";
|
|
43
43
|
video: "video";
|
|
44
|
+
image: "image";
|
|
44
45
|
audio: "audio";
|
|
45
46
|
}>;
|
|
46
47
|
export type ContentMediaKind = z.infer<typeof ContentMediaKindSchema>;
|
|
@@ -128,6 +129,7 @@ export declare const MediaOriginLineageV1Schema: z.ZodObject<{
|
|
|
128
129
|
workContent: "workContent";
|
|
129
130
|
realmFile: "realmFile";
|
|
130
131
|
safetyEvidence: "safetyEvidence";
|
|
132
|
+
systemContent: "systemContent";
|
|
131
133
|
}>>;
|
|
132
134
|
createdFromOwnerId: z.ZodOptional<z.ZodString>;
|
|
133
135
|
copyActorUid: z.ZodOptional<z.ZodString>;
|
|
@@ -145,6 +147,7 @@ export declare const MediaOriginLineageV1Schema: z.ZodObject<{
|
|
|
145
147
|
workContent: "workContent";
|
|
146
148
|
realmFile: "realmFile";
|
|
147
149
|
safetyEvidence: "safetyEvidence";
|
|
150
|
+
systemContent: "systemContent";
|
|
148
151
|
}>;
|
|
149
152
|
currentOwnerId: z.ZodString;
|
|
150
153
|
}, z.core.$strict>;
|
|
@@ -278,6 +281,7 @@ export declare const MediaPublicationKindSchema: z.ZodEnum<{
|
|
|
278
281
|
commissionListingMedia: "commissionListingMedia";
|
|
279
282
|
commissionProposalMedia: "commissionProposalMedia";
|
|
280
283
|
craftSkillMedia: "craftSkillMedia";
|
|
284
|
+
systemVideoSlot: "systemVideoSlot";
|
|
281
285
|
}>;
|
|
282
286
|
export type MediaPublicationKind = z.infer<typeof MediaPublicationKindSchema>;
|
|
283
287
|
/**
|
|
@@ -319,6 +323,7 @@ export declare const MediaServingAuthorityRecordSchema: z.ZodObject<{
|
|
|
319
323
|
workContent: "workContent";
|
|
320
324
|
realmFile: "realmFile";
|
|
321
325
|
safetyEvidence: "safetyEvidence";
|
|
326
|
+
systemContent: "systemContent";
|
|
322
327
|
}>;
|
|
323
328
|
ownerId: z.ZodString;
|
|
324
329
|
scope: z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -386,8 +391,8 @@ export type MediaAssetRetirement = z.infer<typeof MediaAssetRetirementSchema>;
|
|
|
386
391
|
export declare const MediaAssetSchema: z.ZodObject<{
|
|
387
392
|
mediaAssetId: z.ZodString;
|
|
388
393
|
mediaKind: z.ZodEnum<{
|
|
389
|
-
image: "image";
|
|
390
394
|
video: "video";
|
|
395
|
+
image: "image";
|
|
391
396
|
audio: "audio";
|
|
392
397
|
}>;
|
|
393
398
|
fileOrigin: z.ZodEnum<{
|
|
@@ -410,6 +415,7 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
410
415
|
"television-episode-video": "television-episode-video";
|
|
411
416
|
"conversation-file": "conversation-file";
|
|
412
417
|
"work-asset": "work-asset";
|
|
418
|
+
"system-content": "system-content";
|
|
413
419
|
"ncii-evidence": "ncii-evidence";
|
|
414
420
|
}>;
|
|
415
421
|
ownerType: z.ZodEnum<{
|
|
@@ -426,6 +432,7 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
426
432
|
workContent: "workContent";
|
|
427
433
|
realmFile: "realmFile";
|
|
428
434
|
safetyEvidence: "safetyEvidence";
|
|
435
|
+
systemContent: "systemContent";
|
|
429
436
|
}>;
|
|
430
437
|
ownerId: z.ZodString;
|
|
431
438
|
workProjectId: z.ZodOptional<z.ZodString>;
|
|
@@ -502,6 +509,7 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
502
509
|
workContent: "workContent";
|
|
503
510
|
realmFile: "realmFile";
|
|
504
511
|
safetyEvidence: "safetyEvidence";
|
|
512
|
+
systemContent: "systemContent";
|
|
505
513
|
}>>;
|
|
506
514
|
createdFromOwnerId: z.ZodOptional<z.ZodString>;
|
|
507
515
|
copyActorUid: z.ZodOptional<z.ZodString>;
|
|
@@ -519,6 +527,7 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
519
527
|
workContent: "workContent";
|
|
520
528
|
realmFile: "realmFile";
|
|
521
529
|
safetyEvidence: "safetyEvidence";
|
|
530
|
+
systemContent: "systemContent";
|
|
522
531
|
}>;
|
|
523
532
|
currentOwnerId: z.ZodString;
|
|
524
533
|
}, z.core.$strict>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-assets.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-assets.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB;;;;;EAAsD,CAAC;AACzF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;4DAC4D;AAC5D,eAAO,MAAM,wBAAwB;;;;;EAA2D,CAAC;AACjG,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;uCAEuC;AACvC,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"media-assets.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/media-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,8 @@ export const MediaAssetOwnerTypeSchema = z.enum([
|
|
|
38
38
|
// + `realmId` + `realmFileFolderId` on the work file's own asset).
|
|
39
39
|
'realmFile',
|
|
40
40
|
'safetyEvidence', // inert system sentinel — synthetic NCII-evidence assets (never an account surface)
|
|
41
|
+
// An admin video held by a system video slot; the owner id is the slot id.
|
|
42
|
+
'systemContent',
|
|
41
43
|
]);
|
|
42
44
|
// ===== Media origin lineage (Appendix A0) =====
|
|
43
45
|
// One canonical lineage used by media, CSAM, and safety. Embedded on every
|
|
@@ -275,6 +277,9 @@ export const MediaPublicationKindSchema = z.enum([
|
|
|
275
277
|
// placeholder flip) kinds. Carries the typed `guildInvite` / `adminSupport`
|
|
276
278
|
// MediaServingScope of the owning conversation.
|
|
277
279
|
'conversationFile',
|
|
280
|
+
// Points a system video slot at its new video and retires the video it replaces, in one
|
|
281
|
+
// transaction.
|
|
282
|
+
'systemVideoSlot',
|
|
278
283
|
]);
|
|
279
284
|
/**
|
|
280
285
|
* The normalized serving record — the SAME contract used to generate both
|