@mohasinac/appkit 4.52.4 → 4.53.0
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/server/features/auctions/actions.js +1 -1
- package/dist/_internal/server/features/categories/data.js +23 -7
- package/dist/_internal/server/features/checkout/actions.js +10 -3
- package/dist/_internal/server/features/checkout/data.d.ts +15 -0
- package/dist/_internal/server/features/checkout/data.js +20 -3
- 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 +4 -0
- 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/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/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 +1 -1
- 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 +80 -0
- package/dist/_internal/server/features/sticker-trace/adapters.js +174 -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.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 +141 -0
- package/dist/_internal/server/features/sticker-trace/sheet-actions.js +279 -0
- package/dist/_internal/server/features/sticker-trace/storage.d.ts +135 -0
- package/dist/_internal/server/features/sticker-trace/storage.js +282 -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/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/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 +11 -0
- package/dist/_internal/shared/listing-types/art/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/art/config.js +1 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/auction/config.js +1 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/classified/config.js +1 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +1 -0
- package/dist/_internal/shared/listing-types/feature-flags.d.ts +7 -0
- package/dist/_internal/shared/listing-types/feature-flags.js +9 -0
- package/dist/_internal/shared/listing-types/live/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/live/config.js +1 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +1 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/standard/config.js +1 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +1 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +1 -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 +65 -0
- package/dist/_internal/shared/search/match.js +263 -0
- package/dist/client.d.ts +8 -7
- package/dist/client.js +12 -5
- package/dist/configs/eslint.js +22 -2
- package/dist/constants/api-endpoints.d.ts +68 -0
- package/dist/constants/api-endpoints.js +32 -0
- package/dist/constants/field-names.d.ts +7 -1
- package/dist/constants/field-names.js +36 -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/account/api/[userId]/addresses/route.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/addresses/repository/addresses.repository.d.ts +17 -6
- package/dist/features/addresses/repository/addresses.repository.js +65 -9
- package/dist/features/addresses/schemas/firestore.d.ts +17 -6
- 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 +0 -1
- package/dist/features/admin/components/AdminContactView.js +1 -1
- package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -3
- package/dist/features/admin/components/AdminNewsletterView.js +1 -1
- package/dist/features/admin/components/AdminOrdersView.js +9 -2
- 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 +24 -37
- 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/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 +1 -1
- 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/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 +62 -1
- 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/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 +33 -7
- package/dist/features/auth/repository/user.repository.js +100 -15
- package/dist/features/auth/schemas/firestore.d.ts +63 -12
- package/dist/features/auth/schemas/firestore.js +11 -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/cart/api/route.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/route.js +10 -10
- package/dist/features/categories/components/CategoryDetailPageView.js +35 -5
- package/dist/features/categories/components/CategorySelectorCreate.js +0 -1
- package/dist/features/categories/components/index.d.ts +0 -2
- package/dist/features/categories/components/index.js +0 -1
- package/dist/features/categories/repository/categories.repository.d.ts +1 -0
- package/dist/features/categories/repository/categories.repository.js +31 -1
- package/dist/features/categories/schemas/index.d.ts +2 -2
- package/dist/features/categories/utils/taxonomy-visual.d.ts +21 -0
- package/dist/features/categories/utils/taxonomy-visual.js +58 -0
- package/dist/features/checkout/actions/checkout-value-otp-actions.js +8 -1
- 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/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/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/GroupedListingEditorView.js +17 -2
- 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/api/route.js +2 -2
- package/dist/features/homepage/api/sections/route.js +1 -1
- package/dist/features/homepage/components/AnnouncementBar.d.ts +1 -9
- package/dist/features/homepage/components/AnnouncementBar.js +13 -19
- package/dist/features/homepage/components/MarketplaceHomepageView.js +6 -1
- package/dist/features/homepage/components/index.d.ts +0 -2
- package/dist/features/homepage/components/index.js +0 -1
- package/dist/features/homepage/repository/homepage.repository.js +1 -1
- package/dist/features/homepage/schemas/firestore.d.ts +6 -0
- package/dist/features/homepage/schemas/index.d.ts +10 -10
- package/dist/features/layout/AppLayoutShell.d.ts +12 -3
- 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/BottomNavbar.d.ts +14 -0
- package/dist/features/layout/BottomNavbar.js +43 -3
- 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.d.ts +1 -3
- package/dist/features/layout/TitleBarLayout.js +3 -4
- 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/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/modals/ImageEditor.js +5 -1
- package/dist/features/media/modals/VideoThumbnailSelector.js +17 -1
- package/dist/features/media/repository/media-assets.repository.d.ts +19 -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/payments/repository/payments.repository.js +2 -2
- package/dist/features/payments/repository/payout.repository.d.ts +23 -6
- package/dist/features/payments/repository/payout.repository.js +63 -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/repository/pre-orders.repository.d.ts +3 -3
- package/dist/features/pre-orders/repository/pre-orders.repository.js +6 -6
- package/dist/features/products/api/[id]/route.js +1 -1
- package/dist/features/products/components/ListingBottomActions.js +4 -0
- package/dist/features/products/components/ProductDetailPageView.js +2 -1
- package/dist/features/products/components/ProductGalleryClient.js +2 -2
- package/dist/features/products/components/ProductGrid.js +12 -1
- 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/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.js +13 -1
- package/dist/features/products/schemas/index.d.ts +2 -2
- package/dist/features/products/types/index.d.ts +1 -1
- 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/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/search/components/SearchResultsPageView.js +2 -1
- package/dist/features/search/hooks/useSearchIndex.d.ts +34 -0
- package/dist/features/search/hooks/useSearchIndex.js +172 -0
- package/dist/features/search/repository/search.repository.js +2 -2
- 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.js +9 -1
- package/dist/features/seller/components/SellerOrdersView.js +1 -1
- package/dist/features/seller/components/SellerPayoutSettingsView.js +0 -1
- package/dist/features/seller/components/SellerPayoutsView.js +1 -1
- package/dist/features/seller/components/SellerProductShell.js +0 -1
- package/dist/features/seller/components/SellerProductsView.js +1 -1
- package/dist/features/seller/components/SellerShippingView.js +0 -1
- package/dist/features/seller/components/SellerStorefrontView.js +0 -1
- package/dist/features/seller/components/index.d.ts +0 -4
- package/dist/features/seller/components/index.js +0 -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/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 +248 -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/StoreNavTabs.js +17 -2
- package/dist/features/stores/manifest.js +8 -4
- 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/content-discovery__authenticity-checker.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +243 -0
- 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/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/design-ux__header-controls-and-messages.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +85 -0
- package/dist/features/tester/seed-data/authored/index.js +10 -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/tools__sticker-tracer.d.ts +2 -0
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +283 -0
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +235 -22
- package/dist/index.d.ts +10 -23
- package/dist/index.js +27 -19
- 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 +4 -4
- package/dist/next/routing/route-map.js +25 -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 +11 -9
- package/dist/providers/db-firebase/base.repository.js +19 -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 +13 -20
- package/dist/schemas/registry.js +31 -14
- package/dist/schemas/webhooks/google-oauth.d.ts +2 -2
- package/dist/security/encrypted.d.ts +117 -0
- package/dist/security/encrypted.js +100 -0
- package/dist/security/index.d.ts +5 -2
- package/dist/security/index.js +16 -2
- 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/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 +34 -0
- package/dist/seed/authenticity-knowledge-seed-data.js +1277 -0
- package/dist/seed/bids-seed-data.d.ts +2 -2
- package/dist/seed/bids-seed-data.js +23 -2
- 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/homepage-sections-seed-data.js +39 -23
- package/dist/seed/index.d.ts +1 -0
- package/dist/seed/index.js +1 -0
- package/dist/seed/lottery-entries-seed-data.d.ts +2 -2
- 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/payouts-seed-data.d.ts +2 -2
- package/dist/seed/payouts-seed-data.js +1 -1
- 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 +1 -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.js +5 -1
- package/dist/server.d.ts +18 -3
- package/dist/server.js +59 -3
- package/dist/styles.css +237 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/Button.js +7 -1
- package/dist/ui/components/FilterChipGroup.d.ts +11 -0
- package/dist/ui/components/FilterChipGroup.js +1 -1
- package/dist/ui/components/ImageGallery.js +6 -1
- package/dist/ui/components/ListingLayout.js +14 -8
- 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/RecordDetailModal.js +14 -1
- package/dist/ui/components/RowActionMenu.js +5 -1
- package/dist/ui/components/SideDrawer.js +5 -1
- package/dist/ui/components/SideModal.js +9 -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 +1 -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 +6 -0
- package/dist/ui/icons/icon-registry.js +17 -1
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +1 -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/validation/schemas.d.ts +8 -8
- package/package.json +6 -2
- package/scripts/seed-cli.mjs +3 -0
- 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/components/HowItWorksInfoView.d.ts +0 -36
- package/dist/features/homepage/components/HowItWorksInfoView.js +0 -10
- 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/seller/components/SellerStoreView.d.ts +0 -8
- package/dist/features/seller/components/SellerStoreView.js +0 -8
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const bidsSeedData:
|
|
1
|
+
import type { BidPlain } from "../features/auctions/schemas/firestore";
|
|
2
|
+
export declare const bidsSeedData: BidPlain[];
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* @tag consumers:seed/index.ts,seed/runner.ts
|
|
24
24
|
* @tag sideEffects:none
|
|
25
25
|
*/
|
|
26
|
+
import { buildBidSearchTxt } from "../utils/search-txt-builders.js";
|
|
26
27
|
const NOW = new Date();
|
|
27
28
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
28
29
|
const BIDDER_EMAILS = {
|
|
@@ -36,7 +37,7 @@ const BIDDER_NAMES = {
|
|
|
36
37
|
"user-ananya-collector": "Mock User 9",
|
|
37
38
|
};
|
|
38
39
|
/*
|
|
39
|
-
* Typed on the
|
|
40
|
+
* Typed on the PLAIN shape, not `FirestoreDocument`. Once `BidDocument` gained
|
|
40
41
|
* `statusHistory?: StatusChangeEntry[]`, `Partial<BidDocument>` stopped being
|
|
41
42
|
* assignable to `FirestoreDocument` — an array of objects does not satisfy
|
|
42
43
|
* that index signature. The right fix is to narrow the parameter to what the
|
|
@@ -51,6 +52,26 @@ function withBidDefaults(b) {
|
|
|
51
52
|
currency: "INR",
|
|
52
53
|
isWinning: b.status === "active" || b.status === "won",
|
|
53
54
|
updatedAt: (b.createdAt ?? NOW),
|
|
55
|
+
/*
|
|
56
|
+
* 🛑 DERIVED here, from the same builder the repository's write hook uses —
|
|
57
|
+
* never a hand-written token list.
|
|
58
|
+
*
|
|
59
|
+
* A seeded row without this is invisible to search forever:
|
|
60
|
+
* `array-contains` cannot match a field the document does not have, and it
|
|
61
|
+
* raises nothing (Root Cause #101's shape). Deriving it from
|
|
62
|
+
* `buildBidSearchTxt` is also what keeps the seed and every runtime write
|
|
63
|
+
* agreeing on the normalisation — two token lists built two ways is the
|
|
64
|
+
* mirror-drift trap (Root Cause #42).
|
|
65
|
+
*
|
|
66
|
+
* Applied INSIDE `withBidDefaults` on purpose, after `productTitle` is
|
|
67
|
+
* defaulted above: a derivation placed before it would index the empty
|
|
68
|
+
* string for every row that relies on the fallback.
|
|
69
|
+
*/
|
|
70
|
+
searchTxt: buildBidSearchTxt({
|
|
71
|
+
productTitle: b.productTitle ??
|
|
72
|
+
(b.productId ?? "").replace(/^auction-/, "").replace(/-/g, " "),
|
|
73
|
+
userName: b.userName,
|
|
74
|
+
}),
|
|
54
75
|
};
|
|
55
76
|
}
|
|
56
77
|
/**
|
|
@@ -154,7 +175,7 @@ const _rawBidsSeedData = [
|
|
|
154
175
|
// auction-beyblade-burst-spriggan-requiem-bought-out — a BUYOUT ended it.
|
|
155
176
|
//
|
|
156
177
|
// Three competitive bids that lost, then the buyout that won. A buyout is a
|
|
157
|
-
// real
|
|
178
|
+
// real BidPlain (`isBuyout: true`) — it is not a bid-free purchase, which
|
|
158
179
|
// is why the order's `sourceContext.bidCount` is 3 rather than 0: the buyout
|
|
159
180
|
// itself is excluded from the "against N bidders" figure, the three it beat
|
|
160
181
|
// are not. `standingBidAtBuyout` is read from these bids and NOT from
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EventDocument,
|
|
2
|
-
export declare const eventEntriesSeedData:
|
|
1
|
+
import type { EventDocument, EventEntryPlain } from "../features/events/schemas";
|
|
2
|
+
export declare const eventEntriesSeedData: EventEntryPlain[];
|
|
3
3
|
/**
|
|
4
4
|
* Tokens derived here, not per record — see _helpers/search-txt-wrappers.ts for
|
|
5
5
|
* why the wrapper form is what makes omission impossible.
|
|
@@ -361,6 +361,11 @@ const _raweventsSeedData = [
|
|
|
361
361
|
},
|
|
362
362
|
];
|
|
363
363
|
// ── Event Entries ────────────────────────────────────────────────────────────
|
|
364
|
+
/*
|
|
365
|
+
* 🛑 `EventEntryPlain`: these fixtures hold REAL plaintext and `seed-cli`
|
|
366
|
+
* encrypts the PII fields on write. The document type now declares them
|
|
367
|
+
* `Encrypted<string>`, so the document type would be a false claim.
|
|
368
|
+
*/
|
|
364
369
|
export const eventEntriesSeedData = [
|
|
365
370
|
// Rehan entered the poll
|
|
366
371
|
{
|
|
@@ -659,7 +659,7 @@ const faqSeedRecords = [
|
|
|
659
659
|
{
|
|
660
660
|
id: "faq-how-to-verify-authenticity",
|
|
661
661
|
question: "How can I verify if a collectible is authentic?",
|
|
662
|
-
answer: html(`<p>Look for these trust signals on LetItRip: <strong>Verified Seller</strong> badge (store has passed manual review), <strong>Graded</strong> badge (PSA/BGS/CGC certified with certificate number), <strong>Sealed</strong> badge (factory-sealed product). For ungraded items, check the seller's photo quality and description detail. If in doubt, message the seller before purchasing.</p>`),
|
|
662
|
+
answer: html(`<p>Look for these trust signals on LetItRip: <strong>Verified Seller</strong> badge (store has passed manual review), <strong>Graded</strong> badge (PSA/BGS/CGC certified with certificate number), <strong>Sealed</strong> badge (factory-sealed product). For ungraded items, check the seller's photo quality and description detail. If in doubt, message the seller before purchasing.</p><p>For <strong>Beyblades specifically</strong>, the <a href="/tools/authenticity">authenticity checker</a> takes a model name, a box code or the brand on the packaging and tells you which checks apply to that generation — and the <a href="/spot-a-fake">spot-a-fake guide</a> walks the same signals by hand, with no account needed.</p>`),
|
|
663
663
|
category: "product_information",
|
|
664
664
|
showOnHomepage: true,
|
|
665
665
|
showInFooter: false,
|
|
@@ -667,7 +667,7 @@ const faqSeedRecords = [
|
|
|
667
667
|
order: 32,
|
|
668
668
|
priority: 8,
|
|
669
669
|
tags: ["authentication", "verification", "trust"],
|
|
670
|
-
relatedFAQs: ["faq-counterfeit-guarantee", "faq-psa-vs-bgs-vs-cgc"],
|
|
670
|
+
relatedFAQs: ["faq-counterfeit-guarantee", "faq-psa-vs-bgs-vs-cgc", "faq-check-if-my-beyblade-is-original"],
|
|
671
671
|
stats: makeStats(3800, 190),
|
|
672
672
|
seo: { slug: "faq-how-to-verify-authenticity", metaTitle: "Verify Collectible Authenticity", metaDescription: "How to verify if a collectible is authentic on LetItRip." },
|
|
673
673
|
isActive: true,
|
|
@@ -1464,10 +1464,79 @@ const faqSeedRecords = [
|
|
|
1464
1464
|
createdAt: daysAgo(30),
|
|
1465
1465
|
updatedAt: daysAgo(2),
|
|
1466
1466
|
},
|
|
1467
|
+
{
|
|
1468
|
+
id: "faq-check-if-my-beyblade-is-original",
|
|
1469
|
+
question: "How do I check whether my Beyblade is original?",
|
|
1470
|
+
answer: html("<p>Start with the <a href=\"/tools/authenticity\">authenticity checker</a>. Give it a model name, the code printed on the box, or the brand on the packaging, and it tells you which checks apply to that generation, what the recorded box codes say, and what is still unsettled. The reference half of that page — the generation table, the box-code explanation, the checks that apply regardless — is free and needs no account; only the per-item lookup asks you to sign in.</p><p>🛑 <strong>It grades, it does not rule.</strong> The strongest thing it will say is that something matches a batch collectors record as a reduced-quality run — a statement about a production batch, never an accusation against your seller. Authenticity is settled by physical checks, and the tool lists the conclusive ones first for your generation: a fully die-cast performance tip on a Metal Fight bey, Phillips screws where tri-wing belong on Burst, a Gear Chip missing the <em>Beyblade X</em> logo, or moulded Takara copyright text absent from a plastic-generation part.</p><p>The longer buying guide is at <a href=\"/spot-a-fake\">how to spot a fake</a>. If the problem is a specific seller rather than a specific item, the <a href=\"/scams\">scam registry</a> takes reports.</p>"),
|
|
1471
|
+
category: "product_information",
|
|
1472
|
+
showOnHomepage: true,
|
|
1473
|
+
showInFooter: false,
|
|
1474
|
+
isPinned: false,
|
|
1475
|
+
order: 208,
|
|
1476
|
+
priority: 10,
|
|
1477
|
+
tags: ["authenticity", "fake", "original", "beyblade", "checker", "takara tomy"],
|
|
1478
|
+
relatedFAQs: ["faq-beyblade-box-code-meaning", "faq-what-is-a-reproduction", "faq-is-funskool-beyblade-fake"],
|
|
1479
|
+
stats: makeStats(0, 0),
|
|
1480
|
+
seo: {
|
|
1481
|
+
slug: "faq-check-if-my-beyblade-is-original",
|
|
1482
|
+
metaTitle: "How do I check whether my Beyblade is original?",
|
|
1483
|
+
metaDescription: "Use the authenticity checker: a model name, a box code or the brand on the packaging, and it shows which checks apply to that generation and what is still unsettled.",
|
|
1484
|
+
},
|
|
1485
|
+
isActive: true,
|
|
1486
|
+
createdBy: "user-admin-letitrip",
|
|
1487
|
+
createdAt: daysAgo(1),
|
|
1488
|
+
updatedAt: daysAgo(1),
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
id: "faq-beyblade-box-code-meaning",
|
|
1492
|
+
question: "What does the code on the bottom of the box mean?",
|
|
1493
|
+
answer: html("<p>Two different things are both called “the code”, and they answer different questions.</p><p>A <strong>product code</strong> — <code>BB-105</code>, <code>B-174</code>, <code>BX-34</code>, <code>MA-09</code> — identifies the release, and its letter prefix identifies the generation. Read the whole letter group before the digits: <code>BB-</code> is Metal Fight while <code>B-</code> is Burst, so they are easy to confuse. 🛑 <strong>A product code existing proves nothing about authenticity.</strong> One counterfeit catalogue we measured carried more than 900 genuine Takara Tomy codes across 1,277 unlicensed products. What carries information is whether the code and the model name <em>agree</em> — which is what the <a href=\"/tools/authenticity\">authenticity checker</a> compares.</p><p>A <strong>date code</strong> is a letter followed by four digits, like <code>A0813</code>, and it is a production stamp. Collectors have compiled which of these appear on boxes known to be genuine and which belong to reduced-quality batches, and the checker holds both lists for the Metal Fight era. 🛑 <strong>How it decodes is disputed.</strong> One reading takes the letter as the month and the next two digits as the day (8 January 2013); another takes the letter as the factory and the digits as the week of the year. Takara Tomy has published neither, so treat any date as indicative. No decoding has been established at all for Burst or Beyblade X boxes.</p><p>A code that is in neither list means <em>not recorded</em>, not <em>fake</em> — the lists were compiled from boxes collectors personally held, and new genuine codes still surface.</p>"),
|
|
1494
|
+
category: "product_information",
|
|
1495
|
+
showOnHomepage: false,
|
|
1496
|
+
showInFooter: false,
|
|
1497
|
+
isPinned: false,
|
|
1498
|
+
order: 209,
|
|
1499
|
+
priority: 9,
|
|
1500
|
+
tags: ["box code", "date code", "product code", "authenticity", "takara tomy", "midfake"],
|
|
1501
|
+
relatedFAQs: ["faq-check-if-my-beyblade-is-original", "faq-what-is-a-reproduction"],
|
|
1502
|
+
stats: makeStats(0, 0),
|
|
1503
|
+
seo: {
|
|
1504
|
+
slug: "faq-beyblade-box-code-meaning",
|
|
1505
|
+
metaTitle: "What does the code on the bottom of a Beyblade box mean?",
|
|
1506
|
+
metaDescription: "Product codes identify the release and the generation; date codes are production stamps with two disputed readings. Neither proves a bey is genuine on its own.",
|
|
1507
|
+
},
|
|
1508
|
+
isActive: true,
|
|
1509
|
+
createdBy: "user-admin-letitrip",
|
|
1510
|
+
createdAt: daysAgo(1),
|
|
1511
|
+
updatedAt: daysAgo(1),
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
id: "faq-is-funskool-beyblade-fake",
|
|
1515
|
+
question: "Is a Funskool Beyblade fake? What about Sonokong?",
|
|
1516
|
+
answer: html("<p><strong>No. Both are legitimate.</strong> Funskool is a licensed Indian importer and Sonokong is the licensed South Korean producer — their names on a box are a <em>positive</em> signal, not a warning. The same goes for the other regional importers: Mani (Hong Kong), Funbox (Taiwan), Sheng Tai (Singapore), NewBoy (Middle East), Bankee (Philippines) and PT Emway (Indonesia). An importer’s holographic sticker or certificate inside the packaging is a sign of a properly imported product.</p><p>🛑 A guide that tells you anything other than “Takara Tomy” or “Hasbro” is a fake is simply wrong, and that mistake is costly in India specifically, where Funskool product is common.</p><p>What <em>should</em> worry you is a box whose most prominent branding is a name nobody licenses — or no manufacturer name at all. Sellers of unlicensed tops here rarely claim to be originals; they sell under their own brand as “aftermarket”, “custom” or “upgraded”. That framing is not a grey area. You can check a brand name against the known lists in the <a href=\"/tools/authenticity\">authenticity checker</a>.</p>"),
|
|
1517
|
+
category: "product_information",
|
|
1518
|
+
showOnHomepage: false,
|
|
1519
|
+
showInFooter: false,
|
|
1520
|
+
isPinned: false,
|
|
1521
|
+
order: 211,
|
|
1522
|
+
priority: 8,
|
|
1523
|
+
tags: ["funskool", "sonokong", "importer", "authenticity", "india", "licensed"],
|
|
1524
|
+
relatedFAQs: ["faq-check-if-my-beyblade-is-original", "faq-what-is-a-reproduction"],
|
|
1525
|
+
stats: makeStats(0, 0),
|
|
1526
|
+
seo: {
|
|
1527
|
+
slug: "faq-is-funskool-beyblade-fake",
|
|
1528
|
+
metaTitle: "Is a Funskool Beyblade fake?",
|
|
1529
|
+
metaDescription: "No — Funskool is a licensed Indian importer and Sonokong the licensed Korean producer. Both marques are a positive signal, not a warning.",
|
|
1530
|
+
},
|
|
1531
|
+
isActive: true,
|
|
1532
|
+
createdBy: "user-admin-letitrip",
|
|
1533
|
+
createdAt: daysAgo(1),
|
|
1534
|
+
updatedAt: daysAgo(1),
|
|
1535
|
+
},
|
|
1467
1536
|
{
|
|
1468
1537
|
id: "faq-what-is-a-reproduction",
|
|
1469
1538
|
question: "What is a \"reproduction\" or \"midfake\"? Is it a fake?",
|
|
1470
|
-
answer: html("<p
|
|
1539
|
+
answer: html("<p><strong>“Midfake” is used two ways</strong>, and the difference matters. In the Metal Fight community it means a specific thing: a <em>Takara Tomy</em> batch of reduced quality, built on Takara Tomy blueprints in Taiwan, with different alloys and TT-style box codes — so it may well carry the real marque. Collectors identify those batches by the code on the bottom of the box. Used more loosely — and this is the commoner sense in India — it means any 1st-copy of an original design, mostly Chinese-made, carrying no manufacturer's marque at all. Quality is often genuinely good, and some tournament formats permit certain reproduction parts.</p><p>🛑 There is <strong>no official Takara Tomy statement</strong> acknowledging the reduced-quality batches, so everything known about them comes from collectors comparing boxes.</p><p>It is <strong>not</strong> the same as a cheap counterfeit. A counterfeit is poor-quality and can contain lead or cadmium in its metal parts, which is a safety matter — we do not allow those listed at all. A reproduction is a legitimate thing to sell <em>when it is labelled</em>, and every listing on LetItRip states its authenticity as Original, Reproduction, or Unverified.</p><p>🛑 If a seller calls something \"aftermarket\", \"custom\" or \"upgraded\" without naming a manufacturer, they are describing a reproduction. Ask.</p>"),
|
|
1471
1540
|
category: "product_information",
|
|
1472
1541
|
showOnHomepage: true,
|
|
1473
1542
|
showInFooter: false,
|
|
@@ -1475,12 +1544,12 @@ const faqSeedRecords = [
|
|
|
1475
1544
|
order: 210,
|
|
1476
1545
|
priority: 10,
|
|
1477
1546
|
tags: ["reproduction", "midfake", "authenticity", "fake", "aftermarket"],
|
|
1478
|
-
relatedFAQs: [],
|
|
1547
|
+
relatedFAQs: ["faq-check-if-my-beyblade-is-original", "faq-beyblade-box-code-meaning", "faq-counterfeit-guarantee"],
|
|
1479
1548
|
stats: makeStats(670, 50),
|
|
1480
1549
|
seo: {
|
|
1481
1550
|
slug: "faq-what-is-a-reproduction",
|
|
1482
1551
|
metaTitle: "What is a \"reproduction\" or \"midfake\"? Is it a fake?",
|
|
1483
|
-
metaDescription: "
|
|
1552
|
+
metaDescription: "“Midfake” means two different things — a reduced-quality Takara Tomy batch, or any unbranded 1st-copy. Both differ from a counterfeit.",
|
|
1484
1553
|
},
|
|
1485
1554
|
isActive: true,
|
|
1486
1555
|
createdBy: "user-admin-letitrip",
|
|
@@ -1763,6 +1832,107 @@ const faqSeedRecords = [
|
|
|
1763
1832
|
createdAt: daysAgo(30),
|
|
1764
1833
|
updatedAt: daysAgo(2),
|
|
1765
1834
|
},
|
|
1835
|
+
// ── STICKER SHEETS (3) ──────────────────────────────────────────────────────
|
|
1836
|
+
//
|
|
1837
|
+
// 🛑 FILED UNDER `product_information`, NOT A NEW `stickers` CATEGORY.
|
|
1838
|
+
// The plan called for one, on the premise that the seeded set was
|
|
1839
|
+
// Shipping/Returns/Payments/Auctions/Pre-orders — that list came from a stale
|
|
1840
|
+
// paragraph in CLAUDE.md. The real union already carries `product_information`
|
|
1841
|
+
// (FAQ_CATEGORY_LABELS), which is exactly what these are. Adding a tenth
|
|
1842
|
+
// category for three entries would mean extending a compile-checked union,
|
|
1843
|
+
// the admin option list and every chip derived from it, to say something an
|
|
1844
|
+
// existing value already says.
|
|
1845
|
+
//
|
|
1846
|
+
// 🛑 THREE, NOT SIX. The plan drafted six questions and said plainly that the
|
|
1847
|
+
// answers to half of them need product facts nobody has yet. Those three are
|
|
1848
|
+
// listed below as questions ONLY, and are deliberately NOT seeded — `faqs` is
|
|
1849
|
+
// a public, indexed collection with its own seo.slug, so a placeholder answer
|
|
1850
|
+
// there is a confident lie on a page Google will read.
|
|
1851
|
+
//
|
|
1852
|
+
// · "What size are the stickers?" needs: real sheet + part dimensions
|
|
1853
|
+
// · "Are they weatherproof / dishwasher-safe?" needs: material + laminate spec
|
|
1854
|
+
// · "Can I buy a single sticker rather than a whole sheet?"
|
|
1855
|
+
// needs: the per-part listings from Part Two. Today the honest answer is
|
|
1856
|
+
// "no", and seeding that now would have to be rewritten the week the
|
|
1857
|
+
// grouped parent+parts listings ship.
|
|
1858
|
+
//
|
|
1859
|
+
// The three below need no product facts — they explain what a kiss cut IS,
|
|
1860
|
+
// which is true of every kiss-cut sticker ever made.
|
|
1861
|
+
{
|
|
1862
|
+
id: "faq-what-is-a-kiss-cut-sticker",
|
|
1863
|
+
question: "What is a kiss-cut sticker?",
|
|
1864
|
+
answer: html(`<p>A <strong>kiss cut</strong> goes through the sticker's vinyl but <em>not</em> through the paper backing behind it. The sheet stays in one piece, and each sticker peels off individually when you want it.</p><p>A <strong>die cut</strong> goes all the way through both layers, so every sticker is already a separate loose piece.</p><p>Kiss-cut sheets are what vintage Beyblade stickers were originally made as: one sheet, many stickers, each outlined along its own shape.</p>`),
|
|
1865
|
+
category: "product_information",
|
|
1866
|
+
showOnHomepage: false,
|
|
1867
|
+
showInFooter: false,
|
|
1868
|
+
isPinned: false,
|
|
1869
|
+
order: 1,
|
|
1870
|
+
priority: 5,
|
|
1871
|
+
tags: ["stickers", "kiss-cut", "die-cut", "sheets"],
|
|
1872
|
+
relatedFAQs: ["faq-sticker-white-border", "faq-how-to-apply-a-sticker"],
|
|
1873
|
+
useSiteSettings: true,
|
|
1874
|
+
variables: {},
|
|
1875
|
+
stats: makeStats(0, 0),
|
|
1876
|
+
seo: {
|
|
1877
|
+
slug: "faq-what-is-a-kiss-cut-sticker",
|
|
1878
|
+
metaTitle: "What is a kiss-cut sticker? | LetItRip",
|
|
1879
|
+
metaDescription: "A kiss cut goes through the vinyl but not the backing, so the sheet stays whole and each sticker peels off on its own.",
|
|
1880
|
+
},
|
|
1881
|
+
isActive: true,
|
|
1882
|
+
createdBy: "user-admin-letitrip",
|
|
1883
|
+
createdAt: daysAgo(1),
|
|
1884
|
+
updatedAt: daysAgo(1),
|
|
1885
|
+
},
|
|
1886
|
+
{
|
|
1887
|
+
id: "faq-sticker-white-border",
|
|
1888
|
+
question: "Why do some stickers have a white border around them?",
|
|
1889
|
+
answer: html(`<p>That border is part of the cut, not a printing mistake. A cutter cannot follow fine detail perfectly, so the cut line is placed slightly <em>outside</em> the artwork — the small margin that leaves is what stops a sliver of artwork being shaved off if the blade drifts by a fraction of a millimetre.</p><p>Where the original sticker was designed with a border, we keep it. Where it was cut tight to the art, we cut tight to the art.</p>`),
|
|
1890
|
+
category: "product_information",
|
|
1891
|
+
showOnHomepage: false,
|
|
1892
|
+
showInFooter: false,
|
|
1893
|
+
isPinned: false,
|
|
1894
|
+
order: 2,
|
|
1895
|
+
priority: 4,
|
|
1896
|
+
tags: ["stickers", "border", "cutting", "bleed"],
|
|
1897
|
+
relatedFAQs: ["faq-what-is-a-kiss-cut-sticker"],
|
|
1898
|
+
useSiteSettings: true,
|
|
1899
|
+
variables: {},
|
|
1900
|
+
stats: makeStats(0, 0),
|
|
1901
|
+
seo: {
|
|
1902
|
+
slug: "faq-sticker-white-border",
|
|
1903
|
+
metaTitle: "Why do stickers have a white border? | LetItRip",
|
|
1904
|
+
metaDescription: "The margin around a sticker is part of the cut — it stops the blade shaving artwork if it drifts a fraction of a millimetre.",
|
|
1905
|
+
},
|
|
1906
|
+
isActive: true,
|
|
1907
|
+
createdBy: "user-admin-letitrip",
|
|
1908
|
+
createdAt: daysAgo(1),
|
|
1909
|
+
updatedAt: daysAgo(1),
|
|
1910
|
+
},
|
|
1911
|
+
{
|
|
1912
|
+
id: "faq-how-to-apply-a-sticker",
|
|
1913
|
+
question: "How do I apply a sticker so it does not lift at the edges?",
|
|
1914
|
+
answer: html(`<p>Clean the surface first and let it dry completely — most lifting is a dusty or slightly greasy surface rather than the adhesive.</p><p>Peel the sticker from one corner rather than lifting it flat, lay that edge down first, then press across the sticker in one direction so the air pushes out ahead of your finger instead of being trapped under it.</p><p>Press firmly for a few seconds once it is down, and leave it a day before getting it wet.</p>`),
|
|
1915
|
+
category: "product_information",
|
|
1916
|
+
showOnHomepage: false,
|
|
1917
|
+
showInFooter: false,
|
|
1918
|
+
isPinned: false,
|
|
1919
|
+
order: 3,
|
|
1920
|
+
priority: 3,
|
|
1921
|
+
tags: ["stickers", "application", "how-to"],
|
|
1922
|
+
relatedFAQs: ["faq-what-is-a-kiss-cut-sticker"],
|
|
1923
|
+
useSiteSettings: true,
|
|
1924
|
+
variables: {},
|
|
1925
|
+
stats: makeStats(0, 0),
|
|
1926
|
+
seo: {
|
|
1927
|
+
slug: "faq-how-to-apply-a-sticker",
|
|
1928
|
+
metaTitle: "How to apply a sticker without lifting edges | LetItRip",
|
|
1929
|
+
metaDescription: "Clean the surface, lay one edge first, and press across in one direction so air pushes out ahead of your finger.",
|
|
1930
|
+
},
|
|
1931
|
+
isActive: true,
|
|
1932
|
+
createdBy: "user-admin-letitrip",
|
|
1933
|
+
createdAt: daysAgo(1),
|
|
1934
|
+
updatedAt: daysAgo(1),
|
|
1935
|
+
},
|
|
1766
1936
|
];
|
|
1767
1937
|
/**
|
|
1768
1938
|
* Derive `searchTxt` for every record from its own content.
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* WHY: Seeds the homepage layout — which sections render, in what order, with what copy.
|
|
3
|
-
* WHAT:
|
|
3
|
+
* WHAT: 23 sections (22 enabled + 1 deliberately disabled), ordered 1..23 contiguously.
|
|
4
|
+
*
|
|
5
|
+
* 🛑 That count and range are ASSERTED, not described — `order` must stay unique
|
|
6
|
+
* and contiguous. Until 2026-10-19 this header read "22 sections … 1..21" while
|
|
7
|
+
* the file held 23 documents numbered 1..22, and `section-systems-matrix` and
|
|
8
|
+
* `section-featured-products` BOTH claimed `order: 5`. `MarketplaceHomepageView`
|
|
9
|
+
* tie-breaks on `updatedAt` (identical for both) and then `id.localeCompare`, so
|
|
10
|
+
* the live running order of the homepage was decided alphabetically — a silent
|
|
11
|
+
* accident, not a layout decision.
|
|
4
12
|
*
|
|
5
13
|
* ORDER follows current marketplace-homepage research rather than the previous
|
|
6
|
-
* arbitrary arrangement: hero → trust → orient (categories) →
|
|
7
|
-
* auctions, pre-orders, bundles) → supply (stores) → social
|
|
8
|
-
* engage (events, raffles, prize draws) → editorial (blog) →
|
|
9
|
-
* banner, newsletter) → reassure (stats, security, community,
|
|
14
|
+
* arbitrary arrangement: hero → trust → orient (categories, systems matrix) →
|
|
15
|
+
* shop (products, auctions, pre-orders, bundles) → supply (stores) → social
|
|
16
|
+
* proof (reviews) → engage (events, raffles, prize draws) → editorial (blog) →
|
|
17
|
+
* convert (seller banner, newsletter) → reassure (stats, security, community,
|
|
18
|
+
* FAQ, brands).
|
|
19
|
+
*
|
|
20
|
+
* The systems matrix sits at 5, between the generation tiles and the first
|
|
21
|
+
* product rail, because that is where the measured leader puts it: on
|
|
22
|
+
* worldhobbyshop "Browse Beyblade Systems & Series" (25 text links) follows
|
|
23
|
+
* "Shop Beyblades by Generation" (6 image tiles) and precedes the one product
|
|
24
|
+
* rail — taxonomy routing before merchandising. See
|
|
25
|
+
* docs/research/competitor-crawl-2026-10/layout.md.
|
|
10
26
|
*
|
|
11
27
|
* Baymard's finding drives the top: a static hero outperforms a carousel, and
|
|
12
28
|
* the one documented carousel win came from demoting it BELOW a static hero.
|
|
@@ -145,7 +161,7 @@ export const homepageSectionsSeedData = [
|
|
|
145
161
|
{
|
|
146
162
|
id: "section-featured-products",
|
|
147
163
|
type: "products",
|
|
148
|
-
order:
|
|
164
|
+
order: 6,
|
|
149
165
|
enabled: true,
|
|
150
166
|
config: {
|
|
151
167
|
title: "Featured Products",
|
|
@@ -163,7 +179,7 @@ export const homepageSectionsSeedData = [
|
|
|
163
179
|
{
|
|
164
180
|
id: "section-live-auctions",
|
|
165
181
|
type: "auctions",
|
|
166
|
-
order:
|
|
182
|
+
order: 7,
|
|
167
183
|
enabled: true,
|
|
168
184
|
config: {
|
|
169
185
|
title: "Live Auctions",
|
|
@@ -181,7 +197,7 @@ export const homepageSectionsSeedData = [
|
|
|
181
197
|
{
|
|
182
198
|
id: "section-pre-orders",
|
|
183
199
|
type: "pre-orders",
|
|
184
|
-
order:
|
|
200
|
+
order: 8,
|
|
185
201
|
enabled: true,
|
|
186
202
|
config: {
|
|
187
203
|
title: "Reserve Before It Ships",
|
|
@@ -199,7 +215,7 @@ export const homepageSectionsSeedData = [
|
|
|
199
215
|
{
|
|
200
216
|
id: "section-featured-bundles",
|
|
201
217
|
type: "featured-bundles",
|
|
202
|
-
order:
|
|
218
|
+
order: 9,
|
|
203
219
|
enabled: true,
|
|
204
220
|
config: {
|
|
205
221
|
title: "Curated Bundles",
|
|
@@ -215,7 +231,7 @@ export const homepageSectionsSeedData = [
|
|
|
215
231
|
{
|
|
216
232
|
id: "section-featured-stores",
|
|
217
233
|
type: "stores",
|
|
218
|
-
order:
|
|
234
|
+
order: 10,
|
|
219
235
|
enabled: true,
|
|
220
236
|
config: {
|
|
221
237
|
title: "Featured Stores",
|
|
@@ -233,7 +249,7 @@ export const homepageSectionsSeedData = [
|
|
|
233
249
|
{
|
|
234
250
|
id: "section-collector-reviews",
|
|
235
251
|
type: "reviews",
|
|
236
|
-
order:
|
|
252
|
+
order: 11,
|
|
237
253
|
enabled: true,
|
|
238
254
|
config: {
|
|
239
255
|
title: "What Buyers Say",
|
|
@@ -252,7 +268,7 @@ export const homepageSectionsSeedData = [
|
|
|
252
268
|
{
|
|
253
269
|
id: "section-upcoming-events",
|
|
254
270
|
type: "events",
|
|
255
|
-
order:
|
|
271
|
+
order: 12,
|
|
256
272
|
enabled: true,
|
|
257
273
|
config: {
|
|
258
274
|
title: "Events & Offers",
|
|
@@ -269,7 +285,7 @@ export const homepageSectionsSeedData = [
|
|
|
269
285
|
{
|
|
270
286
|
id: "section-event-raffles",
|
|
271
287
|
type: "event-raffles",
|
|
272
|
-
order:
|
|
288
|
+
order: 13,
|
|
273
289
|
enabled: true,
|
|
274
290
|
config: {
|
|
275
291
|
title: "Raffles & Spin Wheels",
|
|
@@ -285,7 +301,7 @@ export const homepageSectionsSeedData = [
|
|
|
285
301
|
{
|
|
286
302
|
id: "section-prize-draws",
|
|
287
303
|
type: "prize-draws",
|
|
288
|
-
order:
|
|
304
|
+
order: 14,
|
|
289
305
|
enabled: true,
|
|
290
306
|
config: {
|
|
291
307
|
title: "Prize Draws",
|
|
@@ -304,7 +320,7 @@ export const homepageSectionsSeedData = [
|
|
|
304
320
|
{
|
|
305
321
|
id: "section-collector-blog",
|
|
306
322
|
type: "blog-articles",
|
|
307
|
-
order:
|
|
323
|
+
order: 15,
|
|
308
324
|
enabled: true,
|
|
309
325
|
config: {
|
|
310
326
|
title: "From Our Blog",
|
|
@@ -324,7 +340,7 @@ export const homepageSectionsSeedData = [
|
|
|
324
340
|
{
|
|
325
341
|
id: "section-beyblade-banner",
|
|
326
342
|
type: "banner",
|
|
327
|
-
order:
|
|
343
|
+
order: 16,
|
|
328
344
|
enabled: true,
|
|
329
345
|
config: {
|
|
330
346
|
height: "md",
|
|
@@ -348,7 +364,7 @@ export const homepageSectionsSeedData = [
|
|
|
348
364
|
{
|
|
349
365
|
id: "section-newsletter",
|
|
350
366
|
type: "newsletter",
|
|
351
|
-
order:
|
|
367
|
+
order: 17,
|
|
352
368
|
enabled: true,
|
|
353
369
|
config: {
|
|
354
370
|
title: "Get new listings first",
|
|
@@ -366,7 +382,7 @@ export const homepageSectionsSeedData = [
|
|
|
366
382
|
{
|
|
367
383
|
id: "section-platform-stats",
|
|
368
384
|
type: "stats",
|
|
369
|
-
order:
|
|
385
|
+
order: 18,
|
|
370
386
|
enabled: true,
|
|
371
387
|
config: {
|
|
372
388
|
title: "By the numbers",
|
|
@@ -383,7 +399,7 @@ export const homepageSectionsSeedData = [
|
|
|
383
399
|
{
|
|
384
400
|
id: "section-platform-features",
|
|
385
401
|
type: "features",
|
|
386
|
-
order:
|
|
402
|
+
order: 19,
|
|
387
403
|
enabled: true,
|
|
388
404
|
config: {
|
|
389
405
|
title: "Security You Can Trust",
|
|
@@ -419,7 +435,7 @@ export const homepageSectionsSeedData = [
|
|
|
419
435
|
{
|
|
420
436
|
id: "section-whatsapp-community",
|
|
421
437
|
type: "whatsapp-community",
|
|
422
|
-
order:
|
|
438
|
+
order: 20,
|
|
423
439
|
enabled: true,
|
|
424
440
|
config: {
|
|
425
441
|
title: "Join the community",
|
|
@@ -440,7 +456,7 @@ export const homepageSectionsSeedData = [
|
|
|
440
456
|
{
|
|
441
457
|
id: "section-homepage-faq",
|
|
442
458
|
type: "faq",
|
|
443
|
-
order:
|
|
459
|
+
order: 21,
|
|
444
460
|
enabled: true,
|
|
445
461
|
config: {
|
|
446
462
|
title: "Frequently Asked Questions",
|
|
@@ -509,7 +525,7 @@ export const homepageSectionsSeedData = [
|
|
|
509
525
|
{
|
|
510
526
|
id: "section-top-brands",
|
|
511
527
|
type: "brands",
|
|
512
|
-
order:
|
|
528
|
+
order: 22,
|
|
513
529
|
enabled: true,
|
|
514
530
|
config: {
|
|
515
531
|
title: "Top Brands",
|
|
@@ -530,7 +546,7 @@ export const homepageSectionsSeedData = [
|
|
|
530
546
|
{
|
|
531
547
|
id: "section-social-feed-instagram",
|
|
532
548
|
type: "social-feed",
|
|
533
|
-
order:
|
|
549
|
+
order: 23,
|
|
534
550
|
enabled: false,
|
|
535
551
|
config: {
|
|
536
552
|
title: "Follow along",
|
package/dist/seed/index.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ export { scammersSeedData } from "./scammers-seed-data";
|
|
|
84
84
|
export { supportTicketsSeedData } from "./support-tickets-seed-data";
|
|
85
85
|
export { testerChecklistSeedData, testerResponsesSeedData, } from "../features/tester/seed-data";
|
|
86
86
|
export { productFeaturesSeedData } from "./product-features-seed-data";
|
|
87
|
+
export { authenticityKnowledgeSeedData, AUTHENTICITY_KNOWLEDGE_COLLECTION, AUTHENTICITY_KNOWLEDGE_COUNT, } from "./authenticity-knowledge-seed-data";
|
|
87
88
|
export { taxCodesSeedData } from "./tax-codes-seed-data";
|
|
88
89
|
export { offersSeedData } from "./offers-seed-data";
|
|
89
90
|
export { payoutMethodsSeedData, shippingConfigsSeedData, analyticsCardsSeedData, analyticsAlertsSeedData, storeCategoriesSeedData, listingTemplatesSeedData, moderationQueueSeedData, reportsSeedData, itemRequestsSeedData, storeWhatsAppConfigSeedData, storeGoogleConfigSeedData, } from "./store-extensions-seed-data";
|
package/dist/seed/index.js
CHANGED
|
@@ -91,6 +91,7 @@ export { testerChecklistSeedData,
|
|
|
91
91
|
// continues, which is exactly what happened on the first attempt here.
|
|
92
92
|
testerResponsesSeedData, } from "../features/tester/seed-data/index.js";
|
|
93
93
|
export { productFeaturesSeedData } from "./product-features-seed-data.js";
|
|
94
|
+
export { authenticityKnowledgeSeedData, AUTHENTICITY_KNOWLEDGE_COLLECTION, AUTHENTICITY_KNOWLEDGE_COUNT, } from "./authenticity-knowledge-seed-data.js";
|
|
94
95
|
export { taxCodesSeedData } from "./tax-codes-seed-data.js";
|
|
95
96
|
export { offersSeedData } from "./offers-seed-data.js";
|
|
96
97
|
// S-STORE Extensions (Tier S-STORE) — 11 new collections
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const lotteryEntriesSeedData:
|
|
1
|
+
import type { LotteryEntryPlain } from "../features/lottery/schemas/firestore";
|
|
2
|
+
export declare const lotteryEntriesSeedData: LotteryEntryPlain[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const offersSeedData: Partial<
|
|
1
|
+
import type { OfferPlain } from "../features/seller/schemas/firestore";
|
|
2
|
+
export declare const offersSeedData: Partial<OfferPlain>[];
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* is testable, and it is the exact shape of every offer written before W2.
|
|
27
27
|
*
|
|
28
28
|
* EXPORTS:
|
|
29
|
-
* offersSeedData — Array of Partial<
|
|
29
|
+
* offersSeedData — Array of Partial<OfferPlain> for seed runner
|
|
30
30
|
*
|
|
31
31
|
* @tag domain:offers,seller
|
|
32
32
|
* @tag layer:seed
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const ordersSeedData:
|
|
1
|
+
import type { OrderPlain } from "../features/orders/schemas/firestore";
|
|
2
|
+
export declare const ordersSeedData: OrderPlain[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const payoutsSeedData: Partial<
|
|
1
|
+
import type { PayoutPlain } from "../features/payments/schemas";
|
|
2
|
+
export declare const payoutsSeedData: Partial<PayoutPlain>[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* WHAT: 10 payouts: COMPLETED (5), PROCESSING (1), PENDING (2 — one with refund deduction), FAILED (2).
|
|
4
4
|
*
|
|
5
5
|
* EXPORTS:
|
|
6
|
-
* payoutsSeedData — Array of Partial<
|
|
6
|
+
* payoutsSeedData — Array of Partial<PayoutPlain> for seed runner
|
|
7
7
|
*
|
|
8
8
|
* @tag domain:payouts,payments
|
|
9
9
|
* @tag layer:seed
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const reviewsSeedData: ReviewDocument[];
|
|
1
|
+
export declare const reviewsSeedData: import("../security/encrypted").Plaintext<import("..").ReviewDocument>[];
|
|
@@ -136,6 +136,13 @@ export const SEED_COLLECTION_PURPOSE = {
|
|
|
136
136
|
/* The ~169-term feature vocabulary: condition, authenticity, release, type,
|
|
137
137
|
* spin, grade, chase. Hand-curated from the crawl. */
|
|
138
138
|
productFeatures: "permanent",
|
|
139
|
+
/*
|
|
140
|
+
* The box-code tables and generation summaries. `permanent` because they
|
|
141
|
+
* are reference data compiled from archived primary sources, not exercise
|
|
142
|
+
* fixtures — a purge that cleared them would leave an admin with no way to
|
|
143
|
+
* answer "what do we say about this code" short of re-running a generator.
|
|
144
|
+
*/
|
|
145
|
+
authenticityKnowledge: "permanent",
|
|
139
146
|
/* Branding, fees, commissions, watermark, legal pages, and the AES-encrypted
|
|
140
147
|
* credentials. 🛑 A purge here would destroy live API keys. */
|
|
141
148
|
siteSettings: "permanent",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type SessionPlain, SESSION_COLLECTION } from "../features/auth/schemas";
|
|
2
2
|
export { SESSION_COLLECTION };
|
|
3
|
-
export declare const sessionsSeedData:
|
|
3
|
+
export declare const sessionsSeedData: SessionPlain[];
|
|
@@ -20,6 +20,11 @@ const NOW = new Date();
|
|
|
20
20
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
21
21
|
const daysAhead = (n) => new Date(NOW.getTime() + n * 86400000);
|
|
22
22
|
export { SESSION_COLLECTION };
|
|
23
|
+
/*
|
|
24
|
+
* 🛑 `SessionPlain`: these fixtures hold real IPs and user-agent strings, and
|
|
25
|
+
* `seed-cli` encrypts them on write through the repository's own nested
|
|
26
|
+
* `piiFields` paths. The document type declares them `Encrypted<string>`.
|
|
27
|
+
*/
|
|
23
28
|
export const sessionsSeedData = [
|
|
24
29
|
// Admin — Chrome Desktop (active)
|
|
25
30
|
{
|
|
@@ -55,7 +55,7 @@ export const siteSettingsSeedData = {
|
|
|
55
55
|
announcementBar: {
|
|
56
56
|
enabled: true,
|
|
57
57
|
message: "🎉 Up to 25% off select listings + free shipping on orders above ₹999 — See Events for codes",
|
|
58
|
-
link:
|
|
58
|
+
link: ROUTES.PUBLIC.EVENTS,
|
|
59
59
|
},
|
|
60
60
|
watermark: {
|
|
61
61
|
type: "text",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SupportTicketPlain } from "../features/support/schemas/firestore";
|
|
2
2
|
/**
|
|
3
3
|
* Derive `searchTxt` for every record from its own subject.
|
|
4
4
|
*
|
|
@@ -13,4 +13,4 @@ import type { SupportTicketDocument } from "../features/support/schemas/firestor
|
|
|
13
13
|
* function of the record's own content, so it stays deterministic and does not
|
|
14
14
|
* reintroduce the `appkit-seed` idempotency problem of Root Cause #25.
|
|
15
15
|
*/
|
|
16
|
-
export declare const supportTicketsSeedData: Partial<
|
|
16
|
+
export declare const supportTicketsSeedData: Partial<SupportTicketPlain>[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* WHAT: open (2), in_progress (2), waiting_on_user (1), resolved (2), closed (1).
|
|
4
4
|
*
|
|
5
5
|
* EXPORTS:
|
|
6
|
-
* supportTicketsSeedData — Array of Partial<
|
|
6
|
+
* supportTicketsSeedData — Array of Partial<SupportTicketPlain> for seed runner
|
|
7
7
|
*
|
|
8
8
|
* @tag domain:support
|
|
9
9
|
* @tag layer:seed
|