@mohasinac/appkit 2.7.52 → 2.7.54

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.
Files changed (123) hide show
  1. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +1 -1
  2. package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -3
  3. package/dist/_internal/server/jobs/core/bundleStockSync.js +9 -7
  4. package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +12 -3
  5. package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -13
  6. package/dist/_internal/server/jobs/core/onProductWrite.js +1 -3
  7. package/dist/_internal/server/jobs/handlers/onProductStockChange.js +11 -2
  8. package/dist/client.d.ts +2 -0
  9. package/dist/client.js +1 -0
  10. package/dist/constants/field-names.d.ts +4 -3
  11. package/dist/constants/field-names.js +8 -8
  12. package/dist/errors/error-codes.d.ts +3 -0
  13. package/dist/errors/error-codes.js +3 -0
  14. package/dist/errors/messages.d.ts +3 -0
  15. package/dist/errors/messages.js +3 -0
  16. package/dist/features/admin/types/product.types.d.ts +1 -1
  17. package/dist/features/admin/types/product.types.js +2 -3
  18. package/dist/features/auctions/actions/bid-actions.d.ts +9 -0
  19. package/dist/features/auctions/actions/bid-actions.js +61 -0
  20. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +2 -1
  21. package/dist/features/auctions/components/AuctionDetailPageView.js +5 -4
  22. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -1
  23. package/dist/features/auctions/components/PlaceBidFormClient.js +32 -2
  24. package/dist/features/auctions/types/index.d.ts +1 -1
  25. package/dist/features/layout/AppLayoutShell.js +1 -1
  26. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -11
  27. package/dist/features/products/api/[id]/route.js +4 -8
  28. package/dist/features/products/api/route.js +1 -3
  29. package/dist/features/products/components/AuctionsIndexListing.js +3 -11
  30. package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -10
  31. package/dist/features/products/components/ProductFilters.d.ts +33 -9
  32. package/dist/features/products/components/ProductFilters.js +6 -29
  33. package/dist/features/products/components/ProductForm.js +2 -3
  34. package/dist/features/products/constants/sieve.d.ts +162 -0
  35. package/dist/features/products/constants/sieve.js +95 -0
  36. package/dist/features/products/repository/products.repository.d.ts +5 -0
  37. package/dist/features/products/repository/products.repository.js +23 -3
  38. package/dist/features/products/schemas/firestore.d.ts +4 -4
  39. package/dist/features/products/schemas/firestore.js +2 -3
  40. package/dist/features/products/schemas/index.d.ts +6 -6
  41. package/dist/features/products/schemas/index.js +2 -6
  42. package/dist/features/products/types/index.d.ts +1 -1
  43. package/dist/features/seller/actions/offer-actions.js +2 -2
  44. package/dist/features/wishlist/types/index.d.ts +1 -1
  45. package/dist/index.d.ts +6 -3
  46. package/dist/index.js +6 -4
  47. package/dist/seed/addresses-seed-data.d.ts +2 -18
  48. package/dist/seed/addresses-seed-data.js +137 -203
  49. package/dist/seed/bids-seed-data.d.ts +2 -8
  50. package/dist/seed/bids-seed-data.js +172 -648
  51. package/dist/seed/blog-posts-seed-data.d.ts +0 -5
  52. package/dist/seed/blog-posts-seed-data.js +341 -596
  53. package/dist/seed/carousel-slides-seed-data.d.ts +0 -5
  54. package/dist/seed/carousel-slides-seed-data.js +61 -192
  55. package/dist/seed/carousels-seed-data.js +18 -1
  56. package/dist/seed/cart-seed-data.d.ts +1 -18
  57. package/dist/seed/cart-seed-data.js +116 -293
  58. package/dist/seed/categories-seed-data.d.ts +0 -6
  59. package/dist/seed/categories-seed-data.js +1409 -1537
  60. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -11
  61. package/dist/seed/claimed-coupons-seed-data.js +32 -29
  62. package/dist/seed/conversations-seed-data.d.ts +0 -6
  63. package/dist/seed/conversations-seed-data.js +132 -280
  64. package/dist/seed/coupon-usage-seed-data.d.ts +0 -16
  65. package/dist/seed/coupon-usage-seed-data.js +30 -44
  66. package/dist/seed/coupons-seed-data.d.ts +0 -6
  67. package/dist/seed/coupons-seed-data.js +141 -489
  68. package/dist/seed/events-seed-data.d.ts +0 -6
  69. package/dist/seed/events-seed-data.js +201 -379
  70. package/dist/seed/faq-seed-data.d.ts +0 -14
  71. package/dist/seed/faq-seed-data.js +609 -1184
  72. package/dist/seed/grouped-listings-seed-data.d.ts +119 -8
  73. package/dist/seed/grouped-listings-seed-data.js +148 -233
  74. package/dist/seed/history-seed-data.d.ts +0 -7
  75. package/dist/seed/history-seed-data.js +50 -54
  76. package/dist/seed/homepage-sections-seed-data.d.ts +0 -5
  77. package/dist/seed/homepage-sections-seed-data.js +83 -175
  78. package/dist/seed/index.d.ts +1 -1
  79. package/dist/seed/index.js +1 -1
  80. package/dist/seed/manifest.js +2 -2
  81. package/dist/seed/notifications-seed-data.d.ts +0 -6
  82. package/dist/seed/notifications-seed-data.js +309 -196
  83. package/dist/seed/offers-seed-data.d.ts +0 -8
  84. package/dist/seed/offers-seed-data.js +118 -197
  85. package/dist/seed/orders-seed-data.d.ts +2 -8
  86. package/dist/seed/orders-seed-data.js +248 -1510
  87. package/dist/seed/payouts-seed-data.d.ts +0 -6
  88. package/dist/seed/payouts-seed-data.js +102 -441
  89. package/dist/seed/products-auctions-seed-data.d.ts +1 -14
  90. package/dist/seed/products-auctions-seed-data.js +612 -1084
  91. package/dist/seed/products-preorders-seed-data.d.ts +119 -14
  92. package/dist/seed/products-preorders-seed-data.js +154 -455
  93. package/dist/seed/products-standard-seed-data.d.ts +1 -15
  94. package/dist/seed/products-standard-seed-data.js +1355 -4128
  95. package/dist/seed/reviews-seed-data.d.ts +2 -8
  96. package/dist/seed/reviews-seed-data.js +99 -1182
  97. package/dist/seed/scammers-seed-data.d.ts +0 -15
  98. package/dist/seed/scammers-seed-data.js +36 -37
  99. package/dist/seed/sessions-seed-data.d.ts +0 -13
  100. package/dist/seed/sessions-seed-data.js +58 -335
  101. package/dist/seed/site-settings-seed-data.d.ts +0 -4
  102. package/dist/seed/site-settings-seed-data.js +61 -52
  103. package/dist/seed/store-addresses-seed-data.js +27 -151
  104. package/dist/seed/store-extensions-seed-data.d.ts +0 -7
  105. package/dist/seed/store-extensions-seed-data.js +147 -261
  106. package/dist/seed/stores-seed-data.d.ts +0 -5
  107. package/dist/seed/stores-seed-data.js +222 -184
  108. package/dist/seed/sub-listings-seed-data.d.ts +119 -0
  109. package/dist/seed/sub-listings-seed-data.js +447 -0
  110. package/dist/seed/support-tickets-seed-data.d.ts +0 -7
  111. package/dist/seed/support-tickets-seed-data.js +82 -75
  112. package/dist/seed/users-seed-data.d.ts +0 -5
  113. package/dist/seed/users-seed-data.js +279 -634
  114. package/dist/seed/wishlists-seed-data.d.ts +0 -9
  115. package/dist/seed/wishlists-seed-data.js +36 -52
  116. package/dist/seo/json-ld.js +6 -4
  117. package/dist/styles.css +8052 -3
  118. package/dist/utils/index.d.ts +1 -0
  119. package/dist/utils/index.js +1 -0
  120. package/dist/utils/search-tokens.d.ts +2 -0
  121. package/dist/utils/search-tokens.js +21 -0
  122. package/package.json +2 -2
  123. package/scripts/seed-cli.mjs +2 -2
