tanstack_start_ts 1.0.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/.wrangler/deploy/config.json +1 -0
- package/bunfig.toml +6 -0
- package/components.json +22 -0
- package/config.json +0 -0
- package/dist/client/.assetsignore +2 -0
- package/dist/client/assets/ProductCard-DbIkJAE-.js +1 -0
- package/dist/client/assets/about-AskxOruL.js +1 -0
- package/dist/client/assets/admin-BZVcAQM3.js +1 -0
- package/dist/client/assets/admin.functions--RdVcuBx.js +1 -0
- package/dist/client/assets/admin.login-QgrF_9Fp.js +1 -0
- package/dist/client/assets/affiliate-disclosure-BIAsA-HO.js +1 -0
- package/dist/client/assets/categories-D0N418mK.js +1 -0
- package/dist/client/assets/category._slug-aCaQm14E.js +1 -0
- package/dist/client/assets/contact-PhvO-V15.js +1 -0
- package/dist/client/assets/faq-BsiHWPM8.js +1 -0
- package/dist/client/assets/hero-bg-BP2eVUIX.jpg +0 -0
- package/dist/client/assets/index-BU9rnkF3.js +1 -0
- package/dist/client/assets/index-BpJWZkva.js +1 -0
- package/dist/client/assets/index-vRX-zAyq.js +1 -0
- package/dist/client/assets/login-DteE0ZGp.js +1 -0
- package/dist/client/assets/logo-pSNfLJQk.png +0 -0
- package/dist/client/assets/privacy-B_Pu7040.js +1 -0
- package/dist/client/assets/product-links-BkZ41Gv3.js +1 -0
- package/dist/client/assets/product._id-BVUysCW-.js +1 -0
- package/dist/client/assets/products.functions-cGzRziKO.js +1 -0
- package/dist/client/assets/profile-CveRcKq2.js +1 -0
- package/dist/client/assets/reset-password-ySEjItX_.js +1 -0
- package/dist/client/assets/saved-CHtdQDJF.js +1 -0
- package/dist/client/assets/search-CXWfET1y.js +1 -0
- package/dist/client/assets/signup-CEx90iuV.js +1 -0
- package/dist/client/assets/styles-DrNJG0BO.css +1 -0
- package/dist/client/assets/terms-VqJ9kX9b.js +1 -0
- package/dist/client/assets/update-password-C-d0ix5e.js +1 -0
- package/dist/client/assets/vendor-aria-hidden-DvXkyWUv.js +1 -0
- package/dist/client/assets/vendor-class-variance-authority-5VPnzWs2.js +1 -0
- package/dist/client/assets/vendor-clsx-B-dksMZM.js +1 -0
- package/dist/client/assets/vendor-cookie-es-CS0aJGDi.js +1 -0
- package/dist/client/assets/vendor-detect-node-es-l0sNRNKZ.js +1 -0
- package/dist/client/assets/vendor-floating-ui-core-BlUy28sp.js +1 -0
- package/dist/client/assets/vendor-floating-ui-dom-BxK0hn2R.js +1 -0
- package/dist/client/assets/vendor-floating-ui-react-dom-Bas3975S.js +1 -0
- package/dist/client/assets/vendor-floating-ui-utils-BfYUAVcw.js +1 -0
- package/dist/client/assets/vendor-framer-motion-BMdL-cuX.js +9 -0
- package/dist/client/assets/vendor-get-nonce-C-Z93AgS.js +1 -0
- package/dist/client/assets/vendor-iceberg-js-tWD4K6Lg.js +1 -0
- package/dist/client/assets/vendor-lovable.dev-cloud-auth-js-VuzqtJVg.js +1 -0
- package/dist/client/assets/vendor-lucide-react-b5K2fehp.js +1 -0
- package/dist/client/assets/vendor-motion-dom-BETJamZt.js +1 -0
- package/dist/client/assets/vendor-motion-utils-BuWewJbj.js +1 -0
- package/dist/client/assets/vendor-radix-ui-primitive-Dc_FVRD7.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-accordion-C22Rgxe9.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-arrow-DMHj2mKI.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-avatar-CVPBkFXg.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-collapsible-BvM-4sKX.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-collection-D9KtqmHm.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-compose-refs-Cvq0AS8Z.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-context-CAqqn5Nx.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-dialog-DZ01vOLq.js +5 -0
- package/dist/client/assets/vendor-radix-ui-react-direction-DxZwNuei.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-dismissable-layer-Dqgrs55Y.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-dropdown-menu-0uzvrqkn.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-focus-guards-DgWoZ-fP.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-focus-scope-BLIu5QaL.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-id-bpga_rLa.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-menu-D0qf2r6_.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-popper-BafIylxU.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-portal-BnAsfNCS.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-presence-C-f3UKQ2.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-primitive-zTHwXNoz.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-roving-focus-jyJB8K2E.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-slot-6LXHJrHl.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-callback-ref-E91aPc6s.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-controllable-state-Ca3eMtxa.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-effect-event-CPeX4A3c.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-escape-keydown-7n3YsXFo.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-is-hydrated-C1PY1qNv.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-layout-effect-B3AcGWPy.js +1 -0
- package/dist/client/assets/vendor-radix-ui-react-use-size-CXS04sct.js +1 -0
- package/dist/client/assets/vendor-react-dom-BnNs-kzm.js +9 -0
- package/dist/client/assets/vendor-react-gJPiVnX5.js +1 -0
- package/dist/client/assets/vendor-react-remove-scroll-DHKl-IMP.js +4 -0
- package/dist/client/assets/vendor-react-remove-scroll-bar-CSjdInc2.js +38 -0
- package/dist/client/assets/vendor-react-style-singleton-BqHpkgXn.js +1 -0
- package/dist/client/assets/vendor-scheduler-7OC5HNn7.js +1 -0
- package/dist/client/assets/vendor-seroval-B_Fur-nl.js +3 -0
- package/dist/client/assets/vendor-seroval-plugins-CBHnPkZJ.js +1 -0
- package/dist/client/assets/vendor-sonner-71-LdGG1.js +1 -0
- package/dist/client/assets/vendor-supabase-auth-js-DWrN-bIx.js +18 -0
- package/dist/client/assets/vendor-supabase-functions-js-uY_V-TxC.js +1 -0
- package/dist/client/assets/vendor-supabase-phoenix-BzEf37Ve.js +2 -0
- package/dist/client/assets/vendor-supabase-postgrest-js-C4rBWbCx.js +4 -0
- package/dist/client/assets/vendor-supabase-realtime-js-D6BlOYKE.js +23 -0
- package/dist/client/assets/vendor-supabase-storage-js-BG98L3Zz.js +1 -0
- package/dist/client/assets/vendor-supabase-supabase-js-DCCzdwBJ.js +1 -0
- package/dist/client/assets/vendor-tailwind-merge-Ct12j0u0.js +1 -0
- package/dist/client/assets/vendor-tanstack-history-C617CaxG.js +1 -0
- package/dist/client/assets/vendor-tanstack-query-core-7wuJJ5ZL.js +1 -0
- package/dist/client/assets/vendor-tanstack-react-query-HImzo8sX.js +1 -0
- package/dist/client/assets/vendor-tanstack-react-router-sIZLK-LU.js +1 -0
- package/dist/client/assets/vendor-tanstack-react-start-client-GiYCfWmf.js +1 -0
- package/dist/client/assets/vendor-tanstack-react-store-EvTi3ahh.js +1 -0
- package/dist/client/assets/vendor-tanstack-router-core-Cr7bYUZv.js +1 -0
- package/dist/client/assets/vendor-tanstack-start-client-core-C-00BBOu.js +2 -0
- package/dist/client/assets/vendor-tanstack-start-fn-stubs-l0sNRNKZ.js +1 -0
- package/dist/client/assets/vendor-tanstack-store-BC7mA7pq.js +1 -0
- package/dist/client/assets/vendor-tslib-Du-meQkk.js +1 -0
- package/dist/client/assets/vendor-use-callback-ref-C_fIAtot.js +1 -0
- package/dist/client/assets/vendor-use-sidecar-Bh0DDN6h.js +1 -0
- package/dist/client/assets/vendor-use-sync-external-store-ZvKHXaIn.js +1 -0
- package/dist/client/assets/vendor-vercel-analytics-DwPM5BWs.js +1 -0
- package/dist/client/assets/vendor-zod-By9teAtI.js +1 -0
- package/dist/client/robots.txt +2 -0
- package/dist/server/.dev.vars +5 -0
- package/dist/server/.vite/manifest.json +2528 -0
- package/dist/server/assets/ProductCard-CUPXy5Eo.js +149 -0
- package/dist/server/assets/_tanstack-start-manifest_v-do7vTWFD.js +4 -0
- package/dist/server/assets/about-TfKQw0Ga.js +28 -0
- package/dist/server/assets/admin-DspfJOJk.js +578 -0
- package/dist/server/assets/admin.functions-B78ppWLR.js +645 -0
- package/dist/server/assets/admin.functions-BWlKBoTL.js +93 -0
- package/dist/server/assets/admin.login-CV7QfeA6.js +139 -0
- package/dist/server/assets/affiliate-disclosure-B1wI1cDb.js +86 -0
- package/dist/server/assets/auth-middleware-Cn49MidW.js +62 -0
- package/dist/server/assets/categories-Z7jnAYZP.js +108 -0
- package/dist/server/assets/category._slug-D0XY3FGK.js +112 -0
- package/dist/server/assets/contact-IzyONsXs.js +104 -0
- package/dist/server/assets/faq-aRhB_CR3.js +133 -0
- package/dist/server/assets/hero-bg-BP2eVUIX.jpg +0 -0
- package/dist/server/assets/index-BTPHbXw9.js +221 -0
- package/dist/server/assets/index-ByJkHkrU.js +30 -0
- package/dist/server/assets/login-Dvy5Dm0f.js +175 -0
- package/dist/server/assets/logo-pSNfLJQk.png +0 -0
- package/dist/server/assets/privacy-B6Wiez1P.js +93 -0
- package/dist/server/assets/product-links-CGYEPP56.js +16 -0
- package/dist/server/assets/product._id-BpRa-1z0.js +231 -0
- package/dist/server/assets/products.functions-DSlmibYN.js +209 -0
- package/dist/server/assets/products.functions-DlHkRiqi.js +24 -0
- package/dist/server/assets/profile-B0NWzVAZ.js +314 -0
- package/dist/server/assets/reset-password-CY-rmqMr.js +115 -0
- package/dist/server/assets/saved-7FA6Dbom.js +126 -0
- package/dist/server/assets/search-Yw5c_fZa.js +329 -0
- package/dist/server/assets/signup-UPzgZo4i.js +143 -0
- package/dist/server/assets/styles-DrNJG0BO.css +1 -0
- package/dist/server/assets/terms-CMnX95bP.js +89 -0
- package/dist/server/assets/update-password-Cr94ea8n.js +131 -0
- package/dist/server/assets/vendor-aria-hidden-DPa16MWu.js +122 -0
- package/dist/server/assets/vendor-class-variance-authority-0YxJPB9Y.js +44 -0
- package/dist/server/assets/vendor-cloudflare-unenv-preset-ya0VEFBz.js +250 -0
- package/dist/server/assets/vendor-clsx-DgYk2OaC.js +16 -0
- package/dist/server/assets/vendor-cookie-es-DAoofYiI.js +44 -0
- package/dist/server/assets/vendor-detect-node-es-l0sNRNKZ.js +1 -0
- package/dist/server/assets/vendor-floating-ui-core-3tkK0THV.js +726 -0
- package/dist/server/assets/vendor-floating-ui-dom-C-cPtgJv.js +626 -0
- package/dist/server/assets/vendor-floating-ui-react-dom-CRG6gBpH.js +319 -0
- package/dist/server/assets/vendor-floating-ui-utils-DmXANH-E.js +320 -0
- package/dist/server/assets/vendor-framer-motion-X4zAkX3J.js +1979 -0
- package/dist/server/assets/vendor-get-nonce-DiSj3EHl.js +9 -0
- package/dist/server/assets/vendor-h3-v2-CCobnLY5.js +287 -0
- package/dist/server/assets/vendor-iceberg-js-bHCkXyJn.js +534 -0
- package/dist/server/assets/vendor-isbot-CZ7WjwVs.js +21 -0
- package/dist/server/assets/vendor-lovable.dev-cloud-auth-js-BE03njZw.js +180 -0
- package/dist/server/assets/vendor-lucide-react-Ddew6HYb.js +458 -0
- package/dist/server/assets/vendor-motion-dom-D2MTwGIG.js +5983 -0
- package/dist/server/assets/vendor-motion-utils-LJlIFN6m.js +161 -0
- package/dist/server/assets/vendor-radix-ui-primitive-B-mNdDrH.js +11 -0
- package/dist/server/assets/vendor-radix-ui-react-accordion-1Izf6x00.js +308 -0
- package/dist/server/assets/vendor-radix-ui-react-arrow-B882lnFK.js +23 -0
- package/dist/server/assets/vendor-radix-ui-react-avatar-BVgZt2Ab.js +209 -0
- package/dist/server/assets/vendor-radix-ui-react-collapsible-DCBbMZiS.js +147 -0
- package/dist/server/assets/vendor-radix-ui-react-collection-BZ2srfgU.js +150 -0
- package/dist/server/assets/vendor-radix-ui-react-compose-refs-D3qsKVk1.js +39 -0
- package/dist/server/assets/vendor-radix-ui-react-context-BVoNDLue.js +78 -0
- package/dist/server/assets/vendor-radix-ui-react-dialog-DlxMaNYK.js +406 -0
- package/dist/server/assets/vendor-radix-ui-react-direction-Dt_WDL1t.js +9 -0
- package/dist/server/assets/vendor-radix-ui-react-dismissable-layer-CjsuPohV.js +210 -0
- package/dist/server/assets/vendor-radix-ui-react-dropdown-menu-DVxKumY8.js +263 -0
- package/dist/server/assets/vendor-radix-ui-react-focus-guards-D_6NoePE.js +29 -0
- package/dist/server/assets/vendor-radix-ui-react-focus-scope-DEIhTJJH.js +206 -0
- package/dist/server/assets/vendor-radix-ui-react-id-DFFpgh6m.js +14 -0
- package/dist/server/assets/vendor-radix-ui-react-menu-CiTMLwjT.js +893 -0
- package/dist/server/assets/vendor-radix-ui-react-popper-23Ye2Vyc.js +286 -0
- package/dist/server/assets/vendor-radix-ui-react-portal-CZCH5uPk.js +16 -0
- package/dist/server/assets/vendor-radix-ui-react-presence-CaAULlDU.js +128 -0
- package/dist/server/assets/vendor-radix-ui-react-primitive-BeOk3UYa.js +124 -0
- package/dist/server/assets/vendor-radix-ui-react-roving-focus-DES9GR8l.js +224 -0
- package/dist/server/assets/vendor-radix-ui-react-slot-DUhZbzoH.js +103 -0
- package/dist/server/assets/vendor-radix-ui-react-use-callback-ref-BynBgohw.js +11 -0
- package/dist/server/assets/vendor-radix-ui-react-use-controllable-state-C9KpT6DG.js +69 -0
- package/dist/server/assets/vendor-radix-ui-react-use-effect-event-gpNY2xjS.js +1 -0
- package/dist/server/assets/vendor-radix-ui-react-use-escape-keydown-CcYRQ2pp.js +17 -0
- package/dist/server/assets/vendor-radix-ui-react-use-is-hydrated-D_LcBPXY.js +15 -0
- package/dist/server/assets/vendor-radix-ui-react-use-layout-effect-1LNLXAjr.js +6 -0
- package/dist/server/assets/vendor-radix-ui-react-use-size-D6fiKJQo.js +39 -0
- package/dist/server/assets/vendor-react-DvBrY0qp.js +511 -0
- package/dist/server/assets/vendor-react-dom-yvMLPM0j.js +10484 -0
- package/dist/server/assets/vendor-react-remove-scroll-BNtiEvVN.js +328 -0
- package/dist/server/assets/vendor-react-remove-scroll-bar-hLqRASRk.js +82 -0
- package/dist/server/assets/vendor-react-style-singleton-BXjcXskB.js +69 -0
- package/dist/server/assets/vendor-rou3-3NaGPdI8.js +8 -0
- package/dist/server/assets/vendor-seroval-dJyC-Zhz.js +1775 -0
- package/dist/server/assets/vendor-seroval-plugins-Pq_U2meB.js +58 -0
- package/dist/server/assets/vendor-sonner-CqbjhsRh.js +1086 -0
- package/dist/server/assets/vendor-srvx-BA-baEX9.js +6 -0
- package/dist/server/assets/vendor-supabase-auth-js-D4xjVprw.js +7602 -0
- package/dist/server/assets/vendor-supabase-functions-js-sWy4UYn1.js +322 -0
- package/dist/server/assets/vendor-supabase-phoenix-Bw3Uh2Nn.js +1777 -0
- package/dist/server/assets/vendor-supabase-postgrest-js-AO-BXa7I.js +4938 -0
- package/dist/server/assets/vendor-supabase-realtime-js-BtdNgJbm.js +2111 -0
- package/dist/server/assets/vendor-supabase-storage-js-Dk_MrPYO.js +2679 -0
- package/dist/server/assets/vendor-supabase-supabase-js-D1EEtG3j.js +697 -0
- package/dist/server/assets/vendor-tailwind-merge-BHb_obmC.js +3255 -0
- package/dist/server/assets/vendor-tanstack-history-C4pKJmkt.js +204 -0
- package/dist/server/assets/vendor-tanstack-query-core-PwwTR5ld.js +2552 -0
- package/dist/server/assets/vendor-tanstack-react-query-hhHzXAK1.js +190 -0
- package/dist/server/assets/vendor-tanstack-react-router-XzqpA65A.js +1120 -0
- package/dist/server/assets/vendor-tanstack-react-start-RvWUpvat.js +37 -0
- package/dist/server/assets/vendor-tanstack-react-start-client-gpNY2xjS.js +1 -0
- package/dist/server/assets/vendor-tanstack-react-start-server-uj_Y9pEN.js +15 -0
- package/dist/server/assets/vendor-tanstack-react-store-gpNY2xjS.js +1 -0
- package/dist/server/assets/vendor-tanstack-router-core-6wywV3KN.js +4252 -0
- package/dist/server/assets/vendor-tanstack-start-client-core-DoOKV2pA.js +1741 -0
- package/dist/server/assets/vendor-tanstack-start-fn-stubs-l0sNRNKZ.js +1 -0
- package/dist/server/assets/vendor-tanstack-start-server-core-CsAstXv7.js +1421 -0
- package/dist/server/assets/vendor-tanstack-start-storage-context-DgH9hIJT.js +17 -0
- package/dist/server/assets/vendor-tanstack-store-l0sNRNKZ.js +1 -0
- package/dist/server/assets/vendor-tslib-_8ICaZ64.js +67 -0
- package/dist/server/assets/vendor-unenv-DUvF4YIF.js +544 -0
- package/dist/server/assets/vendor-use-callback-ref-DMFDRvmi.js +66 -0
- package/dist/server/assets/vendor-use-sidecar-DG1tHua4.js +106 -0
- package/dist/server/assets/vendor-use-sync-external-store-rZ8vi0It.js +64 -0
- package/dist/server/assets/vendor-vercel-analytics-oP8BDp0L.js +168 -0
- package/dist/server/assets/vendor-zod-BRyQdbC-.js +3580 -0
- package/dist/server/index.js +158 -0
- package/dist/server/wrangler.json +1 -0
- package/enable-powershell.ps1 +7 -0
- package/eslint.config.js +41 -0
- package/lint.bat +4 -0
- package/package.json +95 -0
- package/public/robots.txt +2 -0
- package/run-npm-build.cjs +20 -0
- package/run-npm-build.js +20 -0
- package/src/assets/hero-bg.jpg +0 -0
- package/src/assets/logo.png +0 -0
- package/src/components/scrollsy/Footer.tsx +68 -0
- package/src/components/scrollsy/LiveTicker.tsx +31 -0
- package/src/components/scrollsy/Logo.tsx +28 -0
- package/src/components/scrollsy/Nav.tsx +255 -0
- package/src/components/scrollsy/ProductCard.tsx +190 -0
- package/src/components/scrollsy/ProductFilters.tsx +226 -0
- package/src/components/scrollsy/SupportWidget.tsx +197 -0
- package/src/components/ui/accordion.tsx +51 -0
- package/src/components/ui/alert-dialog.tsx +115 -0
- package/src/components/ui/alert.tsx +49 -0
- package/src/components/ui/aspect-ratio.tsx +5 -0
- package/src/components/ui/avatar.tsx +47 -0
- package/src/components/ui/badge.tsx +32 -0
- package/src/components/ui/breadcrumb.tsx +101 -0
- package/src/components/ui/button.tsx +49 -0
- package/src/components/ui/calendar.tsx +177 -0
- package/src/components/ui/card.tsx +55 -0
- package/src/components/ui/carousel.tsx +240 -0
- package/src/components/ui/chart.tsx +331 -0
- package/src/components/ui/checkbox.tsx +26 -0
- package/src/components/ui/collapsible.tsx +11 -0
- package/src/components/ui/command.tsx +143 -0
- package/src/components/ui/context-menu.tsx +187 -0
- package/src/components/ui/dialog.tsx +104 -0
- package/src/components/ui/drawer.tsx +98 -0
- package/src/components/ui/dropdown-menu.tsx +188 -0
- package/src/components/ui/form.tsx +171 -0
- package/src/components/ui/hover-card.tsx +27 -0
- package/src/components/ui/input-otp.tsx +69 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/label.tsx +21 -0
- package/src/components/ui/menubar.tsx +229 -0
- package/src/components/ui/navigation-menu.tsx +120 -0
- package/src/components/ui/pagination.tsx +98 -0
- package/src/components/ui/popover.tsx +31 -0
- package/src/components/ui/progress.tsx +25 -0
- package/src/components/ui/radio-group.tsx +36 -0
- package/src/components/ui/resizable.tsx +37 -0
- package/src/components/ui/scroll-area.tsx +44 -0
- package/src/components/ui/select.tsx +152 -0
- package/src/components/ui/separator.tsx +24 -0
- package/src/components/ui/sheet.tsx +122 -0
- package/src/components/ui/sidebar.tsx +744 -0
- package/src/components/ui/skeleton.tsx +7 -0
- package/src/components/ui/slider.tsx +23 -0
- package/src/components/ui/sonner.tsx +23 -0
- package/src/components/ui/switch.tsx +27 -0
- package/src/components/ui/table.tsx +94 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +21 -0
- package/src/components/ui/toggle-group.tsx +57 -0
- package/src/components/ui/toggle.tsx +42 -0
- package/src/components/ui/tooltip.tsx +32 -0
- package/src/hooks/use-auth.ts +26 -0
- package/src/hooks/use-mobile.tsx +19 -0
- package/src/integrations/lovable/index.ts +41 -0
- package/src/lib/admin.functions.ts +564 -0
- package/src/lib/error-capture.ts +27 -0
- package/src/lib/error-page.ts +30 -0
- package/src/lib/product-links.ts +39 -0
- package/src/lib/products.functions.ts +101 -0
- package/src/lib/utils.ts +6 -0
- package/src/routeTree.gen.ts +480 -0
- package/src/router.tsx +16 -0
- package/src/routes/__root.tsx +177 -0
- package/src/routes/about.tsx +66 -0
- package/src/routes/admin.login.tsx +95 -0
- package/src/routes/admin.tsx +811 -0
- package/src/routes/affiliate-disclosure.tsx +35 -0
- package/src/routes/categories.tsx +57 -0
- package/src/routes/category.$slug.tsx +51 -0
- package/src/routes/contact.tsx +69 -0
- package/src/routes/faq.tsx +63 -0
- package/src/routes/index.tsx +269 -0
- package/src/routes/login.tsx +160 -0
- package/src/routes/privacy.tsx +39 -0
- package/src/routes/product.$id.tsx +212 -0
- package/src/routes/profile.tsx +393 -0
- package/src/routes/reset-password.tsx +71 -0
- package/src/routes/saved.tsx +83 -0
- package/src/routes/search.tsx +136 -0
- package/src/routes/signup.tsx +108 -0
- package/src/routes/sitemap[.]xml.ts +34 -0
- package/src/routes/terms.tsx +40 -0
- package/src/routes/update-password.tsx +91 -0
- package/src/server.ts +80 -0
- package/src/start.ts +24 -0
- package/src/styles.css +333 -0
- package/terminal-test-output.txt +1 -0
- package/tsconfig.json +27 -0
- package/vercel.json +26 -0
- package/vite.config.ts +38 -0
- package/wrangler.jsonc +7 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createServerFn } from "@tanstack/react-start";
|
|
2
|
+
import { createClient } from "@supabase/supabase-js";
|
|
3
|
+
import type { Database } from "@/integrations/supabase/types";
|
|
4
|
+
|
|
5
|
+
// Public read using anon — RLS allows public SELECT on products/categories.
|
|
6
|
+
function pub() {
|
|
7
|
+
const url = process.env.SUPABASE_URL ?? import.meta.env.VITE_SUPABASE_URL;
|
|
8
|
+
const key = process.env.SUPABASE_PUBLISHABLE_KEY ?? import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY;
|
|
9
|
+
return createClient<Database>(url!, key!, {
|
|
10
|
+
auth: { persistSession: false, autoRefreshToken: false },
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const getHomeData = createServerFn({ method: "GET" }).handler(async () => {
|
|
15
|
+
const sb = pub();
|
|
16
|
+
const [featured, trending, recent, categories] = await Promise.all([
|
|
17
|
+
sb
|
|
18
|
+
.from("products")
|
|
19
|
+
.select("*")
|
|
20
|
+
.eq("is_featured", true)
|
|
21
|
+
.order("view_count", { ascending: false })
|
|
22
|
+
.limit(8),
|
|
23
|
+
sb
|
|
24
|
+
.from("products")
|
|
25
|
+
.select("*")
|
|
26
|
+
.eq("is_trending", true)
|
|
27
|
+
.order("view_count", { ascending: false })
|
|
28
|
+
.limit(12),
|
|
29
|
+
sb.from("products").select("*").order("created_at", { ascending: false }).limit(24),
|
|
30
|
+
sb.from("categories").select("*").order("sort_order"),
|
|
31
|
+
]);
|
|
32
|
+
return {
|
|
33
|
+
featured: featured.data ?? [],
|
|
34
|
+
trending: trending.data ?? [],
|
|
35
|
+
recent: recent.data ?? [],
|
|
36
|
+
categories: categories.data ?? [],
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export const getCategories = createServerFn({ method: "GET" }).handler(async () => {
|
|
41
|
+
const { data } = await pub().from("categories").select("*").order("sort_order");
|
|
42
|
+
return data ?? [];
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export const getProductsByCategory = createServerFn({ method: "GET" })
|
|
46
|
+
.inputValidator((d: { slug: string }) => d)
|
|
47
|
+
.handler(async ({ data }) => {
|
|
48
|
+
const sb = pub();
|
|
49
|
+
const { data: cat } = await sb
|
|
50
|
+
.from("categories")
|
|
51
|
+
.select("*")
|
|
52
|
+
.eq("slug", data.slug)
|
|
53
|
+
.maybeSingle();
|
|
54
|
+
if (!cat) return { category: null, products: [] };
|
|
55
|
+
const { data: products } = await sb
|
|
56
|
+
.from("products")
|
|
57
|
+
.select("*")
|
|
58
|
+
.eq("category_id", cat.id)
|
|
59
|
+
.order("view_count", { ascending: false });
|
|
60
|
+
return { category: cat, products: products ?? [] };
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export const getProduct = createServerFn({ method: "GET" })
|
|
64
|
+
.inputValidator((d: { id: string }) => d)
|
|
65
|
+
.handler(async ({ data }) => {
|
|
66
|
+
const sb = pub();
|
|
67
|
+
const { data: p } = await sb
|
|
68
|
+
.from("products")
|
|
69
|
+
.select("*, categories(name, slug)")
|
|
70
|
+
.eq("id", data.id)
|
|
71
|
+
.maybeSingle();
|
|
72
|
+
if (!p) return { product: null, related: [] };
|
|
73
|
+
const { data: related } = await sb
|
|
74
|
+
.from("products")
|
|
75
|
+
.select("*")
|
|
76
|
+
.eq("category_id", p.category_id!)
|
|
77
|
+
.neq("id", p.id)
|
|
78
|
+
.limit(8);
|
|
79
|
+
return { product: p, related: related ?? [] };
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export const searchProducts = createServerFn({ method: "GET" })
|
|
83
|
+
.inputValidator((d: { q: string }) => d)
|
|
84
|
+
.handler(async ({ data }) => {
|
|
85
|
+
const sb = pub();
|
|
86
|
+
const q = data.q.trim();
|
|
87
|
+
if (!q) {
|
|
88
|
+
const { data: hot } = await sb
|
|
89
|
+
.from("products")
|
|
90
|
+
.select("*")
|
|
91
|
+
.order("view_count", { ascending: false })
|
|
92
|
+
.limit(24);
|
|
93
|
+
return hot ?? [];
|
|
94
|
+
}
|
|
95
|
+
const { data: results } = await sb
|
|
96
|
+
.from("products")
|
|
97
|
+
.select("*")
|
|
98
|
+
.or(`title.ilike.%${q}%,description.ilike.%${q}%`)
|
|
99
|
+
.limit(48);
|
|
100
|
+
return results ?? [];
|
|
101
|
+
});
|
package/src/lib/utils.ts
ADDED
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
|
|
5
|
+
// noinspection JSUnusedGlobalSymbols
|
|
6
|
+
|
|
7
|
+
// This file was automatically generated by TanStack Router.
|
|
8
|
+
// You should NOT make any changes in this file as it will be overwritten.
|
|
9
|
+
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
|
|
10
|
+
|
|
11
|
+
import { Route as rootRouteImport } from './routes/__root'
|
|
12
|
+
import { Route as UpdatePasswordRouteImport } from './routes/update-password'
|
|
13
|
+
import { Route as TermsRouteImport } from './routes/terms'
|
|
14
|
+
import { Route as SitemapDotxmlRouteImport } from './routes/sitemap[.]xml'
|
|
15
|
+
import { Route as SignupRouteImport } from './routes/signup'
|
|
16
|
+
import { Route as SearchRouteImport } from './routes/search'
|
|
17
|
+
import { Route as SavedRouteImport } from './routes/saved'
|
|
18
|
+
import { Route as ResetPasswordRouteImport } from './routes/reset-password'
|
|
19
|
+
import { Route as ProfileRouteImport } from './routes/profile'
|
|
20
|
+
import { Route as PrivacyRouteImport } from './routes/privacy'
|
|
21
|
+
import { Route as LoginRouteImport } from './routes/login'
|
|
22
|
+
import { Route as FaqRouteImport } from './routes/faq'
|
|
23
|
+
import { Route as ContactRouteImport } from './routes/contact'
|
|
24
|
+
import { Route as CategoriesRouteImport } from './routes/categories'
|
|
25
|
+
import { Route as AffiliateDisclosureRouteImport } from './routes/affiliate-disclosure'
|
|
26
|
+
import { Route as AdminRouteImport } from './routes/admin'
|
|
27
|
+
import { Route as AboutRouteImport } from './routes/about'
|
|
28
|
+
import { Route as IndexRouteImport } from './routes/index'
|
|
29
|
+
import { Route as ProductIdRouteImport } from './routes/product.$id'
|
|
30
|
+
import { Route as CategorySlugRouteImport } from './routes/category.$slug'
|
|
31
|
+
import { Route as AdminLoginRouteImport } from './routes/admin.login'
|
|
32
|
+
|
|
33
|
+
const UpdatePasswordRoute = UpdatePasswordRouteImport.update({
|
|
34
|
+
id: '/update-password',
|
|
35
|
+
path: '/update-password',
|
|
36
|
+
getParentRoute: () => rootRouteImport,
|
|
37
|
+
} as any)
|
|
38
|
+
const TermsRoute = TermsRouteImport.update({
|
|
39
|
+
id: '/terms',
|
|
40
|
+
path: '/terms',
|
|
41
|
+
getParentRoute: () => rootRouteImport,
|
|
42
|
+
} as any)
|
|
43
|
+
const SitemapDotxmlRoute = SitemapDotxmlRouteImport.update({
|
|
44
|
+
id: '/sitemap.xml',
|
|
45
|
+
path: '/sitemap.xml',
|
|
46
|
+
getParentRoute: () => rootRouteImport,
|
|
47
|
+
} as any)
|
|
48
|
+
const SignupRoute = SignupRouteImport.update({
|
|
49
|
+
id: '/signup',
|
|
50
|
+
path: '/signup',
|
|
51
|
+
getParentRoute: () => rootRouteImport,
|
|
52
|
+
} as any)
|
|
53
|
+
const SearchRoute = SearchRouteImport.update({
|
|
54
|
+
id: '/search',
|
|
55
|
+
path: '/search',
|
|
56
|
+
getParentRoute: () => rootRouteImport,
|
|
57
|
+
} as any)
|
|
58
|
+
const SavedRoute = SavedRouteImport.update({
|
|
59
|
+
id: '/saved',
|
|
60
|
+
path: '/saved',
|
|
61
|
+
getParentRoute: () => rootRouteImport,
|
|
62
|
+
} as any)
|
|
63
|
+
const ResetPasswordRoute = ResetPasswordRouteImport.update({
|
|
64
|
+
id: '/reset-password',
|
|
65
|
+
path: '/reset-password',
|
|
66
|
+
getParentRoute: () => rootRouteImport,
|
|
67
|
+
} as any)
|
|
68
|
+
const ProfileRoute = ProfileRouteImport.update({
|
|
69
|
+
id: '/profile',
|
|
70
|
+
path: '/profile',
|
|
71
|
+
getParentRoute: () => rootRouteImport,
|
|
72
|
+
} as any)
|
|
73
|
+
const PrivacyRoute = PrivacyRouteImport.update({
|
|
74
|
+
id: '/privacy',
|
|
75
|
+
path: '/privacy',
|
|
76
|
+
getParentRoute: () => rootRouteImport,
|
|
77
|
+
} as any)
|
|
78
|
+
const LoginRoute = LoginRouteImport.update({
|
|
79
|
+
id: '/login',
|
|
80
|
+
path: '/login',
|
|
81
|
+
getParentRoute: () => rootRouteImport,
|
|
82
|
+
} as any)
|
|
83
|
+
const FaqRoute = FaqRouteImport.update({
|
|
84
|
+
id: '/faq',
|
|
85
|
+
path: '/faq',
|
|
86
|
+
getParentRoute: () => rootRouteImport,
|
|
87
|
+
} as any)
|
|
88
|
+
const ContactRoute = ContactRouteImport.update({
|
|
89
|
+
id: '/contact',
|
|
90
|
+
path: '/contact',
|
|
91
|
+
getParentRoute: () => rootRouteImport,
|
|
92
|
+
} as any)
|
|
93
|
+
const CategoriesRoute = CategoriesRouteImport.update({
|
|
94
|
+
id: '/categories',
|
|
95
|
+
path: '/categories',
|
|
96
|
+
getParentRoute: () => rootRouteImport,
|
|
97
|
+
} as any)
|
|
98
|
+
const AffiliateDisclosureRoute = AffiliateDisclosureRouteImport.update({
|
|
99
|
+
id: '/affiliate-disclosure',
|
|
100
|
+
path: '/affiliate-disclosure',
|
|
101
|
+
getParentRoute: () => rootRouteImport,
|
|
102
|
+
} as any)
|
|
103
|
+
const AdminRoute = AdminRouteImport.update({
|
|
104
|
+
id: '/admin',
|
|
105
|
+
path: '/admin',
|
|
106
|
+
getParentRoute: () => rootRouteImport,
|
|
107
|
+
} as any)
|
|
108
|
+
const AboutRoute = AboutRouteImport.update({
|
|
109
|
+
id: '/about',
|
|
110
|
+
path: '/about',
|
|
111
|
+
getParentRoute: () => rootRouteImport,
|
|
112
|
+
} as any)
|
|
113
|
+
const IndexRoute = IndexRouteImport.update({
|
|
114
|
+
id: '/',
|
|
115
|
+
path: '/',
|
|
116
|
+
getParentRoute: () => rootRouteImport,
|
|
117
|
+
} as any)
|
|
118
|
+
const ProductIdRoute = ProductIdRouteImport.update({
|
|
119
|
+
id: '/product/$id',
|
|
120
|
+
path: '/product/$id',
|
|
121
|
+
getParentRoute: () => rootRouteImport,
|
|
122
|
+
} as any)
|
|
123
|
+
const CategorySlugRoute = CategorySlugRouteImport.update({
|
|
124
|
+
id: '/category/$slug',
|
|
125
|
+
path: '/category/$slug',
|
|
126
|
+
getParentRoute: () => rootRouteImport,
|
|
127
|
+
} as any)
|
|
128
|
+
const AdminLoginRoute = AdminLoginRouteImport.update({
|
|
129
|
+
id: '/login',
|
|
130
|
+
path: '/login',
|
|
131
|
+
getParentRoute: () => AdminRoute,
|
|
132
|
+
} as any)
|
|
133
|
+
|
|
134
|
+
export interface FileRoutesByFullPath {
|
|
135
|
+
'/': typeof IndexRoute
|
|
136
|
+
'/about': typeof AboutRoute
|
|
137
|
+
'/admin': typeof AdminRouteWithChildren
|
|
138
|
+
'/affiliate-disclosure': typeof AffiliateDisclosureRoute
|
|
139
|
+
'/categories': typeof CategoriesRoute
|
|
140
|
+
'/contact': typeof ContactRoute
|
|
141
|
+
'/faq': typeof FaqRoute
|
|
142
|
+
'/login': typeof LoginRoute
|
|
143
|
+
'/privacy': typeof PrivacyRoute
|
|
144
|
+
'/profile': typeof ProfileRoute
|
|
145
|
+
'/reset-password': typeof ResetPasswordRoute
|
|
146
|
+
'/saved': typeof SavedRoute
|
|
147
|
+
'/search': typeof SearchRoute
|
|
148
|
+
'/signup': typeof SignupRoute
|
|
149
|
+
'/sitemap.xml': typeof SitemapDotxmlRoute
|
|
150
|
+
'/terms': typeof TermsRoute
|
|
151
|
+
'/update-password': typeof UpdatePasswordRoute
|
|
152
|
+
'/admin/login': typeof AdminLoginRoute
|
|
153
|
+
'/category/$slug': typeof CategorySlugRoute
|
|
154
|
+
'/product/$id': typeof ProductIdRoute
|
|
155
|
+
}
|
|
156
|
+
export interface FileRoutesByTo {
|
|
157
|
+
'/': typeof IndexRoute
|
|
158
|
+
'/about': typeof AboutRoute
|
|
159
|
+
'/admin': typeof AdminRouteWithChildren
|
|
160
|
+
'/affiliate-disclosure': typeof AffiliateDisclosureRoute
|
|
161
|
+
'/categories': typeof CategoriesRoute
|
|
162
|
+
'/contact': typeof ContactRoute
|
|
163
|
+
'/faq': typeof FaqRoute
|
|
164
|
+
'/login': typeof LoginRoute
|
|
165
|
+
'/privacy': typeof PrivacyRoute
|
|
166
|
+
'/profile': typeof ProfileRoute
|
|
167
|
+
'/reset-password': typeof ResetPasswordRoute
|
|
168
|
+
'/saved': typeof SavedRoute
|
|
169
|
+
'/search': typeof SearchRoute
|
|
170
|
+
'/signup': typeof SignupRoute
|
|
171
|
+
'/sitemap.xml': typeof SitemapDotxmlRoute
|
|
172
|
+
'/terms': typeof TermsRoute
|
|
173
|
+
'/update-password': typeof UpdatePasswordRoute
|
|
174
|
+
'/admin/login': typeof AdminLoginRoute
|
|
175
|
+
'/category/$slug': typeof CategorySlugRoute
|
|
176
|
+
'/product/$id': typeof ProductIdRoute
|
|
177
|
+
}
|
|
178
|
+
export interface FileRoutesById {
|
|
179
|
+
__root__: typeof rootRouteImport
|
|
180
|
+
'/': typeof IndexRoute
|
|
181
|
+
'/about': typeof AboutRoute
|
|
182
|
+
'/admin': typeof AdminRouteWithChildren
|
|
183
|
+
'/affiliate-disclosure': typeof AffiliateDisclosureRoute
|
|
184
|
+
'/categories': typeof CategoriesRoute
|
|
185
|
+
'/contact': typeof ContactRoute
|
|
186
|
+
'/faq': typeof FaqRoute
|
|
187
|
+
'/login': typeof LoginRoute
|
|
188
|
+
'/privacy': typeof PrivacyRoute
|
|
189
|
+
'/profile': typeof ProfileRoute
|
|
190
|
+
'/reset-password': typeof ResetPasswordRoute
|
|
191
|
+
'/saved': typeof SavedRoute
|
|
192
|
+
'/search': typeof SearchRoute
|
|
193
|
+
'/signup': typeof SignupRoute
|
|
194
|
+
'/sitemap.xml': typeof SitemapDotxmlRoute
|
|
195
|
+
'/terms': typeof TermsRoute
|
|
196
|
+
'/update-password': typeof UpdatePasswordRoute
|
|
197
|
+
'/admin/login': typeof AdminLoginRoute
|
|
198
|
+
'/category/$slug': typeof CategorySlugRoute
|
|
199
|
+
'/product/$id': typeof ProductIdRoute
|
|
200
|
+
}
|
|
201
|
+
export interface FileRouteTypes {
|
|
202
|
+
fileRoutesByFullPath: FileRoutesByFullPath
|
|
203
|
+
fullPaths:
|
|
204
|
+
| '/'
|
|
205
|
+
| '/about'
|
|
206
|
+
| '/admin'
|
|
207
|
+
| '/affiliate-disclosure'
|
|
208
|
+
| '/categories'
|
|
209
|
+
| '/contact'
|
|
210
|
+
| '/faq'
|
|
211
|
+
| '/login'
|
|
212
|
+
| '/privacy'
|
|
213
|
+
| '/profile'
|
|
214
|
+
| '/reset-password'
|
|
215
|
+
| '/saved'
|
|
216
|
+
| '/search'
|
|
217
|
+
| '/signup'
|
|
218
|
+
| '/sitemap.xml'
|
|
219
|
+
| '/terms'
|
|
220
|
+
| '/update-password'
|
|
221
|
+
| '/admin/login'
|
|
222
|
+
| '/category/$slug'
|
|
223
|
+
| '/product/$id'
|
|
224
|
+
fileRoutesByTo: FileRoutesByTo
|
|
225
|
+
to:
|
|
226
|
+
| '/'
|
|
227
|
+
| '/about'
|
|
228
|
+
| '/admin'
|
|
229
|
+
| '/affiliate-disclosure'
|
|
230
|
+
| '/categories'
|
|
231
|
+
| '/contact'
|
|
232
|
+
| '/faq'
|
|
233
|
+
| '/login'
|
|
234
|
+
| '/privacy'
|
|
235
|
+
| '/profile'
|
|
236
|
+
| '/reset-password'
|
|
237
|
+
| '/saved'
|
|
238
|
+
| '/search'
|
|
239
|
+
| '/signup'
|
|
240
|
+
| '/sitemap.xml'
|
|
241
|
+
| '/terms'
|
|
242
|
+
| '/update-password'
|
|
243
|
+
| '/admin/login'
|
|
244
|
+
| '/category/$slug'
|
|
245
|
+
| '/product/$id'
|
|
246
|
+
id:
|
|
247
|
+
| '__root__'
|
|
248
|
+
| '/'
|
|
249
|
+
| '/about'
|
|
250
|
+
| '/admin'
|
|
251
|
+
| '/affiliate-disclosure'
|
|
252
|
+
| '/categories'
|
|
253
|
+
| '/contact'
|
|
254
|
+
| '/faq'
|
|
255
|
+
| '/login'
|
|
256
|
+
| '/privacy'
|
|
257
|
+
| '/profile'
|
|
258
|
+
| '/reset-password'
|
|
259
|
+
| '/saved'
|
|
260
|
+
| '/search'
|
|
261
|
+
| '/signup'
|
|
262
|
+
| '/sitemap.xml'
|
|
263
|
+
| '/terms'
|
|
264
|
+
| '/update-password'
|
|
265
|
+
| '/admin/login'
|
|
266
|
+
| '/category/$slug'
|
|
267
|
+
| '/product/$id'
|
|
268
|
+
fileRoutesById: FileRoutesById
|
|
269
|
+
}
|
|
270
|
+
export interface RootRouteChildren {
|
|
271
|
+
IndexRoute: typeof IndexRoute
|
|
272
|
+
AboutRoute: typeof AboutRoute
|
|
273
|
+
AdminRoute: typeof AdminRouteWithChildren
|
|
274
|
+
AffiliateDisclosureRoute: typeof AffiliateDisclosureRoute
|
|
275
|
+
CategoriesRoute: typeof CategoriesRoute
|
|
276
|
+
ContactRoute: typeof ContactRoute
|
|
277
|
+
FaqRoute: typeof FaqRoute
|
|
278
|
+
LoginRoute: typeof LoginRoute
|
|
279
|
+
PrivacyRoute: typeof PrivacyRoute
|
|
280
|
+
ProfileRoute: typeof ProfileRoute
|
|
281
|
+
ResetPasswordRoute: typeof ResetPasswordRoute
|
|
282
|
+
SavedRoute: typeof SavedRoute
|
|
283
|
+
SearchRoute: typeof SearchRoute
|
|
284
|
+
SignupRoute: typeof SignupRoute
|
|
285
|
+
SitemapDotxmlRoute: typeof SitemapDotxmlRoute
|
|
286
|
+
TermsRoute: typeof TermsRoute
|
|
287
|
+
UpdatePasswordRoute: typeof UpdatePasswordRoute
|
|
288
|
+
CategorySlugRoute: typeof CategorySlugRoute
|
|
289
|
+
ProductIdRoute: typeof ProductIdRoute
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
declare module '@tanstack/react-router' {
|
|
293
|
+
interface FileRoutesByPath {
|
|
294
|
+
'/update-password': {
|
|
295
|
+
id: '/update-password'
|
|
296
|
+
path: '/update-password'
|
|
297
|
+
fullPath: '/update-password'
|
|
298
|
+
preLoaderRoute: typeof UpdatePasswordRouteImport
|
|
299
|
+
parentRoute: typeof rootRouteImport
|
|
300
|
+
}
|
|
301
|
+
'/terms': {
|
|
302
|
+
id: '/terms'
|
|
303
|
+
path: '/terms'
|
|
304
|
+
fullPath: '/terms'
|
|
305
|
+
preLoaderRoute: typeof TermsRouteImport
|
|
306
|
+
parentRoute: typeof rootRouteImport
|
|
307
|
+
}
|
|
308
|
+
'/sitemap.xml': {
|
|
309
|
+
id: '/sitemap.xml'
|
|
310
|
+
path: '/sitemap.xml'
|
|
311
|
+
fullPath: '/sitemap.xml'
|
|
312
|
+
preLoaderRoute: typeof SitemapDotxmlRouteImport
|
|
313
|
+
parentRoute: typeof rootRouteImport
|
|
314
|
+
}
|
|
315
|
+
'/signup': {
|
|
316
|
+
id: '/signup'
|
|
317
|
+
path: '/signup'
|
|
318
|
+
fullPath: '/signup'
|
|
319
|
+
preLoaderRoute: typeof SignupRouteImport
|
|
320
|
+
parentRoute: typeof rootRouteImport
|
|
321
|
+
}
|
|
322
|
+
'/search': {
|
|
323
|
+
id: '/search'
|
|
324
|
+
path: '/search'
|
|
325
|
+
fullPath: '/search'
|
|
326
|
+
preLoaderRoute: typeof SearchRouteImport
|
|
327
|
+
parentRoute: typeof rootRouteImport
|
|
328
|
+
}
|
|
329
|
+
'/saved': {
|
|
330
|
+
id: '/saved'
|
|
331
|
+
path: '/saved'
|
|
332
|
+
fullPath: '/saved'
|
|
333
|
+
preLoaderRoute: typeof SavedRouteImport
|
|
334
|
+
parentRoute: typeof rootRouteImport
|
|
335
|
+
}
|
|
336
|
+
'/reset-password': {
|
|
337
|
+
id: '/reset-password'
|
|
338
|
+
path: '/reset-password'
|
|
339
|
+
fullPath: '/reset-password'
|
|
340
|
+
preLoaderRoute: typeof ResetPasswordRouteImport
|
|
341
|
+
parentRoute: typeof rootRouteImport
|
|
342
|
+
}
|
|
343
|
+
'/profile': {
|
|
344
|
+
id: '/profile'
|
|
345
|
+
path: '/profile'
|
|
346
|
+
fullPath: '/profile'
|
|
347
|
+
preLoaderRoute: typeof ProfileRouteImport
|
|
348
|
+
parentRoute: typeof rootRouteImport
|
|
349
|
+
}
|
|
350
|
+
'/privacy': {
|
|
351
|
+
id: '/privacy'
|
|
352
|
+
path: '/privacy'
|
|
353
|
+
fullPath: '/privacy'
|
|
354
|
+
preLoaderRoute: typeof PrivacyRouteImport
|
|
355
|
+
parentRoute: typeof rootRouteImport
|
|
356
|
+
}
|
|
357
|
+
'/login': {
|
|
358
|
+
id: '/login'
|
|
359
|
+
path: '/login'
|
|
360
|
+
fullPath: '/login'
|
|
361
|
+
preLoaderRoute: typeof LoginRouteImport
|
|
362
|
+
parentRoute: typeof rootRouteImport
|
|
363
|
+
}
|
|
364
|
+
'/faq': {
|
|
365
|
+
id: '/faq'
|
|
366
|
+
path: '/faq'
|
|
367
|
+
fullPath: '/faq'
|
|
368
|
+
preLoaderRoute: typeof FaqRouteImport
|
|
369
|
+
parentRoute: typeof rootRouteImport
|
|
370
|
+
}
|
|
371
|
+
'/contact': {
|
|
372
|
+
id: '/contact'
|
|
373
|
+
path: '/contact'
|
|
374
|
+
fullPath: '/contact'
|
|
375
|
+
preLoaderRoute: typeof ContactRouteImport
|
|
376
|
+
parentRoute: typeof rootRouteImport
|
|
377
|
+
}
|
|
378
|
+
'/categories': {
|
|
379
|
+
id: '/categories'
|
|
380
|
+
path: '/categories'
|
|
381
|
+
fullPath: '/categories'
|
|
382
|
+
preLoaderRoute: typeof CategoriesRouteImport
|
|
383
|
+
parentRoute: typeof rootRouteImport
|
|
384
|
+
}
|
|
385
|
+
'/affiliate-disclosure': {
|
|
386
|
+
id: '/affiliate-disclosure'
|
|
387
|
+
path: '/affiliate-disclosure'
|
|
388
|
+
fullPath: '/affiliate-disclosure'
|
|
389
|
+
preLoaderRoute: typeof AffiliateDisclosureRouteImport
|
|
390
|
+
parentRoute: typeof rootRouteImport
|
|
391
|
+
}
|
|
392
|
+
'/admin': {
|
|
393
|
+
id: '/admin'
|
|
394
|
+
path: '/admin'
|
|
395
|
+
fullPath: '/admin'
|
|
396
|
+
preLoaderRoute: typeof AdminRouteImport
|
|
397
|
+
parentRoute: typeof rootRouteImport
|
|
398
|
+
}
|
|
399
|
+
'/about': {
|
|
400
|
+
id: '/about'
|
|
401
|
+
path: '/about'
|
|
402
|
+
fullPath: '/about'
|
|
403
|
+
preLoaderRoute: typeof AboutRouteImport
|
|
404
|
+
parentRoute: typeof rootRouteImport
|
|
405
|
+
}
|
|
406
|
+
'/': {
|
|
407
|
+
id: '/'
|
|
408
|
+
path: '/'
|
|
409
|
+
fullPath: '/'
|
|
410
|
+
preLoaderRoute: typeof IndexRouteImport
|
|
411
|
+
parentRoute: typeof rootRouteImport
|
|
412
|
+
}
|
|
413
|
+
'/product/$id': {
|
|
414
|
+
id: '/product/$id'
|
|
415
|
+
path: '/product/$id'
|
|
416
|
+
fullPath: '/product/$id'
|
|
417
|
+
preLoaderRoute: typeof ProductIdRouteImport
|
|
418
|
+
parentRoute: typeof rootRouteImport
|
|
419
|
+
}
|
|
420
|
+
'/category/$slug': {
|
|
421
|
+
id: '/category/$slug'
|
|
422
|
+
path: '/category/$slug'
|
|
423
|
+
fullPath: '/category/$slug'
|
|
424
|
+
preLoaderRoute: typeof CategorySlugRouteImport
|
|
425
|
+
parentRoute: typeof rootRouteImport
|
|
426
|
+
}
|
|
427
|
+
'/admin/login': {
|
|
428
|
+
id: '/admin/login'
|
|
429
|
+
path: '/login'
|
|
430
|
+
fullPath: '/admin/login'
|
|
431
|
+
preLoaderRoute: typeof AdminLoginRouteImport
|
|
432
|
+
parentRoute: typeof AdminRoute
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
interface AdminRouteChildren {
|
|
438
|
+
AdminLoginRoute: typeof AdminLoginRoute
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
const AdminRouteChildren: AdminRouteChildren = {
|
|
442
|
+
AdminLoginRoute: AdminLoginRoute,
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
const AdminRouteWithChildren = AdminRoute._addFileChildren(AdminRouteChildren)
|
|
446
|
+
|
|
447
|
+
const rootRouteChildren: RootRouteChildren = {
|
|
448
|
+
IndexRoute: IndexRoute,
|
|
449
|
+
AboutRoute: AboutRoute,
|
|
450
|
+
AdminRoute: AdminRouteWithChildren,
|
|
451
|
+
AffiliateDisclosureRoute: AffiliateDisclosureRoute,
|
|
452
|
+
CategoriesRoute: CategoriesRoute,
|
|
453
|
+
ContactRoute: ContactRoute,
|
|
454
|
+
FaqRoute: FaqRoute,
|
|
455
|
+
LoginRoute: LoginRoute,
|
|
456
|
+
PrivacyRoute: PrivacyRoute,
|
|
457
|
+
ProfileRoute: ProfileRoute,
|
|
458
|
+
ResetPasswordRoute: ResetPasswordRoute,
|
|
459
|
+
SavedRoute: SavedRoute,
|
|
460
|
+
SearchRoute: SearchRoute,
|
|
461
|
+
SignupRoute: SignupRoute,
|
|
462
|
+
SitemapDotxmlRoute: SitemapDotxmlRoute,
|
|
463
|
+
TermsRoute: TermsRoute,
|
|
464
|
+
UpdatePasswordRoute: UpdatePasswordRoute,
|
|
465
|
+
CategorySlugRoute: CategorySlugRoute,
|
|
466
|
+
ProductIdRoute: ProductIdRoute,
|
|
467
|
+
}
|
|
468
|
+
export const routeTree = rootRouteImport
|
|
469
|
+
._addFileChildren(rootRouteChildren)
|
|
470
|
+
._addFileTypes<FileRouteTypes>()
|
|
471
|
+
|
|
472
|
+
import type { getRouter } from './router.tsx'
|
|
473
|
+
import type { startInstance } from './start.ts'
|
|
474
|
+
declare module '@tanstack/react-start' {
|
|
475
|
+
interface Register {
|
|
476
|
+
ssr: true
|
|
477
|
+
router: Awaited<ReturnType<typeof getRouter>>
|
|
478
|
+
config: Awaited<ReturnType<typeof startInstance.getOptions>>
|
|
479
|
+
}
|
|
480
|
+
}
|
package/src/router.tsx
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { createRouter } from "@tanstack/react-router";
|
|
3
|
+
import { routeTree } from "./routeTree.gen";
|
|
4
|
+
|
|
5
|
+
export const getRouter = () => {
|
|
6
|
+
const queryClient = new QueryClient();
|
|
7
|
+
|
|
8
|
+
const router = createRouter({
|
|
9
|
+
routeTree,
|
|
10
|
+
context: { queryClient },
|
|
11
|
+
scrollRestoration: true,
|
|
12
|
+
defaultPreloadStaleTime: 0,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
return router;
|
|
16
|
+
};
|