@bash-app/bash-common 30.410.0 → 30.413.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.410.0",
3
+ "version": "30.413.0",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -913,6 +913,10 @@ model BashEvent {
913
913
  timezone String?
914
914
  startDateTime DateTime?
915
915
  endDateTime DateTime?
916
+ /// Wall clock kept when Duplicate clears the calendar day (hour/minute + overnight).
917
+ pendingScheduleClock Json?
918
+ /// When false, public pages and checkout hide sibling series dates and sell only this occurrence.
919
+ advertiseRecurrence Boolean @default(true)
916
920
  waiverUrl String?
917
921
  waiverRequired Boolean @default(false)
918
922
  waiverDisplayType String? @default("inline")
@@ -1122,6 +1126,12 @@ model BashEvent {
1122
1126
  fundingShowPledgesOnMeter Boolean @default(false)
1123
1127
  /// When true on Rsvp-mode events, affirmative RSVPs land in a host approval queue first.
1124
1128
  rsvpRequiresApproval Boolean @default(false)
1129
+ /// Host-set password that gates the public bash page. Null = off. Never returned to clients.
1130
+ eventAccessPasswordHash String?
1131
+ /// HMAC of the host-issued door staff code. Null = off. Never returned to clients.
1132
+ doorAccessCodeDigest String? @unique
1133
+ /// When false, guests cannot start a peer-to-peer ticket transfer. Default on.
1134
+ allowTicketTransfers Boolean @default(true)
1125
1135
  /// Hide when guests RSVP'd on host-facing attendee views.
1126
1136
  hideRsvpTimestamps Boolean @default(false)
1127
1137
  /// Only allow inviting people who share a mutual bash with the host.
@@ -11552,6 +11562,7 @@ enum CreditSourceType {
11552
11562
  BirthdayReward // Annual BashPoints boost on user's birthday
11553
11563
  EventReferralReward // Per-event: attendee referred X friends, earned reward
11554
11564
  RsvpBonus // First positive RSVP per user per event
11565
+ AvailabilitySignal // Once per user per availability window period (anti-farm)
11555
11566
  TicketCheckout // Completing a free or paid checkout per user per event
11556
11567
  AttendanceBonus // Checking in at the event (per ticket)
11557
11568
  PostBeforeEvent // First BashFeed post linked to event before it ends
@@ -132,6 +132,7 @@ describe("status enum value sets", () => {
132
132
  "BirthdayReward",
133
133
  "EventReferralReward",
134
134
  "RsvpBonus",
135
+ "AvailabilitySignal",
135
136
  "TicketCheckout",
136
137
  "AttendanceBonus",
137
138
  "PostBeforeEvent",
@@ -388,6 +388,8 @@ export type DoorConfigPublic = {
388
388
  doorPaymentRail: DoorPaymentRail;
389
389
  /** Host has verified Square + location when rail is or can be Square. */
390
390
  squareLocationReady: boolean;
391
+ /** How this viewer may use the door app. Omitted on older API. */
392
+ viewerDoorAccess?: "none" | "pin" | "staff";
391
393
  };
392
394
 
393
395
  /** Door scanner: ticket QR verification result. */
@@ -610,6 +610,8 @@ type BashEventExtBase = Override<
610
610
  | "postponedAt"
611
611
  | "postponeResponseDeadline"
612
612
  | "seatMap"
613
+ | "eventAccessPasswordHash"
614
+ | "doorAccessCodeDigest"
613
615
  >,
614
616
  {
615
617
  icebreakerPrompt: string | null;
@@ -751,6 +753,20 @@ type BashEventExtBase = Override<
751
753
  * Host opt-in: guests must have a profile photo to RSVP or buy tickets.
752
754
  */
753
755
  requireProfilePhoto: boolean;
756
+ /**
757
+ * True when the host set an event-page password. The hash is never returned.
758
+ */
759
+ eventAccessPasswordRequired?: boolean;
760
+ /**
761
+ * True when the viewer still needs to unlock a password-protected bash.
762
+ */
763
+ eventAccessLocked?: boolean;
764
+ /**
765
+ * Present on server reads. Stripped from JSON responses before they leave the API.
766
+ */
767
+ eventAccessPasswordHash?: string | null;
768
+ /** Present on server reads. Stripped from JSON responses before they leave the API. */
769
+ doorAccessCodeDigest?: string | null;
754
770
  };
755
771
 
756
772
  export type BashEventExt = Omit<
@@ -786,6 +802,17 @@ export type BashEventUpsertWireInput = Override<
786
802
  startDateTime?: Date | string | null;
787
803
  endDateTime?: Date | string | null;
788
804
  ideaExpiresAt?: Date | string | null;
805
+ pendingScheduleClock?:
806
+ | {
807
+ startHour: number;
808
+ startMinute: number;
809
+ endHour: number | null;
810
+ endMinute: number | null;
811
+ endsNextDay: boolean;
812
+ }
813
+ | import("@prisma/client").Prisma.JsonValue
814
+ | null;
815
+ advertiseRecurrence?: boolean;
789
816
  }
790
817
  >,
791
818
  {
@@ -266,6 +266,8 @@ export const BASHPOINTS_CONFIG = {
266
266
 
267
267
  // Recurring engagement rewards (once per user per event)
268
268
  rsvpBonus: 25, // First positive RSVP (Going/Maybe/WantsToGo) per event
269
+ /** Once per window period: Now/Tonight/Custom = UTC day, ThisWeekend = that weekend */
270
+ availabilityWindowBonus: 25,
269
271
  ticketCheckoutBonus: 50, // Claiming or buying a ticket (free or paid) per event
270
272
  attendanceBonus: 150, // Checking in at the event (attending > posting)
271
273
  postBeforeEventBonus: 50, // First BashFeed post linked to event before it ends
@@ -186,6 +186,7 @@ export const CreditSourceType = {
186
186
  BirthdayReward: "BirthdayReward",
187
187
  EventReferralReward: "EventReferralReward",
188
188
  RsvpBonus: "RsvpBonus",
189
+ AvailabilitySignal: "AvailabilitySignal",
189
190
  TicketCheckout: "TicketCheckout",
190
191
  AttendanceBonus: "AttendanceBonus",
191
192
  PostBeforeEvent: "PostBeforeEvent",
@@ -1,6 +1,7 @@
1
1
  import { describe, expect, test } from "@jest/globals";
2
2
  import {
3
3
  BASH_DETAIL_URL,
4
+ BASH_EVENT_WIZARD_GENERATE_SUBSTEP,
4
5
  BASH_EVENT_WIZARD_HOW_MAJOR_STEP,
5
6
  BASH_EVENT_WIZARD_HOW_SUBSTEP,
6
7
  BASH_EVENT_WIZARD_HOW_SUBSTEP_PAYOUT,
@@ -143,13 +144,13 @@ describe("getBashEventWizardPayoutStepPath", () => {
143
144
  });
144
145
 
145
146
  describe("getBashEventWizardStartPath", () => {
146
- test("defaults to the new draft at Templates", () => {
147
+ test("opens a new draft on Generate", () => {
147
148
  expect(getBashEventWizardStartPath()).toBe(
148
- `${BASH_EVENT_WIZARD_PATH_PREFIX}/new/${BASH_EVENT_WIZARD_MAJOR.TEMPLATES}/${BASH_EVENT_WIZARD_TEMPLATES_SUBSTEP.START}`
149
+ `${BASH_EVENT_WIZARD_PATH_PREFIX}/new/${BASH_EVENT_WIZARD_MAJOR.GENERATE}/${BASH_EVENT_WIZARD_GENERATE_SUBSTEP.START}`
149
150
  );
150
151
  });
151
152
 
152
- test("uses an event id when provided", () => {
153
+ test("opens an existing event on Quick bash", () => {
153
154
  expect(getBashEventWizardStartPath("evt-1")).toBe(
154
155
  `${BASH_EVENT_WIZARD_PATH_PREFIX}/evt-1/${BASH_EVENT_WIZARD_MAJOR.TEMPLATES}/${BASH_EVENT_WIZARD_TEMPLATES_SUBSTEP.START}`
155
156
  );
@@ -1,6 +1,7 @@
1
1
  import * as slugifyImport from "slugify";
2
2
  import {
3
3
  BASH_DETAIL_URL,
4
+ BASH_EVENT_WIZARD_GENERATE_SUBSTEP,
4
5
  BASH_EVENT_WIZARD_HOW_MAJOR_STEP,
5
6
  BASH_EVENT_WIZARD_HOW_SUBSTEP_PAYOUT,
6
7
  BASH_EVENT_WIZARD_MAJOR,
@@ -114,8 +115,18 @@ export function getBashEventWizardPayoutStepPath(bashEventId: string): string {
114
115
  );
115
116
  }
116
117
 
117
- /** Create / resume at Getting Started (Templates). Defaults to the `new` draft. */
118
+ /**
119
+ * New drafts open on Generate (flyer upload + AI).
120
+ * An existing event id still opens Quick bash so resume does not dump hosts into the composer.
121
+ */
118
122
  export function getBashEventWizardStartPath(bashEventId = "new"): string {
123
+ if (bashEventId === "new") {
124
+ return getBashEventWizardStepPath(
125
+ bashEventId,
126
+ BASH_EVENT_WIZARD_MAJOR.GENERATE,
127
+ BASH_EVENT_WIZARD_GENERATE_SUBSTEP.START
128
+ );
129
+ }
119
130
  return getBashEventWizardStepPath(
120
131
  bashEventId,
121
132
  BASH_EVENT_WIZARD_MAJOR.TEMPLATES,