@faststore/core 3.100.2 → 3.100.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +47 -47
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/prerender-manifest.js +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/react-loadable-manifest.json +6 -6
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/7098.js +2 -2
  16. package/.next/server/functions-config-manifest.json +1 -1
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/middleware-manifest.json +2 -2
  19. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  20. package/.next/server/pages/api/fs/password-protection/unlock.js +1 -0
  21. package/.next/server/pages/en-US/404.html +2 -2
  22. package/.next/server/pages/en-US/500.html +2 -2
  23. package/.next/server/pages/en-US/checkout.html +2 -2
  24. package/.next/server/pages/en-US/login.html +2 -2
  25. package/.next/server/pages/en-US/{fs-auth-login.html → password-protection.html} +2 -2
  26. package/.next/server/pages/en-US/s.html +2 -2
  27. package/.next/server/pages/en-US.html +2 -2
  28. package/.next/server/pages-manifest.json +1 -1
  29. package/.next/server/src/middleware.js +33 -33
  30. package/.next/server/src/middleware.js.map +1 -1
  31. package/.next/static/chunks/{2927.5a79877943a6bf7c.js → 2927.23bae2c79f0ac0f3.js} +1 -1
  32. package/.next/static/chunks/{UIToast.19a8664c01a00d3a.js → UIToast.de15325248043ce5.js} +1 -1
  33. package/.next/static/chunks/main-a2d1cfe626f2fef1.js +1 -0
  34. package/.next/static/chunks/pages/password-protection-8dece47ea041d372.js +1 -0
  35. package/.next/static/chunks/{webpack-95c583fdc5f7d468.js → webpack-6a844a3f6a390f62.js} +1 -1
  36. package/.next/static/css/033b9397a0c0cf71.css +1 -0
  37. package/.next/static/s20QxDT2pZcGbsFUk-djq/_buildManifest.js +1 -0
  38. package/.next/trace +156 -156
  39. package/.turbo/turbo-build.log +18 -18
  40. package/.turbo/turbo-test.log +10 -9
  41. package/CHANGELOG.md +12 -0
  42. package/package.json +2 -2
  43. package/src/middleware.ts +14 -13
  44. package/src/pages/api/fs/{auth/login.ts → password-protection/unlock.ts} +4 -4
  45. package/src/pages/{fs-auth-login → password-protection}/index.tsx +10 -7
  46. package/src/pages/{fs-auth-login/fs-auth-login.module.scss → password-protection/password-protection.module.scss} +1 -1
  47. package/src/sdk/redirects/index.ts +20 -2
  48. package/src/server/{authentication-service.ts → password-protection-service.ts} +22 -18
  49. package/src/utils/{loginResponse.ts → unlockResponse.ts} +7 -2
  50. package/test/sdk/redirects/index.test.ts +134 -0
  51. package/test/server/{authentication-service.test.ts → password-protection-service.test.ts} +71 -59
  52. package/.next/server/pages/api/fs/auth/login.js +0 -1
  53. package/.next/static/chunks/main-083a618181bb5fbb.js +0 -1
  54. package/.next/static/chunks/pages/fs-auth-login-ba2d1b3ef0ef0415.js +0 -1
  55. package/.next/static/css/3bd4edd425711792.css +0 -1
  56. package/.next/static/qnFvdN4P3Em9yV6nJ1gX8/_buildManifest.js +0 -1
  57. /package/.next/server/pages/api/fs/{auth/login.js.nft.json → password-protection/unlock.js.nft.json} +0 -0
  58. /package/.next/server/pages/{fs-auth-login.js.nft.json → password-protection.js.nft.json} +0 -0
  59. /package/.next/static/{qnFvdN4P3Em9yV6nJ1gX8 → s20QxDT2pZcGbsFUk-djq}/_ssgManifest.js +0 -0
@@ -28,7 +28,7 @@
28
28
  env: 'vtexcommercestable',
29
29
  workspace: 'master'
30
30
  });
