@mohasinac/appkit 3.5.6 → 3.5.7

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 (57) hide show
  1. package/dist/_internal/client/features/tour/TourProvider.d.ts +11 -3
  2. package/dist/_internal/client/features/tour/TourProvider.js +93 -4
  3. package/dist/_internal/server/features/checkout/actions.js +65 -11
  4. package/dist/_internal/server/features/orders/adapters.js +3 -0
  5. package/dist/_internal/shared/actions/action-registry.js +20 -0
  6. package/dist/_internal/shared/checkout/order-math.d.ts +21 -0
  7. package/dist/_internal/shared/checkout/order-math.js +24 -0
  8. package/dist/_internal/shared/features/orders/config.d.ts +1 -1
  9. package/dist/_internal/shared/features/orders/config.js +1 -1
  10. package/dist/_internal/shared/fees/calculator.d.ts +13 -0
  11. package/dist/_internal/shared/fees/calculator.js +8 -0
  12. package/dist/client.d.ts +8 -0
  13. package/dist/client.js +8 -0
  14. package/dist/constants/api-endpoints.d.ts +9 -0
  15. package/dist/constants/api-endpoints.js +3 -0
  16. package/dist/features/admin/components/AdminBundleEditorView.d.ts +8 -1
  17. package/dist/features/admin/components/AdminBundleEditorView.js +15 -11
  18. package/dist/features/admin/components/AdminPayoutsView.js +41 -4
  19. package/dist/features/admin/components/AdminSiteSettingsView.js +49 -1
  20. package/dist/features/admin/schemas/firestore.d.ts +8 -0
  21. package/dist/features/admin/schemas/firestore.js +6 -0
  22. package/dist/features/layout/TitleBarLayout.js +4 -4
  23. package/dist/features/messages/hooks/useConversations.d.ts +7 -1
  24. package/dist/features/messages/hooks/useConversations.js +7 -6
  25. package/dist/features/orders/actions/order-actions.d.ts +10 -0
  26. package/dist/features/orders/actions/order-actions.js +57 -4
  27. package/dist/features/orders/schemas/firestore.d.ts +16 -0
  28. package/dist/features/orders/types/index.d.ts +2 -0
  29. package/dist/features/products/schemas/firestore.d.ts +4 -0
  30. package/dist/features/scams/actions/scam-actions.d.ts +12 -0
  31. package/dist/features/scams/actions/scam-actions.js +31 -0
  32. package/dist/features/scams/components/SellerTrustBadge.d.ts +16 -0
  33. package/dist/features/scams/components/SellerTrustBadge.js +21 -0
  34. package/dist/features/scams/components/index.d.ts +2 -0
  35. package/dist/features/scams/components/index.js +1 -0
  36. package/dist/features/seller/components/SellerBundlesView.d.ts +5 -5
  37. package/dist/features/seller/components/SellerBundlesView.js +81 -84
  38. package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
  39. package/dist/features/seller/components/SellerProductShell.js +7 -1
  40. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +8 -1
  41. package/dist/features/stores/components/StoreDetailLayoutView.js +9 -3
  42. package/dist/features/stores/components/StoreHeader.d.ts +4 -1
  43. package/dist/features/stores/components/StoreHeader.js +3 -2
  44. package/dist/index.d.ts +7 -3
  45. package/dist/index.js +6 -2
  46. package/dist/jobs.d.ts +2 -0
  47. package/dist/jobs.js +6 -0
  48. package/dist/next/routing/route-map.d.ts +3 -0
  49. package/dist/next/routing/route-map.js +1 -0
  50. package/dist/security/rate-limit.d.ts +5 -0
  51. package/dist/security/rate-limit.js +2 -0
  52. package/dist/seed/categories-seed-data.js +180 -1
  53. package/dist/seed/grouped-listings-seed-data.d.ts +2 -0
  54. package/dist/seed/products-preorders-seed-data.d.ts +2 -0
  55. package/dist/server.d.ts +4 -0
  56. package/dist/server.js +5 -0
  57. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -4222,6 +4222,9 @@ export { useTrackOrder } from "./features/orders/index";
