@ttt-productions/ttt-core 0.79.6 → 0.79.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/admin-labels.d.ts +9 -0
- package/dist/constants/admin-labels.d.ts.map +1 -1
- package/dist/constants/admin-labels.js +24 -0
- package/dist/constants/admin-labels.js.map +1 -1
- package/dist/constants/options.d.ts +21 -0
- package/dist/constants/options.d.ts.map +1 -1
- package/dist/constants/options.js +23 -0
- package/dist/constants/options.js.map +1 -1
- package/dist/doc-schemas/chat-sync.d.ts +2 -2
- package/dist/doc-schemas/commissions.d.ts +3 -3
- package/dist/doc-schemas/media-activation-jobs.d.ts +12 -12
- package/dist/doc-schemas/media-assets.d.ts +40 -40
- package/dist/doc-schemas/messaging.d.ts +0 -6
- package/dist/doc-schemas/messaging.d.ts.map +1 -1
- package/dist/doc-schemas/messaging.js +12 -9
- package/dist/doc-schemas/messaging.js.map +1 -1
- package/dist/doc-schemas/moderation.d.ts +8 -8
- package/dist/doc-schemas/ncii/allegations.d.ts +6 -15
- package/dist/doc-schemas/ncii/allegations.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/cases.d.ts +3 -7
- package/dist/doc-schemas/ncii/cases.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/holds.d.ts +0 -4
- package/dist/doc-schemas/ncii/holds.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/removal.d.ts +3 -7
- package/dist/doc-schemas/ncii/removal.d.ts.map +1 -1
- package/dist/doc-schemas/ncii/requests.d.ts +10 -15
- package/dist/doc-schemas/ncii/requests.d.ts.map +1 -1
- package/dist/doc-schemas/notification-ledger.d.ts +1 -1
- package/dist/doc-schemas/operational.d.ts +1 -1
- package/dist/doc-schemas/payments.d.ts +1 -1
- package/dist/doc-schemas/registry.d.ts +155 -200
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/safety/case.d.ts +0 -4
- package/dist/doc-schemas/safety/case.d.ts.map +1 -1
- package/dist/doc-schemas/safety/evidence.d.ts +10 -10
- package/dist/doc-schemas/safety/foundation.d.ts +31 -38
- package/dist/doc-schemas/safety/foundation.d.ts.map +1 -1
- package/dist/doc-schemas/safety/foundation.js +6 -17
- package/dist/doc-schemas/safety/foundation.js.map +1 -1
- package/dist/doc-schemas/safety/holds.d.ts +8 -9
- package/dist/doc-schemas/safety/holds.d.ts.map +1 -1
- package/dist/doc-schemas/safety/report.d.ts +30 -43
- package/dist/doc-schemas/safety/report.d.ts.map +1 -1
- package/dist/doc-schemas/work-project.d.ts +1 -1
- package/dist/media/domain-events-admin.d.ts +4 -4
- package/dist/media/domain-events.d.ts +4 -4
- package/dist/media/file-origin.d.ts +4 -4
- package/dist/media/pending-media.d.ts +120 -120
- package/dist/media/start-upload.d.ts +4 -4
- package/dist/media/upload-tray-display.d.ts.map +1 -1
- package/dist/media/upload-tray-display.js +4 -1
- package/dist/media/upload-tray-display.js.map +1 -1
- package/dist/report/report-config-values.d.ts.map +1 -1
- package/dist/report/report-config-values.js +0 -2
- package/dist/report/report-config-values.js.map +1 -1
- package/dist/safety/ncii-intake-derivations.d.ts.map +1 -1
- package/dist/safety/ncii-intake-derivations.js +0 -4
- package/dist/safety/ncii-intake-derivations.js.map +1 -1
- package/dist/schemas/admin.d.ts +62 -21
- package/dist/schemas/admin.d.ts.map +1 -1
- package/dist/schemas/admin.js +72 -8
- package/dist/schemas/admin.js.map +1 -1
- package/dist/schemas/chat.d.ts +0 -5
- package/dist/schemas/chat.d.ts.map +1 -1
- package/dist/schemas/chat.js +3 -2
- package/dist/schemas/chat.js.map +1 -1
- package/dist/schemas/commissions.d.ts +1 -1
- package/dist/schemas/ncii.d.ts +18 -21
- package/dist/schemas/ncii.d.ts.map +1 -1
- package/dist/schemas/notification.d.ts +6 -7
- package/dist/schemas/notification.d.ts.map +1 -1
- package/dist/schemas/utility.d.ts +1 -1
- package/package.json +1 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UserAccountStatus } from '../doc-schemas/user.js';
|
|
2
|
+
import type { FeedbackType } from './business-admin.js';
|
|
2
3
|
import type { ReportDisposition } from '../doc-schemas/safety/foundation.js';
|
|
3
4
|
import type { BroadcastAudienceSelector } from '../schemas/notification.js';
|
|
4
5
|
import type { DeadLetterCollection } from '../schemas/admin.js';
|
|
@@ -6,6 +7,12 @@ import type { DeadLetterCollection } from '../schemas/admin.js';
|
|
|
6
7
|
export declare const USER_ACCOUNT_STATUS_LABELS: Record<UserAccountStatus, string>;
|
|
7
8
|
/** Broadcast audience selector labels (announcement composer). */
|
|
8
9
|
export declare const BROADCAST_AUDIENCE_KIND_LABELS: Record<BroadcastAudienceSelector['kind'], string>;
|
|
10
|
+
/** Human labels for the canonical feedback types — the admin feedback-suggestions views and
|
|
11
|
+
* the user-facing feedback-submission surface render these instead of restating copy. Keyed
|
|
12
|
+
* by FeedbackType, so a new FEEDBACK_TYPES member fails the build until its label exists.
|
|
13
|
+
* UI copy uses the SHORT settled terms (Trade → "Trades", Craft → "Craft Tags", Genre →
|
|
14
|
+
* "<Kind> Genres"), never the compound code identifiers (ARCH-107). */
|
|
15
|
+
export declare const FEEDBACK_TYPE_LABELS: Record<FeedbackType, string>;
|
|
9
16
|
/** Human labels for the dead-letter replay ledgers (Ops Repairs dead-letter table). */
|
|
10
17
|
export declare const DEAD_LETTER_COLLECTION_LABELS: Record<DeadLetterCollection, string>;
|
|
11
18
|
/** Operator-settable report dispositions with their console copy. 'undetermined' is the
|
|
@@ -29,4 +36,6 @@ export interface UserFacingReasonOption {
|
|
|
29
36
|
export declare const USER_FACING_REASON_OPTIONS: readonly UserFacingReasonOption[];
|
|
30
37
|
/** The user-facing label for a reason code (undefined when the code is unknown/absent). */
|
|
31
38
|
export declare function userFacingReasonLabel(code: string | undefined): string | undefined;
|
|
39
|
+
export declare const WORK_PROJECT_TYPE_RULE_GROUP_TITLE = "Work Type Rules";
|
|
40
|
+
export declare const HALL_WING_TYPE_RULE_GROUP_TITLE = "Hall Wing Rules";
|
|
32
41
|
//# sourceMappingURL=admin-labels.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-labels.d.ts","sourceRoot":"","sources":["../../src/constants/admin-labels.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-labels.d.ts","sourceRoot":"","sources":["../../src/constants/admin-labels.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAIxE,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,CAM5F,CAAC;AAEF;;;;uEAIuE;AACvE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAM7D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAc9E,CAAC;AAEF;4EAC4E;AAC5E,eAAO,MAAM,0BAA0B,EAAE,SAAS;IAChD,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,EAiBA,CAAC;AAEF,gGAAgG;AAChG,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;0BAI0B;AAC1B,eAAO,MAAM,0BAA0B,EAAE,SAAS,sBAAsB,EAW9D,CAAC;AAEX,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAElF;AASD,eAAO,MAAM,kCAAkC,oBAAoB,CAAC;AACpE,eAAO,MAAM,+BAA+B,oBAAoB,CAAC"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
// the former component-local maps in ttt-prod (admin-user-management-view,
|
|
5
5
|
// admin-announcements-view, guided-resolution-flow). Any client (web, phone,
|
|
6
6
|
// TV, admin app) renders the same labels by importing these.
|
|
7
|
+
//
|
|
8
|
+
// A few entries here are copy for ADMIN-MANAGED content that a PUBLIC surface also
|
|
9
|
+
// renders (the rules-page group titles at the bottom of this file). The organizing
|
|
10
|
+
// principle is one declaration, not one consumer.
|
|
7
11
|
// ============================================================================
|
|
8
12
|
/** Moderation status labels (user-management view, status badges). */
|
|
9
13
|
export const USER_ACCOUNT_STATUS_LABELS = {
|
|
@@ -19,6 +23,18 @@ export const BROADCAST_AUDIENCE_KIND_LABELS = {
|
|
|
19
23
|
workMembers: "A Work's guild members",
|
|
20
24
|
realmMembers: "A Realm's members",
|
|
21
25
|
};
|
|
26
|
+
/** Human labels for the canonical feedback types — the admin feedback-suggestions views and
|
|
27
|
+
* the user-facing feedback-submission surface render these instead of restating copy. Keyed
|
|
28
|
+
* by FeedbackType, so a new FEEDBACK_TYPES member fails the build until its label exists.
|
|
29
|
+
* UI copy uses the SHORT settled terms (Trade → "Trades", Craft → "Craft Tags", Genre →
|
|
30
|
+
* "<Kind> Genres"), never the compound code identifiers (ARCH-107). */
|
|
31
|
+
export const FEEDBACK_TYPE_LABELS = {
|
|
32
|
+
tradeProfessionSuggestions: 'Trades',
|
|
33
|
+
craftSkillTagSuggestions: 'Craft Tags',
|
|
34
|
+
talesWorkGenreSuggestions: 'Tales Genres',
|
|
35
|
+
tunesWorkGenreSuggestions: 'Tunes Genres',
|
|
36
|
+
televisionWorkGenreSuggestions: 'Television Genres',
|
|
37
|
+
};
|
|
22
38
|
/** Human labels for the dead-letter replay ledgers (Ops Repairs dead-letter table). */
|
|
23
39
|
export const DEAD_LETTER_COLLECTION_LABELS = {
|
|
24
40
|
chatSyncEvents: 'Chat sync event',
|
|
@@ -75,4 +91,12 @@ export const USER_FACING_REASON_OPTIONS = [
|
|
|
75
91
|
export function userFacingReasonLabel(code) {
|
|
76
92
|
return USER_FACING_REASON_OPTIONS.find((o) => o.code === code)?.label;
|
|
77
93
|
}
|
|
94
|
+
// --- Rules-surface group titles ---
|
|
95
|
+
// The two rule-GROUP headings for the platform rules content (`Rule.group`
|
|
96
|
+
// 'workProjectType' / 'hallWingType' — see schemas/admin.ts). BOTH the admin rules editor
|
|
97
|
+
// and the public rules page render these, so they are declared once here instead of being
|
|
98
|
+
// restated as literals on each surface (ENG-002). Copy uses the short settled terms Work /
|
|
99
|
+
// Hall / Wing (ARCH-107).
|
|
100
|
+
export const WORK_PROJECT_TYPE_RULE_GROUP_TITLE = 'Work Type Rules';
|
|
101
|
+
export const HALL_WING_TYPE_RULE_GROUP_TITLE = 'Hall Wing Rules';
|
|
78
102
|
//# sourceMappingURL=admin-labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-labels.js","sourceRoot":"","sources":["../../src/constants/admin-labels.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,2EAA2E;AAC3E,6EAA6E;AAC7E,6DAA6D;AAC7D,+EAA+E;
|
|
1
|
+
{"version":3,"file":"admin-labels.js","sourceRoot":"","sources":["../../src/constants/admin-labels.ts"],"names":[],"mappings":"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","sourcesContent":["// ============================================================================\n// ADMIN-SURFACE DISPLAY LABELS — the ONE home for business display copy keyed\n// by canonical ttt-core enums (ARCH-102, extended 2026-07-13). Consolidated from\n// the former component-local maps in ttt-prod (admin-user-management-view,\n// admin-announcements-view, guided-resolution-flow). Any client (web, phone,\n// TV, admin app) renders the same labels by importing these.\n//\n// A few entries here are copy for ADMIN-MANAGED content that a PUBLIC surface also\n// renders (the rules-page group titles at the bottom of this file). The organizing\n// principle is one declaration, not one consumer.\n// ============================================================================\n\nimport type { UserAccountStatus } from '../doc-schemas/user.js';\nimport type { FeedbackType } from './business-admin.js';\nimport type { ReportDisposition } from '../doc-schemas/safety/foundation.js';\nimport type { BroadcastAudienceSelector } from '../schemas/notification.js';\nimport type { DeadLetterCollection } from '../schemas/admin.js';\n\n/** Moderation status labels (user-management view, status badges). */\nexport const USER_ACCOUNT_STATUS_LABELS: Record<UserAccountStatus, string> = {\n active: 'Active',\n suspended: 'Suspended',\n banned: 'Banned',\n};\n\n/** Broadcast audience selector labels (announcement composer). */\nexport const BROADCAST_AUDIENCE_KIND_LABELS: Record<BroadcastAudienceSelector['kind'], string> = {\n allActiveUsers: 'All active users',\n allArtisans: 'All artisan creators',\n explicitUids: 'Specific users (paste uids)',\n workMembers: \"A Work's guild members\",\n realmMembers: \"A Realm's members\",\n};\n\n/** Human labels for the canonical feedback types — the admin feedback-suggestions views and\n * the user-facing feedback-submission surface render these instead of restating copy. Keyed\n * by FeedbackType, so a new FEEDBACK_TYPES member fails the build until its label exists.\n * UI copy uses the SHORT settled terms (Trade → \"Trades\", Craft → \"Craft Tags\", Genre →\n * \"<Kind> Genres\"), never the compound code identifiers (ARCH-107). */\nexport const FEEDBACK_TYPE_LABELS: Record<FeedbackType, string> = {\n tradeProfessionSuggestions: 'Trades',\n craftSkillTagSuggestions: 'Craft Tags',\n talesWorkGenreSuggestions: 'Tales Genres',\n tunesWorkGenreSuggestions: 'Tunes Genres',\n televisionWorkGenreSuggestions: 'Television Genres',\n};\n\n/** Human labels for the dead-letter replay ledgers (Ops Repairs dead-letter table). */\nexport const DEAD_LETTER_COLLECTION_LABELS: Record<DeadLetterCollection, string> = {\n chatSyncEvents: 'Chat sync event',\n chatAdminActionCommands: 'Chat moderation command',\n notificationDeliveries: 'Notification delivery',\n chatMessageOutbox: 'Chat message publish',\n squareAnnouncementJobs: 'Square announcement',\n chatSyncFanoutJobs: 'Chat access fanout',\n mediaAssets: 'Media authority sync',\n quarantineSagaJobs: 'Quarantine saga',\n nciiRemovalJobs: 'NCII removal',\n safetyEvidenceJobs: 'Safety evidence job',\n accountActionCommands: 'Account safety action',\n activeReportGroups: 'Report edge sync',\n hallSubItemEdgeSync: 'Hall sub-item edge sync',\n};\n\n/** Operator-settable report dispositions with their console copy. 'undetermined' is the\n * initial state, never a settable target, so it carries no option entry. */\nexport const REPORT_DISPOSITION_OPTIONS: readonly {\n value: Exclude<ReportDisposition, 'undetermined'>;\n label: string;\n description: string;\n}[] = [\n {\n value: 'reportRequired',\n label: 'Report required (NCMEC)',\n description:\n 'Apparent CSAM — a report is legally required. Establishes actual knowledge + arms the clock.',\n },\n {\n value: 'notRequired',\n label: 'No report required',\n description: 'No reporting obligation ever arose. Disallowed once there is a validated match.',\n },\n {\n value: 'correctedNoApparentViolation',\n label: 'False positive — correct it',\n description: 'There was a triggering signal but on review it is a false positive.',\n },\n];\n\n/** One user-facing reason option (shown to the affected user for any user-affecting action). */\nexport interface UserFacingReasonOption {\n code: string;\n label: string;\n description: string;\n}\n\n/** User-facing reason picklist for the guided case-resolution flow — the affected user sees the\n * label for any user-affecting action. Canonical home (ARCH-102): the codes ARE this list's own\n * enumeration, so every client (web, phone, TV, admin app) renders the same options + labels by\n * importing from here. Final user-/legal-facing wording is subject to lawyer review; these are\n * functional defaults. */\nexport const USER_FACING_REASON_OPTIONS: readonly UserFacingReasonOption[] = [\n { code: 'harassment', label: 'Harassment or bullying', description: 'Targeted abuse, threats, or sustained harassment of a person.' },\n { code: 'hate', label: 'Hate speech', description: 'Attacks on people based on a protected characteristic.' },\n { code: 'adult-content', label: 'Explicit / adult content', description: 'Sexual or graphic content not allowed on the platform.' },\n { code: 'violence', label: 'Violence or threats', description: 'Threats of violence, or content glorifying or inciting it.' },\n { code: 'spam', label: 'Spam or scam', description: 'Unsolicited bulk content, deceptive links, or fraud.' },\n { code: 'impersonation', label: 'Impersonation', description: 'Pretending to be another person, brand, or entity.' },\n { code: 'ip', label: 'Intellectual property', description: 'Use of someone else’s work without the right to do so.' },\n { code: 'nonconsensual', label: 'Nonconsensual intimate imagery', description: 'Intimate or sexual imagery shared without the subject’s consent.' },\n { code: 'safety', label: 'Safety violation', description: 'A serious safety violation handled under our safety policies.' },\n { code: 'other', label: 'Other (explain)', description: 'A policy violation not covered above — describe it in the detail box.' },\n] as const;\n\n/** The user-facing label for a reason code (undefined when the code is unknown/absent). */\nexport function userFacingReasonLabel(code: string | undefined): string | undefined {\n return USER_FACING_REASON_OPTIONS.find((o) => o.code === code)?.label;\n}\n\n// --- Rules-surface group titles ---\n// The two rule-GROUP headings for the platform rules content (`Rule.group`\n// 'workProjectType' / 'hallWingType' — see schemas/admin.ts). BOTH the admin rules editor\n// and the public rules page render these, so they are declared once here instead of being\n// restated as literals on each surface (ENG-002). Copy uses the short settled terms Work /\n// Hall / Wing (ARCH-107).\n\nexport const WORK_PROJECT_TYPE_RULE_GROUP_TITLE = 'Work Type Rules';\nexport const HALL_WING_TYPE_RULE_GROUP_TITLE = 'Hall Wing Rules';\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { HallWingType, WorkProjectType } from '../types/content.js';
|
|
2
|
+
import type { AuditionType } from '../types/commissions.js';
|
|
2
3
|
/**
|
|
3
4
|
* Trade professions (20) — role-shaped labels used for guild roles, commission
|
|
4
5
|
* requests, and file-folder permission keys. Display strings are stored/validated
|
|
@@ -47,6 +48,19 @@ export declare const WORK_PROJECT_TYPES: Record<WorkProjectType, {
|
|
|
47
48
|
label: string;
|
|
48
49
|
description: string;
|
|
49
50
|
}>;
|
|
51
|
+
/** Audition type display info. Used on the audition board's type chips/filters and on
|
|
52
|
+
* audition headers. Record-keyed by the canonical AuditionType union, so adding an
|
|
53
|
+
* audition type fails the build here until its label + description exist. */
|
|
54
|
+
export declare const AUDITION_TYPES: Record<AuditionType, {
|
|
55
|
+
label: string;
|
|
56
|
+
description: string;
|
|
57
|
+
}>;
|
|
58
|
+
/** The audition board's "every type" filter sentinel — the ONE declaration (it was
|
|
59
|
+
* previously hand-rolled app-locally). It doubles as the chip's own display label. */
|
|
60
|
+
export declare const AUDITION_TYPE_FILTER_ALL = "All";
|
|
61
|
+
/** Audition-board type-filter state: one canonical audition type, or the ALL sentinel.
|
|
62
|
+
* Filter state derives this instead of being typed `string`. */
|
|
63
|
+
export type AuditionTypeFilter = AuditionType | typeof AUDITION_TYPE_FILTER_ALL;
|
|
50
64
|
/** Sort options shown on the audition feeds, keyed by feed type. */
|
|
51
65
|
export declare const AUDITION_SORT_OPTIONS: {
|
|
52
66
|
readonly default: {
|
|
@@ -118,6 +132,13 @@ export declare const AUDITION_SORT_OPTIONS: {
|
|
|
118
132
|
};
|
|
119
133
|
};
|
|
120
134
|
};
|
|
135
|
+
/** Every sort key any audition feed offers, DERIVED from AUDITION_SORT_OPTIONS above — a new
|
|
136
|
+
* sort option widens the union automatically, so sort state is never typed `string`. */
|
|
137
|
+
export type AuditionSortKey = {
|
|
138
|
+
[F in keyof typeof AUDITION_SORT_OPTIONS]: keyof (typeof AUDITION_SORT_OPTIONS)[F];
|
|
139
|
+
}[keyof typeof AUDITION_SORT_OPTIONS];
|
|
140
|
+
/** The audition board's initial sort selection. Every feed type offers this key. */
|
|
141
|
+
export declare const DEFAULT_AUDITION_SORT: AuditionSortKey;
|
|
121
142
|
/** Sort options shown on the hallLibrary feed. */
|
|
122
143
|
export declare const HALL_LIBRARY_SORT_OPTIONS: Record<string, {
|
|
123
144
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQ5D;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,4TAyB3B,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,2bA8B1B,CAAC;AAEX,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;gFACgF;AAChF,eAAO,MAAM,uBAAuB,EAA0C,CAC5E,iBAAiB,EACjB,GAAG,iBAAiB,EAAE,CACvB,CAAC;AAEF;oFACoF;AACpF,eAAO,MAAM,sBAAsB,EAAyC,CAC1E,eAAe,EACf,GAAG,eAAe,EAAE,CACrB,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAyB3F,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;CAiD/B,CAAC;AAIX,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAaxF,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAa9F,CAAC;AAIF;;6EAE6E;AAC7E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAavF,CAAC;AAEF;sFACsF;AACtF,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;gEACgE;AAChE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,OAAO,wBAAwB,CAAC;AAIhF,oEAAoE;AACpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBxB,CAAC;AAEX;wFACwF;AACxF,MAAM,MAAM,eAAe,GAAG;KAC3B,CAAC,IAAI,MAAM,OAAO,qBAAqB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACnF,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAEtC,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,eAA0B,CAAC;AAE/D,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,MAAM,EACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAK5D,CAAC"}
|
|
@@ -194,6 +194,27 @@ export const WORK_PROJECT_TYPES = {
|
|
|
194
194
|
description: 'Video and TV content',
|
|
195
195
|
},
|
|
196
196
|
};
|
|
197
|
+
// --- Audition Type Display + Board Filter ---
|
|
198
|
+
/** Audition type display info. Used on the audition board's type chips/filters and on
|
|
199
|
+
* audition headers. Record-keyed by the canonical AuditionType union, so adding an
|
|
200
|
+
* audition type fails the build here until its label + description exist. */
|
|
201
|
+
export const AUDITION_TYPES = {
|
|
202
|
+
platformAudition: {
|
|
203
|
+
label: 'Platform',
|
|
204
|
+
description: 'Run by TTT admins to gather community feedback.',
|
|
205
|
+
},
|
|
206
|
+
sponsoredAudition: {
|
|
207
|
+
label: 'Sponsored',
|
|
208
|
+
description: 'Backed by funding — votes decide where the money goes.',
|
|
209
|
+
},
|
|
210
|
+
workAudition: {
|
|
211
|
+
label: 'Work',
|
|
212
|
+
description: "Created by a Work's Guildmates seeking feedback.",
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
/** The audition board's "every type" filter sentinel — the ONE declaration (it was
|
|
216
|
+
* previously hand-rolled app-locally). It doubles as the chip's own display label. */
|
|
217
|
+
export const AUDITION_TYPE_FILTER_ALL = 'All';
|
|
197
218
|
// --- Sort Options ---
|
|
198
219
|
/** Sort options shown on the audition feeds, keyed by feed type. */
|
|
199
220
|
export const AUDITION_SORT_OPTIONS = {
|
|
@@ -218,6 +239,8 @@ export const AUDITION_SORT_OPTIONS = {
|
|
|
218
239
|
lowestStakeShares: { label: 'Lowest Stakes', field: 'stakeSharesOffered', direction: 'asc' },
|
|
219
240
|
},
|
|
220
241
|
};
|
|
242
|
+
/** The audition board's initial sort selection. Every feed type offers this key. */
|
|
243
|
+
export const DEFAULT_AUDITION_SORT = 'newest';
|
|
221
244
|
/** Sort options shown on the hallLibrary feed. */
|
|
222
245
|
export const HALL_LIBRARY_SORT_OPTIONS = {
|
|
223
246
|
newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"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","sourcesContent":["// UI option lists shared between frontend and backend admin tooling.\n\nimport type { HallWingType, WorkProjectType } from '../types/content.js';\n\n// --- WorkProject Guild Standings ---\n// WorkProject guild-standing IDs, labels, and assignment policy live in ../permissions/.\n// Keep guild-standing picker UIs backed by GUILD_STANDINGS instead of a duplicated option map.\n\n// --- Trade & Craft Options ---\n\n/**\n * Trade professions (20) — role-shaped labels used for guild roles, commission\n * requests, and file-folder permission keys. Display strings are stored/validated\n * directly (they double as the enum values in the callable input schemas that derive\n * from this constant). Kept in curated order; not alphabetized.\n */\nexport const TRADE_PROFESSION_OPTIONS = [\n // Performance\n 'Actor',\n 'Voice Actor',\n 'Singer',\n 'Musician',\n 'Dancer & Choreographer',\n // Story\n 'Writer',\n 'Editor',\n 'Director',\n 'Producer',\n // Camera & visual\n 'Cinematographer',\n 'Photographer',\n 'Animator',\n 'Artist',\n 'Graphic Designer',\n 'VFX Artist',\n 'Costume & Makeup Artist',\n 'Set & Prop Designer',\n // Audio\n 'Composer',\n 'Music Producer',\n 'Sound Designer',\n] as const;\n\n/**\n * Craft-skill discipline tags (23). Tags are Firestore doc IDs in the\n * `craftSkillsByTag/{tag}` index, so the STORED value is a machine-safe kebab-case ID\n * (`CRAFT_SKILL_TAG_OPTIONS`) — this is what the wire schema validates and what path\n * builders write. Human-readable labels (with spaces / ampersands) are mapped over the\n * IDs via `CRAFT_SKILL_TAG_LABELS`; render pickers/badges through that map. Kept in\n * curated discipline order (Performance → Writing → Visual → Film → Audio); not sorted.\n */\nexport const CRAFT_SKILL_TAG_OPTIONS = [\n // Performance\n 'acting',\n 'voice-over',\n 'singing',\n 'rapping',\n 'instrumental-performance',\n 'dance-choreography',\n 'stand-up-sketch-comedy',\n // Writing\n 'writing-storytelling',\n 'songwriting',\n 'poetry-spoken-word',\n // Visual arts\n 'drawing-illustration',\n 'painting',\n 'animation',\n 'graphic-design',\n 'photography',\n // Film & video\n 'cinematography-camera',\n 'video-editing',\n 'visual-effects',\n 'directing',\n 'costume-makeup',\n 'set-prop-design',\n // Audio\n 'music-production',\n 'composing-scoring',\n 'sound-design',\n] as const;\n\n/** The canonical tag-ID type — every tags field/param derives from this, never `string`. */\nexport type CraftSkillTagId = (typeof CRAFT_SKILL_TAG_OPTIONS)[number];\n\n/** The canonical trade-profession ID type. */\nexport type TradeProfessionId = (typeof TRADE_PROFESSION_OPTIONS)[number];\n\n/** TRADE_PROFESSION_OPTIONS as a non-empty tuple for `z.enum(...)` consumers — the ONE\n * cast, here beside the declaration (never re-cast locally in schema files). */\nexport const TRADE_PROFESSION_VALUES = TRADE_PROFESSION_OPTIONS as unknown as [\n TradeProfessionId,\n ...TradeProfessionId[],\n];\n\n/** The same allowlist as a non-empty tuple for `z.enum(...)` consumers — the ONE cast,\n * here beside the declaration (schema files import this, never re-cast locally). */\nexport const CRAFT_SKILL_TAG_VALUES = CRAFT_SKILL_TAG_OPTIONS as unknown as [\n CraftSkillTagId,\n ...CraftSkillTagId[],\n];\n\n/** Human display labels for each craft-skill tag ID. Keyed by the machine-safe ID. */\nexport const CRAFT_SKILL_TAG_LABELS: Record<(typeof CRAFT_SKILL_TAG_OPTIONS)[number], string> = {\n 'acting': 'Acting',\n 'voice-over': 'Voice Over',\n 'singing': 'Singing',\n 'rapping': 'Rapping',\n 'instrumental-performance': 'Instrumental Performance',\n 'dance-choreography': 'Dance & Choreography',\n 'stand-up-sketch-comedy': 'Stand-Up & Sketch Comedy',\n 'writing-storytelling': 'Writing & Storytelling',\n 'songwriting': 'Songwriting',\n 'poetry-spoken-word': 'Poetry & Spoken Word',\n 'drawing-illustration': 'Drawing & Illustration',\n 'painting': 'Painting',\n 'animation': 'Animation',\n 'graphic-design': 'Graphic Design',\n 'photography': 'Photography',\n 'cinematography-camera': 'Cinematography & Camera',\n 'video-editing': 'Video Editing',\n 'visual-effects': 'Visual Effects',\n 'directing': 'Directing',\n 'costume-makeup': 'Costume & Makeup',\n 'set-prop-design': 'Set & Prop Design',\n 'music-production': 'Music Production',\n 'composing-scoring': 'Composing & Scoring',\n 'sound-design': 'Sound Design',\n};\n\n// --- WorkProject-Specific Genres ---\n\n/**\n * Genres shown for each workProject type. Curated final lists (kept in the doc's order,\n * not alphabetized). \"Spooky\" (not \"Horror\") is deliberate for V1: the name carries the\n * all-ages ceiling; \"Horror\" is the natural mature sibling if mature content ever ships.\n */\nexport const WORK_PROJECT_SPECIFIC_GENRES = {\n Tales: [\n 'Adventure',\n 'Comedy',\n 'Drama',\n 'Fantasy',\n 'Fairy Tale & Fable',\n 'Historical',\n 'Mystery',\n 'Romance',\n 'Sci-Fi',\n 'Slice of Life',\n 'Spooky',\n 'Thriller',\n ],\n Tunes: [\n 'Audiobook & Spoken Word',\n 'Blues',\n 'Classical',\n 'Country',\n 'Electronic',\n 'Folk',\n 'Hip Hop & Rap',\n 'Jazz',\n 'Metal',\n 'Podcast',\n 'Pop',\n 'R&B & Soul',\n 'Reggae',\n 'Rock',\n 'Soundtrack & Score',\n ],\n Television: [\n 'Action',\n 'Animation',\n 'Comedy',\n 'Documentary',\n 'Drama',\n 'Fantasy',\n 'Kids & Family',\n 'Music Video',\n 'Mystery',\n 'Reality',\n 'Sci-Fi',\n 'Sketch & Variety',\n 'Spooky',\n 'Talk Show',\n 'Thriller',\n ],\n} as const;\n\n// --- HallLibrary / WorkProject Type Display Maps ---\n\n/** HallLibrary type display info. Used in dropdowns and badges. */\nexport const HALL_WING_TYPES: Record<HallWingType, { label: string; description: string }> = {\n entertainment: {\n label: 'Entertainment',\n description: 'Fun and engaging content',\n },\n educational: {\n label: 'Educational',\n description: 'Learning materials and resources',\n },\n newsPolitical: {\n label: 'News/Political',\n description: 'Current events and political content',\n },\n};\n\n/** WorkProject type display info. Used in dropdowns and headers. */\nexport const WORK_PROJECT_TYPES: Record<WorkProjectType, { label: string; description: string }> = {\n Tales: {\n label: 'Tales',\n description: 'Stories and narratives',\n },\n Tunes: {\n label: 'Tunes',\n description: 'Music and audio content',\n },\n Television: {\n label: 'Television',\n description: 'Video and TV content',\n },\n};\n\n// --- Sort Options ---\n\n/** Sort options shown on the audition feeds, keyed by feed type. */\nexport const AUDITION_SORT_OPTIONS = {\n default: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n },\n platformAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n },\n sponsoredAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n highestPrice: { label: 'Highest Price', field: 'sponsoredAuditionAmountUSD', direction: 'desc' },\n lowestPrice: { label: 'Lowest Price', field: 'sponsoredAuditionAmountUSD', direction: 'asc' },\n },\n workAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n highestStakeShares: { label: 'Highest Stakes', field: 'stakeSharesOffered', direction: 'desc' },\n lowestStakeShares: { label: 'Lowest Stakes', field: 'stakeSharesOffered', direction: 'asc' },\n },\n} as const;\n\n/** Sort options shown on the hallLibrary feed. */\nexport const HALL_LIBRARY_SORT_OPTIONS: Record<\n string,\n { label: string; field: string; direction: 'asc' | 'desc' }\n> = {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n oldest: { label: 'Oldest First', field: 'createdOn', direction: 'asc' },\n most_followed: { label: 'Most Followed', field: 'followerCount', direction: 'desc' },\n};\n\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/constants/options.ts"],"names":[],"mappings":"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","sourcesContent":["// UI option lists shared between frontend and backend admin tooling.\n\nimport type { HallWingType, WorkProjectType } from '../types/content.js';\nimport type { AuditionType } from '../types/commissions.js';\n\n// --- WorkProject Guild Standings ---\n// WorkProject guild-standing IDs, labels, and assignment policy live in ../permissions/.\n// Keep guild-standing picker UIs backed by GUILD_STANDINGS instead of a duplicated option map.\n\n// --- Trade & Craft Options ---\n\n/**\n * Trade professions (20) — role-shaped labels used for guild roles, commission\n * requests, and file-folder permission keys. Display strings are stored/validated\n * directly (they double as the enum values in the callable input schemas that derive\n * from this constant). Kept in curated order; not alphabetized.\n */\nexport const TRADE_PROFESSION_OPTIONS = [\n // Performance\n 'Actor',\n 'Voice Actor',\n 'Singer',\n 'Musician',\n 'Dancer & Choreographer',\n // Story\n 'Writer',\n 'Editor',\n 'Director',\n 'Producer',\n // Camera & visual\n 'Cinematographer',\n 'Photographer',\n 'Animator',\n 'Artist',\n 'Graphic Designer',\n 'VFX Artist',\n 'Costume & Makeup Artist',\n 'Set & Prop Designer',\n // Audio\n 'Composer',\n 'Music Producer',\n 'Sound Designer',\n] as const;\n\n/**\n * Craft-skill discipline tags (23). Tags are Firestore doc IDs in the\n * `craftSkillsByTag/{tag}` index, so the STORED value is a machine-safe kebab-case ID\n * (`CRAFT_SKILL_TAG_OPTIONS`) — this is what the wire schema validates and what path\n * builders write. Human-readable labels (with spaces / ampersands) are mapped over the\n * IDs via `CRAFT_SKILL_TAG_LABELS`; render pickers/badges through that map. Kept in\n * curated discipline order (Performance → Writing → Visual → Film → Audio); not sorted.\n */\nexport const CRAFT_SKILL_TAG_OPTIONS = [\n // Performance\n 'acting',\n 'voice-over',\n 'singing',\n 'rapping',\n 'instrumental-performance',\n 'dance-choreography',\n 'stand-up-sketch-comedy',\n // Writing\n 'writing-storytelling',\n 'songwriting',\n 'poetry-spoken-word',\n // Visual arts\n 'drawing-illustration',\n 'painting',\n 'animation',\n 'graphic-design',\n 'photography',\n // Film & video\n 'cinematography-camera',\n 'video-editing',\n 'visual-effects',\n 'directing',\n 'costume-makeup',\n 'set-prop-design',\n // Audio\n 'music-production',\n 'composing-scoring',\n 'sound-design',\n] as const;\n\n/** The canonical tag-ID type — every tags field/param derives from this, never `string`. */\nexport type CraftSkillTagId = (typeof CRAFT_SKILL_TAG_OPTIONS)[number];\n\n/** The canonical trade-profession ID type. */\nexport type TradeProfessionId = (typeof TRADE_PROFESSION_OPTIONS)[number];\n\n/** TRADE_PROFESSION_OPTIONS as a non-empty tuple for `z.enum(...)` consumers — the ONE\n * cast, here beside the declaration (never re-cast locally in schema files). */\nexport const TRADE_PROFESSION_VALUES = TRADE_PROFESSION_OPTIONS as unknown as [\n TradeProfessionId,\n ...TradeProfessionId[],\n];\n\n/** The same allowlist as a non-empty tuple for `z.enum(...)` consumers — the ONE cast,\n * here beside the declaration (schema files import this, never re-cast locally). */\nexport const CRAFT_SKILL_TAG_VALUES = CRAFT_SKILL_TAG_OPTIONS as unknown as [\n CraftSkillTagId,\n ...CraftSkillTagId[],\n];\n\n/** Human display labels for each craft-skill tag ID. Keyed by the machine-safe ID. */\nexport const CRAFT_SKILL_TAG_LABELS: Record<(typeof CRAFT_SKILL_TAG_OPTIONS)[number], string> = {\n 'acting': 'Acting',\n 'voice-over': 'Voice Over',\n 'singing': 'Singing',\n 'rapping': 'Rapping',\n 'instrumental-performance': 'Instrumental Performance',\n 'dance-choreography': 'Dance & Choreography',\n 'stand-up-sketch-comedy': 'Stand-Up & Sketch Comedy',\n 'writing-storytelling': 'Writing & Storytelling',\n 'songwriting': 'Songwriting',\n 'poetry-spoken-word': 'Poetry & Spoken Word',\n 'drawing-illustration': 'Drawing & Illustration',\n 'painting': 'Painting',\n 'animation': 'Animation',\n 'graphic-design': 'Graphic Design',\n 'photography': 'Photography',\n 'cinematography-camera': 'Cinematography & Camera',\n 'video-editing': 'Video Editing',\n 'visual-effects': 'Visual Effects',\n 'directing': 'Directing',\n 'costume-makeup': 'Costume & Makeup',\n 'set-prop-design': 'Set & Prop Design',\n 'music-production': 'Music Production',\n 'composing-scoring': 'Composing & Scoring',\n 'sound-design': 'Sound Design',\n};\n\n// --- WorkProject-Specific Genres ---\n\n/**\n * Genres shown for each workProject type. Curated final lists (kept in the doc's order,\n * not alphabetized). \"Spooky\" (not \"Horror\") is deliberate for V1: the name carries the\n * all-ages ceiling; \"Horror\" is the natural mature sibling if mature content ever ships.\n */\nexport const WORK_PROJECT_SPECIFIC_GENRES = {\n Tales: [\n 'Adventure',\n 'Comedy',\n 'Drama',\n 'Fantasy',\n 'Fairy Tale & Fable',\n 'Historical',\n 'Mystery',\n 'Romance',\n 'Sci-Fi',\n 'Slice of Life',\n 'Spooky',\n 'Thriller',\n ],\n Tunes: [\n 'Audiobook & Spoken Word',\n 'Blues',\n 'Classical',\n 'Country',\n 'Electronic',\n 'Folk',\n 'Hip Hop & Rap',\n 'Jazz',\n 'Metal',\n 'Podcast',\n 'Pop',\n 'R&B & Soul',\n 'Reggae',\n 'Rock',\n 'Soundtrack & Score',\n ],\n Television: [\n 'Action',\n 'Animation',\n 'Comedy',\n 'Documentary',\n 'Drama',\n 'Fantasy',\n 'Kids & Family',\n 'Music Video',\n 'Mystery',\n 'Reality',\n 'Sci-Fi',\n 'Sketch & Variety',\n 'Spooky',\n 'Talk Show',\n 'Thriller',\n ],\n} as const;\n\n// --- HallLibrary / WorkProject Type Display Maps ---\n\n/** HallLibrary type display info. Used in dropdowns and badges. */\nexport const HALL_WING_TYPES: Record<HallWingType, { label: string; description: string }> = {\n entertainment: {\n label: 'Entertainment',\n description: 'Fun and engaging content',\n },\n educational: {\n label: 'Educational',\n description: 'Learning materials and resources',\n },\n newsPolitical: {\n label: 'News/Political',\n description: 'Current events and political content',\n },\n};\n\n/** WorkProject type display info. Used in dropdowns and headers. */\nexport const WORK_PROJECT_TYPES: Record<WorkProjectType, { label: string; description: string }> = {\n Tales: {\n label: 'Tales',\n description: 'Stories and narratives',\n },\n Tunes: {\n label: 'Tunes',\n description: 'Music and audio content',\n },\n Television: {\n label: 'Television',\n description: 'Video and TV content',\n },\n};\n\n// --- Audition Type Display + Board Filter ---\n\n/** Audition type display info. Used on the audition board's type chips/filters and on\n * audition headers. Record-keyed by the canonical AuditionType union, so adding an\n * audition type fails the build here until its label + description exist. */\nexport const AUDITION_TYPES: Record<AuditionType, { label: string; description: string }> = {\n platformAudition: {\n label: 'Platform',\n description: 'Run by TTT admins to gather community feedback.',\n },\n sponsoredAudition: {\n label: 'Sponsored',\n description: 'Backed by funding — votes decide where the money goes.',\n },\n workAudition: {\n label: 'Work',\n description: \"Created by a Work's Guildmates seeking feedback.\",\n },\n};\n\n/** The audition board's \"every type\" filter sentinel — the ONE declaration (it was\n * previously hand-rolled app-locally). It doubles as the chip's own display label. */\nexport const AUDITION_TYPE_FILTER_ALL = 'All';\n\n/** Audition-board type-filter state: one canonical audition type, or the ALL sentinel.\n * Filter state derives this instead of being typed `string`. */\nexport type AuditionTypeFilter = AuditionType | typeof AUDITION_TYPE_FILTER_ALL;\n\n// --- Sort Options ---\n\n/** Sort options shown on the audition feeds, keyed by feed type. */\nexport const AUDITION_SORT_OPTIONS = {\n default: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n },\n platformAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n },\n sponsoredAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n highestPrice: { label: 'Highest Price', field: 'sponsoredAuditionAmountUSD', direction: 'desc' },\n lowestPrice: { label: 'Lowest Price', field: 'sponsoredAuditionAmountUSD', direction: 'asc' },\n },\n workAudition: {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n endingSoon: { label: 'Ending Soon', field: 'openTill', direction: 'asc' },\n highestStakeShares: { label: 'Highest Stakes', field: 'stakeSharesOffered', direction: 'desc' },\n lowestStakeShares: { label: 'Lowest Stakes', field: 'stakeSharesOffered', direction: 'asc' },\n },\n} as const;\n\n/** Every sort key any audition feed offers, DERIVED from AUDITION_SORT_OPTIONS above — a new\n * sort option widens the union automatically, so sort state is never typed `string`. */\nexport type AuditionSortKey = {\n [F in keyof typeof AUDITION_SORT_OPTIONS]: keyof (typeof AUDITION_SORT_OPTIONS)[F];\n}[keyof typeof AUDITION_SORT_OPTIONS];\n\n/** The audition board's initial sort selection. Every feed type offers this key. */\nexport const DEFAULT_AUDITION_SORT: AuditionSortKey = 'newest';\n\n/** Sort options shown on the hallLibrary feed. */\nexport const HALL_LIBRARY_SORT_OPTIONS: Record<\n string,\n { label: string; field: string; direction: 'asc' | 'desc' }\n> = {\n newest: { label: 'Newest First', field: 'createdOn', direction: 'desc' },\n oldest: { label: 'Oldest First', field: 'createdOn', direction: 'asc' },\n most_followed: { label: 'Most Followed', field: 'followerCount', direction: 'desc' },\n};\n\n\n\n"]}
|
|
@@ -90,8 +90,8 @@ export declare const ChatSyncFanoutJobSchema: z.ZodObject<{
|
|
|
90
90
|
revision: z.ZodNumber;
|
|
91
91
|
status: z.ZodEnum<{
|
|
92
92
|
pending: "pending";
|
|
93
|
-
complete: "complete";
|
|
94
93
|
deadLetter: "deadLetter";
|
|
94
|
+
complete: "complete";
|
|
95
95
|
}>;
|
|
96
96
|
attemptCount: z.ZodNumber;
|
|
97
97
|
nextAttemptAt: z.ZodNumber;
|
|
@@ -147,9 +147,9 @@ export declare const ChatAdminActionCommandSchema: z.ZodObject<{
|
|
|
147
147
|
expectedMessageRevision: z.ZodNumber;
|
|
148
148
|
payloadHash: z.ZodString;
|
|
149
149
|
state: z.ZodEnum<{
|
|
150
|
-
failed: "failed";
|
|
151
150
|
applied: "applied";
|
|
152
151
|
deadLetter: "deadLetter";
|
|
152
|
+
failed: "failed";
|
|
153
153
|
queued: "queued";
|
|
154
154
|
delivering: "delivering";
|
|
155
155
|
safetyRepair: "safetyRepair";
|
|
@@ -59,9 +59,9 @@ export declare const CommissionProposalSchema: z.ZodObject<{
|
|
|
59
59
|
createdOn: z.ZodNumber;
|
|
60
60
|
status: z.ZodEnum<{
|
|
61
61
|
accepted: "accepted";
|
|
62
|
-
rejected: "rejected";
|
|
63
62
|
open: "open";
|
|
64
63
|
invited: "invited";
|
|
64
|
+
rejected: "rejected";
|
|
65
65
|
}>;
|
|
66
66
|
guildInviteId: z.ZodOptional<z.ZodString>;
|
|
67
67
|
invitedOn: z.ZodOptional<z.ZodNumber>;
|
|
@@ -87,9 +87,9 @@ export declare const CreateCommissionProposalTextResultSchema: z.ZodObject<{
|
|
|
87
87
|
createdOn: z.ZodNumber;
|
|
88
88
|
status: z.ZodEnum<{
|
|
89
89
|
accepted: "accepted";
|
|
90
|
-
rejected: "rejected";
|
|
91
90
|
open: "open";
|
|
92
91
|
invited: "invited";
|
|
92
|
+
rejected: "rejected";
|
|
93
93
|
}>;
|
|
94
94
|
guildInviteId: z.ZodOptional<z.ZodString>;
|
|
95
95
|
invitedOn: z.ZodOptional<z.ZodNumber>;
|
|
@@ -129,10 +129,10 @@ export declare const AuditionSchema: z.ZodObject<{
|
|
|
129
129
|
curated: "curated";
|
|
130
130
|
}>>;
|
|
131
131
|
curatedAssemblyStatus: z.ZodOptional<z.ZodEnum<{
|
|
132
|
-
failed: "failed";
|
|
133
132
|
closed: "closed";
|
|
134
133
|
assembling: "assembling";
|
|
135
134
|
ready: "ready";
|
|
135
|
+
failed: "failed";
|
|
136
136
|
}>>;
|
|
137
137
|
expectedOptionCount: z.ZodOptional<z.ZodNumber>;
|
|
138
138
|
curatedFailureReason: z.ZodOptional<z.ZodString>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const MediaActivationJobStatusSchema: z.ZodEnum<{
|
|
3
3
|
pending: "pending";
|
|
4
|
-
complete: "complete";
|
|
5
4
|
deadLetter: "deadLetter";
|
|
5
|
+
complete: "complete";
|
|
6
6
|
authorityApplied: "authorityApplied";
|
|
7
7
|
}>;
|
|
8
8
|
export type MediaActivationJobStatus = z.infer<typeof MediaActivationJobStatusSchema>;
|
|
@@ -12,15 +12,13 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
12
12
|
assetId: z.ZodString;
|
|
13
13
|
pendingMediaId: z.ZodString;
|
|
14
14
|
fileOrigin: z.ZodEnum<{
|
|
15
|
-
"commission-proposal": "commission-proposal";
|
|
16
15
|
"profile-picture": "profile-picture";
|
|
17
|
-
"conversation-file": "conversation-file";
|
|
18
|
-
"audition-entry": "audition-entry";
|
|
19
|
-
"work-asset": "work-asset";
|
|
20
16
|
"craft-skill-media": "craft-skill-media";
|
|
21
17
|
squareStreetz: "squareStreetz";
|
|
22
18
|
"commission-posting": "commission-posting";
|
|
19
|
+
"commission-proposal": "commission-proposal";
|
|
23
20
|
"audition-prompt": "audition-prompt";
|
|
21
|
+
"audition-entry": "audition-entry";
|
|
24
22
|
"admin-audition-prompt": "admin-audition-prompt";
|
|
25
23
|
"hallLibrary-cover-square": "hallLibrary-cover-square";
|
|
26
24
|
"hallLibrary-cover-poster": "hallLibrary-cover-poster";
|
|
@@ -31,6 +29,8 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
31
29
|
"tune-track-audio": "tune-track-audio";
|
|
32
30
|
"television-episode-photo": "television-episode-photo";
|
|
33
31
|
"television-episode-video": "television-episode-video";
|
|
32
|
+
"conversation-file": "conversation-file";
|
|
33
|
+
"work-asset": "work-asset";
|
|
34
34
|
"ncii-evidence": "ncii-evidence";
|
|
35
35
|
}>;
|
|
36
36
|
authorityVersion: z.ZodNumber;
|
|
@@ -55,16 +55,16 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
55
55
|
}>;
|
|
56
56
|
ownerType: z.ZodEnum<{
|
|
57
57
|
workProject: "workProject";
|
|
58
|
-
|
|
59
|
-
hallItem: "hallItem";
|
|
58
|
+
userProfile: "userProfile";
|
|
60
59
|
craftSkill: "craftSkill";
|
|
60
|
+
squareStreetzPost: "squareStreetzPost";
|
|
61
|
+
workContent: "workContent";
|
|
62
|
+
hallItem: "hallItem";
|
|
61
63
|
commissionListing: "commissionListing";
|
|
62
64
|
commissionProposal: "commissionProposal";
|
|
65
|
+
audition: "audition";
|
|
63
66
|
auditionEntry: "auditionEntry";
|
|
64
67
|
conversationFile: "conversationFile";
|
|
65
|
-
userProfile: "userProfile";
|
|
66
|
-
squareStreetzPost: "squareStreetzPost";
|
|
67
|
-
workContent: "workContent";
|
|
68
68
|
realmFile: "realmFile";
|
|
69
69
|
safetyEvidence: "safetyEvidence";
|
|
70
70
|
}>;
|
|
@@ -94,10 +94,10 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
94
94
|
updatedAtMs: z.ZodNumber;
|
|
95
95
|
}, z.core.$strict>;
|
|
96
96
|
publicationKind: z.ZodEnum<{
|
|
97
|
-
workAsset: "workAsset";
|
|
98
97
|
conversationFile: "conversationFile";
|
|
99
98
|
profilePicture: "profilePicture";
|
|
100
99
|
squarePostMedia: "squarePostMedia";
|
|
100
|
+
workAsset: "workAsset";
|
|
101
101
|
hallCover: "hallCover";
|
|
102
102
|
realmCover: "realmCover";
|
|
103
103
|
workContentMedia: "workContentMedia";
|
|
@@ -109,8 +109,8 @@ export declare const MediaActivationJobSchema: z.ZodObject<{
|
|
|
109
109
|
publicationArgs: z.ZodUnknown;
|
|
110
110
|
status: z.ZodEnum<{
|
|
111
111
|
pending: "pending";
|
|
112
|
-
complete: "complete";
|
|
113
112
|
deadLetter: "deadLetter";
|
|
113
|
+
complete: "complete";
|
|
114
114
|
authorityApplied: "authorityApplied";
|
|
115
115
|
}>;
|
|
116
116
|
attemptCount: z.ZodNumber;
|
|
@@ -21,16 +21,16 @@ export type MediaServingStatus = z.infer<typeof MediaServingStatusSchema>;
|
|
|
21
21
|
* owned by the destination surface. */
|
|
22
22
|
export declare const MediaAssetOwnerTypeSchema: z.ZodEnum<{
|
|
23
23
|
workProject: "workProject";
|
|
24
|
-
|
|
25
|
-
hallItem: "hallItem";
|
|
24
|
+
userProfile: "userProfile";
|
|
26
25
|
craftSkill: "craftSkill";
|
|
26
|
+
squareStreetzPost: "squareStreetzPost";
|
|
27
|
+
workContent: "workContent";
|
|
28
|
+
hallItem: "hallItem";
|
|
27
29
|
commissionListing: "commissionListing";
|
|
28
30
|
commissionProposal: "commissionProposal";
|
|
31
|
+
audition: "audition";
|
|
29
32
|
auditionEntry: "auditionEntry";
|
|
30
33
|
conversationFile: "conversationFile";
|
|
31
|
-
userProfile: "userProfile";
|
|
32
|
-
squareStreetzPost: "squareStreetzPost";
|
|
33
|
-
workContent: "workContent";
|
|
34
34
|
realmFile: "realmFile";
|
|
35
35
|
safetyEvidence: "safetyEvidence";
|
|
36
36
|
}>;
|
|
@@ -111,16 +111,16 @@ export declare const MediaOriginLineageV1Schema: z.ZodObject<{
|
|
|
111
111
|
}>;
|
|
112
112
|
createdFromOwnerType: z.ZodOptional<z.ZodEnum<{
|
|
113
113
|
workProject: "workProject";
|
|
114
|
-
|
|
115
|
-
hallItem: "hallItem";
|
|
114
|
+
userProfile: "userProfile";
|
|
116
115
|
craftSkill: "craftSkill";
|
|
116
|
+
squareStreetzPost: "squareStreetzPost";
|
|
117
|
+
workContent: "workContent";
|
|
118
|
+
hallItem: "hallItem";
|
|
117
119
|
commissionListing: "commissionListing";
|
|
118
120
|
commissionProposal: "commissionProposal";
|
|
121
|
+
audition: "audition";
|
|
119
122
|
auditionEntry: "auditionEntry";
|
|
120
123
|
conversationFile: "conversationFile";
|
|
121
|
-
userProfile: "userProfile";
|
|
122
|
-
squareStreetzPost: "squareStreetzPost";
|
|
123
|
-
workContent: "workContent";
|
|
124
124
|
realmFile: "realmFile";
|
|
125
125
|
safetyEvidence: "safetyEvidence";
|
|
126
126
|
}>>;
|
|
@@ -128,16 +128,16 @@ export declare const MediaOriginLineageV1Schema: z.ZodObject<{
|
|
|
128
128
|
copyActorUid: z.ZodOptional<z.ZodString>;
|
|
129
129
|
currentOwnerType: z.ZodEnum<{
|
|
130
130
|
workProject: "workProject";
|
|
131
|
-
|
|
132
|
-
hallItem: "hallItem";
|
|
131
|
+
userProfile: "userProfile";
|
|
133
132
|
craftSkill: "craftSkill";
|
|
133
|
+
squareStreetzPost: "squareStreetzPost";
|
|
134
|
+
workContent: "workContent";
|
|
135
|
+
hallItem: "hallItem";
|
|
134
136
|
commissionListing: "commissionListing";
|
|
135
137
|
commissionProposal: "commissionProposal";
|
|
138
|
+
audition: "audition";
|
|
136
139
|
auditionEntry: "auditionEntry";
|
|
137
140
|
conversationFile: "conversationFile";
|
|
138
|
-
userProfile: "userProfile";
|
|
139
|
-
squareStreetzPost: "squareStreetzPost";
|
|
140
|
-
workContent: "workContent";
|
|
141
141
|
realmFile: "realmFile";
|
|
142
142
|
safetyEvidence: "safetyEvidence";
|
|
143
143
|
}>;
|
|
@@ -225,10 +225,10 @@ export type MediaServingScope = z.infer<typeof MediaServingScopeSchema>;
|
|
|
225
225
|
* and performs the idempotent owner write. Every kind is a Firestore-owner adapter.
|
|
226
226
|
*/
|
|
227
227
|
export declare const MediaPublicationKindSchema: z.ZodEnum<{
|
|
228
|
-
workAsset: "workAsset";
|
|
229
228
|
conversationFile: "conversationFile";
|
|
230
229
|
profilePicture: "profilePicture";
|
|
231
230
|
squarePostMedia: "squarePostMedia";
|
|
231
|
+
workAsset: "workAsset";
|
|
232
232
|
hallCover: "hallCover";
|
|
233
233
|
realmCover: "realmCover";
|
|
234
234
|
workContentMedia: "workContentMedia";
|
|
@@ -265,16 +265,16 @@ export declare const MediaServingAuthorityRecordSchema: z.ZodObject<{
|
|
|
265
265
|
}>;
|
|
266
266
|
ownerType: z.ZodEnum<{
|
|
267
267
|
workProject: "workProject";
|
|
268
|
-
|
|
269
|
-
hallItem: "hallItem";
|
|
268
|
+
userProfile: "userProfile";
|
|
270
269
|
craftSkill: "craftSkill";
|
|
270
|
+
squareStreetzPost: "squareStreetzPost";
|
|
271
|
+
workContent: "workContent";
|
|
272
|
+
hallItem: "hallItem";
|
|
271
273
|
commissionListing: "commissionListing";
|
|
272
274
|
commissionProposal: "commissionProposal";
|
|
275
|
+
audition: "audition";
|
|
273
276
|
auditionEntry: "auditionEntry";
|
|
274
277
|
conversationFile: "conversationFile";
|
|
275
|
-
userProfile: "userProfile";
|
|
276
|
-
squareStreetzPost: "squareStreetzPost";
|
|
277
|
-
workContent: "workContent";
|
|
278
278
|
realmFile: "realmFile";
|
|
279
279
|
safetyEvidence: "safetyEvidence";
|
|
280
280
|
}>;
|
|
@@ -312,15 +312,13 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
312
312
|
audio: "audio";
|
|
313
313
|
}>;
|
|
314
314
|
fileOrigin: z.ZodEnum<{
|
|
315
|
-
"commission-proposal": "commission-proposal";
|
|
316
315
|
"profile-picture": "profile-picture";
|
|
317
|
-
"conversation-file": "conversation-file";
|
|
318
|
-
"audition-entry": "audition-entry";
|
|
319
|
-
"work-asset": "work-asset";
|
|
320
316
|
"craft-skill-media": "craft-skill-media";
|
|
321
317
|
squareStreetz: "squareStreetz";
|
|
322
318
|
"commission-posting": "commission-posting";
|
|
319
|
+
"commission-proposal": "commission-proposal";
|
|
323
320
|
"audition-prompt": "audition-prompt";
|
|
321
|
+
"audition-entry": "audition-entry";
|
|
324
322
|
"admin-audition-prompt": "admin-audition-prompt";
|
|
325
323
|
"hallLibrary-cover-square": "hallLibrary-cover-square";
|
|
326
324
|
"hallLibrary-cover-poster": "hallLibrary-cover-poster";
|
|
@@ -331,20 +329,22 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
331
329
|
"tune-track-audio": "tune-track-audio";
|
|
332
330
|
"television-episode-photo": "television-episode-photo";
|
|
333
331
|
"television-episode-video": "television-episode-video";
|
|
332
|
+
"conversation-file": "conversation-file";
|
|
333
|
+
"work-asset": "work-asset";
|
|
334
334
|
"ncii-evidence": "ncii-evidence";
|
|
335
335
|
}>;
|
|
336
336
|
ownerType: z.ZodEnum<{
|
|
337
337
|
workProject: "workProject";
|
|
338
|
-
|
|
339
|
-
hallItem: "hallItem";
|
|
338
|
+
userProfile: "userProfile";
|
|
340
339
|
craftSkill: "craftSkill";
|
|
340
|
+
squareStreetzPost: "squareStreetzPost";
|
|
341
|
+
workContent: "workContent";
|
|
342
|
+
hallItem: "hallItem";
|
|
341
343
|
commissionListing: "commissionListing";
|
|
342
344
|
commissionProposal: "commissionProposal";
|
|
345
|
+
audition: "audition";
|
|
343
346
|
auditionEntry: "auditionEntry";
|
|
344
347
|
conversationFile: "conversationFile";
|
|
345
|
-
userProfile: "userProfile";
|
|
346
|
-
squareStreetzPost: "squareStreetzPost";
|
|
347
|
-
workContent: "workContent";
|
|
348
348
|
realmFile: "realmFile";
|
|
349
349
|
safetyEvidence: "safetyEvidence";
|
|
350
350
|
}>;
|
|
@@ -410,16 +410,16 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
410
410
|
}>;
|
|
411
411
|
createdFromOwnerType: z.ZodOptional<z.ZodEnum<{
|
|
412
412
|
workProject: "workProject";
|
|
413
|
-
|
|
414
|
-
hallItem: "hallItem";
|
|
413
|
+
userProfile: "userProfile";
|
|
415
414
|
craftSkill: "craftSkill";
|
|
415
|
+
squareStreetzPost: "squareStreetzPost";
|
|
416
|
+
workContent: "workContent";
|
|
417
|
+
hallItem: "hallItem";
|
|
416
418
|
commissionListing: "commissionListing";
|
|
417
419
|
commissionProposal: "commissionProposal";
|
|
420
|
+
audition: "audition";
|
|
418
421
|
auditionEntry: "auditionEntry";
|
|
419
422
|
conversationFile: "conversationFile";
|
|
420
|
-
userProfile: "userProfile";
|
|
421
|
-
squareStreetzPost: "squareStreetzPost";
|
|
422
|
-
workContent: "workContent";
|
|
423
423
|
realmFile: "realmFile";
|
|
424
424
|
safetyEvidence: "safetyEvidence";
|
|
425
425
|
}>>;
|
|
@@ -427,16 +427,16 @@ export declare const MediaAssetSchema: z.ZodObject<{
|
|
|
427
427
|
copyActorUid: z.ZodOptional<z.ZodString>;
|
|
428
428
|
currentOwnerType: z.ZodEnum<{
|
|
429
429
|
workProject: "workProject";
|
|
430
|
-
|
|
431
|
-
hallItem: "hallItem";
|
|
430
|
+
userProfile: "userProfile";
|
|
432
431
|
craftSkill: "craftSkill";
|
|
432
|
+
squareStreetzPost: "squareStreetzPost";
|
|
433
|
+
workContent: "workContent";
|
|
434
|
+
hallItem: "hallItem";
|
|
433
435
|
commissionListing: "commissionListing";
|
|
434
436
|
commissionProposal: "commissionProposal";
|
|
437
|
+
audition: "audition";
|
|
435
438
|
auditionEntry: "auditionEntry";
|
|
436
439
|
conversationFile: "conversationFile";
|
|
437
|
-
userProfile: "userProfile";
|
|
438
|
-
squareStreetzPost: "squareStreetzPost";
|
|
439
|
-
workContent: "workContent";
|
|
440
440
|
realmFile: "realmFile";
|
|
441
441
|
safetyEvidence: "safetyEvidence";
|
|
442
442
|
}>;
|
|
@@ -182,14 +182,8 @@ export declare const ChatMessageV1Schema: z.ZodObject<{
|
|
|
182
182
|
threadId: z.ZodOptional<z.ZodString>;
|
|
183
183
|
type: z.ZodOptional<z.ZodString>;
|
|
184
184
|
guildInviteId: z.ZodOptional<z.ZodString>;
|
|
185
|
-
replyTo: z.ZodOptional<z.ZodObject<{
|
|
186
|
-
messageId: z.ZodString;
|
|
187
|
-
senderId: z.ZodString;
|
|
188
|
-
messagePreview: z.ZodString;
|
|
189
|
-
}, z.core.$strict>>;
|
|
190
185
|
isSystemMessage: z.ZodOptional<z.ZodBoolean>;
|
|
191
186
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
192
|
-
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
193
187
|
}, z.core.$strip>;
|
|
194
188
|
export type ChatMessageV1Doc = z.infer<typeof ChatMessageV1Schema>;
|
|
195
189
|
//# sourceMappingURL=messaging.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/doc-schemas/messaging.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAWjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBAwBjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAQtE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAMpF,eAAO,MAAM,6BAA6B;;;;;;;;;;2BASxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,4BAA4B;;;EAAkC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2B9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAWhE,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAwB9B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|