@bash-app/bash-common 30.279.0 → 30.284.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=storePrintArtworkUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storePrintArtworkUtils.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/storePrintArtworkUtils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { isDarkGarmentColor, resolveStorePrintArtwork, resolveStorePrintArtworkPath, } from "../storePrintArtworkUtils.js";
2
+ describe("isDarkGarmentColor", () => {
3
+ it("detects common dark garment names", () => {
4
+ expect(isDarkGarmentColor("Black / M")).toBe(true);
5
+ expect(isDarkGarmentColor("navy")).toBe(true);
6
+ expect(isDarkGarmentColor("charcoal heather")).toBe(true);
7
+ expect(isDarkGarmentColor("White / L")).toBe(false);
8
+ expect(isDarkGarmentColor("Heather grey / M")).toBe(false);
9
+ });
10
+ it("detects dark hex colors", () => {
11
+ expect(isDarkGarmentColor("#000000")).toBe(true);
12
+ expect(isDarkGarmentColor("#ffffff")).toBe(false);
13
+ });
14
+ });
15
+ describe("resolveStorePrintArtwork", () => {
16
+ it("keeps royal-blue artwork on light garments", () => {
17
+ expect(resolveStorePrintArtwork("BashLogoBig", {
18
+ garmentColor: "White / M",
19
+ })).toBe("BashLogoBig");
20
+ });
21
+ it("routes to white knock-out on dark garments", () => {
22
+ expect(resolveStorePrintArtwork("BashLogoBig", {
23
+ garmentColor: "Black / L",
24
+ })).toBe("BashLogoBigWhite");
25
+ expect(resolveStorePrintArtwork("BashLogoLetters", {
26
+ garmentColor: "Black / One size",
27
+ })).toBe("BashLogoLettersWhite");
28
+ });
29
+ it("returns public paths for resolved artwork", () => {
30
+ expect(resolveStorePrintArtworkPath("BashLogoBig", {
31
+ garmentColor: "Black",
32
+ })).toBe("/bashLogoBigWhite.png");
33
+ });
34
+ });
35
+ //# sourceMappingURL=storePrintArtworkUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storePrintArtworkUtils.test.js","sourceRoot":"","sources":["../../src/__tests__/storePrintArtworkUtils.test.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CACJ,wBAAwB,CAAC,aAAkC,EAAE;YAC3D,YAAY,EAAE,WAAW;SAC1B,CAAC,CACH,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CACJ,wBAAwB,CAAC,aAAkC,EAAE;YAC3D,YAAY,EAAE,WAAW;SAC1B,CAAC,CACH,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3B,MAAM,CACJ,wBAAwB,CAAC,iBAAsC,EAAE;YAC/D,YAAY,EAAE,kBAAkB;SACjC,CAAC,CACH,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CACJ,4BAA4B,CAAC,aAAkC,EAAE;YAC/D,YAAY,EAAE,OAAO;SACtB,CAAC,CACH,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
11
11
  export * from "./groupTicketUtils.js";
12
12
  export * from "./utils/groupTicketCartUtils.js";
13
13
  export * from "./partnerStoreTypes.js";
14
+ export * from "./storeTypes.js";
15
+ export * from "./storePrintArtworkUtils.js";
14
16
  export * from "./bashFeedTypes.js";
15
17
  export * from "./membershipDefinitions.js";
16
18
  export * from "./onSaleCapabilityRecommendations.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
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
11
11
  export * from "./groupTicketUtils.js";
12
12
  export * from "./utils/groupTicketCartUtils.js";
13
13
  export * from "./partnerStoreTypes.js";
14
+ export * from "./storeTypes.js";
15
+ export * from "./storePrintArtworkUtils.js";
14
16
  export * from "./bashFeedTypes.js";
15
17
  export * from "./membershipDefinitions.js";
16
18
  export * from "./onSaleCapabilityRecommendations.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,22 @@
