@bash-app/bash-common 30.329.0 → 30.330.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=locationShare.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationShare.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/locationShare.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { computeLocationShareExpiresAt, isLocationShareCrewMember, isLocationShareEventParticipant, isLocationShareLiveBookingStatus, isLocationShareLiveTaskStatus, LOCATION_SHARE_BOOKING_STATUSES, LOCATION_SHARE_DEFAULT_TTL_MS, LOCATION_SHARE_GRACE_MS, LOCATION_SHARE_START_FALLBACK_MS, LOCATION_SHARE_TASK_STATUSES, } from "../locationShare.js";
2
+ describe("locationShare helpers", () => {
3
+ describe("isLocationShareCrewMember", () => {
4
+ it("allows the creator", () => {
5
+ expect(isLocationShareCrewMember("u1", { creatorId: "u1" }, null)).toBe(true);
6
+ });
7
+ it("allows organizers and co-hosts", () => {
8
+ expect(isLocationShareCrewMember("u2", { creatorId: "u1" }, {
9
+ isOrganizer: true,
10
+ })).toBe(true);
11
+ expect(isLocationShareCrewMember("u3", { creatorId: "u1" }, {
12
+ isCoHost: true,
13
+ })).toBe(true);
14
+ });
15
+ it("rejects attendees", () => {
16
+ expect(isLocationShareCrewMember("u4", { creatorId: "u1" }, {
17
+ isOrganizer: false,
18
+ isCoHost: false,
19
+ })).toBe(false);
20
+ expect(isLocationShareCrewMember(undefined, { creatorId: "u1" })).toBe(false);
21
+ });
22
+ });
23
+ describe("isLocationShareEventParticipant", () => {
24
+ it("allows live task assignees, hired providers, and promoters", () => {
25
+ expect(isLocationShareEventParticipant("u2", { creatorId: "u1" }, {
26
+ hasLiveTaskAssignment: true,
27
+ })).toBe(true);
28
+ expect(isLocationShareEventParticipant("u3", { creatorId: "u1" }, {
29
+ hasLiveHiredBooking: true,
30
+ })).toBe(true);
31
+ expect(isLocationShareEventParticipant("u5", { creatorId: "u1" }, {
32
+ hasActivePromoterRole: true,
33
+ })).toBe(true);
34
+ });
35
+ it("rejects when no crew and no live role", () => {
36
+ expect(isLocationShareEventParticipant("u4", { creatorId: "u1" }, {})).toBe(false);
37
+ });
38
+ });
39
+ describe("status allow-lists", () => {
40
+ it("includes live task and booking statuses", () => {
41
+ expect(LOCATION_SHARE_TASK_STATUSES).toEqual([
42
+ "Accepted",
43
+ "Assigned",
44
+ "InProgress",
45
+ ]);
46
+ expect(LOCATION_SHARE_BOOKING_STATUSES).toEqual([
47
+ "Approved",
48
+ "Confirmed",
49
+ ]);
50
+ expect(isLocationShareLiveTaskStatus("InProgress")).toBe(true);
51
+ expect(isLocationShareLiveTaskStatus("Completed")).toBe(false);
52
+ expect(isLocationShareLiveBookingStatus("Approved")).toBe(true);
53
+ expect(isLocationShareLiveBookingStatus("Pending")).toBe(false);
54
+ });
55
+ });
56
+ describe("computeLocationShareExpiresAt", () => {
57
+ const now = new Date("2026-07-23T12:00:00.000Z");
58
+ it("uses end + grace when end exists", () => {
59
+ const end = new Date("2026-07-23T18:00:00.000Z");
60
+ const expires = computeLocationShareExpiresAt({ endDateTime: end, startDateTime: null }, now);
61
+ expect(expires.getTime()).toBe(end.getTime() + LOCATION_SHARE_GRACE_MS);
62
+ });
63
+ it("falls back to start + 12h", () => {
64
+ const start = new Date("2026-07-23T14:00:00.000Z");
65
+ const expires = computeLocationShareExpiresAt({ startDateTime: start, endDateTime: null }, now);
66
+ expect(expires.getTime()).toBe(start.getTime() + LOCATION_SHARE_START_FALLBACK_MS);
67
+ });
68
+ it("falls back to now + 24h", () => {
69
+ const expires = computeLocationShareExpiresAt({}, now);
70
+ expect(expires.getTime()).toBe(now.getTime() + LOCATION_SHARE_DEFAULT_TTL_MS);
71
+ });
72
+ });
73
+ });
74
+ //# sourceMappingURL=locationShare.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationShare.test.js","sourceRoot":"","sources":["../../src/__tests__/locationShare.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -38,6 +38,7 @@ export * from "./hostCrmConstants.js";
38
38
  export * from "./bashEventCancellationPolicy.js";
