@ttt-productions/ttt-core 0.79.73 → 0.79.75

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.
@@ -2405,6 +2405,12 @@ export declare const COLLECTION_SCHEMAS: {
2405
2405
  workProjectId: z.ZodString;
2406
2406
  guildInviteId: z.ZodString;
2407
2407
  }, z.core.$strict>;
2408
+ }, z.core.$strict>, z.ZodObject<{
2409
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
2410
+ ids: z.ZodObject<{
2411
+ workProjectId: z.ZodString;
2412
+ userId: z.ZodString;
2413
+ }, z.core.$strict>;
2408
2414
  }, z.core.$strict>, z.ZodObject<{
2409
2415
  type: z.ZodLiteral<"audition.entryVoted">;
2410
2416
  ids: z.ZodObject<{
@@ -2908,6 +2914,12 @@ export declare const COLLECTION_SCHEMAS: {
2908
2914
  workProjectId: z.ZodString;
2909
2915
  guildInviteId: z.ZodString;
2910
2916
  }, z.core.$strict>;
2917
+ }, z.core.$strict>, z.ZodObject<{
2918
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
2919
+ ids: z.ZodObject<{
2920
+ workProjectId: z.ZodString;
2921
+ userId: z.ZodString;
2922
+ }, z.core.$strict>;
2911
2923
  }, z.core.$strict>, z.ZodObject<{
2912
2924
  type: z.ZodLiteral<"audition.entryVoted">;
2913
2925
  ids: z.ZodObject<{
@@ -3328,6 +3340,12 @@ export declare const COLLECTION_SCHEMAS: {
3328
3340
  workProjectId: z.ZodString;
3329
3341
  guildInviteId: z.ZodString;
3330
3342
  }, z.core.$strict>;
3343
+ }, z.core.$strict>, z.ZodObject<{
3344
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
3345
+ ids: z.ZodObject<{
3346
+ workProjectId: z.ZodString;
3347
+ userId: z.ZodString;
3348
+ }, z.core.$strict>;
3331
3349
  }, z.core.$strict>, z.ZodObject<{
3332
3350
  type: z.ZodLiteral<"audition.entryVoted">;
3333
3351
  ids: z.ZodObject<{
@@ -3833,6 +3851,12 @@ export declare const COLLECTION_SCHEMAS: {
3833
3851
  workProjectId: z.ZodString;
3834
3852
  guildInviteId: z.ZodString;
3835
3853
  }, z.core.$strict>;
3854
+ }, z.core.$strict>, z.ZodObject<{
3855
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
3856
+ ids: z.ZodObject<{
3857
+ workProjectId: z.ZodString;
3858
+ userId: z.ZodString;
3859
+ }, z.core.$strict>;
3836
3860
  }, z.core.$strict>, z.ZodObject<{
3837
3861
  type: z.ZodLiteral<"audition.entryVoted">;
3838
3862
  ids: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqN7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuQkB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEvE;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAmBiC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAOvC,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/registry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqN7B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuQkB,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEvE;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;CAmBiC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAOvC,CAAC"}
@@ -58,6 +58,13 @@ export declare const GuildInviteCancelledEventSchema: z.ZodObject<{
58
58
  guildInviteId: z.ZodString;
59
59
  }, z.core.$strict>;
60
60
  }, z.core.$strict>;
61
+ export declare const WorkProjectGuildmateLeftEventSchema: z.ZodObject<{
62
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
63
+ ids: z.ZodObject<{
64
+ workProjectId: z.ZodString;
65
+ userId: z.ZodString;
66
+ }, z.core.$strict>;
67
+ }, z.core.$strict>;
61
68
  export declare const AuditionPromptCreatedEventSchema: z.ZodObject<{
62
69
  type: z.ZodLiteral<"audition.promptCreated">;
63
70
  ids: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events-work.d.ts","sourceRoot":"","sources":["../../src/media/domain-events-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,6BAA6B;;;;;;kBAU/B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;kBAK/B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;kBAWjC,CAAC;AAEZ,eAAO,MAAM,wCAAwC;;;;;kBAS1C,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;kBAY5B,CAAC;AAEZ,eAAO,MAAM,8BAA8B;;;;;;;kBAWhC,CAAC;AAEZ,eAAO,MAAM,8BAA8B;;;;;;;kBAWhC,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;kBAUjC,CAAC;AAEZ,eAAO,MAAM,gCAAgC;;;;;;;kBAWlC,CAAC;AAEZ,eAAO,MAAM,iCAAiC;;;;;;;;kBAYnC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;;kBAYtC,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;kBAU3B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;kBAW9B,CAAC;AAEZ,eAAO,MAAM,sCAAsC;;;;;;;;kBAYxC,CAAC;AAKZ,eAAO,MAAM,2BAA2B;;;;;;kBAU7B,CAAC;AAEZ,eAAO,MAAM,kCAAkC;;;;;;;kBAWpC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;kBAWtC,CAAC;AAEZ,eAAO,MAAM,kCAAkC;;;;;;;;;;;kBAWpC,CAAC;AAIZ,eAAO,MAAM,gCAAgC;;;;;kBASlC,CAAC;AAIZ,eAAO,MAAM,kCAAkC;;;;;kBASpC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;;;;;;kBAYtC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;kBAStC,CAAC"}
1
+ {"version":3,"file":"domain-events-work.d.ts","sourceRoot":"","sources":["../../src/media/domain-events-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,6BAA6B;;;;;;kBAU/B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;kBAK/B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;kBAWjC,CAAC;AAEZ,eAAO,MAAM,wCAAwC;;;;;kBAS1C,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;kBAY5B,CAAC;AAEZ,eAAO,MAAM,8BAA8B;;;;;;;kBAWhC,CAAC;AAEZ,eAAO,MAAM,8BAA8B;;;;;;;kBAWhC,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;kBAUjC,CAAC;AAIZ,eAAO,MAAM,mCAAmC;;;;;;kBAUrC,CAAC;AAEZ,eAAO,MAAM,gCAAgC;;;;;;;kBAWlC,CAAC;AAEZ,eAAO,MAAM,iCAAiC;;;;;;;;kBAYnC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;;kBAYtC,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;kBAU3B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;kBAW9B,CAAC;AAEZ,eAAO,MAAM,sCAAsC;;;;;;;;kBAYxC,CAAC;AAKZ,eAAO,MAAM,2BAA2B;;;;;;kBAU7B,CAAC;AAEZ,eAAO,MAAM,kCAAkC;;;;;;;kBAWpC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;kBAWtC,CAAC;AAEZ,eAAO,MAAM,kCAAkC;;;;;;;;;;;kBAWpC,CAAC;AAIZ,eAAO,MAAM,gCAAgC;;;;;kBASlC,CAAC;AAIZ,eAAO,MAAM,kCAAkC;;;;;kBASpC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;;;;;;kBAYtC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;kBAStC,CAAC"}
@@ -90,6 +90,19 @@ export const GuildInviteCancelledEventSchema = z
90
90
  .strict(),
91
91
  })
92
92
  .strict();
93
+ // A guildmate left the Work — the leave callable's committed departure. Carries the departing
94
+ // user, whose own Works lose this one; the Work's member-only reads are no longer theirs.
95
+ export const WorkProjectGuildmateLeftEventSchema = z
96
+ .object({
97
+ type: z.literal('workProject.guildmateLeft'),
98
+ ids: z
99
+ .object({
100
+ workProjectId: z.string().min(1),
101
+ userId: z.string().min(1),
102
+ })
103
+ .strict(),
104
+ })
105
+ .strict();
93
106
  export const AuditionPromptCreatedEventSchema = z
94
107
  .object({
95
108
  type: z.literal('audition.promptCreated'),
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events-work.js","sourceRoot":"","sources":["../../src/media/domain-events-work.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport {\n HALL_CONTENT_DETAIL_SURFACES,\n HALL_CONTENT_SUB_ITEM_SURFACES,\n} from '../constants/hall-content-routing.js';\n\n// DomainEvent schemas for the work-project domain — work projects, guild\n// invites, auditions, commissions, hall library, and threshold-library\n// submission. Assembled into the discriminated union in ./domain-events.ts.\n\nexport const WorkProjectCreatedEventSchema = z\n .object({\n type: z.literal('workProject.created'),\n ids: z\n .object({\n userId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const WorkProjectUpdatedEventSchema = z\n .object({\n type: z.literal('workProject.updated'),\n ids: z.object({ workProjectId: z.string().min(1) }).strict(),\n })\n .strict();\n\nexport const WorkProjectPublishedEventSchema = z\n .object({\n type: z.literal('workProject.published'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n userId: z.string().min(1),\n workRealmId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const WorkProjectStakeSharesUpdatedEventSchema = z\n .object({\n type: z.literal('workProject.stakeSharesUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteSentEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteSent'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n inviterId: z.string().min(1),\n inviteeId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteAcceptedEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteAccepted'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteDeclinedEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteDeclined'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteCancelledEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteCancelled'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionPromptCreatedEventSchema = z\n .object({\n type: z.literal('audition.promptCreated'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionEntrySubmittedEventSchema = z\n .object({\n type: z.literal('audition.entryCreated'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n auditionEntryId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionEntryVoteRecordedEventSchema = z\n .object({\n type: z.literal('audition.entryVoted'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n auditionEntryId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionClosedEventSchema = z\n .object({\n type: z.literal('audition.closed'),\n ids: z\n .object({\n auditionId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionCreatedEventSchema = z\n .object({\n type: z.literal('commission.created'),\n ids: z\n .object({\n userId: z.string().min(1),\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalSubmittedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalSubmitted'),\n ids: z\n .object({\n userId: z.string().min(1),\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Commission closed — the closeCommission callable's terminal transition. A\n// commission listing is never deleted; closing is the only way it leaves the\n// board, so the event name says closed.\nexport const CommissionClosedEventSchema = z\n .object({\n type: z.literal('commission.closed'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalSavedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalSaved'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalRemovedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalRemoved'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const HallLibraryCoverUpdatedEventSchema = z\n .object({\n type: z.literal('hallLibrary.coverUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n itemType: z.enum(HALL_CONTENT_DETAIL_SURFACES),\n itemId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Realm cover published — the 'realm-cover' upload origin's publication adapter\n// wrote `realmCoverAssetId` onto workRealms/{workRealmId}.\nexport const WorkRealmCoverUpdatedEventSchema = z\n .object({\n type: z.literal('workRealm.coverUpdated'),\n ids: z\n .object({\n workRealmId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Realm details edited — the realm doc's own text/detail fields, as opposed to\n// workRealm.coverUpdated's `realmCoverAssetId`.\nexport const WorkRealmDetailsUpdatedEventSchema = z\n .object({\n type: z.literal('workRealm.detailsUpdated'),\n ids: z\n .object({\n workRealmId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const HallLibrarySubItemUpdatedEventSchema = z\n .object({\n type: z.literal('hallLibrary.subItemUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n itemType: z.enum(HALL_CONTENT_SUB_ITEM_SURFACES),\n parentId: z.string().min(1),\n itemId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const ThresholdLibrarySubmittedEventSchema = z\n .object({\n type: z.literal('thresholdLibrary.submitted'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n"]}
1
+ {"version":3,"file":"domain-events-work.js","sourceRoot":"","sources":["../../src/media/domain-events-work.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport {\n HALL_CONTENT_DETAIL_SURFACES,\n HALL_CONTENT_SUB_ITEM_SURFACES,\n} from '../constants/hall-content-routing.js';\n\n// DomainEvent schemas for the work-project domain — work projects, guild\n// invites, auditions, commissions, hall library, and threshold-library\n// submission. Assembled into the discriminated union in ./domain-events.ts.\n\nexport const WorkProjectCreatedEventSchema = z\n .object({\n type: z.literal('workProject.created'),\n ids: z\n .object({\n userId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const WorkProjectUpdatedEventSchema = z\n .object({\n type: z.literal('workProject.updated'),\n ids: z.object({ workProjectId: z.string().min(1) }).strict(),\n })\n .strict();\n\nexport const WorkProjectPublishedEventSchema = z\n .object({\n type: z.literal('workProject.published'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n userId: z.string().min(1),\n workRealmId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const WorkProjectStakeSharesUpdatedEventSchema = z\n .object({\n type: z.literal('workProject.stakeSharesUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteSentEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteSent'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n inviterId: z.string().min(1),\n inviteeId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteAcceptedEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteAccepted'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteDeclinedEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteDeclined'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const GuildInviteCancelledEventSchema = z\n .object({\n type: z.literal('workProject.guildInviteCancelled'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n guildInviteId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// A guildmate left the Work — the leave callable's committed departure. Carries the departing\n// user, whose own Works lose this one; the Work's member-only reads are no longer theirs.\nexport const WorkProjectGuildmateLeftEventSchema = z\n .object({\n type: z.literal('workProject.guildmateLeft'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionPromptCreatedEventSchema = z\n .object({\n type: z.literal('audition.promptCreated'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionEntrySubmittedEventSchema = z\n .object({\n type: z.literal('audition.entryCreated'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n auditionEntryId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionEntryVoteRecordedEventSchema = z\n .object({\n type: z.literal('audition.entryVoted'),\n ids: z\n .object({\n userId: z.string().min(1),\n auditionId: z.string().min(1),\n auditionEntryId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const AuditionClosedEventSchema = z\n .object({\n type: z.literal('audition.closed'),\n ids: z\n .object({\n auditionId: z.string().min(1),\n workProjectId: z.string().min(1).optional(),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionCreatedEventSchema = z\n .object({\n type: z.literal('commission.created'),\n ids: z\n .object({\n userId: z.string().min(1),\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalSubmittedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalSubmitted'),\n ids: z\n .object({\n userId: z.string().min(1),\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Commission closed — the closeCommission callable's terminal transition. A\n// commission listing is never deleted; closing is the only way it leaves the\n// board, so the event name says closed.\nexport const CommissionClosedEventSchema = z\n .object({\n type: z.literal('commission.closed'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalSavedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalSaved'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const CommissionProposalRemovedEventSchema = z\n .object({\n type: z.literal('commission.commissionProposalRemoved'),\n ids: z\n .object({\n commissionListingId: z.string().min(1),\n commissionProposalId: z.string().min(1),\n userId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const HallLibraryCoverUpdatedEventSchema = z\n .object({\n type: z.literal('hallLibrary.coverUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n itemType: z.enum(HALL_CONTENT_DETAIL_SURFACES),\n itemId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Realm cover published — the 'realm-cover' upload origin's publication adapter\n// wrote `realmCoverAssetId` onto workRealms/{workRealmId}.\nexport const WorkRealmCoverUpdatedEventSchema = z\n .object({\n type: z.literal('workRealm.coverUpdated'),\n ids: z\n .object({\n workRealmId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\n// Realm details edited — the realm doc's own text/detail fields, as opposed to\n// workRealm.coverUpdated's `realmCoverAssetId`.\nexport const WorkRealmDetailsUpdatedEventSchema = z\n .object({\n type: z.literal('workRealm.detailsUpdated'),\n ids: z\n .object({\n workRealmId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const HallLibrarySubItemUpdatedEventSchema = z\n .object({\n type: z.literal('hallLibrary.subItemUpdated'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n itemType: z.enum(HALL_CONTENT_SUB_ITEM_SURFACES),\n parentId: z.string().min(1),\n itemId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n\nexport const ThresholdLibrarySubmittedEventSchema = z\n .object({\n type: z.literal('thresholdLibrary.submitted'),\n ids: z\n .object({\n workProjectId: z.string().min(1),\n })\n .strict(),\n })\n .strict();\n"]}
@@ -212,6 +212,12 @@ export declare const DomainEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
212
212
  workProjectId: z.ZodString;
213
213
  guildInviteId: z.ZodString;
214
214
  }, z.core.$strict>;
215
+ }, z.core.$strict>, z.ZodObject<{
216
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
217
+ ids: z.ZodObject<{
218
+ workProjectId: z.ZodString;
219
+ userId: z.ZodString;
220
+ }, z.core.$strict>;
215
221
  }, z.core.$strict>, z.ZodObject<{
216
222
  type: z.ZodLiteral<"audition.entryVoted">;
217
223
  ids: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events.d.ts","sourceRoot":"","sources":["../../src/media/domain-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwDxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAgBzC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA+C5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,IAAI,OAAO,CACpE,WAAW,EACX;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CACZ,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"domain-events.d.ts","sourceRoot":"","sources":["../../src/media/domain-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyDxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAgBzC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAgD5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI5D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,IAAI,OAAO,CACpE,WAAW,EACX;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CACZ,CAAC,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { ProfilePictureUpdatedEventSchema, ProfilePreferencesUpdatedEventSchema, CraftSkillCreatedEventSchema, CraftSkillUpdatedEventSchema, CraftSkillDeletedEventSchema, FollowCreatedEventSchema, FollowRemovedEventSchema, MentionReadEventSchema, AuthStatusChangedEventSchema, ProfileDisplayNameChangedEventSchema, } from "./domain-events-user.js";
3
- import { WorkProjectCreatedEventSchema, WorkProjectUpdatedEventSchema, WorkProjectPublishedEventSchema, WorkProjectStakeSharesUpdatedEventSchema, GuildInviteSentEventSchema, GuildInviteAcceptedEventSchema, GuildInviteDeclinedEventSchema, GuildInviteCancelledEventSchema, AuditionPromptCreatedEventSchema, AuditionEntrySubmittedEventSchema, AuditionEntryVoteRecordedEventSchema, AuditionClosedEventSchema, CommissionCreatedEventSchema, CommissionProposalSubmittedEventSchema, CommissionClosedEventSchema, CommissionProposalSavedEventSchema, CommissionProposalRemovedEventSchema, HallLibraryCoverUpdatedEventSchema, WorkRealmCoverUpdatedEventSchema, WorkRealmDetailsUpdatedEventSchema, HallLibrarySubItemUpdatedEventSchema, ThresholdLibrarySubmittedEventSchema, } from "./domain-events-work.js";
3
+ import { WorkProjectCreatedEventSchema, WorkProjectUpdatedEventSchema, WorkProjectPublishedEventSchema, WorkProjectStakeSharesUpdatedEventSchema, GuildInviteSentEventSchema, GuildInviteAcceptedEventSchema, GuildInviteDeclinedEventSchema, GuildInviteCancelledEventSchema, WorkProjectGuildmateLeftEventSchema, AuditionPromptCreatedEventSchema, AuditionEntrySubmittedEventSchema, AuditionEntryVoteRecordedEventSchema, AuditionClosedEventSchema, CommissionCreatedEventSchema, CommissionProposalSubmittedEventSchema, CommissionClosedEventSchema, CommissionProposalSavedEventSchema, CommissionProposalRemovedEventSchema, HallLibraryCoverUpdatedEventSchema, WorkRealmCoverUpdatedEventSchema, WorkRealmDetailsUpdatedEventSchema, HallLibrarySubItemUpdatedEventSchema, ThresholdLibrarySubmittedEventSchema, } from "./domain-events-work.js";
4
4
  import { SquareStreetzPostCreatedEventSchema, SquareStreetzPostLikedEventSchema, SquareStreetzPostUnlikedEventSchema, } from "./domain-events-social.js";
5
5
  import { ModerationViolationCreatedEventSchema, ThresholdLibraryApprovedEventSchema, ThresholdLibraryNeedsRevisionEventSchema, AdminDispatchThreadUpdatedEventSchema, AdminAppealReviewedEventSchema, AdminDispatchReviewedEventSchema, ViolationAppealSubmittedEventSchema, AdminDisplayNameResetForcedEventSchema, HallContentChangeRequestApprovedEventSchema, SystemSlotVideoUpdatedEventSchema, SystemSlotUidUpdatedEventSchema, } from "./domain-events-admin.js";
6
6
  export * from "./domain-events-user.js";
@@ -47,6 +47,7 @@ export const DomainEventSchema = z.discriminatedUnion('type', [
47
47
  GuildInviteAcceptedEventSchema,
48
48
  GuildInviteDeclinedEventSchema,
49
49
  GuildInviteCancelledEventSchema,
50
+ WorkProjectGuildmateLeftEventSchema,
50
51
  AuditionEntryVoteRecordedEventSchema,
51
52
  AuditionClosedEventSchema,
52
53
  CommissionClosedEventSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events.js","sourceRoot":"","sources":["../../src/media/domain-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,wCAAwC,EACxC,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,iCAAiC,EACjC,oCAAoC,EACpC,yBAAyB,EACzB,4BAA4B,EAC5B,sCAAsC,EACtC,2BAA2B,EAC3B,kCAAkC,EAClC,oCAAoC,EACpC,kCAAkC,EAClC,gCAAgC,EAChC,kCAAkC,EAClC,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qCAAqC,EACrC,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,EACnC,sCAAsC,EACtC,2CAA2C,EAC3C,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,+EAA+E;AAC/E,uEAAuE;AACvE,6EAA6E;AAC7E,gEAAgE;AAChE,EAAE;AACF,gDAAgD;AAChD,0CAA0C;AAC1C,iDAAiD;AACjD,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,mEAAmE;AACnE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC5D,gCAAgC;IAChC,4BAA4B;IAC5B,mCAAmC;IACnC,gCAAgC;IAChC,iCAAiC;IACjC,4BAA4B;IAC5B,sCAAsC;IACtC,6BAA6B;IAC7B,kCAAkC;IAClC,gCAAgC;IAChC,oCAAoC;IACpC,qCAAqC;IACrC,wBAAwB;IACxB,wBAAwB;IACxB,iCAAiC;IACjC,mCAAmC;IACnC,oCAAoC;IACpC,4BAA4B;IAC5B,4BAA4B;IAC5B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,0BAA0B;IAC1B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,oCAAoC;IACpC,yBAAyB;IACzB,2BAA2B;IAC3B,kCAAkC;IAClC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,wCAAwC;IACxC,qCAAqC;IACrC,8BAA8B;IAC9B,gCAAgC;IAChC,sBAAsB;IACtB,4BAA4B;IAC5B,mCAAmC;IACnC,oCAAoC;IACpC,sCAAsC;IACtC,kCAAkC;IAClC,2CAA2C;IAC3C,iCAAiC;IACjC,+BAA+B;CAChC,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\nimport {\n ProfilePictureUpdatedEventSchema,\n ProfilePreferencesUpdatedEventSchema,\n CraftSkillCreatedEventSchema,\n CraftSkillUpdatedEventSchema,\n CraftSkillDeletedEventSchema,\n FollowCreatedEventSchema,\n FollowRemovedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ProfileDisplayNameChangedEventSchema,\n} from \"./domain-events-user.js\";\nimport {\n WorkProjectCreatedEventSchema,\n WorkProjectUpdatedEventSchema,\n WorkProjectPublishedEventSchema,\n WorkProjectStakeSharesUpdatedEventSchema,\n GuildInviteSentEventSchema,\n GuildInviteAcceptedEventSchema,\n GuildInviteDeclinedEventSchema,\n GuildInviteCancelledEventSchema,\n AuditionPromptCreatedEventSchema,\n AuditionEntrySubmittedEventSchema,\n AuditionEntryVoteRecordedEventSchema,\n AuditionClosedEventSchema,\n CommissionCreatedEventSchema,\n CommissionProposalSubmittedEventSchema,\n CommissionClosedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n HallLibraryCoverUpdatedEventSchema,\n WorkRealmCoverUpdatedEventSchema,\n WorkRealmDetailsUpdatedEventSchema,\n HallLibrarySubItemUpdatedEventSchema,\n ThresholdLibrarySubmittedEventSchema,\n} from \"./domain-events-work.js\";\nimport {\n SquareStreetzPostCreatedEventSchema,\n SquareStreetzPostLikedEventSchema,\n SquareStreetzPostUnlikedEventSchema,\n} from \"./domain-events-social.js\";\nimport {\n ModerationViolationCreatedEventSchema,\n ThresholdLibraryApprovedEventSchema,\n ThresholdLibraryNeedsRevisionEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n ViolationAppealSubmittedEventSchema,\n AdminDisplayNameResetForcedEventSchema,\n HallContentChangeRequestApprovedEventSchema,\n SystemSlotVideoUpdatedEventSchema,\n SystemSlotUidUpdatedEventSchema,\n} from \"./domain-events-admin.js\";\n\nexport * from \"./domain-events-user.js\";\nexport * from \"./domain-events-work.js\";\nexport * from \"./domain-events-social.js\";\nexport * from \"./domain-events-admin.js\";\n\n// ============================================================================\n// DomainEvent — typed business actions emitted by mutations and upload\n// processors. The frontend registry (ttt-prod/src/lib/domain-events.ts) maps\n// each variant to a list of TanStack Query cache invalidations.\n//\n// Adding a new variant is a coordinated deploy:\n// 1. Add it here. Publish this package.\n// 2. Add a registry entry in ttt-prod. Deploy.\n// 3. Update producers (mutation hooks or processors) to emit it.\n//\n// The schema is .strict() end-to-end — unknown event types fail parse and\n// the consuming hook in ttt-prod logs to Sentry and skips the doc.\n// ============================================================================\n\nexport const DomainEventSchema = z.discriminatedUnion('type', [\n ProfilePictureUpdatedEventSchema,\n CraftSkillCreatedEventSchema,\n SquareStreetzPostCreatedEventSchema,\n AuditionPromptCreatedEventSchema,\n AuditionEntrySubmittedEventSchema,\n CommissionCreatedEventSchema,\n CommissionProposalSubmittedEventSchema,\n WorkProjectUpdatedEventSchema,\n HallLibraryCoverUpdatedEventSchema,\n WorkRealmCoverUpdatedEventSchema,\n HallLibrarySubItemUpdatedEventSchema,\n ModerationViolationCreatedEventSchema,\n FollowCreatedEventSchema,\n FollowRemovedEventSchema,\n SquareStreetzPostLikedEventSchema,\n SquareStreetzPostUnlikedEventSchema,\n ProfilePreferencesUpdatedEventSchema,\n CraftSkillDeletedEventSchema,\n CraftSkillUpdatedEventSchema,\n WorkProjectCreatedEventSchema,\n WorkProjectPublishedEventSchema,\n WorkProjectStakeSharesUpdatedEventSchema,\n GuildInviteSentEventSchema,\n GuildInviteAcceptedEventSchema,\n GuildInviteDeclinedEventSchema,\n GuildInviteCancelledEventSchema,\n AuditionEntryVoteRecordedEventSchema,\n AuditionClosedEventSchema,\n CommissionClosedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n ThresholdLibrarySubmittedEventSchema,\n ThresholdLibraryApprovedEventSchema,\n ThresholdLibraryNeedsRevisionEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ViolationAppealSubmittedEventSchema,\n ProfileDisplayNameChangedEventSchema,\n AdminDisplayNameResetForcedEventSchema,\n WorkRealmDetailsUpdatedEventSchema,\n HallContentChangeRequestApprovedEventSchema,\n SystemSlotVideoUpdatedEventSchema,\n SystemSlotUidUpdatedEventSchema,\n]);\n\nexport type DomainEvent = z.infer<typeof DomainEventSchema>;\n\n// Helper for callers that need to extract the ids type for a specific\n// event variant (e.g. registry entries in the consuming repo).\nexport type DomainEventIdsFor<T extends DomainEvent['type']> = Extract<\n DomainEvent,\n { type: T }\n>['ids'];\n\n\n\n\n\n"]}
1
+ {"version":3,"file":"domain-events.js","sourceRoot":"","sources":["../../src/media/domain-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,wCAAwC,EACxC,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,oCAAoC,EACpC,yBAAyB,EACzB,4BAA4B,EAC5B,sCAAsC,EACtC,2BAA2B,EAC3B,kCAAkC,EAClC,oCAAoC,EACpC,kCAAkC,EAClC,gCAAgC,EAChC,kCAAkC,EAClC,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qCAAqC,EACrC,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,EACnC,sCAAsC,EACtC,2CAA2C,EAC3C,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,+EAA+E;AAC/E,uEAAuE;AACvE,6EAA6E;AAC7E,gEAAgE;AAChE,EAAE;AACF,gDAAgD;AAChD,0CAA0C;AAC1C,iDAAiD;AACjD,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,mEAAmE;AACnE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC5D,gCAAgC;IAChC,4BAA4B;IAC5B,mCAAmC;IACnC,gCAAgC;IAChC,iCAAiC;IACjC,4BAA4B;IAC5B,sCAAsC;IACtC,6BAA6B;IAC7B,kCAAkC;IAClC,gCAAgC;IAChC,oCAAoC;IACpC,qCAAqC;IACrC,wBAAwB;IACxB,wBAAwB;IACxB,iCAAiC;IACjC,mCAAmC;IACnC,oCAAoC;IACpC,4BAA4B;IAC5B,4BAA4B;IAC5B,6BAA6B;IAC7B,+BAA+B;IAC/B,wCAAwC;IACxC,0BAA0B;IAC1B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,mCAAmC;IACnC,oCAAoC;IACpC,yBAAyB;IACzB,2BAA2B;IAC3B,kCAAkC;IAClC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,wCAAwC;IACxC,qCAAqC;IACrC,8BAA8B;IAC9B,gCAAgC;IAChC,sBAAsB;IACtB,4BAA4B;IAC5B,mCAAmC;IACnC,oCAAoC;IACpC,sCAAsC;IACtC,kCAAkC;IAClC,2CAA2C;IAC3C,iCAAiC;IACjC,+BAA+B;CAChC,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\nimport {\n ProfilePictureUpdatedEventSchema,\n ProfilePreferencesUpdatedEventSchema,\n CraftSkillCreatedEventSchema,\n CraftSkillUpdatedEventSchema,\n CraftSkillDeletedEventSchema,\n FollowCreatedEventSchema,\n FollowRemovedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ProfileDisplayNameChangedEventSchema,\n} from \"./domain-events-user.js\";\nimport {\n WorkProjectCreatedEventSchema,\n WorkProjectUpdatedEventSchema,\n WorkProjectPublishedEventSchema,\n WorkProjectStakeSharesUpdatedEventSchema,\n GuildInviteSentEventSchema,\n GuildInviteAcceptedEventSchema,\n GuildInviteDeclinedEventSchema,\n GuildInviteCancelledEventSchema,\n WorkProjectGuildmateLeftEventSchema,\n AuditionPromptCreatedEventSchema,\n AuditionEntrySubmittedEventSchema,\n AuditionEntryVoteRecordedEventSchema,\n AuditionClosedEventSchema,\n CommissionCreatedEventSchema,\n CommissionProposalSubmittedEventSchema,\n CommissionClosedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n HallLibraryCoverUpdatedEventSchema,\n WorkRealmCoverUpdatedEventSchema,\n WorkRealmDetailsUpdatedEventSchema,\n HallLibrarySubItemUpdatedEventSchema,\n ThresholdLibrarySubmittedEventSchema,\n} from \"./domain-events-work.js\";\nimport {\n SquareStreetzPostCreatedEventSchema,\n SquareStreetzPostLikedEventSchema,\n SquareStreetzPostUnlikedEventSchema,\n} from \"./domain-events-social.js\";\nimport {\n ModerationViolationCreatedEventSchema,\n ThresholdLibraryApprovedEventSchema,\n ThresholdLibraryNeedsRevisionEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n ViolationAppealSubmittedEventSchema,\n AdminDisplayNameResetForcedEventSchema,\n HallContentChangeRequestApprovedEventSchema,\n SystemSlotVideoUpdatedEventSchema,\n SystemSlotUidUpdatedEventSchema,\n} from \"./domain-events-admin.js\";\n\nexport * from \"./domain-events-user.js\";\nexport * from \"./domain-events-work.js\";\nexport * from \"./domain-events-social.js\";\nexport * from \"./domain-events-admin.js\";\n\n// ============================================================================\n// DomainEvent — typed business actions emitted by mutations and upload\n// processors. The frontend registry (ttt-prod/src/lib/domain-events.ts) maps\n// each variant to a list of TanStack Query cache invalidations.\n//\n// Adding a new variant is a coordinated deploy:\n// 1. Add it here. Publish this package.\n// 2. Add a registry entry in ttt-prod. Deploy.\n// 3. Update producers (mutation hooks or processors) to emit it.\n//\n// The schema is .strict() end-to-end — unknown event types fail parse and\n// the consuming hook in ttt-prod logs to Sentry and skips the doc.\n// ============================================================================\n\nexport const DomainEventSchema = z.discriminatedUnion('type', [\n ProfilePictureUpdatedEventSchema,\n CraftSkillCreatedEventSchema,\n SquareStreetzPostCreatedEventSchema,\n AuditionPromptCreatedEventSchema,\n AuditionEntrySubmittedEventSchema,\n CommissionCreatedEventSchema,\n CommissionProposalSubmittedEventSchema,\n WorkProjectUpdatedEventSchema,\n HallLibraryCoverUpdatedEventSchema,\n WorkRealmCoverUpdatedEventSchema,\n HallLibrarySubItemUpdatedEventSchema,\n ModerationViolationCreatedEventSchema,\n FollowCreatedEventSchema,\n FollowRemovedEventSchema,\n SquareStreetzPostLikedEventSchema,\n SquareStreetzPostUnlikedEventSchema,\n ProfilePreferencesUpdatedEventSchema,\n CraftSkillDeletedEventSchema,\n CraftSkillUpdatedEventSchema,\n WorkProjectCreatedEventSchema,\n WorkProjectPublishedEventSchema,\n WorkProjectStakeSharesUpdatedEventSchema,\n GuildInviteSentEventSchema,\n GuildInviteAcceptedEventSchema,\n GuildInviteDeclinedEventSchema,\n GuildInviteCancelledEventSchema,\n WorkProjectGuildmateLeftEventSchema,\n AuditionEntryVoteRecordedEventSchema,\n AuditionClosedEventSchema,\n CommissionClosedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n ThresholdLibrarySubmittedEventSchema,\n ThresholdLibraryApprovedEventSchema,\n ThresholdLibraryNeedsRevisionEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ViolationAppealSubmittedEventSchema,\n ProfileDisplayNameChangedEventSchema,\n AdminDisplayNameResetForcedEventSchema,\n WorkRealmDetailsUpdatedEventSchema,\n HallContentChangeRequestApprovedEventSchema,\n SystemSlotVideoUpdatedEventSchema,\n SystemSlotUidUpdatedEventSchema,\n]);\n\nexport type DomainEvent = z.infer<typeof DomainEventSchema>;\n\n// Helper for callers that need to extract the ids type for a specific\n// event variant (e.g. registry entries in the consuming repo).\nexport type DomainEventIdsFor<T extends DomainEvent['type']> = Extract<\n DomainEvent,\n { type: T }\n>['ids'];\n\n\n\n\n\n"]}
@@ -217,6 +217,12 @@ export declare const PendingMediaResultSchema: z.ZodObject<{
217
217
  workProjectId: z.ZodString;
218
218
  guildInviteId: z.ZodString;
219
219
  }, z.core.$strict>;
220
+ }, z.core.$strict>, z.ZodObject<{
221
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
222
+ ids: z.ZodObject<{
223
+ workProjectId: z.ZodString;
224
+ userId: z.ZodString;
225
+ }, z.core.$strict>;
220
226
  }, z.core.$strict>, z.ZodObject<{
221
227
  type: z.ZodLiteral<"audition.entryVoted">;
222
228
  ids: z.ZodObject<{
@@ -705,6 +711,12 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
705
711
  workProjectId: z.ZodString;
706
712
  guildInviteId: z.ZodString;
707
713
  }, z.core.$strict>;
714
+ }, z.core.$strict>, z.ZodObject<{
715
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
716
+ ids: z.ZodObject<{
717
+ workProjectId: z.ZodString;
718
+ userId: z.ZodString;
719
+ }, z.core.$strict>;
708
720
  }, z.core.$strict>, z.ZodObject<{
709
721
  type: z.ZodLiteral<"audition.entryVoted">;
710
722
  ids: z.ZodObject<{
@@ -1210,6 +1222,12 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
1210
1222
  workProjectId: z.ZodString;
1211
1223
  guildInviteId: z.ZodString;
1212
1224
  }, z.core.$strict>;
1225
+ }, z.core.$strict>, z.ZodObject<{
1226
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
1227
+ ids: z.ZodObject<{
1228
+ workProjectId: z.ZodString;
1229
+ userId: z.ZodString;
1230
+ }, z.core.$strict>;
1213
1231
  }, z.core.$strict>, z.ZodObject<{
1214
1232
  type: z.ZodLiteral<"audition.entryVoted">;
1215
1233
  ids: z.ZodObject<{
@@ -1758,6 +1776,12 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1758
1776
  workProjectId: z.ZodString;
1759
1777
  guildInviteId: z.ZodString;
1760
1778
  }, z.core.$strict>;
1779
+ }, z.core.$strict>, z.ZodObject<{
1780
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
1781
+ ids: z.ZodObject<{
1782
+ workProjectId: z.ZodString;
1783
+ userId: z.ZodString;
1784
+ }, z.core.$strict>;
1761
1785
  }, z.core.$strict>, z.ZodObject<{
1762
1786
  type: z.ZodLiteral<"audition.entryVoted">;
1763
1787
  ids: z.ZodObject<{
@@ -2261,6 +2285,12 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2261
2285
  workProjectId: z.ZodString;
2262
2286
  guildInviteId: z.ZodString;
2263
2287
  }, z.core.$strict>;
2288
+ }, z.core.$strict>, z.ZodObject<{
2289
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
2290
+ ids: z.ZodObject<{
2291
+ workProjectId: z.ZodString;
2292
+ userId: z.ZodString;
2293
+ }, z.core.$strict>;
2264
2294
  }, z.core.$strict>, z.ZodObject<{
2265
2295
  type: z.ZodLiteral<"audition.entryVoted">;
2266
2296
  ids: z.ZodObject<{
@@ -2681,6 +2711,12 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2681
2711
  workProjectId: z.ZodString;
2682
2712
  guildInviteId: z.ZodString;
2683
2713
  }, z.core.$strict>;
2714
+ }, z.core.$strict>, z.ZodObject<{
2715
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
2716
+ ids: z.ZodObject<{
2717
+ workProjectId: z.ZodString;
2718
+ userId: z.ZodString;
2719
+ }, z.core.$strict>;
2684
2720
  }, z.core.$strict>, z.ZodObject<{
2685
2721
  type: z.ZodLiteral<"audition.entryVoted">;
2686
2722
  ids: z.ZodObject<{
@@ -3188,6 +3224,12 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
3188
3224
  workProjectId: z.ZodString;
3189
3225
  guildInviteId: z.ZodString;
3190
3226
  }, z.core.$strict>;
3227
+ }, z.core.$strict>, z.ZodObject<{
3228
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
3229
+ ids: z.ZodObject<{
3230
+ workProjectId: z.ZodString;
3231
+ userId: z.ZodString;
3232
+ }, z.core.$strict>;
3191
3233
  }, z.core.$strict>, z.ZodObject<{
3192
3234
  type: z.ZodLiteral<"audition.entryVoted">;
3193
3235
  ids: z.ZodObject<{
@@ -3609,6 +3651,12 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3609
3651
  workProjectId: z.ZodString;
3610
3652
  guildInviteId: z.ZodString;
3611
3653
  }, z.core.$strict>;
3654
+ }, z.core.$strict>, z.ZodObject<{
3655
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
3656
+ ids: z.ZodObject<{
3657
+ workProjectId: z.ZodString;
3658
+ userId: z.ZodString;
3659
+ }, z.core.$strict>;
3612
3660
  }, z.core.$strict>, z.ZodObject<{
3613
3661
  type: z.ZodLiteral<"audition.entryVoted">;
3614
3662
  ids: z.ZodObject<{
@@ -4114,6 +4162,12 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
4114
4162
  workProjectId: z.ZodString;
4115
4163
  guildInviteId: z.ZodString;
4116
4164
  }, z.core.$strict>;
4165
+ }, z.core.$strict>, z.ZodObject<{
4166
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
4167
+ ids: z.ZodObject<{
4168
+ workProjectId: z.ZodString;
4169
+ userId: z.ZodString;
4170
+ }, z.core.$strict>;
4117
4171
  }, z.core.$strict>, z.ZodObject<{
4118
4172
  type: z.ZodLiteral<"audition.entryVoted">;
4119
4173
  ids: z.ZodObject<{
@@ -4540,6 +4594,12 @@ export declare const ArchivedPendingMediaDocSchema: z.ZodUnion<readonly [z.ZodDi
4540
4594
  workProjectId: z.ZodString;
4541
4595
  guildInviteId: z.ZodString;
4542
4596
  }, z.core.$strict>;
4597
+ }, z.core.$strict>, z.ZodObject<{
4598
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
4599
+ ids: z.ZodObject<{
4600
+ workProjectId: z.ZodString;
4601
+ userId: z.ZodString;
4602
+ }, z.core.$strict>;
4543
4603
  }, z.core.$strict>, z.ZodObject<{
4544
4604
  type: z.ZodLiteral<"audition.entryVoted">;
4545
4605
  ids: z.ZodObject<{
@@ -5045,6 +5105,12 @@ export declare const ArchivedPendingMediaDocSchema: z.ZodUnion<readonly [z.ZodDi
5045
5105
  workProjectId: z.ZodString;
5046
5106
  guildInviteId: z.ZodString;
5047
5107
  }, z.core.$strict>;
5108
+ }, z.core.$strict>, z.ZodObject<{
5109
+ type: z.ZodLiteral<"workProject.guildmateLeft">;
5110
+ ids: z.ZodObject<{
5111
+ workProjectId: z.ZodString;
5112
+ userId: z.ZodString;
5113
+ }, z.core.$strict>;
5048
5114
  }, z.core.$strict>, z.ZodObject<{
5049
5115
  type: z.ZodLiteral<"audition.entryVoted">;
5050
5116
  ids: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"pending-media.d.ts","sourceRoot":"","sources":["../../src/media/pending-media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAS7B,eAAO,MAAM,+BAA+B;;;;;;;EAA0C,CAAC;AACvF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAoC,CAAC;AAC3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsC,CAAC;AAC/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAC7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"pending-media.d.ts","sourceRoot":"","sources":["../../src/media/pending-media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAS7B,eAAO,MAAM,+BAA+B;;;;;;;EAA0C,CAAC;AACvF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAoC,CAAC;AAC3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAuC,CAAC;AACjF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAsC,CAAC;AAC/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAmC,CAAC;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAC7E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAA6B,CAAC;AAE7D,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA8C,CAAC;AAC/F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA2C,CAAC;AACzF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA6C,CAAC;AAC7F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAAqC,CAAC;AAC7E,eAAO,MAAM,qCAAqC;;;;kBAAgD,CAAC;AACnG,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAwC,CAAC;AAEnF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AACpG,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAE9D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAE9E"}
@@ -81,17 +81,13 @@ export declare const GUILD_STANDING_VALUES: GuildStandingValue[];
81
81
  export declare const WORK_FILE_ADMIN_GUILD_STANDING_IDS: readonly ["StewardOwner", "WorkProjectManager", "WorkAssetAdmin"];
82
82
  /**
83
83
  * A Work's invite handlers: they send the Work's invites, list them, cancel them, and take the
84
- * Work's side in every invite conversation — they see it, reply in it, and accept for the Work.
84
+ * Work's side in every invite conversation — they see it, reply in it, share files in it, and
85
+ * agree for the Work. A Stake Share Manager is one: it handles invites like an Invite Manager and
86
+ * also changes their offers.
85
87
  */
86
- export declare const GUILD_INVITE_HANDLER_GUILD_STANDING_IDS: readonly ["StewardOwner", "WorkProjectManager", "InviteManager"];
88
+ export declare const GUILD_INVITE_HANDLER_GUILD_STANDING_IDS: readonly ["StewardOwner", "WorkProjectManager", "InviteManager", "StakeShareManager"];
87
89
  /** The standings that change stake amounts — active Guildmates' stakes and pending invite offers. */
88
90
  export declare const STAKE_SHARE_POWER_GUILD_STANDING_IDS: readonly ["StewardOwner", "WorkProjectManager", "StakeShareManager"];
89
- /**
90
- * The standings that open the Work's invites: the invite handlers, and the stake-power standings,
91
- * which open an invite to change its offer. Opening an invite is not taking part in it — the
92
- * conversation, its files, the Work's agreement, and cancelling stay the handlers'.
93
- */
94
- export declare const GUILD_INVITE_VIEWER_GUILD_STANDING_IDS: readonly GuildStandingId[];
95
91
  export declare const WORK_PROJECT_ACTIONS: {
96
92
  readonly 'workProject.read': {
97
93
  readonly label: "Read workProject";
@@ -121,17 +117,17 @@ export declare const WORK_PROJECT_ACTIONS: {
121
117
  readonly 'guildInvite.send': {
122
118
  readonly label: "Send invites";
123
119
  readonly description: "Start a workProject invite conversation and reserve pending stakes.";
124
- readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "InviteManager"];
120
+ readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "InviteManager", "StakeShareManager"];
125
121
  };
126
122
  readonly 'guildInvite.list': {
127
123
  readonly label: "List invites";
128
- readonly description: string;
129
- readonly grantedTo: readonly ("StewardOwner" | "WorkProjectManager" | "PublicWorkProjectEditor" | "GuildStandingManager" | "StakeShareManager" | "InviteManager" | "WorkAssetAdmin" | "CommissionManager" | "AuditionManager" | "HallLibraryEditor" | "HallLibrarySubmitter" | "GuildChatChannelManager")[];
124
+ readonly description: "Open the Work's invites and see their state and offers.";
125
+ readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "InviteManager", "StakeShareManager"];
130
126
  };
131
127
  readonly 'guildInvite.revokeAny': {
132
128
  readonly label: "Revoke pending invites";
133
129
  readonly description: "Cancel or revoke pending workProject invites.";
134
- readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "InviteManager"];
130
+ readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "InviteManager", "StakeShareManager"];
135
131
  };
136
132
  readonly 'guildInvite.stakeShares.update': {
137
133
  readonly label: "Update invite stakes";
@@ -1 +1 @@
1
- {"version":3,"file":"work-project-permissions-data.d.ts","sourceRoot":"","sources":["../../src/permissions/work-project-permissions-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAC3D,eAAO,MAAM,kBAAkB,EAAmC,eAAe,EAAE,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,gBAAoD,CAAC;AACjG,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAaa,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,eAAe,CAAC,CAAC;AACtF,eAAO,MAAM,qBAAqB,EAAgD,kBAAkB,EAAE,CAAC;AAEvG;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,mEAIA,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,uCAAuC,kEAIL,CAAC;AAEhD,qGAAqG;AACrG,eAAO,MAAM,oCAAoC,sEAIF,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,EAAE,SAAS,eAAe,EAE5E,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoN/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AACpE,eAAO,MAAM,uBAAuB,EAAwC,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"work-project-permissions-data.d.ts","sourceRoot":"","sources":["../../src/permissions/work-project-permissions-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,eAAe,CAAC;AAC3D,eAAO,MAAM,kBAAkB,EAAmC,eAAe,EAAE,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,gBAAoD,CAAC;AACjG,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAaa,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,eAAe,CAAC,CAAC;AACtF,eAAO,MAAM,qBAAqB,EAAgD,kBAAkB,EAAE,CAAC;AAEvG;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,mEAIA,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,uCAAuC,uFAKL,CAAC;AAEhD,qGAAqG;AACrG,eAAO,MAAM,oCAAoC,sEAIF,CAAC;AAEhD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkN/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AACpE,eAAO,MAAM,uBAAuB,EAAwC,mBAAmB,EAAE,CAAC"}
@@ -83,12 +83,15 @@ export const WORK_FILE_ADMIN_GUILD_STANDING_IDS = [
83
83
  ];
84
84
  /**
85
85
  * A Work's invite handlers: they send the Work's invites, list them, cancel them, and take the
86
- * Work's side in every invite conversation — they see it, reply in it, and accept for the Work.
86
+ * Work's side in every invite conversation — they see it, reply in it, share files in it, and
87
+ * agree for the Work. A Stake Share Manager is one: it handles invites like an Invite Manager and
88
+ * also changes their offers.
87
89
  */
88
90
  export const GUILD_INVITE_HANDLER_GUILD_STANDING_IDS = [
89
91
  'StewardOwner',
90
92
  'WorkProjectManager',
91
93
  'InviteManager',
94
+ 'StakeShareManager',
92
95
  ];
93
96
  /** The standings that change stake amounts — active Guildmates' stakes and pending invite offers. */
94
97
  export const STAKE_SHARE_POWER_GUILD_STANDING_IDS = [
@@ -96,14 +99,6 @@ export const STAKE_SHARE_POWER_GUILD_STANDING_IDS = [
96
99
  'WorkProjectManager',
97
100
  'StakeShareManager',
98
101
  ];
99
- /**
100
- * The standings that open the Work's invites: the invite handlers, and the stake-power standings,
101
- * which open an invite to change its offer. Opening an invite is not taking part in it — the
102
- * conversation, its files, the Work's agreement, and cancelling stay the handlers'.
103
- */
104
- export const GUILD_INVITE_VIEWER_GUILD_STANDING_IDS = [
105
- ...new Set([...GUILD_INVITE_HANDLER_GUILD_STANDING_IDS, ...STAKE_SHARE_POWER_GUILD_STANDING_IDS]),
106
- ];
107
102
  export const WORK_PROJECT_ACTIONS = {
108
103
  'workProject.read': {
109
104
  label: 'Read workProject',
@@ -141,9 +136,8 @@ export const WORK_PROJECT_ACTIONS = {
141
136
  },
142
137
  'guildInvite.list': {
143
138
  label: 'List invites',
144
- description: "Open the Work's invites and see their state and offers. A stake-power standing opens an invite " +
145
- 'to change its offer; replying, agreeing for the Work, and cancelling stay with the invite handlers.',
146
- grantedTo: GUILD_INVITE_VIEWER_GUILD_STANDING_IDS,
139
+ description: "Open the Work's invites and see their state and offers.",
140
+ grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,
147
141
  },
148
142
  'guildInvite.revokeAny': {
149
143
  label: 'Revoke pending invites',
@@ -1 +1 @@
1
- {"version":3,"file":"work-project-permissions-data.js","sourceRoot":"","sources":["../../src/permissions/work-project-permissions-data.ts"],"names":[],"mappings":"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","sourcesContent":["export const GUILD_STANDINGS = {\n StewardOwner: {\n label: 'Steward',\n description: 'Work steward. Holds all workProject actions implicitly. Assigned automatically at workProject creation and non-assignable via guild standing management UIs.',\n },\n WorkProjectManager: {\n label: 'WorkProject Manager',\n description: 'Can perform every workProject action except granting Steward, WorkProjectManager, GuildStandingManager, or StakeShareManager.',\n },\n PublicWorkProjectEditor: {\n label: 'Public WorkProject Editor',\n description: 'Can edit public-facing workProject title, description, and copy.',\n },\n GuildStandingManager: {\n label: 'Guild Standing Manager',\n description: 'Can assign and remove ordinary workProject guild standings without escalating manager, stake-share, or trade-profession authority (tradeProfessions are folder/chat access keys, editable only by file-admin standings).',\n },\n StakeShareManager: {\n label: 'Stake Share Manager',\n description: 'Can adjust active Guildmate stakes and pending invite stake offers.',\n },\n InviteManager: {\n label: 'Invite Manager',\n description: 'Can send workProject invites, view invite state, and cancel or revoke pending invites.',\n },\n WorkAssetAdmin: {\n label: 'Work Asset Admin',\n description: 'Delegated file-system administration: create/rename file folders, assign folder trade-profession access, view every folder and file, and delete any file. Assignable only by the Steward.',\n },\n CommissionManager: {\n label: 'Commission Manager',\n description: 'Can open and close workProject commissions and manage proposals without starting invite conversations.',\n },\n AuditionManager: {\n label: 'Audition Manager',\n description: 'Can open and close workProject auditions without starting invite conversations.',\n },\n HallLibraryEditor: {\n label: 'Hall Editor',\n description: 'Can create and edit Tales, Tunes, Television content, Genres, and media assets.',\n },\n HallLibrarySubmitter: {\n label: 'Hall Submitter',\n description: 'Can submit workProject hall content for admin hall review.',\n },\n GuildChatChannelManager: {\n label: 'Guild Chat Channel Manager',\n description: 'Can create, update, archive, and delete workProject chat channels.',\n },\n} as const;\n\nexport type GuildStandingId = keyof typeof GUILD_STANDINGS;\nexport const GUILD_STANDING_IDS = Object.keys(GUILD_STANDINGS) as GuildStandingId[];\n\n/**\n * The work steward's standing id — the one standing that is never assignable and that\n * `GuildmateUser.guildStandings` carries (that array stores IDs, not display values;\n * this id's display value is 'Steward', so the two are not interchangeable).\n * Consumers branch on this rather than re-quoting the member.\n */\nexport const STEWARD_OWNER_GUILD_STANDING_ID = 'StewardOwner' as const satisfies GuildStandingId;\nexport const GUILD_STANDING_VALUE_BY_ID = {\n StewardOwner: 'Steward',\n WorkProjectManager: 'WorkProjectManager',\n PublicWorkProjectEditor: 'PublicWorkProjectEditor',\n GuildStandingManager: 'GuildStandingManager',\n StakeShareManager: 'StakeShareManager',\n InviteManager: 'InviteManager',\n WorkAssetAdmin: 'WorkAssetAdmin',\n CommissionManager: 'CommissionManager',\n AuditionManager: 'AuditionManager',\n HallLibraryEditor: 'HallLibraryEditor',\n HallLibrarySubmitter: 'HallLibrarySubmitter',\n GuildChatChannelManager: 'GuildChatChannelManager',\n} as const satisfies Record<GuildStandingId, string>;\nexport type GuildStandingValue = (typeof GUILD_STANDING_VALUE_BY_ID)[GuildStandingId];\nexport const GUILD_STANDING_VALUES = Object.values(GUILD_STANDING_VALUE_BY_ID) as GuildStandingValue[];\n\n/**\n * The standings that administer a Work's file system: create and manage folders, see every folder\n * and file, upload anywhere, delete any file, and request a file's share to the Realm. Every file\n * action's grant reads this list, and so does the file-admin check (`isWorkFileAdmin`).\n */\nexport const WORK_FILE_ADMIN_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'WorkAssetAdmin',\n] as const satisfies readonly GuildStandingId[];\n\n/**\n * A Work's invite handlers: they send the Work's invites, list them, cancel them, and take the\n * Work's side in every invite conversation — they see it, reply in it, and accept for the Work.\n */\nexport const GUILD_INVITE_HANDLER_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'InviteManager',\n] as const satisfies readonly GuildStandingId[];\n\n/** The standings that change stake amounts — active Guildmates' stakes and pending invite offers. */\nexport const STAKE_SHARE_POWER_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'StakeShareManager',\n] as const satisfies readonly GuildStandingId[];\n\n/**\n * The standings that open the Work's invites: the invite handlers, and the stake-power standings,\n * which open an invite to change its offer. Opening an invite is not taking part in it — the\n * conversation, its files, the Work's agreement, and cancelling stay the handlers'.\n */\nexport const GUILD_INVITE_VIEWER_GUILD_STANDING_IDS: readonly GuildStandingId[] = [\n ...new Set<GuildStandingId>([...GUILD_INVITE_HANDLER_GUILD_STANDING_IDS, ...STAKE_SHARE_POWER_GUILD_STANDING_IDS]),\n];\n\nexport const WORK_PROJECT_ACTIONS = {\n 'workProject.read': {\n label: 'Read workProject',\n description: 'Baseline active-Guildmate read floor for internal workProject state.',\n grantedTo: GUILD_STANDING_IDS,\n },\n 'workProject.metadata.update': {\n label: 'Update workProject metadata',\n description: 'Edit working title, description, and public workProject copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'PublicWorkProjectEditor'],\n },\n 'guildmateUser.guildStanding.update': {\n label: 'Update Guildmate guild standings',\n description: 'Assign or remove workProject guild standings on active Guildmates.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildStandingManager'],\n },\n 'guildmateUser.tradeProfession.update': {\n label: 'Update Guildmate tradeProfessions',\n description:\n 'Assign or remove Guildmate tradeProfessions. tradeProfessions gate custom-folder ' +\n 'visibility and chat-channel access targeting — they are access keys, not just staffing ' +\n 'labels — so this is restricted to file-admin standings (Steward + WorkProject Manager). ' +\n 'A trade edit can never grant the editor access they lack, since every grantee already ' +\n 'holds file-admin override.',\n grantedTo: ['StewardOwner', 'WorkProjectManager'],\n },\n 'workProject.stakeShares.addActive': {\n label: 'Add active Guildmate stakes',\n description: 'Increase stakes for an existing active workProject Guildmate.',\n grantedTo: STAKE_SHARE_POWER_GUILD_STANDING_IDS,\n },\n 'guildInvite.send': {\n label: 'Send invites',\n description: 'Start a workProject invite conversation and reserve pending stakes.',\n grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n },\n 'guildInvite.list': {\n label: 'List invites',\n description:\n \"Open the Work's invites and see their state and offers. A stake-power standing opens an invite \" +\n 'to change its offer; replying, agreeing for the Work, and cancelling stay with the invite handlers.',\n grantedTo: GUILD_INVITE_VIEWER_GUILD_STANDING_IDS,\n },\n 'guildInvite.revokeAny': {\n label: 'Revoke pending invites',\n description: 'Cancel or revoke pending workProject invites.',\n grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n },\n 'guildInvite.stakeShares.update': {\n label: 'Update invite stakes',\n description: 'Increase stakes offered on a pending invite.',\n grantedTo: STAKE_SHARE_POWER_GUILD_STANDING_IDS,\n },\n 'fileFolder.create': {\n label: 'Create file folders',\n description: 'Create workProject file folders and set their trade-profession access lists.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'fileFolder.manage': {\n label: 'Manage file folders',\n description: 'Rename folders, edit folder trade-profession access lists, and delete folders.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'fileFolder.viewAll': {\n label: 'View all file folders',\n description: 'View every folder and file regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.uploadAny': {\n label: 'Upload to any folder',\n description: 'Upload files to any folder regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.deleteAny': {\n label: 'Delete any file',\n description: 'Delete any file regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.promoteToRealm': {\n label: 'Request file sharing to realm',\n description: 'Submit a request to share a work file into its realm shared-file pool. ' +\n 'The realm steward approves the request and chooses the folder, or declines it; ' +\n 'nothing is shared to the realm until then. Canon promotion is a separate ' +\n 'realm-steward power, evaluated at the realm level, not here.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'commission.open': {\n label: 'Open commissions',\n description: 'Create workProject commission postings.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.close': {\n label: 'Close commissions',\n description: 'Close workProject commission postings.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.commissionProposal.save': {\n label: 'Save commission proposals',\n description: 'Save or unsave workProject commission proposals.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.commissionProposal.reject': {\n label: 'Reject commission proposals',\n description: 'Reject workProject commission proposals.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'audition.open': {\n label: 'Open auditions',\n description: 'Create workProject audition prompts.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'AuditionManager'],\n },\n 'audition.close': {\n label: 'Close auditions',\n description: 'Close workProject auditions.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'AuditionManager'],\n },\n 'hallLibrary.chapter.create': {\n label: 'Create Tale chapters',\n description: 'Create Tale chapter content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tuneTrack.create': {\n label: 'Create Tune tracks',\n description: 'Create Tune track content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.televisionEpisode.create': {\n label: 'Create Television episodes',\n description: 'Create Television episode content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.chapter.details.update': {\n label: 'Update chapter details',\n description: 'Edit chapter details and body fields.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tuneTrack.details.update': {\n label: 'Update track details',\n description: 'Edit track details and media metadata.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.televisionEpisode.details.update': {\n label: 'Update episode details',\n description: 'Edit episode details and media metadata.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tale.workGenres.update': {\n label: 'Update Tale Genres',\n description: 'Edit Tale Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tune.workGenres.update': {\n label: 'Update Tune Genres',\n description: 'Edit Tune Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.television.workGenres.update': {\n label: 'Update Television Genres',\n description: 'Edit Television Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.asset.upload': {\n label: 'Upload hallLibrary assets',\n description: 'Upload or replace covers and sub-item media assets.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.review.submit': {\n label: 'Submit hall review',\n description: 'Submit workProject content for admin hall review. Also gates withdrawing a still-pending submission.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibrarySubmitter'],\n },\n 'hallLibrary.changeRequest.submit': {\n label: 'Request published changes',\n description: 'Propose text changes to a PUBLISHED hall item (reviewed by admins before anything changes).',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibrarySubmitter'],\n },\n 'guildChatChannel.create': {\n label: 'Create chat channels',\n description: 'Create workProject chat channels.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.update': {\n label: 'Update chat channels',\n description: 'Update workProject chat channel settings and access policy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.archive': {\n label: 'Archive chat channels',\n description: 'Archive workProject chat channels.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.unarchive': {\n label: 'Restore archived chat channels',\n description: 'Restore workProject chat channels out of the archive.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.delete': {\n label: 'Delete chat channels',\n description: 'Delete (tombstone) workProject chat channels; storage is retained.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'adminDispatch.start': {\n label: 'Start admin correspondence',\n description:\n 'Open a platform correspondence thread with the admin team on behalf of the workProject. ' +\n 'Replying in an open workProject thread is any active Guildmate (not gated here).',\n grantedTo: ['StewardOwner', 'WorkProjectManager'],\n },\n} as const satisfies Record<string, {\n label: string;\n description: string;\n grantedTo: readonly GuildStandingId[];\n}>;\n\nexport type WorkProjectActionId = keyof typeof WORK_PROJECT_ACTIONS;\nexport const WORK_PROJECT_ACTION_IDS = Object.keys(WORK_PROJECT_ACTIONS) as WorkProjectActionId[];\n\n\n\n"]}
1
+ {"version":3,"file":"work-project-permissions-data.js","sourceRoot":"","sources":["../../src/permissions/work-project-permissions-data.ts"],"names":[],"mappings":"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","sourcesContent":["export const GUILD_STANDINGS = {\n StewardOwner: {\n label: 'Steward',\n description: 'Work steward. Holds all workProject actions implicitly. Assigned automatically at workProject creation and non-assignable via guild standing management UIs.',\n },\n WorkProjectManager: {\n label: 'WorkProject Manager',\n description: 'Can perform every workProject action except granting Steward, WorkProjectManager, GuildStandingManager, or StakeShareManager.',\n },\n PublicWorkProjectEditor: {\n label: 'Public WorkProject Editor',\n description: 'Can edit public-facing workProject title, description, and copy.',\n },\n GuildStandingManager: {\n label: 'Guild Standing Manager',\n description: 'Can assign and remove ordinary workProject guild standings without escalating manager, stake-share, or trade-profession authority (tradeProfessions are folder/chat access keys, editable only by file-admin standings).',\n },\n StakeShareManager: {\n label: 'Stake Share Manager',\n description: 'Can adjust active Guildmate stakes and pending invite stake offers.',\n },\n InviteManager: {\n label: 'Invite Manager',\n description: 'Can send workProject invites, view invite state, and cancel or revoke pending invites.',\n },\n WorkAssetAdmin: {\n label: 'Work Asset Admin',\n description: 'Delegated file-system administration: create/rename file folders, assign folder trade-profession access, view every folder and file, and delete any file. Assignable only by the Steward.',\n },\n CommissionManager: {\n label: 'Commission Manager',\n description: 'Can open and close workProject commissions and manage proposals without starting invite conversations.',\n },\n AuditionManager: {\n label: 'Audition Manager',\n description: 'Can open and close workProject auditions without starting invite conversations.',\n },\n HallLibraryEditor: {\n label: 'Hall Editor',\n description: 'Can create and edit Tales, Tunes, Television content, Genres, and media assets.',\n },\n HallLibrarySubmitter: {\n label: 'Hall Submitter',\n description: 'Can submit workProject hall content for admin hall review.',\n },\n GuildChatChannelManager: {\n label: 'Guild Chat Channel Manager',\n description: 'Can create, update, archive, and delete workProject chat channels.',\n },\n} as const;\n\nexport type GuildStandingId = keyof typeof GUILD_STANDINGS;\nexport const GUILD_STANDING_IDS = Object.keys(GUILD_STANDINGS) as GuildStandingId[];\n\n/**\n * The work steward's standing id — the one standing that is never assignable and that\n * `GuildmateUser.guildStandings` carries (that array stores IDs, not display values;\n * this id's display value is 'Steward', so the two are not interchangeable).\n * Consumers branch on this rather than re-quoting the member.\n */\nexport const STEWARD_OWNER_GUILD_STANDING_ID = 'StewardOwner' as const satisfies GuildStandingId;\nexport const GUILD_STANDING_VALUE_BY_ID = {\n StewardOwner: 'Steward',\n WorkProjectManager: 'WorkProjectManager',\n PublicWorkProjectEditor: 'PublicWorkProjectEditor',\n GuildStandingManager: 'GuildStandingManager',\n StakeShareManager: 'StakeShareManager',\n InviteManager: 'InviteManager',\n WorkAssetAdmin: 'WorkAssetAdmin',\n CommissionManager: 'CommissionManager',\n AuditionManager: 'AuditionManager',\n HallLibraryEditor: 'HallLibraryEditor',\n HallLibrarySubmitter: 'HallLibrarySubmitter',\n GuildChatChannelManager: 'GuildChatChannelManager',\n} as const satisfies Record<GuildStandingId, string>;\nexport type GuildStandingValue = (typeof GUILD_STANDING_VALUE_BY_ID)[GuildStandingId];\nexport const GUILD_STANDING_VALUES = Object.values(GUILD_STANDING_VALUE_BY_ID) as GuildStandingValue[];\n\n/**\n * The standings that administer a Work's file system: create and manage folders, see every folder\n * and file, upload anywhere, delete any file, and request a file's share to the Realm. Every file\n * action's grant reads this list, and so does the file-admin check (`isWorkFileAdmin`).\n */\nexport const WORK_FILE_ADMIN_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'WorkAssetAdmin',\n] as const satisfies readonly GuildStandingId[];\n\n/**\n * A Work's invite handlers: they send the Work's invites, list them, cancel them, and take the\n * Work's side in every invite conversation — they see it, reply in it, share files in it, and\n * agree for the Work. A Stake Share Manager is one: it handles invites like an Invite Manager and\n * also changes their offers.\n */\nexport const GUILD_INVITE_HANDLER_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'InviteManager',\n 'StakeShareManager',\n] as const satisfies readonly GuildStandingId[];\n\n/** The standings that change stake amounts — active Guildmates' stakes and pending invite offers. */\nexport const STAKE_SHARE_POWER_GUILD_STANDING_IDS = [\n 'StewardOwner',\n 'WorkProjectManager',\n 'StakeShareManager',\n] as const satisfies readonly GuildStandingId[];\n\nexport const WORK_PROJECT_ACTIONS = {\n 'workProject.read': {\n label: 'Read workProject',\n description: 'Baseline active-Guildmate read floor for internal workProject state.',\n grantedTo: GUILD_STANDING_IDS,\n },\n 'workProject.metadata.update': {\n label: 'Update workProject metadata',\n description: 'Edit working title, description, and public workProject copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'PublicWorkProjectEditor'],\n },\n 'guildmateUser.guildStanding.update': {\n label: 'Update Guildmate guild standings',\n description: 'Assign or remove workProject guild standings on active Guildmates.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildStandingManager'],\n },\n 'guildmateUser.tradeProfession.update': {\n label: 'Update Guildmate tradeProfessions',\n description:\n 'Assign or remove Guildmate tradeProfessions. tradeProfessions gate custom-folder ' +\n 'visibility and chat-channel access targeting — they are access keys, not just staffing ' +\n 'labels — so this is restricted to file-admin standings (Steward + WorkProject Manager). ' +\n 'A trade edit can never grant the editor access they lack, since every grantee already ' +\n 'holds file-admin override.',\n grantedTo: ['StewardOwner', 'WorkProjectManager'],\n },\n 'workProject.stakeShares.addActive': {\n label: 'Add active Guildmate stakes',\n description: 'Increase stakes for an existing active workProject Guildmate.',\n grantedTo: STAKE_SHARE_POWER_GUILD_STANDING_IDS,\n },\n 'guildInvite.send': {\n label: 'Send invites',\n description: 'Start a workProject invite conversation and reserve pending stakes.',\n grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n },\n 'guildInvite.list': {\n label: 'List invites',\n description: \"Open the Work's invites and see their state and offers.\",\n grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n },\n 'guildInvite.revokeAny': {\n label: 'Revoke pending invites',\n description: 'Cancel or revoke pending workProject invites.',\n grantedTo: GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n },\n 'guildInvite.stakeShares.update': {\n label: 'Update invite stakes',\n description: 'Increase stakes offered on a pending invite.',\n grantedTo: STAKE_SHARE_POWER_GUILD_STANDING_IDS,\n },\n 'fileFolder.create': {\n label: 'Create file folders',\n description: 'Create workProject file folders and set their trade-profession access lists.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'fileFolder.manage': {\n label: 'Manage file folders',\n description: 'Rename folders, edit folder trade-profession access lists, and delete folders.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'fileFolder.viewAll': {\n label: 'View all file folders',\n description: 'View every folder and file regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.uploadAny': {\n label: 'Upload to any folder',\n description: 'Upload files to any folder regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.deleteAny': {\n label: 'Delete any file',\n description: 'Delete any file regardless of folder trade-profession access (admin override).',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'workFile.promoteToRealm': {\n label: 'Request file sharing to realm',\n description: 'Submit a request to share a work file into its realm shared-file pool. ' +\n 'The realm steward approves the request and chooses the folder, or declines it; ' +\n 'nothing is shared to the realm until then. Canon promotion is a separate ' +\n 'realm-steward power, evaluated at the realm level, not here.',\n grantedTo: WORK_FILE_ADMIN_GUILD_STANDING_IDS,\n },\n 'commission.open': {\n label: 'Open commissions',\n description: 'Create workProject commission postings.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.close': {\n label: 'Close commissions',\n description: 'Close workProject commission postings.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.commissionProposal.save': {\n label: 'Save commission proposals',\n description: 'Save or unsave workProject commission proposals.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'commission.commissionProposal.reject': {\n label: 'Reject commission proposals',\n description: 'Reject workProject commission proposals.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],\n },\n 'audition.open': {\n label: 'Open auditions',\n description: 'Create workProject audition prompts.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'AuditionManager'],\n },\n 'audition.close': {\n label: 'Close auditions',\n description: 'Close workProject auditions.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'AuditionManager'],\n },\n 'hallLibrary.chapter.create': {\n label: 'Create Tale chapters',\n description: 'Create Tale chapter content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tuneTrack.create': {\n label: 'Create Tune tracks',\n description: 'Create Tune track content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.televisionEpisode.create': {\n label: 'Create Television episodes',\n description: 'Create Television episode content.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.chapter.details.update': {\n label: 'Update chapter details',\n description: 'Edit chapter details and body fields.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tuneTrack.details.update': {\n label: 'Update track details',\n description: 'Edit track details and media metadata.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.televisionEpisode.details.update': {\n label: 'Update episode details',\n description: 'Edit episode details and media metadata.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tale.workGenres.update': {\n label: 'Update Tale Genres',\n description: 'Edit Tale Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tune.workGenres.update': {\n label: 'Update Tune Genres',\n description: 'Edit Tune Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.television.workGenres.update': {\n label: 'Update Television Genres',\n description: 'Edit Television Genre assignments.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.asset.upload': {\n label: 'Upload hallLibrary assets',\n description: 'Upload or replace covers and sub-item media assets.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.review.submit': {\n label: 'Submit hall review',\n description: 'Submit workProject content for admin hall review. Also gates withdrawing a still-pending submission.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibrarySubmitter'],\n },\n 'hallLibrary.changeRequest.submit': {\n label: 'Request published changes',\n description: 'Propose text changes to a PUBLISHED hall item (reviewed by admins before anything changes).',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibrarySubmitter'],\n },\n 'guildChatChannel.create': {\n label: 'Create chat channels',\n description: 'Create workProject chat channels.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.update': {\n label: 'Update chat channels',\n description: 'Update workProject chat channel settings and access policy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.archive': {\n label: 'Archive chat channels',\n description: 'Archive workProject chat channels.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.unarchive': {\n label: 'Restore archived chat channels',\n description: 'Restore workProject chat channels out of the archive.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'guildChatChannel.delete': {\n label: 'Delete chat channels',\n description: 'Delete (tombstone) workProject chat channels; storage is retained.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'GuildChatChannelManager'],\n },\n 'adminDispatch.start': {\n label: 'Start admin correspondence',\n description:\n 'Open a platform correspondence thread with the admin team on behalf of the workProject. ' +\n 'Replying in an open workProject thread is any active Guildmate (not gated here).',\n grantedTo: ['StewardOwner', 'WorkProjectManager'],\n },\n} as const satisfies Record<string, {\n label: string;\n description: string;\n grantedTo: readonly GuildStandingId[];\n}>;\n\nexport type WorkProjectActionId = keyof typeof WORK_PROJECT_ACTIONS;\nexport const WORK_PROJECT_ACTION_IDS = Object.keys(WORK_PROJECT_ACTIONS) as WorkProjectActionId[];\n\n\n\n"]}
@@ -32,28 +32,6 @@ export declare function guildInvitePartyOf(args: {
32
32
  recipientUid: string;
33
33
  member: GuildChatAccessMember | null;
34
34
  }): GuildInviteParty | null;
35
- /** How a person opens an invite: as one of its two sides, or as a stake editor of the inviting Work. */
36
- export type GuildInviteViewerRole = GuildInviteParty | 'stakeEditor';
37
- /**
38
- * How a person may open an invite, or null when they may not. A party opens it on its own side
39
- * (`guildInvitePartyOf`). Any other active person Guildmate of the inviting Work whose standings
40
- * grant both `guildInvite.list` and `guildInvite.stakeShares.update` — a stake-power standing that
41
- * handles no invites — opens it as a `stakeEditor`: they see the invite and its offer to change
42
- * the offer, and take no part in the conversation, its files, the Work's agreement, or a cancel.
43
- */
44
- export declare function guildInviteViewerRoleOf(args: {
45
- uid: string;
46
- senderUid: string;
47
- recipientUid: string;
48
- member: GuildChatAccessMember | null;
49
- }): GuildInviteViewerRole | null;
50
- /** Whether a person may open an invite (read the invite itself): a party, or a stake editor. */
51
- export declare function canViewGuildInvite(args: {
52
- uid: string;
53
- senderUid: string;
54
- recipientUid: string;
55
- member: GuildChatAccessMember | null;
56
- }): boolean;
57
35
  /** Whether a person may use an invite's conversation now: a party to it, while it is open. */
58
36
  export declare function canAccessGuildInviteConversation(args: {
59
37
  uid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"guild-chat-access.d.ts","sourceRoot":"","sources":["../../src/utils/guild-chat-access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,qDAAqD;AACrD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;AAMzH;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,qBAAqB,GAAG,IAAI,EACpC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,GAAG,WAAW,CAAC,GAAG,IAAI,GAC7E,OAAO,CAMT;AAED,oGAAoG;AACpG,eAAO,MAAM,uCAAuC,kCAGS,CAAC;AAE9D,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACtC,GAAG,gBAAgB,GAAG,IAAI,CAU1B;AAED,wGAAwG;AACxG,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACtC,GAAG,qBAAqB,GAAG,IAAI,CAS/B;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACtC,GAAG,OAAO,CAEV;AAED,8FAA8F;AAC9F,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAEV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAElF"}
1
+ {"version":3,"file":"guild-chat-access.d.ts","sourceRoot":"","sources":["../../src/utils/guild-chat-access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,qDAAqD;AACrD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,YAAY,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;AAMzH;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,qBAAqB,GAAG,IAAI,EACpC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,GAAG,WAAW,CAAC,GAAG,IAAI,GAC7E,OAAO,CAMT;AAED,oGAAoG;AACpG,eAAO,MAAM,uCAAuC,kCAGS,CAAC;AAE9D,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACtC,GAAG,gBAAgB,GAAG,IAAI,CAU1B;AAED,8FAA8F;AAC9F,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAEV;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAElF"}
@@ -52,28 +52,6 @@ export function guildInvitePartyOf(args) {
52
52
  const handles = member.guildStandings.some((standing) => GUILD_INVITE_HANDLER_GUILD_STANDING_IDS.includes(standing));
53
53
  return handles ? 'work' : null;
54
54
  }
55
- /**
56
- * How a person may open an invite, or null when they may not. A party opens it on its own side
57
- * (`guildInvitePartyOf`). Any other active person Guildmate of the inviting Work whose standings
58
- * grant both `guildInvite.list` and `guildInvite.stakeShares.update` — a stake-power standing that
59
- * handles no invites — opens it as a `stakeEditor`: they see the invite and its offer to change
60
- * the offer, and take no part in the conversation, its files, the Work's agreement, or a cancel.
61
- */
62
- export function guildInviteViewerRoleOf(args) {
63
- const party = guildInvitePartyOf(args);
64
- if (party !== null)
65
- return party;
66
- const { uid, member } = args;
67
- if (!uid || !isActivePersonGuildmate(member))
68
- return null;
69
- const opensToChangeOffer = guildStandingsGrantAction(member.guildStandings, 'guildInvite.list') &&
70
- guildStandingsGrantAction(member.guildStandings, 'guildInvite.stakeShares.update');
71
- return opensToChangeOffer ? 'stakeEditor' : null;
72
- }
73
- /** Whether a person may open an invite (read the invite itself): a party, or a stake editor. */
74
- export function canViewGuildInvite(args) {
75
- return guildInviteViewerRoleOf(args) !== null;
76
- }
77
55
  /** Whether a person may use an invite's conversation now: a party to it, while it is open. */
78
56
  export function canAccessGuildInviteConversation(args) {
79
57
  return guildInvitePartyOf(args) !== null && isGuildInviteConversationLive(args.status);
@@ -1 +1 @@
1
- {"version":3,"file":"guild-chat-access.js","sourceRoot":"","sources":["../../src/utils/guild-chat-access.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Who may take part in TTT's realtime conversations — ONE rule per conversation kind. The grant\n * minting, the access projection the chat rooms enforce, the conversation-file checks, and every\n * screen that lists or offers a conversation decide from these, never from a restatement.\n */\n\nimport type { GuildmateUser } from '../doc-schemas/work-project.js';\nimport { FOUNDING_WORK_HOLDER_TYPE } from '../doc-schemas/work-project.js';\nimport type { GuildChatChannel } from '../doc-schemas/messaging.js';\nimport type { GuildInviteConversationStatus } from '../schemas/atoms.js';\nimport {\n GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n guildStandingsGrantAction,\n} from '../permissions/work-project-permissions.js';\n\n/** The Guildmate facts a conversation rule reads. */\nexport type GuildChatAccessMember = Pick<GuildmateUser, 'status' | 'holderType' | 'guildStandings' | 'tradeProfessions'>;\n\nfunction isActivePersonGuildmate(member: GuildChatAccessMember | null): member is GuildChatAccessMember {\n return member !== null && member.status === 'active' && member.holderType !== FOUNDING_WORK_HOLDER_TYPE;\n}\n\n/**\n * Whether a Guildmate may use a Work's guild chat channel: an active person Guildmate (never the\n * founding-Work stake holder) of a channel that exists and is not deleted, holding one of the\n * channel's required standings OR trade professions — an empty requirement admits every active\n * Guildmate.\n */\nexport function canAccessGuildChatChannel(\n member: GuildChatAccessMember | null,\n channel: Pick<GuildChatChannel, 'requiredGuildStandings' | 'isDeleted'> | null,\n): boolean {\n if (!channel || channel.isDeleted === true) return false;\n if (!isActivePersonGuildmate(member)) return false;\n if (channel.requiredGuildStandings.length === 0) return true;\n const held = new Set<string>([...member.guildStandings, ...member.tradeProfessions]);\n return channel.requiredGuildStandings.some((required) => held.has(required));\n}\n\n/** The invite statuses whose conversation is open: negotiating, or accepted and being confirmed. */\nexport const GUILD_INVITE_CONVERSATION_LIVE_STATUSES = [\n 'pending',\n 'accepted',\n] as const satisfies readonly GuildInviteConversationStatus[];\n\nexport function isGuildInviteConversationLive(status: string): boolean {\n return (GUILD_INVITE_CONVERSATION_LIVE_STATUSES as readonly string[]).includes(status);\n}\n\n/** The two sides of an invite: the person invited, and the inviting Work. */\nexport type GuildInviteParty = 'recipient' | 'work';\n\n/**\n * Which side of an invite a person takes part on, or null when they take no part. The recipient\n * is the `recipient` side. The Work's side is the sender, and every active person Guildmate of the\n * inviting Work who holds an invite-handling standing (`GUILD_INVITE_HANDLER_GUILD_STANDING_IDS`):\n * they see the conversation, reply in it, and accept for the Work. `member` is the person's\n * Guildmate record in the inviting Work, or null when they have none.\n */\nexport function guildInvitePartyOf(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n}): GuildInviteParty | null {\n const { uid, senderUid, recipientUid, member } = args;\n if (!uid) return null;\n if (uid === recipientUid) return 'recipient';\n if (uid === senderUid) return 'work';\n if (!isActivePersonGuildmate(member)) return null;\n const handles = member.guildStandings.some((standing) =>\n (GUILD_INVITE_HANDLER_GUILD_STANDING_IDS as readonly string[]).includes(standing),\n );\n return handles ? 'work' : null;\n}\n\n/** How a person opens an invite: as one of its two sides, or as a stake editor of the inviting Work. */\nexport type GuildInviteViewerRole = GuildInviteParty | 'stakeEditor';\n\n/**\n * How a person may open an invite, or null when they may not. A party opens it on its own side\n * (`guildInvitePartyOf`). Any other active person Guildmate of the inviting Work whose standings\n * grant both `guildInvite.list` and `guildInvite.stakeShares.update` — a stake-power standing that\n * handles no invites — opens it as a `stakeEditor`: they see the invite and its offer to change\n * the offer, and take no part in the conversation, its files, the Work's agreement, or a cancel.\n */\nexport function guildInviteViewerRoleOf(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n}): GuildInviteViewerRole | null {\n const party = guildInvitePartyOf(args);\n if (party !== null) return party;\n const { uid, member } = args;\n if (!uid || !isActivePersonGuildmate(member)) return null;\n const opensToChangeOffer =\n guildStandingsGrantAction(member.guildStandings, 'guildInvite.list') &&\n guildStandingsGrantAction(member.guildStandings, 'guildInvite.stakeShares.update');\n return opensToChangeOffer ? 'stakeEditor' : null;\n}\n\n/** Whether a person may open an invite (read the invite itself): a party, or a stake editor. */\nexport function canViewGuildInvite(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n}): boolean {\n return guildInviteViewerRoleOf(args) !== null;\n}\n\n/** Whether a person may use an invite's conversation now: a party to it, while it is open. */\nexport function canAccessGuildInviteConversation(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n status: string;\n}): boolean {\n return guildInvitePartyOf(args) !== null && isGuildInviteConversationLive(args.status);\n}\n\n/**\n * Whether a Guildmate may cancel the Work's invites: an active person Guildmate whose standings\n * grant `guildInvite.revokeAny`. Sending an invite gives no power to cancel it — a sender cancels\n * only while holding one of those standings.\n */\nexport function canCancelGuildInvite(member: GuildChatAccessMember | null): boolean {\n return isActivePersonGuildmate(member) && guildStandingsGrantAction(member.guildStandings, 'guildInvite.revokeAny');\n}\n"]}
1
+ {"version":3,"file":"guild-chat-access.js","sourceRoot":"","sources":["../../src/utils/guild-chat-access.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EACL,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,4CAA4C,CAAC;AAKpD,SAAS,uBAAuB,CAAC,MAAoC;IACnE,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,yBAAyB,CAAC;AAC1G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAoC,EACpC,OAA8E;IAE9E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,OAAO,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACrD,SAAS;IACT,UAAU;CACiD,CAAC;AAE9D,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,OAAQ,uCAA6D,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzF,CAAC;AAKD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAKlC;IACC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrD,uCAA6D,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAClF,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gCAAgC,CAAC,IAMhD;IACC,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAoC;IACvE,OAAO,uBAAuB,CAAC,MAAM,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;AACtH,CAAC","sourcesContent":["/**\n * Who may take part in TTT's realtime conversations — ONE rule per conversation kind. The grant\n * minting, the access projection the chat rooms enforce, the conversation-file checks, and every\n * screen that lists or offers a conversation decide from these, never from a restatement.\n */\n\nimport type { GuildmateUser } from '../doc-schemas/work-project.js';\nimport { FOUNDING_WORK_HOLDER_TYPE } from '../doc-schemas/work-project.js';\nimport type { GuildChatChannel } from '../doc-schemas/messaging.js';\nimport type { GuildInviteConversationStatus } from '../schemas/atoms.js';\nimport {\n GUILD_INVITE_HANDLER_GUILD_STANDING_IDS,\n guildStandingsGrantAction,\n} from '../permissions/work-project-permissions.js';\n\n/** The Guildmate facts a conversation rule reads. */\nexport type GuildChatAccessMember = Pick<GuildmateUser, 'status' | 'holderType' | 'guildStandings' | 'tradeProfessions'>;\n\nfunction isActivePersonGuildmate(member: GuildChatAccessMember | null): member is GuildChatAccessMember {\n return member !== null && member.status === 'active' && member.holderType !== FOUNDING_WORK_HOLDER_TYPE;\n}\n\n/**\n * Whether a Guildmate may use a Work's guild chat channel: an active person Guildmate (never the\n * founding-Work stake holder) of a channel that exists and is not deleted, holding one of the\n * channel's required standings OR trade professions — an empty requirement admits every active\n * Guildmate.\n */\nexport function canAccessGuildChatChannel(\n member: GuildChatAccessMember | null,\n channel: Pick<GuildChatChannel, 'requiredGuildStandings' | 'isDeleted'> | null,\n): boolean {\n if (!channel || channel.isDeleted === true) return false;\n if (!isActivePersonGuildmate(member)) return false;\n if (channel.requiredGuildStandings.length === 0) return true;\n const held = new Set<string>([...member.guildStandings, ...member.tradeProfessions]);\n return channel.requiredGuildStandings.some((required) => held.has(required));\n}\n\n/** The invite statuses whose conversation is open: negotiating, or accepted and being confirmed. */\nexport const GUILD_INVITE_CONVERSATION_LIVE_STATUSES = [\n 'pending',\n 'accepted',\n] as const satisfies readonly GuildInviteConversationStatus[];\n\nexport function isGuildInviteConversationLive(status: string): boolean {\n return (GUILD_INVITE_CONVERSATION_LIVE_STATUSES as readonly string[]).includes(status);\n}\n\n/** The two sides of an invite: the person invited, and the inviting Work. */\nexport type GuildInviteParty = 'recipient' | 'work';\n\n/**\n * Which side of an invite a person takes part on, or null when they take no part. The recipient\n * is the `recipient` side. The Work's side is the sender, and every active person Guildmate of the\n * inviting Work who holds an invite-handling standing (`GUILD_INVITE_HANDLER_GUILD_STANDING_IDS`):\n * they see the conversation, reply in it, and accept for the Work. `member` is the person's\n * Guildmate record in the inviting Work, or null when they have none.\n */\nexport function guildInvitePartyOf(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n}): GuildInviteParty | null {\n const { uid, senderUid, recipientUid, member } = args;\n if (!uid) return null;\n if (uid === recipientUid) return 'recipient';\n if (uid === senderUid) return 'work';\n if (!isActivePersonGuildmate(member)) return null;\n const handles = member.guildStandings.some((standing) =>\n (GUILD_INVITE_HANDLER_GUILD_STANDING_IDS as readonly string[]).includes(standing),\n );\n return handles ? 'work' : null;\n}\n\n/** Whether a person may use an invite's conversation now: a party to it, while it is open. */\nexport function canAccessGuildInviteConversation(args: {\n uid: string;\n senderUid: string;\n recipientUid: string;\n member: GuildChatAccessMember | null;\n status: string;\n}): boolean {\n return guildInvitePartyOf(args) !== null && isGuildInviteConversationLive(args.status);\n}\n\n/**\n * Whether a Guildmate may cancel the Work's invites: an active person Guildmate whose standings\n * grant `guildInvite.revokeAny`. Sending an invite gives no power to cancel it — a sender cancels\n * only while holding one of those standings.\n */\nexport function canCancelGuildInvite(member: GuildChatAccessMember | null): boolean {\n return isActivePersonGuildmate(member) && guildStandingsGrantAction(member.guildStandings, 'guildInvite.revokeAny');\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/ttt-core",
3
- "version": "0.79.73",
3
+ "version": "0.79.75",
4
4
  "description": "Core types, Firestore path constants, and shared constants for TTT Productions",
5
5
  "repository": {
6
6
  "type": "git",