@@ -8,10 +8,8 @@ export const MAX_CUSTOM_SECTIONS = 3;
8
8
  export const ProductStatusValues = {
9
9
  DRAFT: "draft",
10
10
  PUBLISHED: "published",
11
+ IN_REVIEW: "in_review",
11
12
  ARCHIVED: "archived",
12
- SOLD: "sold",
13
- OUT_OF_STOCK: "out_of_stock",
14
- DISCONTINUED: "discontinued",
15
13
  };
16
14
  export const PRODUCT_COLLECTION = "products";
17
15
  export const PRODUCT_INDEXED_FIELDS = [
@@ -23,6 +21,7 @@ export const PRODUCT_INDEXED_FIELDS = [
23
21
  "isPromoted",
24
22
  "isOnSale",
25
23
  "isSold",
24
+ "searchTokens",
26
25
  "createdAt",
27
26
  ];
28
27
  export const DEFAULT_PRODUCT_DATA = {
@@ -91,7 +91,7 @@ export declare const productItemSchema: z.ZodObject<{
91
91
  category: z.ZodOptional<z.ZodString>;
92
92
  categorySlug: z.ZodOptional<z.ZodString>;
93
93
  sellerAvatar: z.ZodOptional<z.ZodString>;
94
- status: z.ZodEnum<["draft", "published", "archived", "sold", "out_of_stock", "discontinued"]>;
94
+ status: z.ZodEnum<["draft", "published", "in_review", "archived"]>;
95
95
  condition: z.ZodOptional<z.ZodEnum<["new", "like_new", "good", "fair", "poor", "used", "refurbished", "broken"]>>;
96
96
  listingType: z.ZodOptional<z.ZodEnum<["standard", "auction", "pre-order", "prize-draw", "bundle"]>>;
97
97
  maxPerUser: z.ZodOptional<z.ZodNumber>;
@@ -284,7 +284,7 @@ export declare const productItemSchema: z.ZodObject<{
284
284
  }[] | undefined;
285
285
  }>, "many">>;
286
286
  }, "strip", z.ZodTypeAny, {
287
- status: "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued";
287
+ status: "draft" | "published" | "archived" | "in_review";
288
288
  id: string;
289
289
  title: string;
290
290
  price: number;
@@ -413,7 +413,7 @@ export declare const productItemSchema: z.ZodObject<{
413
413
  } | undefined;
414
414
  publishedAt?: string | undefined;
415
415
  }, {
416
- status: "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued";
416
+ status: "draft" | "published" | "archived" | "in_review";
417
417
  id: string;
418
418
  title: string;
419
419
  price: number;
@@ -546,7 +546,7 @@ export declare const productItemSchema: z.ZodObject<{
546
546
  export declare const productListParamsSchema: z.ZodObject<{
547
547
  q: z.ZodOptional<z.ZodString>;
548
548
  category: z.ZodOptional<z.ZodString>;
549
- status: z.ZodOptional<z.ZodEnum<["draft", "published", "archived", "sold", "out_of_stock", "discontinued"]>>;
549
+ status: z.ZodOptional<z.ZodEnum<["draft", "published", "in_review", "archived"]>>;
550
550
  condition: z.ZodOptional<z.ZodEnum<["new", "like_new", "good", "fair", "poor", "used", "refurbished", "broken"]>>;
551
551
  minPrice: z.ZodOptional<z.ZodNumber>;
552
552
  maxPrice: z.ZodOptional<z.ZodNumber>;
@@ -558,7 +558,7 @@ export declare const productListParamsSchema: z.ZodObject<{
558
558
  perPage: z.ZodOptional<z.ZodNumber>;
559
559
  featured: z.ZodOptional<z.ZodBoolean>;
560
560
  }, "strip", z.ZodTypeAny, {
561
- status?: "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued" | undefined;
561
+ status?: "draft" | "published" | "archived" | "in_review" | undefined;
562
562
  sort?: string | undefined;
563
563
  storeId?: string | undefined;
564
564
  category?: string | undefined;
@@ -572,7 +572,7 @@ export declare const productListParamsSchema: z.ZodObject<{
572
572
  maxPrice?: number | undefined;
573
573
  inStock?: boolean | undefined;
574
574
  }, {
575
- status?: "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued" | undefined;
575
+ status?: "draft" | "published" | "archived" | "in_review" | undefined;
576
576
  sort?: string | undefined;
577
577
  storeId?: string | undefined;
578
578
  category?: string | undefined;
@@ -51,10 +51,8 @@ export const productItemSchema = z.object({
51
51
  status: z.enum([
52
52
  "draft",
53
53
  "published",
54
+ "in_review",
54
55
  "archived",
55
- "sold",
56
- "out_of_stock",
57
- "discontinued",
58
56
  ]),
59
57
  condition: z
60
58
  .enum([
@@ -193,10 +191,8 @@ export const productListParamsSchema = z.object({
193
191
  .enum([
194
192
  "draft",
195
193
  "published",
194
+ "in_review",
196
195
  "archived",
197
- "sold",
198
- "out_of_stock",
199
- "discontinued",
200
196
  ])
201
197
  .optional(),
202
198
  condition: z
@@ -1,7 +1,7 @@
1
1
  import type { MediaField } from "../../media/types/index";
2
2
  import type { CustomField, CustomSection } from "../schemas/firestore";
3
3
  export type { CustomField, CustomSection } from "../schemas/firestore";
4
- export type ProductStatus = "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued";
4
+ export type ProductStatus = "draft" | "published" | "in_review" | "archived";
5
5
  export type ProductCondition = "new" | "like_new" | "good" | "fair" | "poor" | "used" | "refurbished" | "broken";
6
6
  /**
7
7
  * Canonical listing-kind discriminator (SB1-G Phase 4).
@@ -267,8 +267,8 @@ export async function checkoutOffer(userId, offerId) {
267
267
  if (!product)
268
268
  throw new NotFoundError(ERROR_MESSAGES.PRODUCT.NOT_FOUND);
269
269
  if ((product.availableQuantity ?? 0) <= 0 ||
270
- product.status === ProductStatusValues.DISCONTINUED ||
271
- product.status === ProductStatusValues.SOLD)
270
+ product.isSold === true ||
271
+ product.status === ProductStatusValues.ARCHIVED)
272
272
  throw new ValidationError(ERROR_MESSAGES.OFFER.PRODUCT_UNAVAILABLE);
273
273
  serverLogger.info("checkoutOffer — adding to cart", {
274
274
  offerId,
@@ -21,7 +21,7 @@ export interface WishlistProductData {
21
21
  price?: number;
22
22
  currency?: string;
23
23
  images?: string[];
24
- status?: "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued";
24
+ status?: "draft" | "published" | "in_review" | "archived";
25
25
  isFeatured?: boolean;
26
26
  /** Canonical listing-kind discriminator (SB1-G Phase 4). */
27
27
  listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live";
package/dist/index.d.ts CHANGED
@@ -623,7 +623,7 @@ export { ordersSeedData } from "./seed/index";
623
623
  export { payoutsSeedData } from "./seed/index";
624
624
  export { productsStandardSeedData } from "./seed/index";
625
625
  export { productsAuctionsSeedData } from "./seed/index";
626
- export { productsPreOrdersSeedData } from "./seed/index";
626
+ export { productsPreordersSeedData } from "./seed/index";
627
627
  export { productsPrizeDrawsSeedData } from "./seed/index";
628
628
  export { registerSeedLocale } from "./seed/index";
629
629
  export { reviewsSeedData } from "./seed/index";
@@ -1360,8 +1360,8 @@ export { GET } from "./features/auctions/server";
1360
1360
  export { bidsGET } from "./features/auctions/server";
1361
1361
  export { getBidById } from "./features/auctions/server";
1362
1362
  export { listBidsByProduct } from "./features/auctions/server";
1363
- export { placeBid } from "./features/auctions/server";
1364
- export type { PlaceBidInput } from "./features/auctions/server";
1363
+ export { placeBid, buyNowAuction } from "./features/auctions/server";
1364
+ export type { PlaceBidInput, BuyNowAuctionInput, BuyNowAuctionResult } from "./features/auctions/server";
1365
1365
  export type { PlaceBidResult } from "./features/auctions/server";
1366
1366
  export { CONSENT_OTP_COOLDOWN_MS } from "./features/auth/server";
1367
1367
  export { CONSENT_OTP_EXPIRY_MINUTES } from "./features/auth/server";
@@ -3048,6 +3048,8 @@ export type { ListingParams } from "./utils/listing-params";
3048
3048
  export { PRODUCT_FEATURE_CATEGORY_OPTIONS, PRODUCT_FEATURE_PRODUCT_TYPE_OPTIONS, PRODUCT_FEATURE_SCOPE_OPTIONS, PRODUCT_FEATURE_ICON_COLOR_OPTIONS, PRODUCT_FEATURE_SCOPE_TABS, PRODUCT_FEATURE_DEFAULT_DISPLAY_ORDER, PRODUCT_FEATURE_CARD_MAX_VISIBLE, PRODUCT_FEATURE_QUERY_STALE_MS, } from "./features/products/constants/product-features.constants";
3049
3049
  export { CATEGORY_PAGE_TABS, STORE_PAGE_TABS, SELLER_LISTING_TABS, SEARCH_RESULT_TABS, } from "./features/products/constants/listing-tabs";
3050
3050
  export type { ListingTab, CategoryTabId, StoreTabId, SellerListingTabId, SearchTabId, } from "./features/products/constants/listing-tabs";
3051
+ export { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, AUCTION_SORT_OPTIONS, AUCTION_PUBLIC_SORT_OPTIONS, PREORDER_SORT_OPTIONS, BUNDLE_SORT_OPTIONS, PRIZE_DRAW_SORT_OPTIONS, SORT_OPTIONS_BY_LISTING_TYPE, } from "./features/products/constants/sieve";
3052
+ export type { SortOption } from "./features/products/constants/sieve";
3051
3053
  export { ALL_TAB, EMPTY_TAB, ADMIN_PRODUCT_STATUS_TABS, ADMIN_PRODUCT_LISTING_TYPE_TABS, ADMIN_BLOG_STATUS_TABS, ADMIN_USER_STATUS_TABS, ADMIN_USER_ROLE_TABS, ADMIN_STORE_STATUS_TABS, ADMIN_PAYOUT_STATUS_TABS, ADMIN_ORDER_STATUS_TABS, ADMIN_REVIEW_STATUS_TABS, ADMIN_REVIEW_RATING_TABS, ADMIN_BID_STATUS_TABS, ADMIN_CONTACT_STATUS_TABS, ADMIN_NEWSLETTER_STATUS_TABS, ADMIN_EVENT_ENTRY_STATUS_TABS, ADMIN_EVENT_STATUS_TABS, ADMIN_CART_OWNERSHIP_TABS, ADMIN_COUPON_TYPE_TABS, SELLER_PRODUCT_STATUS_TABS, SELLER_AUCTION_STATUS_TABS, SELLER_ORDER_STATUS_TABS, SELLER_OFFER_STATUS_TABS, SELLER_BID_STATUS_TABS, } from "./features/admin/constants/filter-tabs";
3052
3054
  export type { AdminFilterTab } from "./features/admin/constants/filter-tabs";
3053
3055
  export { GROUPED_LISTINGS_COLLECTION } from "./features/grouped/schemas/firestore";
@@ -3119,6 +3121,7 @@ export { TABLE_KEYS, VIEW_MODE } from "./constants/table-keys";
3119
3121
  export type { TableKey, ViewMode } from "./constants/table-keys";
3120
3122
  export { SIEVE_OP, SIEVE_PIPE_OPS, sieveFilter, sieveMultiEq, expandSieveParam, sieveAnd, } from "./utils/sieve-builder";
3121
3123
  export type { SieveOp } from "./utils/sieve-builder";
3124
+ export { buildSearchTokens, tokenizeQuery } from "./utils/search-tokens";
3122
3125
  export { ActionPermissionsManager } from "./features/site-settings/components/ActionPermissionsManager";
3123
3126
  export type { ActionPermissionsManagerProps } from "./features/site-settings/components/ActionPermissionsManager";
3124
3127
  export { NavPermissionsManager } from "./features/site-settings/components/NavPermissionsManager";
package/dist/index.js CHANGED
@@ -1317,8 +1317,8 @@ export { productsStandardSeedData } from "./seed/index";
1317
1317
  // productsAuctionsSeedData - Seed data for auction product listings.
1318
1318
  export { productsAuctionsSeedData } from "./seed/index";
1319
1319
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1320
- // productsPreOrdersSeedData - Seed data for pre-order product listings.
1321
- export { productsPreOrdersSeedData } from "./seed/index";
1320
+ // productsPreordersSeedData - Seed data for pre-order product listings.
1321
+ export { productsPreordersSeedData } from "./seed/index";
1322
1322
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1323
1323
  // productsPrizeDrawsSeedData - Seed data for prize-draw product listings (SB5-E).
1324
1324
  export { productsPrizeDrawsSeedData } from "./seed/index";
@@ -2546,8 +2546,8 @@ export { getBidById } from "./features/auctions/server";
2546
2546
  // listBidsByProduct - Helper for list bids by product.
2547
2547
  export { listBidsByProduct } from "./features/auctions/server";
2548
2548
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
2549
- // placeBid - Shared export for place bid.
2550
- export { placeBid } from "./features/auctions/server";
2549
+ // placeBid / buyNowAuction - Shared export for bid + buy-now actions.
2550
+ export { placeBid, buyNowAuction } from "./features/auctions/server";
2551
2551
  // ./features/auth/server
2552
2552
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
2553
2553
  // CONSENT_OTP_COOLDOWN_MS - Constant used across modules.
@@ -5488,6 +5488,7 @@ export { LISTING_PARAM_NAMES, parseListingParams, parseListingSearchParams, seri
5488
5488
  export { PRODUCT_FEATURE_CATEGORY_OPTIONS, PRODUCT_FEATURE_PRODUCT_TYPE_OPTIONS, PRODUCT_FEATURE_SCOPE_OPTIONS, PRODUCT_FEATURE_ICON_COLOR_OPTIONS, PRODUCT_FEATURE_SCOPE_TABS, PRODUCT_FEATURE_DEFAULT_DISPLAY_ORDER, PRODUCT_FEATURE_CARD_MAX_VISIBLE, PRODUCT_FEATURE_QUERY_STALE_MS, } from "./features/products/constants/product-features.constants";
5489
5489
  // SB10-A listing tab constants
5490
5490
  export { CATEGORY_PAGE_TABS, STORE_PAGE_TABS, SELLER_LISTING_TABS, SEARCH_RESULT_TABS, } from "./features/products/constants/listing-tabs";
5491
+ export { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, AUCTION_SORT_OPTIONS, AUCTION_PUBLIC_SORT_OPTIONS, PREORDER_SORT_OPTIONS, BUNDLE_SORT_OPTIONS, PRIZE_DRAW_SORT_OPTIONS, SORT_OPTIONS_BY_LISTING_TYPE, } from "./features/products/constants/sieve";
5491
5492
  // SB10-C admin + seller filter-chip tab sets (S8 2026-05-13)
5492
5493
  export { ALL_TAB, EMPTY_TAB, ADMIN_PRODUCT_STATUS_TABS, ADMIN_PRODUCT_LISTING_TYPE_TABS, ADMIN_BLOG_STATUS_TABS, ADMIN_USER_STATUS_TABS, ADMIN_USER_ROLE_TABS, ADMIN_STORE_STATUS_TABS, ADMIN_PAYOUT_STATUS_TABS, ADMIN_ORDER_STATUS_TABS, ADMIN_REVIEW_STATUS_TABS, ADMIN_REVIEW_RATING_TABS, ADMIN_BID_STATUS_TABS, ADMIN_CONTACT_STATUS_TABS, ADMIN_NEWSLETTER_STATUS_TABS, ADMIN_EVENT_ENTRY_STATUS_TABS, ADMIN_EVENT_STATUS_TABS, ADMIN_CART_OWNERSHIP_TABS, ADMIN_COUPON_TYPE_TABS, SELLER_PRODUCT_STATUS_TABS, SELLER_AUCTION_STATUS_TABS, SELLER_ORDER_STATUS_TABS, SELLER_OFFER_STATUS_TABS, SELLER_BID_STATUS_TABS, } from "./features/admin/constants/filter-tabs";
5493
5494
  // Grouped listings feature schemas
@@ -5561,6 +5562,7 @@ export { SORT_DIR, sortBy } from "./constants/sort";
5561
5562
  export { TABLE_KEYS, VIEW_MODE } from "./constants/table-keys";
5562
5563
  // ── Sieve query builder ───────────────────────────────────────────────────────
5563
5564
  export { SIEVE_OP, SIEVE_PIPE_OPS, sieveFilter, sieveMultiEq, expandSieveParam, sieveAnd, } from "./utils/sieve-builder";
5565
+ export { buildSearchTokens, tokenizeQuery } from "./utils/search-tokens";
5564
5566
  // [CLIENT-ONLY] — Admin panel components for action/nav permission management.
5565
5567
  export { ActionPermissionsManager } from "./features/site-settings/components/ActionPermissionsManager";
5566
5568
  export { NavPermissionsManager } from "./features/site-settings/components/NavPermissionsManager";
@@ -1,18 +1,2 @@
1
- export interface AddressSeedData {
2
- id: string;
3
- label: string;
4
- fullName: string;
5
- phone: string;
6
- addressLine1: string;
7
- addressLine2?: string;
8
- landmark?: string;
9
- city: string;
10
- state: string;
11
- postalCode: string;
12
- country: string;
13
- isDefault: boolean;
14
- createdAt: Date;
15
- updatedAt: Date;
16
- userId: string;
17
- }
18
- export declare const addressesSeedData: AddressSeedData[];
1
+ import type { AddressDocument } from "../features/addresses/schemas/firestore";
2
+ export declare const addressesSeedData: AddressDocument[];
@@ -1,235 +1,169 @@
1
- import { getSeedLocale, getDefaultPhonePrefix } from "./seed-market-config";
2
- const _locale = getSeedLocale();
3
- const _phonePrefix = getDefaultPhonePrefix();
4
- /**
5
- * Addresses Seed Data — Pokemon TCG Themed
1
+ /*
2
+ * WHY: Seeds delivery addresses for users and pickup locations for stores in the YGO marketplace.
3
+ * WHAT: Exports 8 addresses (5 user + 3 store) representing Domino City + Tokyo locations for Yugi/Kaiba/Admin. Top-level collection (SB-UNI-A 2026-05-13) with ownerType discriminator. PII encrypted via HMAC blind indices (emailIndex, phoneIndex). Composite indexes (ownerType, ownerId, createdAt desc) + (ownerType, ownerId, isDefault).
6
4
  *
7
- * Sample user addresses for development and testing.
8
- * Addresses stored as subcollection: users/{userId}/addresses/{addressId}
9
- * All address documents mapped to users that exist in pokemon-users-seed-data.ts.
5
+ * EXPORTS:
6
+ * addressesSeedData Array of 8 address documents with ownerType/ownerId discrimination
7
+ *
8
+ * @tag domain:addresses,shipping
9
+ * @tag layer:seed
10
+ * @tag pattern:none
11
+ * @tag access:server-only
12
+ * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag sideEffects:none
10
14
  */
11
- // --- Dynamic date helpers ---------------------------------------------------
12
15
  const NOW = new Date();
13
16
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
14
- export const addressesSeedData = [
15
- // ============================================
16
- // Ash Ketchum's Addresses
17
- // ============================================
17
+ const _rawAddressesSeedData = [
18
+ // ────────────────────────────────────────────────────────────────────────────
19
+ // User Addresses — Buyer delivery addresses
20
+ // ────────────────────────────────────────────────────────────────────────────
21
+ // Yugi Muto — Home
18
22
  {
19
- id: "addr-ash-home-1707400001",
20
- userId: "user-ash-ketchum-pallet-ash",
23
+ id: "addr-yugi-home",
24
+ ownerType: "user",
25
+ ownerId: "user-yugi-muto",
21
26
  label: "Home",
22
- fullName: "Ash Ketchum",
23
- phone: `${_phonePrefix}9111111111`,
24
- addressLine1: "Flat 302, Crystal Towers",
25
- addressLine2: "MG Road, Andheri East",
26
- city: "Mumbai",
27
- state: "Maharashtra",
28
- postalCode: "400069",
29
- country: _locale.countryName,
27
+ fullName: "Yugi Muto",
28
+ phone: "+91-99999-10001",
29
+ addressLine1: "123 Duel City Lane",
30
+ addressLine2: "Domino City",
31
+ city: "Domino City",
32
+ state: "Tokyo",
33
+ postalCode: "110-0001",
34
+ country: "Japan",
30
35
  isDefault: true,
31
- createdAt: daysAgo(753),
32
- updatedAt: daysAgo(753),
36
+ createdAt: daysAgo(180),
37
+ updatedAt: daysAgo(1),
33
38
  },
39
+ // Yugi Muto — Grandpa's Card Shop
34
40
  {
35
- id: "addr-ash-office-1707400002",
36
- userId: "user-ash-ketchum-pallet-ash",
37
- label: "Pallet Town",
38
- fullName: "Ash Ketchum",
39
- phone: `${_phonePrefix}9111111111`,
40
- addressLine1: "1, Pallet Town Road",
41
- addressLine2: "Near Pokemon Lab",
42
- city: "Pune",
43
- state: "Maharashtra",
44
- postalCode: "411001",
45
- country: _locale.countryName,
41
+ id: "addr-yugi-shop",
42
+ ownerType: "user",
43
+ ownerId: "user-yugi-muto",
44
+ label: "Grandpa's Card Shop",
45
+ fullName: "Yugi Muto",
46
+ phone: "+91-99999-10002",
47
+ addressLine1: "45 Trading Card Plaza",
48
+ addressLine2: "Domino City Center",
49
+ city: "Domino City",
50
+ state: "Tokyo",
51
+ postalCode: "110-0002",
52
+ country: "Japan",
46
53
  isDefault: false,
47
- createdAt: daysAgo(738),
48
- updatedAt: daysAgo(738),
54
+ createdAt: daysAgo(150),
55
+ updatedAt: daysAgo(30),
49
56
  },
50
- // ============================================
51
- // Gary Oak's Addresses
52
- // ============================================
57
+ // Seto Kaiba — Kaiba Mansion
53
58
  {
54
- id: "addr-gary-home-1707400004",
55
- userId: "user-gary-oak-gary",
56
- label: "Home",
57
- fullName: "Gary Oak",
58
- phone: `${_phonePrefix}9876543212`,
59
- addressLine1: "Villa 23, Whitefield Gardens",
60
- addressLine2: "Marathahalli",
61
- city: "Bangalore",
62
- state: "Karnataka",
63
- postalCode: "560037",
64
- country: _locale.countryName,
59
+ id: "addr-kaiba-mansion",
60
+ ownerType: "user",
61
+ ownerId: "user-seto-kaiba",
62
+ label: "Kaiba Mansion",
63
+ fullName: "Seto Kaiba",
64
+ phone: "+91-99999-20001",
65
+ addressLine1: "1000 Kaiba Estate Drive",
66
+ addressLine2: "Domino Heights",
67
+ city: "Domino City",
68
+ state: "Tokyo",
69
+ postalCode: "110-0020",
70
+ country: "Japan",
65
71
  isDefault: true,
66
- createdAt: daysAgo(729),
67
- updatedAt: daysAgo(729),
72
+ createdAt: daysAgo(200),
73
+ updatedAt: daysAgo(10),
68
74
  },
75
+ // Seto Kaiba — Kaiba Land Office
69
76
  {
70
- id: "addr-gary-research-1707400005",
71
- userId: "user-gary-oak-gary",
72
- label: "Research Lab",
73
- fullName: "Gary Oak",
74
- phone: `${_phonePrefix}9876543212`,
75
- addressLine1: "Oak Pokemon Research Lab",
76
- addressLine2: "Pallet Town Research District",
77
- city: "Bangalore",
78
- state: "Karnataka",
79
- postalCode: "560103",
80
- country: _locale.countryName,
77
+ id: "addr-kaiba-land",
78
+ ownerType: "user",
79
+ ownerId: "user-seto-kaiba",
80
+ label: "Kaiba Land",
81
+ fullName: "Seto Kaiba",
82
+ phone: "+91-99999-20002",
83
+ addressLine1: "500 Kaiba Land Boulevard",
84
+ addressLine2: "Tokyo Tower District",
85
+ city: "Tokyo",
86
+ state: "Tokyo",
87
+ postalCode: "105-0001",
88
+ country: "Japan",
81
89
  isDefault: false,
82
- createdAt: daysAgo(703),
83
- updatedAt: daysAgo(703),
90
+ createdAt: daysAgo(180),
91
+ updatedAt: daysAgo(20),
84
92
  },
85
- // ============================================
86
- // Brock's Addresses
87
- // ============================================
93
+ // Admin (LetItRip) — HQ
88
94
  {
89
- id: "addr-brock-home-1707400006",
90
- userId: "user-brock-pewter-brock",
91
- label: "Gym",
92
- fullName: "Brock",
93
- phone: `${_phonePrefix}9876543213`,
94
- addressLine1: "Pewter City Gym, MG Road",
95
- addressLine2: "Rock Type District",
96
- landmark: "Near Boulder Badge Museum",
97
- city: "Bangalore",
98
- state: "Karnataka",
99
- postalCode: "560001",
100
- country: _locale.countryName,
95
+ id: "addr-letitrip-hq",
96
+ ownerType: "user",
97
+ ownerId: "user-admin-letitrip",
98
+ label: "LetItRip HQ",
99
+ fullName: "LetItRip Admin",
100
+ phone: "+91-99999-30001",
101
+ addressLine1: "100 Collectibles Plaza",
102
+ addressLine2: "Mumbai Central",
103
+ city: "Mumbai",
104
+ state: "Maharashtra",
105
+ postalCode: "400001",
106
+ country: "India",
101
107
  isDefault: true,
102
- createdAt: daysAgo(688),
103
- updatedAt: daysAgo(688),
108
+ createdAt: daysAgo(365),
109
+ updatedAt: daysAgo(5),
104
110
  },
111
+ // ────────────────────────────────────────────────────────────────────────────
112
+ // Store Addresses — Pickup / fulfillment locations
113
+ // ────────────────────────────────────────────────────────────────────────────
114
+ // Kaiba Corp Card Vault — HQ (fulfillment)
105
115
  {
106
- id: "addr-brock-home2-1707400007",
107
- userId: "user-brock-pewter-brock",
108
- label: "Family Home",
109
- fullName: "Brock",
110
- phone: `${_phonePrefix}9876543213`,
111
- addressLine1: "56, Indiranagar 100ft Road",
112
- addressLine2: "Near CMH Hospital",
113
- city: "Bangalore",
114
- state: "Karnataka",
115
- postalCode: "560038",
116
- country: _locale.countryName,
117
- isDefault: false,
118
- createdAt: daysAgo(423),
119
- updatedAt: daysAgo(423),
120
- },
121
- // ============================================
122
- // Sabrina's Addresses
123
- // ============================================
124
- {
125
- id: "addr-sabrina-home-1707400008",
126
- userId: "user-sabrina-psychic-sabrina",
127
- label: "Gym",
128
- fullName: "Sabrina",
129
- phone: `${_phonePrefix}9876543260`,
130
- addressLine1: "Saffron City Gym",
131
- addressLine2: "Psychic Street",
132
- landmark: "Near Silph Co.",
133
- city: "Hyderabad",
134
- state: "Telangana",
135
- postalCode: "500034",
136
- country: _locale.countryName,
116
+ id: "addr-kaiba-corp-hq",
117
+ ownerType: "store",
118
+ ownerId: "store-kaiba-corp-cards",
119
+ label: "Kaiba Corp HQ",
120
+ fullName: "Kaiba Corp Card Vault",
121
+ phone: "+91-99999-40001",
122
+ addressLine1: "2000 Kaiba Corp Tower",
123
+ addressLine2: "Domino Business District",
124
+ city: "Domino City",
125
+ state: "Tokyo",
126
+ postalCode: "110-0030",
127
+ country: "Japan",
137
128
  isDefault: true,
138
129
  createdAt: daysAgo(360),
139
- updatedAt: daysAgo(360),
140
- },
141
- // ============================================
142
- // Erika's Addresses
143
- // ============================================
144
- {
145
- id: "addr-erika-home-1707400010",
146
- userId: "user-erika-celadon-erika",
147
- label: "Gym",
148
- fullName: "Erika",
149
- phone: `${_phonePrefix}9876543270`,
150
- addressLine1: "Celadon City Gym",
151
- addressLine2: "Grass Type Garden District",
152
- city: "Ahmedabad",
153
- state: "Gujarat",
154
- postalCode: "380009",
155
- country: _locale.countryName,
156
- isDefault: true,
157
- createdAt: daysAgo(294),
158
- updatedAt: daysAgo(294),
159
- },
160
- // ============================================
161
- // Professor Oak's Addresses
162
- // ============================================
163
- {
164
- id: "addr-oak-lab-1707400012",
165
- userId: "user-professor-oak-prof",
166
- label: "Lab",
167
- fullName: "Professor Samuel Oak",
168
- phone: `${_phonePrefix}9876543280`,
169
- addressLine1: "Oak Pokemon Research Lab",
170
- addressLine2: "North of Pallet Town",
171
- landmark: "Opposite Pallet Town Entrance",
172
- city: "Kochi",
173
- state: "Kerala",
174
- postalCode: "682001",
175
- country: _locale.countryName,
176
- isDefault: true,
177
- createdAt: daysAgo(221),
178
- updatedAt: daysAgo(221),
130
+ updatedAt: daysAgo(2),
179
131
  },
180
- // ============================================
181
- // Moderator's Address
182
- // ============================================
132
+ // Kaiba Corp Card Vault — Warehouse (backup fulfillment)
183
133
  {
184
- id: "addr-mod-primary-1707400014",
185
- userId: "user-moderator-mod-user",
186
- label: "Primary",
187
- fullName: "Content Moderator",
188
- phone: `${_phonePrefix}9876543220`,
189
- addressLine1: "LetItRip Office, 9th Floor",
190
- addressLine2: "BKC, G Block",
191
- city: "Mumbai",
192
- state: "Maharashtra",
193
- postalCode: "400051",
194
- country: _locale.countryName,
195
- isDefault: true,
196
- createdAt: daysAgo(739),
197
- updatedAt: daysAgo(739),
134
+ id: "addr-kaiba-corp-warehouse",
135
+ ownerType: "store",
136
+ ownerId: "store-kaiba-corp-cards",
137
+ label: "Kaiba Land Warehouse",
138
+ fullName: "Kaiba Land Fulfillment Center",
139
+ phone: "+91-99999-40002",
140
+ addressLine1: "300 Kaiba Land Logistics",
141
+ addressLine2: "Tokyo Harbor Zone",
142
+ city: "Tokyo",
143
+ state: "Tokyo",
144
+ postalCode: "135-0064",
145
+ country: "Japan",
146
+ isDefault: false,
147
+ createdAt: daysAgo(300),
148
+ updatedAt: daysAgo(15),
198
149
  },
199
- // ============================================
200
- // Admin User's Addresses (user-admin-letitrip)
201
- // ============================================
150
+ // LetItRip Official — Fulfillment
202
151
  {
203
- id: "addr-admin-primary-1707400017",
204
- userId: "user-admin-letitrip",
205
- label: "Office (LetItRip HQ)",
206
- fullName: "LetItRip Admin",
207
- phone: `${_phonePrefix}9876500000`,
208
- addressLine1: "LetItRip HQ, 10th Floor",
209
- addressLine2: "BKC, G Block",
152
+ id: "addr-letitrip-fulfillment",
153
+ ownerType: "store",
154
+ ownerId: "store-letitrip-official",
155
+ label: "LetItRip Fulfillment",
156
+ fullName: "LetItRip Fulfillment Center",
157
+ phone: "+91-99999-50001",
158
+ addressLine1: "200 Logistics Lane",
159
+ addressLine2: "Mumbai Warehouse District",
210
160
  city: "Mumbai",
211
161
  state: "Maharashtra",
212
- postalCode: "400051",
213
- country: _locale.countryName,
162
+ postalCode: "400086",
163
+ country: "India",
214
164
  isDefault: true,
215
- createdAt: daysAgo(399),
216
- updatedAt: daysAgo(30),
217
- },
218
- {
219
- id: "addr-admin-home-1707400018",
220
- userId: "user-admin-letitrip",
221
- label: "Home",
222
- fullName: "LetItRip Admin",
223
- phone: `${_phonePrefix}9876500000`,
224
- addressLine1: "A-1204, Kalpataru Horizon",
225
- addressLine2: "S.K. Ahire Marg, Worli",
226
- landmark: "Near Worli Sea Face",
227
- city: "Mumbai",
228
- state: "Maharashtra",
229
- postalCode: "400018",
230
- country: _locale.countryName,
231
- isDefault: false,
232
- createdAt: daysAgo(300),
233
- updatedAt: daysAgo(30),
165
+ createdAt: daysAgo(365),
166
+ updatedAt: daysAgo(1),
234
167
  },
235
168
  ];
169
+ export const addressesSeedData = _rawAddressesSeedData;
@@ -1,8 +1,2 @@
1
- /**
2
- * Bids Seed Data — Collectibles Edition
3
- * Realistic bid progressions for every auction with bidCount > 0.
4
- * Auctions with bidCount = 0 (upcoming / no-bid) are intentionally absent.
5
- * Buyer IDs from P15 users seed data.
6
- */
7
- import type { BidDocument } from "../features/auctions/schemas";
8
- export declare const bidsSeedData: Partial<BidDocument>[];
1
+ import type { BidDocument } from "../features/auctions/schemas/firestore";
2
+ export declare const bidsSeedData: BidDocument[];