@ttt-productions/ttt-core 0.79.11 → 0.79.12

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.
@@ -2096,7 +2096,7 @@ export declare const COLLECTION_SCHEMAS: {
2096
2096
  workProjectId: z.ZodOptional<z.ZodString>;
2097
2097
  }, z.core.$strict>;
2098
2098
  }, z.core.$strict>, z.ZodObject<{
2099
- type: z.ZodLiteral<"commission.deleted">;
2099
+ type: z.ZodLiteral<"commission.closed">;
2100
2100
  ids: z.ZodObject<{
2101
2101
  commissionListingId: z.ZodString;
2102
2102
  workProjectId: z.ZodString;
@@ -2526,7 +2526,7 @@ export declare const COLLECTION_SCHEMAS: {
2526
2526
  workProjectId: z.ZodOptional<z.ZodString>;
2527
2527
  }, z.core.$strict>;
2528
2528
  }, z.core.$strict>, z.ZodObject<{
2529
- type: z.ZodLiteral<"commission.deleted">;
2529
+ type: z.ZodLiteral<"commission.closed">;
2530
2530
  ids: z.ZodObject<{
2531
2531
  commissionListingId: z.ZodString;
2532
2532
  workProjectId: z.ZodString;
@@ -2887,7 +2887,7 @@ export declare const COLLECTION_SCHEMAS: {
2887
2887
  workProjectId: z.ZodOptional<z.ZodString>;
2888
2888
  }, z.core.$strict>;
2889
2889
  }, z.core.$strict>, z.ZodObject<{
2890
- type: z.ZodLiteral<"commission.deleted">;
2890
+ type: z.ZodLiteral<"commission.closed">;
2891
2891
  ids: z.ZodObject<{
2892
2892
  commissionListingId: z.ZodString;
2893
2893
  workProjectId: z.ZodString;
@@ -3319,7 +3319,7 @@ export declare const COLLECTION_SCHEMAS: {
3319
3319
  workProjectId: z.ZodOptional<z.ZodString>;
3320
3320
  }, z.core.$strict>;
3321
3321
  }, z.core.$strict>, z.ZodObject<{
3322
- type: z.ZodLiteral<"commission.deleted">;
3322
+ type: z.ZodLiteral<"commission.closed">;
3323
3323
  ids: z.ZodObject<{
3324
3324
  commissionListingId: z.ZodString;
3325
3325
  workProjectId: z.ZodString;
@@ -107,8 +107,8 @@ export declare const CommissionProposalSubmittedEventSchema: z.ZodObject<{
107
107
  commissionProposalId: z.ZodString;
108
108
  }, z.core.$strict>;
109
109
  }, z.core.$strict>;
110
- export declare const CommissionDeletedEventSchema: z.ZodObject<{
111
- type: z.ZodLiteral<"commission.deleted">;
110
+ export declare const CommissionClosedEventSchema: z.ZodObject<{
111
+ type: z.ZodLiteral<"commission.closed">;
112
112
  ids: z.ZodObject<{
113
113
  commissionListingId: z.ZodString;
114
114
  workProjectId: z.ZodString;
@@ -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;AAMxB,eAAO,MAAM,6BAA6B;;;;;;kBAU/B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;kBAK/B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;kBAUjC,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;AAEZ,eAAO,MAAM,4BAA4B;;;;;;kBAU9B,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;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;AAMxB,eAAO,MAAM,6BAA6B;;;;;;kBAU/B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;kBAK/B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;kBAUjC,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;AAEZ,eAAO,MAAM,oCAAoC;;;;;;;;;;;;kBAYtC,CAAC;AAEZ,eAAO,MAAM,oCAAoC;;;;;kBAStC,CAAC"}
@@ -162,9 +162,12 @@ export const CommissionProposalSubmittedEventSchema = z
162
162
  .strict(),
163
163
  })
164
164
  .strict();
165
- export const CommissionDeletedEventSchema = z
165
+ // Commission closed the closeCommission callable's terminal transition. A
166
+ // commission listing is never deleted; closing is the only way it leaves the
167
+ // board, so the event name says closed.
168
+ export const CommissionClosedEventSchema = z
166
169
  .object({
167
- type: z.literal('commission.deleted'),
170
+ type: z.literal('commission.closed'),
168
171
  ids: z
169
172
  .object({
170
173
  commissionListingId: z.string().min(1),
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events-work.js","sourceRoot":"","sources":["../../src/media/domain-events-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yEAAyE;AACzE,uEAAuE;AACvE,4EAA4E;AAE5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACtC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7D,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACxC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC;KACtD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;IACjD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IAC9C,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC5C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC;IAClD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC5C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC;IAClD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC;IACnD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC;KAC9C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACzC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC;KAC/C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACxC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACtC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACrC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC;KACpD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC;IACzD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACrC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC;KAChD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC;IACrD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC;IACvD,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC;KAChD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAC3C,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,gFAAgF;AAChF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC;KAC9C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACzC,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;IAC7C,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC;IAC7C,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC","sourcesContent":["import { z } from \"zod\";\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 })\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\nexport const CommissionDeletedEventSchema = z\n .object({\n type: z.literal('commission.deleted'),\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(['tale', 'tune', 'television']),\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\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(['chapter', 'tuneTrack', 'televisionEpisode']),\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\";\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 })\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(['tale', 'tune', 'television']),\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\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(['chapter', 'tuneTrack', 'televisionEpisode']),\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"]}
@@ -225,7 +225,7 @@ export declare const DomainEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
225
225
  workProjectId: z.ZodOptional<z.ZodString>;
226
226
  }, z.core.$strict>;
227
227
  }, z.core.$strict>, z.ZodObject<{
228
- type: z.ZodLiteral<"commission.deleted">;
228
+ type: z.ZodLiteral<"commission.closed">;
229
229
  ids: z.ZodObject<{
230
230
  commissionListingId: z.ZodString;
231
231
  workProjectId: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { ProfilePictureUpdatedEventSchema, ProfilePreferencesUpdatedEventSchema, CraftSkillCreatedEventSchema, CraftSkillUpdatedEventSchema, CraftSkillDeletedEventSchema, FollowCreatedEventSchema, FollowRemovedEventSchema, MentionReadEventSchema, AuthStatusChangedEventSchema, } from "./domain-events-user.js";
3
- import { WorkProjectCreatedEventSchema, WorkProjectUpdatedEventSchema, WorkProjectPublishedEventSchema, WorkProjectStakeSharesUpdatedEventSchema, GuildInviteSentEventSchema, GuildInviteAcceptedEventSchema, GuildInviteDeclinedEventSchema, GuildInviteCancelledEventSchema, AuditionPromptCreatedEventSchema, AuditionEntrySubmittedEventSchema, AuditionEntryVoteRecordedEventSchema, AuditionClosedEventSchema, CommissionCreatedEventSchema, CommissionProposalSubmittedEventSchema, CommissionDeletedEventSchema, CommissionProposalSavedEventSchema, CommissionProposalRemovedEventSchema, HallLibraryCoverUpdatedEventSchema, WorkRealmCoverUpdatedEventSchema, HallLibrarySubItemUpdatedEventSchema, ThresholdLibrarySubmittedEventSchema, } from "./domain-events-work.js";
3
+ import { WorkProjectCreatedEventSchema, WorkProjectUpdatedEventSchema, WorkProjectPublishedEventSchema, WorkProjectStakeSharesUpdatedEventSchema, GuildInviteSentEventSchema, GuildInviteAcceptedEventSchema, GuildInviteDeclinedEventSchema, GuildInviteCancelledEventSchema, AuditionPromptCreatedEventSchema, AuditionEntrySubmittedEventSchema, AuditionEntryVoteRecordedEventSchema, AuditionClosedEventSchema, CommissionCreatedEventSchema, CommissionProposalSubmittedEventSchema, CommissionClosedEventSchema, CommissionProposalSavedEventSchema, CommissionProposalRemovedEventSchema, HallLibraryCoverUpdatedEventSchema, WorkRealmCoverUpdatedEventSchema, HallLibrarySubItemUpdatedEventSchema, ThresholdLibrarySubmittedEventSchema, } from "./domain-events-work.js";
4
4
  import { SquareStreetzPostCreatedEventSchema, SquareStreetzPostLikedEventSchema, SquareStreetzPostUnlikedEventSchema, } from "./domain-events-social.js";
5
5
  import { ModerationViolationCreatedEventSchema, ThresholdLibraryApprovedEventSchema, ThresholdLibraryNeedsRevisionEventSchema, AdminDispatchSystemMarkedEventSchema, AdminDispatchThreadUpdatedEventSchema, AdminAppealReviewedEventSchema, AdminDispatchReviewedEventSchema, ViolationAppealSubmittedEventSchema, } from "./domain-events-admin.js";
6
6
  export * from "./domain-events-user.js";
@@ -49,7 +49,7 @@ export const DomainEventSchema = z.discriminatedUnion('type', [
49
49
  GuildInviteCancelledEventSchema,
50
50
  AuditionEntryVoteRecordedEventSchema,
51
51
  AuditionClosedEventSchema,
52
- CommissionDeletedEventSchema,
52
+ CommissionClosedEventSchema,
53
53
  CommissionProposalSavedEventSchema,
54
54
  CommissionProposalRemovedEventSchema,
55
55
  ThresholdLibrarySubmittedEventSchema,
@@ -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,GAC7B,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,4BAA4B,EAC5B,kCAAkC,EAClC,oCAAoC,EACpC,kCAAkC,EAClC,gCAAgC,EAChC,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,oCAAoC,EACpC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,GACpC,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,4BAA4B;IAC5B,kCAAkC;IAClC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,wCAAwC;IACxC,oCAAoC;IACpC,qCAAqC;IACrC,8BAA8B;IAC9B,gCAAgC;IAChC,sBAAsB;IACtB,4BAA4B;IAC5B,mCAAmC;CACpC,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} 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 CommissionDeletedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n HallLibraryCoverUpdatedEventSchema,\n WorkRealmCoverUpdatedEventSchema,\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 AdminDispatchSystemMarkedEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n ViolationAppealSubmittedEventSchema,\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 CommissionDeletedEventSchema,\n CommissionProposalSavedEventSchema,\n CommissionProposalRemovedEventSchema,\n ThresholdLibrarySubmittedEventSchema,\n ThresholdLibraryApprovedEventSchema,\n ThresholdLibraryNeedsRevisionEventSchema,\n AdminDispatchSystemMarkedEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ViolationAppealSubmittedEventSchema,\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,GAC7B,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,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,oCAAoC,EACpC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,GACpC,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,oCAAoC;IACpC,qCAAqC;IACrC,8BAA8B;IAC9B,gCAAgC;IAChC,sBAAsB;IACtB,4BAA4B;IAC5B,mCAAmC;CACpC,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} 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 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 AdminDispatchSystemMarkedEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n ViolationAppealSubmittedEventSchema,\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 AdminDispatchSystemMarkedEventSchema,\n AdminDispatchThreadUpdatedEventSchema,\n AdminAppealReviewedEventSchema,\n AdminDispatchReviewedEventSchema,\n MentionReadEventSchema,\n AuthStatusChangedEventSchema,\n ViolationAppealSubmittedEventSchema,\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"]}
@@ -230,7 +230,7 @@ export declare const PendingMediaResultSchema: z.ZodObject<{
230
230
  workProjectId: z.ZodOptional<z.ZodString>;
231
231
  }, z.core.$strict>;
232
232
  }, z.core.$strict>, z.ZodObject<{
233
- type: z.ZodLiteral<"commission.deleted">;
233
+ type: z.ZodLiteral<"commission.closed">;
234
234
  ids: z.ZodObject<{
235
235
  commissionListingId: z.ZodString;
236
236
  workProjectId: z.ZodString;
@@ -645,7 +645,7 @@ export declare const PendingMediaCompletedSchema: z.ZodObject<{
645
645
  workProjectId: z.ZodOptional<z.ZodString>;
646
646
  }, z.core.$strict>;
647
647
  }, z.core.$strict>, z.ZodObject<{
648
- type: z.ZodLiteral<"commission.deleted">;
648
+ type: z.ZodLiteral<"commission.closed">;
649
649
  ids: z.ZodObject<{
650
650
  commissionListingId: z.ZodString;
651
651
  workProjectId: z.ZodString;
@@ -1077,7 +1077,7 @@ export declare const PendingMediaRejectedSchema: z.ZodObject<{
1077
1077
  workProjectId: z.ZodOptional<z.ZodString>;
1078
1078
  }, z.core.$strict>;
1079
1079
  }, z.core.$strict>, z.ZodObject<{
1080
- type: z.ZodLiteral<"commission.deleted">;
1080
+ type: z.ZodLiteral<"commission.closed">;
1081
1081
  ids: z.ZodObject<{
1082
1082
  commissionListingId: z.ZodString;
1083
1083
  workProjectId: z.ZodString;
@@ -1538,7 +1538,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1538
1538
  workProjectId: z.ZodOptional<z.ZodString>;
1539
1539
  }, z.core.$strict>;
1540
1540
  }, z.core.$strict>, z.ZodObject<{
1541
- type: z.ZodLiteral<"commission.deleted">;
1541
+ type: z.ZodLiteral<"commission.closed">;
1542
1542
  ids: z.ZodObject<{
1543
1543
  commissionListingId: z.ZodString;
1544
1544
  workProjectId: z.ZodString;
@@ -1968,7 +1968,7 @@ export declare const PendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1968
1968
  workProjectId: z.ZodOptional<z.ZodString>;
1969
1969
  }, z.core.$strict>;
1970
1970
  }, z.core.$strict>, z.ZodObject<{
1971
- type: z.ZodLiteral<"commission.deleted">;
1971
+ type: z.ZodLiteral<"commission.closed">;
1972
1972
  ids: z.ZodObject<{
1973
1973
  commissionListingId: z.ZodString;
1974
1974
  workProjectId: z.ZodString;
@@ -2329,7 +2329,7 @@ export declare const ArchivedPendingMediaCompletedSchema: z.ZodObject<{
2329
2329
  workProjectId: z.ZodOptional<z.ZodString>;
2330
2330
  }, z.core.$strict>;
2331
2331
  }, z.core.$strict>, z.ZodObject<{
2332
- type: z.ZodLiteral<"commission.deleted">;
2332
+ type: z.ZodLiteral<"commission.closed">;
2333
2333
  ids: z.ZodObject<{
2334
2334
  commissionListingId: z.ZodString;
2335
2335
  workProjectId: z.ZodString;
@@ -2763,7 +2763,7 @@ export declare const ArchivedPendingMediaRejectedSchema: z.ZodObject<{
2763
2763
  workProjectId: z.ZodOptional<z.ZodString>;
2764
2764
  }, z.core.$strict>;
2765
2765
  }, z.core.$strict>, z.ZodObject<{
2766
- type: z.ZodLiteral<"commission.deleted">;
2766
+ type: z.ZodLiteral<"commission.closed">;
2767
2767
  ids: z.ZodObject<{
2768
2768
  commissionListingId: z.ZodString;
2769
2769
  workProjectId: z.ZodString;
@@ -3125,7 +3125,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3125
3125
  workProjectId: z.ZodOptional<z.ZodString>;
3126
3126
  }, z.core.$strict>;
3127
3127
  }, z.core.$strict>, z.ZodObject<{
3128
- type: z.ZodLiteral<"commission.deleted">;
3128
+ type: z.ZodLiteral<"commission.closed">;
3129
3129
  ids: z.ZodObject<{
3130
3130
  commissionListingId: z.ZodString;
3131
3131
  workProjectId: z.ZodString;
@@ -3557,7 +3557,7 @@ export declare const ArchivedPendingMediaSchema: z.ZodDiscriminatedUnion<[z.ZodO
3557
3557
  workProjectId: z.ZodOptional<z.ZodString>;
3558
3558
  }, z.core.$strict>;
3559
3559
  }, z.core.$strict>, z.ZodObject<{
3560
- type: z.ZodLiteral<"commission.deleted">;
3560
+ type: z.ZodLiteral<"commission.closed">;
3561
3561
  ids: z.ZodObject<{
3562
3562
  commissionListingId: z.ZodString;
3563
3563
  workProjectId: z.ZodString;
@@ -3924,7 +3924,7 @@ export declare const ArchivedPendingMediaDocSchema: z.ZodUnion<readonly [z.ZodDi
3924
3924
  workProjectId: z.ZodOptional<z.ZodString>;
3925
3925
  }, z.core.$strict>;
3926
3926
  }, z.core.$strict>, z.ZodObject<{
3927
- type: z.ZodLiteral<"commission.deleted">;
3927
+ type: z.ZodLiteral<"commission.closed">;
3928
3928
  ids: z.ZodObject<{
3929
3929
  commissionListingId: z.ZodString;
3930
3930
  workProjectId: z.ZodString;
@@ -4356,7 +4356,7 @@ export declare const ArchivedPendingMediaDocSchema: z.ZodUnion<readonly [z.ZodDi
4356
4356
  workProjectId: z.ZodOptional<z.ZodString>;
4357
4357
  }, z.core.$strict>;
4358
4358
  }, z.core.$strict>, z.ZodObject<{
4359
- type: z.ZodLiteral<"commission.deleted">;
4359
+ type: z.ZodLiteral<"commission.closed">;
4360
4360
  ids: z.ZodObject<{
4361
4361
  commissionListingId: z.ZodString;
4362
4362
  workProjectId: z.ZodString;
@@ -29,7 +29,7 @@ export declare const GUILD_STANDINGS: {
29
29
  };
30
30
  readonly CommissionManager: {
31
31
  readonly label: "Commission Manager";
32
- readonly description: "Can open, close, and delete workProject commissions and manage proposals without starting invite conversations.";
32
+ readonly description: "Can open and close workProject commissions and manage proposals without starting invite conversations.";
33
33
  };
34
34
  readonly AuditionManager: {
35
35
  readonly label: "Audition Manager";
@@ -157,11 +157,6 @@ export declare const WORK_PROJECT_ACTIONS: {
157
157
  readonly description: "Close workProject commission postings.";
158
158
  readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "CommissionManager"];
159
159
  };
160
- readonly 'commission.delete': {
161
- readonly label: "Delete commissions";
162
- readonly description: "Delete workProject commission postings.";
163
- readonly grantedTo: readonly ["StewardOwner", "WorkProjectManager", "CommissionManager"];
164
- };
165
160
  readonly 'commission.commissionProposal.save': {
166
161
  readonly label: "Save commission proposals";
167
162
  readonly description: "Save or unsave workProject commission proposals.";
@@ -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;AACpF,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,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwP/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;AACpF,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,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmP/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AACpE,eAAO,MAAM,uBAAuB,EAAwC,mBAAmB,EAAE,CAAC"}
@@ -29,7 +29,7 @@ export const GUILD_STANDINGS = {
29
29
  },
30
30
  CommissionManager: {
31
31
  label: 'Commission Manager',
32
- description: 'Can open, close, and delete workProject commissions and manage proposals without starting invite conversations.',
32
+ description: 'Can open and close workProject commissions and manage proposals without starting invite conversations.',
33
33
  },
34
34
  AuditionManager: {
35
35
  label: 'Audition Manager',
@@ -160,11 +160,6 @@ export const WORK_PROJECT_ACTIONS = {
160
160
  description: 'Close workProject commission postings.',
161
161
  grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],
162
162
  },
163
- 'commission.delete': {
164
- label: 'Delete commissions',
165
- description: 'Delete workProject commission postings.',
166
- grantedTo: ['StewardOwner', 'WorkProjectManager', 'CommissionManager'],
167
- },
168
163
  'commission.commissionProposal.save': {
169
164
  label: 'Save commission proposals',
170
165
  description: 'Save or unsave workProject commission proposals.',
@@ -1 +1 @@
1
- {"version":3,"file":"work-project-permissions-data.js","sourceRoot":"","sources":["../../src/permissions/work-project-permissions-data.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,8JAA8J;KAC5K;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,+HAA+H;KAC7I;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kEAAkE;KAChF;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,0NAA0N;KACxO;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,qEAAqE;KACnF;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,wFAAwF;KACtG;IACD,cAAc,EAAE;QACd,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,2LAA2L;KACzM;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,iHAAiH;KAC/H;IACD,eAAe,EAAE;QACf,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,+GAA+G;KAC7H;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,iFAAiF;KAC/F;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,4DAA4D;KAC1E;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,8EAA8E;KAC5F;CACO,CAAC;AAGX,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAsB,CAAC;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,YAAY,EAAE,SAAS;IACvB,kBAAkB,EAAE,oBAAoB;IACxC,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,yBAAyB;CACA,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAyB,CAAC;AAEvG,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kBAAkB,EAAE;QAClB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,sEAAsE;QACnF,SAAS,EAAE,kBAAkB;KAC9B;IACD,6BAA6B,EAAE;QAC7B,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,oCAAoC,EAAE;QACpC,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE,oEAAoE;QACjF,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;KAC1E;IACD,sCAAsC,EAAE;QACtC,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,mFAAmF;YACnF,yFAAyF;YACzF,0FAA0F;YAC1F,wFAAwF;YACxF,4BAA4B;QAC9B,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;KAClD;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kEAAkE;QAC/E,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,mCAAmC,EAAE;QACnC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,qEAAqE;QAClF,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAC;KACnE;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,6CAA6C;QAC1D,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAC;KACnE;IACD,uBAAuB,EAAE;QACvB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,+CAA+C;QAC5D,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,eAAe,CAAC;KACnE;IACD,gCAAgC,EAAE;QAChC,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,8EAA8E;QAC3F,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,gFAAgF;QAC7F,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2FAA2F;QACxG,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,2FAA2F;QACxG,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gFAAgF;QAC7F,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,8EAA8E;YACzF,4FAA4F;QAC9F,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACpE;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,oCAAoC,EAAE;QACpC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,sCAAsC,EAAE;QACtC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,eAAe,EAAE;QACf,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,sCAAsC;QACnD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACrE;IACD,eAAe,EAAE;QACf,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACrE;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACrE;IACD,4BAA4B,EAAE;QAC5B,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,gFAAgF;QAC7F,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACrE;IACD,4BAA4B,EAAE;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,8BAA8B,EAAE;QAC9B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,4BAA4B;QACzC,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,sCAAsC,EAAE;QACtC,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,iCAAiC,EAAE;QACjC,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,iCAAiC,EAAE;QACjC,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,uCAAuC,EAAE;QACvC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,oCAAoC,EAAE;QACpC,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,uCAAuC;QACpD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,sCAAsC,EAAE;QACtC,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,8CAA8C,EAAE;QAC9C,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,oCAAoC,EAAE;QACpC,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,oCAAoC,EAAE;QACpC,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,0CAA0C,EAAE;QAC1C,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,qDAAqD;QAClE,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;KACvE;IACD,2BAA2B,EAAE;QAC3B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,sGAAsG;QACnH,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;KAC1E;IACD,kCAAkC,EAAE;QAClC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,6FAA6F;QAC1G,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;KAC1E;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,mCAAmC;QAChD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,6DAA6D;QAC1E,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,0BAA0B,EAAE;QAC1B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,oCAAoC;QACjD,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,4BAA4B,EAAE;QAC5B,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,uDAAuD;QACpE,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,oEAAoE;QACjF,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,2BAA2B,EAAE;QAC3B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,+DAA+D;QAC5E,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;KAC7E;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,0FAA0F;YAC1F,kFAAkF;QACpF,SAAS,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;KAClD;CAKD,CAAC;AAGH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAA0B,CAAC","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, close, and delete workProject commissions and manage proposals without starting invite conversations.',\n },\n AuditionManager: {\n label: 'Audition Manager',\n description: 'Can open, edit, and close workProject auditions and manage respondents 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, delete, and moderate 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[];\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\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.manage': {\n label: 'Manage workProject stakes',\n description: 'Run workProject stake-share operations under the 1000-stake cap.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'workProject.stakeShares.addActive': {\n label: 'Add active Guildmate stakes',\n description: 'Increase stakes for an existing active workProject Guildmate.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'guildInvite.send': {\n label: 'Send invites',\n description: 'Start a workProject invite conversation and reserve pending stakes.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.list': {\n label: 'List invites',\n description: 'View workProject invite conversation state.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.revokeAny': {\n label: 'Revoke pending invites',\n description: 'Cancel or revoke pending workProject invites.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.stakeShares.update': {\n label: 'Update invite stakes',\n description: 'Increase stakes offered on a pending invite.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'fileFolder.create': {\n label: 'Create file folders',\n description: 'Create workProject file folders and set their trade-profession access lists.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'fileFolder.manage': {\n label: 'Manage file folders',\n description: 'Rename folders, edit folder trade-profession access lists, and delete folders.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'workFile.deleteAny': {\n label: 'Delete any file',\n description: 'Delete any file regardless of folder trade-profession access (admin override).',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'workFile.promoteToRealm': {\n label: 'Share file to realm',\n description: 'Instantly share a work file into its realm shared-file pool (as non-canon). ' +\n 'Canon promotion is a separate realm-steward power, evaluated at the realm level, not here.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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.delete': {\n label: 'Delete commissions',\n description: 'Delete 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.edit': {\n label: 'Edit auditions',\n description: 'Edit 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 'audition.respondent.manage': {\n label: 'Manage audition respondents',\n description: 'Manage workProject audition respondents without starting invite conversations.',\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.tale.details.update': {\n label: 'Update Tale details',\n description: 'Edit Tale details and public copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tune.details.update': {\n label: 'Update Tune details',\n description: 'Edit Tune details and public copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.television.details.update': {\n label: 'Update Television details',\n description: 'Edit Television details and public copy.',\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 'guildChatMessage.moderate': {\n label: 'Moderate chat messages',\n description: 'Update or delete workProject channel messages for moderation.',\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, edit, and close workProject auditions and manage respondents 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, delete, and moderate 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[];\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\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.manage': {\n label: 'Manage workProject stakes',\n description: 'Run workProject stake-share operations under the 1000-stake cap.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'workProject.stakeShares.addActive': {\n label: 'Add active Guildmate stakes',\n description: 'Increase stakes for an existing active workProject Guildmate.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'guildInvite.send': {\n label: 'Send invites',\n description: 'Start a workProject invite conversation and reserve pending stakes.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.list': {\n label: 'List invites',\n description: 'View workProject invite conversation state.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.revokeAny': {\n label: 'Revoke pending invites',\n description: 'Cancel or revoke pending workProject invites.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'InviteManager'],\n },\n 'guildInvite.stakeShares.update': {\n label: 'Update invite stakes',\n description: 'Increase stakes offered on a pending invite.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'StakeShareManager'],\n },\n 'fileFolder.create': {\n label: 'Create file folders',\n description: 'Create workProject file folders and set their trade-profession access lists.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'fileFolder.manage': {\n label: 'Manage file folders',\n description: 'Rename folders, edit folder trade-profession access lists, and delete folders.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'workFile.deleteAny': {\n label: 'Delete any file',\n description: 'Delete any file regardless of folder trade-profession access (admin override).',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\n },\n 'workFile.promoteToRealm': {\n label: 'Share file to realm',\n description: 'Instantly share a work file into its realm shared-file pool (as non-canon). ' +\n 'Canon promotion is a separate realm-steward power, evaluated at the realm level, not here.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'WorkAssetAdmin'],\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.edit': {\n label: 'Edit auditions',\n description: 'Edit 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 'audition.respondent.manage': {\n label: 'Manage audition respondents',\n description: 'Manage workProject audition respondents without starting invite conversations.',\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.tale.details.update': {\n label: 'Update Tale details',\n description: 'Edit Tale details and public copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.tune.details.update': {\n label: 'Update Tune details',\n description: 'Edit Tune details and public copy.',\n grantedTo: ['StewardOwner', 'WorkProjectManager', 'HallLibraryEditor'],\n },\n 'hallLibrary.television.details.update': {\n label: 'Update Television details',\n description: 'Edit Television details and public copy.',\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 'guildChatMessage.moderate': {\n label: 'Moderate chat messages',\n description: 'Update or delete workProject channel messages for moderation.',\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"]}
@@ -10,10 +10,6 @@ export declare const CloseCommissionInputSchema: z.ZodObject<{
10
10
  commissionListingId: z.ZodString;
11
11
  }, z.core.$strict>;
12
12
  export type CloseCommissionInput = z.infer<typeof CloseCommissionInputSchema>;
13
- export declare const DeleteCommissionInputSchema: z.ZodObject<{
14
- commissionListingId: z.ZodString;
15
- }, z.core.$strict>;
16
- export type DeleteCommissionInput = z.infer<typeof DeleteCommissionInputSchema>;
17
13
  export declare const RejectCommissionProposalInputSchema: z.ZodObject<{
18
14
  commissionListingId: z.ZodString;
19
15
  commissionProposalId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"commissions.d.ts","sourceRoot":"","sources":["../../src/schemas/commissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,0BAA0B;;kBAE5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;kBAE7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mCAAmC;;;kBAGrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,qCAAqC;;;;kBAIvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,uCAAuC;;;kBAGzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAWxG,eAAO,MAAM,qCAAqC;;;;;iBAMhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"commissions.d.ts","sourceRoot":"","sources":["../../src/schemas/commissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,0BAA0B;;kBAE5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,mCAAmC;;;kBAGrC,CAAC;AACZ,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,qCAAqC;;;;kBAIvC,CAAC;AACZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,uCAAuC;;;kBAGzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAWxG,eAAO,MAAM,qCAAqC;;;;;iBAMhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC"}
@@ -10,9 +10,6 @@ export const CommissionProposalStatusSchema = z.enum([
10
10
  export const CloseCommissionInputSchema = z.object({
11
11
  commissionListingId: commissionListingIdSchema,
12
12
  }).strict();
13
- export const DeleteCommissionInputSchema = z.object({
14
- commissionListingId: commissionListingIdSchema,
15
- }).strict();
16
13
  export const RejectCommissionProposalInputSchema = z.object({
17
14
  commissionListingId: commissionListingIdSchema,
18
15
  commissionProposalId: commissionProposalIdSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"commissions.js","sourceRoot":"","sources":["../../src/schemas/commissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;IAChD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9D,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC;CAC1E,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,uFAAuF;AACvF,sFAAsF;AACtF,8EAA8E;AAC9E,uFAAuF;AACvF,6EAA6E;AAC7E,wFAAwF;AACxF,oFAAoF;AACpF,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACxB,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,+EAA+E;IAC/E,oBAAoB,EAAE,0BAA0B;CACjD,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { commissionListingIdSchema, commissionProposalIdSchema } from './atoms.js';\nimport { MAX_COMMISSION_DESCRIPTION_LENGTH } from '../constants/business.js';\n\nexport const CommissionProposalStatusSchema = z.enum([\n 'open',\n 'invited',\n 'accepted',\n 'rejected',\n]);\nexport type CommissionProposalStatus = z.infer<typeof CommissionProposalStatusSchema>;\n\nexport const CloseCommissionInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n}).strict();\nexport type CloseCommissionInput = z.infer<typeof CloseCommissionInputSchema>;\n\nexport const DeleteCommissionInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n}).strict();\nexport type DeleteCommissionInput = z.infer<typeof DeleteCommissionInputSchema>;\n\nexport const RejectCommissionProposalInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n commissionProposalId: commissionProposalIdSchema,\n}).strict();\nexport type RejectCommissionProposalInput = z.infer<typeof RejectCommissionProposalInputSchema>;\n\nexport const SetCommissionProposalSavedInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n commissionProposalId: commissionProposalIdSchema,\n saved: z.boolean(),\n}).strict();\nexport type SetCommissionProposalSavedInput = z.infer<typeof SetCommissionProposalSavedInputSchema>;\n\nexport const CreateCommissionProposalTextInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n coverLetterText: z.string().min(1).max(MAX_COMMISSION_DESCRIPTION_LENGTH),\n}).strict();\nexport type CreateCommissionProposalTextInput = z.infer<typeof CreateCommissionProposalTextInputSchema>;\n\n// Acceptance result of the commission-proposal MEDIA path (startUpload with fileOrigin\n// 'commission-proposal'). Creation itself is asynchronous via the media pipeline; the\n// proposal doc id is the CALLER's uid (one proposal per user per commission —\n// runCreateCommissionProposal: commissionProposalId = callerUid), so it is knowable at\n// accept time without any read. Non-strict (server → client result posture).\n// (The TEXT path's created-item result, CreateCommissionProposalTextResultSchema, lives\n// in ../doc-schemas/commissions.ts — it composes CommissionProposalSchema, and that\n// module imports THIS one, so declaring it here would be a module cycle. It is\n// re-exported on ./schemas via schemas/index.ts.)\nexport const ApplyToCommissionAcceptedResultSchema = z.object({\n success: z.literal(true),\n commissionListingId: commissionListingIdSchema,\n pendingMediaId: z.string().min(1),\n /** The eventual proposal doc id — the caller's uid (one proposal per user). */\n commissionProposalId: commissionProposalIdSchema,\n});\nexport type ApplyToCommissionAcceptedResult = z.infer<typeof ApplyToCommissionAcceptedResultSchema>;\n\n\n"]}
1
+ {"version":3,"file":"commissions.js","sourceRoot":"","sources":["../../src/schemas/commissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC;IACnD,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;CACjD,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,mBAAmB,EAAE,yBAAyB;IAC9C,oBAAoB,EAAE,0BAA0B;IAChD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9D,mBAAmB,EAAE,yBAAyB;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC;CAC1E,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,uFAAuF;AACvF,sFAAsF;AACtF,8EAA8E;AAC9E,uFAAuF;AACvF,6EAA6E;AAC7E,wFAAwF;AACxF,oFAAoF;AACpF,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACxB,mBAAmB,EAAE,yBAAyB;IAC9C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,+EAA+E;IAC/E,oBAAoB,EAAE,0BAA0B;CACjD,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { commissionListingIdSchema, commissionProposalIdSchema } from './atoms.js';\nimport { MAX_COMMISSION_DESCRIPTION_LENGTH } from '../constants/business.js';\n\nexport const CommissionProposalStatusSchema = z.enum([\n 'open',\n 'invited',\n 'accepted',\n 'rejected',\n]);\nexport type CommissionProposalStatus = z.infer<typeof CommissionProposalStatusSchema>;\n\nexport const CloseCommissionInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n}).strict();\nexport type CloseCommissionInput = z.infer<typeof CloseCommissionInputSchema>;\n\nexport const RejectCommissionProposalInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n commissionProposalId: commissionProposalIdSchema,\n}).strict();\nexport type RejectCommissionProposalInput = z.infer<typeof RejectCommissionProposalInputSchema>;\n\nexport const SetCommissionProposalSavedInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n commissionProposalId: commissionProposalIdSchema,\n saved: z.boolean(),\n}).strict();\nexport type SetCommissionProposalSavedInput = z.infer<typeof SetCommissionProposalSavedInputSchema>;\n\nexport const CreateCommissionProposalTextInputSchema = z.object({\n commissionListingId: commissionListingIdSchema,\n coverLetterText: z.string().min(1).max(MAX_COMMISSION_DESCRIPTION_LENGTH),\n}).strict();\nexport type CreateCommissionProposalTextInput = z.infer<typeof CreateCommissionProposalTextInputSchema>;\n\n// Acceptance result of the commission-proposal MEDIA path (startUpload with fileOrigin\n// 'commission-proposal'). Creation itself is asynchronous via the media pipeline; the\n// proposal doc id is the CALLER's uid (one proposal per user per commission —\n// runCreateCommissionProposal: commissionProposalId = callerUid), so it is knowable at\n// accept time without any read. Non-strict (server → client result posture).\n// (The TEXT path's created-item result, CreateCommissionProposalTextResultSchema, lives\n// in ../doc-schemas/commissions.ts — it composes CommissionProposalSchema, and that\n// module imports THIS one, so declaring it here would be a module cycle. It is\n// re-exported on ./schemas via schemas/index.ts.)\nexport const ApplyToCommissionAcceptedResultSchema = z.object({\n success: z.literal(true),\n commissionListingId: commissionListingIdSchema,\n pendingMediaId: z.string().min(1),\n /** The eventual proposal doc id — the caller's uid (one proposal per user). */\n commissionProposalId: commissionProposalIdSchema,\n});\nexport type ApplyToCommissionAcceptedResult = z.infer<typeof ApplyToCommissionAcceptedResultSchema>;\n\n\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { AuditEvent } from '@ttt-productions/audit-core';
2
- export type AuditEventType = 'artisanCreator.grantedToUser' | 'user.accountRegistered' | 'user.statusChanged' | 'user.accountSuspended' | 'user.accountBanned' | 'user.accountUnbanned' | 'user.displayNameResetForced' | 'user.displayNameChanged' | 'user.nonUsArtisanInterestRecorded' | 'account.deletionRequested' | 'account.deletionCancelled' | 'account.erasureCompleted' | 'account.erasureParkedOnHold' | 'account.erasureSuperseded' | 'admin.systemRoleGranted' | 'admin.systemRoleRevoked' | 'admin.systemRoleSyncedFromDirectEdit' | 'admin.contentAppealReviewed' | 'admin.thresholdItemReviewed' | 'admin.futurePlansUpdated' | 'admin.rulesAndAgreementsUpdated' | 'admin.termsPageUpdated' | 'admin.privacyPageUpdated' | 'admin.takeItDownPageCopyUpdated' | 'admin.reservedUsernamesSeeded' | 'admin.blockedFranchiseNamesSeeded' | 'admin.rulesAndAgreementsSeeded' | 'admin.futurePlansSeeded' | 'admin.termsPageSeeded' | 'admin.privacyPageSeeded' | 'admin.takeItDownPageCopySeeded' | 'admin.dispatchDeleted' | 'admin.shortLinkDeleted' | 'admin.trademarkChecked' | 'content.parodyDisclaimerApplied' | 'workProject.created' | 'workProject.guildmateUserGuildStandingChanged' | 'workProject.guildmateUserTradeProfessionsChanged' | 'workProject.guildMemberDeparted' | 'workProject.publicDetailsUpdated' | 'workProject.workAssetDeleted' | 'workProject.fileFolderCreated' | 'workProject.fileFolderRenamed' | 'workProject.fileFolderAccessChanged' | 'workProject.fileFolderDeleted' | 'workProject.guildInviteSent' | 'workProject.guildInviteAccepted' | 'workProject.guildInviteDeclined' | 'workProject.guildInviteCancelled' | 'workProject.guildInviteStakeSharesUpdated' | 'workProject.commissionListingCreated' | 'workProject.commissionProposalCreated' | 'workProject.commissionClosed' | 'workProject.commissionDeleted' | 'workProject.commissionProposalSaveToggled' | 'workProject.commissionProposalRejected' | 'workProject.stakeSharesChanged' | 'workProject.stakeShares.created' | 'workProject.stakeShares.increased' | 'workProject.stakeShares.anomaly' | 'workFile.sharedToRealm' | 'workFile.realmCanonChanged' | 'workFile.unsharedFromRealm' | 'craftSkill.userCraftSkillDeleted' | 'craftSkill.hidden' | 'craftSkill.restored' | 'craftSkill.removed' | 'content.itemReported' | 'content.violationRecorded' | 'content.thresholdItemSubmitted' | 'content.thresholdItemWithdrawn' | 'content.hallItemPublished' | 'content.hallContentChangeRequestSubmitted' | 'admin.hallContentChangeRequestResolved' | 'content.appealSubmitted' | 'content.violationAccepted' | 'content.hidden' | 'content.restored' | 'content.removed' | 'content.taleDetailsUpdated' | 'content.taleWorkGenresUpdated' | 'content.chapterCreated' | 'content.chapterDetailsUpdated' | 'content.tuneDetailsUpdated' | 'content.tuneWorkGenresUpdated' | 'content.tuneTrackCreated' | 'content.tuneTrackDetailsUpdated' | 'content.televisionDetailsUpdated' | 'content.televisionWorkGenresUpdated' | 'content.televisionEpisodeCreated' | 'content.televisionEpisodeDetailsUpdated' | 'payment.sessionCreated' | 'payment.pledgePaymentCompleted' | 'payment.pledgePaymentAbandoned' | 'payment.pledgePaymentFailed' | 'payment.pledgePaymentQuarantined' | 'payment.pledgePaymentRefunded' | 'payment.pledgePaymentDisputeOpened' | 'payment.pledgePaymentDisputeClosed' | 'payment.pledgeRefundRequested' | 'payment.pledgeRefundRequestResolved' | 'payment.pledgeLedger.recorded' | 'payment.pledgeLedger.anomaly' | 'admin.taskCheckedOut' | 'admin.taskCheckedIn' | 'admin.taskReleased' | 'admin.taskAutoReleased' | 'admin.taskDeferredLater' | 'workProject.auditionCreated' | 'admin.auditionCreated' | 'audition.entryCreated' | 'audition.closedByUser' | 'audition.curatedBatchFailed' | 'system.manualIntervention' | 'system.appConfigUpdated' | 'admin.appModeFlipRecorded' | 'system.pendingMediaArchived' | 'system.orphanUploadsCleanedUp' | 'admin.profanityListSeeded' | 'admin.profanityListCurated' | 'social.squareStreetzPostLiked' | 'social.squareStreetzPostUnliked' | 'social.targetFollowed' | 'social.targetUnfollowed' | 'chat.guildChatChannelCreated' | 'chat.guildChatChannelUpdated' | 'chat.guildChatChannelArchived' | 'chat.guildChatChannelUnarchived' | 'chat.guildChatChannelDeleted' | 'chat.adminThreadStarted' | 'chat.adminThreadStatusChanged' | 'conversationFile.deleted' | 'chat.moderationActionRequested' | 'chat.moderationActionApplied' | 'chat.moderationActionFailed' | 'chat.moderationContextRead' | 'notification.broadcastSent' | 'notification.adminArchived' | 'workProject.released' | 'workProject.hidden' | 'workProject.restored' | 'workProject.moderationPlaceholderApplied' | 'workProject.moderationRetitleCleared' | 'workRealm.created' | 'workRealm.released' | 'workRealm.detailsUpdated' | 'workRealm.hidden' | 'workRealm.restored' | 'workRealm.moderationPlaceholderApplied' | 'workRealm.moderationRetitleCleared' | 'hallItem.moderationPlaceholderApplied' | 'report.childSafetyCaseOpened' | 'report.nciiCaseOpened' | 'childSafety.reportDispositionSet' | 'childSafety.holdPlaced' | 'childSafety.holdReleased' | 'childSafety.accountActionApplied' | 'childSafety.accountActionReverted' | 'childSafety.evidenceManifestCreated' | 'childSafety.evidenceDisposed' | 'childSafety.quarantineCompleted' | 'childSafety.ncmecSubmissionCompleted' | 'childSafety.ncmecPortalReceiptArtifactRecorded' | 'childSafety.legalProcessRecorded' | 'childSafety.falsePositiveCorrected' | 'user.ageAttested' | 'user.ageUpgradedToAdult' | 'user.orphanAuthDeleted' | 'user.accountClosedUnder13' | 'user.safetyLocked' | 'ncii.requestReceived' | 'ncii.requestSupplemented' | 'ncii.completenessDetermined' | 'ncii.validityDecided' | 'ncii.tempHoldPlaced' | 'ncii.tempHoldReleased' | 'ncii.removalCompleted' | 'ncii.removalUnableToComplete' | 'ncii.evidenceMarked' | 'ncii.evidenceScanValidatedMatch' | 'ncii.hashBlockReversed' | 'ncii.requesterPiiScrubbed' | 'ncii.policyConfigUpdated' | 'ncii.minorAssessmentSet' | 'ncii.crossoverLegReconciled' | 'safety.privilegedReauthPerformed' | 'safety.privilegedRawLocatorRead' | 'safety.deadlineBreachRecorded' | 'safety.reviewerCapabilityGranted' | 'safety.reviewerCapabilityRevoked';
2
+ export type AuditEventType = 'artisanCreator.grantedToUser' | 'user.accountRegistered' | 'user.statusChanged' | 'user.accountSuspended' | 'user.accountBanned' | 'user.accountUnbanned' | 'user.displayNameResetForced' | 'user.displayNameChanged' | 'user.nonUsArtisanInterestRecorded' | 'account.deletionRequested' | 'account.deletionCancelled' | 'account.erasureCompleted' | 'account.erasureParkedOnHold' | 'account.erasureSuperseded' | 'admin.systemRoleGranted' | 'admin.systemRoleRevoked' | 'admin.systemRoleSyncedFromDirectEdit' | 'admin.contentAppealReviewed' | 'admin.thresholdItemReviewed' | 'admin.futurePlansUpdated' | 'admin.rulesAndAgreementsUpdated' | 'admin.termsPageUpdated' | 'admin.privacyPageUpdated' | 'admin.takeItDownPageCopyUpdated' | 'admin.reservedUsernamesSeeded' | 'admin.blockedFranchiseNamesSeeded' | 'admin.rulesAndAgreementsSeeded' | 'admin.futurePlansSeeded' | 'admin.termsPageSeeded' | 'admin.privacyPageSeeded' | 'admin.takeItDownPageCopySeeded' | 'admin.dispatchDeleted' | 'admin.shortLinkDeleted' | 'admin.trademarkChecked' | 'content.parodyDisclaimerApplied' | 'workProject.created' | 'workProject.guildmateUserGuildStandingChanged' | 'workProject.guildmateUserTradeProfessionsChanged' | 'workProject.guildMemberDeparted' | 'workProject.publicDetailsUpdated' | 'workProject.workAssetDeleted' | 'workProject.fileFolderCreated' | 'workProject.fileFolderRenamed' | 'workProject.fileFolderAccessChanged' | 'workProject.fileFolderDeleted' | 'workProject.guildInviteSent' | 'workProject.guildInviteAccepted' | 'workProject.guildInviteDeclined' | 'workProject.guildInviteCancelled' | 'workProject.guildInviteStakeSharesUpdated' | 'workProject.commissionListingCreated' | 'workProject.commissionProposalCreated' | 'workProject.commissionClosed' | 'workProject.commissionProposalSaveToggled' | 'workProject.commissionProposalRejected' | 'workProject.stakeSharesChanged' | 'workProject.stakeShares.created' | 'workProject.stakeShares.increased' | 'workProject.stakeShares.anomaly' | 'workFile.sharedToRealm' | 'workFile.realmCanonChanged' | 'workFile.unsharedFromRealm' | 'craftSkill.userCraftSkillDeleted' | 'craftSkill.hidden' | 'craftSkill.restored' | 'craftSkill.removed' | 'content.itemReported' | 'content.violationRecorded' | 'content.thresholdItemSubmitted' | 'content.thresholdItemWithdrawn' | 'content.hallItemPublished' | 'content.hallContentChangeRequestSubmitted' | 'admin.hallContentChangeRequestResolved' | 'content.appealSubmitted' | 'content.violationAccepted' | 'content.hidden' | 'content.restored' | 'content.removed' | 'content.taleDetailsUpdated' | 'content.taleWorkGenresUpdated' | 'content.chapterCreated' | 'content.chapterDetailsUpdated' | 'content.tuneDetailsUpdated' | 'content.tuneWorkGenresUpdated' | 'content.tuneTrackCreated' | 'content.tuneTrackDetailsUpdated' | 'content.televisionDetailsUpdated' | 'content.televisionWorkGenresUpdated' | 'content.televisionEpisodeCreated' | 'content.televisionEpisodeDetailsUpdated' | 'payment.sessionCreated' | 'payment.pledgePaymentCompleted' | 'payment.pledgePaymentAbandoned' | 'payment.pledgePaymentFailed' | 'payment.pledgePaymentQuarantined' | 'payment.pledgePaymentRefunded' | 'payment.pledgePaymentDisputeOpened' | 'payment.pledgePaymentDisputeClosed' | 'payment.pledgeRefundRequested' | 'payment.pledgeRefundRequestResolved' | 'payment.pledgeLedger.recorded' | 'payment.pledgeLedger.anomaly' | 'admin.taskCheckedOut' | 'admin.taskCheckedIn' | 'admin.taskReleased' | 'admin.taskAutoReleased' | 'admin.taskDeferredLater' | 'workProject.auditionCreated' | 'admin.auditionCreated' | 'audition.entryCreated' | 'audition.closedByUser' | 'audition.curatedBatchFailed' | 'system.manualIntervention' | 'system.appConfigUpdated' | 'admin.appModeFlipRecorded' | 'system.pendingMediaArchived' | 'system.orphanUploadsCleanedUp' | 'admin.profanityListSeeded' | 'admin.profanityListCurated' | 'social.squareStreetzPostLiked' | 'social.squareStreetzPostUnliked' | 'social.targetFollowed' | 'social.targetUnfollowed' | 'chat.guildChatChannelCreated' | 'chat.guildChatChannelUpdated' | 'chat.guildChatChannelArchived' | 'chat.guildChatChannelUnarchived' | 'chat.guildChatChannelDeleted' | 'chat.adminThreadStarted' | 'chat.adminThreadStatusChanged' | 'conversationFile.deleted' | 'chat.moderationActionRequested' | 'chat.moderationActionApplied' | 'chat.moderationActionFailed' | 'chat.moderationContextRead' | 'notification.broadcastSent' | 'notification.adminArchived' | 'workProject.released' | 'workProject.hidden' | 'workProject.restored' | 'workProject.moderationPlaceholderApplied' | 'workProject.moderationRetitleCleared' | 'workRealm.created' | 'workRealm.released' | 'workRealm.detailsUpdated' | 'workRealm.hidden' | 'workRealm.restored' | 'workRealm.moderationPlaceholderApplied' | 'workRealm.moderationRetitleCleared' | 'hallItem.moderationPlaceholderApplied' | 'report.childSafetyCaseOpened' | 'report.nciiCaseOpened' | 'childSafety.reportDispositionSet' | 'childSafety.holdPlaced' | 'childSafety.holdReleased' | 'childSafety.accountActionApplied' | 'childSafety.accountActionReverted' | 'childSafety.evidenceManifestCreated' | 'childSafety.evidenceDisposed' | 'childSafety.quarantineCompleted' | 'childSafety.ncmecSubmissionCompleted' | 'childSafety.ncmecPortalReceiptArtifactRecorded' | 'childSafety.legalProcessRecorded' | 'childSafety.falsePositiveCorrected' | 'user.ageAttested' | 'user.ageUpgradedToAdult' | 'user.orphanAuthDeleted' | 'user.accountClosedUnder13' | 'user.safetyLocked' | 'ncii.requestReceived' | 'ncii.requestSupplemented' | 'ncii.completenessDetermined' | 'ncii.validityDecided' | 'ncii.tempHoldPlaced' | 'ncii.tempHoldReleased' | 'ncii.removalCompleted' | 'ncii.removalUnableToComplete' | 'ncii.evidenceMarked' | 'ncii.evidenceScanValidatedMatch' | 'ncii.hashBlockReversed' | 'ncii.requesterPiiScrubbed' | 'ncii.policyConfigUpdated' | 'ncii.minorAssessmentSet' | 'ncii.crossoverLegReconciled' | 'safety.privilegedReauthPerformed' | 'safety.privilegedRawLocatorRead' | 'safety.deadlineBreachRecorded' | 'safety.reviewerCapabilityGranted' | 'safety.reviewerCapabilityRevoked';
3
3
  /**
4
4
  * How the actor was acting when the audited action was performed. This is
5
5
  * orthogonal to the event name — the same event type can be produced by
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,sEAAsE;AACtE,4DAA4D;AAC5D,EAAE;AACF,wEAAwE;AACxE,qBAAqB","sourcesContent":["// TTT audit event catalog. The `AuditEventType` union is the canonical list\n// of all sensitive actions the system logs. The `TTTAuditActor` and\n// `TTTAuditTarget` shapes describe who performed the action and what was\n// affected. `TTTAuditEvent` specializes the generic `AuditEvent` from\n// @ttt-productions/audit-core with the TTT-specific shapes.\n//\n// Backend writers and future native/TV/console readers all consume this\n// catalog from here.\n\nimport type { AuditEvent } from '@ttt-productions/audit-core';\n\nexport type AuditEventType =\n // user status\n | 'artisanCreator.grantedToUser'\n | 'user.accountRegistered'\n | 'user.statusChanged'\n | 'user.accountSuspended'\n | 'user.accountBanned'\n | 'user.accountUnbanned'\n | 'user.displayNameResetForced'\n | 'user.displayNameChanged'\n | 'user.nonUsArtisanInterestRecorded'\n // account deletion / GDPR erasure (N3)\n | 'account.deletionRequested'\n | 'account.deletionCancelled'\n | 'account.erasureCompleted'\n | 'account.erasureParkedOnHold'\n | 'account.erasureSuperseded'\n // admin actions\n | 'admin.systemRoleGranted'\n | 'admin.systemRoleRevoked'\n | 'admin.systemRoleSyncedFromDirectEdit'\n | 'admin.contentAppealReviewed'\n | 'admin.thresholdItemReviewed'\n | 'admin.futurePlansUpdated'\n | 'admin.rulesAndAgreementsUpdated'\n // content-pages migration (DJ ruling 2026-07-06): per-page admin editors\n | 'admin.termsPageUpdated'\n | 'admin.privacyPageUpdated'\n | 'admin.takeItDownPageCopyUpdated'\n // admin launch-seed actions (Ready for Launch tab)\n | 'admin.reservedUsernamesSeeded'\n | 'admin.blockedFranchiseNamesSeeded'\n | 'admin.rulesAndAgreementsSeeded'\n | 'admin.futurePlansSeeded'\n | 'admin.termsPageSeeded'\n | 'admin.privacyPageSeeded'\n | 'admin.takeItDownPageCopySeeded'\n // admin direct-delete callables (replaced the last two direct-SDK admin-browser deletes):\n // deleteAdminDispatch (support thread + its conversationMessages) and deleteShortLink.\n | 'admin.dispatchDeleted'\n | 'admin.shortLinkDeleted'\n // trademark-assist (advisory check at approval) + parody/real-people disclaimer baked at approval\n | 'admin.trademarkChecked'\n | 'content.parodyDisclaimerApplied'\n // workProject\n | 'workProject.created'\n | 'workProject.guildmateUserGuildStandingChanged'\n | 'workProject.guildmateUserTradeProfessionsChanged'\n // Member self-leave (leaveWorkProject) — pre-publish voluntary exit, shares forfeited to the pool.\n | 'workProject.guildMemberDeparted'\n | 'workProject.publicDetailsUpdated'\n | 'workProject.workAssetDeleted'\n // work-file folders (S7). fileFolderAccessChanged is an ACL change (folder trade-profession\n // view/upload/delete lists gate custom-folder confidentiality) — audited with before/after lists.\n | 'workProject.fileFolderCreated'\n | 'workProject.fileFolderRenamed'\n | 'workProject.fileFolderAccessChanged'\n | 'workProject.fileFolderDeleted'\n | 'workProject.guildInviteSent'\n | 'workProject.guildInviteAccepted'\n | 'workProject.guildInviteDeclined'\n | 'workProject.guildInviteCancelled'\n | 'workProject.guildInviteStakeSharesUpdated'\n | 'workProject.commissionListingCreated'\n | 'workProject.commissionProposalCreated'\n | 'workProject.commissionClosed'\n | 'workProject.commissionDeleted'\n | 'workProject.commissionProposalSaveToggled'\n | 'workProject.commissionProposalRejected'\n | 'workProject.stakeSharesChanged'\n | 'workProject.stakeShares.created'\n | 'workProject.stakeShares.increased'\n | 'workProject.stakeShares.anomaly'\n // realm shared files — a work file promoted into its realm's shared pool + canon toggles + un-share\n | 'workFile.sharedToRealm'\n | 'workFile.realmCanonChanged'\n | 'workFile.unsharedFromRealm'\n // craft-skills\n | 'craftSkill.userCraftSkillDeleted'\n | 'craftSkill.hidden'\n | 'craftSkill.restored'\n | 'craftSkill.removed'\n // content\n | 'content.itemReported'\n | 'content.violationRecorded'\n | 'content.thresholdItemSubmitted'\n // Member-initiated pull-back of a still-pending threshold submission (withdraw callable —\n // deletes the threshold doc + admin task, flips the live sub-item back to unpublished).\n | 'content.thresholdItemWithdrawn'\n | 'content.hallItemPublished'\n // Published change requests (text-only at launch): a member proposes new text-field values\n // for a PUBLISHED hall item; an admin approves (server writes values in place) or denies.\n | 'content.hallContentChangeRequestSubmitted'\n | 'admin.hallContentChangeRequestResolved'\n | 'content.appealSubmitted'\n | 'content.violationAccepted'\n | 'content.hidden'\n | 'content.restored'\n | 'content.removed'\n // content (workProject content)\n | 'content.taleDetailsUpdated'\n | 'content.taleWorkGenresUpdated'\n | 'content.chapterCreated'\n | 'content.chapterDetailsUpdated'\n | 'content.tuneDetailsUpdated'\n | 'content.tuneWorkGenresUpdated'\n | 'content.tuneTrackCreated'\n | 'content.tuneTrackDetailsUpdated'\n | 'content.televisionDetailsUpdated'\n | 'content.televisionWorkGenresUpdated'\n | 'content.televisionEpisodeCreated'\n | 'content.televisionEpisodeDetailsUpdated'\n // money\n | 'payment.sessionCreated'\n | 'payment.pledgePaymentCompleted'\n | 'payment.pledgePaymentAbandoned'\n | 'payment.pledgePaymentFailed'\n | 'payment.pledgePaymentQuarantined'\n // money — refund + dispute lifecycle (post-launch handlers; types added now to avoid a\n // second package publish). Refund REQUESTS are the user-initiated ask; the refund itself is\n // the money movement. Disputes are Stripe-initiated (chargeback) open/close.\n | 'payment.pledgePaymentRefunded'\n | 'payment.pledgePaymentDisputeOpened'\n | 'payment.pledgePaymentDisputeClosed'\n | 'payment.pledgeRefundRequested'\n | 'payment.pledgeRefundRequestResolved'\n // money — independent ledger-integrity trigger (mirrors workProject.stakeShares.*)\n | 'payment.pledgeLedger.recorded'\n | 'payment.pledgeLedger.anomaly'\n // admin task lifecycle\n | 'admin.taskCheckedOut'\n | 'admin.taskCheckedIn'\n | 'admin.taskReleased'\n | 'admin.taskAutoReleased'\n | 'admin.taskDeferredLater'\n // audition\n | 'workProject.auditionCreated'\n | 'admin.auditionCreated'\n | 'audition.entryCreated'\n | 'audition.closedByUser'\n // system-actor event: a curated audition's option batch failed to assemble (media\n // rejection) and its curatedAssemblyStatus flipped to 'failed' (runFailCuratedAudition).\n | 'audition.curatedBatchFailed'\n // system\n | 'system.manualIntervention'\n | 'system.appConfigUpdated'\n // records (never controls) a charter↔full APP_MODE flip after deploy — written\n // by the idempotent recordAppModeFlip admin callable\n | 'admin.appModeFlipRecorded'\n | 'system.pendingMediaArchived'\n | 'system.orphanUploadsCleanedUp'\n | 'admin.profanityListSeeded'\n | 'admin.profanityListCurated'\n // social\n | 'social.squareStreetzPostLiked'\n | 'social.squareStreetzPostUnliked'\n | 'social.targetFollowed'\n | 'social.targetUnfollowed'\n // chat\n | 'chat.guildChatChannelCreated'\n | 'chat.guildChatChannelUpdated'\n | 'chat.guildChatChannelArchived'\n | 'chat.guildChatChannelUnarchived'\n | 'chat.guildChatChannelDeleted'\n | 'chat.adminThreadStarted'\n | 'chat.adminThreadStatusChanged'\n // conversation files — every successful delete is audited with UID references and\n // canonical resource ids (the conversation ref, conversationFileId, mediaAssetId).\n | 'conversationFile.deleted'\n // chat moderation (DO-owned hide/delete via chatAdminActionCommands) — append-only,\n // deterministic ids hash('chat-moderation-{requested,applied,failed}', requestId, …).\n | 'chat.moderationActionRequested'\n | 'chat.moderationActionApplied'\n | 'chat.moderationActionFailed'\n // case-bound admin context read (read-on-demand, REVIEW-ONLY) — audits the request\n // AND outcome; one event per read keyed deterministically by the read's requestId.\n | 'chat.moderationContextRead'\n // notification (admin-only). Actor mode is always adminReview / adminOverride.\n // Payload shapes: NotificationBroadcastSentAuditMetadata /\n // NotificationAdminArchivedAuditMetadata in ../schemas/notification.ts.\n | 'notification.broadcastSent'\n | 'notification.adminArchived'\n // workProject\n | 'workProject.released'\n | 'workProject.hidden'\n | 'workProject.restored'\n | 'workProject.moderationPlaceholderApplied'\n | 'workProject.moderationRetitleCleared'\n | 'workRealm.created'\n | 'workRealm.released'\n | 'workRealm.detailsUpdated'\n | 'workRealm.hidden'\n | 'workRealm.restored'\n | 'workRealm.moderationPlaceholderApplied'\n | 'workRealm.moderationRetitleCleared'\n // hall-content moderation text-clear remedy (extends the workProject/workRealm placeholder\n // family across Tale/Tune/Television details + their chapter/track/episode sub-items and the\n // published Hall projections). Same past-tense placeholder-applied shape as the pair above.\n | 'hallItem.moderationPlaceholderApplied'\n // trust & safety — child safety / CSAM\n | 'report.childSafetyCaseOpened'\n | 'report.nciiCaseOpened'\n | 'childSafety.reportDispositionSet'\n | 'childSafety.holdPlaced'\n | 'childSafety.holdReleased'\n | 'childSafety.accountActionApplied'\n | 'childSafety.accountActionReverted'\n | 'childSafety.evidenceManifestCreated'\n | 'childSafety.evidenceDisposed'\n | 'childSafety.quarantineCompleted'\n | 'childSafety.ncmecSubmissionCompleted'\n | 'childSafety.ncmecPortalReceiptArtifactRecorded'\n | 'childSafety.legalProcessRecorded'\n | 'childSafety.falsePositiveCorrected'\n // trust & safety — age / registration\n | 'user.ageAttested'\n | 'user.ageUpgradedToAdult'\n | 'user.orphanAuthDeleted'\n | 'user.accountClosedUnder13'\n | 'user.safetyLocked'\n // trust & safety — NCII / TAKE IT DOWN\n | 'ncii.requestReceived'\n | 'ncii.requestSupplemented'\n | 'ncii.completenessDetermined'\n | 'ncii.validityDecided'\n | 'ncii.tempHoldPlaced'\n | 'ncii.tempHoldReleased'\n | 'ncii.removalCompleted'\n | 'ncii.removalUnableToComplete'\n // operator marks NCII evidence (e.g. flags/annotates an evidence item on the case) — a reviewed\n // evidence-handling action, audited like the other ncii evidence events.\n | 'ncii.evidenceMarked'\n | 'ncii.evidenceScanValidatedMatch'\n | 'ncii.hashBlockReversed'\n | 'ncii.requesterPiiScrubbed'\n | 'ncii.policyConfigUpdated'\n // operator sets the child-safety crossover minorAssessment on an NCII case (e.g. → possibleMinor):\n // routing action that opens/links a PARALLEL child-safety review + deny-serving + PhotoDNA, WITHOUT\n // touching the NCII removal clock and WITHOUT auto-NCMEC. Payload records from→to assessment.\n | 'ncii.minorAssessmentSet'\n // [H-2] a failed possible-minor crossover leg (serving-deny / PhotoDNA) was reconciled or replayed\n // by an operator/reconciler (crossoverLegs.<leg> failed → done). Payload records which leg + outcome.\n | 'ncii.crossoverLegReconciled'\n // trust & safety — operator security\n // Passkey enrollment/assertion reuses safety.privilegedReauthPerformed (the reauth catalog entry, as\n // the TOTP step-up enroll/confirm/verify phases already do) — no distinct passkey-registration type.\n | 'safety.privilegedReauthPerformed'\n // [P2-08] A privileged operator read of a TAKE IT DOWN request's RAW target locator (the\n // reveal-on-demand, review-only read of the sensitive locator itself — distinct from the\n // reveal reauth above, which is the step-up). One event per read. Mirrors the\n // chat.moderationContextRead privileged-read convention.\n | 'safety.privilegedRawLocatorRead'\n | 'safety.deadlineBreachRecorded'\n // [M-6] per-operator reviewer-capability grant lifecycle (privilegedReviewerCapabilityGrants/{uid}).\n // Granting/revoking a SafetyReviewerCapability is an authorization change — always audited.\n | 'safety.reviewerCapabilityGranted'\n | 'safety.reviewerCapabilityRevoked';\n\n/**\n * How the actor was acting when the audited action was performed. This is\n * orthogonal to the event name — the same event type can be produced by\n * different actor modes (e.g. a normal member vs. an admin override).\n *\n * - 'user' — authenticated action not tied to project membership\n * - 'projectMember' — acting through normal Work/project (guild standing) permissions\n * - 'adminReview' — admin queue/support work on admin surfaces (no project-permission concept)\n * - 'adminOverride' — system-admin authority superseding normal user/project permission\n * - 'system' — backend automation: trigger, scheduled job, migration, media pipeline\n */\nexport type TTTAuditActorMode =\n | 'user'\n | 'projectMember'\n | 'adminReview'\n | 'adminOverride'\n | 'system';\n\n/** Fields common to every audited actor regardless of mode. `isAdmin` is\n * claim-present metadata only — it records that the caller held an admin\n * claim at the time, NOT that the action was an override. */\nexport type TTTAuditActorBase = {\n uid: string | null;\n isAdmin: boolean;\n};\n\n/** TTT actor shape, discriminated on `actorMode`. The admin system role is\n * REQUIRED on admin modes (adminReview / adminOverride) and FORBIDDEN on\n * non-admin modes (user / projectMember / system) — so an admin action can\n * never be audited without recording full-vs-jr, and a non-admin action can\n * never carry a spurious role. */\nexport type TTTAuditActor =\n | (TTTAuditActorBase & {\n actorMode: 'user' | 'projectMember' | 'system';\n systemRole?: never;\n })\n | (TTTAuditActorBase & {\n actorMode: 'adminReview' | 'adminOverride';\n systemRole: 'admin' | 'jrAdmin';\n });\n\n/**\n * TTT target shape: the uid the audited action affects (if any), plus the\n * Firestore path of the affected document (if any).\n */\nexport type TTTAuditTarget = { uid: string | null; ref: string | null };\n\n/**\n * The canonical TTT audit event document shape. Specializes the generic\n * `AuditEvent` from @ttt-productions/audit-core with the TTT event-type\n * union, actor shape, target shape, and a generic metadata bag.\n */\nexport type TTTAuditEvent = AuditEvent<\n AuditEventType,\n TTTAuditActor,\n TTTAuditTarget,\n Record<string, unknown>\n>;\n\n"]}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/types/audit.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,sEAAsE;AACtE,4DAA4D;AAC5D,EAAE;AACF,wEAAwE;AACxE,qBAAqB","sourcesContent":["// TTT audit event catalog. The `AuditEventType` union is the canonical list\n// of all sensitive actions the system logs. The `TTTAuditActor` and\n// `TTTAuditTarget` shapes describe who performed the action and what was\n// affected. `TTTAuditEvent` specializes the generic `AuditEvent` from\n// @ttt-productions/audit-core with the TTT-specific shapes.\n//\n// Backend writers and future native/TV/console readers all consume this\n// catalog from here.\n\nimport type { AuditEvent } from '@ttt-productions/audit-core';\n\nexport type AuditEventType =\n // user status\n | 'artisanCreator.grantedToUser'\n | 'user.accountRegistered'\n | 'user.statusChanged'\n | 'user.accountSuspended'\n | 'user.accountBanned'\n | 'user.accountUnbanned'\n | 'user.displayNameResetForced'\n | 'user.displayNameChanged'\n | 'user.nonUsArtisanInterestRecorded'\n // account deletion / GDPR erasure (N3)\n | 'account.deletionRequested'\n | 'account.deletionCancelled'\n | 'account.erasureCompleted'\n | 'account.erasureParkedOnHold'\n | 'account.erasureSuperseded'\n // admin actions\n | 'admin.systemRoleGranted'\n | 'admin.systemRoleRevoked'\n | 'admin.systemRoleSyncedFromDirectEdit'\n | 'admin.contentAppealReviewed'\n | 'admin.thresholdItemReviewed'\n | 'admin.futurePlansUpdated'\n | 'admin.rulesAndAgreementsUpdated'\n // content-pages migration (DJ ruling 2026-07-06): per-page admin editors\n | 'admin.termsPageUpdated'\n | 'admin.privacyPageUpdated'\n | 'admin.takeItDownPageCopyUpdated'\n // admin launch-seed actions (Ready for Launch tab)\n | 'admin.reservedUsernamesSeeded'\n | 'admin.blockedFranchiseNamesSeeded'\n | 'admin.rulesAndAgreementsSeeded'\n | 'admin.futurePlansSeeded'\n | 'admin.termsPageSeeded'\n | 'admin.privacyPageSeeded'\n | 'admin.takeItDownPageCopySeeded'\n // admin direct-delete callables (replaced the last two direct-SDK admin-browser deletes):\n // deleteAdminDispatch (support thread + its conversationMessages) and deleteShortLink.\n | 'admin.dispatchDeleted'\n | 'admin.shortLinkDeleted'\n // trademark-assist (advisory check at approval) + parody/real-people disclaimer baked at approval\n | 'admin.trademarkChecked'\n | 'content.parodyDisclaimerApplied'\n // workProject\n | 'workProject.created'\n | 'workProject.guildmateUserGuildStandingChanged'\n | 'workProject.guildmateUserTradeProfessionsChanged'\n // Member self-leave (leaveWorkProject) — pre-publish voluntary exit, shares forfeited to the pool.\n | 'workProject.guildMemberDeparted'\n | 'workProject.publicDetailsUpdated'\n | 'workProject.workAssetDeleted'\n // work-file folders (S7). fileFolderAccessChanged is an ACL change (folder trade-profession\n // view/upload/delete lists gate custom-folder confidentiality) — audited with before/after lists.\n | 'workProject.fileFolderCreated'\n | 'workProject.fileFolderRenamed'\n | 'workProject.fileFolderAccessChanged'\n | 'workProject.fileFolderDeleted'\n | 'workProject.guildInviteSent'\n | 'workProject.guildInviteAccepted'\n | 'workProject.guildInviteDeclined'\n | 'workProject.guildInviteCancelled'\n | 'workProject.guildInviteStakeSharesUpdated'\n | 'workProject.commissionListingCreated'\n | 'workProject.commissionProposalCreated'\n | 'workProject.commissionClosed'\n | 'workProject.commissionProposalSaveToggled'\n | 'workProject.commissionProposalRejected'\n | 'workProject.stakeSharesChanged'\n | 'workProject.stakeShares.created'\n | 'workProject.stakeShares.increased'\n | 'workProject.stakeShares.anomaly'\n // realm shared files — a work file promoted into its realm's shared pool + canon toggles + un-share\n | 'workFile.sharedToRealm'\n | 'workFile.realmCanonChanged'\n | 'workFile.unsharedFromRealm'\n // craft-skills\n | 'craftSkill.userCraftSkillDeleted'\n | 'craftSkill.hidden'\n | 'craftSkill.restored'\n | 'craftSkill.removed'\n // content\n | 'content.itemReported'\n | 'content.violationRecorded'\n | 'content.thresholdItemSubmitted'\n // Member-initiated pull-back of a still-pending threshold submission (withdraw callable —\n // deletes the threshold doc + admin task, flips the live sub-item back to unpublished).\n | 'content.thresholdItemWithdrawn'\n | 'content.hallItemPublished'\n // Published change requests (text-only at launch): a member proposes new text-field values\n // for a PUBLISHED hall item; an admin approves (server writes values in place) or denies.\n | 'content.hallContentChangeRequestSubmitted'\n | 'admin.hallContentChangeRequestResolved'\n | 'content.appealSubmitted'\n | 'content.violationAccepted'\n | 'content.hidden'\n | 'content.restored'\n | 'content.removed'\n // content (workProject content)\n | 'content.taleDetailsUpdated'\n | 'content.taleWorkGenresUpdated'\n | 'content.chapterCreated'\n | 'content.chapterDetailsUpdated'\n | 'content.tuneDetailsUpdated'\n | 'content.tuneWorkGenresUpdated'\n | 'content.tuneTrackCreated'\n | 'content.tuneTrackDetailsUpdated'\n | 'content.televisionDetailsUpdated'\n | 'content.televisionWorkGenresUpdated'\n | 'content.televisionEpisodeCreated'\n | 'content.televisionEpisodeDetailsUpdated'\n // money\n | 'payment.sessionCreated'\n | 'payment.pledgePaymentCompleted'\n | 'payment.pledgePaymentAbandoned'\n | 'payment.pledgePaymentFailed'\n | 'payment.pledgePaymentQuarantined'\n // money — refund + dispute lifecycle (post-launch handlers; types added now to avoid a\n // second package publish). Refund REQUESTS are the user-initiated ask; the refund itself is\n // the money movement. Disputes are Stripe-initiated (chargeback) open/close.\n | 'payment.pledgePaymentRefunded'\n | 'payment.pledgePaymentDisputeOpened'\n | 'payment.pledgePaymentDisputeClosed'\n | 'payment.pledgeRefundRequested'\n | 'payment.pledgeRefundRequestResolved'\n // money — independent ledger-integrity trigger (mirrors workProject.stakeShares.*)\n | 'payment.pledgeLedger.recorded'\n | 'payment.pledgeLedger.anomaly'\n // admin task lifecycle\n | 'admin.taskCheckedOut'\n | 'admin.taskCheckedIn'\n | 'admin.taskReleased'\n | 'admin.taskAutoReleased'\n | 'admin.taskDeferredLater'\n // audition\n | 'workProject.auditionCreated'\n | 'admin.auditionCreated'\n | 'audition.entryCreated'\n | 'audition.closedByUser'\n // system-actor event: a curated audition's option batch failed to assemble (media\n // rejection) and its curatedAssemblyStatus flipped to 'failed' (runFailCuratedAudition).\n | 'audition.curatedBatchFailed'\n // system\n | 'system.manualIntervention'\n | 'system.appConfigUpdated'\n // records (never controls) a charter↔full APP_MODE flip after deploy — written\n // by the idempotent recordAppModeFlip admin callable\n | 'admin.appModeFlipRecorded'\n | 'system.pendingMediaArchived'\n | 'system.orphanUploadsCleanedUp'\n | 'admin.profanityListSeeded'\n | 'admin.profanityListCurated'\n // social\n | 'social.squareStreetzPostLiked'\n | 'social.squareStreetzPostUnliked'\n | 'social.targetFollowed'\n | 'social.targetUnfollowed'\n // chat\n | 'chat.guildChatChannelCreated'\n | 'chat.guildChatChannelUpdated'\n | 'chat.guildChatChannelArchived'\n | 'chat.guildChatChannelUnarchived'\n | 'chat.guildChatChannelDeleted'\n | 'chat.adminThreadStarted'\n | 'chat.adminThreadStatusChanged'\n // conversation files — every successful delete is audited with UID references and\n // canonical resource ids (the conversation ref, conversationFileId, mediaAssetId).\n | 'conversationFile.deleted'\n // chat moderation (DO-owned hide/delete via chatAdminActionCommands) — append-only,\n // deterministic ids hash('chat-moderation-{requested,applied,failed}', requestId, …).\n | 'chat.moderationActionRequested'\n | 'chat.moderationActionApplied'\n | 'chat.moderationActionFailed'\n // case-bound admin context read (read-on-demand, REVIEW-ONLY) — audits the request\n // AND outcome; one event per read keyed deterministically by the read's requestId.\n | 'chat.moderationContextRead'\n // notification (admin-only). Actor mode is always adminReview / adminOverride.\n // Payload shapes: NotificationBroadcastSentAuditMetadata /\n // NotificationAdminArchivedAuditMetadata in ../schemas/notification.ts.\n | 'notification.broadcastSent'\n | 'notification.adminArchived'\n // workProject\n | 'workProject.released'\n | 'workProject.hidden'\n | 'workProject.restored'\n | 'workProject.moderationPlaceholderApplied'\n | 'workProject.moderationRetitleCleared'\n | 'workRealm.created'\n | 'workRealm.released'\n | 'workRealm.detailsUpdated'\n | 'workRealm.hidden'\n | 'workRealm.restored'\n | 'workRealm.moderationPlaceholderApplied'\n | 'workRealm.moderationRetitleCleared'\n // hall-content moderation text-clear remedy (extends the workProject/workRealm placeholder\n // family across Tale/Tune/Television details + their chapter/track/episode sub-items and the\n // published Hall projections). Same past-tense placeholder-applied shape as the pair above.\n | 'hallItem.moderationPlaceholderApplied'\n // trust & safety — child safety / CSAM\n | 'report.childSafetyCaseOpened'\n | 'report.nciiCaseOpened'\n | 'childSafety.reportDispositionSet'\n | 'childSafety.holdPlaced'\n | 'childSafety.holdReleased'\n | 'childSafety.accountActionApplied'\n | 'childSafety.accountActionReverted'\n | 'childSafety.evidenceManifestCreated'\n | 'childSafety.evidenceDisposed'\n | 'childSafety.quarantineCompleted'\n | 'childSafety.ncmecSubmissionCompleted'\n | 'childSafety.ncmecPortalReceiptArtifactRecorded'\n | 'childSafety.legalProcessRecorded'\n | 'childSafety.falsePositiveCorrected'\n // trust & safety — age / registration\n | 'user.ageAttested'\n | 'user.ageUpgradedToAdult'\n | 'user.orphanAuthDeleted'\n | 'user.accountClosedUnder13'\n | 'user.safetyLocked'\n // trust & safety — NCII / TAKE IT DOWN\n | 'ncii.requestReceived'\n | 'ncii.requestSupplemented'\n | 'ncii.completenessDetermined'\n | 'ncii.validityDecided'\n | 'ncii.tempHoldPlaced'\n | 'ncii.tempHoldReleased'\n | 'ncii.removalCompleted'\n | 'ncii.removalUnableToComplete'\n // operator marks NCII evidence (e.g. flags/annotates an evidence item on the case) — a reviewed\n // evidence-handling action, audited like the other ncii evidence events.\n | 'ncii.evidenceMarked'\n | 'ncii.evidenceScanValidatedMatch'\n | 'ncii.hashBlockReversed'\n | 'ncii.requesterPiiScrubbed'\n | 'ncii.policyConfigUpdated'\n // operator sets the child-safety crossover minorAssessment on an NCII case (e.g. → possibleMinor):\n // routing action that opens/links a PARALLEL child-safety review + deny-serving + PhotoDNA, WITHOUT\n // touching the NCII removal clock and WITHOUT auto-NCMEC. Payload records from→to assessment.\n | 'ncii.minorAssessmentSet'\n // [H-2] a failed possible-minor crossover leg (serving-deny / PhotoDNA) was reconciled or replayed\n // by an operator/reconciler (crossoverLegs.<leg> failed → done). Payload records which leg + outcome.\n | 'ncii.crossoverLegReconciled'\n // trust & safety — operator security\n // Passkey enrollment/assertion reuses safety.privilegedReauthPerformed (the reauth catalog entry, as\n // the TOTP step-up enroll/confirm/verify phases already do) — no distinct passkey-registration type.\n | 'safety.privilegedReauthPerformed'\n // [P2-08] A privileged operator read of a TAKE IT DOWN request's RAW target locator (the\n // reveal-on-demand, review-only read of the sensitive locator itself — distinct from the\n // reveal reauth above, which is the step-up). One event per read. Mirrors the\n // chat.moderationContextRead privileged-read convention.\n | 'safety.privilegedRawLocatorRead'\n | 'safety.deadlineBreachRecorded'\n // [M-6] per-operator reviewer-capability grant lifecycle (privilegedReviewerCapabilityGrants/{uid}).\n // Granting/revoking a SafetyReviewerCapability is an authorization change — always audited.\n | 'safety.reviewerCapabilityGranted'\n | 'safety.reviewerCapabilityRevoked';\n\n/**\n * How the actor was acting when the audited action was performed. This is\n * orthogonal to the event name — the same event type can be produced by\n * different actor modes (e.g. a normal member vs. an admin override).\n *\n * - 'user' — authenticated action not tied to project membership\n * - 'projectMember' — acting through normal Work/project (guild standing) permissions\n * - 'adminReview' — admin queue/support work on admin surfaces (no project-permission concept)\n * - 'adminOverride' — system-admin authority superseding normal user/project permission\n * - 'system' — backend automation: trigger, scheduled job, migration, media pipeline\n */\nexport type TTTAuditActorMode =\n | 'user'\n | 'projectMember'\n | 'adminReview'\n | 'adminOverride'\n | 'system';\n\n/** Fields common to every audited actor regardless of mode. `isAdmin` is\n * claim-present metadata only — it records that the caller held an admin\n * claim at the time, NOT that the action was an override. */\nexport type TTTAuditActorBase = {\n uid: string | null;\n isAdmin: boolean;\n};\n\n/** TTT actor shape, discriminated on `actorMode`. The admin system role is\n * REQUIRED on admin modes (adminReview / adminOverride) and FORBIDDEN on\n * non-admin modes (user / projectMember / system) — so an admin action can\n * never be audited without recording full-vs-jr, and a non-admin action can\n * never carry a spurious role. */\nexport type TTTAuditActor =\n | (TTTAuditActorBase & {\n actorMode: 'user' | 'projectMember' | 'system';\n systemRole?: never;\n })\n | (TTTAuditActorBase & {\n actorMode: 'adminReview' | 'adminOverride';\n systemRole: 'admin' | 'jrAdmin';\n });\n\n/**\n * TTT target shape: the uid the audited action affects (if any), plus the\n * Firestore path of the affected document (if any).\n */\nexport type TTTAuditTarget = { uid: string | null; ref: string | null };\n\n/**\n * The canonical TTT audit event document shape. Specializes the generic\n * `AuditEvent` from @ttt-productions/audit-core with the TTT event-type\n * union, actor shape, target shape, and a generic metadata bag.\n */\nexport type TTTAuditEvent = AuditEvent<\n AuditEventType,\n TTTAuditActor,\n TTTAuditTarget,\n Record<string, unknown>\n>;\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/ttt-core",
3
- "version": "0.79.11",
3
+ "version": "0.79.12",
4
4
  "description": "Core types, Firestore path constants, and shared constants for TTT Productions",
5
5
  "repository": {
6
6
  "type": "git",