@ttt-productions/ttt-core 0.7.18 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/doc-schemas/audit.d.ts +105 -0
  2. package/dist/doc-schemas/audit.d.ts.map +1 -0
  3. package/dist/doc-schemas/audit.js +39 -0
  4. package/dist/doc-schemas/audit.js.map +1 -0
  5. package/dist/doc-schemas/commissions.d.ts +313 -0
  6. package/dist/doc-schemas/commissions.d.ts.map +1 -0
  7. package/dist/doc-schemas/commissions.js +80 -0
  8. package/dist/doc-schemas/commissions.js.map +1 -0
  9. package/dist/doc-schemas/content.d.ts +650 -0
  10. package/dist/doc-schemas/content.d.ts.map +1 -0
  11. package/dist/doc-schemas/content.js +182 -0
  12. package/dist/doc-schemas/content.js.map +1 -0
  13. package/dist/doc-schemas/index.d.ts +15 -0
  14. package/dist/doc-schemas/index.d.ts.map +1 -0
  15. package/dist/doc-schemas/index.js +20 -0
  16. package/dist/doc-schemas/index.js.map +1 -0
  17. package/dist/doc-schemas/messaging.d.ts +462 -0
  18. package/dist/doc-schemas/messaging.d.ts.map +1 -0
  19. package/dist/doc-schemas/messaging.js +81 -0
  20. package/dist/doc-schemas/messaging.js.map +1 -0
  21. package/dist/doc-schemas/moderation.d.ts +337 -0
  22. package/dist/doc-schemas/moderation.d.ts.map +1 -0
  23. package/dist/doc-schemas/moderation.js +77 -0
  24. package/dist/doc-schemas/moderation.js.map +1 -0
  25. package/dist/doc-schemas/notifications.d.ts +304 -0
  26. package/dist/doc-schemas/notifications.d.ts.map +1 -0
  27. package/dist/doc-schemas/notifications.js +79 -0
  28. package/dist/doc-schemas/notifications.js.map +1 -0
  29. package/dist/doc-schemas/operational.d.ts +130 -0
  30. package/dist/doc-schemas/operational.d.ts.map +1 -0
  31. package/dist/doc-schemas/operational.js +54 -0
  32. package/dist/doc-schemas/operational.js.map +1 -0
  33. package/dist/doc-schemas/publicUser.d.ts +31 -0
  34. package/dist/doc-schemas/publicUser.d.ts.map +1 -0
  35. package/dist/doc-schemas/publicUser.js +17 -0
  36. package/dist/doc-schemas/publicUser.js.map +1 -0
  37. package/dist/doc-schemas/registry.d.ts +12807 -0
  38. package/dist/doc-schemas/registry.d.ts.map +1 -0
  39. package/dist/doc-schemas/registry.js +124 -0
  40. package/dist/doc-schemas/registry.js.map +1 -0
  41. package/dist/doc-schemas/report-docs.d.ts +355 -0
  42. package/dist/doc-schemas/report-docs.d.ts.map +1 -0
  43. package/dist/doc-schemas/report-docs.js +114 -0
  44. package/dist/doc-schemas/report-docs.js.map +1 -0
  45. package/dist/doc-schemas/social.d.ts +257 -0
  46. package/dist/doc-schemas/social.d.ts.map +1 -0
  47. package/dist/doc-schemas/social.js +82 -0
  48. package/dist/doc-schemas/social.js.map +1 -0
  49. package/dist/doc-schemas/system.d.ts +44 -0
  50. package/dist/doc-schemas/system.d.ts.map +1 -0
  51. package/dist/doc-schemas/system.js +23 -0
  52. package/dist/doc-schemas/system.js.map +1 -0
  53. package/dist/doc-schemas/user.d.ts +296 -0
  54. package/dist/doc-schemas/user.d.ts.map +1 -0
  55. package/dist/doc-schemas/user.js +79 -0
  56. package/dist/doc-schemas/user.js.map +1 -0
  57. package/dist/doc-schemas/work-project.d.ts +320 -0
  58. package/dist/doc-schemas/work-project.d.ts.map +1 -0
  59. package/dist/doc-schemas/work-project.js +104 -0
  60. package/dist/doc-schemas/work-project.js.map +1 -0
  61. package/dist/media/atoms.d.ts +6 -6
  62. package/dist/media/domain-events.d.ts +136 -136
  63. package/dist/media/pending-media.d.ts +1294 -1294
  64. package/dist/media/target-info.d.ts +39 -39
  65. package/dist/media/target-info.d.ts.map +1 -1
  66. package/dist/media/target-info.js +0 -5
  67. package/dist/media/target-info.js.map +1 -1
  68. package/dist/paths/collections.d.ts +1 -1
  69. package/dist/paths/collections.d.ts.map +1 -1
  70. package/dist/paths/collections.js +2 -1
  71. package/dist/paths/collections.js.map +1 -1
  72. package/dist/paths/path-builders.d.ts +0 -1
  73. package/dist/paths/path-builders.d.ts.map +1 -1
  74. package/dist/paths/path-builders.js +0 -1
  75. package/dist/paths/path-builders.js.map +1 -1
  76. package/dist/schemas/admin-dispatch-actions.d.ts +4 -4
  77. package/dist/schemas/admin.d.ts +48 -49
  78. package/dist/schemas/admin.d.ts.map +1 -1
  79. package/dist/schemas/chat.d.ts +30 -30
  80. package/dist/schemas/hall-library.d.ts +8 -8
  81. package/dist/schemas/notification.d.ts +14 -14
  82. package/dist/schemas/social.d.ts +8 -8
  83. package/dist/schemas/users.d.ts +2 -2
  84. package/dist/schemas/work-project-management.d.ts +34 -34
  85. package/dist/types/admin.d.ts +1 -1
  86. package/dist/types/admin.d.ts.map +1 -1
  87. package/dist/types/commissions.d.ts +1 -83
  88. package/dist/types/commissions.d.ts.map +1 -1
  89. package/dist/types/content.d.ts +5 -176
  90. package/dist/types/content.d.ts.map +1 -1
  91. package/dist/types/content.js.map +1 -1
  92. package/dist/types/messaging.d.ts +1 -64
  93. package/dist/types/messaging.d.ts.map +1 -1
  94. package/dist/types/moderation.d.ts +1 -57
  95. package/dist/types/moderation.d.ts.map +1 -1
  96. package/dist/types/publicUser.d.ts +1 -10
  97. package/dist/types/publicUser.d.ts.map +1 -1
  98. package/dist/types/social.d.ts +1 -51
  99. package/dist/types/social.d.ts.map +1 -1
  100. package/dist/types/system.d.ts +1 -25
  101. package/dist/types/system.d.ts.map +1 -1
  102. package/dist/types/user.d.ts +1 -75
  103. package/dist/types/user.d.ts.map +1 -1
  104. package/dist/types/work-project.d.ts +2 -114
  105. package/dist/types/work-project.d.ts.map +1 -1
  106. package/dist/types/work-project.js.map +1 -1
  107. package/dist/upload-variables/create-admin-audition-variables.d.ts +2 -2
  108. package/dist/upload-variables/create-commission-variables.d.ts +4 -4
  109. package/dist/upload-variables/create-work-project-audition-variables.d.ts +4 -4
  110. package/dist/upload-variables/square-streetz-post-variables.d.ts +8 -8
  111. package/dist/upload-variables/upload-work-asset-variables.d.ts +43 -4
  112. package/dist/upload-variables/upload-work-asset-variables.d.ts.map +1 -1
  113. package/package.json +5 -1
