@mohasinac/appkit 2.6.3 → 2.6.5

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 (615) hide show
  1. package/dist/_internal/server/features/account/data.js +2 -2
  2. package/dist/_internal/server/features/bundles/data.d.ts +26 -6
  3. package/dist/_internal/server/features/bundles/data.js +41 -6
  4. package/dist/_internal/server/features/bundles/index.d.ts +3 -2
  5. package/dist/_internal/server/features/bundles/index.js +4 -2
  6. package/dist/_internal/server/features/bundles/metadata.d.ts +20 -0
  7. package/dist/_internal/server/features/bundles/metadata.js +46 -0
  8. package/dist/_internal/server/features/bundles/og.d.ts +38 -0
  9. package/dist/_internal/server/features/bundles/og.js +122 -0
  10. package/dist/_internal/server/features/checkout/actions.js +192 -133
  11. package/dist/_internal/server/features/checkout/bundle-expansion.d.ts +57 -0
  12. package/dist/_internal/server/features/checkout/bundle-expansion.js +70 -0
  13. package/dist/_internal/server/features/checkout/prize-bundle-gates.d.ts +5 -15
  14. package/dist/_internal/server/features/checkout/prize-bundle-gates.js +5 -21
  15. package/dist/_internal/server/features/media/contextGuards.js +15 -1
  16. package/dist/_internal/server/features/payouts/actions.d.ts +19 -0
  17. package/dist/_internal/server/features/payouts/actions.js +38 -0
  18. package/dist/_internal/server/features/products/data.js +1 -2
  19. package/dist/_internal/server/features/raffle/actions.d.ts +11 -0
  20. package/dist/_internal/server/features/raffle/actions.js +31 -0
  21. package/dist/_internal/server/features/refunds/actions.d.ts +31 -0
  22. package/dist/_internal/server/features/refunds/actions.js +77 -0
  23. package/dist/_internal/server/jobs/core/adminAnalytics.d.ts +28 -0
  24. package/dist/_internal/server/jobs/core/adminAnalytics.js +98 -0
  25. package/dist/_internal/server/jobs/core/assignSpinPrize.d.ts +19 -0
  26. package/dist/_internal/server/jobs/core/assignSpinPrize.js +81 -0
  27. package/dist/_internal/server/jobs/core/auctionSettlement.d.ts +2 -0
  28. package/dist/_internal/server/jobs/core/auctionSettlement.js +70 -0
  29. package/dist/_internal/server/jobs/core/autoPayoutEligibility.d.ts +2 -0
  30. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +109 -0
  31. package/dist/_internal/server/jobs/core/bundleStockSync.d.ts +10 -0
  32. package/dist/_internal/server/jobs/core/bundleStockSync.js +71 -0
  33. package/dist/_internal/server/jobs/core/cartPrune.d.ts +2 -0
  34. package/dist/_internal/server/jobs/core/cartPrune.js +13 -0
  35. package/dist/_internal/server/jobs/core/cleanupRtdbEvents.d.ts +2 -0
  36. package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +45 -0
  37. package/dist/_internal/server/jobs/core/countersReconcile.d.ts +2 -0
  38. package/dist/_internal/server/jobs/core/countersReconcile.js +107 -0
  39. package/dist/_internal/server/jobs/core/couponExpiry.d.ts +2 -0
  40. package/dist/_internal/server/jobs/core/couponExpiry.js +13 -0
  41. package/dist/_internal/server/jobs/core/dailyDataCleanup.d.ts +2 -0
  42. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +20 -0
  43. package/dist/_internal/server/jobs/core/index.d.ts +44 -0
  44. package/dist/_internal/server/jobs/core/index.js +47 -0
  45. package/dist/_internal/server/jobs/core/listingProcessor.d.ts +30 -0
  46. package/dist/_internal/server/jobs/core/listingProcessor.js +138 -0
  47. package/dist/_internal/server/jobs/core/mediaTmpCleanup.d.ts +14 -0
  48. package/dist/_internal/server/jobs/core/mediaTmpCleanup.js +68 -0
  49. package/dist/_internal/server/jobs/core/notificationPrune.d.ts +2 -0
  50. package/dist/_internal/server/jobs/core/notificationPrune.js +13 -0
  51. package/dist/_internal/server/jobs/core/offerExpiry.d.ts +2 -0
  52. package/dist/_internal/server/jobs/core/offerExpiry.js +50 -0
  53. package/dist/_internal/server/jobs/core/onBidPlaced.d.ts +15 -0
  54. package/dist/_internal/server/jobs/core/onBidPlaced.js +59 -0
  55. package/dist/_internal/server/jobs/core/onCategoryWrite.d.ts +14 -0
  56. package/dist/_internal/server/jobs/core/onCategoryWrite.js +134 -0
  57. package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +18 -0
  58. package/dist/_internal/server/jobs/core/onOrderCreate.js +78 -0
  59. package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +19 -0
  60. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +139 -0
  61. package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +23 -0
  62. package/dist/_internal/server/jobs/core/onProductStockChange.js +130 -0
  63. package/dist/_internal/server/jobs/core/onProductWrite.d.ts +12 -0
  64. package/dist/_internal/server/jobs/core/onProductWrite.js +94 -0
  65. package/dist/_internal/server/jobs/core/onReviewWrite.d.ts +7 -0
  66. package/dist/_internal/server/jobs/core/onReviewWrite.js +49 -0
  67. package/dist/_internal/server/jobs/core/onStoreWrite.d.ts +12 -0
  68. package/dist/_internal/server/jobs/core/onStoreWrite.js +7 -0
  69. package/dist/_internal/server/jobs/core/payoutBatch.d.ts +8 -0
  70. package/dist/_internal/server/jobs/core/payoutBatch.js +102 -0
  71. package/dist/_internal/server/jobs/core/pendingOrderTimeout.d.ts +2 -0
  72. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +27 -0
  73. package/dist/_internal/server/jobs/core/positionsReconcile.d.ts +7 -0
  74. package/dist/_internal/server/jobs/core/positionsReconcile.js +87 -0
  75. package/dist/_internal/server/jobs/core/prizeRevealClose.d.ts +2 -0
  76. package/dist/_internal/server/jobs/core/prizeRevealClose.js +22 -0
  77. package/dist/_internal/server/jobs/core/prizeRevealExpiry.d.ts +2 -0
  78. package/dist/_internal/server/jobs/core/prizeRevealExpiry.js +50 -0
  79. package/dist/_internal/server/jobs/core/prizeRevealOpen.d.ts +2 -0
  80. package/dist/_internal/server/jobs/core/prizeRevealOpen.js +56 -0
  81. package/dist/_internal/server/jobs/core/prizeRevealReminder.d.ts +2 -0
  82. package/dist/_internal/server/jobs/core/prizeRevealReminder.js +38 -0
  83. package/dist/_internal/server/jobs/core/productStatsSync.d.ts +8 -0
  84. package/dist/_internal/server/jobs/core/productStatsSync.js +36 -0
  85. package/dist/_internal/server/jobs/core/promotions.d.ts +12 -0
  86. package/dist/_internal/server/jobs/core/promotions.js +43 -0
  87. package/dist/_internal/server/jobs/core/storeAnalytics.d.ts +30 -0
  88. package/dist/_internal/server/jobs/core/storeAnalytics.js +109 -0
  89. package/dist/_internal/server/jobs/core/triggerEventRaffle.d.ts +19 -0
  90. package/dist/_internal/server/jobs/core/triggerEventRaffle.js +86 -0
  91. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.d.ts +6 -0
  92. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +85 -0
  93. package/dist/_internal/server/jobs/handlers/adminAnalytics.d.ts +2 -26
  94. package/dist/_internal/server/jobs/handlers/adminAnalytics.js +2 -98
  95. package/dist/_internal/server/jobs/handlers/assignSpinPrize.d.ts +1 -22
  96. package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +2 -86
  97. package/dist/_internal/server/jobs/handlers/auctionSettlement.js +2 -70
  98. package/dist/_internal/server/jobs/handlers/autoPayoutEligibility.js +2 -110
  99. package/dist/_internal/server/jobs/handlers/bundleStockSync.d.ts +0 -16
  100. package/dist/_internal/server/jobs/handlers/bundleStockSync.js +2 -80
  101. package/dist/_internal/server/jobs/handlers/cartPrune.js +2 -13
  102. package/dist/_internal/server/jobs/handlers/cleanupRtdbEvents.js +2 -45
  103. package/dist/_internal/server/jobs/handlers/countersReconcile.js +2 -109
  104. package/dist/_internal/server/jobs/handlers/couponExpiry.js +2 -13
  105. package/dist/_internal/server/jobs/handlers/dailyDataCleanup.js +2 -20
  106. package/dist/_internal/server/jobs/handlers/listingProcessor.d.ts +3 -28
  107. package/dist/_internal/server/jobs/handlers/listingProcessor.js +3 -138
  108. package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.d.ts +0 -12
  109. package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.js +2 -69
  110. package/dist/_internal/server/jobs/handlers/notificationPrune.js +2 -13
  111. package/dist/_internal/server/jobs/handlers/offerExpiry.js +2 -50
  112. package/dist/_internal/server/jobs/handlers/onBidPlaced.d.ts +1 -10
  113. package/dist/_internal/server/jobs/handlers/onBidPlaced.js +2 -56
  114. package/dist/_internal/server/jobs/handlers/onCategoryWrite.d.ts +1 -8
  115. package/dist/_internal/server/jobs/handlers/onCategoryWrite.js +6 -134
  116. package/dist/_internal/server/jobs/handlers/onOrderCreate.d.ts +1 -12
  117. package/dist/_internal/server/jobs/handlers/onOrderCreate.js +2 -76
  118. package/dist/_internal/server/jobs/handlers/onOrderStatusChange.d.ts +1 -12
  119. package/dist/_internal/server/jobs/handlers/onOrderStatusChange.js +2 -139
  120. package/dist/_internal/server/jobs/handlers/onProductStockChange.d.ts +0 -13
  121. package/dist/_internal/server/jobs/handlers/onProductStockChange.js +7 -134
  122. package/dist/_internal/server/jobs/handlers/onProductWrite.d.ts +1 -6
  123. package/dist/_internal/server/jobs/handlers/onProductWrite.js +6 -106
  124. package/dist/_internal/server/jobs/handlers/onReviewWrite.js +2 -49
  125. package/dist/_internal/server/jobs/handlers/onStoreWrite.d.ts +1 -8
  126. package/dist/_internal/server/jobs/handlers/onStoreWrite.js +7 -8
  127. package/dist/_internal/server/jobs/handlers/payoutBatch.d.ts +0 -9
  128. package/dist/_internal/server/jobs/handlers/payoutBatch.js +2 -104
  129. package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.d.ts +0 -6
  130. package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.js +2 -33
  131. package/dist/_internal/server/jobs/handlers/positionsReconcile.d.ts +0 -5
  132. package/dist/_internal/server/jobs/handlers/positionsReconcile.js +2 -87
  133. package/dist/_internal/server/jobs/handlers/prizeRevealClose.d.ts +0 -7
  134. package/dist/_internal/server/jobs/handlers/prizeRevealClose.js +2 -29
  135. package/dist/_internal/server/jobs/handlers/prizeRevealExpiry.d.ts +0 -8
  136. package/dist/_internal/server/jobs/handlers/prizeRevealExpiry.js +2 -58
  137. package/dist/_internal/server/jobs/handlers/prizeRevealOpen.d.ts +0 -8
  138. package/dist/_internal/server/jobs/handlers/prizeRevealOpen.js +2 -65
  139. package/dist/_internal/server/jobs/handlers/prizeRevealReminder.d.ts +0 -7
  140. package/dist/_internal/server/jobs/handlers/prizeRevealReminder.js +2 -45
  141. package/dist/_internal/server/jobs/handlers/productStatsSync.d.ts +0 -6
  142. package/dist/_internal/server/jobs/handlers/productStatsSync.js +2 -36
  143. package/dist/_internal/server/jobs/handlers/promotions.d.ts +2 -10
  144. package/dist/_internal/server/jobs/handlers/promotions.js +2 -43
  145. package/dist/_internal/server/jobs/handlers/storeAnalytics.d.ts +2 -28
  146. package/dist/_internal/server/jobs/handlers/storeAnalytics.js +2 -109
  147. package/dist/_internal/server/jobs/handlers/triggerEventRaffle.d.ts +1 -28
  148. package/dist/_internal/server/jobs/handlers/triggerEventRaffle.js +2 -94
  149. package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.d.ts +0 -6
  150. package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.js +2 -87
  151. package/dist/_internal/server/jobs/index.d.ts +1 -0
  152. package/dist/_internal/server/jobs/index.js +1 -0
  153. package/dist/_internal/server/jobs/runtime/adapters/firebase.js +21 -0
  154. package/dist/_internal/shared/actions/action-registry.d.ts +84 -0
  155. package/dist/_internal/shared/actions/action-registry.js +160 -0
  156. package/dist/_internal/shared/checkout/rules/_defaults.d.ts +3 -0
  157. package/dist/_internal/shared/checkout/rules/_defaults.js +22 -0
  158. package/dist/_internal/shared/checkout/rules/_limits.d.ts +19 -0
  159. package/dist/_internal/shared/checkout/rules/_limits.js +19 -0
  160. package/dist/_internal/shared/checkout/rules/_registry.d.ts +44 -0
  161. package/dist/_internal/shared/checkout/rules/_registry.js +87 -0
  162. package/dist/_internal/shared/checkout/rules/auction.rule.d.ts +2 -0
  163. package/dist/_internal/shared/checkout/rules/auction.rule.js +10 -0
  164. package/dist/_internal/shared/checkout/rules/bundle.rule.d.ts +11 -0
  165. package/dist/_internal/shared/checkout/rules/bundle.rule.js +6 -0
  166. package/dist/_internal/shared/checkout/rules/classified.rule.d.ts +9 -0
  167. package/dist/_internal/shared/checkout/rules/classified.rule.js +9 -0
  168. package/dist/_internal/shared/checkout/rules/digital-code.rule.d.ts +8 -0
  169. package/dist/_internal/shared/checkout/rules/digital-code.rule.js +6 -0
  170. package/dist/_internal/shared/checkout/rules/index.d.ts +12 -0
  171. package/dist/_internal/shared/checkout/rules/index.js +12 -0
  172. package/dist/_internal/shared/checkout/rules/live.rule.d.ts +10 -0
  173. package/dist/_internal/shared/checkout/rules/live.rule.js +6 -0
  174. package/dist/_internal/shared/checkout/rules/offer.rule.d.ts +2 -0
  175. package/dist/_internal/shared/checkout/rules/offer.rule.js +9 -0
  176. package/dist/_internal/shared/checkout/rules/preorder.rule.d.ts +2 -0
  177. package/dist/_internal/shared/checkout/rules/preorder.rule.js +28 -0
  178. package/dist/_internal/shared/checkout/rules/prize-draw.rule.d.ts +2 -0
  179. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +65 -0
  180. package/dist/_internal/shared/checkout/rules/standard.rule.d.ts +2 -0
  181. package/dist/_internal/shared/checkout/rules/standard.rule.js +5 -0
  182. package/dist/_internal/shared/checkout/rules/types.d.ts +125 -0
  183. package/dist/_internal/shared/checkout/rules/types.js +13 -0
  184. package/dist/_internal/shared/features/cart/schema.d.ts +6 -6
  185. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +123 -0
  186. package/dist/_internal/shared/features/categories/bundle-copy.js +134 -0
  187. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +318 -0
  188. package/dist/_internal/shared/features/categories/bundle-schemas.js +55 -0
  189. package/dist/_internal/shared/features/events/schema.d.ts +4 -4
  190. package/dist/_internal/shared/features/orders/refund-copy.d.ts +36 -0
  191. package/dist/_internal/shared/features/orders/refund-copy.js +40 -0
  192. package/dist/_internal/shared/features/orders/schema.d.ts +4 -4
  193. package/dist/_internal/shared/features/products/schema.d.ts +8 -8
  194. package/dist/_internal/shared/listing-types/_registry.d.ts +27 -0
  195. package/dist/_internal/shared/listing-types/_registry.js +8 -0
  196. package/dist/_internal/shared/listing-types/action-tracker.d.ts +41 -0
  197. package/dist/_internal/shared/listing-types/action-tracker.js +70 -0
  198. package/dist/_internal/shared/listing-types/capabilities.js +25 -0
  199. package/dist/_internal/shared/listing-types/cart-shipping.d.ts +37 -0
  200. package/dist/_internal/shared/listing-types/cart-shipping.js +46 -0
  201. package/dist/_internal/shared/listing-types/classified/config.d.ts +7 -0
  202. package/dist/_internal/shared/listing-types/classified/config.js +8 -0
  203. package/dist/_internal/shared/listing-types/classified/ctas.d.ts +1 -0
  204. package/dist/_internal/shared/listing-types/classified/ctas.js +3 -0
  205. package/dist/_internal/shared/listing-types/classified/og.d.ts +1 -0
  206. package/dist/_internal/shared/listing-types/classified/og.js +1 -0
  207. package/dist/_internal/shared/listing-types/classified/schema.d.ts +1 -0
  208. package/dist/_internal/shared/listing-types/classified/schema.js +1 -0
  209. package/dist/_internal/shared/listing-types/classified/seed-factory.d.ts +1 -0
  210. package/dist/_internal/shared/listing-types/classified/seed-factory.js +1 -0
  211. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +7 -0
  212. package/dist/_internal/shared/listing-types/digital-code/config.js +8 -0
  213. package/dist/_internal/shared/listing-types/digital-code/ctas.d.ts +1 -0
  214. package/dist/_internal/shared/listing-types/digital-code/ctas.js +3 -0
  215. package/dist/_internal/shared/listing-types/digital-code/og.d.ts +1 -0
  216. package/dist/_internal/shared/listing-types/digital-code/og.js +1 -0
  217. package/dist/_internal/shared/listing-types/digital-code/schema.d.ts +1 -0
  218. package/dist/_internal/shared/listing-types/digital-code/schema.js +1 -0
  219. package/dist/_internal/shared/listing-types/digital-code/seed-factory.d.ts +1 -0
  220. package/dist/_internal/shared/listing-types/digital-code/seed-factory.js +1 -0
  221. package/dist/_internal/shared/listing-types/feature-flags.d.ts +34 -0
  222. package/dist/_internal/shared/listing-types/feature-flags.js +45 -0
  223. package/dist/_internal/shared/listing-types/live/config.d.ts +7 -0
  224. package/dist/_internal/shared/listing-types/live/config.js +8 -0
  225. package/dist/_internal/shared/listing-types/live/ctas.d.ts +1 -0
  226. package/dist/_internal/shared/listing-types/live/ctas.js +3 -0
  227. package/dist/_internal/shared/listing-types/live/og.d.ts +1 -0
  228. package/dist/_internal/shared/listing-types/live/og.js +1 -0
  229. package/dist/_internal/shared/listing-types/live/schema.d.ts +1 -0
  230. package/dist/_internal/shared/listing-types/live/schema.js +1 -0
  231. package/dist/_internal/shared/listing-types/live/seed-factory.d.ts +1 -0
  232. package/dist/_internal/shared/listing-types/live/seed-factory.js +1 -0
  233. package/dist/_internal/shared/media/limits.js +8 -0
  234. package/dist/client.d.ts +10 -5
  235. package/dist/client.js +16 -3
  236. package/dist/configs/next.js +7 -0
  237. package/dist/constants/api-endpoints.d.ts +6 -0
  238. package/dist/constants/api-endpoints.js +4 -0
  239. package/dist/core/hooks/useSyncManager.js +13 -1
  240. package/dist/core/unit-of-work.d.ts +1 -1
  241. package/dist/core/unit-of-work.js +2 -2
  242. package/dist/features/account/actions/address-actions.d.ts +1 -1
  243. package/dist/features/account/actions/address-actions.js +15 -7
  244. package/dist/features/account/schemas/firestore.d.ts +8 -43
  245. package/dist/features/account/schemas/firestore.js +8 -54
  246. package/dist/features/account/schemas/index.d.ts +6 -6
  247. package/dist/features/account/server.d.ts +1 -1
  248. package/dist/features/account/server.js +3 -1
  249. package/dist/features/addresses/index.d.ts +2 -0
  250. package/dist/features/addresses/index.js +2 -0
  251. package/dist/features/addresses/repository/addresses.repository.d.ts +29 -0
  252. package/dist/features/addresses/repository/addresses.repository.js +157 -0
  253. package/dist/features/addresses/schemas/firestore.d.ts +53 -0
  254. package/dist/features/addresses/schemas/firestore.js +68 -0
  255. package/dist/features/{bundles → addresses}/schemas/index.d.ts +0 -1
  256. package/dist/features/{bundles → addresses}/schemas/index.js +0 -1
  257. package/dist/features/addresses/server.d.ts +2 -0
  258. package/dist/features/addresses/server.js +2 -0
  259. package/dist/features/admin/components/AdminAllEventEntriesView.js +4 -3
  260. package/dist/features/admin/components/AdminBidsView.js +4 -3
  261. package/dist/features/admin/components/AdminBlogView.js +8 -3
  262. package/dist/features/admin/components/AdminBundleEditorView.d.ts +9 -0
  263. package/dist/features/admin/components/AdminBundleEditorView.js +209 -0
  264. package/dist/features/admin/components/AdminBundlesView.d.ts +9 -0
  265. package/dist/features/admin/components/AdminBundlesView.js +59 -0
  266. package/dist/features/admin/components/AdminCartsView.js +13 -3
  267. package/dist/features/admin/components/AdminContactView.js +4 -3
  268. package/dist/features/admin/components/AdminCouponsView.js +32 -13
  269. package/dist/features/admin/components/AdminNewsletterView.js +4 -3
  270. package/dist/features/admin/components/AdminOrdersView.js +15 -7
  271. package/dist/features/admin/components/AdminPayoutsView.js +4 -3
  272. package/dist/features/admin/components/AdminPrizeDrawsView.d.ts +4 -0
  273. package/dist/features/admin/components/AdminPrizeDrawsView.js +135 -0
  274. package/dist/features/admin/components/AdminProductsView.js +6 -5
  275. package/dist/features/admin/components/AdminReviewsView.js +5 -4
  276. package/dist/features/admin/components/AdminStoresView.js +4 -3
  277. package/dist/features/admin/components/AdminUsersView.js +15 -5
  278. package/dist/features/admin/components/AdminWishlistsView.js +10 -1
  279. package/dist/features/admin/components/DataTable.d.ts +5 -1
  280. package/dist/features/admin/components/DataTable.js +24 -20
  281. package/dist/features/admin/components/index.d.ts +6 -0
  282. package/dist/features/admin/components/index.js +5 -0
  283. package/dist/features/admin/constants/filter-tabs.d.ts +435 -0
  284. package/dist/features/admin/constants/filter-tabs.js +216 -0
  285. package/dist/features/admin/hooks/useAdminListingData.d.ts +1 -0
  286. package/dist/features/admin/hooks/useAdminListingData.js +1 -0
  287. package/dist/features/admin/schemas/firestore.d.ts +15 -0
  288. package/dist/features/admin/schemas/firestore.js +18 -0
  289. package/dist/features/admin/types/product.types.d.ts +2 -2
  290. package/dist/features/auctions/components/AuctionCard.d.ts +4 -1
  291. package/dist/features/auctions/components/AuctionCard.js +5 -3
  292. package/dist/features/auctions/components/AuctionDetailPageView.js +1 -1
  293. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +2 -2
  294. package/dist/features/auctions/components/PlaceBidFormClient.js +12 -2
  295. package/dist/features/auctions/schemas/index.d.ts +2 -2
  296. package/dist/features/auth/index.d.ts +1 -0
  297. package/dist/features/auth/index.js +1 -0
  298. package/dist/features/auth/role-predicates.d.ts +16 -0
  299. package/dist/features/auth/role-predicates.js +15 -0
  300. package/dist/features/blog/components/BlogFeaturedCard.d.ts +4 -1
  301. package/dist/features/blog/components/BlogFeaturedCard.js +5 -3
  302. package/dist/features/cart/actions/cart-actions.d.ts +1 -0
  303. package/dist/features/cart/actions/cart-actions.js +16 -0
  304. package/dist/features/cart/components/CartView.d.ts +19 -1
  305. package/dist/features/cart/components/CartView.js +2 -2
  306. package/dist/features/cart/components/ShippingPicker.d.ts +13 -0
  307. package/dist/features/cart/components/ShippingPicker.js +48 -0
  308. package/dist/features/cart/components/index.d.ts +3 -1
  309. package/dist/features/cart/components/index.js +1 -0
  310. package/dist/features/cart/hooks/useCartCount.js +7 -1
  311. package/dist/features/cart/repository/cart.repository.d.ts +1 -0
  312. package/dist/features/cart/repository/cart.repository.js +35 -0
  313. package/dist/features/cart/schemas/firestore.d.ts +27 -2
  314. package/dist/features/categories/components/BundleAddToCartCta.d.ts +16 -0
  315. package/dist/features/categories/components/BundleAddToCartCta.js +54 -0
  316. package/dist/features/categories/components/BundleBuyNowCta.d.ts +8 -0
  317. package/dist/features/categories/components/BundleBuyNowCta.js +37 -0
  318. package/dist/features/categories/components/BundleDetailView.d.ts +22 -0
  319. package/dist/features/categories/components/BundleDetailView.js +31 -0
  320. package/dist/features/categories/components/BundleDynamicRuleEditor.d.ts +18 -0
  321. package/dist/features/categories/components/BundleDynamicRuleEditor.js +60 -0
  322. package/dist/features/categories/components/BundleItemsPicker.d.ts +26 -0
  323. package/dist/features/categories/components/BundleItemsPicker.js +135 -0
  324. package/dist/features/categories/components/BundlesListView.d.ts +13 -0
  325. package/dist/features/categories/components/BundlesListView.js +27 -0
  326. package/dist/features/categories/components/index.d.ts +12 -0
  327. package/dist/features/categories/components/index.js +9 -0
  328. package/dist/features/checkout/actions/checkout-actions.js +10 -3
  329. package/dist/features/events/components/AdminEventEditorView.js +108 -2
  330. package/dist/features/events/components/AdminEventsView.js +16 -4
  331. package/dist/features/events/components/EventCard.d.ts +4 -1
  332. package/dist/features/events/components/EventCard.js +7 -3
  333. package/dist/features/events/components/EventRaffleWinnerView.d.ts +21 -0
  334. package/dist/features/events/components/EventRaffleWinnerView.js +18 -0
  335. package/dist/features/events/components/SpinWheelView.d.ts +27 -0
  336. package/dist/features/events/components/SpinWheelView.js +64 -0
  337. package/dist/features/events/components/index.d.ts +4 -0
  338. package/dist/features/events/components/index.js +2 -0
  339. package/dist/features/events/schemas/firestore.d.ts +27 -1
  340. package/dist/features/events/schemas/firestore.js +7 -0
  341. package/dist/features/events/types/index.d.ts +27 -1
  342. package/dist/features/homepage/components/FeaturedBundlesSection.d.ts +16 -0
  343. package/dist/features/homepage/components/FeaturedBundlesSection.js +24 -0
  344. package/dist/features/homepage/components/MarketplaceHomepageView.js +4 -1
  345. package/dist/features/homepage/components/WhatsAppCommunitySection.js +2 -2
  346. package/dist/features/homepage/lib/section-renderer.d.ts +2 -0
  347. package/dist/features/homepage/lib/section-renderer.js +5 -5
  348. package/dist/features/layout/NavbarLayout.d.ts +3 -1
  349. package/dist/features/layout/NavbarLayout.js +32 -3
  350. package/dist/features/layout/TitleBarLayout.d.ts +6 -3
  351. package/dist/features/layout/TitleBarLayout.js +22 -7
  352. package/dist/features/media/upload/MediaUploadField.d.ts +15 -1
  353. package/dist/features/media/upload/MediaUploadField.js +22 -1
  354. package/dist/features/orders/components/MarketplaceOrderCard.js +4 -2
  355. package/dist/features/orders/components/OrderSiblingPayments.d.ts +8 -0
  356. package/dist/features/orders/components/OrderSiblingPayments.js +16 -0
  357. package/dist/features/orders/components/RefundHistoryTable.d.ts +6 -0
  358. package/dist/features/orders/components/RefundHistoryTable.js +23 -0
  359. package/dist/features/orders/components/RefundRequestView.d.ts +8 -0
  360. package/dist/features/orders/components/RefundRequestView.js +42 -0
  361. package/dist/features/orders/components/index.d.ts +6 -0
  362. package/dist/features/orders/components/index.js +3 -0
  363. package/dist/features/orders/index.d.ts +1 -0
  364. package/dist/features/orders/index.js +2 -0
  365. package/dist/features/orders/repository/orders.repository.d.ts +20 -1
  366. package/dist/features/orders/repository/orders.repository.js +30 -1
  367. package/dist/features/orders/schemas/firestore.d.ts +63 -13
  368. package/dist/features/orders/schemas/firestore.js +5 -5
  369. package/dist/features/orders/schemas/index.d.ts +4 -4
  370. package/dist/features/orders/types/index.d.ts +12 -2
  371. package/dist/features/orders/utils/bundle-grouping.d.ts +48 -0
  372. package/dist/features/orders/utils/bundle-grouping.js +54 -0
  373. package/dist/features/orders/utils/order-splitter.d.ts +9 -10
  374. package/dist/features/orders/utils/order-splitter.js +24 -30
  375. package/dist/features/payments/repository/payout.repository.d.ts +17 -1
  376. package/dist/features/payments/repository/payout.repository.js +47 -0
  377. package/dist/features/payments/schemas/firestore.d.ts +26 -0
  378. package/dist/features/pre-orders/components/PreorderCard.d.ts +4 -1
  379. package/dist/features/pre-orders/components/PreorderCard.js +8 -6
  380. package/dist/features/products/actions/product-actions.d.ts +1 -1
  381. package/dist/features/products/actions/product-actions.js +1 -1
  382. package/dist/features/products/components/CompareOverlay.d.ts +2 -2
  383. package/dist/features/products/components/CompareOverlay.js +4 -4
  384. package/dist/features/products/components/InteractiveProductCard.js +7 -12
  385. package/dist/features/products/components/NonRefundableConsentModal.d.ts +1 -1
  386. package/dist/features/products/components/NonRefundableConsentModal.js +0 -10
  387. package/dist/features/products/components/ProductGrid.js +28 -12
  388. package/dist/features/products/components/ShowGroupSection.js +3 -3
  389. package/dist/features/products/components/SublistingCarouselSection.js +2 -2
  390. package/dist/features/products/components/index.d.ts +0 -4
  391. package/dist/features/products/components/index.js +5 -2
  392. package/dist/features/products/index.d.ts +1 -1
  393. package/dist/features/products/index.js +3 -1
  394. package/dist/features/products/repository/products.repository.js +4 -0
  395. package/dist/features/products/schemas/catalog-product.d.ts +70 -0
  396. package/dist/features/products/schemas/catalog-product.js +50 -0
  397. package/dist/features/products/schemas/firestore.d.ts +110 -2
  398. package/dist/features/products/schemas/firestore.js +30 -0
  399. package/dist/features/products/schemas/index.d.ts +8 -8
  400. package/dist/features/products/types/index.d.ts +1 -1
  401. package/dist/features/products/utils/listing-type.d.ts +9 -0
  402. package/dist/features/products/utils/listing-type.js +4 -0
  403. package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
  404. package/dist/features/promotions/actions/coupon-actions.js +1 -1
  405. package/dist/features/promotions/components/CouponCard.d.ts +28 -10
  406. package/dist/features/promotions/components/CouponCard.js +116 -14
  407. package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
  408. package/dist/features/promotions/repository/coupons.repository.d.ts +1 -1
  409. package/dist/features/reviews/schemas/index.d.ts +2 -2
  410. package/dist/features/search/schemas/index.d.ts +2 -2
  411. package/dist/features/search/types/index.d.ts +2 -2
  412. package/dist/features/seller/components/SellerAuctionsView.js +4 -5
  413. package/dist/features/seller/components/SellerBidsView.js +5 -13
  414. package/dist/features/seller/components/SellerCouponsView.js +31 -67
  415. package/dist/features/seller/components/SellerOffersView.js +4 -5
  416. package/dist/features/seller/components/SellerOrdersView.js +4 -5
  417. package/dist/features/seller/components/SellerPayoutsView.js +4 -5
  418. package/dist/features/seller/components/SellerPreOrdersView.d.ts +4 -0
  419. package/dist/features/seller/components/SellerPreOrdersView.js +141 -0
  420. package/dist/features/seller/components/SellerPrizeDrawsView.d.ts +4 -0
  421. package/dist/features/seller/components/SellerPrizeDrawsView.js +138 -0
  422. package/dist/features/seller/components/SellerProductsView.js +4 -8
  423. package/dist/features/seller/components/index.d.ts +4 -0
  424. package/dist/features/seller/components/index.js +2 -0
  425. package/dist/features/seller/schemas/index.d.ts +2 -2
  426. package/dist/features/stores/actions/store-address-actions.d.ts +10 -6
  427. package/dist/features/stores/actions/store-address-actions.js +8 -7
  428. package/dist/features/stores/components/InteractiveStoreCard.js +3 -10
  429. package/dist/features/stores/components/StoreDetailLayoutView.js +20 -5
  430. package/dist/features/stores/schemas/firestore.d.ts +45 -38
  431. package/dist/features/stores/schemas/firestore.js +2 -49
  432. package/dist/features/stores/server.d.ts +0 -1
  433. package/dist/features/stores/server.js +2 -1
  434. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +7 -9
  435. package/dist/features/wishlist/hooks/useWishlistCount.js +67 -86
  436. package/dist/features/wishlist/types/index.d.ts +1 -1
  437. package/dist/index.d.ts +56 -9
  438. package/dist/index.js +66 -11
  439. package/dist/next/routing/route-map.d.ts +6 -0
  440. package/dist/next/routing/route-map.js +4 -0
  441. package/dist/providers/db-firebase/admin.d.ts +6 -2
  442. package/dist/providers/db-firebase/admin.js +23 -0
  443. package/dist/repositories/index.d.ts +1 -2
  444. package/dist/repositories/index.js +5 -2
  445. package/dist/security/authorization.d.ts +2 -1
  446. package/dist/security/authorization.js +3 -2
  447. package/dist/seed/actions/demo-seed-actions.d.ts +1 -1
  448. package/dist/seed/bids-seed-data.d.ts +2 -2
  449. package/dist/seed/bids-seed-data.js +77 -2
  450. package/dist/seed/cart-seed-data.d.ts +10 -10
  451. package/dist/seed/cart-seed-data.js +15 -15
  452. package/dist/seed/events-seed-data.js +77 -0
  453. package/dist/seed/manifest.js +16 -8
  454. package/dist/seed/orders-seed-data.js +41 -2
  455. package/dist/seed/payouts-seed-data.js +18 -2
  456. package/dist/seed/stores-seed-data.js +55 -0
  457. package/dist/server-entry.d.ts +1 -0
  458. package/dist/server-entry.js +2 -0
  459. package/dist/server.d.ts +4 -0
  460. package/dist/server.js +8 -0
  461. package/dist/tailwind-utilities.css +1 -1
  462. package/dist/ui/components/FilterChipGroup.d.ts +39 -0
  463. package/dist/ui/components/FilterChipGroup.js +15 -0
  464. package/dist/ui/components/HorizontalScroller.js +32 -7
  465. package/dist/ui/components/HorizontalScroller.style.css +6 -0
  466. package/dist/ui/components/SiteLogo.js +1 -1
  467. package/dist/ui/index.d.ts +2 -0
  468. package/dist/ui/index.js +2 -0
  469. package/dist/utils/id-generators.d.ts +11 -0
  470. package/dist/utils/id-generators.js +16 -0
  471. package/package.json +1 -1
  472. package/dist/_internal/shared/features/bundles/config.d.ts +0 -6
  473. package/dist/_internal/shared/features/bundles/config.js +0 -6
  474. package/dist/_internal/shared/schema-versions.d.ts +0 -76
  475. package/dist/_internal/shared/schema-versions.js +0 -82
  476. package/dist/features/account/migrations.d.ts +0 -2
  477. package/dist/features/account/migrations.js +0 -10
  478. package/dist/features/admin/migrations.d.ts +0 -2
  479. package/dist/features/admin/migrations.js +0 -10
  480. package/dist/features/auctions/migrations.d.ts +0 -2
  481. package/dist/features/auctions/migrations.js +0 -10
  482. package/dist/features/auth/migrations.d.ts +0 -2
  483. package/dist/features/auth/migrations.js +0 -10
  484. package/dist/features/blog/migrations.d.ts +0 -2
  485. package/dist/features/blog/migrations.js +0 -10
  486. package/dist/features/brands/actions/brand-actions.d.ts +0 -2
  487. package/dist/features/brands/actions/brand-actions.js +0 -5
  488. package/dist/features/brands/index.d.ts +0 -3
  489. package/dist/features/brands/index.js +0 -3
  490. package/dist/features/brands/migrations.d.ts +0 -2
  491. package/dist/features/brands/migrations.js +0 -10
  492. package/dist/features/brands/repository/brands.repository.d.ts +0 -13
  493. package/dist/features/brands/repository/brands.repository.js +0 -60
  494. package/dist/features/brands/schemas/index.d.ts +0 -33
  495. package/dist/features/brands/schemas/index.js +0 -15
  496. package/dist/features/brands/server.d.ts +0 -7
  497. package/dist/features/brands/server.js +0 -7
  498. package/dist/features/bundles/components/AdminBundleEditorView.d.ts +0 -8
  499. package/dist/features/bundles/components/AdminBundleEditorView.js +0 -7
  500. package/dist/features/bundles/components/BundleDetailPageView.d.ts +0 -9
  501. package/dist/features/bundles/components/BundleDetailPageView.js +0 -45
  502. package/dist/features/bundles/components/BundleForm.d.ts +0 -12
  503. package/dist/features/bundles/components/BundleForm.js +0 -126
  504. package/dist/features/bundles/components/BundleItemsPicker.d.ts +0 -9
  505. package/dist/features/bundles/components/BundleItemsPicker.js +0 -77
  506. package/dist/features/bundles/components/BundlesByCategoryListing.d.ts +0 -6
  507. package/dist/features/bundles/components/BundlesByCategoryListing.js +0 -50
  508. package/dist/features/bundles/components/BundlesListingView.d.ts +0 -17
  509. package/dist/features/bundles/components/BundlesListingView.js +0 -50
  510. package/dist/features/bundles/components/FeaturedBundlesSection.d.ts +0 -5
  511. package/dist/features/bundles/components/FeaturedBundlesSection.js +0 -55
  512. package/dist/features/bundles/components/SellerBundleCreateView.d.ts +0 -8
  513. package/dist/features/bundles/components/SellerBundleCreateView.js +0 -7
  514. package/dist/features/bundles/components/SellerBundleEditView.d.ts +0 -9
  515. package/dist/features/bundles/components/SellerBundleEditView.js +0 -7
  516. package/dist/features/bundles/components/index.d.ts +0 -18
  517. package/dist/features/bundles/components/index.js +0 -9
  518. package/dist/features/bundles/constants/index.d.ts +0 -32
  519. package/dist/features/bundles/constants/index.js +0 -35
  520. package/dist/features/bundles/index.d.ts +0 -2
  521. package/dist/features/bundles/index.js +0 -2
  522. package/dist/features/bundles/migrations.d.ts +0 -2
  523. package/dist/features/bundles/migrations.js +0 -10
  524. package/dist/features/bundles/repository/bundles.repository.d.ts +0 -36
  525. package/dist/features/bundles/repository/bundles.repository.js +0 -148
  526. package/dist/features/bundles/repository/index.d.ts +0 -1
  527. package/dist/features/bundles/repository/index.js +0 -1
  528. package/dist/features/bundles/schemas/firestore.d.ts +0 -88
  529. package/dist/features/bundles/schemas/firestore.js +0 -29
  530. package/dist/features/bundles/schemas/zod.d.ts +0 -377
  531. package/dist/features/bundles/schemas/zod.js +0 -71
  532. package/dist/features/cart/migrations.d.ts +0 -2
  533. package/dist/features/cart/migrations.js +0 -10
  534. package/dist/features/categories/migrations.d.ts +0 -2
  535. package/dist/features/categories/migrations.js +0 -10
  536. package/dist/features/events/migrations.d.ts +0 -2
  537. package/dist/features/events/migrations.js +0 -10
  538. package/dist/features/faq/migrations.d.ts +0 -2
  539. package/dist/features/faq/migrations.js +0 -10
  540. package/dist/features/grouped/migrations.d.ts +0 -2
  541. package/dist/features/grouped/migrations.js +0 -10
  542. package/dist/features/history/migrations.d.ts +0 -2
  543. package/dist/features/history/migrations.js +0 -10
  544. package/dist/features/messages/migrations.d.ts +0 -2
  545. package/dist/features/messages/migrations.js +0 -10
  546. package/dist/features/orders/migrations.d.ts +0 -2
  547. package/dist/features/orders/migrations.js +0 -10
  548. package/dist/features/payments/migrations.d.ts +0 -2
  549. package/dist/features/payments/migrations.js +0 -10
  550. package/dist/features/products/migrations.d.ts +0 -2
  551. package/dist/features/products/migrations.js +0 -10
  552. package/dist/features/products/repository/sublisting-categories.repository.d.ts +0 -16
  553. package/dist/features/products/repository/sublisting-categories.repository.js +0 -126
  554. package/dist/features/products/schemas/sublisting-categories.d.ts +0 -45
  555. package/dist/features/products/schemas/sublisting-categories.js +0 -16
  556. package/dist/features/promotions/migrations.d.ts +0 -2
  557. package/dist/features/promotions/migrations.js +0 -10
  558. package/dist/features/reviews/migrations.d.ts +0 -2
  559. package/dist/features/reviews/migrations.js +0 -10
  560. package/dist/features/scams/migrations.d.ts +0 -2
  561. package/dist/features/scams/migrations.js +0 -10
  562. package/dist/features/seller/migrations.d.ts +0 -2
  563. package/dist/features/seller/migrations.js +0 -10
  564. package/dist/features/stores/migrations.d.ts +0 -2
  565. package/dist/features/stores/migrations.js +0 -10
  566. package/dist/features/sublisting/migrations.d.ts +0 -2
  567. package/dist/features/sublisting/migrations.js +0 -10
  568. package/dist/features/sublisting/schemas/firestore.d.ts +0 -32
  569. package/dist/features/sublisting/schemas/firestore.js +0 -19
  570. package/dist/features/support/migrations.d.ts +0 -2
  571. package/dist/features/support/migrations.js +0 -10
  572. package/dist/features/wishlist/migrations.d.ts +0 -2
  573. package/dist/features/wishlist/migrations.js +0 -10
  574. package/dist/seed/_bundle-constants.d.ts +0 -14
  575. package/dist/seed/_bundle-constants.js +0 -14
  576. package/dist/seed/anime-figures-seed-data.d.ts +0 -8
  577. package/dist/seed/anime-figures-seed-data.js +0 -1033
  578. package/dist/seed/beyblade-seed-data.d.ts +0 -7
  579. package/dist/seed/beyblade-seed-data.js +0 -1129
  580. package/dist/seed/brands-seed-data.d.ts +0 -7
  581. package/dist/seed/brands-seed-data.js +0 -410
  582. package/dist/seed/bundles-seed-data.d.ts +0 -13
  583. package/dist/seed/bundles-seed-data.js +0 -229
  584. package/dist/seed/cosplay-accessories-seed-data.d.ts +0 -8
  585. package/dist/seed/cosplay-accessories-seed-data.js +0 -647
  586. package/dist/seed/hot-wheels-seed-data.d.ts +0 -7
  587. package/dist/seed/hot-wheels-seed-data.js +0 -1612
  588. package/dist/seed/letitrip-official-seed-data.d.ts +0 -8
  589. package/dist/seed/letitrip-official-seed-data.js +0 -399
  590. package/dist/seed/pokemon-carousel-slides-seed-data.d.ts +0 -8
  591. package/dist/seed/pokemon-carousel-slides-seed-data.js +0 -322
  592. package/dist/seed/pokemon-categories-seed-data.d.ts +0 -24
  593. package/dist/seed/pokemon-categories-seed-data.js +0 -547
  594. package/dist/seed/pokemon-coupons-seed-data.d.ts +0 -6
  595. package/dist/seed/pokemon-coupons-seed-data.js +0 -465
  596. package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +0 -7
  597. package/dist/seed/pokemon-homepage-sections-seed-data.js +0 -241
  598. package/dist/seed/pokemon-products-seed-data.d.ts +0 -9
  599. package/dist/seed/pokemon-products-seed-data.js +0 -1791
  600. package/dist/seed/pokemon-seed-bundle.d.ts +0 -47
  601. package/dist/seed/pokemon-seed-bundle.js +0 -71
  602. package/dist/seed/pokemon-stores-seed-data.d.ts +0 -6
  603. package/dist/seed/pokemon-stores-seed-data.js +0 -179
  604. package/dist/seed/pokemon-users-seed-data.d.ts +0 -6
  605. package/dist/seed/pokemon-users-seed-data.js +0 -521
  606. package/dist/seed/products-seed-data.d.ts +0 -6
  607. package/dist/seed/products-seed-data.js +0 -2530
  608. package/dist/seed/retro-gaming-seed-data.d.ts +0 -8
  609. package/dist/seed/retro-gaming-seed-data.js +0 -801
  610. package/dist/seed/server.d.ts +0 -2
  611. package/dist/seed/server.js +0 -7
  612. package/dist/seed/sublisting-categories-seed-data.d.ts +0 -7
  613. package/dist/seed/sublisting-categories-seed-data.js +0 -159
  614. package/dist/seed/transformers-seed-data.d.ts +0 -7
  615. package/dist/seed/transformers-seed-data.js +0 -530
