@doswiftly/cli 0.1.18 → 0.1.20

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 (277) hide show
  1. package/README.md +23 -323
  2. package/dist/commands/check.js +1 -1
  3. package/dist/commands/check.js.map +1 -1
  4. package/dist/commands/deploy.d.ts +20 -0
  5. package/dist/commands/deploy.d.ts.map +1 -1
  6. package/dist/commands/deploy.js +249 -17
  7. package/dist/commands/deploy.js.map +1 -1
  8. package/dist/commands/doctor.js +3 -3
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/init.js +4 -4
  11. package/dist/commands/sdk.js +5 -5
  12. package/dist/commands/sdk.js.map +1 -1
  13. package/dist/commands/template.js +4 -4
  14. package/dist/commands/template.js.map +1 -1
  15. package/dist/commands/types.js +5 -5
  16. package/dist/commands/types.js.map +1 -1
  17. package/dist/commands/verify.js +2 -2
  18. package/dist/commands/verify.js.map +1 -1
  19. package/dist/lib/package-manager.d.ts +1 -1
  20. package/dist/lib/package-manager.js +1 -1
  21. package/package.json +4 -4
  22. package/templates/storefront-minimal/.github/workflows/build-template.yml +10 -0
  23. package/templates/storefront-minimal/wrangler.toml +11 -0
  24. package/templates/storefront-nextjs/.github/workflows/build-template.yml +10 -0
  25. package/templates/storefront-nextjs/README.md +16 -12
  26. package/templates/storefront-nextjs/app/account/orders/page.tsx +2 -2
  27. package/templates/storefront-nextjs/app/account/page.tsx +2 -2
  28. package/templates/storefront-nextjs/app/auth/login/page.tsx +1 -1
  29. package/templates/storefront-nextjs/app/auth/register/page.tsx +1 -1
  30. package/templates/storefront-nextjs/app/cart/page.tsx +1 -1
  31. package/templates/storefront-nextjs/app/categories/[slug]/page.tsx +2 -2
  32. package/templates/storefront-nextjs/app/categories/page.tsx +1 -1
  33. package/templates/storefront-nextjs/app/collections/[slug]/page.tsx +1 -1
  34. package/templates/storefront-nextjs/app/collections/page.tsx +1 -1
  35. package/templates/storefront-nextjs/app/page.tsx +1 -1
  36. package/templates/storefront-nextjs/app/products/[slug]/page.tsx +1 -1
  37. package/templates/storefront-nextjs/app/products/page.tsx +2 -2
  38. package/templates/storefront-nextjs/app/search/page.tsx +1 -1
  39. package/templates/storefront-nextjs/components/auth/auth-guard.tsx +1 -1
  40. package/templates/storefront-nextjs/components/commerce/add-to-cart-button.tsx +1 -1
  41. package/templates/storefront-nextjs/components/commerce/cart-icon.tsx +1 -1
  42. package/templates/storefront-nextjs/components/commerce/currency-selector.tsx +2 -2
  43. package/templates/storefront-nextjs/components/commerce/product-filters.tsx +1 -1
  44. package/templates/storefront-nextjs/components/commerce/product-price.tsx +1 -1
  45. package/templates/storefront-nextjs/components/commerce/search-input.tsx +1 -1
  46. package/templates/storefront-nextjs/components/commerce/sort-select.tsx +1 -1
  47. package/templates/storefront-nextjs/components/providers.tsx +1 -1
  48. package/templates/storefront-nextjs/lib/currency.tsx +3 -3
  49. package/templates/storefront-nextjs/lib/format.ts +1 -1
  50. package/templates/storefront-nextjs/lib/graphql-queries.ts +3 -3
  51. package/templates/storefront-nextjs/package.dev.json +1 -1
  52. package/templates/storefront-nextjs/package.json +1 -1
  53. package/templates/storefront-nextjs/package.json.template +1 -1
  54. package/templates/storefront-nextjs/wrangler.toml +11 -0
  55. package/templates/storefront-nextjs-shadcn/.github/workflows/build-template.yml +10 -0
  56. package/templates/storefront-nextjs-shadcn/.github/workflows/deploy.yml +47 -0
  57. package/templates/storefront-nextjs-shadcn/.github/workflows/preview.yml +47 -0
  58. package/templates/storefront-nextjs-shadcn/CLAUDE.md +172 -35
  59. package/templates/storefront-nextjs-shadcn/README.md +29 -162
  60. package/templates/storefront-nextjs-shadcn/app/{about → [locale]/about}/page.tsx +17 -14
  61. package/templates/storefront-nextjs-shadcn/app/[locale]/account/addresses/page.tsx +226 -0
  62. package/templates/storefront-nextjs-shadcn/app/[locale]/account/error.tsx +46 -0
  63. package/templates/storefront-nextjs-shadcn/app/[locale]/account/loading.tsx +19 -0
  64. package/templates/storefront-nextjs-shadcn/app/{account → [locale]/account}/loyalty/page.tsx +89 -193
  65. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/[id]/loading.tsx +60 -0
  66. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/[id]/page.tsx +119 -0
  67. package/templates/storefront-nextjs-shadcn/app/{account → [locale]/account}/orders/[id]/tracking/page.tsx +27 -25
  68. package/templates/storefront-nextjs-shadcn/app/[locale]/account/orders/page.tsx +101 -0
  69. package/templates/storefront-nextjs-shadcn/app/{account → [locale]/account}/page.tsx +9 -7
  70. package/templates/storefront-nextjs-shadcn/app/[locale]/account/settings/page.tsx +208 -0
  71. package/templates/storefront-nextjs-shadcn/app/{auth → [locale]/auth}/forgot-password/page.tsx +24 -17
  72. package/templates/storefront-nextjs-shadcn/app/{auth → [locale]/auth}/login/page.tsx +5 -2
  73. package/templates/storefront-nextjs-shadcn/app/{auth → [locale]/auth}/register/page.tsx +5 -2
  74. package/templates/storefront-nextjs-shadcn/app/[locale]/blog/[slug]/loading.tsx +17 -0
  75. package/templates/storefront-nextjs-shadcn/app/{blog → [locale]/blog}/[slug]/page.tsx +44 -3
  76. package/templates/storefront-nextjs-shadcn/app/[locale]/blog/loading.tsx +19 -0
  77. package/templates/storefront-nextjs-shadcn/app/{brands → [locale]/brands}/page.tsx +2 -1
  78. package/templates/storefront-nextjs-shadcn/app/[locale]/cart/loading.tsx +26 -0
  79. package/templates/storefront-nextjs-shadcn/app/{cart → [locale]/cart}/page.tsx +20 -13
  80. package/templates/storefront-nextjs-shadcn/app/[locale]/categories/[slug]/category-products-client.tsx +58 -0
  81. package/templates/storefront-nextjs-shadcn/app/[locale]/categories/[slug]/loading.tsx +32 -0
  82. package/templates/storefront-nextjs-shadcn/app/[locale]/categories/[slug]/page.tsx +95 -0
  83. package/templates/storefront-nextjs-shadcn/app/{categories → [locale]/categories}/page.tsx +21 -12
  84. package/templates/storefront-nextjs-shadcn/app/[locale]/checkout/error.tsx +43 -0
  85. package/templates/storefront-nextjs-shadcn/app/[locale]/checkout/loading.tsx +31 -0
  86. package/templates/storefront-nextjs-shadcn/app/{checkout → [locale]/checkout}/page.tsx +334 -253
  87. package/templates/storefront-nextjs-shadcn/app/{checkout → [locale]/checkout}/success/[orderId]/page.tsx +36 -34
  88. package/templates/storefront-nextjs-shadcn/app/[locale]/collections/[handle]/loading.tsx +19 -0
  89. package/templates/storefront-nextjs-shadcn/app/{collections → [locale]/collections}/[handle]/page.tsx +6 -4
  90. package/templates/storefront-nextjs-shadcn/app/[locale]/collections/loading.tsx +18 -0
  91. package/templates/storefront-nextjs-shadcn/app/{collections → [locale]/collections}/page.tsx +20 -12
  92. package/templates/storefront-nextjs-shadcn/app/{contact → [locale]/contact}/page.tsx +24 -21
  93. package/templates/storefront-nextjs-shadcn/app/{error.tsx → [locale]/error.tsx} +13 -8
  94. package/templates/storefront-nextjs-shadcn/app/[locale]/layout.tsx +92 -0
  95. package/templates/storefront-nextjs-shadcn/app/{not-found.tsx → [locale]/not-found.tsx} +13 -18
  96. package/templates/storefront-nextjs-shadcn/app/{page.tsx → [locale]/page.tsx} +8 -4
  97. package/templates/storefront-nextjs-shadcn/app/[locale]/products/[slug]/error.tsx +43 -0
  98. package/templates/storefront-nextjs-shadcn/app/[locale]/products/[slug]/loading.tsx +29 -0
  99. package/templates/storefront-nextjs-shadcn/app/{products → [locale]/products}/[slug]/page.tsx +17 -14
  100. package/templates/storefront-nextjs-shadcn/app/{products → [locale]/products}/[slug]/product-client.tsx +18 -62
  101. package/templates/storefront-nextjs-shadcn/app/[locale]/products/loading.tsx +32 -0
  102. package/templates/storefront-nextjs-shadcn/app/{products → [locale]/products}/page.tsx +6 -3
  103. package/templates/storefront-nextjs-shadcn/app/[locale]/products/products-client.tsx +450 -0
  104. package/templates/storefront-nextjs-shadcn/app/[locale]/search/loading.tsx +18 -0
  105. package/templates/storefront-nextjs-shadcn/app/{wishlist → [locale]/wishlist}/page.tsx +27 -28
  106. package/templates/storefront-nextjs-shadcn/app/api/auth/clear-token/route.ts +2 -86
  107. package/templates/storefront-nextjs-shadcn/app/api/auth/set-token/route.ts +2 -124
  108. package/templates/storefront-nextjs-shadcn/app/global-error.tsx +117 -0
  109. package/templates/storefront-nextjs-shadcn/app/globals.css +8 -0
  110. package/templates/storefront-nextjs-shadcn/app/layout.tsx +8 -35
  111. package/templates/storefront-nextjs-shadcn/codegen.ts +48 -31
  112. package/templates/storefront-nextjs-shadcn/components/account/address-form.tsx +25 -20
  113. package/templates/storefront-nextjs-shadcn/components/account/address-list.tsx +11 -10
  114. package/templates/storefront-nextjs-shadcn/components/account/customer-info.fragment.graphql +36 -0
  115. package/templates/storefront-nextjs-shadcn/components/account/order-details.tsx +17 -13
  116. package/templates/storefront-nextjs-shadcn/components/account/order-history.tsx +42 -30
  117. package/templates/storefront-nextjs-shadcn/components/account/order-summary.fragment.graphql +36 -0
  118. package/templates/storefront-nextjs-shadcn/components/auth/account-menu.tsx +18 -16
  119. package/templates/storefront-nextjs-shadcn/components/auth/login-form.tsx +37 -58
  120. package/templates/storefront-nextjs-shadcn/components/auth/register-form.tsx +85 -66
  121. package/templates/storefront-nextjs-shadcn/components/blog/blog-card.tsx +1 -1
  122. package/templates/storefront-nextjs-shadcn/components/blog/blog-sidebar.tsx +1 -1
  123. package/templates/storefront-nextjs-shadcn/components/brand/brand-card.tsx +1 -1
  124. package/templates/storefront-nextjs-shadcn/components/cart/cart-drawer.tsx +10 -6
  125. package/templates/storefront-nextjs-shadcn/components/cart/cart-icon.tsx +9 -6
  126. package/templates/storefront-nextjs-shadcn/components/cart/cart-item.tsx +8 -6
  127. package/templates/storefront-nextjs-shadcn/components/cart/cart-line.fragment.graphql +53 -0
  128. package/templates/storefront-nextjs-shadcn/components/cart/cart-summary.tsx +10 -8
  129. package/templates/storefront-nextjs-shadcn/components/cart/promo-code-input.tsx +8 -5
  130. package/templates/storefront-nextjs-shadcn/components/cart/shipping-estimator.tsx +38 -20
  131. package/templates/storefront-nextjs-shadcn/components/checkout/payment-method-card.tsx +15 -25
  132. package/templates/storefront-nextjs-shadcn/components/checkout/payment-step.tsx +10 -8
  133. package/templates/storefront-nextjs-shadcn/components/checkout/tax-breakdown.tsx +9 -6
  134. package/templates/storefront-nextjs-shadcn/components/commerce/currency-selector.tsx +7 -5
  135. package/templates/storefront-nextjs-shadcn/components/commerce/pagination.tsx +8 -5
  136. package/templates/storefront-nextjs-shadcn/components/commerce/product-actions.tsx +6 -4
  137. package/templates/storefront-nextjs-shadcn/components/commerce/search-input.tsx +10 -9
  138. package/templates/storefront-nextjs-shadcn/components/common/category-card.tsx +1 -1
  139. package/templates/storefront-nextjs-shadcn/components/common/collection-card.tsx +1 -1
  140. package/templates/storefront-nextjs-shadcn/components/common/price-display.tsx +35 -11
  141. package/templates/storefront-nextjs-shadcn/components/common/social-share.tsx +9 -6
  142. package/templates/storefront-nextjs-shadcn/components/discount/discount-breakdown.tsx +22 -12
  143. package/templates/storefront-nextjs-shadcn/components/discount/discount-code-input.tsx +18 -15
  144. package/templates/storefront-nextjs-shadcn/components/error/error-boundary.tsx +53 -28
  145. package/templates/storefront-nextjs-shadcn/components/filters/dynamic-attribute-filters.tsx +7 -5
  146. package/templates/storefront-nextjs-shadcn/components/filters/range-slider-filter.tsx +5 -5
  147. package/templates/storefront-nextjs-shadcn/components/gift-card/gift-card-balance.tsx +19 -15
  148. package/templates/storefront-nextjs-shadcn/components/gift-card/gift-card-input.tsx +13 -10
  149. package/templates/storefront-nextjs-shadcn/components/home/category-grid.tsx +10 -6
  150. package/templates/storefront-nextjs-shadcn/components/home/collection-card.fragment.graphql +21 -0
  151. package/templates/storefront-nextjs-shadcn/components/home/featured-collections.tsx +3 -13
  152. package/templates/storefront-nextjs-shadcn/components/home/featured-products.tsx +12 -8
  153. package/templates/storefront-nextjs-shadcn/components/home/hero-section.tsx +13 -8
  154. package/templates/storefront-nextjs-shadcn/components/home/index.ts +0 -1
  155. package/templates/storefront-nextjs-shadcn/components/home/newsletter-signup.tsx +10 -8
  156. package/templates/storefront-nextjs-shadcn/components/hydrated.tsx +24 -0
  157. package/templates/storefront-nextjs-shadcn/components/layout/breadcrumbs.tsx +41 -16
  158. package/templates/storefront-nextjs-shadcn/components/layout/category-node.fragment.graphql +22 -0
  159. package/templates/storefront-nextjs-shadcn/components/layout/currency-selector.tsx +7 -4
  160. package/templates/storefront-nextjs-shadcn/components/layout/footer.tsx +24 -23
  161. package/templates/storefront-nextjs-shadcn/components/layout/header.tsx +52 -34
  162. package/templates/storefront-nextjs-shadcn/components/layout/language-switcher.tsx +54 -0
  163. package/templates/storefront-nextjs-shadcn/components/layout/mobile-menu.tsx +33 -30
  164. package/templates/storefront-nextjs-shadcn/components/layout/navigation.tsx +27 -24
  165. package/templates/storefront-nextjs-shadcn/components/loyalty/points-balance.tsx +2 -11
  166. package/templates/storefront-nextjs-shadcn/components/loyalty/points-history.tsx +8 -25
  167. package/templates/storefront-nextjs-shadcn/components/loyalty/referral-section.tsx +32 -42
  168. package/templates/storefront-nextjs-shadcn/components/loyalty/rewards-catalog.tsx +17 -41
  169. package/templates/storefront-nextjs-shadcn/components/loyalty/tier-progress.tsx +2 -29
  170. package/templates/storefront-nextjs-shadcn/components/order/index.ts +6 -1
  171. package/templates/storefront-nextjs-shadcn/components/product/add-to-cart-button.tsx +6 -14
  172. package/templates/storefront-nextjs-shadcn/components/product/b2b-price-display.tsx +4 -2
  173. package/templates/storefront-nextjs-shadcn/components/product/filter-active-pills.tsx +72 -0
  174. package/templates/storefront-nextjs-shadcn/components/product/filter-mobile-sheet.tsx +87 -0
  175. package/templates/storefront-nextjs-shadcn/components/product/filter-price-range.tsx +140 -0
  176. package/templates/storefront-nextjs-shadcn/components/product/index.ts +9 -2
  177. package/templates/storefront-nextjs-shadcn/components/product/product-card.fragment.graphql +49 -0
  178. package/templates/storefront-nextjs-shadcn/components/product/product-card.tsx +11 -37
  179. package/templates/storefront-nextjs-shadcn/components/product/product-detail.fragment.graphql +52 -0
  180. package/templates/storefront-nextjs-shadcn/components/product/product-filters.tsx +179 -124
  181. package/templates/storefront-nextjs-shadcn/components/product/product-grid.tsx +3 -5
  182. package/templates/storefront-nextjs-shadcn/components/product/product-image.tsx +3 -7
  183. package/templates/storefront-nextjs-shadcn/components/product/product-price.tsx +2 -2
  184. package/templates/storefront-nextjs-shadcn/components/product/product-reviews.tsx +5 -4
  185. package/templates/storefront-nextjs-shadcn/components/product/product-sort.tsx +44 -19
  186. package/templates/storefront-nextjs-shadcn/components/product/product-variant-selector.tsx +8 -23
  187. package/templates/storefront-nextjs-shadcn/components/product/product-variant.fragment.graphql +51 -0
  188. package/templates/storefront-nextjs-shadcn/components/product/review-card.tsx +1 -1
  189. package/templates/storefront-nextjs-shadcn/components/product/review-form.tsx +26 -34
  190. package/templates/storefront-nextjs-shadcn/components/product/savings-display.tsx +17 -2
  191. package/templates/storefront-nextjs-shadcn/components/product/similar-products.tsx +3 -2
  192. package/templates/storefront-nextjs-shadcn/components/providers/index.ts +1 -1
  193. package/templates/storefront-nextjs-shadcn/components/providers/language-sync-provider.tsx +27 -0
  194. package/templates/storefront-nextjs-shadcn/components/providers/stores-provider.tsx +63 -0
  195. package/templates/storefront-nextjs-shadcn/components/providers/theme-provider.tsx +1 -1
  196. package/templates/storefront-nextjs-shadcn/components/returns/index.ts +2 -2
  197. package/templates/storefront-nextjs-shadcn/components/returns/return-request-form.tsx +59 -72
  198. package/templates/storefront-nextjs-shadcn/components/search/search-bar.tsx +7 -4
  199. package/templates/storefront-nextjs-shadcn/components/search/search-results.tsx +3 -2
  200. package/templates/storefront-nextjs-shadcn/components/shipping/shipping-method-selector.tsx +12 -9
  201. package/templates/storefront-nextjs-shadcn/components/ui/empty-state.tsx +23 -12
  202. package/templates/storefront-nextjs-shadcn/components/ui/form.tsx +174 -0
  203. package/templates/storefront-nextjs-shadcn/components/ui/index.ts +30 -2
  204. package/templates/storefront-nextjs-shadcn/components/ui/progress.tsx +40 -0
  205. package/templates/storefront-nextjs-shadcn/components/ui/sheet.tsx +107 -0
  206. package/templates/storefront-nextjs-shadcn/components/ui/slider.tsx +33 -0
  207. package/templates/storefront-nextjs-shadcn/components/ui/textarea.tsx +24 -0
  208. package/templates/storefront-nextjs-shadcn/components/wishlist/wishlist-button.tsx +7 -4
  209. package/templates/storefront-nextjs-shadcn/components/wishlist/wishlist-icon.tsx +4 -2
  210. package/templates/storefront-nextjs-shadcn/components/wishlist/wishlist-item.tsx +2 -10
  211. package/templates/storefront-nextjs-shadcn/generated/graphql.ts +13387 -0
  212. package/templates/storefront-nextjs-shadcn/graphql/custom.example.graphql +159 -0
  213. package/templates/storefront-nextjs-shadcn/hooks/index.ts +3 -0
  214. package/templates/storefront-nextjs-shadcn/hooks/use-auth-sync.ts +42 -0
  215. package/templates/storefront-nextjs-shadcn/hooks/use-auth.ts +17 -295
  216. package/templates/storefront-nextjs-shadcn/hooks/use-cart-actions.ts +34 -229
  217. package/templates/storefront-nextjs-shadcn/hooks/use-cart-di.ts +67 -0
  218. package/templates/storefront-nextjs-shadcn/hooks/use-cart-sync.ts +16 -12
  219. package/templates/storefront-nextjs-shadcn/i18n/navigation.ts +12 -0
  220. package/templates/storefront-nextjs-shadcn/i18n/request.ts +17 -0
  221. package/templates/storefront-nextjs-shadcn/i18n/routing.ts +17 -0
  222. package/templates/storefront-nextjs-shadcn/lib/auth/routes.ts +4 -17
  223. package/templates/storefront-nextjs-shadcn/lib/graphql/client.ts +22 -99
  224. package/templates/storefront-nextjs-shadcn/lib/graphql/config.ts +33 -0
  225. package/templates/storefront-nextjs-shadcn/lib/graphql/fragments.ts +34 -0
  226. package/templates/storefront-nextjs-shadcn/lib/graphql/hooks.ts +720 -632
  227. package/templates/storefront-nextjs-shadcn/lib/graphql/query-keys.ts +88 -0
  228. package/templates/storefront-nextjs-shadcn/lib/graphql/server.ts +132 -182
  229. package/templates/storefront-nextjs-shadcn/lib/graphql/types.ts +62 -0
  230. package/templates/storefront-nextjs-shadcn/lib/theme/theme-config.ts +0 -17
  231. package/templates/storefront-nextjs-shadcn/messages/en.json +869 -0
  232. package/templates/storefront-nextjs-shadcn/messages/pl.json +869 -0
  233. package/templates/storefront-nextjs-shadcn/next-env.d.ts +6 -0
  234. package/templates/storefront-nextjs-shadcn/next.config.ts +6 -5
  235. package/templates/storefront-nextjs-shadcn/package.dev.json +1 -3
  236. package/templates/storefront-nextjs-shadcn/package.json +14 -14
  237. package/templates/storefront-nextjs-shadcn/package.json.template +6 -7
  238. package/templates/storefront-nextjs-shadcn/proxy.ts +115 -47
  239. package/templates/storefront-nextjs-shadcn/stores/cart-store.ts +24 -56
  240. package/templates/storefront-nextjs-shadcn/stores/checkout-store.ts +64 -75
  241. package/templates/storefront-nextjs-shadcn/stores/wishlist-store.ts +178 -177
  242. package/templates/storefront-nextjs-shadcn/tsconfig.json +23 -5
  243. package/templates/storefront-nextjs-shadcn/wrangler.toml +11 -0
  244. package/templates/storefront-nextjs-shadcn/CART_INTEGRATION.md +0 -282
  245. package/templates/storefront-nextjs-shadcn/GRAPHQL_DOCUMENT_NAMES.md +0 -190
  246. package/templates/storefront-nextjs-shadcn/GRAPHQL_ERROR_HANDLING.md +0 -263
  247. package/templates/storefront-nextjs-shadcn/GRAPHQL_FIXES_SUMMARY.md +0 -135
  248. package/templates/storefront-nextjs-shadcn/GRAPHQL_INTEGRATION_COMPLETE.md +0 -142
  249. package/templates/storefront-nextjs-shadcn/INTEGRATION_CHECKLIST.md +0 -448
  250. package/templates/storefront-nextjs-shadcn/PRODUCT_DETAIL_PAGE_IMPLEMENTATION.md +0 -307
  251. package/templates/storefront-nextjs-shadcn/THEME_CUSTOMIZATION.md +0 -245
  252. package/templates/storefront-nextjs-shadcn/app/account/addresses/page.tsx +0 -215
  253. package/templates/storefront-nextjs-shadcn/app/account/orders/[id]/page.tsx +0 -128
  254. package/templates/storefront-nextjs-shadcn/app/account/orders/page.tsx +0 -80
  255. package/templates/storefront-nextjs-shadcn/app/account/settings/page.tsx +0 -171
  256. package/templates/storefront-nextjs-shadcn/app/categories/[slug]/page.tsx +0 -78
  257. package/templates/storefront-nextjs-shadcn/app/products/products-client.tsx +0 -192
  258. package/templates/storefront-nextjs-shadcn/components/providers/currency-provider.tsx +0 -103
  259. package/templates/storefront-nextjs-shadcn/graphql/collections.example.ts +0 -168
  260. package/templates/storefront-nextjs-shadcn/graphql/products.example.ts +0 -160
  261. package/templates/storefront-nextjs-shadcn/lib/auth/cookies.ts +0 -220
  262. package/templates/storefront-nextjs-shadcn/lib/config.ts +0 -46
  263. package/templates/storefront-nextjs-shadcn/lib/currency/IMPLEMENTATION_SUMMARY.md +0 -254
  264. package/templates/storefront-nextjs-shadcn/lib/currency/README.md +0 -464
  265. package/templates/storefront-nextjs-shadcn/lib/currency/cookie-manager.test.ts +0 -328
  266. package/templates/storefront-nextjs-shadcn/lib/currency/cookie-manager.ts +0 -295
  267. package/templates/storefront-nextjs-shadcn/lib/currency/index.ts +0 -27
  268. package/templates/storefront-nextjs-shadcn/lib/format.ts +0 -226
  269. package/templates/storefront-nextjs-shadcn/lib/hooks.ts +0 -30
  270. package/templates/storefront-nextjs-shadcn/stores/auth-store.ts +0 -66
  271. package/templates/storefront-nextjs-shadcn/stores/currency-store.ts +0 -103
  272. /package/templates/storefront-nextjs-shadcn/app/{blog → [locale]/blog}/page.tsx +0 -0
  273. /package/templates/storefront-nextjs-shadcn/app/{brands → [locale]/brands}/[slug]/page.tsx +0 -0
  274. /package/templates/storefront-nextjs-shadcn/app/{returns → [locale]/returns}/page.tsx +0 -0
  275. /package/templates/storefront-nextjs-shadcn/app/{search → [locale]/search}/page.tsx +0 -0
  276. /package/templates/storefront-nextjs-shadcn/app/{search → [locale]/search}/search-client.tsx +0 -0
  277. /package/templates/storefront-nextjs-shadcn/app/{shipping → [locale]/shipping}/page.tsx +0 -0
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  import Link from "next/link";
4
- import { useCustomer } from "@doswiftly/commerce-sdk/graphql/client";
5
- import { useAuth } from "@doswiftly/commerce-sdk/graphql/react";
4
+ import { useCustomer } from "@doswiftly/storefront-sdk/graphql/client";
5
+ import { useAuth } from "@doswiftly/storefront-sdk/graphql/react";
6
6
  import { AuthGuard } from "@/components/auth/auth-guard";
