@bash-app/bash-common 30.396.0 → 30.399.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.
- package/dist/__tests__/agePolicy.test.js +18 -1
- package/dist/__tests__/agePolicy.test.js.map +1 -1
- package/dist/__tests__/entertainmentNotableVenues.test.js +8 -1
- package/dist/__tests__/entertainmentNotableVenues.test.js.map +1 -1
- package/dist/definitions.d.ts +14 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +11 -0
- package/dist/definitions.js.map +1 -1
- package/dist/extendedSchemas.d.ts +2 -0
- package/dist/extendedSchemas.d.ts.map +1 -1
- package/dist/extendedSchemas.js +2 -0
- package/dist/extendedSchemas.js.map +1 -1
- package/dist/seatMapBestAvailable.d.ts.map +1 -1
- package/dist/seatMapBestAvailable.js +7 -3
- package/dist/seatMapBestAvailable.js.map +1 -1
- package/dist/utils/__tests__/blogUtils.test.js +18 -4
- package/dist/utils/__tests__/blogUtils.test.js.map +1 -1
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.js +3 -3
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.js.map +1 -1
- package/dist/utils/blogUtils.d.ts +2 -0
- package/dist/utils/blogUtils.d.ts.map +1 -1
- package/dist/utils/blogUtils.js +11 -4
- package/dist/utils/blogUtils.js.map +1 -1
- package/dist/utils/eventTimezoneIana.d.ts.map +1 -1
- package/dist/utils/eventTimezoneIana.js +3 -0
- package/dist/utils/eventTimezoneIana.js.map +1 -1
- package/dist/utils/service/foodAndBeverageQuote.d.ts.map +1 -1
- package/dist/utils/service/foodAndBeverageQuote.js +2 -1
- package/dist/utils/service/foodAndBeverageQuote.js.map +1 -1
- package/package.json +3 -3
- package/prisma/schema.prisma +5 -0
- package/src/__tests__/agePolicy.test.ts +21 -0
- package/src/__tests__/entertainmentNotableVenues.test.ts +8 -1
- package/src/definitions.ts +23 -0
- package/src/extendedSchemas.ts +2 -0
- package/src/seatMapBestAvailable.ts +8 -3
- package/src/utils/__tests__/blogUtils.test.ts +20 -3
- package/src/utils/__tests__/reputationUtils.serviceListing.test.ts +3 -3
- package/src/utils/blogUtils.ts +14 -5
- package/src/utils/eventTimezoneIana.ts +4 -1
- package/src/utils/service/foodAndBeverageQuote.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foodAndBeverageQuote.d.ts","sourceRoot":"","sources":["../../../src/utils/service/foodAndBeverageQuote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,aAoBrC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAEV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAEV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAEV;AAED,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,aAGvC,CAAC;AAEH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAKV;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAKV;AAED;;GAEG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAIV;AAMD,eAAO,MAAM,+BAA+B,gDAIlC,CAAC;AAEX,MAAM,MAAM,8BAA8B,GACxC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC;AAMnD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX,IAAI,IAAI,8BAA8B,CAExC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC/B,8BAA8B,EAAE,CAElC;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,8BAA8B,EAAE,MAAM,CAIjF,CAAC;AAMF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA8E1E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,MAAM,EAAE,CAK3F;AAMD,MAAM,WAAW,0BAA0B;IACzC,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,CAGR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,SAAS,EACT,eAAe,EACf,kBAAkB,GACnB,EAAE,0BAA0B,GAAG,MAAM,CAMrC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"foodAndBeverageQuote.d.ts","sourceRoot":"","sources":["../../../src/utils/service/foodAndBeverageQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -235,10 +235,11 @@ export function foodAndBeverageQuoteCents({ baseRateCents, headcount, minimumQua
|
|
|
235
235
|
* Human-readable summary string, e.g. "$18 / guest · min 25 guests".
|
|
236
236
|
*/
|
|
237
237
|
export function foodAndBeverageRateSummary(baseRateCents, minimumQuantity) {
|
|
238
|
+
const hasCents = baseRateCents % 100 !== 0;
|
|
238
239
|
const formatted = new Intl.NumberFormat("en-US", {
|
|
239
240
|
style: "currency",
|
|
240
241
|
currency: "USD",
|
|
241
|
-
minimumFractionDigits: 0,
|
|
242
|
+
minimumFractionDigits: hasCents ? 2 : 0,
|
|
242
243
|
maximumFractionDigits: 2,
|
|
243
244
|
}).format(baseRateCents / 100);
|
|
244
245
|
const perGuest = `${formatted} / guest`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foodAndBeverageQuote.js","sourceRoot":"","sources":["../../../src/utils/service/foodAndBeverageQuote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foodAndBeverageQuote.js","sourceRoot":"","sources":["../../../src/utils/service/foodAndBeverageQuote.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.
|
|
3
|
+
"version": "30.399.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",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"test": "jest --config jest.config.cjs",
|
|
20
20
|
"knip": "knip --config knip.config.ts",
|
|
21
21
|
"build": "npm run generate && npm run tsc",
|
|
22
|
-
"generate": "prisma
|
|
23
|
-
"db": "
|
|
22
|
+
"generate": "node scripts/prisma-generate-if-changed.mjs",
|
|
23
|
+
"db": "npm run generate && prisma db push",
|
|
24
24
|
"tsc": "NODE_OPTIONS='--max-old-space-size=16384' tsc",
|
|
25
25
|
"typecheck": "NODE_OPTIONS='--max-old-space-size=16384' tsc --noEmit",
|
|
26
26
|
"block-malicious": "./scripts/block-malicious-patterns.sh .",
|
package/prisma/schema.prisma
CHANGED
|
@@ -4464,6 +4464,8 @@ model User {
|
|
|
4464
4464
|
phone String?
|
|
4465
4465
|
/// Set when the user completes SMS phone verification (OTP).
|
|
4466
4466
|
phoneVerifiedAt DateTime?
|
|
4467
|
+
/// Opt-in: require a text code after password login.
|
|
4468
|
+
smsMfaEnabled Boolean @default(false)
|
|
4467
4469
|
documentIDId String? @unique
|
|
4468
4470
|
/// Encrypted-S3 key for the user's stored government-ID image (deleted per retention policy / on ID expiration)
|
|
4469
4471
|
govIdImageS3Key String?
|
|
@@ -4895,6 +4897,8 @@ model PhoneVerificationCode {
|
|
|
4895
4897
|
id String @id @default(cuid())
|
|
4896
4898
|
userId String
|
|
4897
4899
|
phoneE164 String
|
|
4900
|
+
/// Isolates phone-verify OTPs from login MFA OTPs.
|
|
4901
|
+
purpose String @default("phone_verify")
|
|
4898
4902
|
codeHash String
|
|
4899
4903
|
attempts Int @default(0)
|
|
4900
4904
|
expiresAt DateTime
|
|
@@ -4903,6 +4907,7 @@ model PhoneVerificationCode {
|
|
|
4903
4907
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
4904
4908
|
|
|
4905
4909
|
@@index([userId])
|
|
4910
|
+
@@index([userId, purpose])
|
|
4906
4911
|
@@index([phoneE164])
|
|
4907
4912
|
}
|
|
4908
4913
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* edge case, and leap-day birthdays without throwing or off-by-one errors.
|
|
10
10
|
*/
|
|
11
11
|
import {
|
|
12
|
+
ACCOUNT_MINIMUM_AGE,
|
|
12
13
|
AgePolicy,
|
|
13
14
|
AgePolicyLabel,
|
|
14
15
|
AgePolicyMinimumAge,
|
|
@@ -16,6 +17,7 @@ import {
|
|
|
16
17
|
eventMatchesAgeFilter,
|
|
17
18
|
getAgeFromDob,
|
|
18
19
|
legacyAgeRangeMatchesFilter,
|
|
20
|
+
meetsAccountMinimumAge,
|
|
19
21
|
meetsAgePolicy,
|
|
20
22
|
} from "../definitions";
|
|
21
23
|
|
|
@@ -107,6 +109,25 @@ describe("getAgeFromDob", () => {
|
|
|
107
109
|
});
|
|
108
110
|
});
|
|
109
111
|
|
|
112
|
+
describe("meetsAccountMinimumAge", () => {
|
|
113
|
+
const yearsAgo = (n: number): string => {
|
|
114
|
+
const d = new Date();
|
|
115
|
+
d.setFullYear(d.getFullYear() - n);
|
|
116
|
+
d.setDate(d.getDate() - 1);
|
|
117
|
+
return d.toISOString();
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
it("is 13 and denies missing or under-13 DOBs", () => {
|
|
121
|
+
expect(ACCOUNT_MINIMUM_AGE).toBe(13);
|
|
122
|
+
expect(meetsAccountMinimumAge(null)).toBe(false);
|
|
123
|
+
expect(meetsAccountMinimumAge(undefined)).toBe(false);
|
|
124
|
+
expect(meetsAccountMinimumAge("not-a-date")).toBe(false);
|
|
125
|
+
expect(meetsAccountMinimumAge(yearsAgo(12))).toBe(false);
|
|
126
|
+
expect(meetsAccountMinimumAge(yearsAgo(13))).toBe(true);
|
|
127
|
+
expect(meetsAccountMinimumAge(yearsAgo(40))).toBe(true);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
|
|
110
131
|
describe("meetsAgePolicy", () => {
|
|
111
132
|
const yearsAgo = (n: number): string => {
|
|
112
133
|
const d = new Date();
|
|
@@ -35,7 +35,14 @@ describe("parseNotableVenueEntries", () => {
|
|
|
35
35
|
{ name: " ", reasonTags: ["NotARealTag"] },
|
|
36
36
|
{ name: "Valid", reasonTags: ["NiceAesthetic"] },
|
|
37
37
|
])
|
|
38
|
-
).toEqual([
|
|
38
|
+
).toEqual([
|
|
39
|
+
{
|
|
40
|
+
name: "Valid",
|
|
41
|
+
isFavorite: false,
|
|
42
|
+
reasonTags: ["NiceAesthetic"],
|
|
43
|
+
otherNote: undefined,
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
39
46
|
});
|
|
40
47
|
});
|
|
41
48
|
|
package/src/definitions.ts
CHANGED
|
@@ -1044,6 +1044,12 @@ export interface ApiResult<T, P extends ErrorDataType = ErrorDataType> {
|
|
|
1044
1044
|
bonusAwarded?: boolean;
|
|
1045
1045
|
status?: number;
|
|
1046
1046
|
token?: string;
|
|
1047
|
+
/** Password login: a text code is required before the session is issued. */
|
|
1048
|
+
mfaRequired?: boolean;
|
|
1049
|
+
/** Short-lived challenge token for POST /auth/mfa/sms/verify (not a session). */
|
|
1050
|
+
mfaToken?: string;
|
|
1051
|
+
/** Last four digits of the phone that received the login code. */
|
|
1052
|
+
phoneHint?: string;
|
|
1047
1053
|
/** e.g. safe path to navigate after password reset */
|
|
1048
1054
|
returnTo?: string;
|
|
1049
1055
|
error?: string;
|
|
@@ -1552,6 +1558,23 @@ export function getAgeFromDob(dob: Date | string | null | undefined): number | n
|
|
|
1552
1558
|
return age;
|
|
1553
1559
|
}
|
|
1554
1560
|
|
|
1561
|
+
/**
|
|
1562
|
+
* Account floor (COPPA / store ratings). Event 18+/21+ gates are separate
|
|
1563
|
+
* (`AgePolicy`). Do not store a DOB under this age.
|
|
1564
|
+
*/
|
|
1565
|
+
export const ACCOUNT_MINIMUM_AGE = 13;
|
|
1566
|
+
|
|
1567
|
+
export const ACCOUNT_MINIMUM_AGE_MESSAGE =
|
|
1568
|
+
"You must be 13 or older to use Bash.";
|
|
1569
|
+
|
|
1570
|
+
/** True when DOB is present, parseable, and age is at least {@link ACCOUNT_MINIMUM_AGE}. */
|
|
1571
|
+
export function meetsAccountMinimumAge(
|
|
1572
|
+
dob: Date | string | null | undefined
|
|
1573
|
+
): boolean {
|
|
1574
|
+
const age = getAgeFromDob(dob);
|
|
1575
|
+
return age !== null && age >= ACCOUNT_MINIMUM_AGE;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1555
1578
|
/** Whether the given DOB satisfies the policy's minimum age. AllAges is always true. */
|
|
1556
1579
|
export function meetsAgePolicy(
|
|
1557
1580
|
policy: AgePolicy,
|
package/src/extendedSchemas.ts
CHANGED
|
@@ -277,6 +277,8 @@ export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
|
|
|
277
277
|
phone: true,
|
|
278
278
|
/** SMS verification — self account only. */
|
|
279
279
|
phoneVerifiedAt: true,
|
|
280
|
+
/** Opt-in SMS login codes — self account only. */
|
|
281
|
+
smsMfaEnabled: true,
|
|
280
282
|
membershipExpiresAt: true,
|
|
281
283
|
bashPassStripeSubscriptionId: true,
|
|
282
284
|
bashPassCurrentPeriodEnd: true,
|
|
@@ -107,15 +107,20 @@ export function findBestAvailableSeats(input: {
|
|
|
107
107
|
for (let ri = 0; ri < rowOrder.length; ri += 1) {
|
|
108
108
|
const sorted = sortSeatsInRow(byRow.get(rowOrder[ri])!);
|
|
109
109
|
const runs = findContiguousRuns(sorted, qty);
|
|
110
|
+
const rowFirst = seatSortKey(sorted[0].label)[0];
|
|
111
|
+
const rowLast = seatSortKey(sorted[sorted.length - 1].label)[0];
|
|
112
|
+
const rowMid =
|
|
113
|
+
Number.isFinite(rowFirst) && Number.isFinite(rowLast)
|
|
114
|
+
? (rowFirst + rowLast) / 2
|
|
115
|
+
: (sorted.length - 1) / 2;
|
|
110
116
|
for (const run of runs) {
|
|
111
|
-
const mid = (sorted.length - 1) / 2;
|
|
112
117
|
const runMid =
|
|
113
118
|
(seatSortKey(run[0].label)[0] +
|
|
114
119
|
seatSortKey(run[run.length - 1].label)[0]) /
|
|
115
120
|
2;
|
|
116
121
|
const centerDist = Number.isFinite(runMid)
|
|
117
|
-
? Math.abs(runMid -
|
|
118
|
-
: Math.abs((run.length - 1) / 2 -
|
|
122
|
+
? Math.abs(runMid - rowMid)
|
|
123
|
+
: Math.abs((run.length - 1) / 2 - rowMid);
|
|
119
124
|
contiguous.push({ seats: run, rowIndex: ri, centerDist });
|
|
120
125
|
}
|
|
121
126
|
}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
getBlogDetailUrl,
|
|
11
11
|
getBlogImageUrl,
|
|
12
12
|
highlightSearchTerms,
|
|
13
|
+
looksLikePrismaCuid,
|
|
13
14
|
parseBlogUrlParams,
|
|
14
15
|
processTags,
|
|
15
16
|
validateBlogContent,
|
|
@@ -45,13 +46,29 @@ describe("blogUtils", () => {
|
|
|
45
46
|
expect(parseBlogUrlParams("abc123")).toEqual({ id: "abc123" });
|
|
46
47
|
});
|
|
47
48
|
|
|
48
|
-
test("parseBlogUrlParams splits
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
test("parseBlogUrlParams splits CUID-slug at first hyphen", () => {
|
|
50
|
+
const id = "cmr8las8i00orbg01m8sxg7fe";
|
|
51
|
+
expect(looksLikePrismaCuid(id)).toBe(true);
|
|
52
|
+
expect(parseBlogUrlParams(`${id}-my-cool-post`)).toEqual({
|
|
53
|
+
id,
|
|
51
54
|
slug: "my-cool-post",
|
|
52
55
|
});
|
|
53
56
|
});
|
|
54
57
|
|
|
58
|
+
test("looksLikePrismaCuid rejects short or hyphenated prefixes", () => {
|
|
59
|
+
expect(looksLikePrismaCuid("bash")).toBe(false);
|
|
60
|
+
expect(looksLikePrismaCuid("abc123")).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test("parseBlogUrlParams treats hyphenated slug-only URLs as a single id", () => {
|
|
64
|
+
expect(parseBlogUrlParams("bash-community-vs-eventbrite")).toEqual({
|
|
65
|
+
id: "bash-community-vs-eventbrite",
|
|
66
|
+
});
|
|
67
|
+
expect(parseBlogUrlParams("abc123-my-cool-post")).toEqual({
|
|
68
|
+
id: "abc123-my-cool-post",
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
55
72
|
test("parseBlogUrlParams returns null for empty input", () => {
|
|
56
73
|
expect(parseBlogUrlParams("")).toBeNull();
|
|
57
74
|
});
|
|
@@ -20,18 +20,18 @@ describe("getServiceListingReputation", () => {
|
|
|
20
20
|
).toEqual({
|
|
21
21
|
averageRating: 4,
|
|
22
22
|
totalRatings: MIN_RATINGS_FOR_DISPLAY,
|
|
23
|
-
sourceLabel:
|
|
23
|
+
sourceLabel: "Bash",
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
26
|
|
|
27
|
-
it("
|
|
27
|
+
it("labels native ratings as Bash even when an external source is set", () => {
|
|
28
28
|
expect(
|
|
29
29
|
getServiceListingReputation({
|
|
30
30
|
serviceRating: 4.2,
|
|
31
31
|
totalRatings: 8,
|
|
32
32
|
externalReviewSource: "yelp",
|
|
33
33
|
})?.sourceLabel
|
|
34
|
-
).
|
|
34
|
+
).toBe("Bash");
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
it("uses Bash sourceLabel when native reviews exist", () => {
|
package/src/utils/blogUtils.ts
CHANGED
|
@@ -22,23 +22,32 @@ export function getBlogDetailUrl(blogId: string, slug?: string, title?: string):
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/** Prisma default IDs are CUID / CUID2-like: start with `c`, 21–33 chars. */
|
|
26
|
+
export function looksLikePrismaCuid(id: string): boolean {
|
|
27
|
+
return /^c[a-z0-9]{20,32}$/i.test(id);
|
|
28
|
+
}
|
|
29
|
+
|
|
25
30
|
// Parse blog URL parameters
|
|
26
31
|
export function parseBlogUrlParams(blogIdSlug: string): { id: string; slug?: string } | null {
|
|
27
32
|
if (!blogIdSlug) return null;
|
|
28
33
|
|
|
29
|
-
// Check if it contains a hyphen (ID-slug format)
|
|
30
34
|
const hyphenIndex = blogIdSlug.indexOf('-');
|
|
31
35
|
|
|
32
36
|
if (hyphenIndex === -1) {
|
|
33
|
-
// No hyphen found, treat as just an ID
|
|
34
37
|
return { id: blogIdSlug };
|
|
35
38
|
}
|
|
36
39
|
|
|
37
|
-
// Split at the first hyphen
|
|
38
40
|
const id = blogIdSlug.substring(0, hyphenIndex);
|
|
39
41
|
const slug = blogIdSlug.substring(hyphenIndex + 1);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
|
|
43
|
+
// Sitemap and SPA links use `/blog/:slug`. Only split id-slug when the
|
|
44
|
+
// prefix is a Prisma CUID — otherwise "bash-community-vs-eventbrite"
|
|
45
|
+
// would be parsed as id "bash".
|
|
46
|
+
if (looksLikePrismaCuid(id)) {
|
|
47
|
+
return { id, slug };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return { id: blogIdSlug };
|
|
42
51
|
}
|
|
43
52
|
|
|
44
53
|
// Content processing
|
|
@@ -88,7 +88,10 @@ export function isValidIanaTimezone(timezone: string | null | undefined): boolea
|
|
|
88
88
|
// IANA zones follow "Region/City" format or special cases like "UTC".
|
|
89
89
|
const looksLikeAbbreviation = /^[A-Z]{2,5}T?$/.test(t);
|
|
90
90
|
if (looksLikeAbbreviation && t !== "UTC") return false;
|
|
91
|
-
|
|
91
|
+
|
|
92
|
+
// Newer ICU accepts offset ids (`+05:00`) as timeZone; those are not IANA names.
|
|
93
|
+
if (/^[+-]\d{1,2}(?::?\d{2})?$/.test(t)) return false;
|
|
94
|
+
|
|
92
95
|
// Intl throws RangeError for unknown IANA ids — no luxon needed.
|
|
93
96
|
try {
|
|
94
97
|
Intl.DateTimeFormat(undefined, { timeZone: t });
|
|
@@ -306,10 +306,11 @@ export function foodAndBeverageRateSummary(
|
|
|
306
306
|
baseRateCents: number,
|
|
307
307
|
minimumQuantity?: number | null
|
|
308
308
|
): string {
|
|
309
|
+
const hasCents = baseRateCents % 100 !== 0;
|
|
309
310
|
const formatted = new Intl.NumberFormat("en-US", {
|
|
310
311
|
style: "currency",
|
|
311
312
|
currency: "USD",
|
|
312
|
-
minimumFractionDigits: 0,
|
|
313
|
+
minimumFractionDigits: hasCents ? 2 : 0,
|
|
313
314
|
maximumFractionDigits: 2,
|
|
314
315
|
}).format(baseRateCents / 100);
|
|
315
316
|
const perGuest = `${formatted} / guest`;
|