package/dist/index.js CHANGED
@@ -924,8 +924,8 @@ export { requireRole } from "./security/index";
924
924
  export { resolvePermissions } from "./security/index";
925
925
  // ./repositories/index
926
926
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
927
- // AddressRepository - Shared export for address repository.
928
- export { AddressRepository } from "./repositories/index";
927
+ // AddressesRepository - unified top-level addresses collection (SB-UNI-A 2026-05-13).
928
+ export { AddressesRepository } from "./repositories/index";
929
929
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
930
930
  // BaseRepository - Shared export for base repository.
931
931
  export { BaseRepository } from "./repositories/index";
@@ -999,8 +999,8 @@ export { StoreRepository } from "./repositories/index";
999
999
  // UserRepository - Shared export for user repository.
1000
1000
  export { UserRepository } from "./repositories/index";
1001
1001
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
1002
- // addressRepository - Shared export for address repository.
1003
- export { addressRepository } from "./repositories/index";
1002
+ // addressesRepository - unified addresses repo (ownerType discriminator). SB-UNI-A 2026-05-13.
1003
+ export { addressesRepository } from "./repositories/index";
1004
1004
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
1005
1005
  // bidRepository - Shared export for bid repository.
1006
1006
  export { bidRepository } from "./repositories/index";
@@ -1074,9 +1074,8 @@ export { siteSettingsRepository } from "./repositories/index";
1074
1074
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
1075
1075
  // smsCounterRepository - Shared export for sms counter repository.