@@ -0,0 +1,337 @@
1
+ import { z } from 'zod';
2
+ export declare const ContentViolationSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ userId: z.ZodString;
5
+ fileType: z.ZodString;
6
+ violationType: z.ZodOptional<z.ZodEnum<["text", "media"]>>;
7
+ reason: z.ZodString;
8
+ timestamp: z.ZodNumber;
9
+ appealStatus: z.ZodEnum<["none", "pending", "approved", "denied"]>;
10
+ flaggedWords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ originalText: z.ZodOptional<z.ZodString>;
12
+ originalFileName: z.ZodOptional<z.ZodString>;
13
+ scores: z.ZodOptional<z.ZodNullable<z.ZodObject<{
14
+ adult: z.ZodString;
15
+ violence: z.ZodString;
16
+ racy: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ adult: string;
19
+ violence: string;
20
+ racy: string;
21
+ }, {
22
+ adult: string;
23
+ violence: string;
24
+ racy: string;
25
+ }>>>;
26
+ rejectedFilePath: z.ZodOptional<z.ZodString>;
27
+ rejectedFileUrl: z.ZodOptional<z.ZodString>;
28
+ pendingFile: z.ZodOptional<z.ZodObject<{
29
+ status: z.ZodOptional<z.ZodLiteral<"pending">>;
30
+ id: z.ZodOptional<z.ZodString>;
31
+ userId: z.ZodOptional<z.ZodString>;
32
+ fileOrigin: z.ZodOptional<z.ZodEnum<["profile-picture", "craft-skill-media", "squareStreetz", "commission-posting", "commission-proposal", "audition-prompt", "audition-entry", "admin-audition-prompt", "hallLibrary-cover-square", "hallLibrary-cover-poster", "hallLibrary-cover-cinematic", "chapter-photo", "tune-track-photo", "tune-track-audio", "television-episode-photo", "television-episode-video", "guild-chat-message-attachment", "work-asset"]>>;
33
+ originalFileName: z.ZodOptional<z.ZodString>;
34
+ originalContentType: z.ZodOptional<z.ZodOptional<z.ZodString>>;
35
+ originalSize: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
36
+ pendingStoragePath: z.ZodOptional<z.ZodString>;
37
+ targetInfo: z.ZodOptional<z.ZodOptional<z.ZodUnknown>>;
38
+ textContent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
39
+ clientContext: z.ZodOptional<z.ZodObject<{
40
+ surface: z.ZodString;
41
+ targetIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
42
+ }, "strict", z.ZodTypeAny, {
43
+ surface: string;
44
+ targetIds?: string[] | undefined;
45
+ }, {
46
+ surface: string;
47
+ targetIds?: string[] | undefined;
48
+ }>>;
49
+ createdAt: z.ZodOptional<z.ZodNumber>;
50
+ updatedAt: z.ZodOptional<z.ZodNumber>;
51
+ processingStartedAt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
52
+ terminalAt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
53
+ }, "strict", z.ZodTypeAny, {
54
+ status?: "pending" | undefined;
55
+ userId?: string | undefined;
56
+ id?: string | undefined;
57
+ createdAt?: number | undefined;
58
+ textContent?: string | undefined;
59
+ updatedAt?: number | undefined;
60
+ fileOrigin?: "profile-picture" | "craft-skill-media" | "squareStreetz" | "commission-posting" | "commission-proposal" | "audition-prompt" | "audition-entry" | "admin-audition-prompt" | "hallLibrary-cover-square" | "hallLibrary-cover-poster" | "hallLibrary-cover-cinematic" | "chapter-photo" | "tune-track-photo" | "tune-track-audio" | "television-episode-photo" | "television-episode-video" | "guild-chat-message-attachment" | "work-asset" | undefined;
61
+ originalFileName?: string | undefined;
62
+ originalContentType?: string | undefined;
63
+ originalSize?: number | undefined;
64
+ pendingStoragePath?: string | undefined;
65
+ targetInfo?: unknown;
66
+ clientContext?: {
67
+ surface: string;
68
+ targetIds?: string[] | undefined;
69
+ } | undefined;
70
+ processingStartedAt?: number | undefined;
71
+ terminalAt?: number | undefined;
72
+ }, {
73
+ status?: "pending" | undefined;
74
+ userId?: string | undefined;
75
+ id?: string | undefined;
76
+ createdAt?: number | undefined;
77
+ textContent?: string | undefined;
78
+ updatedAt?: number | undefined;
79
+ fileOrigin?: "profile-picture" | "craft-skill-media" | "squareStreetz" | "commission-posting" | "commission-proposal" | "audition-prompt" | "audition-entry" | "admin-audition-prompt" | "hallLibrary-cover-square" | "hallLibrary-cover-poster" | "hallLibrary-cover-cinematic" | "chapter-photo" | "tune-track-photo" | "tune-track-audio" | "television-episode-photo" | "television-episode-video" | "guild-chat-message-attachment" | "work-asset" | undefined;
80
+ originalFileName?: string | undefined;
81
+ originalContentType?: string | undefined;
82
+ originalSize?: number | undefined;
83
+ pendingStoragePath?: string | undefined;
84
+ targetInfo?: unknown;
85
+ clientContext?: {
86
+ surface: string;
87
+ targetIds?: string[] | undefined;
88
+ } | undefined;
89
+ processingStartedAt?: number | undefined;
90
+ terminalAt?: number | undefined;
91
+ }>>;
92
+ appealMessage: z.ZodOptional<z.ZodString>;
93
+ appealedAt: z.ZodOptional<z.ZodNumber>;
94
+ reviewedBy: z.ZodOptional<z.ZodString>;
95
+ reviewedAt: z.ZodOptional<z.ZodNumber>;
96
+ reviewDecision: z.ZodOptional<z.ZodEnum<["approved", "denied"]>>;
97
+ reviewNotes: z.ZodOptional<z.ZodString>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ userId: string;
100
+ id: string;
101
+ fileType: string;
102
+ reason: string;
103
+ timestamp: number;
104
+ appealStatus: "pending" | "approved" | "none" | "denied";
105
+ reviewedAt?: number | undefined;
106
+ reviewedBy?: string | undefined;
107
+ originalFileName?: string | undefined;
108
+ appealMessage?: string | undefined;
109
+ rejectedFilePath?: string | undefined;
110
+ violationType?: "text" | "media" | undefined;
111
+ flaggedWords?: string[] | undefined;
112
+ originalText?: string | undefined;
113
+ scores?: {
114
+ adult: string;
115
+ violence: string;
116
+ racy: string;
117
+ } | null | undefined;
118
+ rejectedFileUrl?: string | undefined;
119
+ pendingFile?: {
120
+ status?: "pending" | undefined;
121
+ userId?: string | undefined;
122
+ id?: string | undefined;
123
+ createdAt?: number | undefined;
124
+ textContent?: string | undefined;
125
+ updatedAt?: number | undefined;
126
+ fileOrigin?: "profile-picture" | "craft-skill-media" | "squareStreetz" | "commission-posting" | "commission-proposal" | "audition-prompt" | "audition-entry" | "admin-audition-prompt" | "hallLibrary-cover-square" | "hallLibrary-cover-poster" | "hallLibrary-cover-cinematic" | "chapter-photo" | "tune-track-photo" | "tune-track-audio" | "television-episode-photo" | "television-episode-video" | "guild-chat-message-attachment" | "work-asset" | undefined;
127
+ originalFileName?: string | undefined;
128
+ originalContentType?: string | undefined;
129
+ originalSize?: number | undefined;
130
+ pendingStoragePath?: string | undefined;
131
+ targetInfo?: unknown;
132
+ clientContext?: {
133
+ surface: string;
134
+ targetIds?: string[] | undefined;
135
+ } | undefined;
136
+ processingStartedAt?: number | undefined;
137
+ terminalAt?: number | undefined;
138
+ } | undefined;
139
+ appealedAt?: number | undefined;
140
+ reviewDecision?: "approved" | "denied" | undefined;
141
+ reviewNotes?: string | undefined;
142
+ }, {
143
+ userId: string;
144
+ id: string;
145
+ fileType: string;
146
+ reason: string;
147
+ timestamp: number;
148
+ appealStatus: "pending" | "approved" | "none" | "denied";
149
+ reviewedAt?: number | undefined;
150
+ reviewedBy?: string | undefined;
151
+ originalFileName?: string | undefined;
152
+ appealMessage?: string | undefined;
153
+ rejectedFilePath?: string | undefined;
154
+ violationType?: "text" | "media" | undefined;
155
+ flaggedWords?: string[] | undefined;
156
+ originalText?: string | undefined;
157
+ scores?: {
158
+ adult: string;
159
+ violence: string;
160
+ racy: string;
161
+ } | null | undefined;
162
+ rejectedFileUrl?: string | undefined;
163
+ pendingFile?: {
164
+ status?: "pending" | undefined;
165
+ userId?: string | undefined;
166
+ id?: string | undefined;
167
+ createdAt?: number | undefined;
168
+ textContent?: string | undefined;
169
+ updatedAt?: number | undefined;
170
+ fileOrigin?: "profile-picture" | "craft-skill-media" | "squareStreetz" | "commission-posting" | "commission-proposal" | "audition-prompt" | "audition-entry" | "admin-audition-prompt" | "hallLibrary-cover-square" | "hallLibrary-cover-poster" | "hallLibrary-cover-cinematic" | "chapter-photo" | "tune-track-photo" | "tune-track-audio" | "television-episode-photo" | "television-episode-video" | "guild-chat-message-attachment" | "work-asset" | undefined;
171
+ originalFileName?: string | undefined;
172
+ originalContentType?: string | undefined;
173
+ originalSize?: number | undefined;
174
+ pendingStoragePath?: string | undefined;
175
+ targetInfo?: unknown;
176
+ clientContext?: {
177
+ surface: string;
178
+ targetIds?: string[] | undefined;
179
+ } | undefined;
180
+ processingStartedAt?: number | undefined;
181
+ terminalAt?: number | undefined;
182
+ } | undefined;
183
+ appealedAt?: number | undefined;
184
+ reviewDecision?: "approved" | "denied" | undefined;
185
+ reviewNotes?: string | undefined;
186
+ }>;
187
+ export type ContentViolation = z.infer<typeof ContentViolationSchema>;
188
+ export declare const ContentAppealTaskSchema: z.ZodObject<{
189
+ id: z.ZodString;
190
+ taskId: z.ZodString;
191
+ originalPath: z.ZodString;
192
+ status: z.ZodEnum<["pending", "checkedOut", "workLater", "completed"]>;
193
+ checkoutDetails: z.ZodNullable<z.ZodObject<{
194
+ userId: z.ZodString;
195
+ checkedOutAt: z.ZodNumber;
196
+ expiresAt: z.ZodNumber;
197
+ workLaterUntil: z.ZodNullable<z.ZodNumber>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ userId: string;
200
+ checkedOutAt: number;
201
+ expiresAt: number;
202
+ workLaterUntil: number | null;
203
+ }, {
204
+ userId: string;
205
+ checkedOutAt: number;
206
+ expiresAt: number;
207
+ workLaterUntil: number | null;
208
+ }>>;
209
+ summary: z.ZodString;
210
+ priority: z.ZodNumber;
211
+ createdAt: z.ZodNumber;
212
+ lastUpdatedAt: z.ZodNumber;
213
+ completedAt: z.ZodOptional<z.ZodNumber>;
214
+ itemData: z.ZodOptional<z.ZodUnknown>;
215
+ } & {
216
+ taskType: z.ZodLiteral<"content-appeal">;
217
+ violationId: z.ZodString;
218
+ userId: z.ZodString;
219
+ fileType: z.ZodString;
220
+ rejectionReason: z.ZodString;
221
+ appealMessage: z.ZodString;
222
+ rejectedFilePath: z.ZodString;
223
+ }, "strip", z.ZodTypeAny, {
224
+ status: "pending" | "checkedOut" | "workLater" | "completed";
225
+ userId: string;
226
+ id: string;
227
+ createdAt: number;
228
+ lastUpdatedAt: number;
229
+ violationId: string;
230
+ taskType: "content-appeal";
231
+ taskId: string;
232
+ originalPath: string;
233
+ checkoutDetails: {
234
+ userId: string;
235
+ checkedOutAt: number;
236
+ expiresAt: number;
237
+ workLaterUntil: number | null;
238
+ } | null;
239
+ summary: string;
240
+ priority: number;
241
+ fileType: string;
242
+ rejectionReason: string;
243
+ appealMessage: string;
244
+ rejectedFilePath: string;
245
+ completedAt?: number | undefined;
246
+ itemData?: unknown;
247
+ }, {
248
+ status: "pending" | "checkedOut" | "workLater" | "completed";
249
+ userId: string;
250
+ id: string;
251
+ createdAt: number;
252
+ lastUpdatedAt: number;
253
+ violationId: string;
254
+ taskType: "content-appeal";
255
+ taskId: string;
256
+ originalPath: string;
257
+ checkoutDetails: {
258
+ userId: string;
259
+ checkedOutAt: number;
260
+ expiresAt: number;
261
+ workLaterUntil: number | null;
262
+ } | null;
263
+ summary: string;
264
+ priority: number;
265
+ fileType: string;
266
+ rejectionReason: string;
267
+ appealMessage: string;
268
+ rejectedFilePath: string;
269
+ completedAt?: number | undefined;
270
+ itemData?: unknown;
271
+ }>;
272
+ export type ContentAppealTask = z.infer<typeof ContentAppealTaskSchema>;
273
+ export declare const ModerationCascadeActionSchema: z.ZodEnum<["hideRealm", "restoreRealm"]>;
274
+ export type ModerationCascadeAction = z.infer<typeof ModerationCascadeActionSchema>;
275
+ export declare const ModerationCascadeStatusSchema: z.ZodEnum<["pending", "complete", "failed"]>;
276
+ export type ModerationCascadeStatus = z.infer<typeof ModerationCascadeStatusSchema>;
277
+ export declare const ModerationCascadeChangedEntityTypeSchema: z.ZodEnum<["workProject", "hallItem", "subItemProjection", "workRealm"]>;
278
+ export type ModerationCascadeChangedEntityType = z.infer<typeof ModerationCascadeChangedEntityTypeSchema>;
279
+ export declare const ModerationCascadeManifestSchema: z.ZodObject<{
280
+ cascadeId: z.ZodString;
281
+ action: z.ZodEnum<["hideRealm", "restoreRealm"]>;
282
+ entityType: z.ZodLiteral<"workRealm">;
283
+ entityId: z.ZodString;
284
+ actorUid: z.ZodString;
285
+ reason: z.ZodString;
286
+ createdAt: z.ZodNumber;
287
+ completedAt: z.ZodOptional<z.ZodNumber>;
288
+ status: z.ZodEnum<["pending", "complete", "failed"]>;
289
+ }, "strip", z.ZodTypeAny, {
290
+ status: "pending" | "failed" | "complete";
291
+ createdAt: number;
292
+ actorUid: string;
293
+ action: "hideRealm" | "restoreRealm";
294
+ reason: string;
295
+ cascadeId: string;
296
+ entityType: "workRealm";
297
+ entityId: string;
298
+ completedAt?: number | undefined;
299
+ }, {
300
+ status: "pending" | "failed" | "complete";
301
+ createdAt: number;
302
+ actorUid: string;
303
+ action: "hideRealm" | "restoreRealm";
304
+ reason: string;
305
+ cascadeId: string;
306
+ entityType: "workRealm";
307
+ entityId: string;
308
+ completedAt?: number | undefined;
309
+ }>;
310
+ export type ModerationCascadeManifest = z.infer<typeof ModerationCascadeManifestSchema>;
311
+ export declare const ModerationCascadeChangedDocSchema: z.ZodObject<{
312
+ docPath: z.ZodString;
313
+ entityType: z.ZodEnum<["workProject", "hallItem", "subItemProjection", "workRealm"]>;
314
+ fieldPath: z.ZodString;
315
+ previousValue: z.ZodBoolean;
316
+ newValue: z.ZodBoolean;
317
+ restored: z.ZodBoolean;
318
+ restoredAt: z.ZodOptional<z.ZodNumber>;
319
+ }, "strip", z.ZodTypeAny, {
320
+ entityType: "workRealm" | "workProject" | "hallItem" | "subItemProjection";
321
+ docPath: string;
322
+ fieldPath: string;
323
+ previousValue: boolean;
324
+ newValue: boolean;
325
+ restored: boolean;
326
+ restoredAt?: number | undefined;
327
+ }, {
328
+ entityType: "workRealm" | "workProject" | "hallItem" | "subItemProjection";
329
+ docPath: string;
330
+ fieldPath: string;
331
+ previousValue: boolean;
332
+ newValue: boolean;
333
+ restored: boolean;
334
+ restoredAt?: number | undefined;
335
+ }>;
336
+ export type ModerationCascadeChangedDoc = z.infer<typeof ModerationCascadeChangedDocSchema>;
337
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/moderation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,6BAA6B,0CAAwC,CAAC;AACnF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,6BAA6B,8CAA4C,CAAC;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,wCAAwC,0EAKnD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wCAAwC,CAAC,CAAC;AAE1G,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;EAQ5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ // Moderation Firestore document SCHEMAS — contentViolations/{id}, the content-appeal
2
+ // admin task, and the moderationCascadeManifests/{id} (+ changedDocs) records.
3
+ // Types inferred via z.infer.
4
+ import { z } from 'zod';
5
+ import { PendingMediaPendingSchema } from '../media/pending-media.js';
6
+ import { AdminTaskSchema } from './report-docs.js';
7
+ export const ContentViolationSchema = z.object({
8
+ id: z.string(),
9
+ userId: z.string(),
10
+ fileType: z.string(),
11
+ violationType: z.enum(['text', 'media']).optional(),
12
+ reason: z.string(),
13
+ timestamp: z.number(),
14
+ appealStatus: z.enum(['none', 'pending', 'approved', 'denied']),
15
+ // Text violations (moderateTextOrThrow / media-result-handler 'text_rejected') write these and
16
+ // omit the media-only fields below; media violations (logContentViolation) do the reverse.
17
+ flaggedWords: z.array(z.string()).optional(),
18
+ originalText: z.string().optional(),
19
+ // Media-only fields. Optional because text violations omit them, and `scores` is nullable
20
+ // because moderateTextOrThrow writes `scores: result.scores ?? null`.
21
+ originalFileName: z.string().optional(),
22
+ scores: z.object({
23
+ adult: z.string(),
24
+ violence: z.string(),
25
+ racy: z.string(),
26
+ }).nullable().optional(),
27
+ rejectedFilePath: z.string().optional(),
28
+ rejectedFileUrl: z.string().optional(),
29
+ pendingFile: PendingMediaPendingSchema.partial().optional(),
30
+ // Appeal lifecycle (submitContentAppeal / reviewContentAppeal).
31
+ appealMessage: z.string().optional(),
32
+ appealedAt: z.number().optional(),
33
+ reviewedBy: z.string().optional(),
34
+ reviewedAt: z.number().optional(),
35
+ reviewDecision: z.enum(['approved', 'denied']).optional(),
36
+ reviewNotes: z.string().optional(),
37
+ });
38
+ // content-appeal admin task: the generic AdminTask specialized to 'content-appeal' plus
39
+ // the appeal-specific denormalized fields used by the admin review view.
40
+ export const ContentAppealTaskSchema = AdminTaskSchema.extend({
41
+ taskType: z.literal('content-appeal'),
42
+ violationId: z.string(),
43
+ userId: z.string(),
44
+ fileType: z.string(),
45
+ rejectionReason: z.string(),
46
+ appealMessage: z.string(),
47
+ rejectedFilePath: z.string(),
48
+ });
49
+ export const ModerationCascadeActionSchema = z.enum(['hideRealm', 'restoreRealm']);
50
+ export const ModerationCascadeStatusSchema = z.enum(['pending', 'complete', 'failed']);
51
+ export const ModerationCascadeChangedEntityTypeSchema = z.enum([
52
+ 'workProject',
53
+ 'hallItem',
54
+ 'subItemProjection',
55
+ 'workRealm',
56
+ ]);
57
+ export const ModerationCascadeManifestSchema = z.object({
58
+ cascadeId: z.string(),
59
+ action: ModerationCascadeActionSchema,
60
+ entityType: z.literal('workRealm'),
61
+ entityId: z.string(),
62
+ actorUid: z.string(),
63
+ reason: z.string(),
64
+ createdAt: z.number(),
65
+ completedAt: z.number().optional(),
66
+ status: ModerationCascadeStatusSchema,
67
+ });
68
+ export const ModerationCascadeChangedDocSchema = z.object({
69
+ docPath: z.string(),
70
+ entityType: ModerationCascadeChangedEntityTypeSchema,
71
+ fieldPath: z.string(),
72
+ previousValue: z.boolean(),
73
+ newValue: z.boolean(),
74
+ restored: z.boolean(),
75
+ restoredAt: z.number().optional(),
76
+ });
77
+ //# sourceMappingURL=moderation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../src/doc-schemas/moderation.ts"],"names":[],"mappings":"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"}