@bash-app/bash-common 30.333.0 → 30.335.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__/causeTags.test.d.ts +2 -0
- package/dist/__tests__/causeTags.test.d.ts.map +1 -0
- package/dist/__tests__/causeTags.test.js +94 -0
- package/dist/__tests__/causeTags.test.js.map +1 -0
- package/dist/__tests__/hostCrmGrowthPack.test.js +12 -2
- package/dist/__tests__/hostCrmGrowthPack.test.js.map +1 -1
- package/dist/bashFeedTypes.d.ts +4 -0
- package/dist/bashFeedTypes.d.ts.map +1 -1
- package/dist/causeTags.d.ts +42 -0
- package/dist/causeTags.d.ts.map +1 -0
- package/dist/causeTags.js +173 -0
- package/dist/causeTags.js.map +1 -0
- package/dist/definitions.d.ts +23 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +28 -0
- package/dist/definitions.js.map +1 -1
- package/dist/hostCrmAutomation.d.ts +12 -2
- package/dist/hostCrmAutomation.d.ts.map +1 -1
- package/dist/hostCrmAutomation.js +16 -2
- package/dist/hostCrmAutomation.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/sms/smsTemplates.d.ts +6 -1
- package/dist/sms/smsTemplates.d.ts.map +1 -1
- package/dist/sms/smsTemplates.js +1 -0
- package/dist/sms/smsTemplates.js.map +1 -1
- package/dist/utils/__tests__/coatCheckUtils.test.d.ts +2 -0
- package/dist/utils/__tests__/coatCheckUtils.test.d.ts.map +1 -0
- package/dist/utils/__tests__/coatCheckUtils.test.js +76 -0
- package/dist/utils/__tests__/coatCheckUtils.test.js.map +1 -0
- package/dist/utils/coatCheckUtils.d.ts +30 -0
- package/dist/utils/coatCheckUtils.d.ts.map +1 -0
- package/dist/utils/coatCheckUtils.js +85 -0
- package/dist/utils/coatCheckUtils.js.map +1 -0
- package/dist/utils/slugUtils.d.ts +3 -4
- package/dist/utils/slugUtils.d.ts.map +1 -1
- package/dist/utils/slugUtils.js +3 -4
- package/dist/utils/slugUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +429 -3
- package/src/__tests__/causeTags.test.ts +143 -0
- package/src/__tests__/hostCrmGrowthPack.test.ts +14 -1
- package/src/bashFeedTypes.ts +4 -0
- package/src/causeTags.ts +243 -0
- package/src/definitions.ts +46 -0
- package/src/hostCrmAutomation.ts +25 -2
- package/src/index.ts +2 -0
- package/src/sms/smsTemplates.ts +6 -0
- package/src/utils/__tests__/coatCheckUtils.test.ts +110 -0
- package/src/utils/coatCheckUtils.ts +134 -0
- package/src/utils/slugUtils.ts +3 -4
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { COAT_CHECK_ENTITLEMENT_STATUSES, COAT_CHECK_QR_TYPE, COAT_CHECK_SCAN_OUTCOMES, COAT_CHECK_SLOT_OCCUPYING_STATUSES, } from "../definitions.js";
|
|
2
|
+
export function encodeCoatCheckQrPayload(args) {
|
|
3
|
+
const payload = {
|
|
4
|
+
type: COAT_CHECK_QR_TYPE,
|
|
5
|
+
eventId: args.eventId,
|
|
6
|
+
entitlementId: args.entitlementId,
|
|
7
|
+
qrToken: args.qrToken,
|
|
8
|
+
timestamp: Date.now(),
|
|
9
|
+
};
|
|
10
|
+
return JSON.stringify(payload);
|
|
11
|
+
}
|
|
12
|
+
export function parseCoatCheckQrPayload(raw) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(raw);
|
|
15
|
+
if (parsed?.type !== COAT_CHECK_QR_TYPE ||
|
|
16
|
+
typeof parsed.eventId !== "string" ||
|
|
17
|
+
typeof parsed.entitlementId !== "string" ||
|
|
18
|
+
typeof parsed.qrToken !== "string") {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
type: COAT_CHECK_QR_TYPE,
|
|
23
|
+
eventId: parsed.eventId,
|
|
24
|
+
entitlementId: parsed.entitlementId,
|
|
25
|
+
qrToken: parsed.qrToken,
|
|
26
|
+
timestamp: typeof parsed.timestamp === "number" ? parsed.timestamp : Date.now(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function coatCheckScanOutcomeForStatus(status) {
|
|
34
|
+
switch (status) {
|
|
35
|
+
case "Paid":
|
|
36
|
+
return "ready_for_dropoff";
|
|
37
|
+
case "CheckedIn":
|
|
38
|
+
return "ready_for_claim";
|
|
39
|
+
case "Claimed":
|
|
40
|
+
return "already_claimed";
|
|
41
|
+
case "Refunded":
|
|
42
|
+
case "Cancelled":
|
|
43
|
+
return "cancelled_or_refunded";
|
|
44
|
+
default:
|
|
45
|
+
return "invalid_or_expired";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function canTransitionCoatCheckStatus(from, to) {
|
|
49
|
+
if (from === to)
|
|
50
|
+
return false;
|
|
51
|
+
if (from === "Paid" && to === "CheckedIn")
|
|
52
|
+
return true;
|
|
53
|
+
if (from === "CheckedIn" && to === "Claimed")
|
|
54
|
+
return true;
|
|
55
|
+
if ((from === "Paid" || from === "CheckedIn") &&
|
|
56
|
+
(to === "Refunded" || to === "Cancelled")) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
export function isCoatCheckSlotOccupyingStatus(status) {
|
|
62
|
+
return COAT_CHECK_SLOT_OCCUPYING_STATUSES.includes(status);
|
|
63
|
+
}
|
|
64
|
+
export function isCoatCheckEntitlementStatus(status) {
|
|
65
|
+
return COAT_CHECK_ENTITLEMENT_STATUSES.includes(status);
|
|
66
|
+
}
|
|
67
|
+
export function assertCoatCheckScanOutcome(outcome) {
|
|
68
|
+
return COAT_CHECK_SCAN_OUTCOMES.includes(outcome);
|
|
69
|
+
}
|
|
70
|
+
/** Remaining slots; null capacity = unlimited (Infinity for math). */
|
|
71
|
+
export function remainingCoatCheckSlots(args) {
|
|
72
|
+
if (args.capacity == null)
|
|
73
|
+
return null;
|
|
74
|
+
return Math.max(0, args.capacity - args.occupiedCount);
|
|
75
|
+
}
|
|
76
|
+
export function clampCoatCheckPurchaseQty(args) {
|
|
77
|
+
const maxPer = Math.max(1, args.maxPerPurchase || 1);
|
|
78
|
+
let qty = Math.max(0, Math.floor(args.requested));
|
|
79
|
+
qty = Math.min(qty, maxPer);
|
|
80
|
+
if (args.remainingSlots != null) {
|
|
81
|
+
qty = Math.min(qty, args.remainingSlots);
|
|
82
|
+
}
|
|
83
|
+
return qty;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=coatCheckUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coatCheckUtils.js","sourceRoot":"","sources":["../../src/utils/coatCheckUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,9 @@ export declare function generateBashDetailUrl(bashEventId: string, slug: string)
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function getPublicBashDetailPath(bashEventId: string, slug: string | null | undefined): string;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* link works for people who aren't signed in yet.
|
|
10
|
+
* Path to Your Memories (private vault) for a bash — nested under bash detail
|
|
11
|
+
* (`/bash/{id}-{slug}/memories`). Requires sign-in + eligibility; not a public
|
|
12
|
+
* unauthenticated recap page.
|
|
14
13
|
*/
|
|
15
14
|
export declare function getPublicBashMemoriesPath(bashEventId: string, slug: string | null | undefined): string;
|
|
16
15
|
/** Wizard URL with explicit step (see bash-app `/bash-event-wizard/$id/$major/$sub`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugUtils.d.ts","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACvE,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,CAMR;AAED
|
|
1
|
+
{"version":3,"file":"slugUtils.d.ts","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACvE,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,CAER;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED,+EAA+E;AAC/E,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAqB5F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD"}
|
package/dist/utils/slugUtils.js
CHANGED
|
@@ -35,10 +35,9 @@ export function getPublicBashDetailPath(bashEventId, slug) {
|
|
|
35
35
|
return `${BASH_DETAIL_URL}/${bashEventId}`;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* link works for people who aren't signed in yet.
|
|
38
|
+
* Path to Your Memories (private vault) for a bash — nested under bash detail
|
|
39
|
+
* (`/bash/{id}-{slug}/memories`). Requires sign-in + eligibility; not a public
|
|
40
|
+
* unauthenticated recap page.
|
|
42
41
|
*/
|
|
43
42
|
export function getPublicBashMemoriesPath(bashEventId, slug) {
|
|
44
43
|
return `${getPublicBashDetailPath(bashEventId, slug)}/memories`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,gCAAgC,EAChC,oCAAoC,EACpC,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,OAAO,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,eAAuE,EACvE,SAAkB;IAElB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,IAAY;IACrE,OAAO,SAAS,WAAW,IAAI,IAAI,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,IAA+B;IAE/B,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,CAAC;QACN,OAAO,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,eAAe,IAAI,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"slugUtils.js","sourceRoot":"","sources":["../../src/utils/slugUtils.ts"],"names":[],"mappings":"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"}
|