1076
1076
  export { smsCounterRepository } from "./repositories/index";
1077
- // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
1078
- // storeAddressRepository - Shared export for store address repository.
1079
- export { storeAddressRepository } from "./repositories/index";
1077
+ // SB-UNI-A 2026-05-13 storeAddressRepository deleted. Use addressesRepository
1078
+ // with ownerType:"store" via the unified addresses collection.
1080
1079
  // [DB]-Database layer — uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
1081
1080
  // storeRepository - Shared export for store repository.
1082
1081
  export { storeRepository } from "./repositories/index";
@@ -2078,6 +2077,11 @@ export { AdminBrandEditorView } from "./features/admin/index";
2078
2077
  export { AdminCategoriesView } from "./features/admin/index";
2079
2078
  // AdminCategoryEditorView - Component for admin category create/edit form.
2080
2079
  export { AdminCategoryEditorView } from "./features/admin/index";
2080
+ // S-SBUNI-4 2026-05-13 — admin bundle CRUD views.
2081
+ export { AdminBundlesView } from "./features/admin/index";
2082
+ export { AdminBundleEditorView } from "./features/admin/index";
2083
+ // S-SBUNI-4 2026-05-13 — multi-select bundle items picker (centerpiece UI primitive).
2084
+ export { BundleItemsPicker, defaultBundleItemsFetch, } from "./features/categories/components/BundleItemsPicker";
2081
2085
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
2082
2086
  // AdminCouponsView - Component for admin coupons view.
