@mohasinac/appkit 4.53.0 → 4.53.1

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 (500) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/client/scaffolds/AppShell.js +1 -1
  3. package/dist/_internal/server/features/auctions/og.d.ts +3 -1
  4. package/dist/_internal/server/features/auctions/og.js +3 -1
  5. package/dist/_internal/server/features/bundles/actions.js +1 -1
  6. package/dist/_internal/server/features/business-documents/download.d.ts +41 -0
  7. package/dist/_internal/server/features/business-documents/download.js +91 -0
  8. package/dist/_internal/server/features/categories/adapters.d.ts +1 -1
  9. package/dist/_internal/server/features/categories/adapters.js +10 -0
  10. package/dist/_internal/server/features/checkout/actions.d.ts +14 -0
  11. package/dist/_internal/server/features/checkout/actions.js +106 -12
  12. package/dist/_internal/server/features/checkout/bundle-expansion.js +17 -0
  13. package/dist/_internal/server/features/checkout/data.d.ts +22 -0
  14. package/dist/_internal/server/features/checkout/group-rule-revalidation.d.ts +34 -0
  15. package/dist/_internal/server/features/checkout/group-rule-revalidation.js +124 -0
  16. package/dist/_internal/server/features/checkout/supplier-identity.d.ts +55 -0
  17. package/dist/_internal/server/features/checkout/supplier-identity.js +81 -0
  18. package/dist/_internal/server/features/classified/metadata.js +1 -1
  19. package/dist/_internal/server/features/classified/og.d.ts +3 -1
  20. package/dist/_internal/server/features/classified/og.js +3 -1
  21. package/dist/_internal/server/features/digital-code/metadata.js +1 -1
  22. package/dist/_internal/server/features/digital-code/og.d.ts +3 -1
  23. package/dist/_internal/server/features/digital-code/og.js +3 -1
  24. package/dist/_internal/server/features/digital-code/pool.d.ts +19 -4
  25. package/dist/_internal/server/features/digital-code/pool.js +19 -4
  26. package/dist/_internal/server/features/live/metadata.js +1 -1
  27. package/dist/_internal/server/features/live/og.d.ts +3 -1
  28. package/dist/_internal/server/features/live/og.js +3 -1
  29. package/dist/_internal/server/features/messages/actions.js +1 -1
  30. package/dist/_internal/server/features/parts/og.js +1 -1
  31. package/dist/_internal/server/features/pre-orders/og.d.ts +3 -1
  32. package/dist/_internal/server/features/pre-orders/og.js +3 -1
  33. package/dist/_internal/server/features/price-index/search.d.ts +18 -0
  34. package/dist/_internal/server/features/price-index/search.js +47 -7
  35. package/dist/_internal/server/features/prize-draws/og.d.ts +3 -1
  36. package/dist/_internal/server/features/prize-draws/og.js +3 -1
  37. package/dist/_internal/server/features/products/group-members.d.ts +26 -0
  38. package/dist/_internal/server/features/products/group-members.js +7 -1
  39. package/dist/_internal/server/features/products/og.d.ts +3 -1
  40. package/dist/_internal/server/features/products/og.js +3 -1
  41. package/dist/_internal/server/features/search/scoped-sources.d.ts +26 -0
  42. package/dist/_internal/server/features/search/scoped-sources.js +252 -0
  43. package/dist/_internal/server/features/search/search-everything.d.ts +57 -0
  44. package/dist/_internal/server/features/search/search-everything.js +70 -20
  45. package/dist/_internal/server/features/seo/sitemap.js +6 -0
  46. package/dist/_internal/server/features/shared/listing-adapters.js +4 -2
  47. package/dist/_internal/server/features/sticker-trace/adapters.d.ts +11 -0
  48. package/dist/_internal/server/features/sticker-trace/adapters.js +1 -0
  49. package/dist/_internal/server/features/sticker-trace/promote-to-listings.d.ts +26 -0
  50. package/dist/_internal/server/features/sticker-trace/promote-to-listings.js +264 -0
  51. package/dist/_internal/server/features/sticker-trace/sheet-actions.d.ts +3 -1
  52. package/dist/_internal/server/features/sticker-trace/sheet-actions.js +32 -0
  53. package/dist/_internal/server/features/sticker-trace/storage.d.ts +20 -1
  54. package/dist/_internal/server/features/sticker-trace/storage.js +20 -1
  55. package/dist/_internal/server/features/stores/adapters.d.ts +1 -1
  56. package/dist/_internal/server/features/stores/adapters.js +16 -0
  57. package/dist/_internal/server/features/stores/index.d.ts +1 -0
  58. package/dist/_internal/server/features/stores/index.js +1 -0
  59. package/dist/_internal/server/features/stores/tabs.d.ts +25 -0
  60. package/dist/_internal/server/features/stores/tabs.js +122 -0
  61. package/dist/_internal/shared/checkout/rules/_defaults.js +0 -2
  62. package/dist/_internal/shared/checkout/rules/_limits.d.ts +14 -1
  63. package/dist/_internal/shared/checkout/rules/_limits.js +14 -1
  64. package/dist/_internal/shared/checkout/rules/_registry.js +2 -0
  65. package/dist/_internal/shared/checkout/rules/auction.rule.js +9 -1
  66. package/dist/_internal/shared/checkout/rules/bundle.rule.js +13 -0
  67. package/dist/_internal/shared/checkout/rules/index.d.ts +2 -0
  68. package/dist/_internal/shared/checkout/rules/index.js +9 -0
  69. package/dist/_internal/shared/checkout/rules/offer.rule.js +0 -1
  70. package/dist/_internal/shared/checkout/rules/payment-gate.d.ts +26 -0
  71. package/dist/_internal/shared/checkout/rules/payment-gate.js +133 -0
  72. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +29 -8
  73. package/dist/_internal/shared/checkout/rules/spares.rule.d.ts +16 -0
  74. package/dist/_internal/shared/checkout/rules/spares.rule.js +5 -0
  75. package/dist/_internal/shared/checkout/rules/types.d.ts +26 -2
  76. package/dist/_internal/shared/config/schema.d.ts +122 -0
  77. package/dist/_internal/shared/features/cart/schema.js +3 -2
  78. package/dist/_internal/shared/features/products/group-rules.d.ts +75 -0
  79. package/dist/_internal/shared/features/products/group-rules.js +142 -0
  80. package/dist/_internal/shared/listing-types/_registry.d.ts +24 -0
  81. package/dist/_internal/shared/listing-types/_registry.js +39 -1
  82. package/dist/_internal/shared/listing-types/art/config.d.ts +1 -0
  83. package/dist/_internal/shared/listing-types/art/config.js +2 -0
  84. package/dist/_internal/shared/listing-types/auction/config.d.ts +1 -0
  85. package/dist/_internal/shared/listing-types/auction/config.js +2 -0
  86. package/dist/_internal/shared/listing-types/availability.js +48 -0
  87. package/dist/_internal/shared/listing-types/capabilities.js +19 -0
  88. package/dist/_internal/shared/listing-types/classified/config.d.ts +1 -0
  89. package/dist/_internal/shared/listing-types/classified/config.js +2 -0
  90. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +1 -0
  91. package/dist/_internal/shared/listing-types/digital-code/config.js +2 -0
  92. package/dist/_internal/shared/listing-types/feature-flags.js +1 -0
  93. package/dist/_internal/shared/listing-types/live/config.d.ts +1 -0
  94. package/dist/_internal/shared/listing-types/live/config.js +2 -0
  95. package/dist/_internal/shared/listing-types/pre-order/config.d.ts +1 -0
  96. package/dist/_internal/shared/listing-types/pre-order/config.js +2 -0
  97. package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +1 -0
  98. package/dist/_internal/shared/listing-types/prize-draw/config.js +2 -0
  99. package/dist/_internal/shared/listing-types/spares/config.d.ts +74 -0
  100. package/dist/_internal/shared/listing-types/spares/config.js +60 -0
  101. package/dist/_internal/shared/listing-types/spares/ctas.d.ts +1 -0
  102. package/dist/_internal/shared/listing-types/spares/ctas.js +4 -0
  103. package/dist/_internal/shared/listing-types/spares/og.js +1 -0
  104. package/dist/_internal/shared/listing-types/spares/schema.d.ts +2 -0
  105. package/dist/_internal/shared/listing-types/spares/schema.js +3 -0
  106. package/dist/_internal/shared/listing-types/spares/seed-factory.d.ts +1 -0
  107. package/dist/_internal/shared/listing-types/spares/seed-factory.js +1 -0
  108. package/dist/_internal/shared/listing-types/standard/config.d.ts +1 -0
  109. package/dist/_internal/shared/listing-types/standard/config.js +2 -0
  110. package/dist/_internal/shared/listing-types/stickers/config.d.ts +1 -0
  111. package/dist/_internal/shared/listing-types/stickers/config.js +2 -0
  112. package/dist/_internal/shared/search/match.d.ts +11 -0
  113. package/dist/_internal/shared/search/match.js +2 -1
  114. package/dist/_internal/shared/search/to-groups.d.ts +52 -0
  115. package/dist/_internal/shared/search/to-groups.js +141 -0
  116. package/dist/client.d.ts +8 -2
  117. package/dist/client.js +4 -1
  118. package/dist/constants/api-endpoints.d.ts +39 -15
  119. package/dist/constants/api-endpoints.js +28 -5
  120. package/dist/constants/cache-invalidation.js +3 -1
  121. package/dist/constants/field-names.d.ts +6 -0
  122. package/dist/constants/field-names.js +6 -0
  123. package/dist/features/about/components/PolicyPageView.d.ts +22 -2
  124. package/dist/features/about/components/PolicyPageView.js +14 -2
  125. package/dist/features/about/components/PublicProfileView.js +2 -1
  126. package/dist/features/about/components/ShippingPolicyView.js +42 -2
  127. package/dist/features/account/components/NotificationBell.js +1 -1
  128. package/dist/features/account/hooks/useProfileStats.js +5 -1
  129. package/dist/features/addresses/repository/addresses.repository.d.ts +16 -0
  130. package/dist/features/addresses/repository/addresses.repository.js +21 -0
  131. package/dist/features/admin/actions/admin-actions.js +16 -1
  132. package/dist/features/admin/components/AdminCategoryEditorView.js +19 -2
  133. package/dist/features/admin/components/AdminNavigationView.js +1 -1
  134. package/dist/features/admin/components/AdminPageHeader.js +1 -1
  135. package/dist/features/admin/components/AdminProductEditorView.js +17 -2
  136. package/dist/features/admin/components/AdminSidebar.js +1 -1
  137. package/dist/features/admin/components/AdminSiteSettingsView.js +39 -8
  138. package/dist/features/admin/components/AdminSparesView.d.ts +12 -0
  139. package/dist/features/admin/components/AdminSparesView.js +30 -0
  140. package/dist/features/admin/components/AdminUsersView.js +9 -7
  141. package/dist/features/admin/components/index.d.ts +2 -0
  142. package/dist/features/admin/components/index.js +1 -0
  143. package/dist/features/admin/components/sections/adminSectionsTypes.js +7 -0
  144. package/dist/features/admin/constants/filter-tabs.d.ts +3 -0
  145. package/dist/features/admin/constants/filter-tabs.js +1 -0
  146. package/dist/features/admin/schemas/firestore.d.ts +26 -2
  147. package/dist/features/auctions/components/AuctionDetailPageView.js +4 -11
  148. package/dist/features/auth/repository/user.repository.d.ts +13 -0
  149. package/dist/features/auth/repository/user.repository.js +28 -0
  150. package/dist/features/auth/schemas/firestore.d.ts +2 -0
  151. package/dist/features/auth/schemas/firestore.js +2 -0
  152. package/dist/features/business-documents/repository/business-documents.repository.d.ts +58 -0
  153. package/dist/features/business-documents/repository/business-documents.repository.js +54 -0
  154. package/dist/features/business-documents/schemas/firestore.d.ts +105 -0
  155. package/dist/features/business-documents/schemas/firestore.js +75 -0
  156. package/dist/features/cart/actions/cart-actions.js +83 -6
  157. package/dist/features/cart/repository/cart.repository.js +32 -4
  158. package/dist/features/cart/schemas/firestore.d.ts +20 -0
  159. package/dist/features/cart/schemas/index.d.ts +2 -2
  160. package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +1 -1
  161. package/dist/features/categories/api/[id]/price-guidance/route.d.ts +42 -0
  162. package/dist/features/categories/api/[id]/price-guidance/route.js +113 -0
  163. package/dist/features/categories/components/BrandDetailPageView.js +19 -3
  164. package/dist/features/categories/components/BrandDetailTabs.js +10 -0
  165. package/dist/features/categories/components/CategoriesIndexListing.js +23 -8
  166. package/dist/features/categories/components/CategoryDetailPageView.js +141 -14
  167. package/dist/features/categories/components/CategoryDetailTabs.js +12 -0
  168. package/dist/features/categories/components/CategoryGrid.js +10 -1
  169. package/dist/features/categories/components/PriceGuidanceHint.d.ts +29 -0
  170. package/dist/features/categories/components/PriceGuidanceHint.js +61 -0
  171. package/dist/features/categories/components/SubcategoryCardRow.d.ts +27 -0
  172. package/dist/features/categories/components/SubcategoryCardRow.js +98 -0
  173. package/dist/features/categories/constants/category-tabs.d.ts +20 -25
  174. package/dist/features/categories/constants/category-tabs.js +22 -39
  175. package/dist/features/categories/repository/categories.repository.d.ts +12 -0
  176. package/dist/features/categories/repository/categories.repository.js +20 -0
  177. package/dist/features/categories/schemas/firestore.d.ts +22 -1
  178. package/dist/features/categories/schemas/firestore.js +10 -0
  179. package/dist/features/categories/schemas/index.d.ts +6 -0
  180. package/dist/features/categories/schemas/index.js +2 -0
  181. package/dist/features/categories/types/index.d.ts +8 -0
  182. package/dist/features/categories/utils/taxonomy-visual.d.ts +16 -3
  183. package/dist/features/categories/utils/taxonomy-visual.js +26 -10
  184. package/dist/features/classified/components/ClassifiedDetailPageView.js +4 -9
  185. package/dist/features/contact/components/ContactPageView.d.ts +33 -1
  186. package/dist/features/contact/components/ContactPageView.js +58 -28
  187. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +4 -9
  188. package/dist/features/grouped/components/GroupedListingDetailView.js +9 -1
  189. package/dist/features/grouped/schemas/firestore.d.ts +5 -0
  190. package/dist/features/homepage/actions/homepage-section-actions.d.ts +3 -3
  191. package/dist/features/homepage/components/CollectionCardsSection.d.ts +28 -6
  192. package/dist/features/homepage/components/CollectionCardsSection.js +43 -8
  193. package/dist/features/homepage/components/HowItWorksSection.d.ts +23 -6
  194. package/dist/features/homepage/components/HowItWorksSection.js +4 -4
  195. package/dist/features/homepage/components/PromoGrid.d.ts +31 -2
  196. package/dist/features/homepage/components/PromoGrid.js +12 -3
  197. package/dist/features/homepage/components/TestimonialsCarousel.d.ts +34 -2
  198. package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
  199. package/dist/features/homepage/components/index.d.ts +0 -20
  200. package/dist/features/homepage/components/index.js +0 -11
  201. package/dist/features/homepage/index.d.ts +0 -2
  202. package/dist/features/homepage/index.js +0 -2
  203. package/dist/features/homepage/lib/section-renderer.d.ts +9 -0
  204. package/dist/features/homepage/lib/section-renderer.js +202 -58
  205. package/dist/features/homepage/repository/homepage-sections.repository.d.ts +35 -3
  206. package/dist/features/homepage/repository/homepage-sections.repository.js +58 -8
  207. package/dist/features/homepage/schemas/firestore.d.ts +106 -3
  208. package/dist/features/homepage/schemas/firestore.js +32 -2
  209. package/dist/features/homepage/schemas/index.d.ts +36 -7
  210. package/dist/features/homepage/schemas/index.js +39 -27
  211. package/dist/features/homepage/server.d.ts +0 -3
  212. package/dist/features/homepage/server.js +0 -3
  213. package/dist/features/homepage/types/index.d.ts +0 -47
  214. package/dist/features/homepage/types/index.js +49 -0
  215. package/dist/features/layout/AppLayoutShell.js +1 -1
  216. package/dist/features/layout/BottomNavItem.js +1 -1
  217. package/dist/features/layout/BottomSheet.js +1 -1
  218. package/dist/features/layout/TitleBarLayout.js +1 -1
  219. package/dist/features/live/components/LiveItemDetailPageView.js +4 -9
  220. package/dist/features/media/hooks/useMedia.js +17 -0
  221. package/dist/features/media/repository/media-assets.repository.d.ts +46 -0
  222. package/dist/features/media/repository/media-assets.repository.js +31 -0
  223. package/dist/features/media/trust-signals.d.ts +85 -0
  224. package/dist/features/media/trust-signals.js +126 -0
  225. package/dist/features/parts/components/PartDetailPageView.d.ts +14 -1
  226. package/dist/features/parts/components/PartDetailPageView.js +2 -2
  227. package/dist/features/parts/components/PartsIndexPageView.d.ts +11 -2
  228. package/dist/features/parts/components/PartsIndexPageView.js +2 -2
  229. package/dist/features/parts/components/PartsSearchBox.d.ts +9 -0
  230. package/dist/features/parts/components/PartsSearchBox.js +57 -0
  231. package/dist/features/parts/schemas/firestore.d.ts +149 -3
  232. package/dist/features/parts/schemas/firestore.js +184 -0
  233. package/dist/features/payments/repository/payout.repository.d.ts +15 -0
  234. package/dist/features/payments/repository/payout.repository.js +21 -0
  235. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -11
  236. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +1 -1
  237. package/dist/features/price-index/components/PriceIndexToolView.d.ts +3 -1
  238. package/dist/features/price-index/components/PriceIndexToolView.js +92 -13
  239. package/dist/features/products/components/CompareOverlay.d.ts +18 -1
  240. package/dist/features/products/components/CompareOverlay.js +21 -2
  241. package/dist/features/products/components/CustomSectionTabContent.d.ts +31 -0
  242. package/dist/features/products/components/CustomSectionTabContent.js +29 -3
  243. package/dist/features/products/components/GroupMemberPicker.d.ts +19 -1
  244. package/dist/features/products/components/GroupMemberPicker.js +46 -8
  245. package/dist/features/products/components/GroupSettingsPanel.d.ts +11 -1
  246. package/dist/features/products/components/GroupSettingsPanel.js +91 -3
  247. package/dist/features/products/components/PrizeDrawDetailPageView.js +1 -1
  248. package/dist/features/products/components/PrizeDrawEntryActions.d.ts +15 -1
  249. package/dist/features/products/components/PrizeDrawEntryActions.js +70 -8
  250. package/dist/features/products/components/ProductDetailPageView.js +74 -15
  251. package/dist/features/products/components/ProductForm.d.ts +13 -1
  252. package/dist/features/products/components/ProductForm.js +16 -2
  253. package/dist/features/products/components/ProductsIndexListing.d.ts +16 -1
  254. package/dist/features/products/components/ProductsIndexListing.js +3 -3
  255. package/dist/features/products/components/ShowGroupSection.js +15 -2
  256. package/dist/features/products/components/SparesListView.d.ts +7 -0
  257. package/dist/features/products/components/SparesListView.js +39 -0
  258. package/dist/features/products/constants/action-defs.d.ts +1 -0
  259. package/dist/features/products/constants/action-defs.js +1 -0
  260. package/dist/features/products/repository/products.repository.d.ts +98 -0
  261. package/dist/features/products/repository/products.repository.js +235 -17
  262. package/dist/features/products/schemas/firestore.d.ts +97 -4
  263. package/dist/features/products/schemas/firestore.js +104 -0
  264. package/dist/features/products/schemas/index.d.ts +10 -19
  265. package/dist/features/products/schemas/index.js +23 -6
  266. package/dist/features/products/types/index.d.ts +45 -1
  267. package/dist/features/products/utils/group-member-image.d.ts +39 -0
  268. package/dist/features/products/utils/group-member-image.js +3 -0
  269. package/dist/features/products/utils/listing-badge-variant.js +4 -0
  270. package/dist/features/reviews/components/ReviewsList.js +1 -1
  271. package/dist/features/scams/components/ScamProfileView.js +1 -1
  272. package/dist/features/search/components/EntityTypeahead.d.ts +44 -0
  273. package/dist/features/search/components/EntityTypeahead.js +92 -0
  274. package/dist/features/search/components/Search.d.ts +12 -1
  275. package/dist/features/search/components/Search.js +47 -3
  276. package/dist/features/search/components/SearchFacetRail.d.ts +11 -0
  277. package/dist/features/search/components/SearchFacetRail.js +92 -0
  278. package/dist/features/search/components/SearchResultsClient.d.ts +33 -0
  279. package/dist/features/search/components/SearchResultsClient.js +103 -0
  280. package/dist/features/search/components/SearchResultsPageView.d.ts +15 -1
  281. package/dist/features/search/components/SearchResultsPageView.js +2 -2
  282. package/dist/features/search/components/index.d.ts +0 -6
  283. package/dist/features/search/components/index.js +0 -3
  284. package/dist/features/search/hooks/useNavSuggestions.d.ts +13 -0
  285. package/dist/features/search/hooks/useScopedSearch.d.ts +34 -0
  286. package/dist/features/search/hooks/useScopedSearch.js +114 -0
  287. package/dist/features/search/hooks/useSiteSearch.d.ts +26 -0
  288. package/dist/features/search/hooks/useSiteSearch.js +149 -0
  289. package/dist/features/search/index.d.ts +0 -4
  290. package/dist/features/search/index.js +0 -4
  291. package/dist/features/search/manifest.d.ts +12 -0
  292. package/dist/features/search/manifest.js +17 -2
  293. package/dist/features/search/server.d.ts +0 -3
  294. package/dist/features/search/server.js +0 -3
  295. package/dist/features/seller/components/SellerListingTypeView.d.ts +1 -1
  296. package/dist/features/seller/components/SellerListingTypeView.js +20 -0
  297. package/dist/features/seller/components/SellerPayoutSettingsView.js +35 -14
  298. package/dist/features/seller/components/SellerProductShell.d.ts +1 -1
  299. package/dist/features/seller/components/SellerProductShell.js +2 -1
  300. package/dist/features/seller/components/SellerSidebar.js +1 -1
  301. package/dist/features/seller/components/SellerSparesView.d.ts +17 -0
  302. package/dist/features/seller/components/SellerSparesView.js +6 -0
  303. package/dist/features/seller/components/index.d.ts +2 -0
  304. package/dist/features/seller/components/index.js +1 -0
  305. package/dist/features/shell/CommandPalette.js +1 -1
  306. package/dist/features/sticker-trace/schemas/firestore.d.ts +19 -0
  307. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -1
  308. package/dist/features/stores/components/StoreDetailLayoutView.js +7 -82
  309. package/dist/features/stores/components/StoreHeader.js +1 -2
  310. package/dist/features/stores/components/StoreSparesPageView.d.ts +27 -0
  311. package/dist/features/stores/components/StoreSparesPageView.js +48 -0
  312. package/dist/features/stores/schemas/firestore.d.ts +19 -0
  313. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +2 -0
  314. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +96 -0
  315. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +2 -0
  316. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +280 -45
  317. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +54 -32
  318. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +3 -2
  319. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +2 -0
  320. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +73 -0
  321. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +2 -0
  322. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +340 -0
  323. package/dist/features/tester/seed-data/authored/index.js +16 -0
  324. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +1 -0
  325. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +57 -0
  326. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +2 -0
  327. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +77 -0
  328. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +2 -0
  329. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +58 -0
  330. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +5 -4
  331. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +372 -18
  332. package/dist/index.d.ts +17 -57
  333. package/dist/index.js +35 -96
  334. package/dist/next/routing/route-map.d.ts +42 -1
  335. package/dist/next/routing/route-map.js +45 -0
  336. package/dist/providers/db-firebase/base.repository.d.ts +22 -0
  337. package/dist/providers/db-firebase/base.repository.js +36 -0
  338. package/dist/schemas/registry.d.ts +15 -6
  339. package/dist/security/blind-index-tokens.d.ts +54 -0
  340. package/dist/security/blind-index-tokens.js +152 -0
  341. package/dist/security/index.d.ts +1 -1
  342. package/dist/security/index.js +1 -1
  343. package/dist/security/settings-encryption.d.ts +35 -0
  344. package/dist/security/settings-encryption.js +91 -0
  345. package/dist/seed/_helpers/brand-rows.js +38 -14
  346. package/dist/seed/_helpers/category-forest.js +73 -7
  347. package/dist/seed/_helpers/category-images-generated.d.ts +25 -6
  348. package/dist/seed/_helpers/category-images-generated.js +81 -6
  349. package/dist/seed/_helpers/category-models.d.ts +1 -1
  350. package/dist/seed/_helpers/category-models.js +7 -1
  351. package/dist/seed/_helpers/category-parts-glossary-map.js +8 -0
  352. package/dist/seed/_helpers/category-parts.d.ts +1 -1
  353. package/dist/seed/_helpers/category-parts.js +50 -2
  354. package/dist/seed/_helpers/character-features.d.ts +1 -1
  355. package/dist/seed/_helpers/character-features.js +2 -1
  356. package/dist/seed/_helpers/franchise-rows.js +10 -2
  357. package/dist/seed/_helpers/media.d.ts +47 -0
  358. package/dist/seed/_helpers/media.js +34 -0
  359. package/dist/seed/authenticity-knowledge-seed-data.d.ts +49 -5
  360. package/dist/seed/authenticity-knowledge-seed-data.js +10001 -549
  361. package/dist/seed/categories-seed-data.js +124 -20
  362. package/dist/seed/grouped-listings-seed-data.js +16 -0
  363. package/dist/seed/homepage-sections-seed-data.js +94 -5
  364. package/dist/seed/index.d.ts +2 -3
  365. package/dist/seed/index.js +2 -2
  366. package/dist/seed/manifest.js +3 -0
  367. package/dist/seed/media-assets-seed-data.d.ts +1 -1
  368. package/dist/seed/media-assets-seed-data.js +746 -196
  369. package/dist/seed/model-composition-seed-data.js +122 -6
  370. package/dist/seed/part-glossary-seed-data.d.ts +1 -1
  371. package/dist/seed/part-glossary-seed-data.js +37219 -463
  372. package/dist/seed/products-art-seed-data.js +7 -18
  373. package/dist/seed/products-auctions-seed-data.js +56 -47
  374. package/dist/seed/products-beyblade-x-seed-data.d.ts +2 -0
  375. package/dist/seed/products-beyblade-x-seed-data.js +441 -0
  376. package/dist/seed/products-catalogue-seed-data.d.ts +5 -5
  377. package/dist/seed/products-catalogue-seed-data.js +1500 -1240
  378. package/dist/seed/products-classifieds-seed-data.js +9 -27
  379. package/dist/seed/products-digital-codes-seed-data.js +9 -18
  380. package/dist/seed/products-live-items-seed-data.js +5 -13
  381. package/dist/seed/products-preorders-seed-data.js +67 -33
  382. package/dist/seed/products-prize-draws-seed-data.js +8 -17
  383. package/dist/seed/products-spares-seed-data.d.ts +2 -0
  384. package/dist/seed/products-spares-seed-data.js +368 -0
  385. package/dist/seed/products-standard-seed-data.js +39 -126
  386. package/dist/seed/products-stickers-seed-data.js +59 -15
  387. package/dist/seed/site-settings-seed-data.js +8 -0
  388. package/dist/seo/json-ld.d.ts +25 -0
  389. package/dist/seo/json-ld.js +28 -0
  390. package/dist/server-entry.d.ts +3 -1
  391. package/dist/server-entry.js +2 -2
  392. package/dist/server.d.ts +9 -9
  393. package/dist/server.js +27 -25
  394. package/dist/styles.css +202 -1
  395. package/dist/tailwind-input.css +31 -17
  396. package/dist/tailwind-utilities.css +1 -1
  397. package/dist/ui/components/Accordion.js +1 -1
  398. package/dist/ui/components/Breadcrumb.js +1 -1
  399. package/dist/ui/components/DetailPageGallery.js +0 -2
  400. package/dist/ui/components/DetailPageHero.js +0 -1
  401. package/dist/ui/components/DetailPageTabs.js +1 -1
  402. package/dist/ui/components/Divider.js +3 -3
  403. package/dist/ui/components/GatedPrice.js +5 -1
  404. package/dist/ui/components/HorizontalScroller.js +1 -1
  405. package/dist/ui/components/ListingLayout.js +3 -3
  406. package/dist/ui/components/MediaTabs.style.css +81 -0
  407. package/dist/ui/components/Pagination.js +1 -1
  408. package/dist/ui/components/PendingValue.d.ts +45 -0
  409. package/dist/ui/components/PendingValue.js +7 -0
  410. package/dist/ui/components/Radio.style.css +119 -0
  411. package/dist/ui/components/RatingDisplay.js +2 -2
  412. package/dist/ui/components/SettingsSection.js +0 -2
  413. package/dist/ui/components/SiteLogo.js +3 -0
  414. package/dist/ui/components/SiteMark.js +3 -0
  415. package/dist/ui/components/SortDropdown.js +1 -1
  416. package/dist/ui/components/SpecTable.d.ts +58 -0
  417. package/dist/ui/components/SpecTable.js +8 -0
  418. package/dist/ui/components/StarRating.js +1 -3
  419. package/dist/ui/components/SummaryCard.js +1 -1
  420. package/dist/ui/components/index.style.css +1 -0
  421. package/dist/ui/icons/icon-registry.d.ts +1 -0
  422. package/dist/ui/icons/icon-registry.js +9 -1
  423. package/dist/ui/index.d.ts +4 -0
  424. package/dist/ui/index.js +2 -0
  425. package/dist/utils/search-txt-query.d.ts +12 -0
  426. package/dist/utils/search-txt-query.js +12 -0
  427. package/package.json +1 -1
  428. package/scripts/dedupe-peer-deps.mjs +18 -0
  429. package/scripts/seed-cli.mjs +135 -26
  430. package/scripts/verify-css-build.mjs +118 -37
  431. package/dist/_internal/server/features/search/actions.d.ts +0 -7
  432. package/dist/_internal/server/features/search/actions.js +0 -21
  433. package/dist/_internal/server/features/search/data.d.ts +0 -15
  434. package/dist/_internal/server/features/search/data.js +0 -18
  435. package/dist/_internal/server/features/search/index.d.ts +0 -3
  436. package/dist/_internal/server/features/search/index.js +0 -2
  437. package/dist/features/homepage/api/[id]/route.d.ts +0 -23
  438. package/dist/features/homepage/api/[id]/route.js +0 -103
  439. package/dist/features/homepage/api/route.d.ts +0 -14
  440. package/dist/features/homepage/api/route.js +0 -140
  441. package/dist/features/homepage/api/sections/[id]/route.d.ts +0 -26
  442. package/dist/features/homepage/api/sections/[id]/route.js +0 -95
  443. package/dist/features/homepage/api/sections/route.d.ts +0 -13
  444. package/dist/features/homepage/api/sections/route.js +0 -82
  445. package/dist/features/homepage/components/AdvertisementBanner.d.ts +0 -14
  446. package/dist/features/homepage/components/AdvertisementBanner.js +0 -35
  447. package/dist/features/homepage/components/BeforeAfterCard.d.ts +0 -9
  448. package/dist/features/homepage/components/BeforeAfterCard.js +0 -73
  449. package/dist/features/homepage/components/FeaturedResultsSection.d.ts +0 -17
  450. package/dist/features/homepage/components/FeaturedResultsSection.js +0 -17
  451. package/dist/features/homepage/components/HeroBanner.d.ts +0 -7
  452. package/dist/features/homepage/components/HeroBanner.js +0 -43
  453. package/dist/features/homepage/components/HeroSection.d.ts +0 -7
  454. package/dist/features/homepage/components/HeroSection.js +0 -6
  455. package/dist/features/homepage/components/HomepageSkeleton.d.ts +0 -2
  456. package/dist/features/homepage/components/HomepageSkeleton.js +0 -21
  457. package/dist/features/homepage/components/HomepageView.d.ts +0 -25
  458. package/dist/features/homepage/components/HomepageView.js +0 -5
  459. package/dist/features/homepage/components/NewsletterBanner.d.ts +0 -23
  460. package/dist/features/homepage/components/NewsletterBanner.js +0 -37
  461. package/dist/features/homepage/components/SiteFeaturesSection.d.ts +0 -14
  462. package/dist/features/homepage/components/SiteFeaturesSection.js +0 -11
  463. package/dist/features/homepage/components/TrustBadges.d.ts +0 -6
  464. package/dist/features/homepage/components/TrustBadges.js +0 -46
  465. package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +0 -12
  466. package/dist/features/homepage/components/TrustIndicatorsSection.js +0 -11
  467. package/dist/features/homepage/hooks/useHomepage.d.ts +0 -11
  468. package/dist/features/homepage/hooks/useHomepage.js +0 -17
  469. package/dist/features/homepage/hooks/useHomepageSections.d.ts +0 -2
  470. package/dist/features/homepage/hooks/useHomepageSections.js +0 -10
  471. package/dist/features/homepage/repository/homepage.repository.d.ts +0 -11
  472. package/dist/features/homepage/repository/homepage.repository.js +0 -25
  473. package/dist/features/search/actions/index.d.ts +0 -1
  474. package/dist/features/search/actions/index.js +0 -1
  475. package/dist/features/search/actions/search-actions.d.ts +0 -18
  476. package/dist/features/search/actions/search-actions.js +0 -43
  477. package/dist/features/search/api/route.d.ts +0 -22
  478. package/dist/features/search/api/route.js +0 -128
  479. package/dist/features/search/columns/index.d.ts +0 -17
  480. package/dist/features/search/columns/index.js +0 -49
  481. package/dist/features/search/components/SearchFiltersRow.d.ts +0 -22
  482. package/dist/features/search/components/SearchFiltersRow.js +0 -21
  483. package/dist/features/search/components/SearchResultsSection.d.ts +0 -53
  484. package/dist/features/search/components/SearchResultsSection.js +0 -35
  485. package/dist/features/search/components/SearchView.d.ts +0 -27
  486. package/dist/features/search/components/SearchView.js +0 -8
  487. package/dist/features/search/hooks/useSearch.d.ts +0 -21
  488. package/dist/features/search/hooks/useSearch.js +0 -33
  489. package/dist/features/search/repository/search.repository.d.ts +0 -14
  490. package/dist/features/search/repository/search.repository.js +0 -59
  491. package/dist/features/search/schemas/index.d.ts +0 -70
  492. package/dist/features/search/schemas/index.js +0 -36
  493. package/dist/features/search/types/index.d.ts +0 -48
  494. package/dist/features/stores/components/StoreScopedSearch.d.ts +0 -17
  495. package/dist/features/stores/components/StoreScopedSearch.js +0 -27
  496. package/dist/seed/defaults/homepage-sections.d.ts +0 -2
  497. package/dist/seed/defaults/homepage-sections.js +0 -60
  498. package/dist/seed/factories/homepage-section.factory.d.ts +0 -10
  499. package/dist/seed/factories/homepage-section.factory.js +0 -13
  500. /package/dist/{features/search/types/index.js → _internal/shared/listing-types/spares/og.d.ts} +0 -0
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
20
20
  import { buildSearchTxt } from "../utils/search-txt.js";