1
+ import type { StorePrintArtwork } from "@prisma/client";
2
+ /** Royal-blue wordmark → white knock-out for dark garments. */
3
+ export declare const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT: Partial<Record<StorePrintArtwork, StorePrintArtwork>>;
4
+ /** Base (royal blue) artwork for each enum value, including white variants. */
5
+ export declare const STORE_PRINT_ARTWORK_BASE: Partial<Record<StorePrintArtwork, StorePrintArtwork>>;
6
+ /**
7
+ * True when a garment color name/token should use white knock-out print artwork.
8
+ * Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
9
+ */
10
+ export declare function isDarkGarmentColor(garmentColor: string | null | undefined): boolean;
11
+ /**
12
+ * Pick print artwork for a product SKU, optionally routing to white knock-out
13
+ * when the selected variant/garment color is dark.
14
+ */
15
+ export declare function resolveStorePrintArtwork(printArtwork: StorePrintArtwork | null | undefined, options?: {
16
+ garmentColor?: string | null;
17
+ }): StorePrintArtwork | null;
18
+ /** Public path for resolved artwork (bash-app/public). */
19
+ export declare function resolveStorePrintArtworkPath(printArtwork: StorePrintArtwork | null | undefined, options?: {
20
+ garmentColor?: string | null;
21
+ }): string | null;
22
+ //# sourceMappingURL=storePrintArtworkUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storePrintArtworkUtils.d.ts","sourceRoot":"","sources":["../src/storePrintArtworkUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,+DAA+D;AAC/D,eAAO,MAAM,kCAAkC,EAAE,OAAO,CACtD,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAI7C,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAC5C,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAM7C,CAAC;AAeF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAcnF;AAcD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzC,iBAAiB,GAAG,IAAI,CAQ1B;AAED,0DAA0D;AAC1D,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACzC,MAAM,GAAG,IAAI,CAIf"}
@@ -0,0 +1,74 @@
1
+ import { STORE_PRINT_ARTWORK_PATHS } from "./storeTypes.js";
2
+ /** Royal-blue wordmark → white knock-out for dark garments. */
3
+ export const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT = {
4
+ BashLogoBig: "BashLogoBigWhite",
5
+ BashLogoLetters: "BashLogoLettersWhite",
6
+ };
7
+ /** Base (royal blue) artwork for each enum value, including white variants. */
8
+ export const STORE_PRINT_ARTWORK_BASE = {
9
+ BashLogoBig: "BashLogoBig",
10
+ BashLogoLetters: "BashLogoLetters",
11
+ BashLogoBigWhite: "BashLogoBig",
12
+ BashLogoLettersWhite: "BashLogoLetters",
13
+ };
14
+ const DARK_GARMENT_COLOR_TOKENS = new Set([
15
+ "black",
16
+ "charcoal",
17
+ "navy",
18
+ "dark",
19
+ "midnight",
20
+ "graphite",
21
+ "heather-black",
22
+ "dark-heather",
23
+ "dark-heather-grey",
24
+ "dark-heather-gray",
25
+ ]);
26
+ /**
27
+ * True when a garment color name/token should use white knock-out print artwork.
28
+ * Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
29
+ */
30
+ export function isDarkGarmentColor(garmentColor) {
31
+ const raw = garmentColor?.trim();
32
+ if (!raw)
33
+ return false;
34
+ const hex = raw.match(/#([0-9a-f]{3}|[0-9a-f]{6})/i)?.[0];
35
+ if (hex) {
36
+ return relativeLuminanceFromHex(hex) < 0.35;
37
+ }
38
+ const normalized = raw.toLowerCase().replace(/[^a-z0-9]+/g, "-");
39
+ for (const token of DARK_GARMENT_COLOR_TOKENS) {
40
+ if (normalized.includes(token))
41
+ return true;
42
+ }
43
+ return false;
44
+ }
45
+ function relativeLuminanceFromHex(hex) {
46
+ const h = hex.replace("#", "");
47
+ const full = h.length === 3 ? h.split("").map((c) => c + c).join("") : h.slice(0, 6);
48
+ const r = parseInt(full.slice(0, 2), 16) / 255;
49
+ const g = parseInt(full.slice(2, 4), 16) / 255;
50
+ const b = parseInt(full.slice(4, 6), 16) / 255;
51
+ const lin = (c) => c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
52
+ return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
53
+ }
54
+ /**
55
+ * Pick print artwork for a product SKU, optionally routing to white knock-out
56
+ * when the selected variant/garment color is dark.
57
+ */
58
+ export function resolveStorePrintArtwork(printArtwork, options) {
59
+ if (!printArtwork)
60
+ return null;
61
+ const base = STORE_PRINT_ARTWORK_BASE[printArtwork] ?? printArtwork;
62
+ if (!options?.garmentColor || !isDarkGarmentColor(options.garmentColor)) {
63
+ return base;
64
+ }
65
+ return STORE_PRINT_ARTWORK_WHITE_KNOCKOUT[base] ?? printArtwork;
66
+ }
67
+ /** Public path for resolved artwork (bash-app/public). */
68
+ export function resolveStorePrintArtworkPath(printArtwork, options) {
69
+ const resolved = resolveStorePrintArtwork(printArtwork, options);
70
+ if (!resolved)
71
+ return null;
72
+ return STORE_PRINT_ARTWORK_PATHS[resolved] ?? null;
73
+ }
74
+ //# sourceMappingURL=storePrintArtworkUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storePrintArtworkUtils.js","sourceRoot":"","sources":["../src/storePrintArtworkUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { StoreFulfillmentProvider, StorePrintArtwork, StoreProductCategory, StoreProductStatus } from "@prisma/client";
2
+ /** Public catalog row for /store listing and product detail. */
3
+ export type StoreProductVariantPublic = {
4
+ id: string;
5
+ label: string;
6
+ priceCents: number | null;
7
+ inventory: number;
8
+ sortOrder: number;
9
+ };
10
+ export type StoreProductPublic = {
11
+ id: string;
12
+ slug: string;
13
+ title: string;
14
+ description: string | null;
15
+ images: string[];
16
+ priceCents: number;
17
+ inventory: number;
18
+ category: StoreProductCategory;
19
+ sortOrder: number;
20
+ printArtwork: StorePrintArtwork | null;
21
+ variants: StoreProductVariantPublic[];
22
+ };
23
+ /** Admin CRUD shape (includes fulfillment mapping). */
24
+ export type StoreProductAdmin = StoreProductPublic & {
25
+ status: StoreProductStatus;
26
+ fulfillmentProvider: StoreFulfillmentProvider;
27
+ externalProductId: string | null;
28
+ printArtworkUrl: string | null;
29
+ variants: (StoreProductVariantPublic & {
30
+ externalVariantId: string | null;
31
+ })[];
32
+ };
33
+ export type StoreCheckoutSessionRequest = {
34
+ productSlug: string;
35
+ variantId?: string;
36
+ quantity?: number;
37
+ };
38
+ export type StoreCheckoutSessionResponse = {
39
+ checkoutUrl: string;
40
+ orderId: string;
41
+ };
42
+ export type StoreOrderPublic = {
43
+ id: string;
44
+ status: string;
45
+ fulfillmentStatus: string;
46
+ subtotalCents: number;
47
+ totalCents: number;
48
+ currency: string;
49
+ createdAt: string;
50
+ lines: {
51
+ id: string;
52
+ titleSnapshot: string;
53
+ unitPriceCents: number;
54
+ quantity: number;
55
+ }[];
56
+ };
57
+ /** Brand print artwork paths served from bash-app/public. */
58
+ export declare const STORE_PRINT_ARTWORK_PATHS: Record<StorePrintArtwork, string>;
59
+ export declare const STORE_PRODUCT_STATUS_VALUES: readonly ["Active", "Draft", "Archived"];
60
+ export declare const STORE_FULFILLMENT_PROVIDER_VALUES: readonly ["Platform", "Printify", "Printful"];
61
+ export declare const STORE_PRINT_ARTWORK_VALUES: readonly ["BashLogoBig", "BashLogoLetters", "BashLogoBigWhite", "BashLogoLettersWhite"];
62
+ /** Printful sync product row for admin import picker. */
63
+ export type PrintfulSyncProductSummary = {
64
+ id: number;
65
+ name: string;
66
+ thumbnailUrl: string | null;
67
+ variantCount: number;
68
+ };
69
+ /** Normalized Printful sync product payload for Bash Store admin import. */
70
+ export type PrintfulStoreProductImport = {
71
+ syncProductId: string;
72
+ title: string;
73
+ images: string[];
74
+ priceCents: number;
75
+ variants: {
76
+ label: string;
77
+ externalVariantId: string;
78
+ priceCents: number | null;
79
+ }[];
80
+ };
81
+ //# sourceMappingURL=storeTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeTypes.d.ts","sourceRoot":"","sources":["../src/storeTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /** Brand print artwork paths served from bash-app/public. */
2
+ export const STORE_PRINT_ARTWORK_PATHS = {
3
+ BashLogoBig: "/bashLogoBig.png",
4
+ BashLogoLetters: "/bashLogoLetters.png",
5
+ BashLogoBigWhite: "/bashLogoBigWhite.png",
6
+ BashLogoLettersWhite: "/bashLogoLettersWhite.png",
7
+ };
8
+ export const STORE_PRODUCT_STATUS_VALUES = ["Active", "Draft", "Archived"];
9
+ export const STORE_FULFILLMENT_PROVIDER_VALUES = [
10
+ "Platform",
11
+ "Printify",
12
+ "Printful",
13
+ ];
14
+ export const STORE_PRINT_ARTWORK_VALUES = [
15
+ "BashLogoBig",
16
+ "BashLogoLetters",
17
+ "BashLogoBigWhite",
18
+ "BashLogoLettersWhite",
19
+ ];
20
+ //# sourceMappingURL=storeTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeTypes.js","sourceRoot":"","sources":["../src/storeTypes.ts"],"names":[],"mappings":"AAoEA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAsC;IAC1E,WAAW,EAAE,kBAAkB;IAC/B,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,uBAAuB;IACzC,oBAAoB,EAAE,2BAA2B;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AACpF,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;CACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.279.0",
3
+ "version": "30.284.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",
@@ -130,6 +130,7 @@ model BashFeedComment {
130
130
  parent BashFeedComment? @relation("FeedCommentReplies", fields: [parentId], references: [id], onDelete: Cascade)
131
131
  replies BashFeedComment[] @relation("FeedCommentReplies")
132
132
  likes BashFeedCommentLike[]
133
+ reports BashFeedReport[]
133
134
 
134
135
  @@index([postId])
135
136
  @@index([parentId])
@@ -169,7 +170,8 @@ model BashFeedRating {
169
170
  model BashFeedReport {
170
171
  id String @id @default(cuid())
171
172
  userId String
172
- postId String
173
+ postId String?
174
+ commentId String?
173
175
  reason BashFeedReportReason
174
176
  description String? @db.Text
175
177
  status ReportStatus @default(Pending)
@@ -177,11 +179,14 @@ model BashFeedReport {
177
179
  reviewedAt DateTime?
178
180
  createdAt DateTime @default(now())
179
181
 
180
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
181
- post BashFeedPost @relation(fields: [postId], references: [id], onDelete: Cascade)
182
- reviewer User? @relation("ReviewedReports", fields: [reviewedBy], references: [id])
182
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
183
+ post BashFeedPost? @relation(fields: [postId], references: [id], onDelete: Cascade)
184
+ comment BashFeedComment? @relation(fields: [commentId], references: [id], onDelete: Cascade)
185
+ reviewer User? @relation("ReviewedReports", fields: [reviewedBy], references: [id])
183
186
 
187
+ @@unique([userId, commentId])
184
188
  @@index([postId])
189
+ @@index([commentId])
185
190
  @@index([status])
186
191
  @@index([userId])
187
192
  }
@@ -2026,8 +2031,9 @@ model TicketTier {
2026
2031
  title String @default("Free")
2027
2032
  sortOrder Int?
2028
2033
  description String?
2029
- maximumNumberOfTickets Int @default(100)
2030
- maximumTicketCount Int @default(100)
2034
+ maximumNumberOfTickets Int?
2035
+ /// @deprecated Legacy duplicate of maximumNumberOfTickets — do not read or write.
2036
+ maximumTicketCount Int?
2031
2037
  isDonationTier Boolean?
2032
2038
  hidden Boolean?
2033
2039
  promoCodes BashEventPromoCode[]
@@ -3040,6 +3046,7 @@ model User {
3040
3046
  bashFeedRatings BashFeedRating[]
3041
3047
  bashFeedReports BashFeedReport[]
3042
3048
  reviewedFeedReports BashFeedReport[] @relation("ReviewedReports")
3049
+ storeOrders StoreOrder[]
3043
3050
  bashFeedSaves BashFeedSave[]
3044
3051
  bashFeedReposts BashFeedRepost[]
3045
3052
  reviewHelpfulVotes ReviewHelpfulVote[]
@@ -9501,6 +9508,127 @@ enum OrgProductStatus {
9501
9508
  Archived
9502
9509
  }
9503
9510
 
9511
+ enum StoreProductStatus {
9512
+ Active
9513
+ Draft
9514
+ Archived
9515
+ }
9516
+
9517
+ enum StoreProductCategory {
9518
+ Apparel
9519
+ Accessories
9520
+ Other
9521
+ }
9522
+
9523
+ enum StorePrintArtwork {
9524
+ BashLogoBig
9525
+ BashLogoLetters
9526
+ BashLogoBigWhite
9527
+ BashLogoLettersWhite
9528
+ }
9529
+
9530
+ enum StoreFulfillmentProvider {
9531
+ Platform
9532
+ Printify
9533
+ Printful
9534
+ }
9535
+
9536
+ enum StoreOrderStatus {
9537
+ Pending
9538
+ Paid
9539
+ Fulfilled
9540
+ Failed
9541
+ Canceled
9542
+ }
9543
+
9544
+ enum StoreFulfillmentStatus {
9545
+ Pending
9546
+ Submitted
9547
+ Fulfilled
9548
+ Failed
9549
+ }
9550
+
9551
+ /// Official Bash merch sold on /store (merchant-of-record via Stripe).
9552
+ model StoreProduct {
9553
+ id String @id @default(cuid())
9554
+ slug String @unique
9555
+ title String
9556
+ description String? @db.Text
9557
+ images String[] @default([])
9558
+ priceCents Int
9559
+ inventory Int @default(0)
9560
+ status StoreProductStatus @default(Draft)
9561
+ category StoreProductCategory @default(Apparel)
9562
+ sortOrder Int @default(0)
9563
+ fulfillmentProvider StoreFulfillmentProvider @default(Platform)
9564
+ externalProductId String?
9565
+ printArtwork StorePrintArtwork?
9566
+ printArtworkUrl String?
9567
+ createdAt DateTime @default(now())
9568
+ updatedAt DateTime @updatedAt
9569
+ variants StoreProductVariant[]
9570
+ orderLines StoreOrderLine[]
9571
+
9572
+ @@index([status, sortOrder])
9573
+ }
9574
+
9575
+ model StoreProductVariant {
9576
+ id String @id @default(cuid())
9577
+ productId String
9578
+ label String
9579
+ priceCents Int?
9580
+ inventory Int @default(0)
9581
+ externalVariantId String?
9582
+ sortOrder Int @default(0)
9583
+ product StoreProduct @relation(fields: [productId], references: [id], onDelete: Cascade)
9584
+
9585
+ @@index([productId])
9586
+ }
9587
+
9588
+ model StoreOrder {
9589
+ id String @id @default(cuid())
9590
+ buyerId String
9591
+ status StoreOrderStatus @default(Pending)
9592
+ fulfillmentStatus StoreFulfillmentStatus @default(Pending)
9593
+ subtotalCents Int
9594
+ totalCents Int
9595
+ currency String @default("usd")
9596
+ stripeCheckoutSessionId String? @unique
9597
+ stripePaymentIntentId String?
9598
+ // Shipping address captured from Stripe checkout
9599
+ shippingName String?
9600
+ shippingLine1 String?
9601
+ shippingLine2 String?
9602
+ shippingCity String?
9603
+ shippingState String?
9604
+ shippingPostalCode String?
9605
+ shippingCountry String?
9606
+ createdAt DateTime @default(now())
9607
+ updatedAt DateTime @updatedAt
9608
+ buyer User @relation(fields: [buyerId], references: [id], onDelete: Cascade)
9609
+ lines StoreOrderLine[]
9610
+
9611
+ @@index([buyerId])
9612
+ @@index([status])
9613
+ }
9614
+
9615
+ model StoreOrderLine {
9616
+ id String @id @default(cuid())
9617
+ orderId String
9618
+ productId String?
9619
+ variantId String?
9620
+ titleSnapshot String
9621
+ unitPriceCents Int
9622
+ quantity Int @default(1)
9623
+ fulfillmentProvider StoreFulfillmentProvider
9624
+ externalProductId String?
9625
+ externalVariantId String?
9626
+ order StoreOrder @relation(fields: [orderId], references: [id], onDelete: Cascade)
9627
+ product StoreProduct? @relation(fields: [productId], references: [id], onDelete: SetNull)
9628
+
9629
+ @@index([orderId])
9630
+ }
9631
+
9504
9632
  /// Lifecycle of a host's external Stripe nonprofit-pricing application. Recorded
9505
9633
  /// for analytics; does NOT gate Bash-side verification or platform-fee waivers.
9506
9634
  enum StripeNonprofitPricingStatus {
@@ -0,0 +1,53 @@
1
+ import type { StorePrintArtwork } from "@prisma/client";
2
+
3
+ import {
4
+ isDarkGarmentColor,
5
+ resolveStorePrintArtwork,
6
+ resolveStorePrintArtworkPath,
7
+ } from "../storePrintArtworkUtils.js";
8
+
9
+ describe("isDarkGarmentColor", () => {
10
+ it("detects common dark garment names", () => {
11
+ expect(isDarkGarmentColor("Black / M")).toBe(true);
12
+ expect(isDarkGarmentColor("navy")).toBe(true);
13
+ expect(isDarkGarmentColor("charcoal heather")).toBe(true);
14
+ expect(isDarkGarmentColor("White / L")).toBe(false);
15
+ expect(isDarkGarmentColor("Heather grey / M")).toBe(false);
16
+ });
17
+
18
+ it("detects dark hex colors", () => {
19
+ expect(isDarkGarmentColor("#000000")).toBe(true);
20
+ expect(isDarkGarmentColor("#ffffff")).toBe(false);
21
+ });
22
+ });
23
+
24
+ describe("resolveStorePrintArtwork", () => {
25
+ it("keeps royal-blue artwork on light garments", () => {
26
+ expect(
27
+ resolveStorePrintArtwork("BashLogoBig" as StorePrintArtwork, {
28
+ garmentColor: "White / M",
29
+ })
30
+ ).toBe("BashLogoBig");
31
+ });
32
+
33
+ it("routes to white knock-out on dark garments", () => {
34
+ expect(
35
+ resolveStorePrintArtwork("BashLogoBig" as StorePrintArtwork, {
36
+ garmentColor: "Black / L",
37
+ })
38
+ ).toBe("BashLogoBigWhite");
39
+ expect(
40
+ resolveStorePrintArtwork("BashLogoLetters" as StorePrintArtwork, {
41
+ garmentColor: "Black / One size",
42
+ })
43
+ ).toBe("BashLogoLettersWhite");
44
+ });
45
+
46
+ it("returns public paths for resolved artwork", () => {
47
+ expect(
48
+ resolveStorePrintArtworkPath("BashLogoBig" as StorePrintArtwork, {
49
+ garmentColor: "Black",
50
+ })
51
+ ).toBe("/bashLogoBigWhite.png");
52
+ });
53
+ });
package/src/index.ts CHANGED
@@ -11,6 +11,8 @@ export * from "./competitionValidation.js";
11
11
  export * from "./groupTicketUtils.js";
12
12
  export * from "./utils/groupTicketCartUtils.js";
13
13
  export * from "./partnerStoreTypes.js";
14
+ export * from "./storeTypes.js";
15
+ export * from "./storePrintArtworkUtils.js";
14
16
  export * from "./bashFeedTypes.js";
15
17
  export * from "./membershipDefinitions.js";
16
18
  export * from "./onSaleCapabilityRecommendations.js";
@@ -0,0 +1,93 @@
1
+ import type { StorePrintArtwork } from "@prisma/client";
2
+
3
+ import { STORE_PRINT_ARTWORK_PATHS } from "./storeTypes.js";
4
+
5
+ /** Royal-blue wordmark → white knock-out for dark garments. */
6
+ export const STORE_PRINT_ARTWORK_WHITE_KNOCKOUT: Partial<
7
+ Record<StorePrintArtwork, StorePrintArtwork>
8
+ > = {
9
+ BashLogoBig: "BashLogoBigWhite",
10
+ BashLogoLetters: "BashLogoLettersWhite",
11
+ };
12
+
13
+ /** Base (royal blue) artwork for each enum value, including white variants. */
14
+ export const STORE_PRINT_ARTWORK_BASE: Partial<
15
+ Record<StorePrintArtwork, StorePrintArtwork>
16
+ > = {
17
+ BashLogoBig: "BashLogoBig",
18
+ BashLogoLetters: "BashLogoLetters",
19
+ BashLogoBigWhite: "BashLogoBig",
20
+ BashLogoLettersWhite: "BashLogoLetters",
21
+ };
22
+
23
+ const DARK_GARMENT_COLOR_TOKENS = new Set([
24
+ "black",
25
+ "charcoal",
26
+ "navy",
27
+ "dark",
28
+ "midnight",
29
+ "graphite",
30
+ "heather-black",
31
+ "dark-heather",
32
+ "dark-heather-grey",
33
+ "dark-heather-gray",
34
+ ]);
35
+
36
+ /**
37
+ * True when a garment color name/token should use white knock-out print artwork.
38
+ * Accepts labels like "Black / M" or hex codes (#000, #1a1a2e).
39
+ */
40
+ export function isDarkGarmentColor(garmentColor: string | null | undefined): boolean {
41
+ const raw = garmentColor?.trim();
42
+ if (!raw) return false;
43
+
44
+ const hex = raw.match(/#([0-9a-f]{3}|[0-9a-f]{6})/i)?.[0];
45
+ if (hex) {
46
+ return relativeLuminanceFromHex(hex) < 0.35;
47
+ }
48
+
49
+ const normalized = raw.toLowerCase().replace(/[^a-z0-9]+/g, "-");
50
+ for (const token of DARK_GARMENT_COLOR_TOKENS) {
51
+ if (normalized.includes(token)) return true;
52
+ }
53
+ return false;
54
+ }
55
+
56
+ function relativeLuminanceFromHex(hex: string): number {
57
+ const h = hex.replace("#", "");
58
+ const full =
59
+ h.length === 3 ? h.split("").map((c) => c + c).join("") : h.slice(0, 6);
60
+ const r = parseInt(full.slice(0, 2), 16) / 255;
61
+ const g = parseInt(full.slice(2, 4), 16) / 255;
62
+ const b = parseInt(full.slice(4, 6), 16) / 255;
63
+ const lin = (c: number) =>
64
+ c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
65
+ return 0.2126 * lin(r) + 0.7152 * lin(g) + 0.0722 * lin(b);
66
+ }
67
+
68
+ /**
69
+ * Pick print artwork for a product SKU, optionally routing to white knock-out
70
+ * when the selected variant/garment color is dark.
71
+ */
72
+ export function resolveStorePrintArtwork(
73
+ printArtwork: StorePrintArtwork | null | undefined,
74
+ options?: { garmentColor?: string | null }
75
+ ): StorePrintArtwork | null {
76
+ if (!printArtwork) return null;
77
+
78
+ const base = STORE_PRINT_ARTWORK_BASE[printArtwork] ?? printArtwork;
79
+ if (!options?.garmentColor || !isDarkGarmentColor(options.garmentColor)) {
80
+ return base;
81
+ }
82
+ return STORE_PRINT_ARTWORK_WHITE_KNOCKOUT[base] ?? printArtwork;
83
+ }
84
+
85
+ /** Public path for resolved artwork (bash-app/public). */
86
+ export function resolveStorePrintArtworkPath(
87
+ printArtwork: StorePrintArtwork | null | undefined,
88
+ options?: { garmentColor?: string | null }
89
+ ): string | null {
90
+ const resolved = resolveStorePrintArtwork(printArtwork, options);
91
+ if (!resolved) return null;
92
+ return STORE_PRINT_ARTWORK_PATHS[resolved] ?? null;
93
+ }
@@ -0,0 +1,109 @@
1
+ import type {
2
+ StoreFulfillmentProvider,
3
+ StorePrintArtwork,
4
+ StoreProductCategory,
5
+ StoreProductStatus,
6
+ } from "@prisma/client";
7
+
8
+ /** Public catalog row for /store listing and product detail. */
9
+ export type StoreProductVariantPublic = {
10
+ id: string;
11
+ label: string;
12
+ priceCents: number | null;
13
+ inventory: number;
14
+ sortOrder: number;
15
+ };
16
+
17
+ export type StoreProductPublic = {
18
+ id: string;
19
+ slug: string;
20
+ title: string;
21
+ description: string | null;
22
+ images: string[];
23
+ priceCents: number;
24
+ inventory: number;
25
+ category: StoreProductCategory;
26
+ sortOrder: number;
27
+ printArtwork: StorePrintArtwork | null;
28
+ variants: StoreProductVariantPublic[];
29
+ };
30
+
31
+ /** Admin CRUD shape (includes fulfillment mapping). */
32
+ export type StoreProductAdmin = StoreProductPublic & {
33
+ status: StoreProductStatus;
34
+ fulfillmentProvider: StoreFulfillmentProvider;
35
+ externalProductId: string | null;
36
+ printArtworkUrl: string | null;
37
+ variants: (StoreProductVariantPublic & {
38
+ externalVariantId: string | null;
39
+ })[];
40
+ };
41
+
42
+ export type StoreCheckoutSessionRequest = {
43
+ productSlug: string;
44
+ variantId?: string;
45
+ quantity?: number;
46
+ };
47
+
48
+ export type StoreCheckoutSessionResponse = {
49
+ checkoutUrl: string;
50
+ orderId: string;
51
+ };
52
+
53
+ export type StoreOrderPublic = {
54
+ id: string;
55
+ status: string;
56
+ fulfillmentStatus: string;
57
+ subtotalCents: number;
58
+ totalCents: number;
59
+ currency: string;
60
+ createdAt: string;
61
+ lines: {
62
+ id: string;
63
+ titleSnapshot: string;
64
+ unitPriceCents: number;
65
+ quantity: number;
66
+ }[];
67
+ };
68
+
69
+ /** Brand print artwork paths served from bash-app/public. */
70
+ export const STORE_PRINT_ARTWORK_PATHS: Record<StorePrintArtwork, string> = {
71
+ BashLogoBig: "/bashLogoBig.png",
72
+ BashLogoLetters: "/bashLogoLetters.png",
73
+ BashLogoBigWhite: "/bashLogoBigWhite.png",
74
+ BashLogoLettersWhite: "/bashLogoLettersWhite.png",
75
+ };
76
+
77
+ export const STORE_PRODUCT_STATUS_VALUES = ["Active", "Draft", "Archived"] as const;
78
+ export const STORE_FULFILLMENT_PROVIDER_VALUES = [
79
+ "Platform",
80
+ "Printify",
81
+ "Printful",
82
+ ] as const;
83
+ export const STORE_PRINT_ARTWORK_VALUES = [
84
+ "BashLogoBig",
85
+ "BashLogoLetters",
86
+ "BashLogoBigWhite",
87
+ "BashLogoLettersWhite",
88
+ ] as const;
89
+
90
+ /** Printful sync product row for admin import picker. */
91
+ export type PrintfulSyncProductSummary = {
92
+ id: number;
93
+ name: string;
94
+ thumbnailUrl: string | null;
95
+ variantCount: number;
96
+ };
97
+
98
+ /** Normalized Printful sync product payload for Bash Store admin import. */
99
+ export type PrintfulStoreProductImport = {
100
+ syncProductId: string;
101
+ title: string;
102
+ images: string[];
103
+ priceCents: number;
104
+ variants: {
105
+ label: string;
106
+ externalVariantId: string;
107
+ priceCents: number | null;
108
+ }[];
109
+ };