31
- </script><meta name="generated-at" content="2026-06-11T13:16:36.279Z"/><title>FastStore Starter | Search results</title><meta name="robots" content="noindex,nofollow"/><meta name="description" content="Search results description"/><meta property="og:title" content="FastStore Starter"/><meta property="og:description" content="Search results description"/><meta property="og:type" content="website"/><meta name="next-head-count" content="10"/><link rel="preconnect" href="https://storeframework.vtexassets.com"/><link rel="dns-prefetch" href="https://storeframework.vtexassets.com"/><meta name="storefront" content="fast_store"/><script>var partytown={
31
+ </script><meta name="generated-at" content="2026-08-28T18:31:04.927Z"/><title>FastStore Starter | Search results</title><meta name="robots" content="noindex,nofollow"/><meta name="description" content="Search results description"/><meta property="og:title" content="FastStore Starter"/><meta property="og:description" content="Search results description"/><meta property="og:type" content="website"/><meta name="next-head-count" content="10"/><link rel="preconnect" href="https://storeframework.vtexassets.com"/><link rel="dns-prefetch" href="https://storeframework.vtexassets.com"/><meta name="storefront" content="fast_store"/><script>var partytown={
32
32
  debug:false,
33
33
  logCalls:false,
34
34
  forward:[...["sendrc"],!window.location.search.includes('gtm_debug=')&&true?'dataLayer.push':null].filter(Boolean)
@@ -39,4 +39,4 @@
39
39
  partytownScript.src = '/~partytown/partytown.js';
40
40
  document.head.appendChild(partytownScript);
41
41
  }
42
- </script><link rel="preload" href="/_next/static/css/146a8678babc61bf.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/146a8678babc61bf.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/2c19433e38fd7533.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2c19433e38fd7533.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/fdc1868dcfd42aa4.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/fdc1868dcfd42aa4.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/2980acad3f8e1028.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2980acad3f8e1028.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-95c583fdc5f7d468.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-d514426edf885c68.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-083a618181bb5fbb.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-35e8dda638ee2672.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9298-1d1ed0a54133cb59.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9173-1670c2bce097f620.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/7191-d221f01388571ca9.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/s-162ba789e6611175.js" defer="" crossorigin=""></script><script src="/_next/static/qnFvdN4P3Em9yV6nJ1gX8/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/qnFvdN4P3Em9yV6nJ1gX8/_ssgManifest.js" defer="" crossorigin=""></script></head><body class="theme"><div id="__next"><span data-fs-sr-only="true">FastStore Starter</span><div data-store-section-name="Alert" style="height:823px;width:100%"></div><div data-store-section-name="Navbar" style="height:823px;width:100%"></div><div data-store-section-name="RegionBar" style="height:823px;width:100%"></div><section class="section section_section__4Hqa8 section-product-gallery"><section data-testid="product-gallery" data-fs-product-listing="true" data-fs-search-loading="true"><section class="section section_section__KG_b8 section-empty-state"><section data-fs-empty-state="true" data-fs-empty-state-variant="default" data-fs-empty-state-bkg-color="light" data-fs-content="empty-state" data-testid="fs-empty-state"><span data-fs-loader="true" data-fs-loader-variant="dark" data-testid="fs-loader"><span data-fs-loader-item="true"></span><span data-fs-loader-item="true"></span><span data-fs-loader-item="true"></span></span></section></section></section></section><div data-store-section-name="Toast" style="height:823px;width:100%"></div><div data-store-section-name="ShoppingAssistant" style="height:823px;width:100%"></div><div data-store-section-name="Footer" style="height:823px;width:100%"></div><div data-store-section-name="RegionPopover" style="height:823px;width:100%"></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"page":{"id":"92bbfe9f-a903-4963-a1dc-2322719ccafa","name":"Search Page","type":"search","status":"published","versionId":"c4bfdfbe-3251-414d-bc40-65d08e524841","versionStatus":"published","sections":[{"id":"1778084503263","name":"Breadcrumb","data":{"fallbackLabel":"All Products","icon":"House","alt":"Go to homepage"}},{"id":"8bc17fa9-1e97-4d61-a69f-0c1990181d94","name":"ProductGallery","data":{"searchTermLabel":"Showing results for:","totalCountLabel":"Results","previousPageButton":{"icon":{"icon":"ArrowLeft","alt":"Arrow Left icon"},"label":"Previous Page"},"loadMorePageButton":{"label":"Load more products"},"sortBySelector":{"label":"Sort by","options":{"price_desc":"Price, descending","price_asc":"Price, ascending","orders_desc":"Top sales","name_asc":"Name, A-Z","name_desc":"Name, Z-A","release_desc":"Release date","discount_desc":"Discount","score_desc":"Relevance"}},"filter":{"title":"Filters","mobileOnly":{"filterButton":{"label":"Filters","icon":{"icon":"FadersHorizontal","alt":"Open Filters"}},"clearButtonLabel":"Clear All","applyButtonLabel":"Apply"}},"productCard":{"showDiscountBadge":true,"bordered":true,"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"sponsoredLabel":"Sponsored","buttonLabel":"Add","outOfStockLabel":"Out of stock"},"emptyGallery":{"title":"Nothing matches your search","firstButton":{"label":"Browse offers","url":"/office","icon":"CircleWavyWarning"},"secondButton":{"label":"Just arrived","url":"/technology","icon":"RocketLaunch"}},"productComparison":{"enabled":false,"labels":{"compareButton":"Compare","clearSelectionButton":"Clear Selection","selectionWarning":"Select at least 2","sidebarComponent":{"title":"Compare Products","filterLabel":"Filters","sortLabels":{"label":"Sort by","options":{"productByName":"Product Name","productByPrice":"Price"}},"toggleFieldLabel":"Show only differences","preferencesLabel":"Preferences","cartButtonLabel":"Add to cart","priceWithTaxLabel":"Price with taxes"},"technicalInformation":{"title":"Technical Information","description":"Technical facts and information about the product."}}}}}],"settings":{"seo":{"titleTemplate":"%s | Search results"},"productGallery":{"itemsPerPage":12,"sortBySelection":"score_desc"}}},"globalSections":{"id":"095366a8-6e81-47a9-91eb-7a08f66611b5","name":"Global Sections","type":"globalSections","status":"published","versionId":"ee055d8f-a856-4f1b-953b-67be634ca7c8","versionStatus":"published","sections":[{"id":"7d1944af-0180-4e73-a58e-48f8cda06f9b","name":"Alert","data":{"link":{"text":"Buy now","to":"/office"},"dismissible":true,"icon":"BellRinging","content":"Get 15% off today: NEW15!"}},{"id":"1778082134460","name":"Navbar","data":{"logo":{"link":{"url":"/","title":"Go To Home"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ab9997f4-8fd6-46f5-99d2-9d5af3ef5e34___6d75a203771d7408d8f0d1c660a076dd.png","alt":"Store logo"},"searchInput":{"placeholder":"Search everything in the store","sort":"score_desc","submitButtonAriaLabel":"Submit Search","searchHistoryTitle":"History","searchTopTitle":"Top search","quickOrderSettings":{"quickOrder":false,"attachmentButton":{"icon":{"icon":"Paperclip","alt":"Attach File"},"ariaLabel":"Attach File"},"skuMatrix":{"triggerButtonLabel":"Select multiple","columns":{"name":"Name","availability":{"label":"Availability","stockDisplaySettings":"showAvailability"},"price":"Price","quantitySelector":"Quantity"}},"invalidQuantityToastLabels":{"title":"Invalid quantity!","message":"The quantity you entered is outside the range of '%{min}' to '%{max}'. The quantity was set to '%{quantity}'."},"outOfStockLabel":"Out of stock","drawer":{"defaultTitle":"Quick Order","columns":{"name":"Product Name","availabilityLabel":"Availability","price":"Price (tax included)","quantity":"Quantity"},"messages":{"alertAriaLabel":"Product availability warning","tableAriaLabel":"Quick order products list","quantityUpdatedTooltip":"Quantity updated to match our inventory","quantityUpdatedAriaLabel":"Quantity adjusted to match available inventory","outOfStockLabel":"Out of stock","availableLabel":"Available","selectQuantityAriaLabel":"Select quantity for {productName}","removeProductAriaLabel":"Remove {productName} from quick order list","invalidQuantityTitle":"Invalid quantity!","emptyStateTitle":"No products found","emptyStateMessage":"No SKUs were found for the provided file. Please check your file and try again."},"alertMessages":{"notFoundAndOutOfStock":"Some of the SKUs were not found or are not available. Please adjust the amount before proceeding to the cart.","notFound":"Some of the SKUs were not found. Please check your CSV file and try again.","outOfStock":"Some of the SKUs are not available. Please adjust the amount before proceeding to the cart."},"footer":{"itemsLabel":"items","addToCartLabel":"Add to Cart","addToCartAriaLabel":"Add items to cart"}},"toastMessages":{"noFileSelected":{"title":"No file selected","message":"Please select a CSV file to search."},"noDataFound":{"title":"No data found","message":"The CSV file could not be processed or contains no valid data. Please check the file format and try again."},"fileProcessingError":{"title":"File processing error","defaultMessage":"Failed to process the CSV file. Please try again."},"fileTimeout":{"message":"The file may be too large, corrupted, or the parser may be stuck."},"noDataAvailable":{"title":"No data available","message":"The CSV file contains no valid data. Please check the file and try again."},"noValidSkus":{"title":"No valid SKUs found","message":"The CSV file does not contain any valid SKUs. Please check the file format and ensure it has a SKU column."}},"accessibilityLabels":{"attachButtonAriaLabel":"Attach File","searchButtonAriaLabel":"Submit Search"},"fileUploadCard":{"title":"File Upload","fileInputAriaLabel":"File upload input","dropzoneAriaLabel":"Drop a file to search in bulk","dropzoneTitle":"Drop your file here or click to browse","dropzoneDragActiveText":"Drop the files here...","dropzoneText":"Drag and drop files here, or click to select files","selectFileButtonLabel":"Select file","downloadTemplateButtonLabel":"Download template","removeButtonAriaLabel":"Remove file","searchButtonLabel":"Search","uploadingStatusText":"Uploading...","completedStatusTemplate":"File ready ({fileSize} KB)","acceptedFileTypes":".csv","errorMessages":{"unexpected":{"title":"Something went wrong","description":"We could not process your file. Please try again."},"unsupported":{"title":"Unsupported file","description":"Please upload a CSV file."},"unreadable":{"title":"File could not be read","description":"The file may be corrupted or in an unsupported encoding."},"invalid-structure":{"title":"Invalid file structure","description":"The CSV does not match the expected format. Use the template."},"empty":{"title":"Empty file","description":"The file has no data. Add at least one row."},"too-large":{"title":"File too large","description":"Please upload a file smaller than the maximum allowed size."},"no-products-found":{"title":"No products found","description":"Please verify the SKUs in your file and try again."}}}},"loadingLabel":"Loading...","collapseSearchAriaLabel":"Collapse search bar"},"signInButton":{"icon":{"icon":"User","alt":"User"},"label":"Sign in","myAccountLabel":"My account"},"cartIcon":{"icon":"ShoppingCart","alt":"Shopping cart"},"navigation":{"regionalization":{"enabled":true,"icon":{"icon":"MapPin","alt":"MapPin"},"label":"Set Location"},"localizationButton":{"shouldDisplayLocalizationButton":false,"icon":{"icon":"Globe"},"ariaLabel":"Open localization selector"},"localizationSelector":{"title":"Select language and currency","languageLabel":"Language","currencyLabel":"Currency","description":"Changing the language or currency may affect prices, promotions and availability.","saveLabel":"Save","errorMessages":{"noBindingFound":"Unable to save configuration. No matching store found.","invalidUrl":"Invalid redirect URL. Please try again.","noCurrencies":"No currencies available for this language.","defaultError":"An error occurred. Please try again."}},"pageLinks":[{"text":"Office","url":"/office"},{"text":"Technology","url":"/technology"}],"menu":{"icon":{"icon":"List","alt":"List"}},"home":{"label":"Go to Home"}}}},{"id":"a8a2a6c1-3577-47ee-9fe2-f1d196d58427","name":"RegionBar","data":{"icon":{"icon":"MapPin","alt":"Map Pin icon"},"label":"Set your location","editLabel":"Edit","buttonIcon":{"icon":"CaretRight","alt":"Caret Right icon"}}},{"id":"cfbbcef5-f804-488b-ab22-048ff3e88788","name":"CartSidebar","data":{"title":"Your Cart","alert":{"icon":{"icon":"Truck","alt":"Arrow Right icon"},"text":"Free shipping starts at $300"},"emptyCart":{"title":"Your Cart is empty","buttonLabel":"Start Shopping"},"checkoutButton":{"label":"Checkout","loadingLabel":"Loading...","icon":{"icon":"ArrowRight","alt":"Arrow Right icon"}},"quantitySelector":{"useUnitMultiplier":false},"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"}}},{"id":"7f3a50f0-f252-4b3a-b704-13402f31c32c","name":"RegionModal","data":{"title":"Set your location","description":"Prices, offers and availability may vary according to your location.","closeButtonAriaLabel":"Close Region Modal","inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code"},"idkPostalCodeLink":{"icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"},"text":"I don't know my Postal Code"}}},{"id":"fddde296-1946-4aa1-b428-24e4b625d615","name":"Children","data":{}},{"id":"a1fb4bef-3864-48f4-baae-7705d0e81bbc","name":"ShoppingAssistant","data":{}},{"id":"93bd4542-236d-499c-8716-b8a4152aec10","name":"Footer","data":{"incentives":[{"title":" ","firstLineText":"Trusted","icon":"ShieldCheck","secondLineText":"by Safecon"},{"title":" ","firstLineText":"Free","icon":"Calendar","secondLineText":"Return"},{"title":" ","firstLineText":"Pickup","icon":"Storefront","secondLineText":"Options"},{"firstLineText":"Free","secondLineText":"Shipping","title":" ","icon":"Truck"}],"footerLinks":[{"items":[{"text":"About Us","url":"/"},{"text":"Our Blog","url":"/"},{"text":"Stores","url":"https://starter.vtex.app"},{"text":"Work With Us","url":"https://starter.vtex.app"}],"sectionTitle":"Our company"},{"items":[{"text":"Returns and Exchanges","url":"/"},{"text":"Product Recall","url":"/"},{"text":"Gift Cards","url":"/"}],"sectionTitle":"Orders and Purchases"},{"items":[{"text":"Support Center","url":"/"},{"text":"Support \u0026 Services","url":"/"},{"text":"Contact Us","url":"/"}],"sectionTitle":"Support \u0026 Services"},{"items":[{"text":"Affiliate Program","url":"/"},{"text":"Marketplace","url":"/"}],"sectionTitle":"Partnerships"}],"footerSocial":{"title":"Follow Us","socialLinks":[{"icon":{"icon":"Facebook"},"alt":"Facebook","url":"https://www.facebook.com"},{"icon":{"icon":"Instagram"},"alt":"Instagram","url":"https://www.instagram.com"},{"icon":{"icon":"Pinterest"},"alt":"Pinterest","url":"https://www.pinterest.com"},{"icon":{"icon":"Twitter"},"alt":"Twitter","url":"https://www.twitter.com"}]},"logo":{"link":{"url":"https://starter.vtex.app/","title":"FastStore Starter"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ec191c4a-32d8-41a9-9255-f319819bc98c___c24a66e2bef2c3f2bea07571a3636804.png","alt":"Store Logo"},"acceptedPaymentMethods":{"showPaymentMethods":true,"title":"Payment Methods","paymentMethods":[{"icon":{"icon":"Diners"},"alt":"Diners Club"},{"icon":{"icon":"Visa"},"alt":"Visa"},{"icon":{"icon":"Mastercard"},"alt":"Mastercard"},{"icon":{"icon":"EloCard"},"alt":"Elo Card"},{"icon":{"icon":"PayPal"},"alt":"PayPal"},{"icon":{"icon":"GooglePay"},"alt":"GooglePay"},{"icon":{"icon":"ApplePay"},"alt":"Apple Pay"}]},"copyrightInfo":"This website uses VTEX technology. In-store price may vary. Prices and offers are subject to change. 2023 Brandless Store. All rights reserved. Store is a trademark of Store and its affiliated companies. Mount St, 000, New York / NY - 00000."}},{"id":"1778083148729","name":"Search","data":{"searchInput":{"placeholder":"Search everything in the store","icon":{"icon":"MagnifyingGlass","alt":"Magnifying glass"}},"searchHistory":{"title":"History","clearButtonLabel":"Clear history","icon":{"icon":"ClockClockwise","alt":"History"},"maxItems":5},"searchTop":{"title":"Top search","maxItems":5},"searchAutocomplete":{"icon":{"alt":"Magnifying glass"},"maxItems":5},"searchProducts":{"title":"Suggested products","maxItems":5}}},{"id":"1778083171641","name":"RegionPopover","data":{"title":"Set your location","closeButtonAriaLabel":"Close Region Popover","inputField":{},"textBeforeLocation":"Your current location is","textAfterLocation":"Use the field below to change it.","description":"Offers and availability vary by location","idkPostalCodeLink":{"icon":{}}}}],"settings":{"regionalization":{"inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code","noProductsAvailableErrorMessage":"There are no products available for %s.","buttonActionText":"Apply","errorMessageHelper":"Try using a different postal code.","loadingLabel":"..."},"idkPostalCodeLink":{"text":"I don't know my Postal Code","icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"}}},"deliveryPromise":{"deliveryMethods":{"title":"Delivery Methods","description":"Offers and availability vary by location.","setLocationButtonLabel":"Set Location","allDeliveryMethods":"All delivery methods","delivery":"Shipping to","pickupInPoint":"Pickup at","pickupNearby":"Pickup Nearby","pickupAll":{"enabled":false,"label":"Pickup Anywhere"}},"regionSlider":{"title":{"setLocation":"Set Location","changeLocation":"Change Location","changePickupPoint":"Change Store","globalChangePickupPoint":"Change Store"},"pickupPointChangeApplyButtonLabel":"Update","pickupPointClearFilterButtonLabel":"Clear filter","choosePickupPointAriaLabel":"Choose a store","noPickupPointsAvailableInLocation":"No stores near location."},"filterByPickupPoint":{"enabled":true,"label":"Filter by Store","icon":{"icon":"Storefront","alt":"Storefront icon"}},"deliveryOptions":{"enabled":true,"title":"Delivery Option","allDeliveryOptions":"All delivery options"},"deliveryPromiseBadges":{"enabled":true,"delivery":"Available for shipping","deliveryUnavailable":"Unavailable for shipping","pickupInPoint":"Available for pickup","pickupInPointUnavailable":"Unavailable for pickup"},"inStock":{"enabled":false,"title":"Availability","label":"In-stock only"}},"filters":{"filterFacetRange":{"minLabel":"Min","maxLabel":"Max","minPriceErrorMessage":"Min price can't be greater than max","maxPriceErrorMessage":"Max price can't be smaller than min"}},"loading":{"label":"Loading..."}}}},"__N_SSG":true},"page":"/s","query":{},"buildId":"qnFvdN4P3Em9yV6nJ1gX8","isFallback":false,"gsp":true,"locale":"en-US","locales":["en-US"],"defaultLocale":"en-US","scriptLoader":[]}</script></body></html>
42
+ </script><link rel="preload" href="/_next/static/css/146a8678babc61bf.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/146a8678babc61bf.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/2c19433e38fd7533.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2c19433e38fd7533.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/fdc1868dcfd42aa4.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/fdc1868dcfd42aa4.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/2980acad3f8e1028.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2980acad3f8e1028.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6a844a3f6a390f62.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-d514426edf885c68.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-a2d1cfe626f2fef1.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-35e8dda638ee2672.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9298-1d1ed0a54133cb59.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9173-1670c2bce097f620.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/7191-d221f01388571ca9.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/s-162ba789e6611175.js" defer="" crossorigin=""></script><script src="/_next/static/s20QxDT2pZcGbsFUk-djq/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/s20QxDT2pZcGbsFUk-djq/_ssgManifest.js" defer="" crossorigin=""></script></head><body class="theme"><div id="__next"><span data-fs-sr-only="true">FastStore Starter</span><div data-store-section-name="Alert" style="height:823px;width:100%"></div><div data-store-section-name="Navbar" style="height:823px;width:100%"></div><div data-store-section-name="RegionBar" style="height:823px;width:100%"></div><section class="section section_section__4Hqa8 section-product-gallery"><section data-testid="product-gallery" data-fs-product-listing="true" data-fs-search-loading="true"><section class="section section_section__KG_b8 section-empty-state"><section data-fs-empty-state="true" data-fs-empty-state-variant="default" data-fs-empty-state-bkg-color="light" data-fs-content="empty-state" data-testid="fs-empty-state"><span data-fs-loader="true" data-fs-loader-variant="dark" data-testid="fs-loader"><span data-fs-loader-item="true"></span><span data-fs-loader-item="true"></span><span data-fs-loader-item="true"></span></span></section></section></section></section><div data-store-section-name="Toast" style="height:823px;width:100%"></div><div data-store-section-name="ShoppingAssistant" style="height:823px;width:100%"></div><div data-store-section-name="Footer" style="height:823px;width:100%"></div><div data-store-section-name="RegionPopover" style="height:823px;width:100%"></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"page":{"id":"92bbfe9f-a903-4963-a1dc-2322719ccafa","name":"Search Page","type":"search","status":"published","versionId":"c4bfdfbe-3251-414d-bc40-65d08e524841","versionStatus":"published","sections":[{"id":"1778084503263","name":"Breadcrumb","data":{"fallbackLabel":"All Products","icon":"House","alt":"Go to homepage"}},{"id":"8bc17fa9-1e97-4d61-a69f-0c1990181d94","name":"ProductGallery","data":{"searchTermLabel":"Showing results for:","totalCountLabel":"Results","previousPageButton":{"icon":{"icon":"ArrowLeft","alt":"Arrow Left icon"},"label":"Previous Page"},"loadMorePageButton":{"label":"Load more products"},"sortBySelector":{"label":"Sort by","options":{"price_desc":"Price, descending","price_asc":"Price, ascending","orders_desc":"Top sales","name_asc":"Name, A-Z","name_desc":"Name, Z-A","release_desc":"Release date","discount_desc":"Discount","score_desc":"Relevance"}},"filter":{"title":"Filters","mobileOnly":{"filterButton":{"label":"Filters","icon":{"icon":"FadersHorizontal","alt":"Open Filters"}},"clearButtonLabel":"Clear All","applyButtonLabel":"Apply"}},"productCard":{"showDiscountBadge":true,"bordered":true,"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"sponsoredLabel":"Sponsored","buttonLabel":"Add","outOfStockLabel":"Out of stock"},"emptyGallery":{"title":"Nothing matches your search","firstButton":{"label":"Browse offers","url":"/office","icon":"CircleWavyWarning"},"secondButton":{"label":"Just arrived","url":"/technology","icon":"RocketLaunch"}},"productComparison":{"enabled":false,"labels":{"compareButton":"Compare","clearSelectionButton":"Clear Selection","selectionWarning":"Select at least 2","sidebarComponent":{"title":"Compare Products","filterLabel":"Filters","sortLabels":{"label":"Sort by","options":{"productByName":"Product Name","productByPrice":"Price"}},"toggleFieldLabel":"Show only differences","preferencesLabel":"Preferences","cartButtonLabel":"Add to cart","priceWithTaxLabel":"Price with taxes"},"technicalInformation":{"title":"Technical Information","description":"Technical facts and information about the product."}}}}}],"settings":{"seo":{"titleTemplate":"%s | Search results"},"productGallery":{"itemsPerPage":12,"sortBySelection":"score_desc"}}},"globalSections":{"id":"095366a8-6e81-47a9-91eb-7a08f66611b5","name":"Global Sections","type":"globalSections","status":"published","versionId":"ee055d8f-a856-4f1b-953b-67be634ca7c8","versionStatus":"published","sections":[{"id":"7d1944af-0180-4e73-a58e-48f8cda06f9b","name":"Alert","data":{"link":{"text":"Buy now","to":"/office"},"dismissible":true,"icon":"BellRinging","content":"Get 15% off today: NEW15!"}},{"id":"1778082134460","name":"Navbar","data":{"logo":{"link":{"url":"/","title":"Go To Home"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ab9997f4-8fd6-46f5-99d2-9d5af3ef5e34___6d75a203771d7408d8f0d1c660a076dd.png","alt":"Store logo"},"searchInput":{"placeholder":"Search everything in the store","sort":"score_desc","submitButtonAriaLabel":"Submit Search","searchHistoryTitle":"History","searchTopTitle":"Top search","quickOrderSettings":{"quickOrder":false,"attachmentButton":{"icon":{"icon":"Paperclip","alt":"Attach File"},"ariaLabel":"Attach File"},"skuMatrix":{"triggerButtonLabel":"Select multiple","columns":{"name":"Name","availability":{"label":"Availability","stockDisplaySettings":"showAvailability"},"price":"Price","quantitySelector":"Quantity"}},"invalidQuantityToastLabels":{"title":"Invalid quantity!","message":"The quantity you entered is outside the range of '%{min}' to '%{max}'. The quantity was set to '%{quantity}'."},"outOfStockLabel":"Out of stock","drawer":{"defaultTitle":"Quick Order","columns":{"name":"Product Name","availabilityLabel":"Availability","price":"Price (tax included)","quantity":"Quantity"},"messages":{"alertAriaLabel":"Product availability warning","tableAriaLabel":"Quick order products list","quantityUpdatedTooltip":"Quantity updated to match our inventory","quantityUpdatedAriaLabel":"Quantity adjusted to match available inventory","outOfStockLabel":"Out of stock","availableLabel":"Available","selectQuantityAriaLabel":"Select quantity for {productName}","removeProductAriaLabel":"Remove {productName} from quick order list","invalidQuantityTitle":"Invalid quantity!","emptyStateTitle":"No products found","emptyStateMessage":"No SKUs were found for the provided file. Please check your file and try again."},"alertMessages":{"notFoundAndOutOfStock":"Some of the SKUs were not found or are not available. Please adjust the amount before proceeding to the cart.","notFound":"Some of the SKUs were not found. Please check your CSV file and try again.","outOfStock":"Some of the SKUs are not available. Please adjust the amount before proceeding to the cart."},"footer":{"itemsLabel":"items","addToCartLabel":"Add to Cart","addToCartAriaLabel":"Add items to cart"}},"toastMessages":{"noFileSelected":{"title":"No file selected","message":"Please select a CSV file to search."},"noDataFound":{"title":"No data found","message":"The CSV file could not be processed or contains no valid data. Please check the file format and try again."},"fileProcessingError":{"title":"File processing error","defaultMessage":"Failed to process the CSV file. Please try again."},"fileTimeout":{"message":"The file may be too large, corrupted, or the parser may be stuck."},"noDataAvailable":{"title":"No data available","message":"The CSV file contains no valid data. Please check the file and try again."},"noValidSkus":{"title":"No valid SKUs found","message":"The CSV file does not contain any valid SKUs. Please check the file format and ensure it has a SKU column."}},"accessibilityLabels":{"attachButtonAriaLabel":"Attach File","searchButtonAriaLabel":"Submit Search"},"fileUploadCard":{"title":"File Upload","fileInputAriaLabel":"File upload input","dropzoneAriaLabel":"Drop a file to search in bulk","dropzoneTitle":"Drop your file here or click to browse","dropzoneDragActiveText":"Drop the files here...","dropzoneText":"Drag and drop files here, or click to select files","selectFileButtonLabel":"Select file","downloadTemplateButtonLabel":"Download template","removeButtonAriaLabel":"Remove file","searchButtonLabel":"Search","uploadingStatusText":"Uploading...","completedStatusTemplate":"File ready ({fileSize} KB)","acceptedFileTypes":".csv","errorMessages":{"unexpected":{"title":"Something went wrong","description":"We could not process your file. Please try again."},"unsupported":{"title":"Unsupported file","description":"Please upload a CSV file."},"unreadable":{"title":"File could not be read","description":"The file may be corrupted or in an unsupported encoding."},"invalid-structure":{"title":"Invalid file structure","description":"The CSV does not match the expected format. Use the template."},"empty":{"title":"Empty file","description":"The file has no data. Add at least one row."},"too-large":{"title":"File too large","description":"Please upload a file smaller than the maximum allowed size."},"no-products-found":{"title":"No products found","description":"Please verify the SKUs in your file and try again."}}}},"loadingLabel":"Loading...","collapseSearchAriaLabel":"Collapse search bar"},"signInButton":{"icon":{"icon":"User","alt":"User"},"label":"Sign in","myAccountLabel":"My account"},"cartIcon":{"icon":"ShoppingCart","alt":"Shopping cart"},"navigation":{"regionalization":{"enabled":true,"icon":{"icon":"MapPin","alt":"MapPin"},"label":"Set Location"},"localizationButton":{"shouldDisplayLocalizationButton":false,"icon":{"icon":"Globe"},"ariaLabel":"Open localization selector"},"localizationSelector":{"title":"Select language and currency","languageLabel":"Language","currencyLabel":"Currency","description":"Changing the language or currency may affect prices, promotions and availability.","saveLabel":"Save","errorMessages":{"noBindingFound":"Unable to save configuration. No matching store found.","invalidUrl":"Invalid redirect URL. Please try again.","noCurrencies":"No currencies available for this language.","defaultError":"An error occurred. Please try again."}},"pageLinks":[{"text":"Office","url":"/office"},{"text":"Technology","url":"/technology"}],"menu":{"icon":{"icon":"List","alt":"List"}},"home":{"label":"Go to Home"}}}},{"id":"a8a2a6c1-3577-47ee-9fe2-f1d196d58427","name":"RegionBar","data":{"icon":{"icon":"MapPin","alt":"Map Pin icon"},"label":"Set your location","editLabel":"Edit","buttonIcon":{"icon":"CaretRight","alt":"Caret Right icon"}}},{"id":"cfbbcef5-f804-488b-ab22-048ff3e88788","name":"CartSidebar","data":{"title":"Your Cart","alert":{"icon":{"icon":"Truck","alt":"Arrow Right icon"},"text":"Free shipping starts at $300"},"emptyCart":{"title":"Your Cart is empty","buttonLabel":"Start Shopping"},"checkoutButton":{"label":"Checkout","loadingLabel":"Loading...","icon":{"icon":"ArrowRight","alt":"Arrow Right icon"}},"quantitySelector":{"useUnitMultiplier":false},"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"}}},{"id":"7f3a50f0-f252-4b3a-b704-13402f31c32c","name":"RegionModal","data":{"title":"Set your location","description":"Prices, offers and availability may vary according to your location.","closeButtonAriaLabel":"Close Region Modal","inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code"},"idkPostalCodeLink":{"icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"},"text":"I don't know my Postal Code"}}},{"id":"fddde296-1946-4aa1-b428-24e4b625d615","name":"Children","data":{}},{"id":"a1fb4bef-3864-48f4-baae-7705d0e81bbc","name":"ShoppingAssistant","data":{}},{"id":"93bd4542-236d-499c-8716-b8a4152aec10","name":"Footer","data":{"incentives":[{"title":" ","firstLineText":"Trusted","icon":"ShieldCheck","secondLineText":"by Safecon"},{"title":" ","firstLineText":"Free","icon":"Calendar","secondLineText":"Return"},{"title":" ","firstLineText":"Pickup","icon":"Storefront","secondLineText":"Options"},{"firstLineText":"Free","secondLineText":"Shipping","title":" ","icon":"Truck"}],"footerLinks":[{"items":[{"text":"About Us","url":"/"},{"text":"Our Blog","url":"/"},{"text":"Stores","url":"https://starter.vtex.app"},{"text":"Work With Us","url":"https://starter.vtex.app"}],"sectionTitle":"Our company"},{"items":[{"text":"Returns and Exchanges","url":"/"},{"text":"Product Recall","url":"/"},{"text":"Gift Cards","url":"/"}],"sectionTitle":"Orders and Purchases"},{"items":[{"text":"Support Center","url":"/"},{"text":"Support \u0026 Services","url":"/"},{"text":"Contact Us","url":"/"}],"sectionTitle":"Support \u0026 Services"},{"items":[{"text":"Affiliate Program","url":"/"},{"text":"Marketplace","url":"/"}],"sectionTitle":"Partnerships"}],"footerSocial":{"title":"Follow Us","socialLinks":[{"icon":{"icon":"Facebook"},"alt":"Facebook","url":"https://www.facebook.com"},{"icon":{"icon":"Instagram"},"alt":"Instagram","url":"https://www.instagram.com"},{"icon":{"icon":"Pinterest"},"alt":"Pinterest","url":"https://www.pinterest.com"},{"icon":{"icon":"Twitter"},"alt":"Twitter","url":"https://www.twitter.com"}]},"logo":{"link":{"url":"https://starter.vtex.app/","title":"FastStore Starter"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ec191c4a-32d8-41a9-9255-f319819bc98c___c24a66e2bef2c3f2bea07571a3636804.png","alt":"Store Logo"},"acceptedPaymentMethods":{"showPaymentMethods":true,"title":"Payment Methods","paymentMethods":[{"icon":{"icon":"Diners"},"alt":"Diners Club"},{"icon":{"icon":"Visa"},"alt":"Visa"},{"icon":{"icon":"Mastercard"},"alt":"Mastercard"},{"icon":{"icon":"EloCard"},"alt":"Elo Card"},{"icon":{"icon":"PayPal"},"alt":"PayPal"},{"icon":{"icon":"GooglePay"},"alt":"GooglePay"},{"icon":{"icon":"ApplePay"},"alt":"Apple Pay"}]},"copyrightInfo":"This website uses VTEX technology. In-store price may vary. Prices and offers are subject to change. 2023 Brandless Store. All rights reserved. Store is a trademark of Store and its affiliated companies. Mount St, 000, New York / NY - 00000."}},{"id":"1778083148729","name":"Search","data":{"searchInput":{"placeholder":"Search everything in the store","icon":{"icon":"MagnifyingGlass","alt":"Magnifying glass"}},"searchHistory":{"title":"History","clearButtonLabel":"Clear history","icon":{"icon":"ClockClockwise","alt":"History"},"maxItems":5},"searchTop":{"title":"Top search","maxItems":5},"searchAutocomplete":{"icon":{"alt":"Magnifying glass"},"maxItems":5},"searchProducts":{"title":"Suggested products","maxItems":5}}},{"id":"1778083171641","name":"RegionPopover","data":{"title":"Set your location","closeButtonAriaLabel":"Close Region Popover","inputField":{},"textBeforeLocation":"Your current location is","textAfterLocation":"Use the field below to change it.","description":"Offers and availability vary by location","idkPostalCodeLink":{"icon":{}}}}],"settings":{"regionalization":{"inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code","noProductsAvailableErrorMessage":"There are no products available for %s.","buttonActionText":"Apply","errorMessageHelper":"Try using a different postal code.","loadingLabel":"..."},"idkPostalCodeLink":{"text":"I don't know my Postal Code","icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"}}},"deliveryPromise":{"deliveryMethods":{"title":"Delivery Methods","description":"Offers and availability vary by location.","setLocationButtonLabel":"Set Location","allDeliveryMethods":"All delivery methods","delivery":"Shipping to","pickupInPoint":"Pickup at","pickupNearby":"Pickup Nearby","pickupAll":{"enabled":false,"label":"Pickup Anywhere"}},"regionSlider":{"title":{"setLocation":"Set Location","changeLocation":"Change Location","changePickupPoint":"Change Store","globalChangePickupPoint":"Change Store"},"pickupPointChangeApplyButtonLabel":"Update","pickupPointClearFilterButtonLabel":"Clear filter","choosePickupPointAriaLabel":"Choose a store","noPickupPointsAvailableInLocation":"No stores near location."},"filterByPickupPoint":{"enabled":true,"label":"Filter by Store","icon":{"icon":"Storefront","alt":"Storefront icon"}},"deliveryOptions":{"enabled":true,"title":"Delivery Option","allDeliveryOptions":"All delivery options"},"deliveryPromiseBadges":{"enabled":true,"delivery":"Available for shipping","deliveryUnavailable":"Unavailable for shipping","pickupInPoint":"Available for pickup","pickupInPointUnavailable":"Unavailable for pickup"},"inStock":{"enabled":false,"title":"Availability","label":"In-stock only"}},"filters":{"filterFacetRange":{"minLabel":"Min","maxLabel":"Max","minPriceErrorMessage":"Min price can't be greater than max","maxPriceErrorMessage":"Max price can't be smaller than min"}},"loading":{"label":"Loading..."}}}},"__N_SSG":true},"page":"/s","query":{},"buildId":"s20QxDT2pZcGbsFUk-djq","isFallback":false,"gsp":true,"locale":"en-US","locales":["en-US"],"defaultLocale":"en-US","scriptLoader":[]}</script></body></html>
@@ -28,7 +28,7 @@
28
28
  env: 'vtexcommercestable',
29
29
  workspace: 'master'
30
30
  });
31
- </script><meta name="generated-at" content="2026-06-11T13:16:36.382Z"/><title>FastStore Starter | FastStore</title><meta name="robots" content="index,follow"/><meta name="description" content="Fast Demo Store"/><meta property="og:title" content="FastStore Starter"/><meta property="og:description" content="Fast Demo Store"/><meta property="og:url" content="https://homebrewqa.fast.store"/><meta property="og:type" content="website"/><link rel="canonical" href="https://homebrewqa.fast.store"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"FastStore","url":"https://homebrewqa.fast.store","potentialAction":[{"@type":"SearchAction","target":"https://homebrewqa.fast.store/s/?q={search_term_string}","query-input":"required name=search_term_string"}]}</script><meta name="next-head-count" content="13"/><link rel="preconnect" href="https://storeframework.vtexassets.com"/><link rel="dns-prefetch" href="https://storeframework.vtexassets.com"/><meta name="storefront" content="fast_store"/><script>var partytown={
31
+ </script><meta name="generated-at" content="2026-08-28T18:31:04.799Z"/><title>FastStore Starter | FastStore</title><meta name="robots" content="index,follow"/><meta name="description" content="Fast Demo Store"/><meta property="og:title" content="FastStore Starter"/><meta property="og:description" content="Fast Demo Store"/><meta property="og:url" content="https://homebrewqa.fast.store"/><meta property="og:type" content="website"/><link rel="canonical" href="https://homebrewqa.fast.store"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"FastStore","url":"https://homebrewqa.fast.store","potentialAction":[{"@type":"SearchAction","target":"https://homebrewqa.fast.store/s/?q={search_term_string}","query-input":"required name=search_term_string"}]}</script><meta name="next-head-count" content="13"/><link rel="preconnect" href="https://storeframework.vtexassets.com"/><link rel="dns-prefetch" href="https://storeframework.vtexassets.com"/><meta name="storefront" content="fast_store"/><script>var partytown={
32
32
  debug:false,
33
33
  logCalls:false,
34
34
  forward:[...["sendrc"],!window.location.search.includes('gtm_debug=')&&true?'dataLayer.push':null].filter(Boolean)
@@ -39,4 +39,4 @@
39
39
  partytownScript.src = '/~partytown/partytown.js';
40
40
  document.head.appendChild(partytownScript);
41
41
  }
42
- </script><link rel="preload" href="/_next/static/css/146a8678babc61bf.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/146a8678babc61bf.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/2c19433e38fd7533.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2c19433e38fd7533.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/837662922091162f.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/837662922091162f.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/02259c549b2179f2.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/02259c549b2179f2.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-95c583fdc5f7d468.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-d514426edf885c68.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-083a618181bb5fbb.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-35e8dda638ee2672.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9298-1d1ed0a54133cb59.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9173-1670c2bce097f620.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/index-8774d5b4a8744eb2.js" defer="" crossorigin=""></script><script src="/_next/static/qnFvdN4P3Em9yV6nJ1gX8/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/qnFvdN4P3Em9yV6nJ1gX8/_ssgManifest.js" defer="" crossorigin=""></script></head><body class="theme"><div id="__next"><div data-store-section-name="Alert" style="height:823px;width:100%"></div><div data-store-section-name="Navbar" style="height:823px;width:100%"></div><div data-store-section-name="RegionBar" style="height:823px;width:100%"></div><div data-store-section-name="Hero" style="height:823px;width:100%"></div><div data-store-section-name="Incentives" style="height:823px;width:100%"></div><div data-store-section-name="ProductTiles" style="height:823px;width:100%"></div><div data-store-section-name="ProductShelf" style="height:823px;width:100%"></div><div data-store-section-name="BannerText" style="height:823px;width:100%"></div><div data-store-section-name="ProductShelf" style="height:823px;width:100%"></div><div data-store-section-name="Newsletter" style="height:823px;width:100%"></div><div data-store-section-name="Toast" style="height:823px;width:100%"></div><div data-store-section-name="ShoppingAssistant" style="height:823px;width:100%"></div><div data-store-section-name="Footer" style="height:823px;width:100%"></div><div data-store-section-name="RegionPopover" style="height:823px;width:100%"></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"page":{"id":"7bf9dd21-aa9e-4719-b8fd-5a6283ec30e3","name":"Home","type":"home","status":"published","versionId":"aac9849c-8489-464b-9529-361c0083adba","versionStatus":"published","sections":[{"id":"cb330746-5bdd-4337-98bd-b410c9565636","name":"Hero","data":{"link":{"linkTargetBlank":false,"text":"See Offers","url":"/technology"},"image":{"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/1e46eee3-5cd9-4911-8a81-501fe9c744fe___57d4662d50c07e760e6e74d8da282508.jpg","alt":"technology banner"},"title":"Black November Huge Sale! 80% OFF","subtitle":"At FastStore you can shop the best tech of 2024. Enjoy and get 10% off on your first purchase!","linkText":"See ","imageAlt":"office","imageSrc":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/17555ae3-3405-4be6-a19a-e76997a333ea___1fa52ed2b11886ffe215bab9588c345d.jpg","colorVariant":"main","variant":"primary"}},{"id":"365278a5-c159-42d9-b949-7e64108074ab","name":"Incentives","data":{"incentives":[{"title":"Buy online","firstLineText":"Get Free Shipping","icon":"Truck","alt":"Truck"},{"title":"Free return","firstLineText":"30 days to return","icon":"Calendar","alt":"Calendar"},{"title":"Gift cards","firstLineText":"$20/$30/$40","icon":"Gift","alt":"Gift"},{"title":"Physical Stores","firstLineText":"+40 Stores in Brazil","icon":"Storefront","alt":"Store Front"},{"title":"Buy online","firstLineText":"Get Free Shipping","icon":"ShieldCheck","alt":"Shield Check"}]}},{"id":"95edac5c-d38f-4f55-9ad2-c8560d4a1942","name":"ProductTiles","data":{"first":3,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"142"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"title":"Just Arrived!"}},{"id":"249fa2f9-ef70-4a6a-a675-4ef991ade06c","name":"ProductShelf","data":{"numberOfItems":10,"itemsPerPage":5,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"140"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"productCardConfiguration":{"showDiscountBadge":true,"bordered":true},"title":"Most Wanted"}},{"id":"1a8107dd-8c3f-4b77-84e8-da35c9d8d42b","name":"BannerText","data":{"link":{"linkTargetBlank":false,"text":"Check it out now!","url":"/office"},"actionLabel":"Check it out now!","actionPath":"/office","caption":"Enjoy and get 10% off on your first purchase!!","title":"The sun has set out Summer Sale! Save up to 50% off. Don't miss out!","colorVariant":"light","variant":"primary"}},{"id":"aab7763d-52da-4b6b-b334-e6f4ac713e8a","name":"ProductShelf","data":{"numberOfItems":5,"itemsPerPage":5,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"142"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"productCardConfiguration":{"showDiscountBadge":true,"bordered":true},"title":"Deals \u0026 Promotions"}},{"id":"de86f6a4-8d97-4f3a-8ec2-c5a694b96e81","name":"Newsletter","data":{"icon":{"icon":"Envelope","alt":"Envelop"},"title":"Get News and Special Offers!","description":"Receive our news and promotions in advance. Enjoy and get 10% off your first purchase. For more information click here.","emailInputLabel":"Your Email","displayNameInput":true,"nameInputLabel":"Your Name","subscribeButtonLabel":"Subscribe","subscribeButtonLoadingLabel":"Loading...","card":false,"colorVariant":"main","toastSubscribe":{"title":"Hooray!","message":"Thank for your subscription.","icon":"CircleWavyCheck"},"toastSubscribeError":{"title":"Oops.","message":"Something went wrong. Please Try again.","icon":"CircleWavyWarning"},"privacyPolicy":"{\"blocks\":[{\"key\":\"clnfu\",\"text\":\"By subscribing to our newsletter you agree to to our Privacy Policy\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[{\"offset\":53,\"length\":14,\"key\":0}],\"data\":{}}],\"entityMap\":{\"0\":{\"type\":\"LINK\",\"mutability\":\"MUTABLE\",\"data\":{\"url\":\"/\"}}}}"}}]},"globalSections":{"id":"095366a8-6e81-47a9-91eb-7a08f66611b5","name":"Global Sections","type":"globalSections","status":"published","versionId":"ee055d8f-a856-4f1b-953b-67be634ca7c8","versionStatus":"published","sections":[{"id":"7d1944af-0180-4e73-a58e-48f8cda06f9b","name":"Alert","data":{"link":{"text":"Buy now","to":"/office"},"dismissible":true,"icon":"BellRinging","content":"Get 15% off today: NEW15!"}},{"id":"1778082134460","name":"Navbar","data":{"logo":{"link":{"url":"/","title":"Go To Home"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ab9997f4-8fd6-46f5-99d2-9d5af3ef5e34___6d75a203771d7408d8f0d1c660a076dd.png","alt":"Store logo"},"searchInput":{"placeholder":"Search everything in the store","sort":"score_desc","submitButtonAriaLabel":"Submit Search","searchHistoryTitle":"History","searchTopTitle":"Top search","quickOrderSettings":{"quickOrder":false,"attachmentButton":{"icon":{"icon":"Paperclip","alt":"Attach File"},"ariaLabel":"Attach File"},"skuMatrix":{"triggerButtonLabel":"Select multiple","columns":{"name":"Name","availability":{"label":"Availability","stockDisplaySettings":"showAvailability"},"price":"Price","quantitySelector":"Quantity"}},"invalidQuantityToastLabels":{"title":"Invalid quantity!","message":"The quantity you entered is outside the range of '%{min}' to '%{max}'. The quantity was set to '%{quantity}'."},"outOfStockLabel":"Out of stock","drawer":{"defaultTitle":"Quick Order","columns":{"name":"Product Name","availabilityLabel":"Availability","price":"Price (tax included)","quantity":"Quantity"},"messages":{"alertAriaLabel":"Product availability warning","tableAriaLabel":"Quick order products list","quantityUpdatedTooltip":"Quantity updated to match our inventory","quantityUpdatedAriaLabel":"Quantity adjusted to match available inventory","outOfStockLabel":"Out of stock","availableLabel":"Available","selectQuantityAriaLabel":"Select quantity for {productName}","removeProductAriaLabel":"Remove {productName} from quick order list","invalidQuantityTitle":"Invalid quantity!","emptyStateTitle":"No products found","emptyStateMessage":"No SKUs were found for the provided file. Please check your file and try again."},"alertMessages":{"notFoundAndOutOfStock":"Some of the SKUs were not found or are not available. Please adjust the amount before proceeding to the cart.","notFound":"Some of the SKUs were not found. Please check your CSV file and try again.","outOfStock":"Some of the SKUs are not available. Please adjust the amount before proceeding to the cart."},"footer":{"itemsLabel":"items","addToCartLabel":"Add to Cart","addToCartAriaLabel":"Add items to cart"}},"toastMessages":{"noFileSelected":{"title":"No file selected","message":"Please select a CSV file to search."},"noDataFound":{"title":"No data found","message":"The CSV file could not be processed or contains no valid data. Please check the file format and try again."},"fileProcessingError":{"title":"File processing error","defaultMessage":"Failed to process the CSV file. Please try again."},"fileTimeout":{"message":"The file may be too large, corrupted, or the parser may be stuck."},"noDataAvailable":{"title":"No data available","message":"The CSV file contains no valid data. Please check the file and try again."},"noValidSkus":{"title":"No valid SKUs found","message":"The CSV file does not contain any valid SKUs. Please check the file format and ensure it has a SKU column."}},"accessibilityLabels":{"attachButtonAriaLabel":"Attach File","searchButtonAriaLabel":"Submit Search"},"fileUploadCard":{"title":"File Upload","fileInputAriaLabel":"File upload input","dropzoneAriaLabel":"Drop a file to search in bulk","dropzoneTitle":"Drop your file here or click to browse","dropzoneDragActiveText":"Drop the files here...","dropzoneText":"Drag and drop files here, or click to select files","selectFileButtonLabel":"Select file","downloadTemplateButtonLabel":"Download template","removeButtonAriaLabel":"Remove file","searchButtonLabel":"Search","uploadingStatusText":"Uploading...","completedStatusTemplate":"File ready ({fileSize} KB)","acceptedFileTypes":".csv","errorMessages":{"unexpected":{"title":"Something went wrong","description":"We could not process your file. Please try again."},"unsupported":{"title":"Unsupported file","description":"Please upload a CSV file."},"unreadable":{"title":"File could not be read","description":"The file may be corrupted or in an unsupported encoding."},"invalid-structure":{"title":"Invalid file structure","description":"The CSV does not match the expected format. Use the template."},"empty":{"title":"Empty file","description":"The file has no data. Add at least one row."},"too-large":{"title":"File too large","description":"Please upload a file smaller than the maximum allowed size."},"no-products-found":{"title":"No products found","description":"Please verify the SKUs in your file and try again."}}}},"loadingLabel":"Loading...","collapseSearchAriaLabel":"Collapse search bar"},"signInButton":{"icon":{"icon":"User","alt":"User"},"label":"Sign in","myAccountLabel":"My account"},"cartIcon":{"icon":"ShoppingCart","alt":"Shopping cart"},"navigation":{"regionalization":{"enabled":true,"icon":{"icon":"MapPin","alt":"MapPin"},"label":"Set Location"},"localizationButton":{"shouldDisplayLocalizationButton":false,"icon":{"icon":"Globe"},"ariaLabel":"Open localization selector"},"localizationSelector":{"title":"Select language and currency","languageLabel":"Language","currencyLabel":"Currency","description":"Changing the language or currency may affect prices, promotions and availability.","saveLabel":"Save","errorMessages":{"noBindingFound":"Unable to save configuration. No matching store found.","invalidUrl":"Invalid redirect URL. Please try again.","noCurrencies":"No currencies available for this language.","defaultError":"An error occurred. Please try again."}},"pageLinks":[{"text":"Office","url":"/office"},{"text":"Technology","url":"/technology"}],"menu":{"icon":{"icon":"List","alt":"List"}},"home":{"label":"Go to Home"}}}},{"id":"a8a2a6c1-3577-47ee-9fe2-f1d196d58427","name":"RegionBar","data":{"icon":{"icon":"MapPin","alt":"Map Pin icon"},"label":"Set your location","editLabel":"Edit","buttonIcon":{"icon":"CaretRight","alt":"Caret Right icon"}}},{"id":"cfbbcef5-f804-488b-ab22-048ff3e88788","name":"CartSidebar","data":{"title":"Your Cart","alert":{"icon":{"icon":"Truck","alt":"Arrow Right icon"},"text":"Free shipping starts at $300"},"emptyCart":{"title":"Your Cart is empty","buttonLabel":"Start Shopping"},"checkoutButton":{"label":"Checkout","loadingLabel":"Loading...","icon":{"icon":"ArrowRight","alt":"Arrow Right icon"}},"quantitySelector":{"useUnitMultiplier":false},"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"}}},{"id":"7f3a50f0-f252-4b3a-b704-13402f31c32c","name":"RegionModal","data":{"title":"Set your location","description":"Prices, offers and availability may vary according to your location.","closeButtonAriaLabel":"Close Region Modal","inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code"},"idkPostalCodeLink":{"icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"},"text":"I don't know my Postal Code"}}},{"id":"fddde296-1946-4aa1-b428-24e4b625d615","name":"Children","data":{}},{"id":"a1fb4bef-3864-48f4-baae-7705d0e81bbc","name":"ShoppingAssistant","data":{}},{"id":"93bd4542-236d-499c-8716-b8a4152aec10","name":"Footer","data":{"incentives":[{"title":" ","firstLineText":"Trusted","icon":"ShieldCheck","secondLineText":"by Safecon"},{"title":" ","firstLineText":"Free","icon":"Calendar","secondLineText":"Return"},{"title":" ","firstLineText":"Pickup","icon":"Storefront","secondLineText":"Options"},{"firstLineText":"Free","secondLineText":"Shipping","title":" ","icon":"Truck"}],"footerLinks":[{"items":[{"text":"About Us","url":"/"},{"text":"Our Blog","url":"/"},{"text":"Stores","url":"https://starter.vtex.app"},{"text":"Work With Us","url":"https://starter.vtex.app"}],"sectionTitle":"Our company"},{"items":[{"text":"Returns and Exchanges","url":"/"},{"text":"Product Recall","url":"/"},{"text":"Gift Cards","url":"/"}],"sectionTitle":"Orders and Purchases"},{"items":[{"text":"Support Center","url":"/"},{"text":"Support \u0026 Services","url":"/"},{"text":"Contact Us","url":"/"}],"sectionTitle":"Support \u0026 Services"},{"items":[{"text":"Affiliate Program","url":"/"},{"text":"Marketplace","url":"/"}],"sectionTitle":"Partnerships"}],"footerSocial":{"title":"Follow Us","socialLinks":[{"icon":{"icon":"Facebook"},"alt":"Facebook","url":"https://www.facebook.com"},{"icon":{"icon":"Instagram"},"alt":"Instagram","url":"https://www.instagram.com"},{"icon":{"icon":"Pinterest"},"alt":"Pinterest","url":"https://www.pinterest.com"},{"icon":{"icon":"Twitter"},"alt":"Twitter","url":"https://www.twitter.com"}]},"logo":{"link":{"url":"https://starter.vtex.app/","title":"FastStore Starter"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ec191c4a-32d8-41a9-9255-f319819bc98c___c24a66e2bef2c3f2bea07571a3636804.png","alt":"Store Logo"},"acceptedPaymentMethods":{"showPaymentMethods":true,"title":"Payment Methods","paymentMethods":[{"icon":{"icon":"Diners"},"alt":"Diners Club"},{"icon":{"icon":"Visa"},"alt":"Visa"},{"icon":{"icon":"Mastercard"},"alt":"Mastercard"},{"icon":{"icon":"EloCard"},"alt":"Elo Card"},{"icon":{"icon":"PayPal"},"alt":"PayPal"},{"icon":{"icon":"GooglePay"},"alt":"GooglePay"},{"icon":{"icon":"ApplePay"},"alt":"Apple Pay"}]},"copyrightInfo":"This website uses VTEX technology. In-store price may vary. Prices and offers are subject to change. 2023 Brandless Store. All rights reserved. Store is a trademark of Store and its affiliated companies. Mount St, 000, New York / NY - 00000."}},{"id":"1778083148729","name":"Search","data":{"searchInput":{"placeholder":"Search everything in the store","icon":{"icon":"MagnifyingGlass","alt":"Magnifying glass"}},"searchHistory":{"title":"History","clearButtonLabel":"Clear history","icon":{"icon":"ClockClockwise","alt":"History"},"maxItems":5},"searchTop":{"title":"Top search","maxItems":5},"searchAutocomplete":{"icon":{"alt":"Magnifying glass"},"maxItems":5},"searchProducts":{"title":"Suggested products","maxItems":5}}},{"id":"1778083171641","name":"RegionPopover","data":{"title":"Set your location","closeButtonAriaLabel":"Close Region Popover","inputField":{},"textBeforeLocation":"Your current location is","textAfterLocation":"Use the field below to change it.","description":"Offers and availability vary by location","idkPostalCodeLink":{"icon":{}}}}],"settings":{"regionalization":{"inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code","noProductsAvailableErrorMessage":"There are no products available for %s.","buttonActionText":"Apply","errorMessageHelper":"Try using a different postal code.","loadingLabel":"..."},"idkPostalCodeLink":{"text":"I don't know my Postal Code","icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"}}},"deliveryPromise":{"deliveryMethods":{"title":"Delivery Methods","description":"Offers and availability vary by location.","setLocationButtonLabel":"Set Location","allDeliveryMethods":"All delivery methods","delivery":"Shipping to","pickupInPoint":"Pickup at","pickupNearby":"Pickup Nearby","pickupAll":{"enabled":false,"label":"Pickup Anywhere"}},"regionSlider":{"title":{"setLocation":"Set Location","changeLocation":"Change Location","changePickupPoint":"Change Store","globalChangePickupPoint":"Change Store"},"pickupPointChangeApplyButtonLabel":"Update","pickupPointClearFilterButtonLabel":"Clear filter","choosePickupPointAriaLabel":"Choose a store","noPickupPointsAvailableInLocation":"No stores near location."},"filterByPickupPoint":{"enabled":true,"label":"Filter by Store","icon":{"icon":"Storefront","alt":"Storefront icon"}},"deliveryOptions":{"enabled":true,"title":"Delivery Option","allDeliveryOptions":"All delivery options"},"deliveryPromiseBadges":{"enabled":true,"delivery":"Available for shipping","deliveryUnavailable":"Unavailable for shipping","pickupInPoint":"Available for pickup","pickupInPointUnavailable":"Unavailable for pickup"},"inStock":{"enabled":false,"title":"Availability","label":"In-stock only"}},"filters":{"filterFacetRange":{"minLabel":"Min","maxLabel":"Max","minPriceErrorMessage":"Min price can't be greater than max","maxPriceErrorMessage":"Max price can't be smaller than min"}},"loading":{"label":"Loading..."}}},"serverData":null},"__N_SSG":true},"page":"/","query":{},"buildId":"qnFvdN4P3Em9yV6nJ1gX8","isFallback":false,"gsp":true,"locale":"en-US","locales":["en-US"],"defaultLocale":"en-US","scriptLoader":[]}</script></body></html>
42
+ </script><link rel="preload" href="/_next/static/css/146a8678babc61bf.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/146a8678babc61bf.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/2c19433e38fd7533.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/2c19433e38fd7533.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/837662922091162f.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/837662922091162f.css" crossorigin="" data-n-p=""/><link rel="preload" href="/_next/static/css/02259c549b2179f2.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/02259c549b2179f2.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-6a844a3f6a390f62.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-d514426edf885c68.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-a2d1cfe626f2fef1.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-35e8dda638ee2672.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9298-1d1ed0a54133cb59.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9173-1670c2bce097f620.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/index-8774d5b4a8744eb2.js" defer="" crossorigin=""></script><script src="/_next/static/s20QxDT2pZcGbsFUk-djq/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/s20QxDT2pZcGbsFUk-djq/_ssgManifest.js" defer="" crossorigin=""></script></head><body class="theme"><div id="__next"><div data-store-section-name="Alert" style="height:823px;width:100%"></div><div data-store-section-name="Navbar" style="height:823px;width:100%"></div><div data-store-section-name="RegionBar" style="height:823px;width:100%"></div><div data-store-section-name="Hero" style="height:823px;width:100%"></div><div data-store-section-name="Incentives" style="height:823px;width:100%"></div><div data-store-section-name="ProductTiles" style="height:823px;width:100%"></div><div data-store-section-name="ProductShelf" style="height:823px;width:100%"></div><div data-store-section-name="BannerText" style="height:823px;width:100%"></div><div data-store-section-name="ProductShelf" style="height:823px;width:100%"></div><div data-store-section-name="Newsletter" style="height:823px;width:100%"></div><div data-store-section-name="Toast" style="height:823px;width:100%"></div><div data-store-section-name="ShoppingAssistant" style="height:823px;width:100%"></div><div data-store-section-name="Footer" style="height:823px;width:100%"></div><div data-store-section-name="RegionPopover" style="height:823px;width:100%"></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"page":{"id":"7bf9dd21-aa9e-4719-b8fd-5a6283ec30e3","name":"Home","type":"home","status":"published","versionId":"aac9849c-8489-464b-9529-361c0083adba","versionStatus":"published","sections":[{"id":"cb330746-5bdd-4337-98bd-b410c9565636","name":"Hero","data":{"link":{"linkTargetBlank":false,"text":"See Offers","url":"/technology"},"image":{"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/1e46eee3-5cd9-4911-8a81-501fe9c744fe___57d4662d50c07e760e6e74d8da282508.jpg","alt":"technology banner"},"title":"Black November Huge Sale! 80% OFF","subtitle":"At FastStore you can shop the best tech of 2024. Enjoy and get 10% off on your first purchase!","linkText":"See ","imageAlt":"office","imageSrc":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/17555ae3-3405-4be6-a19a-e76997a333ea___1fa52ed2b11886ffe215bab9588c345d.jpg","colorVariant":"main","variant":"primary"}},{"id":"365278a5-c159-42d9-b949-7e64108074ab","name":"Incentives","data":{"incentives":[{"title":"Buy online","firstLineText":"Get Free Shipping","icon":"Truck","alt":"Truck"},{"title":"Free return","firstLineText":"30 days to return","icon":"Calendar","alt":"Calendar"},{"title":"Gift cards","firstLineText":"$20/$30/$40","icon":"Gift","alt":"Gift"},{"title":"Physical Stores","firstLineText":"+40 Stores in Brazil","icon":"Storefront","alt":"Store Front"},{"title":"Buy online","firstLineText":"Get Free Shipping","icon":"ShieldCheck","alt":"Shield Check"}]}},{"id":"95edac5c-d38f-4f55-9ad2-c8560d4a1942","name":"ProductTiles","data":{"first":3,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"142"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"title":"Just Arrived!"}},{"id":"249fa2f9-ef70-4a6a-a675-4ef991ade06c","name":"ProductShelf","data":{"numberOfItems":10,"itemsPerPage":5,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"140"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"productCardConfiguration":{"showDiscountBadge":true,"bordered":true},"title":"Most Wanted"}},{"id":"1a8107dd-8c3f-4b77-84e8-da35c9d8d42b","name":"BannerText","data":{"link":{"linkTargetBlank":false,"text":"Check it out now!","url":"/office"},"actionLabel":"Check it out now!","actionPath":"/office","caption":"Enjoy and get 10% off on your first purchase!!","title":"The sun has set out Summer Sale! Save up to 50% off. Don't miss out!","colorVariant":"light","variant":"primary"}},{"id":"aab7763d-52da-4b6b-b334-e6f4ac713e8a","name":"ProductShelf","data":{"numberOfItems":5,"itemsPerPage":5,"after":"0","sort":"score_desc","selectedFacets":[{"key":"productClusterIds","value":"142"}],"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"},"productCardConfiguration":{"showDiscountBadge":true,"bordered":true},"title":"Deals \u0026 Promotions"}},{"id":"de86f6a4-8d97-4f3a-8ec2-c5a694b96e81","name":"Newsletter","data":{"icon":{"icon":"Envelope","alt":"Envelop"},"title":"Get News and Special Offers!","description":"Receive our news and promotions in advance. Enjoy and get 10% off your first purchase. For more information click here.","emailInputLabel":"Your Email","displayNameInput":true,"nameInputLabel":"Your Name","subscribeButtonLabel":"Subscribe","subscribeButtonLoadingLabel":"Loading...","card":false,"colorVariant":"main","toastSubscribe":{"title":"Hooray!","message":"Thank for your subscription.","icon":"CircleWavyCheck"},"toastSubscribeError":{"title":"Oops.","message":"Something went wrong. Please Try again.","icon":"CircleWavyWarning"},"privacyPolicy":"{\"blocks\":[{\"key\":\"clnfu\",\"text\":\"By subscribing to our newsletter you agree to to our Privacy Policy\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[{\"offset\":53,\"length\":14,\"key\":0}],\"data\":{}}],\"entityMap\":{\"0\":{\"type\":\"LINK\",\"mutability\":\"MUTABLE\",\"data\":{\"url\":\"/\"}}}}"}}]},"globalSections":{"id":"095366a8-6e81-47a9-91eb-7a08f66611b5","name":"Global Sections","type":"globalSections","status":"published","versionId":"ee055d8f-a856-4f1b-953b-67be634ca7c8","versionStatus":"published","sections":[{"id":"7d1944af-0180-4e73-a58e-48f8cda06f9b","name":"Alert","data":{"link":{"text":"Buy now","to":"/office"},"dismissible":true,"icon":"BellRinging","content":"Get 15% off today: NEW15!"}},{"id":"1778082134460","name":"Navbar","data":{"logo":{"link":{"url":"/","title":"Go To Home"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ab9997f4-8fd6-46f5-99d2-9d5af3ef5e34___6d75a203771d7408d8f0d1c660a076dd.png","alt":"Store logo"},"searchInput":{"placeholder":"Search everything in the store","sort":"score_desc","submitButtonAriaLabel":"Submit Search","searchHistoryTitle":"History","searchTopTitle":"Top search","quickOrderSettings":{"quickOrder":false,"attachmentButton":{"icon":{"icon":"Paperclip","alt":"Attach File"},"ariaLabel":"Attach File"},"skuMatrix":{"triggerButtonLabel":"Select multiple","columns":{"name":"Name","availability":{"label":"Availability","stockDisplaySettings":"showAvailability"},"price":"Price","quantitySelector":"Quantity"}},"invalidQuantityToastLabels":{"title":"Invalid quantity!","message":"The quantity you entered is outside the range of '%{min}' to '%{max}'. The quantity was set to '%{quantity}'."},"outOfStockLabel":"Out of stock","drawer":{"defaultTitle":"Quick Order","columns":{"name":"Product Name","availabilityLabel":"Availability","price":"Price (tax included)","quantity":"Quantity"},"messages":{"alertAriaLabel":"Product availability warning","tableAriaLabel":"Quick order products list","quantityUpdatedTooltip":"Quantity updated to match our inventory","quantityUpdatedAriaLabel":"Quantity adjusted to match available inventory","outOfStockLabel":"Out of stock","availableLabel":"Available","selectQuantityAriaLabel":"Select quantity for {productName}","removeProductAriaLabel":"Remove {productName} from quick order list","invalidQuantityTitle":"Invalid quantity!","emptyStateTitle":"No products found","emptyStateMessage":"No SKUs were found for the provided file. Please check your file and try again."},"alertMessages":{"notFoundAndOutOfStock":"Some of the SKUs were not found or are not available. Please adjust the amount before proceeding to the cart.","notFound":"Some of the SKUs were not found. Please check your CSV file and try again.","outOfStock":"Some of the SKUs are not available. Please adjust the amount before proceeding to the cart."},"footer":{"itemsLabel":"items","addToCartLabel":"Add to Cart","addToCartAriaLabel":"Add items to cart"}},"toastMessages":{"noFileSelected":{"title":"No file selected","message":"Please select a CSV file to search."},"noDataFound":{"title":"No data found","message":"The CSV file could not be processed or contains no valid data. Please check the file format and try again."},"fileProcessingError":{"title":"File processing error","defaultMessage":"Failed to process the CSV file. Please try again."},"fileTimeout":{"message":"The file may be too large, corrupted, or the parser may be stuck."},"noDataAvailable":{"title":"No data available","message":"The CSV file contains no valid data. Please check the file and try again."},"noValidSkus":{"title":"No valid SKUs found","message":"The CSV file does not contain any valid SKUs. Please check the file format and ensure it has a SKU column."}},"accessibilityLabels":{"attachButtonAriaLabel":"Attach File","searchButtonAriaLabel":"Submit Search"},"fileUploadCard":{"title":"File Upload","fileInputAriaLabel":"File upload input","dropzoneAriaLabel":"Drop a file to search in bulk","dropzoneTitle":"Drop your file here or click to browse","dropzoneDragActiveText":"Drop the files here...","dropzoneText":"Drag and drop files here, or click to select files","selectFileButtonLabel":"Select file","downloadTemplateButtonLabel":"Download template","removeButtonAriaLabel":"Remove file","searchButtonLabel":"Search","uploadingStatusText":"Uploading...","completedStatusTemplate":"File ready ({fileSize} KB)","acceptedFileTypes":".csv","errorMessages":{"unexpected":{"title":"Something went wrong","description":"We could not process your file. Please try again."},"unsupported":{"title":"Unsupported file","description":"Please upload a CSV file."},"unreadable":{"title":"File could not be read","description":"The file may be corrupted or in an unsupported encoding."},"invalid-structure":{"title":"Invalid file structure","description":"The CSV does not match the expected format. Use the template."},"empty":{"title":"Empty file","description":"The file has no data. Add at least one row."},"too-large":{"title":"File too large","description":"Please upload a file smaller than the maximum allowed size."},"no-products-found":{"title":"No products found","description":"Please verify the SKUs in your file and try again."}}}},"loadingLabel":"Loading...","collapseSearchAriaLabel":"Collapse search bar"},"signInButton":{"icon":{"icon":"User","alt":"User"},"label":"Sign in","myAccountLabel":"My account"},"cartIcon":{"icon":"ShoppingCart","alt":"Shopping cart"},"navigation":{"regionalization":{"enabled":true,"icon":{"icon":"MapPin","alt":"MapPin"},"label":"Set Location"},"localizationButton":{"shouldDisplayLocalizationButton":false,"icon":{"icon":"Globe"},"ariaLabel":"Open localization selector"},"localizationSelector":{"title":"Select language and currency","languageLabel":"Language","currencyLabel":"Currency","description":"Changing the language or currency may affect prices, promotions and availability.","saveLabel":"Save","errorMessages":{"noBindingFound":"Unable to save configuration. No matching store found.","invalidUrl":"Invalid redirect URL. Please try again.","noCurrencies":"No currencies available for this language.","defaultError":"An error occurred. Please try again."}},"pageLinks":[{"text":"Office","url":"/office"},{"text":"Technology","url":"/technology"}],"menu":{"icon":{"icon":"List","alt":"List"}},"home":{"label":"Go to Home"}}}},{"id":"a8a2a6c1-3577-47ee-9fe2-f1d196d58427","name":"RegionBar","data":{"icon":{"icon":"MapPin","alt":"Map Pin icon"},"label":"Set your location","editLabel":"Edit","buttonIcon":{"icon":"CaretRight","alt":"Caret Right icon"}}},{"id":"cfbbcef5-f804-488b-ab22-048ff3e88788","name":"CartSidebar","data":{"title":"Your Cart","alert":{"icon":{"icon":"Truck","alt":"Arrow Right icon"},"text":"Free shipping starts at $300"},"emptyCart":{"title":"Your Cart is empty","buttonLabel":"Start Shopping"},"checkoutButton":{"label":"Checkout","loadingLabel":"Loading...","icon":{"icon":"ArrowRight","alt":"Arrow Right icon"}},"quantitySelector":{"useUnitMultiplier":false},"taxesConfiguration":{"usePriceWithTaxes":false,"taxesLabel":"Tax included"}}},{"id":"7f3a50f0-f252-4b3a-b704-13402f31c32c","name":"RegionModal","data":{"title":"Set your location","description":"Prices, offers and availability may vary according to your location.","closeButtonAriaLabel":"Close Region Modal","inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code"},"idkPostalCodeLink":{"icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"},"text":"I don't know my Postal Code"}}},{"id":"fddde296-1946-4aa1-b428-24e4b625d615","name":"Children","data":{}},{"id":"a1fb4bef-3864-48f4-baae-7705d0e81bbc","name":"ShoppingAssistant","data":{}},{"id":"93bd4542-236d-499c-8716-b8a4152aec10","name":"Footer","data":{"incentives":[{"title":" ","firstLineText":"Trusted","icon":"ShieldCheck","secondLineText":"by Safecon"},{"title":" ","firstLineText":"Free","icon":"Calendar","secondLineText":"Return"},{"title":" ","firstLineText":"Pickup","icon":"Storefront","secondLineText":"Options"},{"firstLineText":"Free","secondLineText":"Shipping","title":" ","icon":"Truck"}],"footerLinks":[{"items":[{"text":"About Us","url":"/"},{"text":"Our Blog","url":"/"},{"text":"Stores","url":"https://starter.vtex.app"},{"text":"Work With Us","url":"https://starter.vtex.app"}],"sectionTitle":"Our company"},{"items":[{"text":"Returns and Exchanges","url":"/"},{"text":"Product Recall","url":"/"},{"text":"Gift Cards","url":"/"}],"sectionTitle":"Orders and Purchases"},{"items":[{"text":"Support Center","url":"/"},{"text":"Support \u0026 Services","url":"/"},{"text":"Contact Us","url":"/"}],"sectionTitle":"Support \u0026 Services"},{"items":[{"text":"Affiliate Program","url":"/"},{"text":"Marketplace","url":"/"}],"sectionTitle":"Partnerships"}],"footerSocial":{"title":"Follow Us","socialLinks":[{"icon":{"icon":"Facebook"},"alt":"Facebook","url":"https://www.facebook.com"},{"icon":{"icon":"Instagram"},"alt":"Instagram","url":"https://www.instagram.com"},{"icon":{"icon":"Pinterest"},"alt":"Pinterest","url":"https://www.pinterest.com"},{"icon":{"icon":"Twitter"},"alt":"Twitter","url":"https://www.twitter.com"}]},"logo":{"link":{"url":"https://starter.vtex.app/","title":"FastStore Starter"},"src":"https://storeframework.vtexassets.com/assets/vtex.file-manager-graphql/images/ec191c4a-32d8-41a9-9255-f319819bc98c___c24a66e2bef2c3f2bea07571a3636804.png","alt":"Store Logo"},"acceptedPaymentMethods":{"showPaymentMethods":true,"title":"Payment Methods","paymentMethods":[{"icon":{"icon":"Diners"},"alt":"Diners Club"},{"icon":{"icon":"Visa"},"alt":"Visa"},{"icon":{"icon":"Mastercard"},"alt":"Mastercard"},{"icon":{"icon":"EloCard"},"alt":"Elo Card"},{"icon":{"icon":"PayPal"},"alt":"PayPal"},{"icon":{"icon":"GooglePay"},"alt":"GooglePay"},{"icon":{"icon":"ApplePay"},"alt":"Apple Pay"}]},"copyrightInfo":"This website uses VTEX technology. In-store price may vary. Prices and offers are subject to change. 2023 Brandless Store. All rights reserved. Store is a trademark of Store and its affiliated companies. Mount St, 000, New York / NY - 00000."}},{"id":"1778083148729","name":"Search","data":{"searchInput":{"placeholder":"Search everything in the store","icon":{"icon":"MagnifyingGlass","alt":"Magnifying glass"}},"searchHistory":{"title":"History","clearButtonLabel":"Clear history","icon":{"icon":"ClockClockwise","alt":"History"},"maxItems":5},"searchTop":{"title":"Top search","maxItems":5},"searchAutocomplete":{"icon":{"alt":"Magnifying glass"},"maxItems":5},"searchProducts":{"title":"Suggested products","maxItems":5}}},{"id":"1778083171641","name":"RegionPopover","data":{"title":"Set your location","closeButtonAriaLabel":"Close Region Popover","inputField":{},"textBeforeLocation":"Your current location is","textAfterLocation":"Use the field below to change it.","description":"Offers and availability vary by location","idkPostalCodeLink":{"icon":{}}}}],"settings":{"regionalization":{"inputField":{"label":"Postal Code","errorMessage":"You entered an invalid Postal Code","noProductsAvailableErrorMessage":"There are no products available for %s.","buttonActionText":"Apply","errorMessageHelper":"Try using a different postal code.","loadingLabel":"..."},"idkPostalCodeLink":{"text":"I don't know my Postal Code","icon":{"icon":"ArrowSquareOut","alt":"Arrow Square Out icon"}}},"deliveryPromise":{"deliveryMethods":{"title":"Delivery Methods","description":"Offers and availability vary by location.","setLocationButtonLabel":"Set Location","allDeliveryMethods":"All delivery methods","delivery":"Shipping to","pickupInPoint":"Pickup at","pickupNearby":"Pickup Nearby","pickupAll":{"enabled":false,"label":"Pickup Anywhere"}},"regionSlider":{"title":{"setLocation":"Set Location","changeLocation":"Change Location","changePickupPoint":"Change Store","globalChangePickupPoint":"Change Store"},"pickupPointChangeApplyButtonLabel":"Update","pickupPointClearFilterButtonLabel":"Clear filter","choosePickupPointAriaLabel":"Choose a store","noPickupPointsAvailableInLocation":"No stores near location."},"filterByPickupPoint":{"enabled":true,"label":"Filter by Store","icon":{"icon":"Storefront","alt":"Storefront icon"}},"deliveryOptions":{"enabled":true,"title":"Delivery Option","allDeliveryOptions":"All delivery options"},"deliveryPromiseBadges":{"enabled":true,"delivery":"Available for shipping","deliveryUnavailable":"Unavailable for shipping","pickupInPoint":"Available for pickup","pickupInPointUnavailable":"Unavailable for pickup"},"inStock":{"enabled":false,"title":"Availability","label":"In-stock only"}},"filters":{"filterFacetRange":{"minLabel":"Min","maxLabel":"Max","minPriceErrorMessage":"Min price can't be greater than max","maxPriceErrorMessage":"Max price can't be smaller than min"}},"loading":{"label":"Loading..."}}},"serverData":null},"__N_SSG":true},"page":"/","query":{},"buildId":"s20QxDT2pZcGbsFUk-djq","isFallback":false,"gsp":true,"locale":"en-US","locales":["en-US"],"defaultLocale":"en-US","scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"/_app":"pages/_app.js","/_error":"pages/_error.js","/_document":"pages/_document.js","/api/fs/auth/login":"pages/api/fs/auth/login.js","/api/fs/logout":"pages/api/fs/logout.js","/api/graphql":"pages/api/graphql.js","/api/health/live":"pages/api/health/live.js","/api/health/ready":"pages/api/health/ready.js","/api/preview":"pages/api/preview.js","/404":"pages/404.js","/500":"pages/500.js","/[...slug]":"pages/[...slug].js","/checkout":"pages/checkout.js","/login":"pages/login.js","/":"pages/index.js","/pvt/account/403":"pages/pvt/account/403.js","/pvt/account/[...unknown]":"pages/pvt/account/[...unknown].js","/pvt/account/404":"pages/pvt/account/404.js","/pvt/account":"pages/pvt/account.js","/[slug]/p":"pages/[slug]/p.js","/pvt/account/profile":"pages/pvt/account/profile.js","/pvt/account/security":"pages/pvt/account/security.js","/pvt/account/user-details":"pages/pvt/account/user-details.js","/pvt/account/orders":"pages/pvt/account/orders.js","/s":"pages/s.js","/pvt/account/orders/[id]":"pages/pvt/account/orders/[id].js","/en-US/fs-auth-login":"pages/en-US/fs-auth-login.html"}
1
+ {"/_app":"pages/_app.js","/_error":"pages/_error.js","/_document":"pages/_document.js","/api/fs/logout":"pages/api/fs/logout.js","/api/fs/password-protection/unlock":"pages/api/fs/password-protection/unlock.js","/api/graphql":"pages/api/graphql.js","/api/health/live":"pages/api/health/live.js","/api/health/ready":"pages/api/health/ready.js","/api/preview":"pages/api/preview.js","/404":"pages/404.js","/500":"pages/500.js","/[...slug]":"pages/[...slug].js","/[slug]/p":"pages/[slug]/p.js","/":"pages/index.js","/login":"pages/login.js","/pvt/account/403":"pages/pvt/account/403.js","/pvt/account/[...unknown]":"pages/pvt/account/[...unknown].js","/pvt/account":"pages/pvt/account.js","/pvt/account/orders/[id]":"pages/pvt/account/orders/[id].js","/pvt/account/orders":"pages/pvt/account/orders.js","/pvt/account/profile":"pages/pvt/account/profile.js","/pvt/account/security":"pages/pvt/account/security.js","/checkout":"pages/checkout.js","/pvt/account/user-details":"pages/pvt/account/user-details.js","/s":"pages/s.js","/pvt/account/404":"pages/pvt/account/404.js","/en-US/password-protection":"pages/en-US/password-protection.html"}
@@ -1,7 +1,7 @@
1
1
  // runtime can't be in strict mode because a global variable is assign and maybe created.
2
2
  (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[727],{
3
3
 
4
- /***/ 306:
4
+ /***/ 665:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  "use strict";
@@ -4290,8 +4290,8 @@ function renewUrl() {
4290
4290
  defaultMs: 10000
4291
4291
  };
4292
4292
 
4293
- ;// CONCATENATED MODULE: ./src/server/authentication-service.ts
4294
- function authentication_service_defineProperty(obj, key, value) {
4293
+ ;// CONCATENATED MODULE: ./src/server/password-protection-service.ts
4294
+ function password_protection_service_defineProperty(obj, key, value) {
4295
4295
  if (key in obj) {
4296
4296
  Object.defineProperty(obj, key, {
4297
4297
  value: value,
@@ -4308,7 +4308,7 @@ function authentication_service_defineProperty(obj, key, value) {
4308
4308
 
4309
4309
 
4310
4310
 
4311
- const COOKIE_NAME = "__fs_auth_token";
4311
+ const COOKIE_NAME = "__fs_password_protection";
4312
4312
  const TOKEN_TTL_SECONDS = 10 * 60;
4313
4313
  /** How long to reuse the RSA public key fetched from WebOps */ const PUBLIC_KEY_CACHE_MS = 60 * 60 * 1000;
4314
4314
  let publicKeyCache = null;
@@ -4343,16 +4343,16 @@ async function getPublicVerificationKey() {
4343
4343
  /** Clears the cached WebOps public key (for unit tests only). */ function resetPasswordProtectionPublicKeyCacheForTests() {
4344
4344
  publicKeyCache = null;
4345
4345
  }
4346
- class AuthenticationService {
4346
+ class PasswordProtectionService {
4347
4347
  constructor(){
4348
- authentication_service_defineProperty(this, "storeId", void 0);
4348
+ password_protection_service_defineProperty(this, "storeId", void 0);
4349
4349
  this.storeId = (discovery_config_default()).api.storeId;
4350
4350
  }
4351
4351
  getNormalizedHost(request) {
4352
4352
  const host = request.headers.get("host") || "";
4353
4353
  return host.split(":")[0].toLowerCase();
4354
4354
  }
4355
- async authenticateRequest(request) {
4355
+ async checkStoreProtection(request) {
4356
4356
  if (!this.shouldCheckProtection(request)) {
4357
4357
  return {
4358
4358
  response: NextResponse.next()
@@ -4370,7 +4370,7 @@ class AuthenticationService {
4370
4370
  return await this.tryRenewSession(request, token, verification.payload);
4371
4371
  }
4372
4372
  }
4373
- return await this.handleNoAuth(request);
4373
+ return await this.handleProtectionCheck(request);
4374
4374
  }
4375
4375
  shouldCheckProtection(request) {
4376
4376
  if (false) {}
@@ -4446,7 +4446,7 @@ class AuthenticationService {
4446
4446
  const data = await res.json();
4447
4447
  if (data.valid && data.token) {
4448
4448
  const response = NextResponse.next();
4449
- this.setAuthCookie(response, data.token);
4449
+ this.setProtectionCookie(response, data.token);
4450
4450
  return {
4451
4451
  response
4452
4452
  };
@@ -4459,24 +4459,24 @@ class AuthenticationService {
4459
4459
  };
4460
4460
  }
4461
4461
  return {
4462
- response: this.redirectToLogin(request)
4462
+ response: this.redirectToUnlockPage(request)
4463
4463
  };
4464
4464
  }
4465
- async handleNoAuth(request) {
4465
+ async handleProtectionCheck(request) {
4466
4466
  try {
4467
4467
  const res = await fetch(protectionStatusUrl(), {
4468
4468
  signal: AbortSignal.timeout(passwordProtectionTimeouts.defaultMs)
4469
4469
  });
4470
4470
  if (!res.ok) {
4471
4471
  return {
4472
- response: this.redirectToLogin(request)
4472
+ response: this.redirectToUnlockPage(request)
4473
4473
  };
4474
4474
  }
4475
4475
  const status = await res.json();
4476
4476
  if (!status.protected) {
4477
4477
  const response = NextResponse.next();
4478
4478
  if (status.token) {
4479
- this.setAuthCookie(response, status.token);
4479
+ this.setProtectionCookie(response, status.token);
4480
4480
  }
4481
4481
  return {
4482
4482
  response
@@ -4488,15 +4488,15 @@ class AuthenticationService {
4488
4488
  };
4489
4489
  }
4490
4490
  return {
4491
- response: this.redirectToLogin(request)
4491
+ response: this.redirectToUnlockPage(request)
4492
4492
  };
4493
4493
  } catch {
4494
4494
  return {
4495
- response: this.redirectToLogin(request)
4495
+ response: this.redirectToUnlockPage(request)
4496
4496
  };
4497
4497
  }
4498
4498
  }
4499
- setAuthCookie(response, token) {
4499
+ setProtectionCookie(response, token) {
4500
4500
  response.cookies.set(COOKIE_NAME, token, {
4501
4501
  httpOnly: true,
4502
4502
  secure: true,
@@ -4505,11 +4505,11 @@ class AuthenticationService {
4505
4505
  maxAge: TOKEN_TTL_SECONDS
4506
4506
  });
4507
4507
  }
4508
- redirectToLogin(request) {
4509
- const loginUrl = new URL("/fs-auth-login", request.url);
4508
+ redirectToUnlockPage(request) {
4509
+ const unlockUrl = new URL("/password-protection", request.url);
4510
4510
  const returnTo = `${request.nextUrl.pathname}${request.nextUrl.search}`;
4511
- loginUrl.searchParams.set("returnTo", returnTo);
4512
- const response = NextResponse.redirect(loginUrl);
4511
+ unlockUrl.searchParams.set("returnTo", returnTo);
4512
+ const response = NextResponse.redirect(unlockUrl);
4513
4513
  response.headers.set("Cache-Control", "no-store");
4514
4514
  return response;
4515
4515
  }
@@ -4518,7 +4518,7 @@ class AuthenticationService {
4518
4518
  ;// CONCATENATED MODULE: ./src/middleware.ts
4519
4519
  /*
4520
4520
  * Middleware is always active. It runs:
4521
- * 1. Password protection (AuthenticationService) — when applicable (default/custom domains per env).
4521
+ * 1. Password protection (PasswordProtectionService) — when applicable (default/custom domains per env).
4522
4522
  * 2. Redirects — only when ENABLE_REDIRECTS_MIDDLEWARE is set at runtime.
4523
4523
  */
4524
4524
 
@@ -4532,15 +4532,15 @@ class DynamoRedirectsClient {
4532
4532
  const redirectsClient = new DynamoRedirectsClient();
4533
4533
  async function middleware(request) {
4534
4534
  const path = request.nextUrl.pathname;
4535
- let authResult;
4535
+ let storeProtectionResult;
4536
4536
  try {
4537
- const authService = new AuthenticationService();
4538
- authResult = await authService.authenticateRequest(request);
4537
+ const protectionService = new PasswordProtectionService();
4538
+ storeProtectionResult = await protectionService.checkStoreProtection(request);
4539
4539
  } catch {
4540
4540
  return NextResponse.error();
4541
4541
  }
4542
- if (authResult.response.status !== 200) {
4543
- return authResult.response;
4542
+ if (storeProtectionResult.response.status !== 200) {
4543
+ return storeProtectionResult.response;
4544
4544
  }
4545
4545
  if (process.env.ENABLE_REDIRECTS_MIDDLEWARE === "true") {
4546
4546
  const redirect = await redirectsClient.get(path);
@@ -4548,31 +4548,31 @@ async function middleware(request) {
4548
4548
  const redirectUrl = new URL(redirect.to, (discovery_config_default()).storeUrl);
4549
4549
  const redirectStatusCode = redirect.type === "permanent" ? 301 : 302;
4550
4550
  const response = NextResponse.redirect(redirectUrl, redirectStatusCode);
4551
- for (const cookie of authResult.response.cookies.getAll()){
4551
+ for (const cookie of storeProtectionResult.response.cookies.getAll()){
4552
4552
  response.cookies.set(cookie);
4553
4553
  }
4554
4554
  response.headers.set("Cache-Control", "public, max-age=300, stale-while-revalidate=31536000");
4555
4555
  return response;
4556
4556
  }
4557
4557
  }
4558
- return authResult.response;
4558
+ return storeProtectionResult.response;
4559
4559
  }
4560
4560
  const config = {
4561
4561
  matcher: [
4562
4562
  /*
4563
4563
  * Match all paths including `/`
4564
4564
  * Exclude:
4565
- * - api (e.g. api/fs/auth/login)
4565
+ * - api (e.g. api/fs/password-protection/unlock)
4566
4566
  * - _next/static, _next/image
4567
4567
  * - favicon.ico
4568
- * - fs-auth-login (login page)
4568
+ * - password-protection (unlock page)
4569
4569
  * - ~partytown (partytown scripts)
4570
4570
  */ "/",
4571
- "/((?!api|_next/static|_next/image|favicon.ico|fs-auth-login|~partytown).*)"
4571
+ "/((?!api|_next/static|_next/image|favicon.ico|password-protection|~partytown).*)"
4572
4572
  ]
4573
4573
  };
4574
4574
 
4575
- ;// CONCATENATED MODULE: ../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=private-next-root-dir%2Fsrc%2Fmiddleware.ts&page=%2Fsrc%2Fmiddleware&rootDir=%2Fhome%2Frunner%2Fwork%2Ffaststore%2Ffaststore%2Fpackages%2Fcore&matchers=W3sicmVnZXhwIjoiXig%2FOlxcLyhfbmV4dFxcL2RhdGFcXC9bXi9dezEsfSkpPyg%2FOlxcLygoPyFfbmV4dFxcLylbXi8uXXsxLH0pKSh8XFwuanNvbnxcXC8%2FaW5kZXh8XFwvP2luZGV4XFwuanNvbik%2FW1xcLyNcXD9dPyQiLCJvcmlnaW5hbFNvdXJjZSI6Ii8ifSx7InJlZ2V4cCI6Il4oPzpcXC8oX25leHRcXC9kYXRhXFwvW14vXXsxLH0pKT8oPzpcXC8oKD8hX25leHRcXC8pW14vLl17MSx9KSkoPzpcXC8oKD8hYXBpfF9uZXh0XFwvc3RhdGljfF9uZXh0XFwvaW1hZ2V8ZmF2aWNvbi5pY298ZnMtYXV0aC1sb2dpbnx%2BcGFydHl0b3duKS4qKSkoLmpzb24pP1tcXC8jXFw%2FXT8kIiwib3JpZ2luYWxTb3VyY2UiOiIvKCg%2FIWFwaXxfbmV4dC9zdGF0aWN8X25leHQvaW1hZ2V8ZmF2aWNvbi5pY298ZnMtYXV0aC1sb2dpbnx%2BcGFydHl0b3duKS4qKSJ9XQ%3D%3D&preferredRegion=&middlewareConfig=eyJtYXRjaGVycyI6W3sicmVnZXhwIjoiXig%2FOlxcLyhfbmV4dFxcL2RhdGFcXC9bXi9dezEsfSkpPyg%2FOlxcLygoPyFfbmV4dFxcLylbXi8uXXsxLH0pKSh8XFwuanNvbnxcXC8%2FaW5kZXh8XFwvP2luZGV4XFwuanNvbik%2FW1xcLyNcXD9dPyQiLCJvcmlnaW5hbFNvdXJjZSI6Ii8ifSx7InJlZ2V4cCI6Il4oPzpcXC8oX25leHRcXC9kYXRhXFwvW14vXXsxLH0pKT8oPzpcXC8oKD8hX25leHRcXC8pW14vLl17MSx9KSkoPzpcXC8oKD8hYXBpfF9uZXh0XFwvc3RhdGljfF9uZXh0XFwvaW1hZ2V8ZmF2aWNvbi5pY298ZnMtYXV0aC1sb2dpbnx%2BcGFydHl0b3duKS4qKSkoLmpzb24pP1tcXC8jXFw%2FXT8kIiwib3JpZ2luYWxTb3VyY2UiOiIvKCg%2FIWFwaXxfbmV4dC9zdGF0aWN8X25leHQvaW1hZ2V8ZmF2aWNvbi5pY298ZnMtYXV0aC1sb2dpbnx%2BcGFydHl0b3duKS4qKSJ9XX0%3D!
4575
+ ;// CONCATENATED MODULE: ../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js?absolutePagePath=private-next-root-dir%2Fsrc%2Fmiddleware.ts&page=%2Fsrc%2Fmiddleware&rootDir=%2Fhome%2Frunner%2Fwork%2Ffaststore%2Ffaststore%2Fpackages%2Fcore&matchers=W3sicmVnZXhwIjoiXig%2FOlxcLyhfbmV4dFxcL2RhdGFcXC9bXi9dezEsfSkpPyg%2FOlxcLygoPyFfbmV4dFxcLylbXi8uXXsxLH0pKSh8XFwuanNvbnxcXC8%2FaW5kZXh8XFwvP2luZGV4XFwuanNvbik%2FW1xcLyNcXD9dPyQiLCJvcmlnaW5hbFNvdXJjZSI6Ii8ifSx7InJlZ2V4cCI6Il4oPzpcXC8oX25leHRcXC9kYXRhXFwvW14vXXsxLH0pKT8oPzpcXC8oKD8hX25leHRcXC8pW14vLl17MSx9KSkoPzpcXC8oKD8hYXBpfF9uZXh0XFwvc3RhdGljfF9uZXh0XFwvaW1hZ2V8ZmF2aWNvbi5pY298cGFzc3dvcmQtcHJvdGVjdGlvbnx%2BcGFydHl0b3duKS4qKSkoLmpzb24pP1tcXC8jXFw%2FXT8kIiwib3JpZ2luYWxTb3VyY2UiOiIvKCg%2FIWFwaXxfbmV4dC9zdGF0aWN8X25leHQvaW1hZ2V8ZmF2aWNvbi5pY298cGFzc3dvcmQtcHJvdGVjdGlvbnx%2BcGFydHl0b3duKS4qKSJ9XQ%3D%3D&preferredRegion=&middlewareConfig=eyJtYXRjaGVycyI6W3sicmVnZXhwIjoiXig%2FOlxcLyhfbmV4dFxcL2RhdGFcXC9bXi9dezEsfSkpPyg%2FOlxcLygoPyFfbmV4dFxcLylbXi8uXXsxLH0pKSh8XFwuanNvbnxcXC8%2FaW5kZXh8XFwvP2luZGV4XFwuanNvbik%2FW1xcLyNcXD9dPyQiLCJvcmlnaW5hbFNvdXJjZSI6Ii8ifSx7InJlZ2V4cCI6Il4oPzpcXC8oX25leHRcXC9kYXRhXFwvW14vXXsxLH0pKT8oPzpcXC8oKD8hX25leHRcXC8pW14vLl17MSx9KSkoPzpcXC8oKD8hYXBpfF9uZXh0XFwvc3RhdGljfF9uZXh0XFwvaW1hZ2V8ZmF2aWNvbi5pY298cGFzc3dvcmQtcHJvdGVjdGlvbnx%2BcGFydHl0b3duKS4qKSkoLmpzb24pP1tcXC8jXFw%2FXT8kIiwib3JpZ2luYWxTb3VyY2UiOiIvKCg%2FIWFwaXxfbmV4dC9zdGF0aWN8X25leHQvaW1hZ2V8ZmF2aWNvbi5pY298cGFzc3dvcmQtcHJvdGVjdGlvbnx%2BcGFydHl0b3duKS4qKSJ9XX0%3D!
4576
4576
 
4577
4577
 
4578
4578
  // Import the userland code.
@@ -5410,7 +5410,7 @@ module.exports = {};
5410
5410
  },
5411
5411
  /******/ __webpack_require__ => { // webpackRuntimeModules
5412
5412
  /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
5413
- /******/ var __webpack_exports__ = (__webpack_exec__(306));
5413
+ /******/ var __webpack_exports__ = (__webpack_exec__(665));
5414
5414
  /******/ (_ENTRIES = typeof _ENTRIES === "undefined" ? {} : _ENTRIES)["middleware_src/middleware"] = __webpack_exports__;
5415
5415
  /******/ }
5416
5416
  ]);