2083
2087
  export { AdminCouponsView } from "./features/admin/index";
@@ -2125,6 +2129,9 @@ export { AdminPageHeader } from "./features/admin/index";
2125
2129
  // AdminPayoutsView - Component for admin payouts view.
2126
2130
  export { AdminPayoutsView } from "./features/admin/index";
2127
2131
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
2132
+ // AdminPrizeDrawsView - Component for admin prize draws listing view (SB4-E).
2133
+ export { AdminPrizeDrawsView } from "./features/admin/index";
2134
+ // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
2128
2135
  // AdminProductsView - Component for admin products view.
2129
2136
  export { AdminProductsView } from "./features/admin/index";
2130
2137
  // AdminProductEditorView - Component for admin product create/edit form (3-mode: standard/auction/pre-order).
@@ -2879,6 +2886,8 @@ export { removeCartItem } from "./features/cart/server";
2879
2886
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
2880
2887
  // updateCartItem - Helper for update cart item.
2881
2888
  export { updateCartItem } from "./features/cart/server";
2889
+ // [SERVER-ONLY]-Server-only — cart item shipping provider update.
2890
+ export { updateCartItemShipping } from "./features/cart/server";
2882
2891
  // ./features/cart/schemas/index
2883
2892
  // [SCHEMA]-Schema / data-shape constant — Zod validator, default-value object, or Firestore collection/field name constant.