4222
4222
  // cancelOrderForUser - Shared export for cancel order for user.
4223
4223
  export { cancelOrderForUser } from "./features/orders/server";
4224
4224
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4225
+ // cancelOrderItemsForUser - Cancels a subset of line items on an order and continues with the rest.
4226
+ export { cancelOrderItemsForUser } from "./features/orders/server";
4227
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4225
4228
  // getOrderByIdForUser - Helper for get order by id for user.
4226
4229
  export { getOrderByIdForUser } from "./features/orders/server";
4227
4230
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -4517,7 +4520,7 @@ export { cartRequiresShipping, cartIsDigitalOnly, cartIsChatOnly, } from "./_int
4517
4520
  export { ACTIONS, action, act, canPerformAction, actionsForListingType, actionLabel, } from "./_internal/shared/actions/action-registry";
4518
4521
  export { buildBulkAction } from "./_internal/shared/actions/bulk-helpers";
4519
4522
  // Shared fee calculator — platform/gateway/GST/COD handling fee math (pure, client-safe).
4520
- export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, } from "./_internal/shared/fees/calculator";
4523
+ export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, calculateGst, } from "./_internal/shared/fees/calculator";
4521
4524
  // EMI eligibility + schedule computation (pure, client-safe — used for checkout quotes).
4522
4525
  export { checkEmiEligibility, computeEmiSchedule } from "./_internal/shared/features/emi/schedule";
4523
4526
  // User-role predicates â€" SB-UNI-E 2026-05-13.