21
- import { seedPhoto } from "./_helpers/media.js";
21
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
22
22
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
23
23
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
24
24
  const _rawProductsStickersSeedData = [
@@ -37,7 +37,7 @@ const _rawProductsStickersSeedData = [
37
37
  availableQuantity: 100,
38
38
  isSold: false,
39
39
  mainImage: seedPhoto("stickers-image-original-classic-1-20260817", 900, 900),
40
- images: [seedPhoto("stickers-image-original-classic-1-20260817", 900, 900)],
40
+ images: seedGallery(seedPhoto("stickers-image-original-classic-1-20260817", 900, 900)),
41
41
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
42
42
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
43
43
  listingType: "stickers",
@@ -76,10 +76,7 @@ const _rawProductsStickersSeedData = [
76
76
  availableQuantity: 62,
77
77
  isSold: false,
78
78
  mainImage: seedPhoto("stickers-image-x-holo-1-20260818", 900, 900),
79
- images: [
80
- seedPhoto("stickers-image-x-holo-1-20260818", 900, 900),
81
- seedPhoto("stickers-image-x-holo-2-20260818", 900, 900),
82
- ],
79
+ images: seedGallery(seedPhoto("stickers-image-x-holo-1-20260818", 900, 900), seedPhoto("stickers-image-x-holo-2-20260818", 900, 900)),
83
80
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
84
81
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
85
82
  listingType: "stickers",
@@ -118,7 +115,7 @@ const _rawProductsStickersSeedData = [
118
115
  availableQuantity: 60,
119
116
  isSold: false,
120
117
  mainImage: seedPhoto("stickers-image-burst-diecut-1-20260819", 900, 900),
121
- images: [seedPhoto("stickers-image-burst-diecut-1-20260819", 900, 900)],
118
+ images: seedGallery(seedPhoto("stickers-image-burst-diecut-1-20260819", 900, 900)),
122
119
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
123
120
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
124
121
  listingType: "stickers",
@@ -157,7 +154,7 @@ const _rawProductsStickersSeedData = [
157
154
  availableQuantity: 214,
158
155
  isSold: false,
159
156
  mainImage: seedPhoto("stickers-image-metal-retro-1-20260819", 900, 900),
160
- images: [seedPhoto("stickers-image-metal-retro-1-20260819", 900, 900)],
157
+ images: seedGallery(seedPhoto("stickers-image-metal-retro-1-20260819", 900, 900)),
161
158
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
162
159
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
163
160
  listingType: "stickers",
@@ -196,10 +193,7 @@ const _rawProductsStickersSeedData = [
196
193
  availableQuantity: 45,
197
194
  isSold: false,
198
195
  mainImage: seedPhoto("stickers-image-x-glow-1-20260819", 900, 900),
199
- images: [
200
- seedPhoto("stickers-image-x-glow-1-20260819", 900, 900),
201
- seedPhoto("stickers-image-x-glow-2-20260819", 900, 900),
202
- ],
196
+ images: seedGallery(seedPhoto("stickers-image-x-glow-1-20260819", 900, 900), seedPhoto("stickers-image-x-glow-2-20260819", 900, 900)),
203
197
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
204
198
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
205
199
  listingType: "stickers",
@@ -239,9 +233,7 @@ const _rawProductsStickersSeedData = [
239
233
  availableQuantity: 0,
240
234
  isSold: true,
241
235
  mainImage: seedPhoto("sticker-image-metal-fight-sold-out-1-20260824", 900, 900),
242
- images: [
243
- seedPhoto("sticker-image-metal-fight-sold-out-1-20260824", 900, 900),
244
- ],
236
+ images: seedGallery(seedPhoto("sticker-image-metal-fight-sold-out-1-20260824", 900, 900)),
245
237
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
246
238
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
247
239
  listingType: "stickers",
@@ -265,6 +257,58 @@ const _rawProductsStickersSeedData = [
265
257
  ["stickers", "sold-out"],
266
258
  ]),
267
259
  },
260
+ {
261
+ /*
262
+ * Part Two C — the one seeded `madeToOrder: true` fixture. Print-on-demand
263
+ * is the case that flag exists for: this sheet is printed when ordered
264
+ * rather than held in a finite run, so `stockQuantity`/`availableQuantity`
265
+ * are deliberately 0 and must NOT make the listing read as sold out.
266
+ *
267
+ * 🛑 Reuses an EXISTING uploaded cover (`stickers-image-x-glow-1`) rather
268
+ * than inventing a new slug — a slug with no row in
269
+ * `media-assets-seed-data.ts` 404s silently and reads as a broken image,
270
+ * not as a seed bug (the 2026-10-17 incident this project already paid
271
+ * for once).
272
+ */
273
+ id: "sticker-beyblade-custom-print-on-demand",
274
+ slug: "sticker-beyblade-custom-print-on-demand",
275
+ title: "Custom Beyblade Sticker Sheet — Print on Demand",
276
+ description: "Pick any character art from our catalogue and we print your sheet when you order — nothing is held in stock, so it never sells out.",
277
+ categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
278
+ categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
279
+ brandSlug: "brand-beyblade",
280
+ brand: "Beyblade",
281
+ price: 179,
282
+ currency: "INR",
283
+ stockQuantity: 0,
284
+ availableQuantity: 0,
285
+ madeToOrder: true,
286
+ isSold: false,
287
+ mainImage: seedPhoto("stickers-image-x-glow-1-20260819", 900, 900),
288
+ images: seedGallery(seedPhoto("stickers-image-x-glow-1-20260819", 900, 900)),
289
+ status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
290
+ condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
291
+ listingType: "stickers",
292
+ storeId: "store-beyblade-arena",
293
+ storeName: "Beyblade Arena",
294
+ printMeta: { size: "5x5 cm sheet", material: "Vinyl", finish: "Glossy" },
295
+ customFields: [{ key: "Turnaround", type: "text", value: "Printed and shipped within 2 business days" }],
296
+ customSections: [],
297
+ featured: false,
298
+ isPromoted: false,
299
+ isOnSale: false,
300
+ tags: ["stickers", "made-to-order"],
301
+ createdAt: new Date("2026-10-19"),
302
+ updatedAt: new Date("2026-10-19"),
303
+ searchTxt: buildSearchTxt([
304
+ "Custom Beyblade Sticker Sheet — Print on Demand",
305
+ "Pick any character art from our catalogue and we print your sheet when you order.",
306
+ "Beyblade",
307
+ "brand-beyblade",
308
+ ["Beyblade Original", "Spinning Tops"],
309
+ ["stickers", "made-to-order"],
310
+ ]),
311
+ },
268
312
  ];
269
313
  /*
270
314
  * This file had no export wrapper at all — every other product seed file maps
@@ -307,6 +307,14 @@ export const siteSettingsSeedData = {
307
307
  shipping: "",
308
308
  ethics: "",
309
309
  codeOfConduct: "",
310
+ /*
311
+ * Added 2026-10-19 alongside the two new `PolicyPageView` keys. Empty like
312
+ * every sibling: the seed deliberately ships no legal prose — the admin
313
+ * Legal tab is the author, and a seeded placeholder would render as real
314
+ * policy text on an indexed public page.
315
+ */
316
+ cancellation: "",
317
+ grievance: "",
310
318
  },
311
319
  shipping: {
312
320
  estimatedDays: 7,
@@ -168,6 +168,31 @@ export interface SiteIdentityOptions {
168
168
  siteUrl?: string;
169
169
  /** Real social/profile URLs — feeds schema.org `sameAs`, which drives entity recognition. */
170
170
  sameAs?: readonly string[];
171
+ /**
172
+ * The LEGAL entity behind the brand, for `Organization`.
173
+ *
174
+ * Distinct from `siteName`: "LetItRip" is what the site calls itself,
175
+ * "Let It Rip India" is what issues the invoice. schema.org has separate
176
+ * `name` and `legalName` for exactly this, and an Indian e-commerce site is
177
+ * required to publish the latter.
178
+ *
179
+ * Every field is optional and an unset one is OMITTED rather than emitted
180
+ * empty — a `legalName: ""` or a `PostalAddress` of blanks is a wrong entity
181
+ * asserted confidently, which is worse for entity recognition than saying
182
+ * nothing (the same reasoning as `sameAs: []` above).
183
+ */
184
+ legalName?: string;
185
+ /** 15-character GSTIN — emitted as schema.org `taxID`. */
186
+ taxId?: string;
187
+ telephone?: string;
188
+ email?: string;
189
+ address?: {
190
+ streetAddress?: string;
191
+ addressLocality?: string;
192
+ addressRegion?: string;
193
+ postalCode?: string;
194
+ addressCountry?: string;
195
+ };
171
196
  }
172
197
  export declare function organizationJsonLd(opts?: SiteIdentityOptions): Record<string, JsonLdValue>;
173
198
  export declare function searchBoxJsonLd(opts?: SiteIdentityOptions): Record<string, JsonLdValue>;
@@ -225,10 +225,36 @@ export function organizationJsonLd(opts) {
225
225
  // `sameAs: []` was hardcoded empty while appkit.config.js carried real
226
226
  // socialUrls that nothing read. An empty array is worse than omitting the key.
227
227
  const sameAs = (opts?.sameAs ?? []).filter(Boolean);
228
+ /*
229
+ * Emit a PostalAddress only when at least one part of it is known. A node of
230
+ * empty strings validates, reads as a real address to a consumer, and is
231
+ * wrong — the same reason `sameAs: []` is omitted rather than sent empty.
232
+ */
233
+ const a = opts?.address;
234
+ const hasAddress = Boolean(a && (a.streetAddress || a.addressLocality || a.postalCode || a.addressCountry));
228
235
  return {
229
236
  "@context": "https://schema.org",
230
237
  "@type": "Organization",
231
238
  name,
239
+ // Omitted when it equals `name` — repeating the brand as the legal name
240
+ // asserts they are the same entity, which for a sole proprietorship
241
+ // trading under a brand is not true.
242
+ legalName: opts?.legalName && opts.legalName.trim() && opts.legalName.trim() !== name
243
+ ? opts.legalName.trim()
244
+ : undefined,
245
+ taxID: opts?.taxId?.trim() || undefined,
246
+ telephone: opts?.telephone?.trim() || undefined,
247
+ email: opts?.email?.trim() || undefined,
248
+ address: hasAddress
249
+ ? {
250
+ "@type": "PostalAddress",
251
+ streetAddress: a?.streetAddress || undefined,
252
+ addressLocality: a?.addressLocality || undefined,
253
+ addressRegion: a?.addressRegion || undefined,
254
+ postalCode: a?.postalCode || undefined,
255
+ addressCountry: a?.addressCountry || undefined,
256
+ }
257
+ : undefined,
232
258
  url: base || undefined,
233
259
  logo: absoluteUrl("/icons/icon-512x512.png", base),
234
260
  sameAs: sameAs.length > 0 ? [...sameAs] : undefined,
@@ -236,6 +262,8 @@ export function organizationJsonLd(opts) {
236
262
  "@type": "ContactPoint",
237
263
  contactType: "customer support",
238
264
  url: absoluteUrl(ROUTES.PUBLIC.CONTACT, base),
265
+ telephone: opts?.telephone?.trim() || undefined,
266
+ email: opts?.email?.trim() || undefined,
239
267
  },
240
268
  };
241
269
  }
@@ -32,6 +32,7 @@ export { ClassifiedDetailPageView } from "./features/classified/components/Class
32
32
  export { DigitalCodeDetailPageView } from "./features/digital-codes/components/DigitalCodeDetailPageView";
33
33
  export { LiveItemDetailPageView } from "./features/live/components/LiveItemDetailPageView";
34
34
  export { ArtStickersListView } from "./features/products/components/ArtStickersListView";
35
+ export { SparesListView } from "./features/products/components/SparesListView";
35
36
  export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
36
37
  export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
37
38
  export { StoresIndexPageView } from "./features/stores/components/StoresIndexPageView";
@@ -42,6 +43,7 @@ export { StorePreOrdersPageView } from "./features/stores/components/StorePreOrd
42
43
  export { StorePrizeDrawsPageView } from "./features/stores/components/StorePrizeDrawsPageView";
43
44
  export { StoreBundlesPageView } from "./features/stores/components/StoreBundlesPageView";
44
45
  export { StoreClassifiedsPageView } from "./features/stores/components/StoreClassifiedsPageView";
46
+ export { StoreSparesPageView } from "./features/stores/components/StoreSparesPageView";
45
47
  export { StoreDigitalCodesPageView } from "./features/stores/components/StoreDigitalCodesPageView";
46
48
  export { StoreLiveItemsPageView } from "./features/stores/components/StoreLiveItemsPageView";
47
49
  export { StoreArtStickersPageView } from "./features/stores/components/StoreArtStickersPageView";
@@ -63,7 +65,6 @@ export { getHistoryForUser, trackProductViewAction, mergeGuestHistoryAction, HIS
63
65
  export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, getReviewById, renderReviewOg, renderReviewOgImage, type ReviewOgData, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index";
64
66
  export { renderFaqOg, renderFaqOgImage, type FaqOgData, } from "./_internal/server/features/faqs/index";
65
67
  export { renderScamOg, renderScamOgImage, type ScamOgData, getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached, } from "./_internal/server/features/scams/index";
66
- export { getSearchResults, searchAction, type SearchQuery, } from "./_internal/server/features/search/index";
67
68
  export { getCategoryForDetail, listRootCategories, listFeaturedCategories, listMenuCategories, getCategoryTree, listSitemapCategories, CATEGORIES_PAGE_SIZE, CATEGORIES_ROOT_TIER, CATEGORIES_MAX_DEPTH, CATEGORIES_SITEMAP_LIMIT, CATEGORIES_FEATURED_LIMIT, CATEGORIES_MENU_LIMIT, } from "./_internal/server/features/categories/index";
68
69
  export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, getGroupsForProduct, getGroupsWithItemsForProduct, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, buildGroupedListingMetadata, renderGroupedListingOg, type GroupedListingWithItems, type ListGroupedListingsParams, type SitemapGroupedListing, type GroupedListingMetadataOptions, } from "./_internal/server/features/grouped/index";
69
70
  export { createCheckoutOrderAction, attachPaymentAction, verifyAndPlacePhonePeOrderAction, previewCheckoutPricing, resolveShippingCost, formatShippingAddress, CHECKOUT_DEFAULT_COMMISSIONS, CHECKOUT_PAYMENT_METHODS, type CreateCheckoutOrderInput, type VerifyAndPlacePhonePeOrderInput, type CheckoutOrderResult, type CheckoutPaymentMethod, type CheckoutPricingPreviewInput, type CheckoutPricingPreview, } from "./_internal/server/features/checkout/index";
@@ -80,6 +81,7 @@ export * as scamsServer from "./_internal/server/features/scams/index";
80
81
  export { AppkitError, UnauthorizedError, CapacityError, ExpiredError, } from "./_internal/shared/errors/index";
81
82
  export { NotFoundError, ValidationError, ConflictError } from "./errors/index";
82
83
  export type { AppkitConfig } from "./_internal/shared/config/schema";
84
+ export type { AppkitBusinessConfig, AppkitBusinessAddress, AppkitBusinessSupport, AppkitBusinessGrievance, AppkitBusinessPolicy, AppkitBusinessBank, PendingString, } from "./_internal/shared/config/schema";
83
85
  export { SEMANTIC_COLORS, SEMANTIC_COLORS_DARK, SEMANTIC_RADIUS, SEMANTIC_SHADOWS, SEMANTIC_Z_INDEX, MOTION_TOKENS, BREAKPOINTS, PLATFORM_LIMITS, } from "./_internal/shared/tokens/index";
84
86
  export type { Responsive, Breakpoint, SemanticColor } from "./_internal/shared/tokens/index";
85
87
  export { renderProductOg, renderProductOgImage, type ProductOgData, type OgOptions } from "./_internal/server/features/products/og";
@@ -37,6 +37,7 @@ export { ClassifiedDetailPageView } from "./features/classified/components/Class
37
37
  export { DigitalCodeDetailPageView } from "./features/digital-codes/components/DigitalCodeDetailPageView.js";
38
38
  export { LiveItemDetailPageView } from "./features/live/components/LiveItemDetailPageView.js";
39
39
  export { ArtStickersListView } from "./features/products/components/ArtStickersListView.js";
40
+ export { SparesListView } from "./features/products/components/SparesListView.js";
40
41
  export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView.js";
41
42
  export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView.js";
42
43
  export { StoresIndexPageView } from "./features/stores/components/StoresIndexPageView.js";
@@ -47,6 +48,7 @@ export { StorePreOrdersPageView } from "./features/stores/components/StorePreOrd
47
48
  export { StorePrizeDrawsPageView } from "./features/stores/components/StorePrizeDrawsPageView.js";
48
49
  export { StoreBundlesPageView } from "./features/stores/components/StoreBundlesPageView.js";
49
50
  export { StoreClassifiedsPageView } from "./features/stores/components/StoreClassifiedsPageView.js";
51
+ export { StoreSparesPageView } from "./features/stores/components/StoreSparesPageView.js";
50
52
  export { StoreDigitalCodesPageView } from "./features/stores/components/StoreDigitalCodesPageView.js";
51
53
  export { StoreLiveItemsPageView } from "./features/stores/components/StoreLiveItemsPageView.js";
52
54
  export { StoreArtStickersPageView } from "./features/stores/components/StoreArtStickersPageView.js";
@@ -86,8 +88,6 @@ export { getHistoryForUser, trackProductViewAction, mergeGuestHistoryAction, HIS
86
88
  export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, getReviewById, renderReviewOg, renderReviewOgImage, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index.js";
87
89
  export { renderFaqOg, renderFaqOgImage, } from "./_internal/server/features/faqs/index.js";
88
90
  export { renderScamOg, renderScamOgImage, getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached, } from "./_internal/server/features/scams/index.js";
89
- // S5: search data layer + action
90
- export { getSearchResults, searchAction, } from "./_internal/server/features/search/index.js";
91
91
  // S3: categories data layer
92
92
  export { getCategoryForDetail, listRootCategories, listFeaturedCategories, listMenuCategories, getCategoryTree, listSitemapCategories, CATEGORIES_PAGE_SIZE, CATEGORIES_ROOT_TIER, CATEGORIES_MAX_DEPTH, CATEGORIES_SITEMAP_LIMIT, CATEGORIES_FEATURED_LIMIT, CATEGORIES_MENU_LIMIT, } from "./_internal/server/features/categories/index.js";
93
93
  // S3: grouped listings data layer
package/dist/server.d.ts CHANGED
@@ -2,6 +2,10 @@ export { isAuthError } from "./utils/auth-error";
2
2
  export { searchEverything } from "./_internal/server/features/search/search-everything";
3
3
  export type { SearchHit, SearchGroup, SearchSource, SearchEverythingResult, } from "./_internal/server/features/search/search-everything";
4
4
  export { SEARCH_SOURCES } from "./_internal/server/features/search/search-sources";
5
+ export { SCOPED_SCAN_BUDGET } from "./_internal/server/features/search/search-everything";
6
+ export { buildTokensIndex, tokensIndexQueryValue, BLIND_INDEX_KEY_VERSION_FIELD, CURRENT_BLIND_INDEX_KEY_VERSION, } from "./security/blind-index-tokens";
7
+ export { scopedSourcesFor, scopedScanTotal, assertWithinScopedBudget, } from "./_internal/server/features/search/scoped-sources";
8
+ export type { SearchViewer } from "./_internal/server/features/search/scoped-sources";
5
9
  export { getPartByKey, getModelsUsingPart, getCompositionById, getPartsForComposition, getCompositionsForCategory, listPartsBySlot, } from "./_internal/server/features/parts/data";
6
10
  export { renderCityOg, type CityOgData } from "./_internal/server/features/products/og";
7
11
  export { listBuildableModels, BUILDABLE_HOLDINGS_LIMIT, BUILDABLE_CANDIDATE_LIMIT, type BuildableModel, type BuildableResult, type BuildableSlot, } from "./_internal/server/features/parts/buildable";
@@ -31,7 +35,6 @@ export { CART_FIXTURES } from "./seed/index";
31
35
  export { COUPON_FIXTURES } from "./seed/index";
32
36
  export { DEFAULT_CATEGORIES } from "./seed/index";
33
37
  export { DEFAULT_FAQS } from "./seed/index";
34
- export { DEFAULT_HOMEPAGE_SECTIONS } from "./seed/index";
35
38
  export { NOTIFICATION_FIXTURES } from "./seed/index";
36
39
  export { PAYOUT_FIXTURES } from "./seed/index";
37
40
  export { PRODUCT_FIXTURES } from "./seed/index";
@@ -71,7 +74,6 @@ export { makeFullPayout } from "./seed/index";
71
74
  export { makeFullProduct } from "./seed/index";
72
75
  export { makeFullStore } from "./seed/index";
73
76
  export { makeFullUser } from "./seed/index";
74
- export { makeHomepageSection } from "./seed/index";
75
77
  export { makeNotification } from "./seed/index";
76
78
  export { sendNotification } from "./features/admin/actions/notification-actions";
77
79
  export { enqueueJob } from "./features/jobs/actions/enqueue-job";
@@ -285,7 +287,7 @@ export { triggerEventRaffleAction, assignSpinPrizeAction, resolveEventIdAction,
285
287
  export { reasonToHttp, EVENT_DRAW_REASON, type EventDrawReason, type EventDrawHttpMapping, } from "./_internal/server/jobs/core/event-draw-reasons";
286
288
  export { processRefundAction, type ProcessRefundInput, } from "./_internal/server/features/refunds/actions";
287
289
  export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, } from "./_internal/shared/fees/calculator";
288
- export { searchPriceIndex, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search";
290
+ export { searchPriceIndex, getPriceIndexBandsForIds, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search";
289
291
  export type { PriceIndexSearchResponse, PriceIndexSearchResult, PriceIndexSearchResultBand, } from "./_internal/server/features/price-index/search";
290
292
  export { protectionAvailability, computeProtectionFees, adjudicateClaim, badgesFor, showsRiskNotice, showsSafetyBadge, returnDestination, rtoDestination, PROTECTION_KINDS, } from "./_internal/shared/features/shipping/protections";
291
293
  export type { ProtectionKind, ProtectionAvailability, ProtectionTierInput, ProtectionUnavailableReason, ClaimFinding, ClaimOutcome, } from "./_internal/shared/features/shipping/protections";
@@ -319,10 +321,6 @@ export { deleteCarouselSlide } from "./features/homepage/server";
319
321
  export { deleteHomepageSection } from "./features/homepage/server";
320
322
  export { getCarouselSlideById } from "./features/homepage/server";
321
323
  export { getHomepageSectionById } from "./features/homepage/server";
322
- export { homepageGET } from "./features/homepage/server";
323
- export { homepageSectionItemDELETE } from "./features/homepage/server";
324
- export { homepageSectionItemGET } from "./features/homepage/server";
325
- export { homepageSectionItemPATCH } from "./features/homepage/server";
326
324
  export { listActiveCarouselSlides } from "./features/homepage/server";
327
325
  export { listAllCarouselSlides } from "./features/homepage/server";
328
326
  export { listEnabledHomepageSections } from "./features/homepage/server";
@@ -383,8 +381,6 @@ export { reviewItemGET } from "./features/reviews/server";
383
381
  export { reviewItemPATCH } from "./features/reviews/server";
384
382
  export { updateReview } from "./features/reviews/server";
385
383
  export { voteReviewHelpful } from "./features/reviews/server";
386
- export { searchGET } from "./features/search/server";
387
- export { searchProducts } from "./features/search/server";
388
384
  export { acceptCounterOffer } from "./features/seller/server";
389
385
  export { becomeSeller } from "./features/seller/server";
390
386
  export { bulkSellerOrder } from "./features/seller/server";
@@ -506,6 +502,7 @@ export { toPublicGroupMember, toPublicGroupMembers, type PublicGroupMember, } fr
506
502
  export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
507
503
  export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index";
508
504
  export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index";
505
+ export { getDefaultStoreTabPath } from "./_internal/server/features/stores/tabs";
509
506
  export { toStoreDetail, toStoreListItem, PUBLIC_STORE_FIELDS, PRIVATE_STORE_FIELDS, type ToStoreDetailOptions, type ToStoreListItemOptions, type StoreProjectionSource, } from "./_internal/server/features/stores/adapters";
510
507
  export { getBrandForDetail } from "./_internal/server/features/brands/index";
511
508
  export { getFranchiseForDetail, listActiveFranchises, renderFranchiseOg, } from "./_internal/server/features/franchises/index";
@@ -576,6 +573,8 @@ export { signDigitalContentUpload, finalizeDigitalContentUpload, contentKindForM
576
573
  */
577
574
  export { createOrOpenConversation, openConversationWithSeller, listConversationsForUser, listMessagesForConversation, sendMessage, markConversationRead, blockConversationParticipant, softDeleteOwnMessage, mintChatEventToken, getUnreadConversationCount, deleteAllMessages as deleteAllConversationMessages, listAllAttachmentUrls as listConversationAttachmentUrls, stripPii as stripChatPii, type SendMessageInput, } from "./_internal/server/features/messages/actions";
578
575
  export { resolveCodeAssetForOrder, codeAssetHeaders, CODE_DOWNLOAD_STATUSES, type CodeAssetResolution, } from "./_internal/server/features/digital-code/download";
576
+ export { resolveBusinessDocument, type BusinessDocumentResolution, } from "./_internal/server/features/business-documents/download";
577
+ export { businessDocumentsRepository, BusinessDocumentsRepository, } from "./features/business-documents/repository/business-documents.repository";
579
578
  export { getLiveItemForDetail } from "./_internal/server/features/live/data";
580
579
  export { toClientLiveItem, type LiveItemClientShape } from "./_internal/server/features/live/adapters";
581
580
  export { buildLiveItemMetadata, type LiveItemMetadataOptions } from "./_internal/server/features/live/metadata";
@@ -626,4 +625,5 @@ export type { PrintPageSizeId } from "./_internal/shared/features/sticker-trace/
626
625
  export type { MachineProfileId } from "./_internal/shared/features/sticker-trace/export/machine-profiles";
627
626
  export { promoteStickerTraceRun, isRunPromoted, type PromoteRunInput, type PromoteRunResult, } from "./_internal/server/features/sticker-trace/promote";
628
627
  export { createStickerSheet, attachStickerSheetScan, resolveStickerAssetUrl, measureStickerStorage, STICKER_ASSET_KINDS, STICKER_SHEET_MAX_BYTES, type StickerAssetKind, type SheetUsageRow, type StickerStorageUsage, } from "./_internal/server/features/sticker-trace/sheet-actions";
628
+ export { promoteStickerSheetToListings, type PromoteToListingsInput, type PromoteToListingsResult, } from "./_internal/server/features/sticker-trace/promote-to-listings";
629
629
  export { toClientStickerSheet, toClientTraceRun, type ClientStickerSheet, type ClientTraceRun, } from "./_internal/server/features/sticker-trace/adapters";
package/dist/server.js CHANGED
@@ -7,6 +7,21 @@ export { isAuthError } from "./utils/auth-error.js";
7
7
  // exported subpath, and a consumer page must not reach into it.
8
8
  export { searchEverything } from "./_internal/server/features/search/search-everything.js";
9
9
  export { SEARCH_SOURCES } from "./_internal/server/features/search/search-sources.js";
10
+ export { SCOPED_SCAN_BUDGET } from "./_internal/server/features/search/search-everything.js";
11
+ /*
12
+ * `buildTokensIndex` is server-only for the same reason `encryptPiiFields`
13
+ * is: it feeds `BaseRepository.buildTokensIndexFor`, which runs inside the
14
+ * write-hook chain that also calls `hmacBlindIndex` (a `node:crypto` HMAC).
15
+ * `seed-cli.mjs`'s own `encryptSeedPii` needs this exported here because the
16
+ * seed CLI writes directly to Firestore and does not go through any
17
+ * repository's `createWithId` — see the 🛑 on `PayoutRepository`'s
18
+ * `buildTokensIndexFor` for why that bypass is the one that matters.
19
+ */
20
+ export { buildTokensIndex, tokensIndexQueryValue, BLIND_INDEX_KEY_VERSION_FIELD, CURRENT_BLIND_INDEX_KEY_VERSION, } from "./security/blind-index-tokens.js";
21
+ // Tier 2 — viewer-scoped sources. Server-only by construction: they build an
22
+ // owner clause from a session, and a client that could construct them could
23
+ // construct somebody else's.
24
+ export { scopedSourcesFor, scopedScanTotal, assertWithinScopedBudget, } from "./_internal/server/features/search/scoped-sources.js";
10
25
  // D12 — part + composition reads. Every one is by document id or ONE
11
26
  // indexed equality; none needs a composite index.
12
27
  export { getPartByKey, getModelsUsingPart, getCompositionById, getPartsForComposition, getCompositionsForCategory, listPartsBySlot, } from "./_internal/server/features/parts/data.js";
@@ -73,9 +88,6 @@ export { DEFAULT_CATEGORIES } from "./seed/index.js";
73
88
  // DEFAULT_FAQS - Constant used across modules.
74
89
  export { DEFAULT_FAQS } from "./seed/index.js";
75
90
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
76
- // DEFAULT_HOMEPAGE_SECTIONS - Constant used across modules.
77
- export { DEFAULT_HOMEPAGE_SECTIONS } from "./seed/index.js";
78
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
79
91
  // NOTIFICATION_FIXTURES - Constant used across modules.
80
92
  export { NOTIFICATION_FIXTURES } from "./seed/index.js";
81
93
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -193,9 +205,6 @@ export { makeFullStore } from "./seed/index.js";
193
205
  // makeFullUser - Shared export for make full user.
194
206
  export { makeFullUser } from "./seed/index.js";
195
207
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
196
- // makeHomepageSection - Shared export for make homepage section.
197
- export { makeHomepageSection } from "./seed/index.js";
198
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
199
208
  // makeNotification - Shared export for make notification.
200
209
  export { makeNotification } from "./seed/index.js";
201
210
  export { sendNotification } from "./features/admin/actions/notification-actions.js";
@@ -836,7 +845,7 @@ export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, com
836
845
  // only: it reads Firestore through two repositories, so it must never reach
837
846
  // client.ts (verify-entries would catch firebase-admin, but the import chain
838
847
  // is the thing to keep clean — Root Cause #6).
839
- export { searchPriceIndex, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search.js";
848
+ export { searchPriceIndex, getPriceIndexBandsForIds, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search.js";
840
849
  export { protectionAvailability, computeProtectionFees, adjudicateClaim, badgesFor, showsRiskNotice, showsSafetyBadge, returnDestination, rtoDestination, PROTECTION_KINDS, } from "./_internal/shared/features/shipping/protections.js";
841
850
  // [SERVER-ONLY] Payout refund deduction action
842
851
  export { applyRefundDeductionAction, } from "./_internal/server/features/payouts/actions.js";
@@ -924,18 +933,6 @@ export { getCarouselSlideById } from "./features/homepage/server.js";
924
933
  // getHomepageSectionById - Helper for get homepage section by id.
925
934
  export { getHomepageSectionById } from "./features/homepage/server.js";
926
935
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
927
- // homepageGET - Shared export for homepage get.
928
- export { homepageGET } from "./features/homepage/server.js";
929
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
930
- // homepageSectionItemDELETE - Shared export for homepage section item delete.
931
- export { homepageSectionItemDELETE } from "./features/homepage/server.js";
932
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
933
- // homepageSectionItemGET - Shared export for homepage section item get.
934
- export { homepageSectionItemGET } from "./features/homepage/server.js";
935
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
936
- // homepageSectionItemPATCH - Shared export for homepage section item patch.
937
- export { homepageSectionItemPATCH } from "./features/homepage/server.js";
938
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
939
936
  // listActiveCarouselSlides - Helper for list active carousel slides.
940
937
  export { listActiveCarouselSlides } from "./features/homepage/server.js";
941
938
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -1117,12 +1114,6 @@ export { updateReview } from "./features/reviews/server.js";
1117
1114
  // voteReviewHelpful - Shared export for vote review helpful.
1118
1115
  export { voteReviewHelpful } from "./features/reviews/server.js";
1119
1116
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1120
- // searchGET - Shared export for search get.
1121
- export { searchGET } from "./features/search/server.js";
1122
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1123
- // searchProducts - Shared export for search products.
1124
- export { searchProducts } from "./features/search/server.js";
1125
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1126
1117
  // acceptCounterOffer - Shared export for accept counter offer.
1127
1118
  export { acceptCounterOffer } from "./features/seller/server.js";
1128
1119
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -1390,6 +1381,7 @@ export { toPublicGroupMember, toPublicGroupMembers, } from "./_internal/server/f
1390
1381
  export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index.js";
1391
1382
  export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index.js";
1392
1383
  export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index.js";
1384
+ export { getDefaultStoreTabPath } from "./_internal/server/features/stores/tabs.js";
1393
1385
  // Public-store allow-list projection — the ONLY sanctioned way a StoreDocument
1394
1386
  // may reach a client component or an HTTP response. See adapters.ts header.
1395
1387
  export { toStoreDetail, toStoreListItem, PUBLIC_STORE_FIELDS, PRIVATE_STORE_FIELDS, } from "./_internal/server/features/stores/adapters.js";
@@ -1492,6 +1484,9 @@ export { signDigitalContentUpload, finalizeDigitalContentUpload, contentKindForM
1492
1484
  */
1493
1485
  export { createOrOpenConversation, openConversationWithSeller, listConversationsForUser, listMessagesForConversation, sendMessage, markConversationRead, blockConversationParticipant, softDeleteOwnMessage, mintChatEventToken, getUnreadConversationCount, deleteAllMessages as deleteAllConversationMessages, listAllAttachmentUrls as listConversationAttachmentUrls, stripPii as stripChatPii, } from "./_internal/server/features/messages/actions.js";
1494
1486
  export { resolveCodeAssetForOrder, codeAssetHeaders, CODE_DOWNLOAD_STATUSES, } from "./_internal/server/features/digital-code/download.js";
1487
+ // ── Statutory business documents — admin-only, encrypted at rest ────────────
1488
+ export { resolveBusinessDocument, } from "./_internal/server/features/business-documents/download.js";
1489
+ export { businessDocumentsRepository, BusinessDocumentsRepository, } from "./features/business-documents/repository/business-documents.repository.js";
1495
1490
  // ── Live-item listing — data + adapters + metadata + OG ──────────────────────
1496
1491
  export { getLiveItemForDetail } from "./_internal/server/features/live/data.js";
1497
1492
  export { toClientLiveItem } from "./_internal/server/features/live/adapters.js";
@@ -1583,4 +1578,11 @@ export { startStickerTraceRun, retryStickerTraceRun, listStickerTraceRuns, } fro
1583
1578
  export { buildCutFileForRun, buildCutFileBytes, } from "./_internal/server/features/sticker-trace/build-cut-file.js";
1584
1579
  export { promoteStickerTraceRun, isRunPromoted, } from "./_internal/server/features/sticker-trace/promote.js";
1585
1580
  export { createStickerSheet, attachStickerSheetScan, resolveStickerAssetUrl, measureStickerStorage, STICKER_ASSET_KINDS, STICKER_SHEET_MAX_BYTES, } from "./_internal/server/features/sticker-trace/sheet-actions.js";
1581
+ /*
1582
+ * 🛑 A different module from `sheet-actions` on purpose. `promoteRun` there is
1583
+ * run → sheet (render the full-res parts); this is sheet → marketplace (create
1584
+ * the products). The names are close enough that keeping them in one file is
1585
+ * how someone calls the wrong one.
1586
+ */
1587
+ export { promoteStickerSheetToListings, } from "./_internal/server/features/sticker-trace/promote-to-listings.js";
1586
1588
  export { toClientStickerSheet, toClientTraceRun, } from "./_internal/server/features/sticker-trace/adapters.js";