2884
2893
  // CART_COLLECTION - Constant used across modules.
@@ -3351,6 +3360,10 @@ export { EventPollWidget } from "./features/events/index";
3351
3360
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
3352
3361
  // EventStatusBadge - Component for event status badge.
3353
3362
  export { EventStatusBadge } from "./features/events/index";
3363
+ // EventRaffleWinnerView - Public-facing winner card for an event raffle.
3364
+ export { EventRaffleWinnerView } from "./features/events/index";
3365
+ // SpinWheelView - Spin-the-wheel client component for spin-wheel events.
3366
+ export { SpinWheelView } from "./features/events/index";
3354
3367
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
3355
3368
  // EventsListView - Component for events list view.
3356
3369
  export { EventsListView } from "./features/events/index";
@@ -4047,6 +4060,9 @@ export { OrderStatusValues } from "./features/orders/index";
4047
4060
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4048
4061
  // OrdersList - Shared export for orders list.
4049
4062
  export { OrdersList } from "./features/orders/index";
4063
+ export { OrderSiblingPayments } from "./features/orders/index";
4064
+ export { RefundHistoryTable } from "./features/orders/index";
4065
+ export { RefundRequestView } from "./features/orders/index";
4050
4066
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4051
4067
  // PaymentGatewayValues - Model for payment gateway values.
4052
4068
  export { PaymentGatewayValues } from "./features/orders/index";
@@ -4238,6 +4254,14 @@ export { AuctionDetailView } from "./features/products/index";
4238
4254
  export { AuctionDetailPageView } from "./features/auctions/index";
4239
4255
  // [SERVER-RSC]-Self-fetching index page view for auctions.
4240
4256
  export { AuctionsListView } from "./features/auctions/components/AuctionsListView";
4257
+ // [SERVER-RSC]-Self-fetching index page view for `/bundles` (categoryType:"bundle" rows).
4258
+ export { BundlesListView } from "./features/categories/components/BundlesListView";
4259
+ // S-SBUNI-3 2026-05-13 — public bundle detail view (rebuilt after SB-UNI-V deletion).
4260
+ export { BundleDetailView } from "./features/categories/components/BundleDetailView";
4261
+ // S-SBUNI-5 2026-05-13 — functional Add-to-cart CTA client island.
4262
+ export { BundleBuyNowCta } from "./features/categories/components/BundleBuyNowCta";
4263
+ // CategoryBundlesListing is also re-exported lower in this file (line ~8871);
4264
+ // the canonical export lives there next to BUNDLE_MIN_ITEMS / BUNDLE_MAX_ITEMS.
4241
4265
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4242
4266
  // AuctionsView - Component for auctions view.
4243
4267
  export { AuctionsView } from "./features/products/index";
@@ -4309,13 +4333,13 @@ export { PreOrderDetailView } from "./features/products/index";
4309
4333
  // PreOrdersView - Component for pre orders view.
4310
4334
  export { PreOrdersView } from "./features/products/index";
4311
4335
  // [SERVER-RSC]-Public listing for prize-draw products (SB4-F).
4312
- export { PrizeDrawsListingView } from "./features/products/index";
4336
+ export { PrizeDrawsListingView } from "./features/products/components/PrizeDrawsListingView";
4313
4337
  // [CLIENT]-Client toolbar+grid for prize draws (SB4-F).
4314
4338
  export { PrizeDrawsIndexListing } from "./features/products/index";
4315
4339
  // [CLIENT]-Marketplace card for prize draws (SB4-F).
4316
4340
  export { MarketplacePrizeDrawCard } from "./features/products/index";
4317
4341
  // [SERVER-RSC]-Public detail page for a prize-draw product (SB4-G).
4318
- export { PrizeDrawDetailPageView } from "./features/products/index";
4342
+ export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
4319
4343
  // [CLIENT]-Buy panel client for prize-draw detail (consent + add-to-cart) (SB4-G).
4320
4344
  export { PrizeDrawEntryActions } from "./features/products/index";
4321
4345
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
@@ -4387,7 +4411,18 @@ export { getProductSortOptions } from "./features/products/index";
4387
4411
  export { getProductTableColumns } from "./features/products/index";
4388
4412
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4389
4413
  // normalizeListingType + predicate helpers — canonical SB1-G accessors.
4390
- export { normalizeListingType, isAuctionListing, isPreOrderListing, isStandardListing, } from "./features/products/index";
4414
+ // SB-UNI-F 2026-05-13 Phase 2 predicates added (classified/digital-code/live).
4415
+ export { normalizeListingType, isAuctionListing, isPreOrderListing, isStandardListing, isPrizeDrawListing, isClassifiedListing, isDigitalCodeListing, isLiveListing, } from "./features/products/index";
4416
+ // SB-UNI-X4 2026-05-13 — per-type feature-flag helpers.
4417
+ export { isListingTypeEnabled, isCategoryTypeEnabled, enabledListingTypes, enabledCategoryTypes, } from "./_internal/shared/listing-types/feature-flags";
4418
+ // SB-UNI-X5 2026-05-13 — action telemetry sink.
4419
+ export { actionTracker, setActionTrackerSink, resetActionTrackerSink, } from "./_internal/shared/listing-types/action-tracker";
4420
+ // SB-UNI-S 2026-05-13 — cart-level shipping-requirement helpers.
4421
+ export { cartRequiresShipping, cartIsDigitalOnly, cartIsChatOnly, } from "./_internal/shared/listing-types/cart-shipping";
4422
+ // SB-UNI-W-1 2026-05-13 — CTA action registry shell.
4423
+ export { ACTIONS, action, act, canPerformAction, actionsForListingType, actionLabel, } from "./_internal/shared/actions/action-registry";
4424
+ // User-role predicates — SB-UNI-E 2026-05-13.
4425
+ export { isAdminUser, isSellerUser, isModeratorUser, isEmployeeUser, isBuyerUser, } from "./features/auth/role-predicates";
4391
4426
  // [SERVER-ONLY]-Safe in browser but intended for server routes.
4392
4427
  // sanitizeProductForPublic - Strip sellerId/sellerName/sellerEmail/ownerId before returning a product in a public response.
