@tokenoftrust/storefront-runner 0.1.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/LICENSE +58 -0
- package/README.md +40 -0
- package/apps/storefront/.dev.vars.example +41 -0
- package/apps/storefront/.env.example +24 -0
- package/apps/storefront/astro.config.mjs +245 -0
- package/apps/storefront/env.d.ts +155 -0
- package/apps/storefront/lib/ensure-preview-reconcile-secret.sh +31 -0
- package/apps/storefront/lib/resolve-cf-token.sh +48 -0
- package/apps/storefront/lib/resolve-tot-credentials.sh +69 -0
- package/apps/storefront/migrations/0000_baseline.sql +54 -0
- package/apps/storefront/migrations/0001_products_fts.sql +9 -0
- package/apps/storefront/migrations/README.md +54 -0
- package/apps/storefront/migrations/meta/0000_snapshot.json +347 -0
- package/apps/storefront/migrations/meta/0001_snapshot.json +347 -0
- package/apps/storefront/migrations/meta/_journal.json +20 -0
- package/apps/storefront/package.json +41 -0
- package/apps/storefront/public/brand/northwind-logo-dark.svg +4 -0
- package/apps/storefront/public/brand/northwind-logo-light.svg +4 -0
- package/apps/storefront/public/brand/northwind-og.svg +13 -0
- package/apps/storefront/public/favicon.svg +5 -0
- package/apps/storefront/public/js/dashboard-team.js +147 -0
- package/apps/storefront/public/js/dashboard-vendor-search.js +115 -0
- package/apps/storefront/src/components/Badge.astro +34 -0
- package/apps/storefront/src/components/Breadcrumbs.astro +45 -0
- package/apps/storefront/src/components/CollectionCard.astro +56 -0
- package/apps/storefront/src/components/EmptyState.astro +35 -0
- package/apps/storefront/src/components/Img.astro +68 -0
- package/apps/storefront/src/components/ProductCard.astro +228 -0
- package/apps/storefront/src/components/Section.astro +39 -0
- package/apps/storefront/src/components/Seo.astro +70 -0
- package/apps/storefront/src/components/WidgetFrame.astro +34 -0
- package/apps/storefront/src/components/auth/AuthBadge.astro +44 -0
- package/apps/storefront/src/components/chrome/AnnouncementBar.astro +108 -0
- package/apps/storefront/src/components/chrome/MegaMenu.astro +26 -0
- package/apps/storefront/src/components/chrome/NavDropdown.astro +116 -0
- package/apps/storefront/src/components/chrome/SiteFooter.astro +181 -0
- package/apps/storefront/src/components/chrome/SiteHeader.astro +181 -0
- package/apps/storefront/src/components/chrome/UtilityNav.astro +79 -0
- package/apps/storefront/src/components/commerce/FoxyLoader.astro +23 -0
- package/apps/storefront/src/components/commerce/PriceDisplay.astro +91 -0
- package/apps/storefront/src/components/commerce/ProductCarousel.astro +197 -0
- package/apps/storefront/src/components/commerce/ProductGrid.astro +75 -0
- package/apps/storefront/src/components/commerce/RatingStars.astro +58 -0
- package/apps/storefront/src/components/compliance/NicotineWarning.astro +33 -0
- package/apps/storefront/src/components/home/Hero.astro +164 -0
- package/apps/storefront/src/components/islands/AgeGate.tsx +105 -0
- package/apps/storefront/src/components/islands/ImageGallery.tsx +237 -0
- package/apps/storefront/src/components/islands/IsolatedAgeGate.tsx +73 -0
- package/apps/storefront/src/components/islands/MobileNav.tsx +239 -0
- package/apps/storefront/src/components/islands/QuickView.tsx +138 -0
- package/apps/storefront/src/components/islands/RecentlyViewed.tsx +122 -0
- package/apps/storefront/src/components/islands/SavedList.tsx +99 -0
- package/apps/storefront/src/components/islands/SearchTypeahead.tsx +248 -0
- package/apps/storefront/src/components/islands/VariantSelector.tsx +378 -0
- package/apps/storefront/src/components/marketing/CardGrid.astro +72 -0
- package/apps/storefront/src/components/marketing/CodeSample.astro +20 -0
- package/apps/storefront/src/components/marketing/CtaBand.astro +24 -0
- package/apps/storefront/src/components/marketing/Faq.astro +37 -0
- package/apps/storefront/src/components/marketing/Integrations.astro +63 -0
- package/apps/storefront/src/components/marketing/MarketingBlocks.astro +53 -0
- package/apps/storefront/src/components/marketing/MarketingCtas.astro +48 -0
- package/apps/storefront/src/components/marketing/MarketingHero.astro +72 -0
- package/apps/storefront/src/components/marketing/ProofStrip.astro +37 -0
- package/apps/storefront/src/components/marketing/SplitCompare.astro +53 -0
- package/apps/storefront/src/components/marketing/Steps.astro +36 -0
- package/apps/storefront/src/components/marketing/Testimonials.astro +38 -0
- package/apps/storefront/src/components/marketing/TrustBar.astro +22 -0
- package/apps/storefront/src/components/nav/Footer.astro +148 -0
- package/apps/storefront/src/components/nav/Header.astro +190 -0
- package/apps/storefront/src/components/plp/ActiveFilters.astro +79 -0
- package/apps/storefront/src/components/plp/FacetSidebar.astro +146 -0
- package/apps/storefront/src/components/plp/Pagination.astro +99 -0
- package/apps/storefront/src/components/plp/SortSelect.astro +64 -0
- package/apps/storefront/src/config/devTenants.ts +16 -0
- package/apps/storefront/src/config/kvTenantResolver.ts +87 -0
- package/apps/storefront/src/config/resolver.ts +46 -0
- package/apps/storefront/src/config/tenants.ts +193 -0
- package/apps/storefront/src/layouts/Layout.astro +303 -0
- package/apps/storefront/src/lib/analytics/index.ts +47 -0
- package/apps/storefront/src/lib/auth/brokerAssertion.ts +136 -0
- package/apps/storefront/src/lib/auth/devAuth.ts +90 -0
- package/apps/storefront/src/lib/auth/gatePage.ts +81 -0
- package/apps/storefront/src/lib/auth/identityToken.ts +341 -0
- package/apps/storefront/src/lib/auth/loginGate.ts +107 -0
- package/apps/storefront/src/lib/auth/route.ts +146 -0
- package/apps/storefront/src/lib/auth/session.ts +203 -0
- package/apps/storefront/src/lib/auth/totAccessClient.ts +503 -0
- package/apps/storefront/src/lib/basePath.ts +41 -0
- package/apps/storefront/src/lib/cfImage.ts +55 -0
- package/apps/storefront/src/lib/chrome/model.ts +65 -0
- package/apps/storefront/src/lib/colors.ts +97 -0
- package/apps/storefront/src/lib/content-edit/client.ts +230 -0
- package/apps/storefront/src/lib/content-edit/index.ts +14 -0
- package/apps/storefront/src/lib/content-edit/route.ts +25 -0
- package/apps/storefront/src/lib/content-edit/types.ts +19 -0
- package/apps/storefront/src/lib/cspStaticHashes.ts +24 -0
- package/apps/storefront/src/lib/d1/catalog.ts +289 -0
- package/apps/storefront/src/lib/dashboard/staffAdmission.ts +43 -0
- package/apps/storefront/src/lib/dashboard/staffVendorAccess.ts +449 -0
- package/apps/storefront/src/lib/dashboard/tenantSelection.ts +136 -0
- package/apps/storefront/src/lib/dashboard/vendorQuery.ts +61 -0
- package/apps/storefront/src/lib/demoGate.ts +113 -0
- package/apps/storefront/src/lib/dev/ai-widget-client.js +127 -0
- package/apps/storefront/src/lib/dev/cliSignInCode.ts +132 -0
- package/apps/storefront/src/lib/diag/redact.ts +20 -0
- package/apps/storefront/src/lib/edgeCache.ts +128 -0
- package/apps/storefront/src/lib/email/magicLinkInviteEmail.ts +62 -0
- package/apps/storefront/src/lib/env.ts +60 -0
- package/apps/storefront/src/lib/fixtures/sampleProducts.ts +130 -0
- package/apps/storefront/src/lib/format.ts +29 -0
- package/apps/storefront/src/lib/foxyCommerce.ts +49 -0
- package/apps/storefront/src/lib/imageAttrs.ts +55 -0
- package/apps/storefront/src/lib/jsonld.ts +136 -0
- package/apps/storefront/src/lib/maintenance.ts +71 -0
- package/apps/storefront/src/lib/memoryKv.ts +32 -0
- package/apps/storefront/src/lib/messaging/messagesClient.ts +143 -0
- package/apps/storefront/src/lib/placeholder.ts +99 -0
- package/apps/storefront/src/lib/previewReload.ts +125 -0
- package/apps/storefront/src/lib/rawMarketingHtml.ts +133 -0
- package/apps/storefront/src/lib/search/index.ts +74 -0
- package/apps/storefront/src/lib/sections.ts +129 -0
- package/apps/storefront/src/lib/securityHeaders.ts +31 -0
- package/apps/storefront/src/lib/storyblok/content-model.ts +289 -0
- package/apps/storefront/src/lib/storyblok/provider.ts +524 -0
- package/apps/storefront/src/lib/tenantRouting.ts +91 -0
- package/apps/storefront/src/lib/tot/ToTClient.ts +177 -0
- package/apps/storefront/src/lib/tot/d1Client.ts +62 -0
- package/apps/storefront/src/lib/tot/query.ts +187 -0
- package/apps/storefront/src/lib/tot/totClientInterface.ts +30 -0
- package/apps/storefront/src/lib/url.ts +119 -0
- package/apps/storefront/src/lib/wishlist.ts +63 -0
- package/apps/storefront/src/middleware/index.ts +413 -0
- package/apps/storefront/src/pages/404.astro +61 -0
- package/apps/storefront/src/pages/[...slug].astro +90 -0
- package/apps/storefront/src/pages/api/auth/logout.ts +21 -0
- package/apps/storefront/src/pages/api/auth/magic-exchange.ts +107 -0
- package/apps/storefront/src/pages/api/auth/send.ts +85 -0
- package/apps/storefront/src/pages/api/auth/verify.ts +135 -0
- package/apps/storefront/src/pages/api/cache-purge.ts +44 -0
- package/apps/storefront/src/pages/api/content-edit/ai-edit.ts +64 -0
- package/apps/storefront/src/pages/api/csp-report.ts +25 -0
- package/apps/storefront/src/pages/api/dashboard/enter-vendor.ts +124 -0
- package/apps/storefront/src/pages/api/dashboard/vendor-search.ts +120 -0
- package/apps/storefront/src/pages/api/dev/cli-signin-code.ts +44 -0
- package/apps/storefront/src/pages/api/newsletter.ts +104 -0
- package/apps/storefront/src/pages/api/request-access.ts +172 -0
- package/apps/storefront/src/pages/auth/login.astro +149 -0
- package/apps/storefront/src/pages/auth/magic.astro +105 -0
- package/apps/storefront/src/pages/capabilities.astro +292 -0
- package/apps/storefront/src/pages/collections/[handle].astro +154 -0
- package/apps/storefront/src/pages/collections/index.astro +59 -0
- package/apps/storefront/src/pages/dashboard/[appDomain]/index.astro +100 -0
- package/apps/storefront/src/pages/dashboard/[appDomain]/team.astro +154 -0
- package/apps/storefront/src/pages/dashboard/index.astro +160 -0
- package/apps/storefront/src/pages/dev.astro +653 -0
- package/apps/storefront/src/pages/index.astro +290 -0
- package/apps/storefront/src/pages/llms.txt.ts +92 -0
- package/apps/storefront/src/pages/products/[handle].astro +443 -0
- package/apps/storefront/src/pages/robots.txt.ts +24 -0
- package/apps/storefront/src/pages/saved.astro +35 -0
- package/apps/storefront/src/pages/search.astro +150 -0
- package/apps/storefront/src/pages/sitemap.xml.ts +78 -0
- package/apps/storefront/src/pages/style-guide/[tenant]/[theme].astro +646 -0
- package/apps/storefront/src/pages/style-guide/[tenant]/index.astro +85 -0
- package/apps/storefront/src/pages/style-guide/index.astro +94 -0
- package/apps/storefront/src/pages/tenants/[id]/[...path].ts +57 -0
- package/apps/storefront/src/styles/global.css +277 -0
- package/apps/storefront/src/themes/reference.ts +61 -0
- package/apps/storefront/src/themes/schema.ts +111 -0
- package/apps/storefront/src/themes/tenants/index.ts +51 -0
- package/apps/storefront/tsconfig.json +16 -0
- package/apps/storefront/vitest.config.ts +22 -0
- package/apps/storefront/wrangler.toml +175 -0
- package/package.json +23 -0
- package/packages/public-runtime/LICENSE +58 -0
- package/packages/public-runtime/package.json +22 -0
- package/packages/public-runtime/src/binary-path.ts +68 -0
- package/packages/public-runtime/src/capabilities.ts +89 -0
- package/packages/public-runtime/src/catalog-api.ts +81 -0
- package/packages/public-runtime/src/catalog-d1.ts +192 -0
- package/packages/public-runtime/src/csp.ts +109 -0
- package/packages/public-runtime/src/customization-preview.ts +197 -0
- package/packages/public-runtime/src/customization-reconcile.ts +63 -0
- package/packages/public-runtime/src/customization-runtime.ts +157 -0
- package/packages/public-runtime/src/customization-scripts.ts +64 -0
- package/packages/public-runtime/src/customization-versioning.ts +95 -0
- package/packages/public-runtime/src/foxy.ts +184 -0
- package/packages/public-runtime/src/index.ts +30 -0
- package/packages/public-runtime/src/product.ts +159 -0
- package/packages/public-runtime/src/search.ts +45 -0
- package/packages/public-runtime/src/tenant-assets.ts +444 -0
- package/packages/public-runtime/src/tenant.ts +243 -0
- package/packages/public-runtime/tsconfig.json +8 -0
- package/packages/public-runtime/vitest.config.ts +8 -0
- package/pnpm-workspace.yaml +7 -0
- package/scripts/build/copy-tenant-assets.mjs +69 -0
- package/scripts/tot-dev.mjs +439 -0
- package/tenants/bigdvapor/content/blog.json +52 -0
- package/tenants/bigdvapor/content/chrome.html +149 -0
- package/tenants/bigdvapor/content/chrome.json +47 -0
- package/tenants/bigdvapor/content/home.html +463 -0
- package/tenants/bigdvapor/content/home.json +73 -0
- package/tenants/bigdvapor/content/pages/about.json +5 -0
- package/tenants/bigdvapor/content/pages/privacy.json +6 -0
- package/tenants/bigdvapor/content/pages/shipping-returns.json +6 -0
- package/tenants/bigdvapor/content/pages-html/blogs/news.html +86 -0
- package/tenants/bigdvapor/content/pages-html/pages/about-us.html +106 -0
- package/tenants/bigdvapor/content/pages-html/pages/contact-us.html +61 -0
- package/tenants/bigdvapor/content/pages-html/pages/privacy-policy.html +72 -0
- package/tenants/bigdvapor/content/pages-html/pages/shipping-returns.html +172 -0
- package/tenants/bigdvapor/content/themes/bigd-navy.json +109 -0
- package/tenants/bigdvapor/public/img/brands/adjust-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/again-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/al-fakher-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/arro-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/cookies-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/core-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/cyclone-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/dinner-lady-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/extre-bar-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/fifty-bar-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/firerose-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/flavor-beast-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/foger-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/kk-energy-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/kumi-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/lost-vape-dispoable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/melo-labs-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/mixo-vape-disposable.webp +0 -0
- package/tenants/bigdvapor/public/img/brands/one-tank-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/oxbar-vape-disposable.webp +0 -0
- package/tenants/bigdvapor/public/img/brands/pillow-talk-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/pod-king-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/raz-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/hero-texas.jpg +0 -0
- package/tenants/bigdvapor/public/img/og.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/AdobeStock_202106312_web.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/CREW_web.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/Hero-Image.jpg +0 -0
- package/tenants/bigdvapor/public/img/tiles/adjust.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/again.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/al-fakher.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/arro.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/cookies.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/core.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/cyclone.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/disposables.svg +23 -0
- package/tenants/bigdvapor/public/logo-wordmark.png +0 -0
- package/tenants/bigdvapor/public/pages/home.css +118 -0
- package/tenants/bigdvapor/public/pages/mkt.css +185 -0
- package/tenants/bigdvapor/public/pages/page.css +148 -0
- package/tenants/bigdvapor/public/themes/bigd-navy.css +73 -0
- package/tenants/bigdvapor/theme.json +12 -0
- package/tenants/giantvapes/content/chrome.html +152 -0
- package/tenants/giantvapes/content/chrome.json +94 -0
- package/tenants/giantvapes/content/home.html +194 -0
- package/tenants/giantvapes/content/home.json +50 -0
- package/tenants/giantvapes/content/pages/about.json +10 -0
- package/tenants/giantvapes/content/pages/privacy.json +6 -0
- package/tenants/giantvapes/content/pages/shipping-returns.json +6 -0
- package/tenants/giantvapes/content/pages-html/blogs/news.html +68 -0
- package/tenants/giantvapes/content/pages-html/pages/about-us.html +95 -0
- package/tenants/giantvapes/content/pages-html/pages/contact-us.html +68 -0
- package/tenants/giantvapes/content/pages-html/pages/privacy-policy.html +65 -0
- package/tenants/giantvapes/content/pages-html/pages/shipping-returns.html +77 -0
- package/tenants/giantvapes/content/themes/giant-navy.json +73 -0
- package/tenants/giantvapes/public/img/hero-suicide-bunny.jpg +0 -0
- package/tenants/giantvapes/public/img/hero.webp +0 -0
- package/tenants/giantvapes/public/img/og.jpg +0 -0
- package/tenants/giantvapes/public/logo-wordmark.png +0 -0
- package/tenants/giantvapes/public/pages/home.css +120 -0
- package/tenants/giantvapes/public/pages/mkt.css +185 -0
- package/tenants/giantvapes/public/pages/page.css +155 -0
- package/tenants/giantvapes/public/themes/giant-navy.css +76 -0
- package/tenants/giantvapes/theme.json +39 -0
- package/tenants/home/content/chrome.json +11 -0
- package/tenants/home/content/home.html +304 -0
- package/tenants/home/content/home.json +13 -0
- package/tenants/home/public/js/storefront.js +210 -0
- package/tenants/home/public/logo-wordmark.png +0 -0
- package/tenants/home/public/pages/storefront.css +212 -0
- package/tenants/home/theme.json +6 -0
- package/tenants/tokenoftrust/.tot/config.json +9 -0
- package/tenants/tokenoftrust/content/chrome.json +55 -0
- package/tenants/tokenoftrust/content/home.html +723 -0
- package/tenants/tokenoftrust/content/home.json +233 -0
- package/tenants/tokenoftrust/content/pages-html/careers.html +231 -0
- package/tenants/tokenoftrust/content/pages-html/company.html +275 -0
- package/tenants/tokenoftrust/content/pages-html/contact/contact-sales.html +188 -0
- package/tenants/tokenoftrust/content/pages-html/contact/startup-apply.html +206 -0
- package/tenants/tokenoftrust/content/pages-html/contact.html +178 -0
- package/tenants/tokenoftrust/content/pages-html/industries/adult-content-age-verification.html +286 -0
- package/tenants/tokenoftrust/content/pages-html/industries/cannabis.html +277 -0
- package/tenants/tokenoftrust/content/pages-html/pact-act-pricing.html +289 -0
- package/tenants/tokenoftrust/content/pages-html/pricing.html +483 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-estimation.html +278 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-gate.html +279 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-verification.html +265 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance.html +173 -0
- package/tenants/tokenoftrust/content/pages-html/product/compliance/aml.html +214 -0
- package/tenants/tokenoftrust/content/pages-html/product/compliance/pact-act.html +226 -0
- package/tenants/tokenoftrust/content/pages-html/product/fraud-prevention.html +254 -0
- package/tenants/tokenoftrust/content/pages-html/product/social-profile-verification.html +212 -0
- package/tenants/tokenoftrust/content/pages-html/product/tax/excise-tax.html +213 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/aml.html +259 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/biometric-selfie.html +305 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/coverage.html +254 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/document-verification.html +306 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/electronic-identity-verification.html +304 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/government-id-verification.html +308 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification.html +183 -0
- package/tenants/tokenoftrust/content/pages-html/product.html +228 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/bigcommerce-integration.html +220 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/shopify-integration.html +221 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/wordpress.html +220 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations.html +172 -0
- package/tenants/tokenoftrust/content/pages-html/resources/refer-a-friend-program.html +317 -0
- package/tenants/tokenoftrust/content/pages-html/resources.html +177 -0
- package/tenants/tokenoftrust/content/pages-html/reviews.html +273 -0
- package/tenants/tokenoftrust/content/pages-html/solutions.html +292 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-alcohol.html +289 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-cigars-and-tobacco.html +286 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-firearm-accessories.html +267 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-peptides.html +273 -0
- package/tenants/tokenoftrust/content/themes/tot-navy.json +88 -0
- package/tenants/tokenoftrust/public/favicon.png +0 -0
- package/tenants/tokenoftrust/public/logo-icon.png +0 -0
- package/tenants/tokenoftrust/public/logo-wordmark.png +0 -0
- package/tenants/tokenoftrust/public/pages/company.css +108 -0
- package/tenants/tokenoftrust/public/pages/home.css +457 -0
- package/tenants/tokenoftrust/public/pages/mkt.css +482 -0
- package/tenants/tokenoftrust/public/pages/pricing.css +214 -0
- package/tenants/tokenoftrust/public/pages/solutions.css +66 -0
- package/tenants/tokenoftrust/public/themes/tot-navy-1.0.0.css +136 -0
- package/tenants/tokenoftrust/public/themes/tot-navy.css +358 -0
- package/tenants/tokenoftrust/theme.json +31 -0
- package/tsconfig.base.json +20 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" type="image/png" href="/tenants/tokenoftrust/favicon.png">
|
|
7
|
+
<title>PACT Act State Report Pricing | Token of Trust</title>
|
|
8
|
+
<meta name="description" content="PACT Act state report pricing for regulated tobacco and vape sellers. Tiered monthly plans by state-report volume. One-time setup fees may apply.">
|
|
9
|
+
<link rel="canonical" href="https://tokenoftrust.com/pact-act-pricing/">
|
|
10
|
+
<meta name="robots" content="index,follow,max-image-preview:large">
|
|
11
|
+
<meta property="og:type" content="website">
|
|
12
|
+
<meta property="og:site_name" content="Token of Trust">
|
|
13
|
+
<meta property="og:title" content="PACT Act State Report Pricing | Token of Trust">
|
|
14
|
+
<meta property="og:description" content="Tiered PACT Act state-report plans for tobacco and vape sellers. One-time setup fees may apply.">
|
|
15
|
+
<meta property="og:url" content="https://tokenoftrust.com/pact-act-pricing/">
|
|
16
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
17
|
+
<meta name="twitter:title" content="PACT Act State Report Pricing">
|
|
18
|
+
<meta name="twitter:description" content="Tiered PACT Act state-report plans for tobacco and vape sellers.">
|
|
19
|
+
<script type="application/ld+json">
|
|
20
|
+
{
|
|
21
|
+
"@context": "https://schema.org",
|
|
22
|
+
"@graph": [
|
|
23
|
+
{
|
|
24
|
+
"@type": "Organization",
|
|
25
|
+
"@id": "https://tokenoftrust.com/#org",
|
|
26
|
+
"name": "Token of Trust",
|
|
27
|
+
"url": "https://tokenoftrust.com/",
|
|
28
|
+
"logo": "/tenants/tokenoftrust/logo-icon.png",
|
|
29
|
+
"slogan": "Real Customers. Less Fraud. More Trust."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"@type": "WebPage",
|
|
33
|
+
"name": "PACT Act State Report Pricing",
|
|
34
|
+
"url": "https://tokenoftrust.com/pact-act-pricing/"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
<link rel="stylesheet" href="/tenants/tokenoftrust/themes/tot-navy.css">
|
|
40
|
+
<link rel="stylesheet" href="/tenants/tokenoftrust/pages/mkt.css">
|
|
41
|
+
<style>
|
|
42
|
+
.tier-grid {
|
|
43
|
+
display: grid;
|
|
44
|
+
grid-template-columns: repeat(5, 1fr);
|
|
45
|
+
gap: 16px;
|
|
46
|
+
margin-top: 40px;
|
|
47
|
+
}
|
|
48
|
+
.tier-card {
|
|
49
|
+
padding: 24px 20px;
|
|
50
|
+
background: #fff;
|
|
51
|
+
border: 1px solid var(--line);
|
|
52
|
+
border-radius: 18px;
|
|
53
|
+
text-align: center;
|
|
54
|
+
}
|
|
55
|
+
.tier-card h3 {
|
|
56
|
+
font-size: 1rem;
|
|
57
|
+
color: var(--navy);
|
|
58
|
+
margin-bottom: 12px;
|
|
59
|
+
}
|
|
60
|
+
.tier-card .price {
|
|
61
|
+
font-size: 1.7rem;
|
|
62
|
+
font-weight: 800;
|
|
63
|
+
letter-spacing: -.03em;
|
|
64
|
+
color: var(--navy);
|
|
65
|
+
}
|
|
66
|
+
.tier-card .price small {
|
|
67
|
+
display: block;
|
|
68
|
+
font-size: .8rem;
|
|
69
|
+
font-weight: 600;
|
|
70
|
+
color: var(--muted);
|
|
71
|
+
margin-top: 2px;
|
|
72
|
+
}
|
|
73
|
+
.tier-card .per-report {
|
|
74
|
+
margin-top: 12px;
|
|
75
|
+
font-size: .85rem;
|
|
76
|
+
color: var(--teal-ink);
|
|
77
|
+
font-weight: 700;
|
|
78
|
+
}
|
|
79
|
+
@media (max-width: 980px) {
|
|
80
|
+
.tier-grid {
|
|
81
|
+
grid-template-columns: 1fr 1fr;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
@media (max-width: 560px) {
|
|
85
|
+
.tier-grid {
|
|
86
|
+
grid-template-columns: 1fr;
|
|
87
|
+
max-width: 360px;
|
|
88
|
+
margin-inline: auto;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
</style>
|
|
92
|
+
</head>
|
|
93
|
+
<body>
|
|
94
|
+
<a class="skip-link" href="#main">Skip to main content</a>
|
|
95
|
+
|
|
96
|
+
<header class="site">
|
|
97
|
+
<div class="container nav-row">
|
|
98
|
+
<a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
|
|
99
|
+
<nav class="primary" id="primaryNav" aria-label="Primary">
|
|
100
|
+
<ul>
|
|
101
|
+
<li><a href="/product/">Platform</a></li>
|
|
102
|
+
<li><a href="/solutions/">Industries</a></li>
|
|
103
|
+
<li><a href="/company/">Company</a></li>
|
|
104
|
+
<li><a href="/resources/">Resources</a></li>
|
|
105
|
+
<li><a class="active" href="/pricing/" aria-current="page">Pricing</a></li>
|
|
106
|
+
<li><a href="https://app.tokenoftrust.com">Login</a></li>
|
|
107
|
+
</ul>
|
|
108
|
+
</nav>
|
|
109
|
+
<div class="nav-cta">
|
|
110
|
+
<a class="btn btn-line" href="/contact/">Book Demo</a>
|
|
111
|
+
<a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
|
|
112
|
+
<button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</header>
|
|
116
|
+
|
|
117
|
+
<main id="main">
|
|
118
|
+
<section class="hero" aria-labelledby="hero-heading">
|
|
119
|
+
<div class="container">
|
|
120
|
+
<span class="eyebrow"><span class="dot"></span>PACT Act compliance</span>
|
|
121
|
+
<h1 id="hero-heading">PACT Act state report <span class="grad">pricing.</span></h1>
|
|
122
|
+
<p class="lede">
|
|
123
|
+
Simple, tiered plans that scale with the number of states you report to. We generate and
|
|
124
|
+
submit the PACT Act reports your tobacco and vape business is required to file — so you
|
|
125
|
+
stay compliant without the monthly paperwork.
|
|
126
|
+
</p>
|
|
127
|
+
<div class="cta-row">
|
|
128
|
+
<a class="btn btn-green" href="/contact/">Contact Sales to Sign Up</a>
|
|
129
|
+
<a class="btn btn-line" href="/product/compliance/pact-act/">How PACT Act Compliance Works</a>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</section>
|
|
133
|
+
|
|
134
|
+
<section aria-labelledby="incl-heading">
|
|
135
|
+
<div class="container">
|
|
136
|
+
<div class="center reveal">
|
|
137
|
+
<span class="kicker">What's included</span>
|
|
138
|
+
<h2 id="incl-heading">Everything your PACT Act filing needs</h2>
|
|
139
|
+
<p class="section-lede">Plans bundle the verification, reporting, and compliance coverage that regulated
|
|
140
|
+
tobacco and vape sellers rely on.</p>
|
|
141
|
+
</div>
|
|
142
|
+
<div class="feature-grid reveal">
|
|
143
|
+
<div class="feat-card accent">
|
|
144
|
+
<h3>PACT Act reporting</h3>
|
|
145
|
+
<p>We generate and submit the state reports your business is required to file each month.</p>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="feat-card accent">
|
|
148
|
+
<h3>Age & identity verification</h3>
|
|
149
|
+
<p>Government ID verification, electronic identity checks, and age verification built in.</p>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="feat-card accent">
|
|
152
|
+
<h3>Excise tax bundling</h3>
|
|
153
|
+
<p>Bundle pricing available with excise tax report generation for a single compliance workflow.</p>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="feat-card accent">
|
|
156
|
+
<h3>Report submission service</h3>
|
|
157
|
+
<p>Add-on submission service handles filing reports to the states on your behalf.</p>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="feat-card accent">
|
|
160
|
+
<h3>Past report generation</h3>
|
|
161
|
+
<p>Need to catch up? Past report generation is available for prior reporting periods.</p>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="feat-card accent">
|
|
164
|
+
<h3>Wide platform support</h3>
|
|
165
|
+
<p>Works with Shopify Plus, Shopify Basic, WooCommerce, BigCommerce, QuickBooks Enterprise, QuickBooks
|
|
166
|
+
Commerce, and Odoo.</p>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</section>
|
|
171
|
+
|
|
172
|
+
<section class="alt-bg" aria-labelledby="price-heading">
|
|
173
|
+
<div class="container">
|
|
174
|
+
<div class="center reveal">
|
|
175
|
+
<span class="kicker">PACT Act report pricing</span>
|
|
176
|
+
<h2 id="price-heading">Pick the tier that matches your state coverage</h2>
|
|
177
|
+
<p class="section-lede">Monthly pricing is based on how many state reports you file. The more states you
|
|
178
|
+
cover, the lower your effective per-report cost.</p>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="tier-grid reveal">
|
|
181
|
+
<div class="tier-card">
|
|
182
|
+
<h3>Up to 3 State Reports</h3>
|
|
183
|
+
<div class="price">$500<small>per month</small></div>
|
|
184
|
+
<div class="per-report">$167 / report</div>
|
|
185
|
+
</div>
|
|
186
|
+
<div class="tier-card">
|
|
187
|
+
<h3>Up to 10 State Reports</h3>
|
|
188
|
+
<div class="price">$1,000<small>per month</small></div>
|
|
189
|
+
<div class="per-report">$100 / report</div>
|
|
190
|
+
</div>
|
|
191
|
+
<div class="tier-card">
|
|
192
|
+
<h3>Up to 20 State Reports</h3>
|
|
193
|
+
<div class="price">$1,500<small>per month</small></div>
|
|
194
|
+
<div class="per-report">$75 / report</div>
|
|
195
|
+
</div>
|
|
196
|
+
<div class="tier-card">
|
|
197
|
+
<h3>Up to 35 State Reports</h3>
|
|
198
|
+
<div class="price">$2,000<small>per month</small></div>
|
|
199
|
+
<div class="per-report">$57 / report</div>
|
|
200
|
+
</div>
|
|
201
|
+
<div class="tier-card">
|
|
202
|
+
<h3>Up to 50 State Reports</h3>
|
|
203
|
+
<div class="price">$2,500<small>per month</small></div>
|
|
204
|
+
<div class="per-report">$50 / report</div>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
<div class="prose reveal" style="margin-top:36px">
|
|
208
|
+
<p>
|
|
209
|
+
One-time setup fees may apply. A report submission service add-on is available, along with
|
|
210
|
+
past report generation. Bundle pricing is available with excise tax report generation, and
|
|
211
|
+
discounts apply for annual contracts and annualized payment. Contact sales for a quote
|
|
212
|
+
tailored to your states and volume.
|
|
213
|
+
</p>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
</section>
|
|
217
|
+
|
|
218
|
+
<section aria-labelledby="reassure-heading">
|
|
219
|
+
<div class="container">
|
|
220
|
+
<div class="center reveal">
|
|
221
|
+
<span class="kicker">Security & privacy</span>
|
|
222
|
+
<h2 id="reassure-heading">Compliance you can trust</h2>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="reassure-row reveal">
|
|
225
|
+
<div class="reassurance">Token of Trust uses 256-bit SSL encryption 100% of the time on every device.</div>
|
|
226
|
+
<div class="reassurance">Token of Trust will NEVER sell your data.</div>
|
|
227
|
+
<div class="reassurance">Compliant with GDPR and global privacy laws.</div>
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
</section>
|
|
231
|
+
|
|
232
|
+
<section aria-labelledby="cta-heading">
|
|
233
|
+
<div class="container">
|
|
234
|
+
<div class="cta-band reveal">
|
|
235
|
+
<span class="kicker">Get started</span>
|
|
236
|
+
<h2 id="cta-heading">Ready to simplify PACT Act compliance?</h2>
|
|
237
|
+
<p>Talk to our team to find the right report tier for your business, or explore how PACT Act compliance
|
|
238
|
+
works for tobacco and vape sellers.</p>
|
|
239
|
+
<div class="cta-row">
|
|
240
|
+
<a class="btn btn-green" href="/contact/">Contact Sales</a>
|
|
241
|
+
<a class="btn btn-line" href="/vlp-cigars-and-tobacco/">Tobacco & Vape Solutions</a>
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
</div>
|
|
245
|
+
</section>
|
|
246
|
+
</main>
|
|
247
|
+
|
|
248
|
+
<footer class="site">
|
|
249
|
+
<div class="container">
|
|
250
|
+
<div class="foot-grid">
|
|
251
|
+
<div>
|
|
252
|
+
<a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
|
|
253
|
+
<p class="foot-note">Customer verification and compliance for regulated ecommerce. 256-bit SSL. We will
|
|
254
|
+
NEVER sell your data. GDPR · CCPA · PIPEDA.</p>
|
|
255
|
+
</div>
|
|
256
|
+
<nav aria-label="Platform footer"><h3>Platform</h3><ul>
|
|
257
|
+
<li><a href="/product/verification/">Identity Verification</a></li>
|
|
258
|
+
<li><a href="/product/age-assurance/">Age Assurance</a></li>
|
|
259
|
+
<li><a href="/product/fraud-prevention/">Fraud Prevention</a></li>
|
|
260
|
+
<li><a href="/product/">All products</a></li>
|
|
261
|
+
</ul></nav>
|
|
262
|
+
<nav aria-label="Industries footer"><h3>Industries</h3><ul>
|
|
263
|
+
<li><a href="/solutions/">All industries</a></li>
|
|
264
|
+
<li><a href="/vlp-cigars-and-tobacco/">Tobacco & Vape</a></li>
|
|
265
|
+
<li><a href="/vlp-alcohol/">Wine & Spirits</a></li>
|
|
266
|
+
<li><a href="/industries/cannabis/">Cannabis</a></li>
|
|
267
|
+
</ul></nav>
|
|
268
|
+
<nav aria-label="Company footer"><h3>Company</h3><ul>
|
|
269
|
+
<li><a href="/company/">Company</a></li>
|
|
270
|
+
<li><a href="/careers/">Careers</a></li>
|
|
271
|
+
<li><a href="/pricing/">Pricing</a></li>
|
|
272
|
+
<li><a href="/contact/">Contact Sales</a></li>
|
|
273
|
+
</ul></nav>
|
|
274
|
+
</div>
|
|
275
|
+
<p class="copyright">© 2026 Token of Trust®. All rights reserved.</p>
|
|
276
|
+
</div>
|
|
277
|
+
</footer>
|
|
278
|
+
|
|
279
|
+
<script>
|
|
280
|
+
(function(){
|
|
281
|
+
var burger = document.getElementById('hamburger');
|
|
282
|
+
var nav = document.getElementById('primaryNav');
|
|
283
|
+
burger.addEventListener('click', function(){ var open = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', open ? 'true' : 'false'); });
|
|
284
|
+
var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } }); }, {threshold:.12});
|
|
285
|
+
document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
|
|
286
|
+
})();
|
|
287
|
+
</script>
|
|
288
|
+
</body>
|
|
289
|
+
</html>
|