@mohasinac/appkit 4.52.5 → 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.
- package/dist/.build-stamp.json +4 -4
- package/dist/_internal/client/features/sticker-trace/canvas-codec.d.ts +2 -0
- package/dist/_internal/client/features/sticker-trace/canvas-codec.js +148 -0
- package/dist/_internal/client/scaffolds/AppShell.js +1 -1
- package/dist/_internal/server/features/auctions/actions.js +1 -1
- package/dist/_internal/server/features/auctions/og.d.ts +3 -1
- package/dist/_internal/server/features/auctions/og.js +3 -1
- package/dist/_internal/server/features/bundles/actions.js +1 -1
- package/dist/_internal/server/features/business-documents/download.d.ts +41 -0
- package/dist/_internal/server/features/business-documents/download.js +91 -0
- package/dist/_internal/server/features/categories/adapters.d.ts +1 -1
- package/dist/_internal/server/features/categories/adapters.js +10 -0
- package/dist/_internal/server/features/categories/data.js +23 -7
- package/dist/_internal/server/features/checkout/actions.d.ts +14 -0
- package/dist/_internal/server/features/checkout/actions.js +116 -15
- package/dist/_internal/server/features/checkout/bundle-expansion.js +17 -0
- package/dist/_internal/server/features/checkout/data.d.ts +37 -0
- package/dist/_internal/server/features/checkout/data.js +20 -3
- package/dist/_internal/server/features/checkout/group-rule-revalidation.d.ts +34 -0
- package/dist/_internal/server/features/checkout/group-rule-revalidation.js +124 -0
- package/dist/_internal/server/features/checkout/supplier-identity.d.ts +55 -0
- package/dist/_internal/server/features/checkout/supplier-identity.js +81 -0
- package/dist/_internal/server/features/classified/metadata.js +1 -1
- package/dist/_internal/server/features/classified/og.d.ts +3 -1
- package/dist/_internal/server/features/classified/og.js +3 -1
- package/dist/_internal/server/features/digital-code/metadata.js +1 -1
- package/dist/_internal/server/features/digital-code/og.d.ts +3 -1
- package/dist/_internal/server/features/digital-code/og.js +3 -1
- package/dist/_internal/server/features/digital-code/pool.d.ts +19 -4
- package/dist/_internal/server/features/digital-code/pool.js +19 -4
- package/dist/_internal/server/features/live/metadata.js +1 -1
- package/dist/_internal/server/features/live/og.d.ts +3 -1
- package/dist/_internal/server/features/live/og.js +3 -1
- package/dist/_internal/server/features/lottery/actions.js +9 -1
- package/dist/_internal/server/features/lottery/og.d.ts +40 -0
- package/dist/_internal/server/features/lottery/og.js +79 -0
- package/dist/_internal/server/features/messages/actions.js +5 -1
- package/dist/_internal/server/features/offers/adapters.js +17 -3
- package/dist/_internal/server/features/orders/actions.js +7 -2
- package/dist/_internal/server/features/parts/og.js +1 -1
- package/dist/_internal/server/features/pre-orders/og.d.ts +3 -1
- package/dist/_internal/server/features/pre-orders/og.js +3 -1
- package/dist/_internal/server/features/price-index/search.d.ts +18 -0
- package/dist/_internal/server/features/price-index/search.js +47 -7
- package/dist/_internal/server/features/prize-draws/og.d.ts +3 -1
- package/dist/_internal/server/features/prize-draws/og.js +3 -1
- package/dist/_internal/server/features/products/group-members.d.ts +26 -0
- package/dist/_internal/server/features/products/group-members.js +7 -1
- package/dist/_internal/server/features/products/og.d.ts +3 -1
- package/dist/_internal/server/features/products/og.js +3 -1
- package/dist/_internal/server/features/raffle/actions.d.ts +19 -0
- package/dist/_internal/server/features/raffle/actions.js +25 -0
- package/dist/_internal/server/features/reviews/actions.js +1 -1
- package/dist/_internal/server/features/reviews/data.d.ts +1 -1
- package/dist/_internal/server/features/search/index-build/artifact-store.d.ts +89 -0
- package/dist/_internal/server/features/search/index-build/artifact-store.js +208 -0
- package/dist/_internal/server/features/search/index-build/build.d.ts +57 -0
- package/dist/_internal/server/features/search/index-build/build.js +285 -0
- package/dist/_internal/server/features/search/index-build/sources.d.ts +53 -0
- package/dist/_internal/server/features/search/index-build/sources.js +385 -0
- package/dist/_internal/server/features/search/scoped-sources.d.ts +26 -0
- package/dist/_internal/server/features/search/scoped-sources.js +252 -0
- package/dist/_internal/server/features/search/search-everything.d.ts +57 -0
- package/dist/_internal/server/features/search/search-everything.js +70 -20
- package/dist/_internal/server/features/search/search-sources.d.ts +0 -15
- package/dist/_internal/server/features/search/search-sources.js +142 -7
- package/dist/_internal/server/features/seo/robots.js +21 -1
- package/dist/_internal/server/features/seo/sitemap.js +7 -1
- package/dist/_internal/server/features/shared/listing-adapters.js +4 -2
- package/dist/_internal/server/features/shared/listing-data-factory.js +16 -4
- package/dist/_internal/server/features/site-settings/adapters.d.ts +1 -1
- package/dist/_internal/server/features/site-settings/adapters.js +26 -0
- package/dist/_internal/server/features/sticker-trace/actions.d.ts +109 -0
- package/dist/_internal/server/features/sticker-trace/actions.js +172 -0
- package/dist/_internal/server/features/sticker-trace/adapters.d.ts +91 -0
- package/dist/_internal/server/features/sticker-trace/adapters.js +175 -0
- package/dist/_internal/server/features/sticker-trace/build-cut-file.d.ts +26 -0
- package/dist/_internal/server/features/sticker-trace/build-cut-file.js +127 -0
- package/dist/_internal/server/features/sticker-trace/coordinator.d.ts +27 -0
- package/dist/_internal/server/features/sticker-trace/coordinator.js +169 -0
- package/dist/_internal/server/features/sticker-trace/fanout.d.ts +43 -0
- package/dist/_internal/server/features/sticker-trace/fanout.js +180 -0
- package/dist/_internal/server/features/sticker-trace/finalizer.d.ts +25 -0
- package/dist/_internal/server/features/sticker-trace/finalizer.js +123 -0
- package/dist/_internal/server/features/sticker-trace/mosaic-inputs.d.ts +30 -0
- package/dist/_internal/server/features/sticker-trace/mosaic-inputs.js +112 -0
- package/dist/_internal/server/features/sticker-trace/progress.d.ts +81 -0
- package/dist/_internal/server/features/sticker-trace/progress.js +198 -0
- package/dist/_internal/server/features/sticker-trace/promote-to-listings.d.ts +26 -0
- package/dist/_internal/server/features/sticker-trace/promote-to-listings.js +264 -0
- package/dist/_internal/server/features/sticker-trace/promote.d.ts +23 -0
- package/dist/_internal/server/features/sticker-trace/promote.js +193 -0
- package/dist/_internal/server/features/sticker-trace/shard.d.ts +50 -0
- package/dist/_internal/server/features/sticker-trace/shard.js +174 -0
- package/dist/_internal/server/features/sticker-trace/sheet-actions.d.ts +143 -0
- package/dist/_internal/server/features/sticker-trace/sheet-actions.js +311 -0
- package/dist/_internal/server/features/sticker-trace/storage.d.ts +154 -0
- package/dist/_internal/server/features/sticker-trace/storage.js +301 -0
- package/dist/_internal/server/features/stores/adapters.d.ts +1 -1
- package/dist/_internal/server/features/stores/adapters.js +16 -0
- package/dist/_internal/server/features/stores/index.d.ts +1 -0
- package/dist/_internal/server/features/stores/index.js +1 -0
- package/dist/_internal/server/features/stores/tabs.d.ts +25 -0
- package/dist/_internal/server/features/stores/tabs.js +122 -0
- package/dist/_internal/server/functions/scheduled.d.ts +2 -1
- package/dist/_internal/server/functions/scheduled.js +25 -1
- package/dist/_internal/server/jobs/core/_event-ref.d.ts +51 -0
- package/dist/_internal/server/jobs/core/_event-ref.js +63 -0
- package/dist/_internal/server/jobs/core/assignSpinPrize.d.ts +18 -0
- package/dist/_internal/server/jobs/core/assignSpinPrize.js +77 -16
- package/dist/_internal/server/jobs/core/auctionSettlement.js +13 -4
- package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +44 -15
- package/dist/_internal/server/jobs/core/bundleStockSync.js +3 -4
- package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +44 -0
- package/dist/_internal/server/jobs/core/event-draw-reasons.d.ts +78 -0
- package/dist/_internal/server/jobs/core/event-draw-reasons.js +133 -0
- package/dist/_internal/server/jobs/core/listingProcessor.js +28 -8
- package/dist/_internal/server/jobs/core/onOrderCreate.js +12 -1
- package/dist/_internal/server/jobs/core/onScamReportCreate.js +13 -2
- package/dist/_internal/server/jobs/core/onScamReportRejected.js +8 -2
- package/dist/_internal/server/jobs/core/onScamReportVerified.js +8 -2
- package/dist/_internal/server/jobs/core/onStoreWrite.js +11 -4
- package/dist/_internal/server/jobs/core/prizeDrawAssignWinner.js +5 -4
- package/dist/_internal/server/jobs/core/prizeDrawExpiryReveal.js +1 -4
- package/dist/_internal/server/jobs/core/prizeDrawSoldOutReveal.js +1 -2
- package/dist/_internal/server/jobs/core/promotions.js +7 -4
- package/dist/_internal/server/jobs/core/searchIndexBuild.d.ts +7 -0
- package/dist/_internal/server/jobs/core/searchIndexBuild.js +211 -0
- package/dist/_internal/server/jobs/core/triggerEventRaffle.d.ts +35 -0
- package/dist/_internal/server/jobs/core/triggerEventRaffle.js +213 -31
- package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +20 -14
- package/dist/_internal/server/jobs/handlers/assignSpinPrize.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +15 -15
- package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
- package/dist/_internal/server/jobs/handlers/index.js +1 -0
- package/dist/_internal/server/jobs/handlers/onCategoryWrite.js +18 -0
- package/dist/_internal/server/jobs/handlers/onProductWrite.js +18 -0
- package/dist/_internal/server/jobs/handlers/onReviewWrite.js +18 -0
- package/dist/_internal/server/jobs/handlers/onScamReportUpdate.js +18 -0
- package/dist/_internal/server/jobs/handlers/onStoreWrite.js +18 -0
- package/dist/_internal/server/jobs/handlers/searchIndexBuild.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/searchIndexBuild.js +2 -0
- package/dist/_internal/server/jobs/handlers/triggerEventRaffle.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/triggerEventRaffle.js +15 -6
- package/dist/_internal/shared/actions/action-registry.js +29 -0
- package/dist/_internal/shared/cache/revalidate-targets.d.ts +0 -1
- package/dist/_internal/shared/cache/revalidate-targets.js +10 -8
- package/dist/_internal/shared/checkout/rules/_defaults.js +0 -2
- package/dist/_internal/shared/checkout/rules/_limits.d.ts +14 -1
- package/dist/_internal/shared/checkout/rules/_limits.js +14 -1
- package/dist/_internal/shared/checkout/rules/_registry.js +2 -0
- package/dist/_internal/shared/checkout/rules/auction.rule.js +9 -1
- package/dist/_internal/shared/checkout/rules/bundle.rule.js +13 -0
- package/dist/_internal/shared/checkout/rules/index.d.ts +2 -0
- package/dist/_internal/shared/checkout/rules/index.js +9 -0
- package/dist/_internal/shared/checkout/rules/offer.rule.js +0 -1
- package/dist/_internal/shared/checkout/rules/payment-gate.d.ts +26 -0
- package/dist/_internal/shared/checkout/rules/payment-gate.js +133 -0
- package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +29 -8
- package/dist/_internal/shared/checkout/rules/spares.rule.d.ts +16 -0
- package/dist/_internal/shared/checkout/rules/spares.rule.js +5 -0
- package/dist/_internal/shared/checkout/rules/types.d.ts +26 -2
- package/dist/_internal/shared/config/schema.d.ts +122 -0
- package/dist/_internal/shared/features/cart/schema.js +3 -2
- package/dist/_internal/shared/features/events/config.d.ts +14 -0
- package/dist/_internal/shared/features/events/config.js +14 -0
- package/dist/_internal/shared/features/notifications/action-url.js +8 -0
- package/dist/_internal/shared/features/products/group-rules.d.ts +75 -0
- package/dist/_internal/shared/features/products/group-rules.js +142 -0
- package/dist/_internal/shared/features/site-settings/types.d.ts +11 -0
- package/dist/_internal/shared/features/sticker-trace/codec.d.ts +81 -0
- package/dist/_internal/shared/features/sticker-trace/codec.js +30 -0
- package/dist/_internal/shared/features/sticker-trace/config.d.ts +81 -0
- package/dist/_internal/shared/features/sticker-trace/config.js +177 -0
- package/dist/_internal/shared/features/sticker-trace/cut-contour.d.ts +20 -0
- package/dist/_internal/shared/features/sticker-trace/cut-contour.js +60 -0
- package/dist/_internal/shared/features/sticker-trace/export/build-export-set.d.ts +65 -0
- package/dist/_internal/shared/features/sticker-trace/export/build-export-set.js +176 -0
- package/dist/_internal/shared/features/sticker-trace/export/cut-svg.d.ts +56 -0
- package/dist/_internal/shared/features/sticker-trace/export/cut-svg.js +120 -0
- package/dist/_internal/shared/features/sticker-trace/export/machine-profiles.d.ts +92 -0
- package/dist/_internal/shared/features/sticker-trace/export/machine-profiles.js +153 -0
- package/dist/_internal/shared/features/sticker-trace/export/nesting.d.ts +51 -0
- package/dist/_internal/shared/features/sticker-trace/export/nesting.js +110 -0
- package/dist/_internal/shared/features/sticker-trace/export/page-sizes.d.ts +68 -0
- package/dist/_internal/shared/features/sticker-trace/export/page-sizes.js +223 -0
- package/dist/_internal/shared/features/sticker-trace/export/part-tiling.d.ts +51 -0
- package/dist/_internal/shared/features/sticker-trace/export/part-tiling.js +178 -0
- package/dist/_internal/shared/features/sticker-trace/export/simplify-budget.d.ts +26 -0
- package/dist/_internal/shared/features/sticker-trace/export/simplify-budget.js +134 -0
- package/dist/_internal/shared/features/sticker-trace/export/vectorise-art.d.ts +40 -0
- package/dist/_internal/shared/features/sticker-trace/export/vectorise-art.js +195 -0
- package/dist/_internal/shared/features/sticker-trace/index.d.ts +2 -0
- package/dist/_internal/shared/features/sticker-trace/index.js +59 -0
- package/dist/_internal/shared/features/sticker-trace/math/catmull-rom.d.ts +11 -0
- package/dist/_internal/shared/features/sticker-trace/math/catmull-rom.js +66 -0
- package/dist/_internal/shared/features/sticker-trace/math/edt.d.ts +27 -0
- package/dist/_internal/shared/features/sticker-trace/math/edt.js +165 -0
- package/dist/_internal/shared/features/sticker-trace/math/label.d.ts +15 -0
- package/dist/_internal/shared/features/sticker-trace/math/label.js +156 -0
- package/dist/_internal/shared/features/sticker-trace/math/marching-squares.d.ts +16 -0
- package/dist/_internal/shared/features/sticker-trace/math/marching-squares.js +242 -0
- package/dist/_internal/shared/features/sticker-trace/math/morphology.d.ts +46 -0
- package/dist/_internal/shared/features/sticker-trace/math/morphology.js +168 -0
- package/dist/_internal/shared/features/sticker-trace/math/rasterize-path.d.ts +88 -0
- package/dist/_internal/shared/features/sticker-trace/math/rasterize-path.js +286 -0
- package/dist/_internal/shared/features/sticker-trace/math/rdp.d.ts +10 -0
- package/dist/_internal/shared/features/sticker-trace/math/rdp.js +74 -0
- package/dist/_internal/shared/features/sticker-trace/resume.d.ts +50 -0
- package/dist/_internal/shared/features/sticker-trace/resume.js +160 -0
- package/dist/_internal/shared/features/sticker-trace/trace/cluster.d.ts +20 -0
- package/dist/_internal/shared/features/sticker-trace/trace/cluster.js +132 -0
- package/dist/_internal/shared/features/sticker-trace/trace/cross-profile.d.ts +28 -0
- package/dist/_internal/shared/features/sticker-trace/trace/cross-profile.js +120 -0
- package/dist/_internal/shared/features/sticker-trace/trace/flood.d.ts +21 -0
- package/dist/_internal/shared/features/sticker-trace/trace/flood.js +104 -0
- package/dist/_internal/shared/features/sticker-trace/trace/geometry.d.ts +3 -0
- package/dist/_internal/shared/features/sticker-trace/trace/geometry.js +140 -0
- package/dist/_internal/shared/features/sticker-trace/trace/line-filter.d.ts +15 -0
- package/dist/_internal/shared/features/sticker-trace/trace/line-filter.js +138 -0
- package/dist/_internal/shared/features/sticker-trace/trace/merge.d.ts +27 -0
- package/dist/_internal/shared/features/sticker-trace/trace/merge.js +187 -0
- package/dist/_internal/shared/features/sticker-trace/trace/paper.d.ts +32 -0
- package/dist/_internal/shared/features/sticker-trace/trace/paper.js +147 -0
- package/dist/_internal/shared/features/sticker-trace/trace/prefilter.d.ts +30 -0
- package/dist/_internal/shared/features/sticker-trace/trace/prefilter.js +125 -0
- package/dist/_internal/shared/features/sticker-trace/trace/quantise.d.ts +10 -0
- package/dist/_internal/shared/features/sticker-trace/trace/quantise.js +153 -0
- package/dist/_internal/shared/features/sticker-trace/trace/ridge.d.ts +88 -0
- package/dist/_internal/shared/features/sticker-trace/trace/ridge.js +344 -0
- package/dist/_internal/shared/features/sticker-trace/trace/segment.d.ts +10 -0
- package/dist/_internal/shared/features/sticker-trace/trace/segment.js +251 -0
- package/dist/_internal/shared/features/sticker-trace/types.d.ts +197 -0
- package/dist/_internal/shared/features/sticker-trace/types.js +49 -0
- package/dist/_internal/shared/listing-types/_registry.d.ts +35 -0
- package/dist/_internal/shared/listing-types/_registry.js +39 -1
- package/dist/_internal/shared/listing-types/art/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/art/config.js +3 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/auction/config.js +3 -0
- package/dist/_internal/shared/listing-types/availability.js +48 -0
- package/dist/_internal/shared/listing-types/capabilities.js +19 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/classified/config.js +3 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +3 -0
- package/dist/_internal/shared/listing-types/feature-flags.d.ts +7 -0
- package/dist/_internal/shared/listing-types/feature-flags.js +10 -0
- package/dist/_internal/shared/listing-types/live/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/live/config.js +3 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +3 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +3 -0
- package/dist/_internal/shared/listing-types/spares/config.d.ts +74 -0
- package/dist/_internal/shared/listing-types/spares/config.js +60 -0
- package/dist/_internal/shared/listing-types/spares/ctas.d.ts +1 -0
- package/dist/_internal/shared/listing-types/spares/ctas.js +4 -0
- package/dist/_internal/shared/listing-types/spares/og.js +1 -0
- package/dist/_internal/shared/listing-types/spares/schema.d.ts +2 -0
- package/dist/_internal/shared/listing-types/spares/schema.js +3 -0
- package/dist/_internal/shared/listing-types/spares/seed-factory.d.ts +1 -0
- package/dist/_internal/shared/listing-types/spares/seed-factory.js +1 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/standard/config.js +3 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +2 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +3 -0
- package/dist/_internal/shared/media/limits.d.ts +12 -2
- package/dist/_internal/shared/media/limits.js +12 -2
- package/dist/_internal/shared/search/artifact-url.d.ts +35 -0
- package/dist/_internal/shared/search/artifact-url.js +119 -0
- package/dist/_internal/shared/search/index-record.d.ts +68 -0
- package/dist/_internal/shared/search/index-record.js +96 -0
- package/dist/_internal/shared/search/match.d.ts +76 -0
- package/dist/_internal/shared/search/match.js +264 -0
- package/dist/_internal/shared/search/to-groups.d.ts +52 -0
- package/dist/_internal/shared/search/to-groups.js +141 -0
- package/dist/client.d.ts +16 -9
- package/dist/client.js +16 -6
- package/dist/configs/eslint.js +22 -2
- package/dist/constants/api-endpoints.d.ts +107 -15
- package/dist/constants/api-endpoints.js +60 -5
- package/dist/constants/cache-invalidation.js +3 -1
- package/dist/constants/field-names.d.ts +13 -1
- package/dist/constants/field-names.js +42 -1
- package/dist/contracts/repository.d.ts +8 -7
- package/dist/contracts/search.d.ts +2 -2
- package/dist/contracts/table.d.ts +3 -3
- package/dist/contracts/table.js +3 -3
- package/dist/core/contact-submissions.repository.js +2 -2
- package/dist/core/integration-keys.js +7 -1
- package/dist/core/newsletter.repository.js +2 -2
- package/dist/core/site-config.js +1 -1
- package/dist/errors/error-codes.d.ts +30 -0
- package/dist/errors/error-codes.js +30 -0
- package/dist/errors/error-display-map.js +40 -1
- package/dist/features/about/components/PolicyPageView.d.ts +22 -2
- package/dist/features/about/components/PolicyPageView.js +14 -2
- package/dist/features/about/components/PublicProfileView.js +2 -1
- package/dist/features/about/components/ShippingPolicyView.js +42 -2
- package/dist/features/account/api/[userId]/addresses/route.js +1 -1
- package/dist/features/account/components/NotificationBell.js +1 -1
- package/dist/features/account/components/UserBidsView.js +1 -1
- package/dist/features/account/components/index.d.ts +0 -8
- package/dist/features/account/components/index.js +0 -4
- package/dist/features/account/hooks/useProfileStats.js +5 -1
- package/dist/features/addresses/repository/addresses.repository.d.ts +33 -6
- package/dist/features/addresses/repository/addresses.repository.js +86 -9
- package/dist/features/addresses/schemas/firestore.d.ts +17 -6
- package/dist/features/admin/actions/admin-actions.js +16 -1
- package/dist/features/admin/actions/notification-actions.js +15 -6
- package/dist/features/admin/api/bids/route.js +1 -1
- package/dist/features/admin/api/coupons/route.js +1 -1
- package/dist/features/admin/api/products/route.js +1 -1
- package/dist/features/admin/api/reviews/route.js +1 -1
- package/dist/features/admin/components/AdminAdEditorView.js +19 -5
- package/dist/features/admin/components/AdminAuditLogView.js +1 -1
- package/dist/features/admin/components/AdminBlogEditorView.js +0 -1
- package/dist/features/admin/components/AdminBlogView.js +1 -1
- package/dist/features/admin/components/AdminBrandsView.js +17 -1
- package/dist/features/admin/components/AdminCategoryEditorView.js +19 -3
- package/dist/features/admin/components/AdminContactView.js +1 -1
- package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -3
- package/dist/features/admin/components/AdminNavigationView.js +1 -1
- package/dist/features/admin/components/AdminNewsletterView.js +1 -1
- package/dist/features/admin/components/AdminOrdersView.js +9 -2
- package/dist/features/admin/components/AdminPageHeader.js +1 -1
- package/dist/features/admin/components/AdminPayoutsView.js +1 -1
- package/dist/features/admin/components/AdminPrizeDrawsView.js +11 -0
- package/dist/features/admin/components/AdminProductEditorView.d.ts +10 -1
- package/dist/features/admin/components/AdminProductEditorView.js +41 -39
- package/dist/features/admin/components/AdminProductsView.js +10 -3
- package/dist/features/admin/components/AdminScammersView.js +1 -1
- package/dist/features/admin/components/AdminSectionsView.js +21 -5
- package/dist/features/admin/components/AdminSessionsView.js +1 -1
- package/dist/features/admin/components/AdminSidebar.js +1 -1
- package/dist/features/admin/components/AdminSiteSettingsView.js +39 -8
- package/dist/features/admin/components/AdminSparesView.d.ts +12 -0
- package/dist/features/admin/components/AdminSparesView.js +30 -0
- package/dist/features/admin/components/AdminSublistingCategoriesView.js +22 -1
- package/dist/features/admin/components/AdminTeamView.js +1 -1
- package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +0 -1
- package/dist/features/admin/components/AdminUsersView.js +10 -8
- package/dist/features/admin/components/DataListingView.d.ts +2 -1
- package/dist/features/admin/components/DataListingView.js +9 -4
- package/dist/features/admin/components/analytics/AdminPageViewsReportView.js +0 -2
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/components/sections/adminSectionsTypes.js +7 -0
- package/dist/features/admin/constants/filter-tabs.d.ts +3 -0
- package/dist/features/admin/constants/filter-tabs.js +1 -0
- package/dist/features/admin/hooks/useAdminListing.d.ts +1 -1
- package/dist/features/admin/repository/site-settings.repository.js +8 -3
- package/dist/features/admin/schemas/firestore.d.ts +88 -3
- package/dist/features/admin/schemas/firestore.js +32 -0
- package/dist/features/admin/types/index.d.ts +1 -1
- package/dist/features/auctions/actions/bid-actions.d.ts +2 -2
- package/dist/features/auctions/actions/bid-actions.js +16 -4
- package/dist/features/auctions/api/route.js +1 -1
- package/dist/features/auctions/components/AuctionBottomActions.js +4 -0
- package/dist/features/auctions/components/AuctionDetailPageView.js +4 -11
- package/dist/features/auctions/repository/bid.repository.d.ts +46 -4
- package/dist/features/auctions/repository/bid.repository.js +114 -13
- package/dist/features/auctions/schemas/firestore.d.ts +24 -4
- package/dist/features/auctions/schemas/firestore.js +1 -0
- package/dist/features/auth/actions/profile-actions.js +30 -4
- package/dist/features/auth/components/index.d.ts +0 -1
- package/dist/features/auth/components/index.js +0 -1
- package/dist/features/auth/repository/session.repository.d.ts +17 -3
- package/dist/features/auth/repository/session.repository.js +46 -5
- package/dist/features/auth/repository/token.repository.d.ts +27 -4
- package/dist/features/auth/repository/token.repository.js +65 -11
- package/dist/features/auth/repository/user.repository.d.ts +46 -7
- package/dist/features/auth/repository/user.repository.js +128 -15
- package/dist/features/auth/schemas/firestore.d.ts +65 -12
- package/dist/features/auth/schemas/firestore.js +13 -0
- package/dist/features/before-after/api/route.js +1 -1
- package/dist/features/blog/components/BlogListView.js +16 -3
- package/dist/features/blog/components/BlogPostView.js +1 -1
- package/dist/features/blog/schemas/index.d.ts +2 -2
- package/dist/features/business-documents/repository/business-documents.repository.d.ts +58 -0
- package/dist/features/business-documents/repository/business-documents.repository.js +54 -0
- package/dist/features/business-documents/schemas/firestore.d.ts +105 -0
- package/dist/features/business-documents/schemas/firestore.js +75 -0
- package/dist/features/cart/actions/cart-actions.js +83 -6
- package/dist/features/cart/api/route.js +1 -1
- package/dist/features/cart/repository/cart.repository.js +32 -4
- package/dist/features/cart/schemas/firestore.d.ts +20 -0
- package/dist/features/cart/schemas/index.d.ts +2 -2
- package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +1 -1
- package/dist/features/catalogue/repository/catalogue.repository.d.ts +7 -7
- package/dist/features/catalogue/repository/catalogue.repository.js +28 -10
- package/dist/features/catalogue/schemas/firestore.d.ts +11 -0
- package/dist/features/categories/api/[id]/price-guidance/route.d.ts +42 -0
- package/dist/features/categories/api/[id]/price-guidance/route.js +113 -0
- package/dist/features/categories/api/route.js +10 -10
- package/dist/features/categories/components/BrandDetailPageView.js +19 -3
- package/dist/features/categories/components/BrandDetailTabs.js +10 -0
- package/dist/features/categories/components/CategoriesIndexListing.js +23 -8
- package/dist/features/categories/components/CategoryDetailPageView.js +170 -13
- package/dist/features/categories/components/CategoryDetailTabs.js +12 -0
- package/dist/features/categories/components/CategoryGrid.js +10 -1
- package/dist/features/categories/components/CategorySelectorCreate.js +0 -1
- package/dist/features/categories/components/PriceGuidanceHint.d.ts +29 -0
- package/dist/features/categories/components/PriceGuidanceHint.js +61 -0
- package/dist/features/categories/components/SubcategoryCardRow.d.ts +27 -0
- package/dist/features/categories/components/SubcategoryCardRow.js +98 -0
- package/dist/features/categories/components/index.d.ts +0 -2
- package/dist/features/categories/components/index.js +0 -1
- package/dist/features/categories/constants/category-tabs.d.ts +20 -25
- package/dist/features/categories/constants/category-tabs.js +22 -39
- package/dist/features/categories/repository/categories.repository.d.ts +13 -0
- package/dist/features/categories/repository/categories.repository.js +51 -1
- package/dist/features/categories/schemas/firestore.d.ts +22 -1
- package/dist/features/categories/schemas/firestore.js +10 -0
- package/dist/features/categories/schemas/index.d.ts +8 -2
- package/dist/features/categories/schemas/index.js +2 -0
- package/dist/features/categories/types/index.d.ts +8 -0
- package/dist/features/categories/utils/taxonomy-visual.d.ts +34 -0
- package/dist/features/categories/utils/taxonomy-visual.js +74 -0
- package/dist/features/checkout/actions/checkout-value-otp-actions.js +8 -1
- package/dist/features/classified/components/ClassifiedDetailPageView.js +4 -9
- package/dist/features/collections/api/[slug]/route.js +3 -3
- package/dist/features/collections/api/route.js +1 -1
- package/dist/features/consultation/api/route.js +1 -1
- package/dist/features/consultation/repository/consultations.repository.js +1 -1
- package/dist/features/consultation/types/index.d.ts +1 -1
- package/dist/features/contact/components/ContactForm.js +1 -3
- package/dist/features/contact/components/ContactPageView.d.ts +33 -1
- package/dist/features/contact/components/ContactPageView.js +58 -28
- package/dist/features/corporate/api/route.js +1 -1
- package/dist/features/corporate/repository/corporate.repository.js +1 -1
- package/dist/features/corporate/types/index.d.ts +1 -1
- package/dist/features/cron/jobs/auction-expiry.job.js +1 -1
- package/dist/features/cron/jobs/preorder-reminder.job.js +1 -1
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +4 -9
- package/dist/features/events/actions/event-actions.d.ts +14 -0
- package/dist/features/events/actions/event-actions.js +82 -3
- package/dist/features/events/api/[id]/route.js +2 -2
- package/dist/features/events/components/AdminEventEditorView.js +22 -3
- package/dist/features/events/components/AdminEventsView.js +32 -8
- package/dist/features/events/components/EventRafflesSection.d.ts +34 -1
- package/dist/features/events/components/EventRafflesSection.js +52 -3
- package/dist/features/events/components/SpinWheelView.d.ts +2 -2
- package/dist/features/events/components/SpinWheelView.js +41 -4
- package/dist/features/events/repository/event-entry.repository.d.ts +14 -2
- package/dist/features/events/repository/event-entry.repository.js +41 -7
- package/dist/features/events/schemas/firestore.d.ts +17 -4
- package/dist/features/events/types/index.d.ts +37 -0
- package/dist/features/faq/repository/faqs.repository.js +1 -1
- package/dist/features/faq/schemas/index.d.ts +5 -2
- package/dist/features/faq/schemas/index.js +6 -0
- package/dist/features/faq/types/index.d.ts +0 -1
- package/dist/features/grouped/components/GroupedListingDetailView.js +9 -1
- package/dist/features/grouped/components/GroupedListingEditorView.js +17 -2
- package/dist/features/grouped/schemas/firestore.d.ts +5 -0
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +3 -3
- package/dist/features/homepage/api/carousel/[id]/route.js +1 -1
- package/dist/features/homepage/api/carousel/route.js +4 -4
- package/dist/features/homepage/components/AnnouncementBar.d.ts +1 -9
- package/dist/features/homepage/components/AnnouncementBar.js +13 -19
- package/dist/features/homepage/components/CollectionCardsSection.d.ts +28 -6
- package/dist/features/homepage/components/CollectionCardsSection.js +43 -8
- package/dist/features/homepage/components/HowItWorksSection.d.ts +23 -6
- package/dist/features/homepage/components/HowItWorksSection.js +4 -4
- package/dist/features/homepage/components/MarketplaceHomepageView.js +6 -1
- package/dist/features/homepage/components/PromoGrid.d.ts +31 -2
- package/dist/features/homepage/components/PromoGrid.js +12 -3
- package/dist/features/homepage/components/TestimonialsCarousel.d.ts +34 -2
- package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
- package/dist/features/homepage/components/index.d.ts +0 -22
- package/dist/features/homepage/components/index.js +0 -12
- package/dist/features/homepage/index.d.ts +0 -2
- package/dist/features/homepage/index.js +0 -2
- package/dist/features/homepage/lib/section-renderer.d.ts +9 -0
- package/dist/features/homepage/lib/section-renderer.js +202 -58
- package/dist/features/homepage/repository/homepage-sections.repository.d.ts +35 -3
- package/dist/features/homepage/repository/homepage-sections.repository.js +58 -8
- package/dist/features/homepage/schemas/firestore.d.ts +112 -3
- package/dist/features/homepage/schemas/firestore.js +32 -2
- package/dist/features/homepage/schemas/index.d.ts +46 -17
- package/dist/features/homepage/schemas/index.js +39 -27
- package/dist/features/homepage/server.d.ts +0 -3
- package/dist/features/homepage/server.js +0 -3
- package/dist/features/homepage/types/index.d.ts +0 -47
- package/dist/features/homepage/types/index.js +49 -0
- package/dist/features/layout/AppLayoutShell.d.ts +11 -0
- package/dist/features/layout/AppLayoutShell.js +65 -13
- package/dist/features/layout/BottomActionsContext.d.ts +16 -0
- package/dist/features/layout/BottomActionsContext.js +5 -0
- package/dist/features/layout/BottomChrome.js +48 -9
- package/dist/features/layout/BottomNavItem.js +1 -1
- package/dist/features/layout/BottomNavbar.d.ts +14 -0
- package/dist/features/layout/BottomNavbar.js +43 -3
- package/dist/features/layout/BottomSheet.js +1 -1
- package/dist/features/layout/MainNavbar.d.ts +11 -0
- package/dist/features/layout/NavbarLayout.d.ts +3 -0
- package/dist/features/layout/NavbarLayout.js +88 -11
- package/dist/features/layout/SideActionDock.d.ts +1 -0
- package/dist/features/layout/SideActionDock.js +219 -0
- package/dist/features/layout/TitleBarLayout.js +1 -1
- package/dist/features/layout/cta-anchor.d.ts +31 -0
- package/dist/features/layout/cta-anchor.js +31 -0
- package/dist/features/layout/hooks/useBottomActions.d.ts +7 -0
- package/dist/features/layout/hooks/useBottomActions.js +6 -1
- package/dist/features/layout/index.d.ts +9 -1
- package/dist/features/layout/index.js +9 -1
- package/dist/features/layout/useCtaReveal.d.ts +24 -0
- package/dist/features/layout/useCtaReveal.js +82 -0
- package/dist/features/layout/useHoldToOpen.d.ts +41 -0
- package/dist/features/layout/useHoldToOpen.js +84 -0
- package/dist/features/live/components/LiveItemDetailPageView.js +4 -9
- package/dist/features/lottery/repository/lottery-entry.repository.d.ts +18 -3
- package/dist/features/lottery/repository/lottery-entry.repository.js +48 -6
- package/dist/features/lottery/schemas/firestore.d.ts +33 -5
- package/dist/features/loyalty/api/balance/route.js +1 -1
- package/dist/features/loyalty/api/history/route.js +1 -1
- package/dist/features/media/MediaImage.js +0 -1
- package/dist/features/media/MediaPickerModal.js +7 -1
- package/dist/features/media/hooks/useMedia.js +17 -0
- package/dist/features/media/modals/ImageEditor.js +5 -1
- package/dist/features/media/modals/VideoThumbnailSelector.js +17 -1
- package/dist/features/media/repository/media-assets.repository.d.ts +65 -0
- package/dist/features/media/repository/media-assets.repository.js +31 -0
- package/dist/features/media/trust-signals.d.ts +85 -0
- package/dist/features/media/trust-signals.js +126 -0
- package/dist/features/media/upload/CameraCapture.js +16 -1
- package/dist/features/media/upload/ImageUpload.js +42 -4
- package/dist/features/media/upload/MediaUploadField.js +69 -13
- package/dist/features/media/upload/downscale-image.d.ts +56 -0
- package/dist/features/media/upload/downscale-image.js +150 -0
- package/dist/features/messages/components/ConversationThreadView.js +45 -2
- package/dist/features/messages/components/MessageSellerButton.d.ts +15 -1
- package/dist/features/messages/components/MessageSellerButton.js +10 -2
- package/dist/features/messages/schemas/firestore.d.ts +15 -0
- package/dist/features/orders/hooks/useOrders.js +4 -2
- package/dist/features/orders/repository/orders.repository.d.ts +15 -4
- package/dist/features/orders/repository/orders.repository.js +52 -20
- package/dist/features/orders/schemas/firestore.d.ts +15 -4
- package/dist/features/orders/schemas/index.d.ts +8 -8
- package/dist/features/orders/types/index.d.ts +2 -2
- package/dist/features/parts/components/PartDetailPageView.d.ts +14 -1
- package/dist/features/parts/components/PartDetailPageView.js +2 -2
- package/dist/features/parts/components/PartsIndexPageView.d.ts +11 -2
- package/dist/features/parts/components/PartsIndexPageView.js +2 -2
- package/dist/features/parts/components/PartsSearchBox.d.ts +9 -0
- package/dist/features/parts/components/PartsSearchBox.js +57 -0
- package/dist/features/parts/schemas/firestore.d.ts +149 -3
- package/dist/features/parts/schemas/firestore.js +184 -0
- package/dist/features/payments/repository/payments.repository.js +2 -2
- package/dist/features/payments/repository/payout.repository.d.ts +38 -6
- package/dist/features/payments/repository/payout.repository.js +84 -23
- package/dist/features/payments/repository/saved-payment-methods.repository.d.ts +17 -6
- package/dist/features/payments/repository/saved-payment-methods.repository.js +59 -11
- package/dist/features/payments/schemas/firestore.d.ts +14 -3
- package/dist/features/payments/schemas/saved-methods-firestore.d.ts +12 -1
- package/dist/features/pre-orders/api/[slug]/route.js +1 -1
- package/dist/features/pre-orders/api/admin/route.js +1 -1
- package/dist/features/pre-orders/api/route.js +1 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -11
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +1 -1
- package/dist/features/pre-orders/repository/pre-orders.repository.d.ts +3 -3
- package/dist/features/pre-orders/repository/pre-orders.repository.js +6 -6
- package/dist/features/price-index/components/PriceIndexToolView.d.ts +3 -1
- package/dist/features/price-index/components/PriceIndexToolView.js +92 -13
- package/dist/features/products/api/[id]/route.js +1 -1
- package/dist/features/products/components/CompareOverlay.d.ts +18 -1
- package/dist/features/products/components/CompareOverlay.js +21 -2
- package/dist/features/products/components/CustomSectionTabContent.d.ts +31 -0
- package/dist/features/products/components/CustomSectionTabContent.js +29 -3
- package/dist/features/products/components/GroupMemberPicker.d.ts +19 -1
- package/dist/features/products/components/GroupMemberPicker.js +46 -8
- package/dist/features/products/components/GroupSettingsPanel.d.ts +11 -1
- package/dist/features/products/components/GroupSettingsPanel.js +91 -3
- package/dist/features/products/components/ListingBottomActions.js +4 -0
- package/dist/features/products/components/PrizeDrawDetailPageView.js +1 -1
- package/dist/features/products/components/PrizeDrawEntryActions.d.ts +15 -1
- package/dist/features/products/components/PrizeDrawEntryActions.js +70 -8
- package/dist/features/products/components/ProductDetailPageView.js +75 -15
- package/dist/features/products/components/ProductForm.d.ts +13 -1
- package/dist/features/products/components/ProductForm.js +16 -2
- package/dist/features/products/components/ProductGalleryClient.js +2 -2
- package/dist/features/products/components/ProductGrid.js +12 -1
- package/dist/features/products/components/ProductsIndexListing.d.ts +16 -1
- package/dist/features/products/components/ProductsIndexListing.js +3 -3
- package/dist/features/products/components/ShowGroupSection.js +15 -2
- package/dist/features/products/components/SparesListView.d.ts +7 -0
- package/dist/features/products/components/SparesListView.js +39 -0
- package/dist/features/products/components/index.d.ts +0 -2
- package/dist/features/products/components/index.js +0 -1
- package/dist/features/products/config/listing-type-listing-config.d.ts +0 -3
- package/dist/features/products/config/listing-type-listing-config.js +27 -2
- package/dist/features/products/constants/action-defs.d.ts +1 -0
- package/dist/features/products/constants/action-defs.js +1 -0
- package/dist/features/products/constants/listing-tabs.d.ts +9 -0
- package/dist/features/products/constants/listing-tabs.js +3 -2
- package/dist/features/products/hooks/useProducts.js +2 -2
- package/dist/features/products/repository/products.repository.d.ts +98 -0
- package/dist/features/products/repository/products.repository.js +248 -18
- package/dist/features/products/schemas/firestore.d.ts +97 -4
- package/dist/features/products/schemas/firestore.js +104 -0
- package/dist/features/products/schemas/index.d.ts +12 -21
- package/dist/features/products/schemas/index.js +23 -6
- package/dist/features/products/types/index.d.ts +46 -2
- package/dist/features/products/utils/group-member-image.d.ts +39 -0
- package/dist/features/products/utils/group-member-image.js +3 -0
- package/dist/features/products/utils/listing-badge-variant.js +4 -0
- package/dist/features/promotions/api/route.js +1 -1
- package/dist/features/reviews/actions/review-actions.d.ts +6 -6
- package/dist/features/reviews/actions/review-actions.js +22 -8
- package/dist/features/reviews/components/ReviewDetailPageView.js +13 -1
- package/dist/features/reviews/components/ReviewsIndexPageView.js +21 -4
- package/dist/features/reviews/components/ReviewsList.js +1 -1
- package/dist/features/reviews/repository/reviews.repository.d.ts +19 -7
- package/dist/features/reviews/repository/reviews.repository.js +63 -12
- package/dist/features/reviews/schemas/firestore.d.ts +13 -2
- package/dist/features/reviews/schemas/index.d.ts +2 -2
- package/dist/features/scams/actions/scam-actions.js +16 -4
- package/dist/features/scams/components/ScamProfileView.js +1 -1
- package/dist/features/search/components/EntityTypeahead.d.ts +44 -0
- package/dist/features/search/components/EntityTypeahead.js +92 -0
- package/dist/features/search/components/Search.d.ts +12 -1
- package/dist/features/search/components/Search.js +47 -3
- package/dist/features/search/components/SearchFacetRail.d.ts +11 -0
- package/dist/features/search/components/SearchFacetRail.js +92 -0
- package/dist/features/search/components/SearchResultsClient.d.ts +33 -0
- package/dist/features/search/components/SearchResultsClient.js +103 -0
- package/dist/features/search/components/SearchResultsPageView.d.ts +15 -1
- package/dist/features/search/components/SearchResultsPageView.js +3 -2
- package/dist/features/search/components/index.d.ts +0 -6
- package/dist/features/search/components/index.js +0 -3
- package/dist/features/search/hooks/useNavSuggestions.d.ts +13 -0
- package/dist/features/search/hooks/useScopedSearch.d.ts +34 -0
- package/dist/features/search/hooks/useScopedSearch.js +114 -0
- package/dist/features/search/hooks/useSearchIndex.d.ts +34 -0
- package/dist/features/search/hooks/useSearchIndex.js +172 -0
- package/dist/features/search/hooks/useSiteSearch.d.ts +26 -0
- package/dist/features/search/hooks/useSiteSearch.js +149 -0
- package/dist/features/search/index.d.ts +0 -4
- package/dist/features/search/index.js +0 -4
- package/dist/features/search/manifest.d.ts +12 -0
- package/dist/features/search/manifest.js +17 -2
- package/dist/features/search/server.d.ts +0 -3
- package/dist/features/search/server.js +0 -3
- package/dist/features/seller/actions/offer-actions.d.ts +5 -5
- package/dist/features/seller/actions/offer-actions.js +38 -8
- package/dist/features/seller/actions/seller-actions.js +34 -7
- package/dist/features/seller/api/coupons/route.js +1 -1
- package/dist/features/seller/api/products/route.js +1 -1
- package/dist/features/seller/api/store/route.js +1 -1
- package/dist/features/seller/components/SellerBidsView.js +1 -1
- package/dist/features/seller/components/SellerCouponsView.js +1 -1
- package/dist/features/seller/components/SellerListingTypeView.d.ts +1 -1
- package/dist/features/seller/components/SellerListingTypeView.js +29 -1
- package/dist/features/seller/components/SellerOrdersView.js +1 -1
- package/dist/features/seller/components/SellerPayoutSettingsView.js +35 -15
- package/dist/features/seller/components/SellerPayoutsView.js +1 -1
- package/dist/features/seller/components/SellerProductShell.d.ts +1 -1
- package/dist/features/seller/components/SellerProductShell.js +2 -2
- package/dist/features/seller/components/SellerProductsView.js +1 -1
- package/dist/features/seller/components/SellerShippingView.js +0 -1
- package/dist/features/seller/components/SellerSidebar.js +1 -1
- package/dist/features/seller/components/SellerSparesView.d.ts +17 -0
- package/dist/features/seller/components/SellerSparesView.js +6 -0
- package/dist/features/seller/components/SellerStorefrontView.js +0 -1
- package/dist/features/seller/components/index.d.ts +2 -4
- package/dist/features/seller/components/index.js +1 -2
- package/dist/features/seller/repository/offer.repository.d.ts +15 -3
- package/dist/features/seller/repository/offer.repository.js +43 -7
- package/dist/features/seller/schemas/firestore.d.ts +14 -3
- package/dist/features/seller/schemas/index.d.ts +4 -4
- package/dist/features/seller/schemas/order-forms.d.ts +39 -0
- package/dist/features/seller/schemas/order-forms.js +37 -0
- package/dist/features/shell/CommandPalette.js +1 -1
- package/dist/features/shell/FormShell.js +6 -2
- package/dist/features/shell/QuickFormDrawer.js +15 -1
- package/dist/features/shipments/components/AdminShipmentEditorView.js +0 -1
- package/dist/features/shipments/components/AdminShipmentsView.js +1 -1
- package/dist/features/sticker-trace/components/StickerCommitPanel.d.ts +30 -0
- package/dist/features/sticker-trace/components/StickerCommitPanel.js +93 -0
- package/dist/features/sticker-trace/components/StickerPrintPanel.d.ts +33 -0
- package/dist/features/sticker-trace/components/StickerPrintPanel.js +104 -0
- package/dist/features/sticker-trace/components/StickerRetryPanel.d.ts +20 -0
- package/dist/features/sticker-trace/components/StickerRetryPanel.js +128 -0
- package/dist/features/sticker-trace/components/StickerRunHistoryPanel.d.ts +45 -0
- package/dist/features/sticker-trace/components/StickerRunHistoryPanel.js +84 -0
- package/dist/features/sticker-trace/components/StickerTraceStudio.d.ts +27 -0
- package/dist/features/sticker-trace/components/StickerTraceStudio.js +171 -0
- package/dist/features/sticker-trace/constants/help-content.d.ts +23 -0
- package/dist/features/sticker-trace/constants/help-content.js +172 -0
- package/dist/features/sticker-trace/hooks/useLiveTrace.d.ts +27 -0
- package/dist/features/sticker-trace/hooks/useLiveTrace.js +160 -0
- package/dist/features/sticker-trace/hooks/useStickerTraceProgress.d.ts +22 -0
- package/dist/features/sticker-trace/hooks/useStickerTraceProgress.js +106 -0
- package/dist/features/sticker-trace/repository/sticker-sheets.repository.d.ts +113 -0
- package/dist/features/sticker-trace/repository/sticker-sheets.repository.js +146 -0
- package/dist/features/sticker-trace/repository/sticker-trace-runs.repository.d.ts +132 -0
- package/dist/features/sticker-trace/repository/sticker-trace-runs.repository.js +174 -0
- package/dist/features/sticker-trace/schemas/firestore.d.ts +267 -0
- package/dist/features/sticker-trace/schemas/firestore.js +79 -0
- package/dist/features/sticker-trace/server.d.ts +8 -0
- package/dist/features/sticker-trace/server.js +51 -0
- package/dist/features/stores/actions/store-query-actions.d.ts +2 -2
- package/dist/features/stores/actions/store-query-actions.js +7 -2
- package/dist/features/stores/api/[storeSlug]/auctions/route.js +3 -3
- package/dist/features/stores/api/[storeSlug]/products/route.js +3 -3
- package/dist/features/stores/api/[storeSlug]/reviews/route.js +1 -1
- package/dist/features/stores/api/[storeSlug]/route.js +1 -1
- package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -1
- package/dist/features/stores/components/StoreDetailLayoutView.js +7 -82
- package/dist/features/stores/components/StoreHeader.js +1 -2
- package/dist/features/stores/components/StoreNavTabs.js +17 -2
- package/dist/features/stores/components/StoreSparesPageView.d.ts +27 -0
- package/dist/features/stores/components/StoreSparesPageView.js +48 -0
- package/dist/features/stores/manifest.js +8 -4
- package/dist/features/stores/schemas/firestore.d.ts +19 -0
- package/dist/features/support/repository/support.repository.d.ts +14 -3
- package/dist/features/support/repository/support.repository.js +93 -13
- package/dist/features/support/schemas/firestore.d.ts +16 -5
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +61 -19
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +19 -3
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +96 -0
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +4 -0
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +478 -0
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +54 -32
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +36 -10
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +209 -0
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +3 -2
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +73 -0
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +340 -0
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +90 -0
- package/dist/features/tester/seed-data/authored/index.js +24 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +1 -0
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +57 -0
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +19 -17
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +10 -5
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +77 -0
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +58 -0
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +284 -0
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +558 -34
- package/dist/index.d.ts +27 -80
- package/dist/index.js +62 -115
- package/dist/next/api/routeHandler.js +9 -0
- package/dist/next/routing/require-record.d.ts +13 -0
- package/dist/next/routing/require-record.js +62 -0
- package/dist/next/routing/route-map.d.ts +46 -5
- package/dist/next/routing/route-map.js +70 -3
- package/dist/providers/db-firebase/base.d.ts +4 -2
- package/dist/providers/db-firebase/base.js +21 -5
- package/dist/providers/db-firebase/base.repository.d.ts +33 -9
- package/dist/providers/db-firebase/base.repository.js +55 -0
- package/dist/providers/db-firebase/rtdb-paths.d.ts +12 -0
- package/dist/providers/db-firebase/rtdb-paths.js +12 -0
- package/dist/react/ErrorBoundary.js +6 -1
- package/dist/react/hooks/realtime-event-constants.d.ts +1 -0
- package/dist/react/hooks/realtime-event-constants.js +8 -0
- package/dist/react/hooks/useEntityDelete.js +5 -1
- package/dist/react/hooks/useMessage.js +5 -1
- package/dist/repositories/index.d.ts +2 -2
- package/dist/repositories/index.js +6 -1
- package/dist/schemas/registry.d.ts +28 -26
- package/dist/schemas/registry.js +31 -14
- package/dist/schemas/webhooks/google-oauth.d.ts +2 -2
- package/dist/security/blind-index-tokens.d.ts +54 -0
- package/dist/security/blind-index-tokens.js +152 -0
- package/dist/security/encrypted.d.ts +117 -0
- package/dist/security/encrypted.js +100 -0
- package/dist/security/index.d.ts +6 -3
- package/dist/security/index.js +17 -3
- package/dist/security/pii-accessors.d.ts +71 -0
- package/dist/security/pii-accessors.js +150 -0
- package/dist/security/pii-encrypt.d.ts +0 -8
- package/dist/security/pii-encrypt.js +22 -15
- package/dist/security/pii-mask.d.ts +18 -0
- package/dist/security/pii-mask.js +27 -0
- package/dist/security/settings-encryption.d.ts +35 -0
- package/dist/security/settings-encryption.js +91 -0
- package/dist/seed/_helpers/brand-rows.js +38 -14
- package/dist/seed/_helpers/category-forest.js +73 -7
- package/dist/seed/_helpers/category-images-generated.d.ts +25 -6
- package/dist/seed/_helpers/category-images-generated.js +81 -6
- package/dist/seed/_helpers/category-models.d.ts +1 -1
- package/dist/seed/_helpers/category-models.js +7 -1
- package/dist/seed/_helpers/category-parts-glossary-map.js +8 -0
- package/dist/seed/_helpers/category-parts.d.ts +1 -1
- package/dist/seed/_helpers/category-parts.js +50 -2
- package/dist/seed/_helpers/character-features.d.ts +1 -1
- package/dist/seed/_helpers/character-features.js +2 -1
- package/dist/seed/_helpers/franchise-rows.js +10 -2
- package/dist/seed/_helpers/media.d.ts +47 -0
- package/dist/seed/_helpers/media.js +34 -0
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +6 -6
- package/dist/seed/_helpers/search-txt-wrappers.js +22 -0
- package/dist/seed/addresses-seed-data.d.ts +2 -2
- package/dist/seed/authenticity-knowledge-seed-data.d.ts +78 -0
- package/dist/seed/authenticity-knowledge-seed-data.js +10729 -0
- package/dist/seed/bids-seed-data.d.ts +2 -2
- package/dist/seed/bids-seed-data.js +23 -2
- package/dist/seed/categories-seed-data.js +124 -20
- package/dist/seed/events-seed-data.d.ts +2 -2
- package/dist/seed/events-seed-data.js +5 -0
- package/dist/seed/faq-seed-data.js +175 -5
- package/dist/seed/grouped-listings-seed-data.js +16 -0
- package/dist/seed/homepage-sections-seed-data.js +131 -26
- package/dist/seed/index.d.ts +3 -3
- package/dist/seed/index.js +3 -2
- package/dist/seed/lottery-entries-seed-data.d.ts +2 -2
- package/dist/seed/manifest.js +3 -0
- package/dist/seed/media-assets-seed-data.d.ts +1 -1
- package/dist/seed/media-assets-seed-data.js +746 -196
- package/dist/seed/model-composition-seed-data.js +122 -6
- package/dist/seed/offers-seed-data.d.ts +2 -2
- package/dist/seed/offers-seed-data.js +1 -1
- package/dist/seed/orders-seed-data.d.ts +2 -2
- package/dist/seed/part-glossary-seed-data.d.ts +1 -1
- package/dist/seed/part-glossary-seed-data.js +37219 -463
- package/dist/seed/payouts-seed-data.d.ts +2 -2
- package/dist/seed/payouts-seed-data.js +1 -1
- package/dist/seed/products-art-seed-data.js +7 -18
- package/dist/seed/products-auctions-seed-data.js +56 -47
- package/dist/seed/products-beyblade-x-seed-data.d.ts +2 -0
- package/dist/seed/products-beyblade-x-seed-data.js +441 -0
- package/dist/seed/products-catalogue-seed-data.d.ts +5 -5
- package/dist/seed/products-catalogue-seed-data.js +1500 -1240
- package/dist/seed/products-classifieds-seed-data.js +9 -27
- package/dist/seed/products-digital-codes-seed-data.js +9 -18
- package/dist/seed/products-live-items-seed-data.js +5 -13
- package/dist/seed/products-preorders-seed-data.js +67 -33
- package/dist/seed/products-prize-draws-seed-data.js +8 -17
- package/dist/seed/products-spares-seed-data.d.ts +2 -0
- package/dist/seed/products-spares-seed-data.js +368 -0
- package/dist/seed/products-standard-seed-data.js +39 -126
- package/dist/seed/products-stickers-seed-data.js +59 -15
- package/dist/seed/reviews-seed-data.d.ts +1 -2
- package/dist/seed/seed-purpose.js +7 -0
- package/dist/seed/sessions-seed-data.d.ts +2 -2
- package/dist/seed/sessions-seed-data.js +5 -0
- package/dist/seed/site-settings-seed-data.js +9 -1
- package/dist/seed/support-tickets-seed-data.d.ts +2 -2
- package/dist/seed/support-tickets-seed-data.js +1 -1
- package/dist/seed/users-seed-data.d.ts +2 -2
- package/dist/seed/users-seed-data.js +1 -1
- package/dist/seo/json-ld.d.ts +25 -0
- package/dist/seo/json-ld.js +33 -1
- package/dist/server-entry.d.ts +3 -1
- package/dist/server-entry.js +2 -2
- package/dist/server.d.ts +27 -12
- package/dist/server.js +86 -28
- package/dist/styles.css +438 -1
- package/dist/tailwind-input.css +31 -17
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/Accordion.js +1 -1
- package/dist/ui/components/Breadcrumb.js +1 -1
- package/dist/ui/components/Button.js +7 -1
- package/dist/ui/components/DetailPageGallery.js +0 -2
- package/dist/ui/components/DetailPageHero.js +0 -1
- package/dist/ui/components/DetailPageTabs.js +1 -1
- package/dist/ui/components/Divider.js +3 -3
- package/dist/ui/components/FilterChipGroup.d.ts +11 -0
- package/dist/ui/components/FilterChipGroup.js +1 -1
- package/dist/ui/components/GatedPrice.js +5 -1
- package/dist/ui/components/HorizontalScroller.js +1 -1
- package/dist/ui/components/ImageGallery.js +6 -1
- package/dist/ui/components/ListingLayout.js +17 -11
- package/dist/ui/components/MediaTabs.style.css +81 -0
- package/dist/ui/components/OverflowRow.d.ts +92 -0
- package/dist/ui/components/OverflowRow.js +203 -0
- package/dist/ui/components/OverflowRow.style.css +235 -0
- package/dist/ui/components/Pagination.js +1 -1
- package/dist/ui/components/PendingValue.d.ts +45 -0
- package/dist/ui/components/PendingValue.js +7 -0
- package/dist/ui/components/Radio.style.css +119 -0
- package/dist/ui/components/RatingDisplay.js +2 -2
- package/dist/ui/components/RecordDetailModal.js +14 -1
- package/dist/ui/components/RowActionMenu.js +5 -1
- package/dist/ui/components/SettingsSection.js +0 -2
- package/dist/ui/components/SideDrawer.js +5 -1
- package/dist/ui/components/SideModal.js +9 -1
- package/dist/ui/components/SiteLogo.js +3 -0
- package/dist/ui/components/SiteMark.js +3 -0
- package/dist/ui/components/SortDropdown.js +1 -1
- package/dist/ui/components/SpecTable.d.ts +58 -0
- package/dist/ui/components/SpecTable.js +8 -0
- package/dist/ui/components/StarRating.js +1 -3
- package/dist/ui/components/SummaryCard.js +1 -1
- package/dist/ui/components/TabBarShell.d.ts +12 -1
- package/dist/ui/components/TabBarShell.js +3 -2
- package/dist/ui/components/Tabs.js +36 -24
- package/dist/ui/components/Toast.d.ts +3 -24
- package/dist/ui/components/Toast.js +2 -19
- package/dist/ui/components/TopBannerPortal.d.ts +15 -0
- package/dist/ui/components/TopBannerPortal.js +19 -0
- package/dist/ui/components/UnsavedChangesModal.js +5 -1
- package/dist/ui/components/index.style.css +2 -0
- package/dist/ui/components/row-collapse.d.ts +15 -0
- package/dist/ui/components/row-collapse.js +127 -0
- package/dist/ui/components/toast-context.d.ts +63 -0
- package/dist/ui/components/toast-context.js +48 -0
- package/dist/ui/components/top-banner-slot.d.ts +37 -0
- package/dist/ui/components/top-banner-slot.js +45 -0
- package/dist/ui/icons/icon-registry.d.ts +7 -0
- package/dist/ui/icons/icon-registry.js +25 -1
- package/dist/ui/index.d.ts +6 -0
- package/dist/ui/index.js +3 -0
- package/dist/utils/array.helper.d.ts +2 -2
- package/dist/utils/array.helper.js +5 -5
- package/dist/utils/id-generators.d.ts +6 -0
- package/dist/utils/id-generators.js +10 -0
- package/dist/utils/media-url.js +0 -2
- package/dist/utils/search-txt-builders.d.ts +28 -4
- package/dist/utils/search-txt-builders.js +41 -1
- package/dist/utils/search-txt-query.d.ts +12 -0
- package/dist/utils/search-txt-query.js +12 -0
- package/dist/validation/schemas.d.ts +8 -8
- package/package.json +6 -2
- package/scripts/dedupe-peer-deps.mjs +18 -0
- package/scripts/seed-cli.mjs +138 -26
- package/scripts/verify-css-build.mjs +118 -37
- package/dist/_internal/server/features/search/actions.d.ts +0 -7
- package/dist/_internal/server/features/search/actions.js +0 -21
- package/dist/_internal/server/features/search/data.d.ts +0 -15
- package/dist/_internal/server/features/search/data.js +0 -18
- package/dist/_internal/server/features/search/index.d.ts +0 -3
- package/dist/_internal/server/features/search/index.js +0 -2
- package/dist/features/account/components/UserAddressesView.d.ts +0 -13
- package/dist/features/account/components/UserAddressesView.js +0 -5
- package/dist/features/account/components/UserNotificationsView.d.ts +0 -15
- package/dist/features/account/components/UserNotificationsView.js +0 -12
- package/dist/features/account/components/UserSettingsView.d.ts +0 -16
- package/dist/features/account/components/UserSettingsView.js +0 -13
- package/dist/features/account/components/UserSupportView.d.ts +0 -3
- package/dist/features/account/components/UserSupportView.js +0 -166
- package/dist/features/admin/components/DemoSeedView.d.ts +0 -11
- package/dist/features/admin/components/DemoSeedView.js +0 -5
- package/dist/features/auth/components/AuthStatusPanel.d.ts +0 -10
- package/dist/features/auth/components/AuthStatusPanel.js +0 -22
- package/dist/features/categories/components/CategoryProductsView.d.ts +0 -45
- package/dist/features/categories/components/CategoryProductsView.js +0 -21
- package/dist/features/homepage/api/[id]/route.d.ts +0 -23
- package/dist/features/homepage/api/[id]/route.js +0 -103
- package/dist/features/homepage/api/route.d.ts +0 -14
- package/dist/features/homepage/api/route.js +0 -140
- package/dist/features/homepage/api/sections/[id]/route.d.ts +0 -26
- package/dist/features/homepage/api/sections/[id]/route.js +0 -95
- package/dist/features/homepage/api/sections/route.d.ts +0 -13
- package/dist/features/homepage/api/sections/route.js +0 -82
- package/dist/features/homepage/components/AdvertisementBanner.d.ts +0 -14
- package/dist/features/homepage/components/AdvertisementBanner.js +0 -35
- package/dist/features/homepage/components/BeforeAfterCard.d.ts +0 -9
- package/dist/features/homepage/components/BeforeAfterCard.js +0 -73
- package/dist/features/homepage/components/FeaturedResultsSection.d.ts +0 -17
- package/dist/features/homepage/components/FeaturedResultsSection.js +0 -17
- package/dist/features/homepage/components/HeroBanner.d.ts +0 -7
- package/dist/features/homepage/components/HeroBanner.js +0 -43
- package/dist/features/homepage/components/HeroSection.d.ts +0 -7
- package/dist/features/homepage/components/HeroSection.js +0 -6
- package/dist/features/homepage/components/HomepageSkeleton.d.ts +0 -2
- package/dist/features/homepage/components/HomepageSkeleton.js +0 -21
- package/dist/features/homepage/components/HomepageView.d.ts +0 -25
- package/dist/features/homepage/components/HomepageView.js +0 -5
- package/dist/features/homepage/components/HowItWorksInfoView.d.ts +0 -36
- package/dist/features/homepage/components/HowItWorksInfoView.js +0 -10
- package/dist/features/homepage/components/NewsletterBanner.d.ts +0 -23
- package/dist/features/homepage/components/NewsletterBanner.js +0 -37
- package/dist/features/homepage/components/SiteFeaturesSection.d.ts +0 -14
- package/dist/features/homepage/components/SiteFeaturesSection.js +0 -11
- package/dist/features/homepage/components/TrustBadges.d.ts +0 -6
- package/dist/features/homepage/components/TrustBadges.js +0 -46
- package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +0 -12
- package/dist/features/homepage/components/TrustIndicatorsSection.js +0 -11
- package/dist/features/homepage/hooks/useHomepage.d.ts +0 -11
- package/dist/features/homepage/hooks/useHomepage.js +0 -17
- package/dist/features/homepage/hooks/useHomepageSections.d.ts +0 -2
- package/dist/features/homepage/hooks/useHomepageSections.js +0 -10
- package/dist/features/homepage/repository/homepage.repository.d.ts +0 -11
- package/dist/features/homepage/repository/homepage.repository.js +0 -25
- package/dist/features/layout/BottomActions.d.ts +0 -1
- package/dist/features/layout/BottomActions.js +0 -311
- package/dist/features/products/components/ProductsView.d.ts +0 -6
- package/dist/features/products/components/ProductsView.js +0 -5
- package/dist/features/search/actions/index.d.ts +0 -1
- package/dist/features/search/actions/index.js +0 -1
- package/dist/features/search/actions/search-actions.d.ts +0 -18
- package/dist/features/search/actions/search-actions.js +0 -43
- package/dist/features/search/api/route.d.ts +0 -22
- package/dist/features/search/api/route.js +0 -128
- package/dist/features/search/columns/index.d.ts +0 -17
- package/dist/features/search/columns/index.js +0 -49
- package/dist/features/search/components/SearchFiltersRow.d.ts +0 -22
- package/dist/features/search/components/SearchFiltersRow.js +0 -21
- package/dist/features/search/components/SearchResultsSection.d.ts +0 -53
- package/dist/features/search/components/SearchResultsSection.js +0 -35
- package/dist/features/search/components/SearchView.d.ts +0 -27
- package/dist/features/search/components/SearchView.js +0 -8
- package/dist/features/search/hooks/useSearch.d.ts +0 -21
- package/dist/features/search/hooks/useSearch.js +0 -33
- package/dist/features/search/repository/search.repository.d.ts +0 -14
- package/dist/features/search/repository/search.repository.js +0 -59
- package/dist/features/search/schemas/index.d.ts +0 -70
- package/dist/features/search/schemas/index.js +0 -36
- package/dist/features/search/types/index.d.ts +0 -48
- package/dist/features/seller/components/SellerStoreView.d.ts +0 -8
- package/dist/features/seller/components/SellerStoreView.js +0 -8
- package/dist/features/stores/components/StoreScopedSearch.d.ts +0 -17
- package/dist/features/stores/components/StoreScopedSearch.js +0 -27
- package/dist/seed/defaults/homepage-sections.d.ts +0 -2
- package/dist/seed/defaults/homepage-sections.js +0 -60
- package/dist/seed/factories/homepage-section.factory.d.ts +0 -10
- package/dist/seed/factories/homepage-section.factory.js +0 -13
- /package/dist/{features/search/types/index.js → _internal/shared/listing-types/spares/og.d.ts} +0 -0
|
@@ -46,6 +46,8 @@ export { AdminArtView } from "./AdminArtView";
|
|
|
46
46
|
export type { AdminArtViewProps } from "./AdminArtView";
|
|
47
47
|
export { AdminStickersView } from "./AdminStickersView";
|
|
48
48
|
export type { AdminStickersViewProps } from "./AdminStickersView";
|
|
49
|
+
export { AdminSparesView } from "./AdminSparesView";
|
|
50
|
+
export type { AdminSparesViewProps } from "./AdminSparesView";
|
|
49
51
|
export { AdminGroupedListingsView } from "./AdminGroupedListingsView";
|
|
50
52
|
export type { AdminGroupedListingsViewProps } from "./AdminGroupedListingsView";
|
|
51
53
|
export { AdminCarouselGroupEditorView } from "./AdminCarouselGroupEditorView";
|
|
@@ -26,6 +26,7 @@ export { AdminLiveView } from "./AdminLiveView.js";
|
|
|
26
26
|
// EMI/art-stickers session — admin listing views for art / stickers.
|
|
27
27
|
export { AdminArtView } from "./AdminArtView.js";
|
|
28
28
|
export { AdminStickersView } from "./AdminStickersView.js";
|
|
29
|
+
export { AdminSparesView } from "./AdminSparesView.js";
|
|
29
30
|
export { AdminGroupedListingsView } from "./AdminGroupedListingsView.js";
|
|
30
31
|
export { AdminCarouselGroupEditorView } from "./AdminCarouselGroupEditorView.js";
|
|
31
32
|
// S-SBUNI-4 2026-05-13 — admin bundle CRUD views.
|
|
@@ -47,6 +47,13 @@ const SECTION_TYPE_PRESENCE = {
|
|
|
47
47
|
"prize-draws": true,
|
|
48
48
|
"event-raffles": true,
|
|
49
49
|
"collection-cards": true,
|
|
50
|
+
// Promoted out of the orphan-component set 2026-10-19. Offered here because
|
|
51
|
+
// all three are deliberately UNSEEDED — the admin builder is the only way
|
|
52
|
+
// one gets created, which is the point: the seed does not invent
|
|
53
|
+
// placeholder "How It Works" steps or testimonials nobody said.
|
|
54
|
+
"how-it-works": true,
|
|
55
|
+
testimonials: true,
|
|
56
|
+
"promo-grid": true,
|
|
50
57
|
};
|
|
51
58
|
export const SECTION_TYPE_OPTIONS = Object.keys(SECTION_TYPE_PRESENCE);
|
|
52
59
|
export const DEFAULT_PRODUCTS_BUILDER = {
|
|
@@ -81,6 +81,9 @@ export declare const ADMIN_PRODUCT_LISTING_TYPE_TABS: readonly [{
|
|
|
81
81
|
}, {
|
|
82
82
|
readonly id: "stickers";
|
|
83
83
|
readonly label: "Stickers";
|
|
84
|
+
}, {
|
|
85
|
+
readonly id: "spares";
|
|
86
|
+
readonly label: "Spares";
|
|
84
87
|
}];
|
|
85
88
|
/** Admin > Blog — post status filter chip set. */
|
|
86
89
|
export declare const ADMIN_BLOG_STATUS_TABS: readonly [{
|
|
@@ -52,6 +52,7 @@ export const ADMIN_PRODUCT_LISTING_TYPE_TABS = [
|
|
|
52
52
|
{ id: "live", label: "Live Items" },
|
|
53
53
|
{ id: "art", label: "Art" },
|
|
54
54
|
{ id: "stickers", label: "Stickers" },
|
|
55
|
+
{ id: "spares", label: "Spares" },
|
|
55
56
|
];
|
|
56
57
|
/** Admin > Blog — post status filter chip set. */
|
|
57
58
|
export const ADMIN_BLOG_STATUS_TABS = [
|
|
@@ -69,7 +69,7 @@ export declare function useAdminListing<TResponse, TRow extends {
|
|
|
69
69
|
refetch: () => void;
|
|
70
70
|
currentPage: number;
|
|
71
71
|
totalPages: number;
|
|
72
|
-
selection: import("../../../
|
|
72
|
+
selection: import("../../../react").UseBulkSelectionReturn;
|
|
73
73
|
defaultSort: string;
|
|
74
74
|
pageSize: number;
|
|
75
75
|
setPageSize: (next: number) => void;
|
|
@@ -6,7 +6,14 @@ import { serverLogger } from "../../../monitoring/server-logger.js";
|
|
|
6
6
|
* Manages site-wide configuration settings (singleton document)
|
|
7
7
|
*/
|
|
8
8
|
import { BaseRepository, prepareForFirestore, } from "../../../providers/db-firebase/index.js";
|
|
9
|
-
|
|
9
|
+
/*
|
|
10
|
+
* The DEFINING module, not the `core` barrel — Root Cause #18. `core/index.ts`
|
|
11
|
+
* re-exports `unitOfWork`, which imports this very repository, so reaching
|
|
12
|
+
* `cacheManager` through the barrel closed a six-module import cycle
|
|
13
|
+
* (`audit-import-cycles` component 2). `CacheManager.ts` imports nothing from
|
|
14
|
+
* here, so the deep path has one direction only.
|
|
15
|
+
*/
|
|
16
|
+
import { cacheManager } from "../../../core/CacheManager.js";
|
|
10
17
|
import { SITE_SETTINGS_COLLECTION, DEFAULT_SITE_SETTINGS_DATA, } from "../schemas/index.js";
|
|
11
18
|
import { DatabaseError } from "../../../errors/index.js";
|
|
12
19
|
import { decryptSecret, encryptSecret, maskSecret } from "../../../security/index.js";
|
|
@@ -73,13 +80,11 @@ export class SiteSettingsRepository extends BaseRepository {
|
|
|
73
80
|
const encrypted = { ...existing };
|
|
74
81
|
for (const [key, value] of Object.entries(updates)) {
|
|
75
82
|
if (typeof value === "string" && value.trim()) {
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
77
83
|
encrypted[key] = encryptSecret(value.trim());
|
|
78
84
|
}
|
|
79
85
|
else if (value !== undefined && typeof value !== "string") {
|
|
80
86
|
// Non-string credential fields (e.g. whatsappTemplates: Record<string,string>)
|
|
81
87
|
// are stored as-is — they are not secret values to encrypt.
|
|
82
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
88
|
encrypted[key] = value;
|
|
84
89
|
}
|
|
85
90
|
// Empty / undefined → keep whatever was already stored
|
|
@@ -14,7 +14,7 @@ export type NotificationType = (typeof NOTIFICATION_TYPE_VALUES)[number];
|
|
|
14
14
|
* Runtime array for the same reason as the type union above — and
|
|
15
15
|
* `catalogueItem` was being sent with an `as never` cast rather than added.
|
|
16
16
|
*/
|
|
17
|
-
export declare const NOTIFICATION_RELATED_TYPE_VALUES: readonly ["order", "product", "bid", "review", "blog", "user", "offer", "support_ticket", "scammer", "catalogueItem", "payout", "store", "conversation"];
|
|
17
|
+
export declare const NOTIFICATION_RELATED_TYPE_VALUES: readonly ["order", "product", "bid", "review", "blog", "user", "offer", "support_ticket", "scammer", "catalogueItem", "payout", "store", "conversation", "event"];
|
|
18
18
|
export type NotificationRelatedType = (typeof NOTIFICATION_RELATED_TYPE_VALUES)[number];
|
|
19
19
|
import type { BaseDocument } from "../../../_internal/shared/types/base-document";
|
|
20
20
|
export type NotificationPriority = "low" | "normal" | "high";
|
|
@@ -256,7 +256,6 @@ export interface SiteSettingsIntegrations {
|
|
|
256
256
|
export interface SiteSettingsPlatformLimits {
|
|
257
257
|
maxProductsPerStore?: number;
|
|
258
258
|
maxCustomFieldsPerProduct?: number;
|
|
259
|
-
maxCustomSectionsPerProduct?: number;
|
|
260
259
|
orderCancellationWindowHours?: number;
|
|
261
260
|
}
|
|
262
261
|
/** Embedded in siteSettings.adSettings — a type alias, not a collection root. */
|
|
@@ -344,10 +343,29 @@ export interface SiteSettingsDocument extends BaseDocument {
|
|
|
344
343
|
email: string;
|
|
345
344
|
phone: string;
|
|
346
345
|
address: string;
|
|
347
|
-
/**
|
|
346
|
+
/**
|
|
347
|
+
* Business UPI Virtual Payment Address (market-specific).
|
|
348
|
+
*
|
|
349
|
+
* 🛑 The site-wide fallback `resolveDisplayedUpiId` uses when a seller has
|
|
350
|
+
* no UPI configured or the store is admin-owned — i.e. what a buyer paying
|
|
351
|
+
* manually is told to pay INTO. It was being silently erased on every
|
|
352
|
+
* settings save until 2026-10-19: `buildFullPayload()` writes the whole
|
|
353
|
+
* `contact` group and simply did not carry this key, so saving any
|
|
354
|
+
* unrelated tab blanked it and manual payments lost their destination.
|
|
355
|
+
* Any key added here must also be added to that function's state and
|
|
356
|
+
* payload (Root Cause #76).
|
|
357
|
+
*/
|
|
348
358
|
upiVpa?: string;
|
|
349
359
|
/** WhatsApp number with country code (market-specific) */
|
|
350
360
|
whatsappNumber?: string;
|
|
361
|
+
/**
|
|
362
|
+
* Human-readable support hours, e.g. "Mon-Sat, 10:00-19:00 IST".
|
|
363
|
+
*
|
|
364
|
+
* Written by the admin form since long before it was declared here, which
|
|
365
|
+
* made it invisible to every type-driven review — the same gap that let
|
|
366
|
+
* `adSettings` and `integrations` ship publicly (Root Cause #70).
|
|
367
|
+
*/
|
|
368
|
+
supportHours?: string;
|
|
351
369
|
};
|
|
352
370
|
payment: {
|
|
353
371
|
phonepeEnabled: boolean;
|
|
@@ -484,6 +502,8 @@ export interface SiteSettingsDocument extends BaseDocument {
|
|
|
484
502
|
twitter?: string;
|
|
485
503
|
instagram?: string;
|
|
486
504
|
linkedin?: string;
|
|
505
|
+
youtube?: string;
|
|
506
|
+
pinterest?: string;
|
|
487
507
|
};
|
|
488
508
|
/**
|
|
489
509
|
* The outbound-messaging kill switch and spend ceiling.
|
|
@@ -525,6 +545,46 @@ export interface SiteSettingsDocument extends BaseDocument {
|
|
|
525
545
|
chat?: {
|
|
526
546
|
enabled: boolean;
|
|
527
547
|
};
|
|
548
|
+
/**
|
|
549
|
+
* The public search index — the browser-side artifact, not the per-listing
|
|
550
|
+
* search boxes, which this flag cannot reach.
|
|
551
|
+
*
|
|
552
|
+
* ## 🛑 Why a group of its own and not `featureFlags`
|
|
553
|
+
*
|
|
554
|
+
* The plan for this feature said "a kill switch in `siteSettings.featureFlags`".
|
|
555
|
+
* That group was DELETED on 2026-08-29 because 11 of its 14 keys had zero
|
|
556
|
+
* readers, and the two survivors moved into `payment` as real settings. Its
|
|
557
|
+
* deletion note draws the line this honours: *"A flag is a temporary switch
|
|
558
|
+
* around unfinished work."* This is exactly that — so it is a flag, and it
|
|
559
|
+
* earns the one thing the deleted keys could not show: a named reader
|
|
560
|
+
* (`useSearchIndex`).
|
|
561
|
+
*
|
|
562
|
+
* 🛑 It is NOT in `payment` or any other existing group, and that is
|
|
563
|
+
* defensive rather than tidy. `AdminSiteSettingsView.buildFullPayload`
|
|
564
|
+
* writes `payment: { phonepeEnabled, upiManualEnabled, codEnabled,
|
|
565
|
+
* otpCheckoutThreshold }` — the WHOLE group, from four pieces of form
|
|
566
|
+
* state — so any fifth key in there is silently erased the next time an
|
|
567
|
+
* admin saves anything on that page (Root Cause #76). A kill switch that a
|
|
568
|
+
* routine save turns back on is worse than none, because it fails in the
|
|
569
|
+
* direction of the thing it exists to stop.
|
|
570
|
+
*
|
|
571
|
+
* ## 🛑 Default ON — the opposite polarity to `chat.enabled`
|
|
572
|
+
*
|
|
573
|
+
* `chat` is an opt-in feature and its readers test `=== true`. This is a
|
|
574
|
+
* kill switch on the primary path, so its reader tests `!== false`: an
|
|
575
|
+
* absent field, an unseeded document and a failed settings fetch must all
|
|
576
|
+
* mean "search works". The only state that disables it is somebody
|
|
577
|
+
* deliberately writing `false`.
|
|
578
|
+
*
|
|
579
|
+
* Recovery exists because the index can be wrong in a way nothing errors
|
|
580
|
+
* on — a bad patch, a schema the client does not understand — and the
|
|
581
|
+
* alternative route back is a Vercel deploy. Flipping this sends every
|
|
582
|
+
* client to the server `SEARCH_SOURCES` path, which is why that path is
|
|
583
|
+
* kept rather than deleted.
|
|
584
|
+
*/
|
|
585
|
+
search?: {
|
|
586
|
+
indexEnabled?: boolean;
|
|
587
|
+
};
|
|
528
588
|
emailSettings: {
|
|
529
589
|
fromName: string;
|
|
530
590
|
fromEmail: string;
|
|
@@ -604,6 +664,10 @@ export interface SiteSettingsDocument extends BaseDocument {
|
|
|
604
664
|
shipping: string;
|
|
605
665
|
ethics: string;
|
|
606
666
|
codeOfConduct: string;
|
|
667
|
+
/** Cancellation policy — a PolicyPageView key since 2026-10-19. */
|
|
668
|
+
cancellation: string;
|
|
669
|
+
/** Grievance officer disclosure — a PolicyPageView key since 2026-10-19. */
|
|
670
|
+
grievance: string;
|
|
607
671
|
};
|
|
608
672
|
shipping: {
|
|
609
673
|
estimatedDays: number;
|
|
@@ -756,6 +820,27 @@ export declare const SITE_SETTINGS_INDEXED_FIELDS: readonly [];
|
|
|
756
820
|
*/
|
|
757
821
|
export declare const DEFAULT_SITE_SETTINGS_THEME: SiteSettingsTheme;
|
|
758
822
|
export declare const DEFAULT_SITE_SETTINGS_DATA: Partial<SiteSettingsDocument>;
|
|
823
|
+
/**
|
|
824
|
+
* 🛑 DEAD, AND IT DISAGREES WITH THE REAL PROJECTION. Do not add to it.
|
|
825
|
+
*
|
|
826
|
+
* Measured 2026-10-19 while adding `search`: this constant has **zero
|
|
827
|
+
* consumers** — it is re-exported from the barrel and read by nothing. The
|
|
828
|
+
* list that actually decides what leaves the server is
|
|
829
|
+
* `PUBLIC_SITE_SETTINGS_FIELDS` in
|
|
830
|
+
* `_internal/server/features/site-settings/adapters.ts`, which is audited by
|
|
831
|
+
* `audit-public-projection-parity`.
|
|
832
|
+
*
|
|
833
|
+
* The two already disagree, in the dangerous direction: this one names
|
|
834
|
+
* `commissions` (the real projection marks it PRIVATE — "internal economics")
|
|
835
|
+
* and `featureFlags`, a settings group DELETED in 2026-08-29. So anyone who
|
|
836
|
+
* reached for it as authoritative would publish platform fee structure and
|
|
837
|
+
* key a feature off a group that no longer exists.
|
|
838
|
+
*
|
|
839
|
+
* Left in place rather than deleted here only because removing a barrel
|
|
840
|
+
* export is a breaking change that needs its own version bump; it belongs
|
|
841
|
+
* with the other search-subsystem deletions. Adding a field to it would make
|
|
842
|
+
* it look maintained, which is the one thing it must not look.
|
|
843
|
+
*/
|
|
759
844
|
export declare const SITE_SETTINGS_PUBLIC_FIELDS: readonly ["siteName", "motto", "logo", "background", "contact.email", "contact.phone", "payment", "commissions", "socialLinks", "seo", "features", "featureFlags", "faq.variables", "announcementBar"];
|
|
760
845
|
export type SiteSettingsUpdateInput = Partial<Omit<SiteSettingsDocument, "id" | "createdAt" | "updatedAt">>;
|
|
761
846
|
export declare const DEFAULT_TRUST_BAR_ITEMS: TrustBarItem[];
|
|
@@ -114,6 +114,17 @@ export const NOTIFICATION_RELATED_TYPE_VALUES = [
|
|
|
114
114
|
"store",
|
|
115
115
|
// D9 — the chat thread the message belongs to.
|
|
116
116
|
"conversation",
|
|
117
|
+
/*
|
|
118
|
+
* The event a raffle win belongs to. Added 2026-10-19 with the raffle-winner
|
|
119
|
+
* notification: `runTriggerEventRaffle` recorded a winner and told nobody,
|
|
120
|
+
* so the only way to learn you had won was to revisit the event page.
|
|
121
|
+
*
|
|
122
|
+
* Declared here rather than sent behind an `as never` — see the note above
|
|
123
|
+
* this array about `catalogueItem`, and the exhaustiveness check in
|
|
124
|
+
* `resolveNotificationActionUrl` that makes the destination a compile-time
|
|
125
|
+
* question.
|
|
126
|
+
*/
|
|
127
|
+
"event",
|
|
117
128
|
];
|
|
118
129
|
export const NOTIFICATIONS_COLLECTION = "notifications";
|
|
119
130
|
export const NOTIFICATIONS_INDEXED_FIELDS = [
|
|
@@ -337,6 +348,27 @@ export const DEFAULT_SITE_SETTINGS_DATA = {
|
|
|
337
348
|
navConfig: {},
|
|
338
349
|
disabledRoutes: [],
|
|
339
350
|
};
|
|
351
|
+
/**
|
|
352
|
+
* 🛑 DEAD, AND IT DISAGREES WITH THE REAL PROJECTION. Do not add to it.
|
|
353
|
+
*
|
|
354
|
+
* Measured 2026-10-19 while adding `search`: this constant has **zero
|
|
355
|
+
* consumers** — it is re-exported from the barrel and read by nothing. The
|
|
356
|
+
* list that actually decides what leaves the server is
|
|
357
|
+
* `PUBLIC_SITE_SETTINGS_FIELDS` in
|
|
358
|
+
* `_internal/server/features/site-settings/adapters.ts`, which is audited by
|
|
359
|
+
* `audit-public-projection-parity`.
|
|
360
|
+
*
|
|
361
|
+
* The two already disagree, in the dangerous direction: this one names
|
|
362
|
+
* `commissions` (the real projection marks it PRIVATE — "internal economics")
|
|
363
|
+
* and `featureFlags`, a settings group DELETED in 2026-08-29. So anyone who
|
|
364
|
+
* reached for it as authoritative would publish platform fee structure and
|
|
365
|
+
* key a feature off a group that no longer exists.
|
|
366
|
+
*
|
|
367
|
+
* Left in place rather than deleted here only because removing a barrel
|
|
368
|
+
* export is a breaking change that needs its own version bump; it belongs
|
|
369
|
+
* with the other search-subsystem deletions. Adding a field to it would make
|
|
370
|
+
* it look maintained, which is the one thing it must not look.
|
|
371
|
+
*/
|
|
340
372
|
export const SITE_SETTINGS_PUBLIC_FIELDS = [
|
|
341
373
|
"siteName",
|
|
342
374
|
"motto",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BidDocument } from "../schemas";
|
|
1
|
+
import type { BidDocument, BidPlain } from "../schemas";
|
|
2
2
|
import type { FirebaseSieveResult } from "../../../providers/db-firebase";
|
|
3
3
|
export interface PlaceBidInput {
|
|
4
4
|
productId: string;
|
|
@@ -6,7 +6,7 @@ export interface PlaceBidInput {
|
|
|
6
6
|
autoMaxBid?: number;
|
|
7
7
|
}
|
|
8
8
|
export interface PlaceBidResult {
|
|
9
|
-
bid:
|
|
9
|
+
bid: BidPlain;
|
|
10
10
|
}
|
|
11
11
|
export declare function placeBid(userId: string, userEmail: string, input: PlaceBidInput): Promise<PlaceBidResult>;
|
|
12
12
|
export interface BuyNowAuctionInput {
|
|
@@ -150,12 +150,18 @@ export async function placeBid(userId, userEmail, input) {
|
|
|
150
150
|
visibleBid = newCap;
|
|
151
151
|
bumpedPreviousVisible = Math.min(prevCap, target);
|
|
152
152
|
}
|
|
153
|
-
const bid = await bidRepository.
|
|
153
|
+
const bid = await bidRepository.createBid({
|
|
154
154
|
productId,
|
|
155
155
|
productTitle: product.title,
|
|
156
156
|
userId,
|
|
157
157
|
userName: profile?.displayName ?? userEmail ?? "Anonymous",
|
|
158
|
-
|
|
158
|
+
/*
|
|
159
|
+
* 🛑 Revealed, not passed through. `profile` comes from a user read, which
|
|
160
|
+
* is ciphertext-by-default now — and `createBid` ENCRYPTS what it is given,
|
|
161
|
+
* so the raw value would be encrypted a SECOND time and become
|
|
162
|
+
* undecryptable. The `userEmail` parameter is already plaintext.
|
|
163
|
+
*/
|
|
164
|
+
userEmail: (profile ? userRepository.revealUser(profile).email : null) ?? userEmail ?? "",
|
|
159
165
|
bidAmount: visibleBid,
|
|
160
166
|
currency: product.currency || getDefaultCurrency(),
|
|
161
167
|
bidDate: new Date(),
|
|
@@ -333,12 +339,18 @@ export async function buyNowAuction(userId, userName, userEmail, input) {
|
|
|
333
339
|
// buyout price by the buyer" means. It starts `active`/`isWinning: false`
|
|
334
340
|
// like any other bid (bidRepository.create forces both) and is promoted to
|
|
335
341
|
// `won` by claimAuctionForCheckout when the order actually lands.
|
|
336
|
-
const bid = await bidRepository.
|
|
342
|
+
const bid = await bidRepository.createBid({
|
|
337
343
|
productId,
|
|
338
344
|
productTitle: product.title,
|
|
339
345
|
userId,
|
|
340
346
|
userName: profile?.displayName ?? userName ?? userEmail ?? "Anonymous",
|
|
341
|
-
|
|
347
|
+
/*
|
|
348
|
+
* 🛑 Revealed, not passed through. `profile` comes from a user read, which
|
|
349
|
+
* is ciphertext-by-default now — and `createBid` ENCRYPTS what it is given,
|
|
350
|
+
* so the raw value would be encrypted a SECOND time and become
|
|
351
|
+
* undecryptable. The `userEmail` parameter is already plaintext.
|
|
352
|
+
*/
|
|
353
|
+
userEmail: (profile ? userRepository.revealUser(profile).email : null) ?? userEmail ?? "",
|
|
342
354
|
bidAmount: buyNowPrice,
|
|
343
355
|
currency,
|
|
344
356
|
bidDate: new Date(),
|
|
@@ -80,6 +80,10 @@ export function AuctionBottomActions(props) {
|
|
|
80
80
|
? `${formatCurrency(currentBid, currency)} · ${bidCount} bid${bidCount !== 1 ? "s" : ""}`
|
|
81
81
|
: `Sign in to see the bid · ${bidCount} bid${bidCount !== 1 ? "s" : ""}`,
|
|
82
82
|
desktop: "after-scroll",
|
|
83
|
+
// The inline bid panel on the detail page. The dock stays shut until
|
|
84
|
+
// a bidder has actually seen it and scrolled past — beside it, the
|
|
85
|
+
// dock would just be a second "Place bid" button.
|
|
86
|
+
ctaAnchorId: "auction-bid-form",
|
|
83
87
|
});
|
|
84
88
|
return (_jsx(Modal, { isOpen: open, onClose: () => setOpen(false), size: "md", title: "Place your bid", children: _jsx(PlaceBidFormClient, { ...props }) }));
|
|
85
89
|
}
|
|
@@ -8,7 +8,7 @@ const __P = {
|
|
|
8
8
|
p4: "p-[var(--appkit-space-4)]",
|
|
9
9
|
p5: "p-[var(--appkit-space-5)]",
|
|
10
10
|
};
|
|
11
|
-
const CLS_BREADCRUMB_LINK = "hover:text-primary-600 transition-colors";
|
|
11
|
+
const CLS_BREADCRUMB_LINK = "hover:text-primary-600 dark:hover:text-primary-400 transition-colors";
|
|
12
12
|
const CLS_LIVE_BADGE = "inline-block rounded-full bg-warning-surface dark:bg-warning-surface px-[var(--appkit-space-2-5)] py-[var(--appkit-space-0-5)] text-warning dark:text-warning";
|
|
13
13
|
import { ROUTES } from "../../../next/routing/route-map.js";
|
|
14
14
|
import { getDefaultCurrency } from "../../../core/baseline-resolver.js";
|
|
@@ -17,10 +17,10 @@ import { normalizeRichTextHtml } from "../../../utils/string.formatter.js";
|
|
|
17
17
|
import { safeDisplayName } from "../../../security/index.js";
|
|
18
18
|
import { getSiteSettingsGlobal } from "../../admin/utils/getSiteSettingsGlobal.js";
|
|
19
19
|
import { isBuyNowAvailable, resolveMinBid, resolveMinBidIncrement, } from "../../../_internal/shared/features/auctions/config.js";
|
|
20
|
-
import { Button, Container, CountdownDisplay, Div, GatedPrice, PricesOnly, Heading, Input, Main, Nav, RichText, Row, Section, Span, Stack, Text, Ul, Li,
|
|
20
|
+
import { Button, Container, CountdownDisplay, Div, GatedPrice, PricesOnly, Heading, Input, Main, Nav, RichText, Row, Section, Span, Stack, Text, Ul, Li, SpecTable, } from "../../../ui/index.js";
|
|
21
21
|
import { AuctionDetailView } from "../../products/components/AuctionDetailView.js";
|
|
22
22
|
import { ProductTabsShell } from "../../products/components/ProductTabsShell.js";
|
|
23
|
-
import {
|
|
23
|
+
import { toCustomSectionTabs } from "../../products/components/CustomSectionTabContent.js";
|
|
24
24
|
import { AuctionBottomActions } from "./AuctionBottomActions.js";
|
|
25
25
|
import { AuctionLiveStatusBadge } from "./AuctionLiveStatusBadge.js";
|
|
26
26
|
import { RelatedProducts } from "../../products/components/RelatedProducts.js";
|
|
@@ -184,9 +184,6 @@ export async function AuctionDetailPageView({ id, initialAuction, onPlaceBid, on
|
|
|
184
184
|
const specs = Array.isArray(p.specifications)
|
|
185
185
|
? p.specifications
|
|
186
186
|
: [];
|
|
187
|
-
const customSections = Array.isArray(p.customSections)
|
|
188
|
-
? p.customSections
|
|
189
|
-
: [];
|
|
190
187
|
const descriptionHtml = toDescriptionHtml(p.description);
|
|
191
188
|
const sublistingCategoryId = typeof p.sublistingCategoryId === "string" ? p.sublistingCategoryId : null;
|
|
192
189
|
const relatedDocs = (await safeRead(() => productRepository.findByCategory(String(p.category ?? "")), {
|
|
@@ -230,11 +227,7 @@ export async function AuctionDetailPageView({ id, initialAuction, onPlaceBid, on
|
|
|
230
227
|
// prompt here would be the same affordance twice.
|
|
231
228
|
_jsx(PricesOnly, { children: _jsxs(Text, { align: "center", size: "xs", color: "muted", children: ["Buy Now available at ", formatCurrency(buyNowPrice, currency)] }) }))] }), tags.length > 0 && (_jsx(Div, { border: "default", className: "border-t", padding: "t-md", children: _jsx(Row, { wrap: true, gap: "xs", children: tags.map((tag) => (_jsx(Span, { size: "xs", rounded: "full", padding: "pill-sm-tall", surface: "subtle", color: "muted", children: tag }, tag))) }) }))] })), renderMobileBidForm: () => !isEnded && onPlaceBid ? (_jsxs(Stack, { className: `lg:hidden ${__P.p4}`, border: "subtle", gap: "3", rounded: "xl", surface: "muted", children: [_jsx(LiveBidPrice, { productId: String(product.id), currentBid: currentBid, bidCount: bidCount, currency: currency, isEnded: isEnded, priceSize: "base", badgeSize: "xs" }), endDate && (_jsxs(Text, { align: "center", size: "xs", color: "muted", children: ["Ends in ", _jsx(CountdownDisplay, { targetDate: endDate, format: "auto", expiredLabel: "Ended" })] })), _jsx(PlaceBidModalButton, { productId: String(product.id), currentBid: currentBid, startingBid: startingBid, tiers: bidIncrementTiers, minBidIncrementOverride: minBidIncrementOverride, currency: currency, isEnded: isEnded, auctionEndDate: endDate, buyNowPrice: buyNowPrice, bidCount: bidCount, tags: tags, onPlaceBid: onPlaceBid, onBuyNow: onBuyNow, triggerClassName: "w-full" })] })) : !isEnded ? (_jsxs(Div, { className: `${__P.p4} lg:hidden`, border: "subtle", rounded: "xl", surface: "muted", children: [_jsxs(Row, { align: "center", gap: "sm", className: "mb-3", children: [_jsx(Span, { size: "base", weight: "bold", className: "text-primary-600 dark:text-primary-400", children: _jsx(GatedPrice, { label: "Sign in to see the current bid", children: formatCurrency(currentBid, currency) }) }), _jsxs(Span, { size: "xs", color: "muted", children: [bidCount, " bids"] })] }), endDate && (_jsxs(Text, { align: "center", className: "mb-3", size: "xs", color: "muted", children: ["Ends in ", _jsx(CountdownDisplay, { targetDate: endDate, format: "auto", expiredLabel: "Ended" })] })), _jsx(Button, { variant: "primary", size: "md", className: "w-full", children: "Place Bid" })] })) : null, renderSublistingSection: sublistingCategoryId
|
|
232
229
|
? () => (_jsx(SublistingCarouselSection, { sublistingCategoryId: sublistingCategoryId, currentListingId: String(product.id) }))
|
|
233
|
-
: undefined, renderTabs: () => (_jsx(ProductTabsShell, { descriptionContent: descriptionHtml ? (_jsx(RichText, { html: descriptionHtml, proseClass: "prose prose-sm sm:prose max-w-none dark:prose-invert", className: "text-[var(--appkit-color-text-muted)]" })) : undefined, specsContent: specs.length > 0 ? (_jsx(
|
|
234
|
-
id: s.id,
|
|
235
|
-
label: s.title,
|
|
236
|
-
content: _jsx(CustomSectionTabContent, { section: s }),
|
|
237
|
-
})) })), renderBidHistory: () => {
|
|
230
|
+
: undefined, renderTabs: () => (_jsx(ProductTabsShell, { descriptionContent: descriptionHtml ? (_jsx(RichText, { html: descriptionHtml, proseClass: "prose prose-sm sm:prose max-w-none dark:prose-invert", className: "text-[var(--appkit-color-text-muted)]" })) : undefined, specsContent: specs.length > 0 ? (_jsx(SpecTable, { rows: specs })) : undefined, customTabs: toCustomSectionTabs(p.customSections) })), renderBidHistory: () => {
|
|
238
231
|
if (!bidsResult)
|
|
239
232
|
return null;
|
|
240
233
|
return (_jsx(CollapsibleBidHistory, { productId: String(product.id), initialData: bidsResult, currency: currency }));
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { BaseRepository, parseSieveDateValue } from "../../../providers/db-firebase";
|
|
7
7
|
import type { DocumentReference, WriteBatch } from "firebase-admin/firestore";
|
|
8
|
+
import type { JsonValue } from "../../../schemas/types";
|
|
8
9
|
import type { SieveModel, FirebaseSieveResult } from "../../../providers/db-firebase";
|
|
9
|
-
import type { BidDocument, BidCreateInput, BidUpdateInput, BidAdminUpdateInput, BidStatus } from "../schemas";
|
|
10
|
+
import type { BidDocument, BidPlain, BidCreateInput, BidUpdateInput, BidAdminUpdateInput, BidStatus } from "../schemas";
|
|
10
11
|
import { type HistoryActor } from "../../../_internal/shared/history/index";
|
|
11
12
|
/** Who/why for a bid write that lands in `statusHistory`. */
|
|
12
13
|
export interface BidWriteContext {
|
|
@@ -37,11 +38,23 @@ export declare class BidRepository extends BaseRepository<BidDocument> {
|
|
|
37
38
|
*/
|
|
38
39
|
protected piiFields: readonly ["userEmail"];
|
|
39
40
|
/** Override mapDoc to auto-decrypt PII on every bid read */
|
|
40
|
-
|
|
41
|
+
/** Plaintext PII. **Opt-in and named** — shows up in review and in a grep. */
|
|
42
|
+
revealBid(doc: BidDocument): BidPlain;
|
|
43
|
+
/** As `revealBid`, for a list read. */
|
|
44
|
+
revealBids(docs: readonly BidDocument[]): BidPlain[];
|
|
45
|
+
/**
|
|
46
|
+
* Masked PII — **the default for any surface that only needs to identify a
|
|
47
|
+
* row to a human.** Decrypts first, then masks: the mask helpers refuse
|
|
48
|
+
* ciphertext by design, so passing a stored field straight in would return
|
|
49
|
+
* "Anonymous" for every row.
|
|
50
|
+
*/
|
|
51
|
+
maskedBid(doc: BidDocument): BidPlain;
|
|
52
|
+
/** As `maskedBid`, for a list read. */
|
|
53
|
+
maskedBids(docs: readonly BidDocument[]): BidPlain[];
|
|
41
54
|
/**
|
|
42
55
|
* Create new bid with auto-generated ID
|
|
43
56
|
*/
|
|
44
|
-
|
|
57
|
+
createBid(input: BidCreateInput): Promise<BidPlain>;
|
|
45
58
|
/**
|
|
46
59
|
* Find bids by product ID
|
|
47
60
|
*/
|
|
@@ -179,6 +192,10 @@ export declare class BidRepository extends BaseRepository<BidDocument> {
|
|
|
179
192
|
canFilter: boolean;
|
|
180
193
|
canSort: boolean;
|
|
181
194
|
};
|
|
195
|
+
searchTxt: {
|
|
196
|
+
canFilter: boolean;
|
|
197
|
+
canSort: boolean;
|
|
198
|
+
};
|
|
182
199
|
userEmail: {
|
|
183
200
|
canFilter: boolean;
|
|
184
201
|
canSort: boolean;
|
|
@@ -209,6 +226,31 @@ export declare class BidRepository extends BaseRepository<BidDocument> {
|
|
|
209
226
|
/**
|
|
210
227
|
* Paginated, Firestore-native bid list (admin use).
|
|
211
228
|
*/
|
|
212
|
-
|
|
229
|
+
/** Derived on every write path via `applyWriteHooks`. */
|
|
230
|
+
protected buildSearchTxtFor(data: Record<string, JsonValue>): string[] | null;
|
|
231
|
+
/**
|
|
232
|
+
* `opts.search` is a searchTxt PUSHDOWN, not a Sieve clause.
|
|
233
|
+
*
|
|
234
|
+
* ## What this replaces, on both of its two surfaces
|
|
235
|
+
*
|
|
236
|
+
* `/api/store/bids` searched the bidder with `userName@=`, a CASE-SENSITIVE
|
|
237
|
+
* prefix — the only thing Firestore can do for a prefix — so a seller typing
|
|
238
|
+
* "ravi" did not find "Ravi", and "kumar" never found anyone at all.
|
|
239
|
+
* `/api/user/bids` filtered `productTitle.includes(q)` in memory AFTER
|
|
240
|
+
* paging, so a match on page 2 was unreachable.
|
|
241
|
+
*
|
|
242
|
+
* Token search fixes both: `buildSearchTxt` normalises case and indexes word
|
|
243
|
+
* prefixes, so the query and the index meet on tokens rather than on a
|
|
244
|
+
* substring of one field.
|
|
245
|
+
*
|
|
246
|
+
* 🛑 `planSearchTxt`'s `empty` guard is the load-bearing part. A query that
|
|
247
|
+
* normalises to no usable token (`"!!!"`, `"—"`) MUST return nothing —
|
|
248
|
+
* emitting no clause instead returns the whole collection and calls it a
|
|
249
|
+
* search result, which is the shape of every silent-search bug in this
|
|
250
|
+
* codebase.
|
|
251
|
+
*/
|
|
252
|
+
list(model: SieveModel, opts?: {
|
|
253
|
+
search?: string;
|
|
254
|
+
}): Promise<FirebaseSieveResult<BidDocument>>;
|
|
213
255
|
}
|
|
214
256
|
export declare const bidRepository: BidRepository;
|