39
39
  export * from "./userReportTypes.js";
40
40
  export * from "./mirroredPrismaEnums.js";
41
+ export * from "./locationShare.js";
41
42
  export * from "./utils/featuredDiscoveryGeo.js";
42
43
  export * from "./utils/organizationEntitlements.js";
43
44
  export * from "./serviceTypeLabels.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -38,6 +38,7 @@ export * from "./hostCrmConstants.js";
38
38
  export * from "./bashEventCancellationPolicy.js";
39
39
  export * from "./userReportTypes.js";
40
40
  export * from "./mirroredPrismaEnums.js";
41
+ export * from "./locationShare.js";
41
42
  export * from "./utils/featuredDiscoveryGeo.js";
42
43
  export * from "./utils/organizationEntitlements.js";
43
44
  export * from "./serviceTypeLabels.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Event location sharing — consented near-live pins for bash participants
3
+ * (host / organizers / co-hosts, live task assignees, hired providers).
4
+ */
5
+ import type { Prisma } from "@prisma/client";
6
+ /** Grace after event end before an Active session auto-expires. */
7
+ export declare const LOCATION_SHARE_GRACE_MS: number;
8
+ /** Fallback TTL when the bash has no start/end times. */
9
+ export declare const LOCATION_SHARE_DEFAULT_TTL_MS: number;
10
+ /** Fallback window after start when end is missing. */
11
+ export declare const LOCATION_SHARE_START_FALLBACK_MS: number;
12
+ export declare const LocationShareStatus: {
13
+ readonly Active: "Active";
14
+ readonly Stopped: "Stopped";
15
+ readonly Expired: "Expired";
16
+ };
17
+ export type LocationShareStatus = (typeof LocationShareStatus)[keyof typeof LocationShareStatus];
18
+ /** EventTask statuses that allow location share (assignee). */
19
+ export declare const LOCATION_SHARE_TASK_STATUSES: readonly ["Accepted", "Assigned", "InProgress"];
20
+ export type LocationShareTaskStatus = (typeof LOCATION_SHARE_TASK_STATUSES)[number];
21
+ /** ServiceBooking statuses that allow location share (provider). */
22
+ export declare const LOCATION_SHARE_BOOKING_STATUSES: readonly ["Approved", "Confirmed"];
23
+ export type LocationShareBookingStatus = (typeof LOCATION_SHARE_BOOKING_STATUSES)[number];
24
+ export declare function isLocationShareLiveTaskStatus(status: string | null | undefined): status is LocationShareTaskStatus;
25
+ export declare function isLocationShareLiveBookingStatus(status: string | null | undefined): status is LocationShareBookingStatus;
26
+ /**
27
+ * True when the user is the event creator or an AssociatedBash organizer/co-host.
28
+ * Super-users are intentionally not included.
29
+ */
30
+ export declare function isLocationShareCrewMember(userId: string | null | undefined, bash: {
31
+ creatorId: string;
32
+ }, association?: {
33
+ isOrganizer?: boolean | null;
34
+ isCoHost?: boolean | null;
35
+ } | null): boolean;
36
+ /**
37
+ * Sync eligibility when the caller already knows task/booking flags
38
+ * (e.g. tests or UI that prefetched live assignment). API resolves flags via Prisma.
39
+ */
40
+ export declare function isLocationShareEventParticipant(userId: string | null | undefined, bash: {
41
+ creatorId: string;
42
+ }, options?: {
43
+ association?: {
44
+ isOrganizer?: boolean | null;
45
+ isCoHost?: boolean | null;
46
+ } | null;
47
+ hasLiveTaskAssignment?: boolean;
48
+ hasLiveHiredBooking?: boolean;
49
+ /** Active promo-code promoter row for this bash (`Promoter.userId` + `isActive`). */
50
+ hasActivePromoterRole?: boolean;
51
+ }): boolean;
52
+ /**
53
+ * Compute session expiry from bash times (end + grace, else start + 12h, else now + 24h).
54
+ */
55
+ export declare function computeLocationShareExpiresAt(bash: {
56
+ startDateTime?: Date | string | null;
57
+ endDateTime?: Date | string | null;
58
+ }, now?: Date): Date;
59
+ export declare const LOCATION_SHARE_SESSION_USER_SELECT: {
60
+ id: true;
61
+ username: true;
62
+ givenName: true;
63
+ familyName: true;
64
+ image: true;
65
+ imageUpdatedAt: true;
66
+ uploadedImage: true;
67
+ uploadedImageUpdatedAt: true;
68
+ };
69
+ export declare const LOCATION_SHARE_SESSION_LIST_SELECT: {
70
+ id: true;
71
+ bashEventId: true;
72
+ userId: true;
73
+ status: true;
74
+ startedAt: true;
75
+ expiresAt: true;
76
+ stoppedAt: true;
77
+ lastLat: true;
78
+ lastLng: true;
79
+ lastAccuracyM: true;
80
+ lastUpdatedAt: true;
81
+ user: {
82
+ select: {
83
+ id: true;
84
+ username: true;
85
+ givenName: true;
86
+ familyName: true;
87
+ image: true;
88
+ imageUpdatedAt: true;
89
+ uploadedImage: true;
90
+ uploadedImageUpdatedAt: true;
91
+ };
92
+ };
93
+ };
94
+ export type LocationShareSessionListItem = Prisma.LocationShareSessionGetPayload<{
95
+ select: typeof LOCATION_SHARE_SESSION_LIST_SELECT;
96
+ }>;
97
+ export type LocationShareMySession = Pick<LocationShareSessionListItem, "id" | "bashEventId" | "userId" | "status" | "startedAt" | "expiresAt" | "stoppedAt" | "lastLat" | "lastLng" | "lastAccuracyM" | "lastUpdatedAt">;
98
+ //# sourceMappingURL=locationShare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationShare.d.ts","sourceRoot":"","sources":["../src/locationShare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAE1D,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,QAAsB,CAAC;AAEjE,uDAAuD;AACvD,eAAO,MAAM,gCAAgC,QAAsB,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE,+DAA+D;AAC/D,eAAO,MAAM,4BAA4B,iDAI/B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,oEAAoE;AACpE,eAAO,MAAM,+BAA+B,oCAGlC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,MAAM,IAAI,uBAAuB,CAKnC;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,MAAM,IAAI,0BAA0B,CAKtC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3B,WAAW,CAAC,EAAE;IACZ,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B,GAAG,IAAI,GACP,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3B,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qFAAqF;IACrF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE;IACJ,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC,EACD,GAAG,GAAE,IAAiB,GACrB,IAAI,CAUN;AAED,eAAO,MAAM,kCAAkC;;;;;;;;;CAElB,CAAC;AAE9B,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;CAaF,CAAC;AAE9C,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC;IAC/E,MAAM,EAAE,OAAO,kCAAkC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,4BAA4B,EAC1B,IAAI,GACJ,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,WAAW,GACX,SAAS,GACT,SAAS,GACT,eAAe,GACf,eAAe,CAClB,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Event location sharing — consented near-live pins for bash participants
3
+ * (host / organizers / co-hosts, live task assignees, hired providers).
4
+ */
5
+ import { PUBLIC_TEASER_USER_DATA_TO_SELECT } from "./extendedSchemas.js";
6
+ /** Grace after event end before an Active session auto-expires. */
7
+ export const LOCATION_SHARE_GRACE_MS = 4 * 60 * 60 * 1000;
8
+ /** Fallback TTL when the bash has no start/end times. */
9
+ export const LOCATION_SHARE_DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;
10
+ /** Fallback window after start when end is missing. */
11
+ export const LOCATION_SHARE_START_FALLBACK_MS = 12 * 60 * 60 * 1000;
12
+ export const LocationShareStatus = {
13
+ Active: "Active",
14
+ Stopped: "Stopped",
15
+ Expired: "Expired",
16
+ };
17
+ /** EventTask statuses that allow location share (assignee). */
18
+ export const LOCATION_SHARE_TASK_STATUSES = [
19
+ "Accepted",
20
+ "Assigned",
21
+ "InProgress",
22
+ ];
23
+ /** ServiceBooking statuses that allow location share (provider). */
24
+ export const LOCATION_SHARE_BOOKING_STATUSES = [
25
+ "Approved",
26
+ "Confirmed",
27
+ ];
28
+ export function isLocationShareLiveTaskStatus(status) {
29
+ return (status != null &&
30
+ LOCATION_SHARE_TASK_STATUSES.includes(status));
31
+ }
32
+ export function isLocationShareLiveBookingStatus(status) {
33
+ return (status != null &&
34
+ LOCATION_SHARE_BOOKING_STATUSES.includes(status));
35
+ }
36
+ /**
37
+ * True when the user is the event creator or an AssociatedBash organizer/co-host.
38
+ * Super-users are intentionally not included.
39
+ */
40
+ export function isLocationShareCrewMember(userId, bash, association) {
41
+ if (!userId)
42
+ return false;
43
+ if (userId === bash.creatorId)
44
+ return true;
45
+ if (association?.isOrganizer === true || association?.isCoHost === true) {
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ /**
51
+ * Sync eligibility when the caller already knows task/booking flags
52
+ * (e.g. tests or UI that prefetched live assignment). API resolves flags via Prisma.
53
+ */
54
+ export function isLocationShareEventParticipant(userId, bash, options) {
55
+ if (isLocationShareCrewMember(userId, bash, options?.association ?? null)) {
56
+ return true;
57
+ }
58
+ if (!userId)
59
+ return false;
60
+ return Boolean(options?.hasLiveTaskAssignment ||
61
+ options?.hasLiveHiredBooking ||
62
+ options?.hasActivePromoterRole);
63
+ }
64
+ /**
65
+ * Compute session expiry from bash times (end + grace, else start + 12h, else now + 24h).
66
+ */
67
+ export function computeLocationShareExpiresAt(bash, now = new Date()) {
68
+ const end = bash.endDateTime ? new Date(bash.endDateTime) : null;
69
+ if (end && !Number.isNaN(end.getTime())) {
70
+ return new Date(end.getTime() + LOCATION_SHARE_GRACE_MS);
71
+ }
72
+ const start = bash.startDateTime ? new Date(bash.startDateTime) : null;
73
+ if (start && !Number.isNaN(start.getTime())) {
74
+ return new Date(start.getTime() + LOCATION_SHARE_START_FALLBACK_MS);
75
+ }
76
+ return new Date(now.getTime() + LOCATION_SHARE_DEFAULT_TTL_MS);
77
+ }
78
+ export const LOCATION_SHARE_SESSION_USER_SELECT = {
79
+ ...PUBLIC_TEASER_USER_DATA_TO_SELECT,
80
+ };
81
+ export const LOCATION_SHARE_SESSION_LIST_SELECT = {
82
+ id: true,
83
+ bashEventId: true,
84
+ userId: true,
85
+ status: true,
86
+ startedAt: true,
87
+ expiresAt: true,
88
+ stoppedAt: true,
89
+ lastLat: true,
90
+ lastLng: true,
91
+ lastAccuracyM: true,
92
+ lastUpdatedAt: true,
93
+ user: { select: LOCATION_SHARE_SESSION_USER_SELECT },
94
+ };
95
+ //# sourceMappingURL=locationShare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationShare.js","sourceRoot":"","sources":["../src/locationShare.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AAEzE,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D,yDAAyD;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjE,uDAAuD;AACvD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAKX,+DAA+D;AAC/D,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,UAAU;IACV,UAAU;IACV,YAAY;CACJ,CAAC;AAKX,oEAAoE;AACpE,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,UAAU;IACV,WAAW;CACH,CAAC;AAKX,MAAM,UAAU,6BAA6B,CAC3C,MAAiC;IAEjC,OAAO,CACL,MAAM,IAAI,IAAI;QACb,4BAAkD,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAiC;IAEjC,OAAO,CACL,MAAM,IAAI,IAAI;QACb,+BAAqD,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAiC,EACjC,IAA2B,EAC3B,WAGQ;IAER,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,WAAW,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAiC,EACjC,IAA2B,EAC3B,OASC;IAED,IACE,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,EACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,OAAO,CACZ,OAAO,EAAE,qBAAqB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,qBAAqB,CACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAGC,EACD,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,gCAAgC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,6BAA6B,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,GAAG,iCAAiC;CACT,CAAC;AAE9B,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;IACnB,IAAI,EAAE,EAAE,MAAM,EAAE,kCAAkC,EAAE;CACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.329.0",
3
+ "version": "30.330.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",
@@ -1135,6 +1135,9 @@ model BashEvent {
1135
1135
  promotionBlasts PromotionBlast[]
1136
1136
  orgPromotionalPackages OrgPromotionalPackage[]
1137
1137
 
1138
+ /// Crew location sharing (host + organizers/co-hosts opt-in near-live pins)
1139
+ locationShareSessions LocationShareSession[]
1140
+
1138
1141
  @@index([templateId])
1139
1142
  @@index([parentEventId])
1140
1143
  @@index([organizationId])
@@ -2504,6 +2507,36 @@ model EventNetworkingOptIn {
2504
2507
  @@index([bashEventId])
2505
2508
  }
2506
2509
 
2510
+ /// Consented near-live location share for bash crew (host / organizers / co-hosts).
2511
+ /// One row per (bashEventId, userId); restart reactivates the same row.
2512
+ /// Follow-ons (tasks, door staff, service bookings) can extend audience rules without a second GPS stack.
2513
+ model LocationShareSession {
2514
+ id String @id @default(cuid())
2515
+ bashEventId String
2516
+ userId String
2517
+ status LocationShareStatus @default(Active)
2518
+ startedAt DateTime @default(now())
2519
+ expiresAt DateTime
2520
+ stoppedAt DateTime?
2521
+ lastLat Float?
2522
+ lastLng Float?
2523
+ lastAccuracyM Float?
2524
+ lastUpdatedAt DateTime?
2525
+
2526
+ bashEvent BashEvent @relation(fields: [bashEventId], references: [id], onDelete: Cascade)
2527
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
2528
+
2529
+ @@unique([bashEventId, userId])
2530
+ @@index([bashEventId, status, lastUpdatedAt])
2531
+ @@index([userId, status])
2532
+ }
2533
+
2534
+ enum LocationShareStatus {
2535
+ Active
2536
+ Stopped
2537
+ Expired
2538
+ }
2539
+
2507
2540
  /// Host-scoped CRM row for a past guest (VIP tags, notes)
2508
2541
  model HostAttendeeProfile {
2509
2542
  id String @id @default(cuid())
@@ -3878,6 +3911,7 @@ model User {
3878
3911
 
3879
3912
  associatedBashes AssociatedBash[]
3880
3913
  associatedServices AssociatedService[]
3914
+ locationShareSessions LocationShareSession[]
3881
3915
  comment BashComment[]
3882
3916
  referredTransactions BashCreditTransaction[] @relation("ReferredUser")
3883
3917
  creditTransactions BashCreditTransaction[]
@@ -0,0 +1,122 @@
1
+ import {
2
+ computeLocationShareExpiresAt,
3
+ isLocationShareCrewMember,
4
+ isLocationShareEventParticipant,
5
+ isLocationShareLiveBookingStatus,
6
+ isLocationShareLiveTaskStatus,
7
+ LOCATION_SHARE_BOOKING_STATUSES,
8
+ LOCATION_SHARE_DEFAULT_TTL_MS,
9
+ LOCATION_SHARE_GRACE_MS,
10
+ LOCATION_SHARE_START_FALLBACK_MS,
11
+ LOCATION_SHARE_TASK_STATUSES,
12
+ } from "../locationShare.js";
13
+
14
+ describe("locationShare helpers", () => {
15
+ describe("isLocationShareCrewMember", () => {
16
+ it("allows the creator", () => {
17
+ expect(
18
+ isLocationShareCrewMember("u1", { creatorId: "u1" }, null)
19
+ ).toBe(true);
20
+ });
21
+
22
+ it("allows organizers and co-hosts", () => {
23
+ expect(
24
+ isLocationShareCrewMember("u2", { creatorId: "u1" }, {
25
+ isOrganizer: true,
26
+ })
27
+ ).toBe(true);
28
+ expect(
29
+ isLocationShareCrewMember("u3", { creatorId: "u1" }, {
30
+ isCoHost: true,
31
+ })
32
+ ).toBe(true);
33
+ });
34
+
35
+ it("rejects attendees", () => {
36
+ expect(
37
+ isLocationShareCrewMember("u4", { creatorId: "u1" }, {
38
+ isOrganizer: false,
39
+ isCoHost: false,
40
+ })
41
+ ).toBe(false);
42
+ expect(isLocationShareCrewMember(undefined, { creatorId: "u1" })).toBe(
43
+ false
44
+ );
45
+ });
46
+ });
47
+
48
+ describe("isLocationShareEventParticipant", () => {
49
+ it("allows live task assignees, hired providers, and promoters", () => {
50
+ expect(
51
+ isLocationShareEventParticipant("u2", { creatorId: "u1" }, {
52
+ hasLiveTaskAssignment: true,
53
+ })
54
+ ).toBe(true);
55
+ expect(
56
+ isLocationShareEventParticipant("u3", { creatorId: "u1" }, {
57
+ hasLiveHiredBooking: true,
58
+ })
59
+ ).toBe(true);
60
+ expect(
61
+ isLocationShareEventParticipant("u5", { creatorId: "u1" }, {
62
+ hasActivePromoterRole: true,
63
+ })
64
+ ).toBe(true);
65
+ });
66
+
67
+ it("rejects when no crew and no live role", () => {
68
+ expect(
69
+ isLocationShareEventParticipant("u4", { creatorId: "u1" }, {})
70
+ ).toBe(false);
71
+ });
72
+ });
73
+
74
+ describe("status allow-lists", () => {
75
+ it("includes live task and booking statuses", () => {
76
+ expect(LOCATION_SHARE_TASK_STATUSES).toEqual([
77
+ "Accepted",
78
+ "Assigned",
79
+ "InProgress",
80
+ ]);
81
+ expect(LOCATION_SHARE_BOOKING_STATUSES).toEqual([
82
+ "Approved",
83
+ "Confirmed",
84
+ ]);
85
+ expect(isLocationShareLiveTaskStatus("InProgress")).toBe(true);
86
+ expect(isLocationShareLiveTaskStatus("Completed")).toBe(false);
87
+ expect(isLocationShareLiveBookingStatus("Approved")).toBe(true);
88
+ expect(isLocationShareLiveBookingStatus("Pending")).toBe(false);
89
+ });
90
+ });
91
+
92
+ describe("computeLocationShareExpiresAt", () => {
93
+ const now = new Date("2026-07-23T12:00:00.000Z");
94
+
95
+ it("uses end + grace when end exists", () => {
96
+ const end = new Date("2026-07-23T18:00:00.000Z");
97
+ const expires = computeLocationShareExpiresAt(
98
+ { endDateTime: end, startDateTime: null },
99
+ now
100
+ );
101
+ expect(expires.getTime()).toBe(end.getTime() + LOCATION_SHARE_GRACE_MS);
102
+ });
103
+
104
+ it("falls back to start + 12h", () => {
105
+ const start = new Date("2026-07-23T14:00:00.000Z");
106
+ const expires = computeLocationShareExpiresAt(
107
+ { startDateTime: start, endDateTime: null },
108
+ now
109
+ );
110
+ expect(expires.getTime()).toBe(
111
+ start.getTime() + LOCATION_SHARE_START_FALLBACK_MS
112
+ );
113
+ });
114
+
115
+ it("falls back to now + 24h", () => {
116
+ const expires = computeLocationShareExpiresAt({}, now);
117
+ expect(expires.getTime()).toBe(
118
+ now.getTime() + LOCATION_SHARE_DEFAULT_TTL_MS
119
+ );
120
+ });
121
+ });
122
+ });
package/src/index.ts CHANGED
@@ -38,6 +38,7 @@ export * from "./hostCrmConstants.js";
38
38
  export * from "./bashEventCancellationPolicy.js";
39
39
  export * from "./userReportTypes.js";
40
40
  export * from "./mirroredPrismaEnums.js";
41
+ export * from "./locationShare.js";
41
42
  export * from "./utils/featuredDiscoveryGeo.js";
42
43
  export * from "./utils/organizationEntitlements.js";
43
44
  export * from "./serviceTypeLabels.js";
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Event location sharing — consented near-live pins for bash participants
3
+ * (host / organizers / co-hosts, live task assignees, hired providers).
4
+ */
5
+
6
+ import type { Prisma } from "@prisma/client";
7
+
8
+ import { PUBLIC_TEASER_USER_DATA_TO_SELECT } from "./extendedSchemas.js";
9
+
10
+ /** Grace after event end before an Active session auto-expires. */
11
+ export const LOCATION_SHARE_GRACE_MS = 4 * 60 * 60 * 1000;
12
+
13
+ /** Fallback TTL when the bash has no start/end times. */
14
+ export const LOCATION_SHARE_DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;
15
+
16
+ /** Fallback window after start when end is missing. */
17
+ export const LOCATION_SHARE_START_FALLBACK_MS = 12 * 60 * 60 * 1000;
18
+
19
+ export const LocationShareStatus = {
20
+ Active: "Active",
21
+ Stopped: "Stopped",
22
+ Expired: "Expired",
23
+ } as const;
24
+
25
+ export type LocationShareStatus =
26
+ (typeof LocationShareStatus)[keyof typeof LocationShareStatus];
27
+
28
+ /** EventTask statuses that allow location share (assignee). */
29
+ export const LOCATION_SHARE_TASK_STATUSES = [
30
+ "Accepted",
31
+ "Assigned",
32
+ "InProgress",
33
+ ] as const;
34
+
35
+ export type LocationShareTaskStatus =
36
+ (typeof LOCATION_SHARE_TASK_STATUSES)[number];
37
+
38
+ /** ServiceBooking statuses that allow location share (provider). */
39
+ export const LOCATION_SHARE_BOOKING_STATUSES = [
40
+ "Approved",
41
+ "Confirmed",
42
+ ] as const;
43
+
44
+ export type LocationShareBookingStatus =
45
+ (typeof LOCATION_SHARE_BOOKING_STATUSES)[number];
46
+
47
+ export function isLocationShareLiveTaskStatus(
48
+ status: string | null | undefined
49
+ ): status is LocationShareTaskStatus {
50
+ return (
51
+ status != null &&
52
+ (LOCATION_SHARE_TASK_STATUSES as readonly string[]).includes(status)
53
+ );
54
+ }
55
+
56
+ export function isLocationShareLiveBookingStatus(
57
+ status: string | null | undefined
58
+ ): status is LocationShareBookingStatus {
59
+ return (
60
+ status != null &&
61
+ (LOCATION_SHARE_BOOKING_STATUSES as readonly string[]).includes(status)
62
+ );
63
+ }
64
+
65
+ /**
66
+ * True when the user is the event creator or an AssociatedBash organizer/co-host.
67
+ * Super-users are intentionally not included.
68
+ */
69
+ export function isLocationShareCrewMember(
70
+ userId: string | null | undefined,
71
+ bash: { creatorId: string },
72
+ association?: {
73
+ isOrganizer?: boolean | null;
74
+ isCoHost?: boolean | null;
75
+ } | null
76
+ ): boolean {
77
+ if (!userId) return false;
78
+ if (userId === bash.creatorId) return true;
79
+ if (association?.isOrganizer === true || association?.isCoHost === true) {
80
+ return true;
81
+ }
82
+ return false;
83
+ }
84
+
85
+ /**
86
+ * Sync eligibility when the caller already knows task/booking flags
87
+ * (e.g. tests or UI that prefetched live assignment). API resolves flags via Prisma.
88
+ */
89
+ export function isLocationShareEventParticipant(
90
+ userId: string | null | undefined,
91
+ bash: { creatorId: string },
92
+ options?: {
93
+ association?: {
94
+ isOrganizer?: boolean | null;
95
+ isCoHost?: boolean | null;
96
+ } | null;
97
+ hasLiveTaskAssignment?: boolean;
98
+ hasLiveHiredBooking?: boolean;
99
+ /** Active promo-code promoter row for this bash (`Promoter.userId` + `isActive`). */
100
+ hasActivePromoterRole?: boolean;
101
+ }
102
+ ): boolean {
103
+ if (
104
+ isLocationShareCrewMember(userId, bash, options?.association ?? null)
105
+ ) {
106
+ return true;
107
+ }
108
+ if (!userId) return false;
109
+ return Boolean(
110
+ options?.hasLiveTaskAssignment ||
111
+ options?.hasLiveHiredBooking ||
112
+ options?.hasActivePromoterRole
113
+ );
114
+ }
115
+
116
+ /**
117
+ * Compute session expiry from bash times (end + grace, else start + 12h, else now + 24h).
118
+ */
119
+ export function computeLocationShareExpiresAt(
120
+ bash: {
121
+ startDateTime?: Date | string | null;
122
+ endDateTime?: Date | string | null;
123
+ },
124
+ now: Date = new Date()
125
+ ): Date {
126
+ const end = bash.endDateTime ? new Date(bash.endDateTime) : null;
127
+ if (end && !Number.isNaN(end.getTime())) {
128
+ return new Date(end.getTime() + LOCATION_SHARE_GRACE_MS);
129
+ }
130
+ const start = bash.startDateTime ? new Date(bash.startDateTime) : null;
131
+ if (start && !Number.isNaN(start.getTime())) {
132
+ return new Date(start.getTime() + LOCATION_SHARE_START_FALLBACK_MS);
133
+ }
134
+ return new Date(now.getTime() + LOCATION_SHARE_DEFAULT_TTL_MS);
135
+ }
136
+
137
+ export const LOCATION_SHARE_SESSION_USER_SELECT = {
138
+ ...PUBLIC_TEASER_USER_DATA_TO_SELECT,
139
+ } satisfies Prisma.UserSelect;
140
+
141
+ export const LOCATION_SHARE_SESSION_LIST_SELECT = {
142
+ id: true,
143
+ bashEventId: true,
144
+ userId: true,
145
+ status: true,
146
+ startedAt: true,
147
+ expiresAt: true,
148
+ stoppedAt: true,
149
+ lastLat: true,
150
+ lastLng: true,
151
+ lastAccuracyM: true,
152
+ lastUpdatedAt: true,
153
+ user: { select: LOCATION_SHARE_SESSION_USER_SELECT },
154
+ } satisfies Prisma.LocationShareSessionSelect;
155
+
156
+ export type LocationShareSessionListItem = Prisma.LocationShareSessionGetPayload<{
157
+ select: typeof LOCATION_SHARE_SESSION_LIST_SELECT;
158
+ }>;
159
+
160
+ export type LocationShareMySession = Pick<
161
+ LocationShareSessionListItem,
162
+ | "id"
163
+ | "bashEventId"
164
+ | "userId"
165
+ | "status"
166
+ | "startedAt"
167
+ | "expiresAt"
168
+ | "stoppedAt"
169
+ | "lastLat"
170
+ | "lastLng"
171
+ | "lastAccuracyM"
172
+ | "lastUpdatedAt"
173
+ >;