7
7
 
8
8
  function OrdersContent() {
@@ -2,8 +2,8 @@
2
2
 
3
3
  import Link from "next/link";
4
4
  import { useRouter } from "next/navigation";
5
- import { useAuth, useLogout } from "@doswiftly/commerce-sdk/graphql/react";
6
- import { useCustomer } from "@doswiftly/commerce-sdk/graphql/client";
5
+ import { useAuth, useLogout } from "@doswiftly/storefront-sdk/graphql/react";
6
+ import { useCustomer } from "@doswiftly/storefront-sdk/graphql/client";
7
7
  import { AuthGuard } from "@/components/auth/auth-guard";
8
8
 
9
9
  function AccountContent() {
@@ -3,7 +3,7 @@
3
3
  import { useState, FormEvent, Suspense } from "react";
4
4
  import Link from "next/link";
5
5
  import { useRouter, useSearchParams } from "next/navigation";
6
- import { useLogin } from "@doswiftly/commerce-sdk/graphql/react";
6
+ import { useLogin } from "@doswiftly/storefront-sdk/graphql/react";
7
7
  import { AuthGuard } from "@/components/auth/auth-guard";
8
8
 
9
9
  function LoginFormContent() {
@@ -3,7 +3,7 @@
3
3
  import { useState, FormEvent } from "react";
4
4
  import Link from "next/link";
5
5
  import { useRouter } from "next/navigation";
6
- import { useRegister } from "@doswiftly/commerce-sdk/graphql/react";
6
+ import { useRegister } from "@doswiftly/storefront-sdk/graphql/react";
7
7
  import { AuthGuard } from "@/components/auth/auth-guard";
8
8
 
9
9
  function RegisterForm() {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import Link from "next/link";
4
4
  import { Trash2, Plus, Minus, ShoppingCart, Loader2 } from "lucide-react";
5
- import { useCartManager } from "@doswiftly/commerce-sdk/graphql/react";
5
+ import { useCartManager } from "@doswiftly/storefront-sdk/graphql/react";
6
6
 
7
7
  /**
8
8
  * CartPage - Shopping cart with real GraphQL data
@@ -3,8 +3,8 @@ import { notFound } from "next/navigation";
3
3
  import {
4
4
  useCategory,
5
5
  useProducts,
6
- } from "@doswiftly/commerce-sdk/graphql/server";
7
- import { ProductSortKeys } from "@doswiftly/commerce-sdk/graphql";
6
+ } from "@doswiftly/storefront-sdk/graphql/server";
7
+ import { ProductSortKeys } from "@doswiftly/storefront-sdk/graphql";
8
8
  import { Pagination } from "@/components/commerce/pagination";
9
9
  import { SortSelect } from "@/components/commerce/sort-select";
10
10
 
@@ -1,5 +1,5 @@
1
1
  import Link from "next/link";
2
- import { useCategories } from "@doswiftly/commerce-sdk/graphql/server";
2
+ import { useCategories } from "@doswiftly/storefront-sdk/graphql/server";
3
3
 
4
4
  export default async function CategoriesPage() {
5
5
  // Fetch all root categories
@@ -3,7 +3,7 @@ import { notFound } from "next/navigation";
3
3
  import {
4
4
  useCollection,
5
5
  useProducts,
6
- } from "@doswiftly/commerce-sdk/graphql/server";
6
+ } from "@doswiftly/storefront-sdk/graphql/server";
7
7
  import { Pagination } from "@/components/commerce/pagination";
8
8
 
9
9
  interface CollectionPageProps {
@@ -1,5 +1,5 @@
1
1
  import Link from "next/link";
2
- import { useCollections } from "@doswiftly/commerce-sdk/graphql/server";
2
+ import { useCollections } from "@doswiftly/storefront-sdk/graphql/server";
3
3
 
4
4
  export default async function CollectionsPage() {
5
5
  // Fetch all collections
@@ -2,7 +2,7 @@ import Link from "next/link";
2
2
  import {
3
3
  useProducts,
4
4
  useCategories,
5
- } from "@doswiftly/commerce-sdk/graphql/server";
5
+ } from "@doswiftly/storefront-sdk/graphql/server";
6
6
 
7
7
  export default async function HomePage() {
8
8
  // Fetch featured products
@@ -1,6 +1,6 @@
1
1
  import Link from "next/link";
2
2
  import { notFound } from "next/navigation";
3
- import { useProduct } from "@doswiftly/commerce-sdk/graphql/server";
3
+ import { useProduct } from "@doswiftly/storefront-sdk/graphql/server";
4
4
  import { ProductActions } from "@/components/commerce/product-actions";
5
5
 
6
6
  interface ProductPageProps {
@@ -2,8 +2,8 @@ import Link from "next/link";
2
2
  import {
3
3
  useProducts,
4
4
  useCategories,
5
- } from "@doswiftly/commerce-sdk/graphql/server";
6
- import { ProductSortKeys } from "@doswiftly/commerce-sdk/graphql";
5
+ } from "@doswiftly/storefront-sdk/graphql/server";
6
+ import { ProductSortKeys } from "@doswiftly/storefront-sdk/graphql";
7
7
  import { ProductFilters } from "@/components/commerce/product-filters";
8
8
  import { Pagination } from "@/components/commerce/pagination";
9
9
 
@@ -1,5 +1,5 @@
1
1
  import Link from "next/link";
2
- import { useProducts } from "@doswiftly/commerce-sdk/graphql/server";
2
+ import { useProducts } from "@doswiftly/storefront-sdk/graphql/server";
3
3
  import { SearchInput } from "@/components/commerce/search-input";
4
4
  import { Pagination } from "@/components/commerce/pagination";
5
5
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useEffect, ReactNode } from "react";
4
4
  import { useRouter } from "next/navigation";
5
- import { useAuth } from "@doswiftly/commerce-sdk/graphql/react";
5
+ import { useAuth } from "@doswiftly/storefront-sdk/graphql/react";
6
6
  import { redirects } from "@/lib/auth/routes";
7
7
 
8
8
  interface AuthGuardProps {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useState } from "react";
4
4
  import { ShoppingCart, Loader2, Check } from "lucide-react";
5
- import { useCartManager } from "@doswiftly/commerce-sdk/graphql/react";
5
+ import { useCartManager } from "@doswiftly/storefront-sdk/graphql/react";
6
6
 
7
7
  interface AddToCartButtonProps {
8
8
  variantId: string;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import Link from "next/link";
4
4
  import { ShoppingCart } from "lucide-react";
5
- import { useCartManager } from "@doswiftly/commerce-sdk/graphql/react";
5
+ import { useCartManager } from "@doswiftly/storefront-sdk/graphql/react";
6
6
 
7
7
  /**
8
8
  * CartIcon - Cart icon with dynamic item count
@@ -2,11 +2,11 @@
2
2
 
3
3
  import { useState, useRef, useEffect } from "react";
4
4
  import { ChevronDown, Check, Globe } from "lucide-react";
5
- import { useCurrency } from "@doswiftly/commerce-sdk/graphql/react";
5
+ import { useCurrency } from "@doswiftly/storefront-sdk/graphql/react";
6
6
  import {
7
7
  useCurrencyStore,
8
8
  selectIsHydrated,
9
- } from "@doswiftly/commerce-sdk/graphql/react/stores";
9
+ } from "@doswiftly/storefront-sdk/graphql/react/stores";
10
10
 
11
11
  // ============================================================================
12
12
  // CURRENCY DATA
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useRouter, useSearchParams, usePathname } from "next/navigation";
4
4
  import { useCallback } from "react";
5
- import { ProductSortKeys } from "@doswiftly/commerce-sdk/graphql";
5
+ import { ProductSortKeys } from "@doswiftly/storefront-sdk/graphql";
6
6
 
7
7
  interface Category {
8
8
  id: string;
@@ -7,7 +7,7 @@ import type {
7
7
  Money,
8
8
  ConvertedPriceRange,
9
9
  ProductPriceRange,
10
- } from "@doswiftly/commerce-sdk/graphql";
10
+ } from "@doswiftly/storefront-sdk/graphql";
11
11
 
12
12
  // ============================================================================
13
13
  // TYPES - Using SDK types (SSOT)
@@ -3,7 +3,7 @@
3
3
  import { useState, useEffect, useRef, useCallback } from "react";
4
4
  import { useRouter } from "next/navigation";
5
5
  import { Search, X, Loader2 } from "lucide-react";
6
- import { useProductSearch } from "@doswiftly/commerce-sdk/graphql/client";
6
+ import { useProductSearch } from "@doswiftly/storefront-sdk/graphql/client";
7
7
  import { useDebouncedValue } from "@/lib/hooks";
8
8
  import Link from "next/link";
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useRouter, useSearchParams, usePathname } from "next/navigation";
4
4
  import { useCallback } from "react";
5
- import { ProductSortKeys } from "@doswiftly/commerce-sdk/graphql";
5
+ import { ProductSortKeys } from "@doswiftly/storefront-sdk/graphql";
6
6
 
7
7
  interface SortSelectProps {
8
8
  currentSort?: string;
@@ -13,7 +13,7 @@
13
13
  */
14
14
 
15
15
  import { ReactNode } from "react";
16
- import { StorefrontProvider } from "@doswiftly/commerce-sdk/graphql/react";
16
+ import { StorefrontProvider } from "@doswiftly/storefront-sdk/graphql/react";
17
17
 
18
18
  // ============================================================================
19
19
  // TYPES
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * For currency state management, use the SDK:
7
7
  * ```tsx
8
- * import { useCurrency } from '@doswiftly/commerce-sdk/graphql/react';
8
+ * import { useCurrency } from '@doswiftly/storefront-sdk/graphql/react';
9
9
  *
10
10
  * function MyComponent() {
11
11
  * const { currency, setCurrency, supportedCurrencies } = useCurrency();
@@ -14,10 +14,10 @@
14
14
  */
15
15
 
16
16
  // Re-export useCurrency from SDK for convenience
17
- export { useCurrency } from "@doswiftly/commerce-sdk/graphql/react";
17
+ export { useCurrency } from "@doswiftly/storefront-sdk/graphql/react";
18
18
 
19
19
  // Re-export types from SDK
20
- import type { PriceMoney, Money } from "@doswiftly/commerce-sdk/graphql";
20
+ import type { PriceMoney, Money } from "@doswiftly/storefront-sdk/graphql";
21
21
  export type { PriceMoney, Money };
22
22
 
23
23
  // ============================================================================
@@ -4,7 +4,7 @@
4
4
  * @module storefront-nextjs/lib/format
5
5
  */
6
6
 
7
- import type { PriceMoney, Money } from "@doswiftly/commerce-sdk/graphql";
7
+ import type { PriceMoney, Money } from "@doswiftly/storefront-sdk/graphql";
8
8
 
9
9
  // ============================================================================
10
10
  // CURRENCY DATA
@@ -8,7 +8,7 @@
8
8
  * Instead of raw GraphQL queries, use the auto-generated SDK with factory:
9
9
  *
10
10
  * ```typescript
11
- * import { createStorefrontSdkFromEnv } from "@doswiftly/commerce-sdk/graphql";
11
+ * import { createStorefrontSdkFromEnv } from "@doswiftly/storefront-sdk/graphql";
12
12
  *
13
13
  * const sdk = createStorefrontSdkFromEnv();
14
14
  * const { products } = await sdk.Products({ first: 20 });
@@ -21,7 +21,7 @@
21
21
  * - ✅ No manual GraphQL string maintenance
22
22
  *
23
23
  * ## Adding custom queries:
24
- * See: packages/@doswiftly/commerce-sdk/CUSTOM_OPERATIONS.md
24
+ * See: packages/@doswiftly/storefront-sdk/CUSTOM_OPERATIONS.md
25
25
  *
26
26
  * ---
27
27
  *
@@ -36,7 +36,7 @@
36
36
  * Types are imported from SDK (SSOT) - auto-generated from GraphQL schema.
37
37
  */
38
38
 
39
- import type { PriceMoney, Money } from "@doswiftly/commerce-sdk/graphql";
39
+ import type { PriceMoney, Money } from "@doswiftly/storefront-sdk/graphql";
40
40
  export type { PriceMoney, Money };
41
41
 
42
42
  // ============================================================================
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "@doswiftly/commerce-sdk": "file:../../../commerce-sdk",
12
+ "@doswiftly/storefront-sdk": "file:../../../commerce-sdk",
13
13
  "graphql-request": "^7.1.2",
14
14
  "graphql": "^16.10.0",
15
15
  "next": "latest",
@@ -10,7 +10,7 @@
10
10
  "lint": "next lint"
11
11
  },
12
12
  "dependencies": {
13
- "@doswiftly/commerce-sdk": "{{SDK_VERSION}}",
13
+ "@doswiftly/storefront-sdk": "{{SDK_VERSION}}",
14
14
  "graphql-request": "^7.1.2",
15
15
  "graphql": "^16.10.0",
16
16
  "next": "^15.1.9",
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "@doswiftly/commerce-sdk": "{{SDK_VERSION}}",
12
+ "@doswiftly/storefront-sdk": "{{SDK_VERSION}}",
13
13
  "@tanstack/react-query": "^5.62.7",
14
14
  "graphql-request": "^7.1.2",
15
15
  "graphql": "^16.10.0",
@@ -11,3 +11,14 @@ assets = { directory = ".open-next/assets", binding = "ASSETS" }
11
11
  # Cloudflare Images binding for Next.js /_next/image optimization
12
12
  [images]
13
13
  binding = "IMAGES"
14
+
15
+ # Observability — logs persisted in Cloudflare Dashboard
16
+ [observability]
17
+ enabled = true
18
+ head_sampling_rate = 1
19
+
20
+ [observability.logs]
21
+ enabled = true
22
+ head_sampling_rate = 1
23
+ persist = true
24
+ invocation_logs = true
@@ -62,6 +62,16 @@ jobs:
62
62
  compatibility_date = "2024-09-23"
63
63
  compatibility_flags = ["nodejs_compat"]
64
64
  assets = { directory = "assets", binding = "ASSETS" }
65
+
66
+ [observability]
67
+ enabled = true
68
+ head_sampling_rate = 1
69
+
70
+ [observability.logs]
71
+ enabled = true
72
+ head_sampling_rate = 1
73
+ persist = true
74
+ invocation_logs = true
65
75
  EOF
66
76
 
67
77
  - name: Determine version
@@ -0,0 +1,47 @@
1
+ name: Deploy Storefront
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+ env:
11
+ NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
12
+ NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Detect package manager
17
+ id: pm
18
+ run: |
19
+ if [ -f pnpm-lock.yaml ]; then
20
+ echo "manager=pnpm" >> $GITHUB_OUTPUT
21
+ echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
22
+ elif [ -f yarn.lock ]; then
23
+ echo "manager=yarn" >> $GITHUB_OUTPUT
24
+ echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
25
+ else
26
+ echo "manager=npm" >> $GITHUB_OUTPUT
27
+ echo "install=npm ci" >> $GITHUB_OUTPUT
28
+ fi
29
+
30
+ - name: Setup pnpm
31
+ if: steps.pm.outputs.manager == 'pnpm'
32
+ uses: pnpm/action-setup@v4
33
+
34
+ - uses: actions/setup-node@v4
35
+ with:
36
+ node-version: 20
37
+ cache: ${{ steps.pm.outputs.manager }}
38
+
39
+ - name: Install dependencies
40
+ run: ${{ steps.pm.outputs.install }}
41
+
42
+ - name: Deploy to DoSwiftly
43
+ run: |
44
+ npx --yes @doswiftly/cli@latest --version
45
+ npx @doswiftly/cli@latest deploy run --type PRODUCTION
46
+ env:
47
+ DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}
@@ -0,0 +1,47 @@
1
+ name: Preview Deployment
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+
7
+ jobs:
8
+ preview:
9
+ runs-on: ubuntu-latest
10
+ env:
11
+ NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
12
+ NEXT_PUBLIC_SHOP_SLUG: ${{ secrets.NEXT_PUBLIC_SHOP_SLUG }}
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Detect package manager
17
+ id: pm
18
+ run: |
19
+ if [ -f pnpm-lock.yaml ]; then
20
+ echo "manager=pnpm" >> $GITHUB_OUTPUT
21
+ echo "install=pnpm install --frozen-lockfile" >> $GITHUB_OUTPUT
22
+ elif [ -f yarn.lock ]; then
23
+ echo "manager=yarn" >> $GITHUB_OUTPUT
24
+ echo "install=yarn install --frozen-lockfile" >> $GITHUB_OUTPUT
25
+ else
26
+ echo "manager=npm" >> $GITHUB_OUTPUT
27
+ echo "install=npm ci" >> $GITHUB_OUTPUT
28
+ fi
29
+
30
+ - name: Setup pnpm
31
+ if: steps.pm.outputs.manager == 'pnpm'
32
+ uses: pnpm/action-setup@v4
33
+
34
+ - uses: actions/setup-node@v4
35
+ with:
36
+ node-version: 20
37
+ cache: ${{ steps.pm.outputs.manager }}
38
+
39
+ - name: Install dependencies
40
+ run: ${{ steps.pm.outputs.install }}
41
+
42
+ - name: Deploy preview
43
+ run: |
44
+ npx --yes @doswiftly/cli@latest --version
45
+ npx @doswiftly/cli@latest deploy run --type PREVIEW --branch ${{ github.head_ref }}
46
+ env:
47
+ DOSWIFTLY_DEPLOY_TOKEN: ${{ secrets.DOSWIFTLY_DEPLOY_TOKEN }}