@@ -5595,8 +5598,9 @@ export { SCAM_TYPES, SCAM_CATEGORIES, SCAM_TYPE_LABELS, SCAM_CATEGORY_LABELS, ge
5595
5598
  export { ScamRegistryView } from "./features/scams/components/ScamRegistryView";
5596
5599
  export { ScamProfileView } from "./features/scams/components/ScamProfileView";
5597
5600
  export { ScamAwarenessModal } from "./features/scams/components/ScamAwarenessModal";
5601
+ export { SellerTrustBadge } from "./features/scams/components/SellerTrustBadge";
5598
5602
  // Scam server actions
5599
- export { listVerifiedScammers, getPublicScammerById, getScammerProfilePageData, } from "./features/scams/actions/scam-actions";
5603
+ export { listVerifiedScammers, getPublicScammerById, getScammerProfilePageData, getSellerTrustStatus, } from "./features/scams/actions/scam-actions";
5600
5604
  // --- Shell primitives (UX1/UX2/UX3/UX6) ----------------------------------------
5601
5605
  // [CLIENT] SellerProductShell â€" full-flow create/edit shell for standard, auction, and pre-order listings.
5602
5606
  export { SellerProductShell } from "./features/seller/components/SellerProductShell";
package/dist/jobs.d.ts CHANGED
@@ -22,5 +22,7 @@
22
22
  */
23
23
  export { couponExpiryHandler, offerExpiryHandler, cartPruneHandler, notificationPruneHandler, dailyDataCleanupHandler, cleanupRtdbEventsHandler, auctionSettlementHandler, autoPayoutEligibilityHandler, countersReconcileHandler, onOrderCreateHandler, onOrderStatusChangeHandler, onBidPlacedHandler, onReviewWriteHandler, promotionsHandler, mediaTmpCleanupHandler, pendingOrderTimeoutHandler, productStatsSyncHandler, positionsReconcileHandler, payoutBatchHandler, weeklyPayoutEligibilityHandler, onCategoryWriteHandler, onProductWriteHandler, onStoreWriteHandler, adminAnalyticsHandler, storeAnalyticsHandler, listingProcessorHandler, supportedListingCollections, prizeRevealOpenHandler, prizeRevealCloseHandler, prizeRevealExpiryHandler, prizeRevealReminderHandler, bundleStockSyncHandler, onProductStockChangeHandler, triggerEventRaffleHandler, assignSpinPrizeHandler, draftPruneHandler, onSupportTicketCreateHandler, onSupportTicketUpdateHandler, onUserBanChangeHandler, onScamReportCreateHandler, onScamReportUpdateHandler, bindSchedule, bindDocumentWritten, bindDocumentCreated, bindDocumentUpdated, bindCallable, bindHttps, bindToFirebase, } from "./_internal/server/jobs/index.js";
24
24
  export { defineFunction, mergeFunctionRegistries, bindAllFromRegistry, APPKIT_FUNCTIONS, APPKIT_FUNCTIONS_BY_NAME, } from "./_internal/server/functions/index.js";
25
+ export { orderRepository, siteSettingsRepository } from "./repositories/index.js";
26
+ export type { OrderDocument, OrderDocumentItem } from "./features/orders/index.js";
25
27
  export type { PromotionsCallableResult, AdminAnalyticsResult, StoreAnalyticsInput, StoreAnalyticsResult, ListingRequestBody, ListingResponseBody, JobContext, JobLogger, JobHandlers, ScheduleHandler, FirestoreTriggerHandler, FirestoreTriggerEvent, CallableHandler, BindHttpsOptions, } from "./_internal/server/jobs/index.js";
26
28
  export type { DocumentCreatedTrigger, DocumentTriggerFunctionDefinition, DocumentUpdatedTrigger, DocumentWrittenTrigger, FunctionDefinition, FunctionMemory, FunctionOptions, FunctionTrigger, HttpsFunctionDefinition, HttpsTrigger, ScheduledFunctionDefinition, ScheduleTrigger, } from "./_internal/server/functions/index.js";
package/dist/jobs.js CHANGED
@@ -40,3 +40,9 @@ bindSchedule, bindDocumentWritten, bindDocumentCreated, bindDocumentUpdated, bin
40
40
  // mergeFunctionRegistries(...) and binding the result with
41
41
  // bindAllFromRegistry(...).
42
42
  export { defineFunction, mergeFunctionRegistries, bindAllFromRegistry, APPKIT_FUNCTIONS, APPKIT_FUNCTIONS_BY_NAME, } from "./_internal/server/functions/index.js";
43
+ // Narrow repository re-export for consumer Firebase Functions (e.g. invoice
44
+ // PDF generation) — imports directly from the repositories barrel rather
45
+ // than `index.ts`/`server.ts`, whose much broader module graphs pull in
46
+ // Next.js OG-rendering code that fails to bundle under tsup/esbuild's CJS
47
+ // output for the Functions runtime.
48
+ export { orderRepository, siteSettingsRepository } from "./repositories/index.js";
@@ -154,6 +154,7 @@ export declare const DEFAULT_ROUTE_MAP: {
154
154
  };
155
155
  readonly STORE: {
156
156
  readonly DASHBOARD: "/store";
157
+ readonly MESSAGES: "/store/messages";
157
158
  readonly PRODUCTS: "/store/products";
158
159
  readonly PRODUCTS_NEW: "/store/products/new";
159
160
  readonly PRODUCTS_EDIT: (id: string) => string;
@@ -513,6 +514,7 @@ export declare const ROUTES: {
513
514
  };
514
515
  readonly STORE: {
515
516
  readonly DASHBOARD: "/store";
517
+ readonly MESSAGES: "/store/messages";
516
518
  readonly PRODUCTS: "/store/products";
517
519
  readonly PRODUCTS_NEW: "/store/products/new";
518
520
  readonly PRODUCTS_EDIT: (id: string) => string;
@@ -731,6 +733,7 @@ export declare const ROUTES: {
731
733
  /** @deprecated Use ROUTES.STORE instead */
732
734
  export declare const SELLER_ROUTES: {
733
735
  readonly DASHBOARD: "/store";
736
+ readonly MESSAGES: "/store/messages";
734
737
  readonly PRODUCTS: "/store/products";
735
738
  readonly PRODUCTS_NEW: "/store/products/new";
736
739
  readonly PRODUCTS_EDIT: (id: string) => string;
@@ -142,6 +142,7 @@ export const DEFAULT_ROUTE_MAP = {
142
142
  },
143
143
  STORE: {
144
144
  DASHBOARD: "/store",
145
+ MESSAGES: "/store/messages",
145
146
  PRODUCTS: "/store/products",
146
147
  PRODUCTS_NEW: "/store/products/new",
147
148
  PRODUCTS_EDIT: (id) => `/store/products/${id}/edit`,
@@ -68,6 +68,11 @@ export declare const RateLimitPresets: {
68
68
  readonly limit: 10;
69
69
  readonly window: 60;
70
70
  };
71
+ /** P-11 — chat message send: 100 per hour per user. */
72
+ readonly CHAT: {
73
+ readonly limit: 100;
74
+ readonly window: 3600;
75
+ };
71
76
  };
72
77
  /** For testing only: clear the in-memory store. */
73
78
  export declare function clearRateLimitStore(): void;
@@ -113,6 +113,8 @@ export const RateLimitPresets = {
113
113
  PASSWORD_RESET: { limit: 3, window: 3600 },
114
114
  EMAIL_VERIFICATION: { limit: 5, window: 3600 },
115
115
  OAUTH: { limit: 10, window: 60 },
116
+ /** P-11 — chat message send: 100 per hour per user. */
117
+ CHAT: { limit: 100, window: 3600 },
116
118
  };
117
119
  /** For testing only: clear the in-memory store. */
118
120
  export function clearRateLimitStore() {
@@ -227,14 +227,193 @@ const brandRows = [
227
227
  seo: { title: "Beyblade | LetItRip", description: "Shop Beyblade — Original, X, Burst, Metal Fight tops and stadiums.", keywords: ["beyblade", "beyblade x", "beyblade burst", "spinning top battle"] },
228
228
  },
229
229
  ];
230
+ // P-17 — 5 bundle rows (categoryType:"bundle") grouping the Beyblade-minimal
231
+ // standard products by generation, plus one cross-generation starter pack.
232
+ // Every bundle references real seeded product ids (products-standard-seed-data.ts),
233
+ // all currently under store-beyblade-arena.
234
+ const bundleRows = [
235
+ {
236
+ id: "bundle-original-collectors-set",
237
+ name: "Original Collector's Set",
238
+ slug: "bundle-original-collectors-set",
239
+ description: "Both original-generation Beyblades — Dranzer S and Driger V — bundled at a discount.",
240
+ categoryType: "bundle",
241
+ bundleKind: "special",
242
+ bundlePriceInPaise: 299900,
243
+ bundleQueryRule: {
244
+ type: "static",
245
+ productIds: ["product-beyblade-original-dranzer-s", "product-beyblade-original-driger-v", "product-beyblade-metal-storm-pegasus"],
246
+ },
247
+ bundleProductIds: ["product-beyblade-original-dranzer-s", "product-beyblade-original-driger-v", "product-beyblade-metal-storm-pegasus"],
248
+ bundleStockStatus: "in_stock",
249
+ display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-original-collectors-set-20260101/1200/900"), showInFooter: false },
250
+ isActive: true,
251
+ isSearchable: true,
252
+ isFeatured: true,
253
+ order: 0,
254
+ rootId: "bundle-original-collectors-set",
255
+ parentIds: [],
256
+ childrenIds: [],
257
+ tier: 0,
258
+ path: "bundle-original-collectors-set",
259
+ position: 0,
260
+ subtreeSize: 1,
261
+ metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 0, totalAuctionCount: 0, totalItemCount: 0, lastUpdated: NOW },
262
+ createdBy: "user-admin-letitrip",
263
+ createdByType: "admin",
264
+ createdAt: daysAgo(20),
265
+ updatedAt: daysAgo(5),
266
+ },
267
+ {
268
+ id: "bundle-metal-fusion-duo",
269
+ name: "Metal Fusion Duo",
270
+ slug: "bundle-metal-fusion-duo",
271
+ description: "Storm Pegasus and Flame Sagittario — the classic Metal Fight rivalry, together.",
272
+ categoryType: "bundle",
273
+ bundleKind: "special",
274
+ bundlePriceInPaise: 349900,
275
+ bundleQueryRule: {
276
+ type: "static",
277
+ productIds: ["product-beyblade-metal-storm-pegasus", "product-beyblade-metal-flame-sagittario", "product-beyblade-original-dranzer-s"],
278
+ },
279
+ bundleProductIds: ["product-beyblade-metal-storm-pegasus", "product-beyblade-metal-flame-sagittario", "product-beyblade-original-dranzer-s"],
280
+ bundleStockStatus: "in_stock",
281
+ display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-metal-fusion-duo-20260101/1200/900"), showInFooter: false },
282
+ isActive: true,
283
+ isSearchable: true,
284
+ isFeatured: false,
285
+ order: 1,
286
+ rootId: "bundle-metal-fusion-duo",
287
+ parentIds: [],
288
+ childrenIds: [],
289
+ tier: 0,
290
+ path: "bundle-metal-fusion-duo",
291
+ position: 0,
292
+ subtreeSize: 1,
293
+ metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 0, totalAuctionCount: 0, totalItemCount: 0, lastUpdated: NOW },
294
+ createdBy: "user-admin-letitrip",
295
+ createdByType: "admin",
296
+ createdAt: daysAgo(18),
297
+ updatedAt: daysAgo(4),
298
+ },
299
+ {
300
+ id: "bundle-burst-battlers-pack",
301
+ name: "Burst Battlers Pack",
302
+ slug: "bundle-burst-battlers-pack",
303
+ description: "Valkyrie and Regalia Genesis — top-tier Burst-era attackers in one set.",
304
+ categoryType: "bundle",
305
+ bundleKind: "special",
306
+ bundlePriceInPaise: 379900,
307
+ bundleQueryRule: {
308
+ type: "static",
309
+ productIds: ["product-beyblade-burst-valkyrie", "product-beyblade-burst-regalia-genesis", "product-beyblade-metal-flame-sagittario"],
310
+ },
311
+ bundleProductIds: ["product-beyblade-burst-valkyrie", "product-beyblade-burst-regalia-genesis", "product-beyblade-metal-flame-sagittario"],
312
+ bundleStockStatus: "in_stock",
313
+ display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-burst-battlers-pack-20260101/1200/900"), showInFooter: false },
314
+ isActive: true,
315
+ isSearchable: true,
316
+ isFeatured: true,
317
+ order: 2,
318
+ rootId: "bundle-burst-battlers-pack",
319
+ parentIds: [],
320
+ childrenIds: [],
321
+ tier: 0,
322
+ path: "bundle-burst-battlers-pack",
323
+ position: 0,
324
+ subtreeSize: 1,
325
+ metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 0, totalAuctionCount: 0, totalItemCount: 0, lastUpdated: NOW },
326
+ createdBy: "user-admin-letitrip",
327
+ createdByType: "admin",
328
+ createdAt: daysAgo(15),
329
+ updatedAt: daysAgo(3),
330
+ },
331
+ {
332
+ id: "bundle-x-series-starter",
333
+ name: "X-Series Starter Set",
334
+ slug: "bundle-x-series-starter",
335
+ description: "Wizard Arrow and Knife Shinobi — the newest X-series tops for new battlers.",
336
+ categoryType: "bundle",
337
+ bundleKind: "special",
338
+ bundlePriceInPaise: 249900,
339
+ bundleQueryRule: {
340
+ type: "static",
341
+ productIds: ["product-beyblade-x-wizard-arrow", "product-beyblade-x-knife-shinobi", "product-beyblade-burst-valkyrie"],
342
+ },
343
+ bundleProductIds: ["product-beyblade-x-wizard-arrow", "product-beyblade-x-knife-shinobi", "product-beyblade-burst-valkyrie"],
344
+ bundleStockStatus: "in_stock",
345
+ display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-x-series-starter-20260101/1200/900"), showInFooter: false },
346
+ isActive: true,
347
+ isSearchable: true,
348
+ isFeatured: false,
349
+ order: 3,
350
+ rootId: "bundle-x-series-starter",
351
+ parentIds: [],
352
+ childrenIds: [],
353
+ tier: 0,
354
+ path: "bundle-x-series-starter",
355
+ position: 0,
356
+ subtreeSize: 1,
357
+ metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 0, totalAuctionCount: 0, totalItemCount: 0, lastUpdated: NOW },
358
+ createdBy: "user-admin-letitrip",
359
+ createdByType: "admin",
360
+ createdAt: daysAgo(12),
361
+ updatedAt: daysAgo(2),
362
+ },
363
+ {
364
+ id: "bundle-every-generation-starter-pack",
365
+ name: "Every Generation Starter Pack",
366
+ slug: "bundle-every-generation-starter-pack",
367
+ description: "One top from every Beyblade generation — Original, Metal Fight, Burst, and X — the ultimate collector's starter pack.",
368
+ categoryType: "bundle",
369
+ bundleKind: "special",
370
+ bundlePriceInPaise: 599900,
371
+ bundleQueryRule: {
372
+ type: "static",
373
+ productIds: [
374
+ "product-beyblade-original-driger-v",
375
+ "product-beyblade-metal-storm-pegasus",
376
+ "product-beyblade-burst-valkyrie",
377
+ "product-beyblade-x-wizard-arrow",
378
+ ],
379
+ },
380
+ bundleProductIds: [
381
+ "product-beyblade-original-driger-v",
382
+ "product-beyblade-metal-storm-pegasus",
383
+ "product-beyblade-burst-valkyrie",
384
+ "product-beyblade-x-wizard-arrow",
385
+ ],
386
+ bundleStockStatus: "in_stock",
387
+ display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-every-generation-starter-pack-20260101/1200/900"), showInFooter: false },
388
+ isActive: true,
389
+ isSearchable: true,
390
+ isFeatured: true,
391
+ order: 4,
392
+ rootId: "bundle-every-generation-starter-pack",
393
+ parentIds: [],
394
+ childrenIds: [],
395
+ tier: 0,
396
+ path: "bundle-every-generation-starter-pack",
397
+ position: 0,
398
+ subtreeSize: 1,
399
+ metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 0, totalAuctionCount: 0, totalItemCount: 0, lastUpdated: NOW },
400
+ createdBy: "user-admin-letitrip",
401
+ createdByType: "admin",
402
+ createdAt: daysAgo(10),
403
+ updatedAt: daysAgo(1),
404
+ },
405
+ ];
230
406
  export const categoriesSeedData = [
231
407
  ...rawCategories.map((c) => ({ ancestors: [], ...c, createdByType: "admin" })),
232
408
  ...sublistingRows.map((s) => ({ ancestors: [], ...s, createdByType: "admin" })),
233
409
  ...brandRows.map((b) => ({ ancestors: [], ...b, createdByType: "admin" })),
410
+ ...bundleRows.map((b) => ({ ancestors: [], ...b })),
234
411
  ];
