@mohasinac/appkit 2.7.53 → 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.
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +1 -1
- package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -3
- package/dist/_internal/server/jobs/core/bundleStockSync.js +9 -7
- package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +12 -3
- package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -13
- package/dist/_internal/server/jobs/core/onProductWrite.js +1 -3
- package/dist/_internal/server/jobs/handlers/onProductStockChange.js +11 -2
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/field-names.d.ts +4 -3
- package/dist/constants/field-names.js +8 -8
- package/dist/errors/error-codes.d.ts +3 -0
- package/dist/errors/error-codes.js +3 -0
- package/dist/errors/messages.d.ts +3 -0
- package/dist/errors/messages.js +3 -0
- package/dist/features/admin/types/product.types.d.ts +1 -1
- package/dist/features/admin/types/product.types.js +2 -3
- package/dist/features/auctions/actions/bid-actions.d.ts +9 -0
- package/dist/features/auctions/actions/bid-actions.js +61 -0
- package/dist/features/auctions/components/AuctionDetailPageView.d.ts +2 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +5 -4
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +32 -2
- package/dist/features/auctions/types/index.d.ts +1 -1
- package/dist/features/layout/AppLayoutShell.js +1 -1
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -11
- package/dist/features/products/api/[id]/route.js +4 -8
- package/dist/features/products/api/route.js +1 -3
- package/dist/features/products/components/AuctionsIndexListing.js +3 -11
- package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -10
- package/dist/features/products/components/ProductFilters.d.ts +33 -9
- package/dist/features/products/components/ProductFilters.js +6 -29
- package/dist/features/products/components/ProductForm.js +2 -3
- package/dist/features/products/constants/sieve.d.ts +162 -0
- package/dist/features/products/constants/sieve.js +95 -0
- package/dist/features/products/repository/products.repository.d.ts +5 -0
- package/dist/features/products/repository/products.repository.js +23 -3
- package/dist/features/products/schemas/firestore.d.ts +4 -4
- package/dist/features/products/schemas/firestore.js +2 -3
- package/dist/features/products/schemas/index.d.ts +6 -6
- package/dist/features/products/schemas/index.js +2 -6
- package/dist/features/products/types/index.d.ts +1 -1
- package/dist/features/seller/actions/offer-actions.js +2 -2
- package/dist/features/wishlist/types/index.d.ts +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +6 -4
- package/dist/seed/addresses-seed-data.d.ts +2 -18
- package/dist/seed/addresses-seed-data.js +137 -203
- package/dist/seed/bids-seed-data.d.ts +2 -8
- package/dist/seed/bids-seed-data.js +172 -648
- package/dist/seed/blog-posts-seed-data.d.ts +0 -5
- package/dist/seed/blog-posts-seed-data.js +341 -596
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -5
- package/dist/seed/carousel-slides-seed-data.js +61 -192
- package/dist/seed/carousels-seed-data.js +18 -1
- package/dist/seed/cart-seed-data.d.ts +1 -18
- package/dist/seed/cart-seed-data.js +116 -293
- package/dist/seed/categories-seed-data.d.ts +0 -6
- package/dist/seed/categories-seed-data.js +1409 -1537
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -11
- package/dist/seed/claimed-coupons-seed-data.js +32 -29
- package/dist/seed/conversations-seed-data.d.ts +0 -6
- package/dist/seed/conversations-seed-data.js +132 -280
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -16
- package/dist/seed/coupon-usage-seed-data.js +30 -44
- package/dist/seed/coupons-seed-data.d.ts +0 -6
- package/dist/seed/coupons-seed-data.js +141 -489
- package/dist/seed/events-seed-data.d.ts +0 -6
- package/dist/seed/events-seed-data.js +201 -379
- package/dist/seed/faq-seed-data.d.ts +0 -14
- package/dist/seed/faq-seed-data.js +609 -1184
- package/dist/seed/grouped-listings-seed-data.d.ts +119 -8
- package/dist/seed/grouped-listings-seed-data.js +148 -233
- package/dist/seed/history-seed-data.d.ts +0 -7
- package/dist/seed/history-seed-data.js +50 -54
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -5
- package/dist/seed/homepage-sections-seed-data.js +83 -175
- package/dist/seed/index.d.ts +1 -1
- package/dist/seed/index.js +1 -1
- package/dist/seed/manifest.js +2 -2
- package/dist/seed/notifications-seed-data.d.ts +0 -6
- package/dist/seed/notifications-seed-data.js +309 -196
- package/dist/seed/offers-seed-data.d.ts +0 -8
- package/dist/seed/offers-seed-data.js +118 -197
- package/dist/seed/orders-seed-data.d.ts +2 -8
- package/dist/seed/orders-seed-data.js +248 -1510
- package/dist/seed/payouts-seed-data.d.ts +0 -6
- package/dist/seed/payouts-seed-data.js +102 -441
- package/dist/seed/products-auctions-seed-data.d.ts +1 -14
- package/dist/seed/products-auctions-seed-data.js +612 -1084
- package/dist/seed/products-preorders-seed-data.d.ts +119 -14
- package/dist/seed/products-preorders-seed-data.js +154 -455
- package/dist/seed/products-standard-seed-data.d.ts +1 -15
- package/dist/seed/products-standard-seed-data.js +1355 -4128
- package/dist/seed/reviews-seed-data.d.ts +2 -8
- package/dist/seed/reviews-seed-data.js +99 -1182
- package/dist/seed/scammers-seed-data.d.ts +0 -15
- package/dist/seed/scammers-seed-data.js +36 -37
- package/dist/seed/sessions-seed-data.d.ts +0 -13
- package/dist/seed/sessions-seed-data.js +58 -335
- package/dist/seed/site-settings-seed-data.d.ts +0 -4
- package/dist/seed/site-settings-seed-data.js +61 -52
- package/dist/seed/store-addresses-seed-data.js +27 -151
- package/dist/seed/store-extensions-seed-data.d.ts +0 -7
- package/dist/seed/store-extensions-seed-data.js +147 -261
- package/dist/seed/stores-seed-data.d.ts +0 -5
- package/dist/seed/stores-seed-data.js +222 -184
- package/dist/seed/sub-listings-seed-data.d.ts +119 -0
- package/dist/seed/sub-listings-seed-data.js +447 -0
- package/dist/seed/support-tickets-seed-data.d.ts +0 -7
- package/dist/seed/support-tickets-seed-data.js +82 -75
- package/dist/seed/users-seed-data.d.ts +0 -5
- package/dist/seed/users-seed-data.js +279 -634
- package/dist/seed/wishlists-seed-data.d.ts +0 -9
- package/dist/seed/wishlists-seed-data.js +36 -52
- package/dist/seo/json-ld.js +6 -4
- package/dist/styles.css +8052 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/search-tokens.d.ts +2 -0
- package/dist/utils/search-tokens.js +21 -0
- package/package.json +2 -2
- 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", "
|
|
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" | "
|
|
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" | "
|
|
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", "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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.
|
|
271
|
-
product.status === ProductStatusValues.
|
|
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" | "
|
|
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 {
|
|
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
|
-
//
|
|
1321
|
-
export {
|
|
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
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
-
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
17
|
+
const _rawAddressesSeedData = [
|
|
18
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
19
|
+
// User Addresses — Buyer delivery addresses
|
|
20
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
21
|
+
// Yugi Muto — Home
|
|
18
22
|
{
|
|
19
|
-
id: "addr-
|
|
20
|
-
|
|
23
|
+
id: "addr-yugi-home",
|
|
24
|
+
ownerType: "user",
|
|
25
|
+
ownerId: "user-yugi-muto",
|
|
21
26
|
label: "Home",
|
|
22
|
-
fullName: "
|
|
23
|
-
phone:
|
|
24
|
-
addressLine1: "
|
|
25
|
-
addressLine2: "
|
|
26
|
-
city: "
|
|
27
|
-
state: "
|
|
28
|
-
postalCode: "
|
|
29
|
-
country:
|
|
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(
|
|
32
|
-
updatedAt: daysAgo(
|
|
36
|
+
createdAt: daysAgo(180),
|
|
37
|
+
updatedAt: daysAgo(1),
|
|
33
38
|
},
|
|
39
|
+
// Yugi Muto — Grandpa's Card Shop
|
|
34
40
|
{
|
|
35
|
-
id: "addr-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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(
|
|
48
|
-
updatedAt: daysAgo(
|
|
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-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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(
|
|
67
|
-
updatedAt: daysAgo(
|
|
72
|
+
createdAt: daysAgo(200),
|
|
73
|
+
updatedAt: daysAgo(10),
|
|
68
74
|
},
|
|
75
|
+
// Seto Kaiba — Kaiba Land Office
|
|
69
76
|
{
|
|
70
|
-
id: "addr-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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(
|
|
83
|
-
updatedAt: daysAgo(
|
|
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-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
city: "
|
|
98
|
-
state: "
|
|
99
|
-
postalCode: "
|
|
100
|
-
country:
|
|
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(
|
|
103
|
-
updatedAt: daysAgo(
|
|
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-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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(
|
|
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-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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: "
|
|
213
|
-
country:
|
|
162
|
+
postalCode: "400086",
|
|
163
|
+
country: "India",
|
|
214
164
|
isDefault: true,
|
|
215
|
-
createdAt: daysAgo(
|
|
216
|
-
updatedAt: daysAgo(
|
|
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
|
-
|
|
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[];
|