4393
4428
  export { sanitizeProductForPublic, sanitizeProductsForPublic } from "./features/products/index";
@@ -4845,6 +4880,12 @@ export { SellerPayoutStats } from "./features/seller/index";
4845
4880
  // SellerPayoutsView - Component for seller payouts view.
4846
4881
  export { SellerPayoutsView } from "./features/seller/index";
4847
4882
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4883
+ // SellerPreOrdersView - Component for seller pre-orders listing view (SB4-E).
4884
+ export { SellerPreOrdersView } from "./features/seller/index";
4885
+ // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4886
+ // SellerPrizeDrawsView - Component for seller prize draws listing view (SB4-E).
4887
+ export { SellerPrizeDrawsView } from "./features/seller/index";
4888
+ // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
4848
4889
  // SellerProductsView - Component for seller products view.
4849
4890
  export { SellerProductsView } from "./features/seller/index";
4850
4891
  // [CLIENT-SSR]-Runs in both SSR and browser — React component or hook that does not depend on browser-only APIs.
@@ -5363,7 +5404,7 @@ export { useMediaQuery, useBreakpoint, useClickOutside, useKeyPress, useLongPres
5363
5404
  // Missing auth feature components
5364
5405
  export { RoleGate, ProtectedRoute, SocialAuthButtons, AuthStatusPanel, LoginForm, RegisterForm, ForgotPasswordView, ResetPasswordView, VerifyEmailView, OAuthLoadingView, } from "./features/auth/index";
5365
5406
  // Missing cart and checkout feature components
5366
- export { CartItemRow, CartDrawer, CartView, CartSummary } from "./features/cart/index";
5407
+ export { CartItemRow, CartDrawer, CartView, CartSummary, ShippingPicker } from "./features/cart/index";
5367
5408
  export { CheckoutView, CheckoutAddressStep, CheckoutOtpModal, CheckoutSuccessView } from "./features/cart/index";
5368
5409
  export { CheckoutStepper, useCheckout } from "./features/checkout/index";
5369
5410
  // PaymentGateway already exported from checkout types above
@@ -5385,6 +5426,8 @@ export { TextLink } from "./ui/index";
5385
5426
  export { SUCCESS_MESSAGES } from "./values/index";
5386
5427
  // -- Missing order utils
5387
5428
  export { splitCartIntoOrderGroups } from "./features/orders/index";
5429
+ // S-SBUNI-5 2026-05-13 — bundle-aware order item grouping for receipts.
5430
+ export { groupOrderItemsByBundle, } from "./features/orders/index";
5388
5431
  // -- Missing utils
5389
5432
  export { buildSieveFilters } from "./utils/filter.helper";
5390
5433
  export { formatFileSize } from "./utils/number.formatter";
@@ -5407,6 +5450,10 @@ export { productFeatureAdminCreateSchema, productFeatureStoreCreateSchema, produ
5407
5450
  export { LISTING_PARAM_NAMES, parseListingParams, parseListingSearchParams, serializeListingParams, } from "./utils/listing-params";
5408
5451
  // Product features UI option lists (S8 refactor — shared by editor + selector)
5409
5452
  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";
5453
+ // SB10-A listing tab constants
5454
+ export { CATEGORY_PAGE_TABS, STORE_PAGE_TABS, SELLER_LISTING_TABS, SEARCH_RESULT_TABS, } from "./features/products/constants/listing-tabs";
5455
+ // SB10-C admin + seller filter-chip tab sets (S8 2026-05-13)
5456
+ 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";
5410
5457
  // Grouped listings feature schemas
5411
5458
  export { GROUPED_LISTINGS_COLLECTION } from "./features/grouped/schemas/firestore";
5412
5459
  // SB-UNI-D + V — BundleDocument + bundlesRepository + features/bundles/
@@ -5416,6 +5463,12 @@ export { GROUPED_LISTINGS_COLLECTION } from "./features/grouped/schemas/firestor
5416
5463
  // Replacement component: CategoryBundlesListing in features/categories/components.
5417
5464
  export { CategoryBundlesListing } from "./features/categories/components/CategoryBundlesListing";
5418
5465
  export { BUNDLE_MIN_ITEMS, BUNDLE_MAX_ITEMS, BUNDLE_MAX_PER_USER_DEFAULT, BUNDLES_PAGE_SIZE, BUNDLES_FEATURED_LIMIT, } from "./_internal/shared/features/categories/bundle-config";
5466
+ // S-SBUNI-4 follow-up — shared bundle UI copy + stock-badge variant map.
5467
+ export { BUNDLE_COPY, BUNDLE_STOCK_VARIANT, } from "./_internal/shared/features/categories/bundle-copy";
5468
+ // S-SBUNI-RULES 2026-05-13 — shared copy for refund / shipping / sibling-payment UI.
5469
+ export { REFUND_COPY } from "./_internal/shared/features/orders/refund-copy";
5470
+ // S-SBUNI-4 follow-up — shared admin bundle zod schemas.
5471
+ export { bundleCreateSchema, bundleUpdateSchema, bundleQueryRuleSchema, bundleDisplaySchema, } from "./_internal/shared/features/categories/bundle-schemas";
5419
5472
  // Scam registry — seed data
5420
5473
  export { scammersSeedData } from "./seed/index";
5421
5474
  // Product features — seed data (FI2)
@@ -5456,5 +5509,7 @@ export { renderPrivateProfileOgImage, renderUserProfileOgImage } from "./_intern
5456
5509
  // Listing-type capability registry — SB-UNI X1.
5457
5510
  export { LISTING_TYPE_CAPABILITIES, capabilityFor, canAddToCart, canBid, supportsShipping, requiresVendorVerified, requiresJurisdictionCheck, hasInstantFulfillment, assertNever, } from "./_internal/shared/listing-types/capabilities";
5458
5511
  export { LISTING_TYPE_REGISTRY, pluginFor } from "./_internal/shared/listing-types/_registry";
5512
+ // Checkout rule registry — pure TS, safe in both client and server bundles.
5513
+ export { getListingRule, getCategoryRule, pickOrderType, getSplitKey, runSyncPreflight, CHECKOUT_RULES, CATEGORY_CHECKOUT_RULES, CHECKOUT_MAX_ORDERS_PER_TX, PRIZE_DRAW_MAX_REVEALS_PER_ORDER, BUNDLE_MAX_QTY_PER_TX, STANDARD_MAX_QTY_PER_LINE, } from "./_internal/shared/checkout/rules";
5459
5514
  // Media upload limits — pure constants, safe in both client and server bundles.
5460
5515
  export { MEGABYTE, MAX_IMAGE_BYTES, MAX_PDF_BYTES, MAX_VIDEO_BYTES, MAX_LABEL, MAX_BYTES, ALLOWED_IMAGE_MIMES, ALLOWED_VIDEO_MIMES, ALLOWED_DOC_MIMES, ALLOWED_MIMES, ALLOWED_TYPES_LABEL, MIME_TO_EXT, PDF_MAGIC, VIDEO_CONVERSION_HINTS, classifyMime, isAllowedMime, maxBytesFor, getConversionHint, } from "./_internal/shared/media/limits";
@@ -72,6 +72,8 @@ export declare const DEFAULT_ROUTE_MAP: {
72
72
  readonly EVENTS: "/events";
73
73
  readonly EVENT_DETAIL: (id: string) => string;
74
74
  readonly EVENT_PARTICIPATE: (id: string) => string;
75
+ readonly EVENT_LEADERBOARD: (id: string) => string;
76
+ readonly EVENT_WINNER: (id: string) => string;
75
77
  readonly SUBLISTING_CATEGORIES: "/sublisting-categories";
76
78
  readonly SUBLISTING_CATEGORY: (slug: string) => string;
77
79
  readonly SUPPORT: "/support";
@@ -224,6 +226,7 @@ export declare const DEFAULT_ROUTE_MAP: {
224
226
  readonly FEATURES_NEW: "/admin/features/new";
225
227
  readonly FEATURES_EDIT: (id: string) => string;
226
228
  readonly BUNDLES: "/admin/bundles";
229
+ readonly BUNDLES_NEW: "/admin/bundles/new";
227
230
  readonly BUNDLES_EDIT: (id: string) => string;
228
231
  readonly PRIZE_DRAWS: "/admin/prize-draws";
229
232
  readonly PRIZE_DRAWS_EDIT: (id: string) => string;
@@ -298,6 +301,8 @@ export declare const ROUTES: {
298
301
  readonly EVENTS: "/events";
299
302
  readonly EVENT_DETAIL: (id: string) => string;
300
303
  readonly EVENT_PARTICIPATE: (id: string) => string;
304
+ readonly EVENT_LEADERBOARD: (id: string) => string;
305
+ readonly EVENT_WINNER: (id: string) => string;
301
306
  readonly SUBLISTING_CATEGORIES: "/sublisting-categories";
302
307
  readonly SUBLISTING_CATEGORY: (slug: string) => string;
303
308
  readonly SUPPORT: "/support";
@@ -450,6 +455,7 @@ export declare const ROUTES: {
450
455
  readonly FEATURES_NEW: "/admin/features/new";
451
456
  readonly FEATURES_EDIT: (id: string) => string;
452
457
  readonly BUNDLES: "/admin/bundles";
458
+ readonly BUNDLES_NEW: "/admin/bundles/new";
453
459
  readonly BUNDLES_EDIT: (id: string) => string;
454
460
  readonly PRIZE_DRAWS: "/admin/prize-draws";
455
461
  readonly PRIZE_DRAWS_EDIT: (id: string) => string;
@@ -60,6 +60,8 @@ export const DEFAULT_ROUTE_MAP = {
60
60
  EVENTS: "/events",
61
61
  EVENT_DETAIL: (id) => `/events/${id}`,
62
62
  EVENT_PARTICIPATE: (id) => `/events/${id}/participate`,
63
+ EVENT_LEADERBOARD: (id) => `/events/${id}/leaderboard`,
64
+ EVENT_WINNER: (id) => `/events/${id}/winner`,
63
65
  SUBLISTING_CATEGORIES: "/sublisting-categories",
64
66
  SUBLISTING_CATEGORY: (slug) => `/sublisting-categories/${slug}`,
65
67
  SUPPORT: "/support",
@@ -213,7 +215,9 @@ export const DEFAULT_ROUTE_MAP = {
213
215
  FEATURES_NEW: "/admin/features/new",
214
216
  FEATURES_EDIT: (id) => `/admin/features/${id}/edit`,
215
217
  // SB1-J — bundles + prize draws (admin moderation)
218
+ // S-SBUNI-4 — BUNDLES_NEW added alongside BUNDLES_EDIT.
216
219
  BUNDLES: "/admin/bundles",
220
+ BUNDLES_NEW: "/admin/bundles/new",
217
221
  BUNDLES_EDIT: (id) => `/admin/bundles/${id}/edit`,
218
222
  PRIZE_DRAWS: "/admin/prize-draws",
219
223
  PRIZE_DRAWS_EDIT: (id) => `/admin/prize-draws/${id}/edit`,
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Firebase Admin SDK singletons.
3
3
  *
4
- * Supports two init methods (checked in order):
4
+ * Supports three init methods (checked in order):
5
5
  * 1. `firebase-admin-key.json` in process.cwd() — development
6
- * 2. FIREBASE_ADMIN_PROJECT_ID / CLIENT_EMAIL / PRIVATE_KEY env vars — production
6
+ * 2. FIREBASE_ADMIN_PROJECT_ID / CLIENT_EMAIL / PRIVATE_KEY env vars — Vercel
7
+ * 3. Application Default Credentials — Firebase Functions / Cloud Run /
8
+ * GCE / GKE. Detected via FUNCTION_TARGET / K_SERVICE / FIREBASE_CONFIG /
9
+ * GOOGLE_APPLICATION_CREDENTIALS. Calls `initializeApp()` with no
10
+ * credential — the SDK resolves credentials via the GCE metadata server.
7
11
  *
8
12
  * All getters are lazy — the SDK is not touched until first use.
9
13
  */
@@ -91,6 +91,29 @@ export function getAdminApp() {
91
91
  databaseURL: dbUrl,
92
92
  });
93
93
  }
94
+ else if (
95
+ // Application Default Credentials — Firebase Functions / Cloud Run / GCE.
96
+ // FUNCTION_TARGET is set by Gen 2 Functions; K_SERVICE by Cloud Run;
97
+ // FIREBASE_CONFIG is auto-injected by Firebase; GOOGLE_APPLICATION_CREDENTIALS
98
+ // is set when a JSON key path is provided. In any of these cases call
99
+ // `initializeApp()` with no credential — the SDK resolves creds from the
100
+ // metadata server.
101
+ process.env.FUNCTION_TARGET ||
102
+ process.env.K_SERVICE ||
103
+ process.env.FIREBASE_CONFIG ||
104
+ process.env.GOOGLE_APPLICATION_CREDENTIALS) {
105
+ const firebaseConfig = process.env.FIREBASE_CONFIG
106
+ ? JSON.parse(process.env.FIREBASE_CONFIG)
107
+ : {};
108
+ const projectId = firebaseConfig.projectId ?? process.env.GCLOUD_PROJECT ?? "";
109
+ const dbUrl = firebaseConfig.databaseURL ??
110
+ process.env.FIREBASE_ADMIN_DATABASE_URL ??
111
+ process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL ??
112
+ (projectId
113
+ ? `https://${projectId}-default-rtdb.firebaseio.com`
114
+ : undefined);
115
+ app = initializeApp(dbUrl ? { databaseURL: dbUrl } : undefined);
116
+ }
94
117
  else {
95
118
  throw new Error("@mohasinac/db-firebase: Firebase Admin credentials not found.\n" +
96
119
  "Add firebase-admin-key.json to project root, or set " +
@@ -9,14 +9,13 @@ export { unitOfWork } from "../core";
9
9
  export type { UnitOfWork } from "../core";
10
10
  export { UserRepository, userRepository, EmailVerificationTokenRepository, PasswordResetTokenRepository, emailVerificationTokenRepository, passwordResetTokenRepository, tokenRepository, SessionRepository, sessionRepository, } from "../features/auth/repository";
11
11
  export { SmsCounterRepository, smsCounterRepository, } from "../features/auth/repository/sms-counter.repository";
12
- export { AddressRepository, addressRepository, } from "../features/account/repository/address.repository";
12
+ export { AddressesRepository, addressesRepository, } from "../features/addresses";
13
13
  export { ProductRepository, ProductsRepository, productRepository, } from "../features/products/repository/products.repository";
14
14
  export { OrderRepository, OrdersRepository, orderRepository, } from "../features/orders/repository/orders.repository";
15
15
  export { ReviewRepository, ReviewsRepository, reviewRepository, } from "../features/reviews/repository/reviews.repository";
16
16
  export { bidRepository } from "../features/auctions/repository/bid.repository";
17
17
  export { CartRepository, cartRepository, } from "../features/cart/repository/cart.repository";
18
18
  export { StoreRepository, storeRepository, } from "../features/stores/repository/store.repository";
19
- export { storeAddressRepository } from "../features/stores/repository/store-address.repository";
20
19
  export { siteSettingsRepository } from "../features/admin/repository/site-settings.repository";
21
20
  export { notificationRepository } from "../features/admin/repository/notification.repository";
22
21
  export { chatRepository } from "../features/admin/repository/chat.repository";
@@ -11,7 +11,9 @@ export { unitOfWork } from "../core";
11
11
  // Core repositories
12
12
  export { UserRepository, userRepository, EmailVerificationTokenRepository, PasswordResetTokenRepository, emailVerificationTokenRepository, passwordResetTokenRepository, tokenRepository, SessionRepository, sessionRepository, } from "../features/auth/repository";
13
13
  export { SmsCounterRepository, smsCounterRepository, } from "../features/auth/repository/sms-counter.repository";
14
- export { AddressRepository, addressRepository, } from "../features/account/repository/address.repository";
14
+ // SB-UNI-A 2026-05-13 top-level `addresses` collection with ownerType discriminator.
15
+ // Replaces the two prior subcollection repositories (account/address + stores/store-address).
16
+ export { AddressesRepository, addressesRepository, } from "../features/addresses";
15
17
  export { ProductRepository, ProductsRepository, productRepository, } from "../features/products/repository/products.repository";
16
18
  export { OrderRepository, OrdersRepository, orderRepository, } from "../features/orders/repository/orders.repository";
17
19
  export { ReviewRepository, ReviewsRepository, reviewRepository, } from "../features/reviews/repository/reviews.repository";
@@ -19,7 +21,8 @@ export { ReviewRepository, ReviewsRepository, reviewRepository, } from "../featu
19
21
  export { bidRepository } from "../features/auctions/repository/bid.repository";
20
22
  export { CartRepository, cartRepository, } from "../features/cart/repository/cart.repository";
21
23
  export { StoreRepository, storeRepository, } from "../features/stores/repository/store.repository";
22
- export { storeAddressRepository } from "../features/stores/repository/store-address.repository";
24
+ // SB-UNI-A 2026-05-13 — storeAddressRepository deleted. Use addressesRepository
25
+ // with ownerType:"store" instead.
23
26
  export { siteSettingsRepository } from "../features/admin/repository/site-settings.repository";
24
27
  export { notificationRepository } from "../features/admin/repository/notification.repository";
25
28
  export { chatRepository } from "../features/admin/repository/chat.repository";
@@ -8,7 +8,8 @@
8
8
  * they depend on Firebase Admin and the user repository; implement them in your
9
9
  * app layer using these primitives.
10
10
  */
11
- export type UserRole = "admin" | "moderator" | "seller" | "user";
11
+ import type { UserRole } from "../features/auth/types";
12
+ export type { UserRole };
12
13
  export declare function requireAuth(user: unknown): void;
13
14
  export declare function requireRole(user: Record<string, unknown> | null | undefined, roles: UserRole | UserRole[]): void;
14
15
  export declare function requireOwnership(user: Record<string, unknown> | null | undefined, resourceOwnerId: string): void;
@@ -11,8 +11,9 @@
11
11
  import { AuthenticationError, AuthorizationError } from "../errors";
12
12
  import { ERROR_MESSAGES } from "../errors/messages";
13
13
  const ROLE_HIERARCHY = {
14
- admin: 4,
15
- moderator: 3,
14
+ admin: 5,
15
+ moderator: 4,
16
+ employee: 3,
16
17
  seller: 2,
17
18
  user: 1,
18
19
  };
@@ -6,7 +6,7 @@
6
6
  * the actual collection-specific seeding logic (800+ lines with PII encryption,
7
7
  * Auth user creation, subcollection handling, etc.).
8
8
  */
9
- export type SeedCollectionName = "users" | "addresses" | "categories" | "stores" | "products" | "orders" | "reviews" | "bids" | "coupons" | "carousels" | "carouselSlides" | "homepageSections" | "siteSettings" | "faqs" | "notifications" | "payouts" | "blogPosts" | "events" | "eventEntries" | "sessions" | "storeAddresses" | "carts" | "wishlists" | "history" | "conversations" | "groupedListings" | "scammerProfiles" | "productFeatures";
9
+ export type SeedCollectionName = "users" | "addresses" | "categories" | "stores" | "products" | "orders" | "reviews" | "bids" | "coupons" | "carousels" | "carouselSlides" | "homepageSections" | "siteSettings" | "faqs" | "notifications" | "payouts" | "blogPosts" | "events" | "eventEntries" | "sessions" | "carts" | "wishlists" | "history" | "conversations" | "groupedListings" | "scammerProfiles" | "productFeatures";
10
10
  export interface SeedOperationResult {
11
11
  success?: boolean;
12
12
  message: string;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Bids Seed Data — Collectibles Edition
3
- * Realistic bid progressions for the 4 active/ended auctions in P17.
4
- * Upcoming auction (auction-beyblade-metal-fusion-signed) has 0 bids.
3
+ * Realistic bid progressions for every auction with bidCount > 0.
4
+ * Auctions with bidCount = 0 (upcoming / no-bid) are intentionally absent.
5
5
  * Buyer IDs from P15 users seed data.
6
6
  */
7
7
  import type { BidDocument } from "../features/auctions/schemas";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Bids Seed Data — Collectibles Edition
3
- * Realistic bid progressions for the 4 active/ended auctions in P17.
4
- * Upcoming auction (auction-beyblade-metal-fusion-signed) has 0 bids.
3
+ * Realistic bid progressions for every auction with bidCount > 0.
4
+ * Auctions with bidCount = 0 (upcoming / no-bid) are intentionally absent.
5
5
  * Buyer IDs from P15 users seed data.
6
6
  */
7
7
  const NOW = new Date();
@@ -558,6 +558,81 @@ export const bidsSeedData = [
558
558
  winningIndex: -1, // reserve not met — no winner
559
559
  slugPrefix: "bid-skyline-fail",
560
560
  }),
561
+ // ═══════════════════════════════════════════════════════════════════════════
562
+ // auction-nendoroid-miku-100-limited — ACTIVE, ends in 4h, 7 bids → current ₹11,999
563
+ // ═══════════════════════════════════════════════════════════════════════════
564
+ ...buildBidLadder({
565
+ productId: "auction-nendoroid-miku-100-limited",
566
+ productTitle: "Good Smile Company Nendoroid Hatsune Miku #100 (Original Release, Rare) — AUCTION",
567
+ amounts: [499900, 599900, 699900, 799900, 899900, 1049900, 1199900],
568
+ bidders: [
569
+ { id: "user-priya-patel", name: "Priya Patel", email: "priya.patel@gmail.com" },
570
+ { id: "user-divya-menon", name: "Divya Menon", email: "divya.menon@gmail.com" },
571
+ { id: "user-priya-patel", name: "Priya Patel", email: "priya.patel@gmail.com" },
572
+ { id: "user-pooja-sharma", name: "Pooja Sharma", email: "pooja.sharma@gmail.com" },
573
+ { id: "user-divya-menon", name: "Divya Menon", email: "divya.menon@gmail.com" },
574
+ { id: "user-meera-nair", name: "Meera Nair", email: "meera.nair@gmail.com" },
575
+ { id: "user-priya-patel", name: "Priya Patel", email: "priya.patel@gmail.com" },
576
+ ],
577
+ daysAgoForFirst: 9,
578
+ endsActive: true,
579
+ slugPrefix: "bid-miku-100",
580
+ }),
581
+ // ═══════════════════════════════════════════════════════════════════════════
582
+ // auction-pokemon-mew-1st-edition-psa10 — ACTIVE, ends in 24h, 3 bids → current ₹1,49,999
583
+ // ═══════════════════════════════════════════════════════════════════════════
584
+ ...buildBidLadder({
585
+ productId: "auction-pokemon-mew-1st-edition-psa10",
586
+ productTitle: "Pokémon Mew #151 1st Edition — PSA 10 GEM MINT (AUCTION)",
587
+ amounts: [9999900, 12499900, 14999900],
588
+ bidders: [
589
+ { id: "user-arjun-singh", name: "Arjun Singh", email: "arjun.singh@gmail.com" },
590
+ { id: "user-rahul-sharma", name: "Rahul Sharma", email: "rahul.sharma@gmail.com" },
591
+ { id: "user-siddharth-rao", name: "Siddharth Rao", email: "siddharth.rao@gmail.com" },
592
+ ],
593
+ daysAgoForFirst: 5,
594
+ endsActive: true,
595
+ slugPrefix: "bid-mew-1ed",
596
+ }),
597
+ // ═══════════════════════════════════════════════════════════════════════════
598
+ // auction-yugioh-blue-eyes-lob-1st-psa9 — ACTIVE, ends in 72h, 8 bids → current ₹79,999
599
+ // ═══════════════════════════════════════════════════════════════════════════
600
+ ...buildBidLadder({
601
+ productId: "auction-yugioh-blue-eyes-lob-1st-psa9",
602
+ productTitle: "Yu-Gi-Oh! Blue-Eyes White Dragon LOB 1st Edition — PSA 9 MINT (AUCTION)",
603
+ amounts: [2999900, 3499900, 4249900, 4999900, 5749900, 6499900, 7249900, 7999900],
604
+ bidders: [
605
+ { id: "user-rahul-sharma", name: "Rahul Sharma", email: "rahul.sharma@gmail.com" },
606
+ { id: "user-priya-singh", name: "Priya Singh", email: "priya.singh@gmail.com" },
607
+ { id: "user-arjun-singh", name: "Arjun Singh", email: "arjun.singh@gmail.com" },
608
+ { id: "user-amit-sharma", name: "Amit Sharma", email: "amit.sharma@gmail.com" },
609
+ { id: "user-rahul-sharma", name: "Rahul Sharma", email: "rahul.sharma@gmail.com" },
610
+ { id: "user-rohit-verma", name: "Rohit Verma", email: "rohit.verma@gmail.com" },
611
+ { id: "user-priya-singh", name: "Priya Singh", email: "priya.singh@gmail.com" },
612
+ { id: "user-arjun-singh", name: "Arjun Singh", email: "arjun.singh@gmail.com" },
613
+ ],
614
+ daysAgoForFirst: 7,
615
+ endsActive: true,
616
+ slugPrefix: "bid-bewd-lob",
617
+ }),
618
+ // ═══════════════════════════════════════════════════════════════════════════
619
+ // auction-hot-wheels-redline-deora-japan — ACTIVE, ends in 36h, 5 bids → current ₹17,999
620
+ // ═══════════════════════════════════════════════════════════════════════════
621
+ ...buildBidLadder({
622
+ productId: "auction-hot-wheels-redline-deora-japan",
623
+ productTitle: "Hot Wheels Redline Deora — Japan Issue (AUCTION)",
624
+ amounts: [899900, 1099900, 1299900, 1499900, 1799900],
625
+ bidders: [
626
+ { id: "user-varun-bhat", name: "Varun Bhat", email: "varun.bhat@gmail.com" },
627
+ { id: "user-kiran-reddy", name: "Kiran Reddy", email: "kiran.reddy@gmail.com" },
628
+ { id: "user-preeti-joshi", name: "Preeti Joshi", email: "preeti.joshi@gmail.com" },
629
+ { id: "user-varun-bhat", name: "Varun Bhat", email: "varun.bhat@gmail.com" },
630
+ { id: "user-meera-nair", name: "Meera Nair", email: "meera.nair@gmail.com" },
631
+ ],
632
+ daysAgoForFirst: 6,
633
+ endsActive: true,
634
+ slugPrefix: "bid-deora-jp",
635
+ }),
561
636
  ];
562
637
  /**
563
638
  * Builds a strictly-increasing bid ladder for an auction. Status flags are
@@ -1,19 +1,19 @@
1
1
  /**
2
- * Carts Seed Data LetItRip Collectibles
2
+ * Carts Seed Data — LetItRip Collectibles
3
3
  *
4
4
  * Covers all cart states for testing Add-to-Cart / Update / Remove / Checkout flows:
5
- * Multi-item cart (cross-store, mixed categories) Rahul Sharma
6
- * Single-item cart Priya Patel
7
- * Cart with auction item Arjun Singh
8
- * Cart with quantity > 1 Meera Nair
9
- * Empty cart (items: []) Amit Sharma
5
+ * — Multi-item cart (cross-store, mixed categories) — Rahul Sharma
6
+ * — Single-item cart — Priya Patel
7
+ * — Cart with auction item — Arjun Singh
8
+ * — Cart with quantity > 1 — Meera Nair
9
+ * — Empty cart (items: []) — Amit Sharma
10
10
  *
11
- * Cart document ID = userId (O(1) lookup see cart.ts schema).
11
+ * Cart document ID = userId (O(1) lookup — see cart.ts schema).
12
12
  *
13
13
  * All FK references:
14
- * userId users/{uid} (see users-seed-data.ts)
15
- * items[].productId products/{id} (see products-standard/auctions-seed-data.ts)
16
- * items[].storeId stores/{id} (see stores-seed-data.ts)
14
+ * userId → users/{uid} (see users-seed-data.ts)
15
+ * items[].productId → products/{id} (see products-standard/auctions-seed-data.ts)
16
+ * items[].storeId → stores/{id} (see stores-seed-data.ts)
17
17
  */
18
18
  import type { CartDocument } from "../features/cart/schemas";
19
19
  export declare const cartsSeedData: CartDocument[];
@@ -13,13 +13,13 @@ export const cartsSeedData = [
13
13
  {
14
14
  itemId: "cartitem-rahul-pokemon-etb-001",
15
15
  productId: "product-pokemon-sv-etb",
16
- productTitle: "Pokémon Scarlet & Violet Elite Trainer Box",
16
+ productTitle: "Pokémon Scarlet & Violet Elite Trainer Box",
17
17
  productImage: "/media/product-image-pokemon-sv-etb-1-20260101.jpg",
18
18
  price: 349900,
19
19
  currency: _CURRENCY,
20
20
  quantity: 1,
21
21
  storeId: "store-pokemon-palace",
22
- storeName: "Pokémon Palace",
22
+ storeName: "Pokémon Palace",
23
23
  listingType: "standard",
24
24
  addedAt: daysAgo(9),
25
25
  updatedAt: daysAgo(9),
@@ -89,13 +89,13 @@ export const cartsSeedData = [
89
89
  {
90
90
  itemId: "cartitem-arjun-pokemon-base-auction-001",
91
91
  productId: "auction-pokemon-base-set-booster-box",
92
- productTitle: "Pokémon Base Set 1st Edition Booster Box (SEALED AUCTION)",
92
+ productTitle: "Pokémon Base Set 1st Edition Booster Box (SEALED AUCTION)",
93
93
  productImage: "/media/auction-image-pokemon-base-set-booster-box-1-20260101.jpg",
94
94
  price: 45000000,
95
95
  currency: _CURRENCY,
96
96
  quantity: 1,
97
97
  storeId: "store-pokemon-palace",
98
- storeName: "Pokémon Palace",
98
+ storeName: "Pokémon Palace",
99
99
  listingType: "auction",
100
100
  addedAt: daysAgo(17),
101
101
  updatedAt: daysAgo(17),
@@ -127,13 +127,13 @@ export const cartsSeedData = [
127
127
  {
128
128
  itemId: "cartitem-meera-pokemon151-001",
129
129
  productId: "product-pokemon-151-booster-box",
130
- productTitle: "Pokémon 151 Booster Box (Japanese)",
130
+ productTitle: "Pokémon 151 Booster Box (Japanese)",
131
131
  productImage: "/media/product-image-pokemon-151-booster-box-1-20260101.jpg",
132
132
  price: 699900,
133
133
  currency: _CURRENCY,
134
134
  quantity: 3,
135
135
  storeId: "store-pokemon-palace",
136
- storeName: "Pokémon Palace",
136
+ storeName: "Pokémon Palace",
137
137
  listingType: "standard",
138
138
  addedAt: daysAgo(11),
139
139
  updatedAt: daysAgo(11),
@@ -166,13 +166,13 @@ export const cartsSeedData = [
166
166
  createdAt: daysAgo(27),
167
167
  updatedAt: daysAgo(9),
168
168
  },
169
- // ── P29 expansion (S17 2026-05-12) 15 more carts via helper ───────────
169
+ // ── P29 expansion (S17 2026-05-12) — 15 more carts via helper ───────────
170
170
  ...mkCart("user-kavya-iyer", 6, [
171
171
  {
172
172
  productId: "product-pokemon-151-booster-box",
173
- title: "Pokémon 151 Booster Box (36-pack)",
173
+ title: "Pokémon 151 Booster Box (36-pack)",
174
174
  price: 1799900,
175
- store: ["store-pokemon-palace", "Pokémon Palace"],
175
+ store: ["store-pokemon-palace", "Pokémon Palace"],
176
176
  qty: 1,
177
177
  },
178
178
  ]),
@@ -204,9 +204,9 @@ export const cartsSeedData = [
204
204
  ...mkCart("user-divya-menon", 8, [
205
205
  {
206
206
  productId: "preorder-pokemon-stellar-crown-etb",
207
- title: "PRE-ORDER: Pokémon Stellar Crown ETB",
207
+ title: "PRE-ORDER: Pokémon Stellar Crown ETB",
208
208
  price: 599900,
209
- store: ["store-pokemon-palace", "Pokémon Palace"],
209
+ store: ["store-pokemon-palace", "Pokémon Palace"],
210
210
  qty: 1,
211
211
  listingType: "pre-order",
212
212
  },
@@ -255,7 +255,7 @@ export const cartsSeedData = [
255
255
  ...mkCart("user-anjali-verma", 1, [
256
256
  {
257
257
  productId: "product-pokemon-charizard-ex-obsidian",
258
- title: "Pokémon Charizard ex Obsidian Flames Hyper Rare",
258
+ title: "Pokémon Charizard ex Obsidian Flames Hyper Rare",
259
259
  price: 1499900,
260
260
  store: ["store-cardgame-hub", "CardGame Hub"],
261
261
  qty: 1,
@@ -273,14 +273,14 @@ export const cartsSeedData = [
273
273
  ...mkCart("user-pooja-sharma", 4, [
274
274
  {
275
275
  productId: "auction-pokemon-lugia-neo-genesis-psa9",
276
- title: "Pokémon Neo Genesis Lugia #9 PSA 9 (AUCTION)",
276
+ title: "Pokémon Neo Genesis Lugia #9 PSA 9 (AUCTION)",
277
277
  price: 6999900,
278
- store: ["store-pokemon-palace", "Pokémon Palace"],
278
+ store: ["store-pokemon-palace", "Pokémon Palace"],
279
279
  qty: 1,
280
280
  listingType: "auction",
281
281
  },
282
282
  ]),
283
- // Guest carts skipped sessionId is a runtime-only optional field on the
283
+ // Guest carts skipped — sessionId is a runtime-only optional field on the
284
284
  // Zod input but not on the `CartDocument` interface used by the seed array.
285
285
  // Guest cart behavior is exercised at runtime via localStorage merge tests.
286
286
  ];