@ttt-productions/ttt-core 0.78.20 → 0.78.22
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 +1 -1
- package/dist/constants/admin-labels.js +2 -2
- package/dist/constants/admin-labels.js.map +1 -1
- package/dist/constants/center-stage-rooms.js +1 -1
- package/dist/constants/center-stage-rooms.js.map +1 -1
- package/dist/constants/company-mascots.js +1 -1
- package/dist/constants/company-mascots.js.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/media-processing.d.ts +13 -0
- package/dist/constants/media-processing.d.ts.map +1 -0
- package/dist/constants/media-processing.js +18 -0
- package/dist/constants/media-processing.js.map +1 -0
- package/dist/constants/publish-attestations.js +1 -1
- package/dist/constants/publish-attestations.js.map +1 -1
- package/dist/constants/safety-confirmation-phrases.js +1 -1
- package/dist/constants/safety-confirmation-phrases.js.map +1 -1
- package/dist/doc-schemas/account-deletion.js +1 -1
- package/dist/doc-schemas/account-deletion.js.map +1 -1
- package/dist/doc-schemas/moderation.d.ts +2 -0
- package/dist/doc-schemas/moderation.d.ts.map +1 -1
- package/dist/doc-schemas/registry.d.ts +18 -0
- package/dist/doc-schemas/registry.d.ts.map +1 -1
- package/dist/doc-schemas/registry.js +1 -1
- package/dist/doc-schemas/registry.js.map +1 -1
- package/dist/doc-schemas/safety/age.js +1 -1
- package/dist/doc-schemas/safety/age.js.map +1 -1
- package/dist/doc-schemas/safety/evidence.js +1 -1
- package/dist/doc-schemas/safety/evidence.js.map +1 -1
- package/dist/doc-schemas/safety/foundation.d.ts +3 -3
- package/dist/doc-schemas/safety/foundation.d.ts.map +1 -1
- package/dist/doc-schemas/safety/foundation.js +3 -3
- package/dist/doc-schemas/safety/foundation.js.map +1 -1
- package/dist/doc-schemas/square-announcement-jobs.d.ts +1 -1
- package/dist/doc-schemas/square-announcement-jobs.js +2 -2
- package/dist/doc-schemas/square-announcement-jobs.js.map +1 -1
- package/dist/media/pending-media.d.ts +32 -0
- package/dist/media/pending-media.d.ts.map +1 -1
- package/dist/media/target-info.js +1 -1
- package/dist/media/target-info.js.map +1 -1
- package/dist/paths/collections.js +2 -2
- package/dist/paths/collections.js.map +1 -1
- package/dist/paths/path-builders.js +1 -1
- package/dist/paths/path-builders.js.map +1 -1
- package/dist/paths/related-ids.js +1 -1
- package/dist/paths/related-ids.js.map +1 -1
- package/dist/safety/active-safety-case-alert.js +1 -1
- package/dist/safety/active-safety-case-alert.js.map +1 -1
- package/dist/safety/ncii-intake-derivations.js +1 -1
- package/dist/safety/ncii-intake-derivations.js.map +1 -1
- package/dist/safety/resource-keys.js +1 -1
- package/dist/safety/resource-keys.js.map +1 -1
- package/dist/schemas/chat.js +1 -1
- package/dist/schemas/chat.js.map +1 -1
- package/dist/schemas/craft-skills.js +1 -1
- package/dist/schemas/craft-skills.js.map +1 -1
- package/dist/schemas/hall-library.js +1 -1
- package/dist/schemas/hall-library.js.map +1 -1
- package/dist/schemas/notification.js +1 -1
- package/dist/schemas/notification.js.map +1 -1
- package/dist/schemas/safety.d.ts +1 -1
- package/dist/schemas/safety.js +1 -1
- package/dist/schemas/safety.js.map +1 -1
- package/dist/types/admin-ops.d.ts +1 -1
- package/dist/types/admin-ops.d.ts.map +1 -1
- package/dist/types/admin-ops.js +1 -1
- package/dist/types/admin-ops.js.map +1 -1
- package/dist/types/admin-users.js +1 -1
- package/dist/types/admin-users.js.map +1 -1
- package/dist/types/social.d.ts +1 -1
- package/dist/types/social.js.map +1 -1
- package/dist/upload-variables/create-admin-audition-variables.js +1 -1
- package/dist/upload-variables/create-admin-audition-variables.js.map +1 -1
- package/dist/upload-variables/create-work-project-audition-variables.js +1 -1
- package/dist/upload-variables/create-work-project-audition-variables.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-ops.js","sourceRoot":"","sources":["../../src/types/admin-ops.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"admin-ops.js","sourceRoot":"","sources":["../../src/types/admin-ops.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAC9E,iFAAiF","sourcesContent":["// Admin ops-dashboard callable return shapes — cross-boundary contracts (backend\n// builds them, frontend renders them), so they live HERE per the Cross-Boundary\n// Type Invariant. Consolidated 2026-07-13 from the former \"intentional LOCAL DTO\"\n// in functions/src/admin/getOpsStatus.ts + its structurally-matching frontend\n// re-declaration (publish-avoidance rationale — auto-reject; ARCH-102 extended).\n\nimport type { PledgePaymentTotals } from './payments.js';\nimport type { DeadLetterCollection } from '../schemas/admin.js';\n\n/** Trust & Safety SLA-clock + active-case snapshot for the Mission Control landing (§A8).\n * Counts are point-in-time; the per-lane earliest-deadline epochs (ms) are handed over raw so\n * the countdown ticks CLIENT-side — the server holds no live timer. All fields optional so an\n * older client still type-checks; the earliest-* epochs are additionally absent when a lane has\n * no armed clock. */\nexport interface OpsSafetyClocks {\n /** `safetySlaMonitors` rows with status == 'armed' (an obligation clock still running). */\n armedMonitors: number;\n /** `safetySlaMonitors` rows with status == 'overdue' (a breached SLA obligation). */\n overdueMonitors: number;\n /** Open CSAM (childSafety) cases. */\n activeChildSafetyCases: number;\n /** Open NCII cases. */\n activeNciiCases: number;\n /** Open statutory TAKE IT DOWN requests (`takeItDownRequests`). */\n activeTakeItDownRequests: number;\n /** Earliest armed `reviewDue` monitor deadline across all lanes (epoch ms). */\n earliestReviewDueAt?: number;\n /** Earliest armed CSAM `photoDnaContract` (72h match-reporting) deadline (epoch ms). */\n earliestPhotoDnaContractAt?: number;\n /** Earliest armed NCII / TAKE IT DOWN `nciiRemovalDeadline` (48h statutory removal) deadline\n * (epoch ms). */\n earliestNciiRemovalDeadlineAt?: number;\n}\n\n/** Backend-machinery health for the Mission Control landing: dead-letter depth, stuck async\n * lanes, failed media, and the global safety-sweep dead-man heartbeat. Numbers/epochs only. */\nexport interface OpsBrokenMachinery {\n /** Total parked dead-letter rows across every ledger (see `getDeadLetters`). */\n deadLetterTotal: number;\n /** Dead-lettered chat-sync fanout jobs (`chatSyncFanoutJobs`). */\n deadLetteredFanoutJobs: number;\n /** Stuck hall-sub-item edge-sync rows (`hallSubItemEdgeSync`). */\n stuckEdgeSyncCount: number;\n /** Uncleared failed pendingMedia (mirrors `media.failed`, surfaced in the machinery lane). */\n failedMediaCount: number;\n /** `safetyMonitorHeartbeat/global.lastRunAt` (epoch ms) of the scheduled monitor sweep.\n * Absent if the heartbeat has never stamped. Display only — do NOT judge staleness from this\n * client-side: use `safetyMonitorHeartbeatStale`, which the backend derives from the SAME\n * threshold its dead-man checker alarms on (ARCH-102: one declaration, enforcement derives). */\n safetyMonitorHeartbeatLastRunAt?: number;\n /** True when the sweep's heartbeat is older than the backend's own dead-man threshold — i.e. the\n * scheduled safety monitors may not be running. Derived server-side so the operator chip and the\n * real alarm can never disagree. Absent when an older backend does not project it. */\n safetyMonitorHeartbeatStale?: boolean;\n}\n\n/** The `getOpsStatus` callable's return shape (read-only ops snapshot). */\nexport interface OpsStatus {\n generatedAt: number;\n /** pendingMedia processing pipeline depth + uncleared failures. */\n media: { pending: number; processing: number; failed: number };\n /** Open admin work-queue tasks by type (status == 'pending'). `opsAnomalies` is the\n * combined stake-share + pledge-ledger + pledge-payment-repair integrity lane depth.\n * `refundRequests` and `disputes` are additive (optional) money-ops queue counts — an\n * older backend that does not project them simply omits them. */\n adminQueue: {\n libraryReviews: number;\n reports: number;\n appeals: number;\n dispatches: number;\n opsAnomalies: number;\n /** Pending user-initiated refund requests (the `payment.pledgeRefundRequested` lane). */\n refundRequests?: number;\n /** Open Stripe disputes / chargebacks awaiting resolution. */\n disputes?: number;\n };\n /** userProfiles created in the last 24h. */\n signupsLast24h: number;\n /** auditEvents with result == 'failure' in the last 24h (failed sensitive actions). */\n actionFailuresLast24h: number;\n /** auditEvents of type 'payment.pledgePaymentFailed' in the last 24h. */\n paymentFailuresLast24h: number;\n /** All-time pledge totals (live Firestore aggregation over pledgePayments; cents). */\n pledge: PledgePaymentTotals;\n /** Trust & Safety SLA-clock + active-case snapshot (§A8). Additive — an older backend that\n * does not project it omits the block entirely. */\n safetyClocks?: OpsSafetyClocks;\n /** Backend-machinery health snapshot. Additive — omitted by an older backend. */\n brokenMachinery?: OpsBrokenMachinery;\n}\n\n/** One parked row in the `getDeadLetters` operator view — a normalized projection\n * over the heterogeneous ledger shapes (the callable maps each ledger's own\n * status/error/timestamp fields onto this). */\nexport interface DeadLetterRow {\n collection: DeadLetterCollection;\n /** Flat doc id, or the full nested document path for hallSubItemEdgeSync rows. */\n docId: string;\n deadLetteredAt: number | null;\n lastError: string | null;\n attemptCount: number | null;\n}\n\n/** The `getDeadLetters` callable's return shape. */\nexport interface GetDeadLettersResult {\n generatedAt: number;\n rows: DeadLetterRow[];\n /** True when any ledger hit the row cap — more parked rows exist than shown. */\n truncated: boolean;\n}\n"]}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
// builds them, the admin User Management surface renders them), so they live HERE per the
|
|
3
3
|
// Cross-Boundary Type Invariant (same rationale as admin-ops.ts). The account status tier
|
|
4
4
|
// reuses the ONE canonical UserAccountStatus union (doc-schemas/user.ts) — never a
|
|
5
|
-
// re-declared 'active' | 'suspended' | 'banned' literal (
|
|
5
|
+
// re-declared 'active' | 'suspended' | 'banned' literal (ARCH-102).
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=admin-users.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-users.js","sourceRoot":"","sources":["../../src/types/admin-users.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,0FAA0F;AAC1F,0FAA0F;AAC1F,mFAAmF;AACnF,
|
|
1
|
+
{"version":3,"file":"admin-users.js","sourceRoot":"","sources":["../../src/types/admin-users.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,0FAA0F;AAC1F,0FAA0F;AAC1F,mFAAmF;AACnF,oEAAoE","sourcesContent":["// Admin user-directory callable RESULT shapes — cross-boundary contracts (the backend\n// builds them, the admin User Management surface renders them), so they live HERE per the\n// Cross-Boundary Type Invariant (same rationale as admin-ops.ts). The account status tier\n// reuses the ONE canonical UserAccountStatus union (doc-schemas/user.ts) — never a\n// re-declared 'active' | 'suspended' | 'banned' literal (ARCH-102).\n\nimport type { UserAccountStatus } from '../doc-schemas/user.js';\n\n/** One row of the admin display-name prefix search (`searchPublicUsers`). The status tier is\n * resolved server-side from the authoritative `userProfiles/{uid}` doc — `publicUsers` only\n * mirrors a derived `disabled` boolean, not the active/suspended/banned tier. */\nexport interface PublicUserSearchResult {\n uid: string;\n displayName: string;\n status: UserAccountStatus;\n}\n\n/** The `lookupUserByEmailOrUid` callable's result — an EXACT single-account match a solo full\n * admin resolves by email, uid, or display name. Carries the owner-only email (an admin-gated\n * read of the account's privateData) and the admin-claim flag alongside the status tier. */\nexport interface AdminUserLookupResult {\n uid: string;\n displayName: string;\n email: string;\n status: UserAccountStatus;\n isAdmin?: boolean;\n}\n"]}
|
package/dist/types/social.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { WorkProjectType } from './content.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Serializable subset of SquareStreetz post creation payload.
|
|
11
11
|
* Frontend extends this with `mediaFile?: File` locally.
|
|
12
|
-
* Every union/allowlist field derives from its ONE canonical declaration (
|
|
12
|
+
* Every union/allowlist field derives from its ONE canonical declaration (ARCH-102) —
|
|
13
13
|
* never an inline literal union.
|
|
14
14
|
*/
|
|
15
15
|
export type SquareStreetzPostPayload = {
|
package/dist/types/social.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/types/social.ts"],"names":[],"mappings":"","sourcesContent":["// Social types: SquareStreetz feed, Mentions, Follows. (Pledge-payment types live in\n// ../types/payments.ts.)\nexport type { Mention, MentionType } from '../media/atoms.js';\nimport type { Mention } from '../media/atoms.js';\nimport type { CraftSkillKind, CraftSkillSourceReference } from '../doc-schemas/user.js';\nimport type { ContentMediaKind } from '../doc-schemas/media-assets.js';\nimport type { MediaType, AuditionAnnounceKind } from '../doc-schemas/social.js';\nimport type { HallSubItemType } from '../doc-schemas/content.js';\nimport type { CraftSkillTagId } from '../constants/options.js';\nimport type { WorkProjectType } from './content.js';\n\n// --- SquareStreetz Social Media ---\n\n// SquareStreetz post/mention-history/follow shapes are re-exported from\n// ../doc-schemas/social.ts below (single source of truth).\n\n/**\n * Serializable subset of SquareStreetz post creation payload.\n * Frontend extends this with `mediaFile?: File` locally.\n * Every union/allowlist field derives from its ONE canonical declaration (
|
|
1
|
+
{"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/types/social.ts"],"names":[],"mappings":"","sourcesContent":["// Social types: SquareStreetz feed, Mentions, Follows. (Pledge-payment types live in\n// ../types/payments.ts.)\nexport type { Mention, MentionType } from '../media/atoms.js';\nimport type { Mention } from '../media/atoms.js';\nimport type { CraftSkillKind, CraftSkillSourceReference } from '../doc-schemas/user.js';\nimport type { ContentMediaKind } from '../doc-schemas/media-assets.js';\nimport type { MediaType, AuditionAnnounceKind } from '../doc-schemas/social.js';\nimport type { HallSubItemType } from '../doc-schemas/content.js';\nimport type { CraftSkillTagId } from '../constants/options.js';\nimport type { WorkProjectType } from './content.js';\n\n// --- SquareStreetz Social Media ---\n\n// SquareStreetz post/mention-history/follow shapes are re-exported from\n// ../doc-schemas/social.ts below (single source of truth).\n\n/**\n * Serializable subset of SquareStreetz post creation payload.\n * Frontend extends this with `mediaFile?: File` locally.\n * Every union/allowlist field derives from its ONE canonical declaration (ARCH-102) —\n * never an inline literal union.\n */\nexport type SquareStreetzPostPayload = {\n userId: string;\n mentions?: Mention[];\n newMediaAssetId?: string;\n // `tags` (canonical discipline-tag ids), `kind` (attestation kind), and `source`\n // (the mimicOnTtt original — a user/workProject reference, rendered as a resolvable\n // mention link) let the NEW_CRAFT_SKILL Streetz announcement describe the craft\n // WITHOUT the client-supplied file name (`name` = originalFileName — never put a\n // file name in public post content).\n craftSkill?: {\n id: string;\n name: string;\n mediaAssetId: string;\n type: ContentMediaKind;\n tags?: CraftSkillTagId[];\n kind?: CraftSkillKind;\n source?: CraftSkillSourceReference;\n };\n craftSkillId?: string;\n workProjectTitle?: string;\n workProjectId?: string;\n workProjectType?: WorkProjectType;\n workProjectDescription?: string;\n workRealmId?: string;\n workRealmTitle?: string;\n hallItemId?: string;\n hallItemTitle?: string;\n hallSubItemType?: HallSubItemType;\n content?: string;\n mediaAssetId?: string;\n mediaType?: MediaType;\n createdAt?: number;\n auditionId?: string;\n commissionListingId?: string;\n auditionAnnounceKind?: AuditionAnnounceKind;\n};\n\nexport type {\n SquareStreetzPostType,\n SquareStreetzPost,\n MentionHistoryItem,\n MentionHistoryDocument,\n FollowEdge,\n FollowCounter,\n} from '../doc-schemas/social.js';\n"]}
|
|
@@ -9,7 +9,7 @@ export const CreateAdminAuditionVariablesSchema = z.object({
|
|
|
9
9
|
openTill: z.string().min(1),
|
|
10
10
|
sponsoredAuditionAmountUSD: z.number().nonnegative().finite().max(MAX_SPONSORED_AUDITION_AMOUNT_USD).optional(),
|
|
11
11
|
// Curated vs open (default 'open' when absent). 'curated' → the admin posts the option videos and
|
|
12
|
-
// users may ONLY vote. Must live on the variables (
|
|
12
|
+
// users may ONLY vote. Must live on the variables (MEDIA-005 strict-parse), not targetInfo.
|
|
13
13
|
mode: z.enum(['open', 'curated']).optional(),
|
|
14
14
|
// Curated only: the fixed number of option videos (2..8) uploaded as one atomic batch. Required by
|
|
15
15
|
// the callable when mode === 'curated'; ignored for open auditions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-admin-audition-variables.js","sourceRoot":"","sources":["../../src/upload-variables/create-admin-audition-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE;IAC/G,kGAAkG;IAClG,
|
|
1
|
+
{"version":3,"file":"create-admin-audition-variables.js","sourceRoot":"","sources":["../../src/upload-variables/create-admin-audition-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,QAAQ,EAAE;IAC/G,kGAAkG;IAClG,4FAA4F;IAC5F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,mGAAmG;IACnG,oEAAoE;IACpE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;IACpH,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { onProgressSchema } from './on-progress.js';\nimport {\n MAX_AUDITION_TITLE_LENGTH,\n MAX_AUDITION_DESCRIPTION_LENGTH,\n MAX_SPONSORED_AUDITION_AMOUNT_USD,\n MIN_CURATED_AUDITION_OPTIONS,\n MAX_CURATED_AUDITION_OPTIONS,\n} from '../constants/business.js';\n\n\nexport const CreateAdminAuditionVariablesSchema = z.object({\n type: z.enum(['platformAudition', 'sponsoredAudition']),\n title: z.string().min(1).max(MAX_AUDITION_TITLE_LENGTH),\n description: z.string().max(MAX_AUDITION_DESCRIPTION_LENGTH),\n videoFile: z.instanceof(File).or(z.instanceof(Blob)),\n openTill: z.string().min(1),\n sponsoredAuditionAmountUSD: z.number().nonnegative().finite().max(MAX_SPONSORED_AUDITION_AMOUNT_USD).optional(),\n // Curated vs open (default 'open' when absent). 'curated' → the admin posts the option videos and\n // users may ONLY vote. Must live on the variables (MEDIA-005 strict-parse), not targetInfo.\n mode: z.enum(['open', 'curated']).optional(),\n // Curated only: the fixed number of option videos (2..8) uploaded as one atomic batch. Required by\n // the callable when mode === 'curated'; ignored for open auditions.\n expectedOptionCount: z.number().int().min(MIN_CURATED_AUDITION_OPTIONS).max(MAX_CURATED_AUDITION_OPTIONS).optional(),\n onProgress: onProgressSchema,\n signal: z.instanceof(AbortSignal).optional(),\n}).strict();\nexport type CreateAdminAuditionVariables = z.infer<typeof CreateAdminAuditionVariablesSchema>;\n\n"]}
|
|
@@ -10,7 +10,7 @@ export const CreateWorkProjectAuditionVariablesSchema = z.object({
|
|
|
10
10
|
stakeSharesOffered: z.number().int().min(0).max(MAX_WORK_PROJECT_STAKE_SHARES).optional(),
|
|
11
11
|
// Curated vs open (default 'open' when absent). 'curated' → the creating work posts the option
|
|
12
12
|
// videos itself and users may ONLY vote. The strict schema is why this MUST live on the variables
|
|
13
|
-
// (
|
|
13
|
+
// (MEDIA-005: the hook parses variables strictly, so the mode cannot ride in targetInfo).
|
|
14
14
|
mode: z.enum(['open', 'curated']).optional(),
|
|
15
15
|
// Curated only: the fixed number of creator option videos (2..8) being uploaded as one batch, so
|
|
16
16
|
// the server knows when the whole atomic batch has landed. Required by the callable when mode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-work-project-audition-variables.js","sourceRoot":"","sources":["../../src/upload-variables/create-work-project-audition-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IACzF,+FAA+F;IAC/F,kGAAkG;IAClG,
|
|
1
|
+
{"version":3,"file":"create-work-project-audition-variables.js","sourceRoot":"","sources":["../../src/upload-variables/create-work-project-audition-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IACzF,+FAA+F;IAC/F,kGAAkG;IAClG,0FAA0F;IAC1F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,iGAAiG;IACjG,8FAA8F;IAC9F,6CAA6C;IAC7C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;IACpH,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC,MAAM,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { onProgressSchema } from './on-progress.js';\nimport {\n MAX_AUDITION_TITLE_LENGTH,\n MAX_AUDITION_DESCRIPTION_LENGTH,\n MAX_WORK_PROJECT_STAKE_SHARES,\n MIN_CURATED_AUDITION_OPTIONS,\n MAX_CURATED_AUDITION_OPTIONS,\n} from '../constants/business.js';\n\n\nexport const CreateWorkProjectAuditionVariablesSchema = z.object({\n title: z.string().min(1).max(MAX_AUDITION_TITLE_LENGTH),\n description: z.string().max(MAX_AUDITION_DESCRIPTION_LENGTH),\n videoFile: z.instanceof(File).or(z.instanceof(Blob)),\n openTill: z.string().min(1),\n workProjectId: z.string().min(1),\n stakeSharesOffered: z.number().int().min(0).max(MAX_WORK_PROJECT_STAKE_SHARES).optional(),\n // Curated vs open (default 'open' when absent). 'curated' → the creating work posts the option\n // videos itself and users may ONLY vote. The strict schema is why this MUST live on the variables\n // (MEDIA-005: the hook parses variables strictly, so the mode cannot ride in targetInfo).\n mode: z.enum(['open', 'curated']).optional(),\n // Curated only: the fixed number of creator option videos (2..8) being uploaded as one batch, so\n // the server knows when the whole atomic batch has landed. Required by the callable when mode\n // === 'curated'; ignored for open auditions.\n expectedOptionCount: z.number().int().min(MIN_CURATED_AUDITION_OPTIONS).max(MAX_CURATED_AUDITION_OPTIONS).optional(),\n onProgress: onProgressSchema,\n signal: z.instanceof(AbortSignal).optional(),\n}).strict();\nexport type CreateWorkProjectAuditionVariables = z.infer<typeof CreateWorkProjectAuditionVariablesSchema>;\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/ttt-core",
|
|
3
|
-
"version": "0.78.
|
|
3
|
+
"version": "0.78.22",
|
|
4
4
|
"description": "Core types, Firestore path constants, and shared constants for TTT Productions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"@ttt-productions/audit-core": "^0.7.1",
|
|
117
117
|
"@ttt-productions/chat-schemas": "^0.9.3",
|
|
118
118
|
"@ttt-productions/edge-protocol-core": "^0.1.4",
|
|
119
|
-
"@ttt-productions/media-schemas": "^0.14.
|
|
119
|
+
"@ttt-productions/media-schemas": "^0.14.3",
|
|
120
120
|
"@ttt-productions/notification-core": "^0.15.4",
|
|
121
121
|
"@ttt-productions/report-core": "^0.16.6",
|
|
122
122
|
"zod": "^4.4.3"
|