235
- // P-1 default seed: identical to categoriesSeedData now that bundle rows have been removed.
412
+ // P-1 default seed: identical to categoriesSeedData (bundle rows included P-17
413
+ // re-added them 2026-08-15 after the earlier removal referenced below).
236
414
  export const categoriesP1SeedData = [
237
415
  ...rawCategories.map((c) => ({ ancestors: [], ...c, createdByType: "admin" })),
238
416
  ...sublistingRows.map((s) => ({ ancestors: [], ...s, createdByType: "admin" })),
239
417
  ...brandRows.map((b) => ({ ancestors: [], ...b, createdByType: "admin" })),
418
+ ...bundleRows.map((b) => ({ ancestors: [], ...b })),
240
419
  ];
@@ -67,6 +67,8 @@ export declare const groupedListingsSeedData: {
67
67
  isOnSale?: boolean | undefined;
68
68
  isSold?: boolean | undefined;
69
69
  allowShipBeforeEmiComplete?: boolean | undefined;
70
+ gstRate?: 0 | 5 | 12 | 18 | 28 | undefined;
71
+ hsnCode?: string | undefined;
70
72
  printMeta?: import("../features/products").ProductPrintMeta | undefined;
71
73
  promotionEndDate?: Date | undefined;
72
74
  pickupAddressId?: string | undefined;
@@ -68,6 +68,8 @@ export declare const productsPreordersSeedData: {
68
68
  isOnSale?: boolean | undefined;
69
69
  isSold?: boolean | undefined;
70
70
  allowShipBeforeEmiComplete?: boolean | undefined;
71
+ gstRate?: 0 | 5 | 12 | 18 | 28 | undefined;
72
+ hsnCode?: string | undefined;
71
73
  printMeta?: import("../features/products").ProductPrintMeta | undefined;
72
74
  promotionEndDate?: Date | undefined;
73
75
  pickupAddressId?: string | undefined;
package/dist/server.d.ts CHANGED
@@ -333,6 +333,7 @@ export { finalizeStagedMediaObject } from "./features/media/server";
333
333
  export { finalizeStagedMediaObjectArray } from "./features/media/server";
334
334
  export { finalizeStagedMediaUrl } from "./features/media/server";
335
335
  export { cancelOrderForUser } from "./features/orders/server";
336
+ export { cancelOrderItemsForUser } from "./features/orders/server";
336
337
  export { getOrderByIdForUser } from "./features/orders/server";
337
338
  export { getOrderTrackingHandler } from "./features/orders/server";
338
339
  export { getTrackingInfo } from "./features/orders/server";
@@ -437,6 +438,9 @@ export { getWishlistForUser } from "./features/wishlist/server";
437
438
  export { removeFromWishlist } from "./features/wishlist/server";
438
439
  export { siteSettingsRepository } from "./repositories/index";
439
440
  export { storeRepository } from "./repositories/index";
441
+ export { orderRepository } from "./repositories/index";
442
+ export type { OrderDocument } from "./features/orders/index";
443
+ export type { OrderDocumentItem } from "./features/orders/index";
440
444
  export { serverLogger } from "./monitoring/index";
441
445
  export { withRetry } from "./http/retry";
442
446
  export { safeFireAndForget } from "./utils/safe-fire-forget";
package/dist/server.js CHANGED
@@ -968,6 +968,9 @@ export { finalizeStagedMediaUrl } from "./features/media/server";
968
968
  // cancelOrderForUser - Shared export for cancel order for user.
969
969
  export { cancelOrderForUser } from "./features/orders/server";
970
970
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
971
+ // cancelOrderItemsForUser - Cancels a subset of line items on an order and continues with the rest.
972
+ export { cancelOrderItemsForUser } from "./features/orders/server";
973
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
971
974
  // getOrderByIdForUser - Helper for get order by id for user.
972
975
  export { getOrderByIdForUser } from "./features/orders/server";
973
976
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -1274,6 +1277,8 @@ export { removeFromWishlist } from "./features/wishlist/server";
1274
1277
  export { siteSettingsRepository } from "./repositories/index";
1275
1278
  // storeRepository - Shared export for store repository.
1276
1279
  export { storeRepository } from "./repositories/index";
1280
+ // orderRepository - Shared export for order repository (needed by consumer Firebase Functions, e.g. invoice PDF generation).
1281
+ export { orderRepository } from "./repositories/index";
1277
1282
  // SB-UNI-V — bundlesRepository deleted; use categoriesRepository with categoryType:"bundle".
1278
1283
  // -- Monitoring --------------------------------------------------------------
1279
1284
  // serverLogger - Structured server-side logger.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "3.5.6",
3
+ "version": "3.5.7",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -172,6 +172,7 @@
172
172
  },
173
173
  "dependencies": {
174
174
  "@mohasinac/sievejs": "^1.0.0",
175
+ "driver.js": "^1.8.0",
175
176
  "jsbarcode": "^3.12.3",
176
177
  "motion": "^12.40.0",
177
178
  "react-advanced-cropper": "^0.20.1",