@forgecart/cli 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -7
  3. package/bin/forgecart.js +1 -1
  4. package/dist/package.json +50 -0
  5. package/dist/src/cli.d.ts.map +1 -0
  6. package/dist/{cli.js → src/cli.js} +8 -6
  7. package/dist/src/cli.js.map +1 -0
  8. package/dist/src/commands/delete.d.ts.map +1 -0
  9. package/dist/{commands → src/commands}/delete.js +8 -3
  10. package/dist/src/commands/delete.js.map +1 -0
  11. package/dist/src/commands/deploy.d.ts.map +1 -0
  12. package/dist/src/commands/deploy.js +243 -0
  13. package/dist/src/commands/deploy.js.map +1 -0
  14. package/dist/src/commands/env.d.ts.map +1 -0
  15. package/dist/{commands → src/commands}/env.js +70 -12
  16. package/dist/src/commands/env.js.map +1 -0
  17. package/dist/src/commands/init.d.ts.map +1 -0
  18. package/dist/{commands → src/commands}/init.js +103 -17
  19. package/dist/src/commands/init.js.map +1 -0
  20. package/dist/src/commands/list.d.ts.map +1 -0
  21. package/dist/{commands → src/commands}/list.js +6 -2
  22. package/dist/src/commands/list.js.map +1 -0
  23. package/dist/src/commands/login.d.ts +3 -0
  24. package/dist/src/commands/login.d.ts.map +1 -0
  25. package/dist/src/commands/login.js +120 -0
  26. package/dist/src/commands/login.js.map +1 -0
  27. package/dist/src/commands/logs.d.ts.map +1 -0
  28. package/dist/src/commands/logs.js +88 -0
  29. package/dist/src/commands/logs.js.map +1 -0
  30. package/dist/src/commands/scale.d.ts.map +1 -0
  31. package/dist/{commands → src/commands}/scale.js +7 -3
  32. package/dist/src/commands/scale.js.map +1 -0
  33. package/dist/src/commands/status.d.ts.map +1 -0
  34. package/dist/{commands → src/commands}/status.js +7 -2
  35. package/dist/src/commands/status.js.map +1 -0
  36. package/dist/src/commands/whoami.d.ts.map +1 -0
  37. package/dist/{commands → src/commands}/whoami.js +20 -7
  38. package/dist/src/commands/whoami.js.map +1 -0
  39. package/dist/{index.d.ts.map → src/index.d.ts.map} +1 -1
  40. package/dist/src/index.js.map +1 -0
  41. package/dist/src/lib/api-client.d.ts +34 -0
  42. package/dist/src/lib/api-client.d.ts.map +1 -0
  43. package/dist/src/lib/api-client.js +141 -0
  44. package/dist/src/lib/api-client.js.map +1 -0
  45. package/dist/{lib → src/lib}/archive.d.ts +2 -1
  46. package/dist/src/lib/archive.d.ts.map +1 -0
  47. package/dist/{lib → src/lib}/archive.js +27 -5
  48. package/dist/src/lib/archive.js.map +1 -0
  49. package/dist/src/lib/config-updater.d.ts +10 -0
  50. package/dist/src/lib/config-updater.d.ts.map +1 -0
  51. package/dist/src/lib/config-updater.js +34 -0
  52. package/dist/src/lib/config-updater.js.map +1 -0
  53. package/dist/src/lib/config.d.ts +53 -0
  54. package/dist/src/lib/config.d.ts.map +1 -0
  55. package/dist/src/lib/config.js +162 -0
  56. package/dist/src/lib/config.js.map +1 -0
  57. package/dist/src/lib/env-sync.d.ts +44 -0
  58. package/dist/src/lib/env-sync.d.ts.map +1 -0
  59. package/dist/src/lib/env-sync.js +207 -0
  60. package/dist/src/lib/env-sync.js.map +1 -0
  61. package/dist/src/lib/logger.d.ts.map +1 -0
  62. package/dist/src/lib/logger.js.map +1 -0
  63. package/dist/src/lib/nx-generator.d.ts +22 -0
  64. package/dist/src/lib/nx-generator.d.ts.map +1 -0
  65. package/dist/src/lib/nx-generator.js +345 -0
  66. package/dist/src/lib/nx-generator.js.map +1 -0
  67. package/dist/src/lib/standalone.d.ts +28 -0
  68. package/dist/src/lib/standalone.d.ts.map +1 -0
  69. package/dist/src/lib/standalone.js +107 -0
  70. package/dist/src/lib/standalone.js.map +1 -0
  71. package/dist/{types → src/types}/index.d.ts +10 -0
  72. package/dist/src/types/index.d.ts.map +1 -0
  73. package/dist/src/types/index.js.map +1 -0
  74. package/dist/src/utils/spinner.d.ts +16 -0
  75. package/dist/src/utils/spinner.d.ts.map +1 -0
  76. package/dist/src/utils/spinner.js +88 -0
  77. package/dist/src/utils/spinner.js.map +1 -0
  78. package/dist/src/utils/validation.d.ts.map +1 -0
  79. package/dist/{utils → src/utils}/validation.js +18 -2
  80. package/dist/src/utils/validation.js.map +1 -0
  81. package/dist/templates/application-additions/.forgecartignore +1 -1
  82. package/dist/templates/application-additions/Procfile +1 -1
  83. package/dist/templates/application-additions/src/app/app.module.ts +16 -0
  84. package/dist/templates/application-additions/src/services/forgecart.service.ts +62 -0
  85. package/dist/templates/application-additions/src/services/index.ts +2 -0
  86. package/dist/templates/application-additions/src/services/product-event-listener.service.ts +150 -0
  87. package/dist/templates/application-e2e-additions/src/support/global-setup.ts +16 -0
  88. package/dist/templates/application-e2e-additions/src/support/test-setup.ts +9 -0
  89. package/dist/templates/storefront-additions/.forgecartignore +30 -6
  90. package/dist/templates/storefront-additions/Procfile +1 -1
  91. package/dist/templates/storefront-additions/package.json +11 -0
  92. package/dist/templates/storefront-additions/postcss.config.js +5 -0
  93. package/dist/templates/storefront-additions/src/app/cart/page.tsx +77 -0
  94. package/dist/templates/storefront-additions/src/app/global.css +1 -0
  95. package/dist/templates/storefront-additions/src/app/layout.tsx +25 -0
  96. package/dist/templates/storefront-additions/src/app/page.tsx +43 -0
  97. package/dist/templates/storefront-additions/src/components/AddToCartButton.tsx +29 -0
  98. package/dist/templates/storefront-additions/src/components/CartItem.tsx +82 -0
  99. package/dist/templates/storefront-additions/src/components/Header.tsx +42 -0
  100. package/dist/templates/storefront-additions/src/components/ProductCard.tsx +57 -0
  101. package/dist/templates/storefront-additions/src/components/QuantitySelector.tsx +35 -0
  102. package/dist/templates/storefront-additions/src/context/CartContext.tsx +158 -0
  103. package/dist/templates/storefront-additions/src/lib/forgecart.ts +19 -8
  104. package/dist/templates/storefront-additions/tailwind.config.js +8 -0
  105. package/dist/templates/storefront-e2e-additions/playwright.config.ts +26 -0
  106. package/dist/templates/storefront-e2e-additions/src/example.spec.ts +11 -0
  107. package/dist/templates/workspace/.nxignore +2 -0
  108. package/package.json +6 -28
  109. package/templates/application-additions/.forgecartignore +1 -1
  110. package/templates/application-additions/Procfile +1 -1
  111. package/templates/application-additions/src/app/app.module.ts +16 -0
  112. package/templates/application-additions/src/services/forgecart.service.ts +62 -0
  113. package/templates/application-additions/src/services/index.ts +2 -0
  114. package/templates/application-additions/src/services/product-event-listener.service.ts +150 -0
  115. package/templates/application-e2e-additions/src/support/global-setup.ts +16 -0
  116. package/templates/application-e2e-additions/src/support/test-setup.ts +9 -0
  117. package/templates/storefront-additions/.forgecartignore +30 -6
  118. package/templates/storefront-additions/Procfile +1 -1
  119. package/templates/storefront-additions/package.json +11 -0
  120. package/templates/storefront-additions/postcss.config.js +5 -0
  121. package/templates/storefront-additions/src/app/cart/page.tsx +77 -0
  122. package/templates/storefront-additions/src/app/global.css +1 -0
  123. package/templates/storefront-additions/src/app/layout.tsx +25 -0
  124. package/templates/storefront-additions/src/app/page.tsx +43 -0
  125. package/templates/storefront-additions/src/components/AddToCartButton.tsx +29 -0
  126. package/templates/storefront-additions/src/components/CartItem.tsx +82 -0
  127. package/templates/storefront-additions/src/components/Header.tsx +42 -0
  128. package/templates/storefront-additions/src/components/ProductCard.tsx +57 -0
  129. package/templates/storefront-additions/src/components/QuantitySelector.tsx +35 -0
  130. package/templates/storefront-additions/src/context/CartContext.tsx +158 -0
  131. package/templates/storefront-additions/src/lib/forgecart.ts +19 -8
  132. package/templates/storefront-additions/tailwind.config.js +8 -0
  133. package/templates/storefront-e2e-additions/playwright.config.ts +26 -0
  134. package/templates/storefront-e2e-additions/src/example.spec.ts +11 -0
  135. package/templates/workspace/.nxignore +2 -0
  136. package/dist/cli.d.ts.map +0 -1
  137. package/dist/cli.js.map +0 -1
  138. package/dist/commands/delete.d.ts.map +0 -1
  139. package/dist/commands/delete.js.map +0 -1
  140. package/dist/commands/deploy.d.ts.map +0 -1
  141. package/dist/commands/deploy.js +0 -128
  142. package/dist/commands/deploy.js.map +0 -1
  143. package/dist/commands/env.d.ts.map +0 -1
  144. package/dist/commands/env.js.map +0 -1
  145. package/dist/commands/init.d.ts.map +0 -1
  146. package/dist/commands/init.js.map +0 -1
  147. package/dist/commands/list.d.ts.map +0 -1
  148. package/dist/commands/list.js.map +0 -1
  149. package/dist/commands/logs.d.ts.map +0 -1
  150. package/dist/commands/logs.js +0 -105
  151. package/dist/commands/logs.js.map +0 -1
  152. package/dist/commands/scale.d.ts.map +0 -1
  153. package/dist/commands/scale.js.map +0 -1
  154. package/dist/commands/status.d.ts.map +0 -1
  155. package/dist/commands/status.js.map +0 -1
  156. package/dist/commands/whoami.d.ts.map +0 -1
  157. package/dist/commands/whoami.js.map +0 -1
  158. package/dist/index.js.map +0 -1
  159. package/dist/lib/api-client.d.ts +0 -21
  160. package/dist/lib/api-client.d.ts.map +0 -1
  161. package/dist/lib/api-client.js +0 -220
  162. package/dist/lib/api-client.js.map +0 -1
  163. package/dist/lib/archive.d.ts.map +0 -1
  164. package/dist/lib/archive.js.map +0 -1
  165. package/dist/lib/config.d.ts +0 -12
  166. package/dist/lib/config.d.ts.map +0 -1
  167. package/dist/lib/config.js +0 -79
  168. package/dist/lib/config.js.map +0 -1
  169. package/dist/lib/logger.d.ts.map +0 -1
  170. package/dist/lib/logger.js.map +0 -1
  171. package/dist/lib/nx-generator.d.ts +0 -8
  172. package/dist/lib/nx-generator.d.ts.map +0 -1
  173. package/dist/lib/nx-generator.js +0 -146
  174. package/dist/lib/nx-generator.js.map +0 -1
  175. package/dist/templates/application-additions/src/services/price-fetcher.service.ts +0 -72
  176. package/dist/templates/storefront-additions/src/app/products/page.tsx +0 -78
  177. package/dist/types/index.d.ts.map +0 -1
  178. package/dist/types/index.js.map +0 -1
  179. package/dist/utils/spinner.d.ts +0 -4
  180. package/dist/utils/spinner.d.ts.map +0 -1
  181. package/dist/utils/spinner.js +0 -20
  182. package/dist/utils/spinner.js.map +0 -1
  183. package/dist/utils/validation.d.ts.map +0 -1
  184. package/dist/utils/validation.js.map +0 -1
  185. package/templates/application-additions/src/services/price-fetcher.service.ts +0 -72
  186. package/templates/storefront-additions/src/app/products/page.tsx +0 -78
  187. /package/dist/{cli.d.ts → src/cli.d.ts} +0 -0
  188. /package/dist/{commands → src/commands}/delete.d.ts +0 -0
  189. /package/dist/{commands → src/commands}/deploy.d.ts +0 -0
  190. /package/dist/{commands → src/commands}/env.d.ts +0 -0
  191. /package/dist/{commands → src/commands}/init.d.ts +0 -0
  192. /package/dist/{commands → src/commands}/list.d.ts +0 -0
  193. /package/dist/{commands → src/commands}/logs.d.ts +0 -0
  194. /package/dist/{commands → src/commands}/scale.d.ts +0 -0
  195. /package/dist/{commands → src/commands}/status.d.ts +0 -0
  196. /package/dist/{commands → src/commands}/whoami.d.ts +0 -0
  197. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  198. /package/dist/{index.js → src/index.js} +0 -0
  199. /package/dist/{lib → src/lib}/logger.d.ts +0 -0
  200. /package/dist/{lib → src/lib}/logger.js +0 -0
  201. /package/dist/{types → src/types}/index.js +0 -0
  202. /package/dist/{utils → src/utils}/validation.d.ts +0 -0
@@ -0,0 +1,82 @@
1
+ 'use client'
2
+
3
+ import { useCart } from '../context/CartContext'
4
+ import { QuantitySelector } from './QuantitySelector'
5
+
6
+ interface CartLine {
7
+ id: string
8
+ quantity: number
9
+ productVariant: {
10
+ id: string
11
+ name: string
12
+ price: number
13
+ priceWithTax: number
14
+ currencyCode: string
15
+ }
16
+ featuredAsset?: {
17
+ preview: string
18
+ }
19
+ unitPriceWithTax: number
20
+ linePriceWithTax: number
21
+ }
22
+
23
+ interface CartItemProps {
24
+ line: CartLine
25
+ }
26
+
27
+ export function CartItem({ line }: CartItemProps) {
28
+ const { updateQuantity, removeItem, loading } = useCart()
29
+
30
+ // Defensive check for incomplete line data
31
+ if (!line.productVariant) {
32
+ return null
33
+ }
34
+
35
+ const unitPrice = (line.unitPriceWithTax / 100).toFixed(2)
36
+ const lineTotal = (line.linePriceWithTax / 100).toFixed(2)
37
+
38
+ return (
39
+ <div className="flex gap-4 py-4 border-b">
40
+ {line.featuredAsset && (
41
+ <img
42
+ src={line.featuredAsset.preview}
43
+ alt={line.productVariant.name}
44
+ className="w-20 h-20 object-cover rounded"
45
+ />
46
+ )}
47
+ {!line.featuredAsset && (
48
+ <div className="w-20 h-20 bg-gray-200 rounded flex items-center justify-center">
49
+ <span className="text-gray-400 text-xs">No img</span>
50
+ </div>
51
+ )}
52
+ <div className="flex-1">
53
+ <h3 className="font-semibold text-gray-900">
54
+ {line.productVariant.name}
55
+ </h3>
56
+ <p className="text-gray-600 text-sm">
57
+ {unitPrice} {line.productVariant.currencyCode} each
58
+ </p>
59
+ <div className="flex items-center justify-between mt-2">
60
+ <QuantitySelector
61
+ quantity={line.quantity}
62
+ onIncrease={() => updateQuantity(line.id, line.quantity + 1)}
63
+ onDecrease={() => updateQuantity(line.id, line.quantity - 1)}
64
+ disabled={loading}
65
+ />
66
+ <button
67
+ onClick={() => removeItem(line.id)}
68
+ disabled={loading}
69
+ className="text-red-600 hover:text-red-800 text-sm disabled:opacity-50"
70
+ >
71
+ Remove
72
+ </button>
73
+ </div>
74
+ </div>
75
+ <div className="text-right">
76
+ <p className="font-bold text-gray-900">
77
+ {lineTotal} {line.productVariant.currencyCode}
78
+ </p>
79
+ </div>
80
+ </div>
81
+ )
82
+ }
@@ -0,0 +1,42 @@
1
+ 'use client'
2
+
3
+ import Link from 'next/link'
4
+ import { useCart } from '../context/CartContext'
5
+
6
+ export function Header() {
7
+ const { itemCount, loading } = useCart()
8
+
9
+ return (
10
+ <header className="bg-white shadow-sm border-b">
11
+ <div className="max-w-7xl mx-auto px-4 py-4 flex justify-between items-center">
12
+ <Link href="/" className="text-xl font-bold text-gray-900">
13
+ Store
14
+ </Link>
15
+ <Link
16
+ href="/cart"
17
+ className="relative flex items-center gap-2 text-gray-700 hover:text-gray-900"
18
+ >
19
+ <svg
20
+ className="w-6 h-6"
21
+ fill="none"
22
+ stroke="currentColor"
23
+ viewBox="0 0 24 24"
24
+ >
25
+ <path
26
+ strokeLinecap="round"
27
+ strokeLinejoin="round"
28
+ strokeWidth={2}
29
+ d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"
30
+ />
31
+ </svg>
32
+ <span>Cart</span>
33
+ {itemCount > 0 && (
34
+ <span className="absolute -top-2 -right-2 bg-blue-600 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center">
35
+ {loading ? '...' : itemCount}
36
+ </span>
37
+ )}
38
+ </Link>
39
+ </div>
40
+ </header>
41
+ )
42
+ }
@@ -0,0 +1,57 @@
1
+ import { AddToCartButton } from './AddToCartButton'
2
+
3
+ interface ProductVariant {
4
+ id: string
5
+ price: number
6
+ priceWithTax: number
7
+ currencyCode: string
8
+ }
9
+
10
+ interface Product {
11
+ id: string
12
+ name: string
13
+ description: string
14
+ featuredAsset?: {
15
+ preview: string
16
+ }
17
+ variants: ProductVariant[]
18
+ }
19
+
20
+ interface ProductCardProps {
21
+ product: Product
22
+ }
23
+
24
+ export function ProductCard({ product }: ProductCardProps) {
25
+ const variant = product.variants[0]
26
+ const price = variant ? (variant.priceWithTax / 100).toFixed(2) : '0.00'
27
+ const currencyCode = variant?.currencyCode ?? 'USD'
28
+
29
+ return (
30
+ <div className="bg-white border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-shadow">
31
+ {product.featuredAsset && (
32
+ <img
33
+ src={product.featuredAsset.preview}
34
+ alt={product.name}
35
+ className="w-full h-48 object-cover"
36
+ />
37
+ )}
38
+ {!product.featuredAsset && (
39
+ <div className="w-full h-48 bg-gray-200 flex items-center justify-center">
40
+ <span className="text-gray-400">No image</span>
41
+ </div>
42
+ )}
43
+ <div className="p-4">
44
+ <h2 className="text-lg font-semibold mb-2 text-gray-900">
45
+ {product.name}
46
+ </h2>
47
+ <p className="text-gray-600 text-sm mb-3 line-clamp-2">
48
+ {product.description}
49
+ </p>
50
+ <p className="text-lg font-bold text-blue-600 mb-4">
51
+ {price} {currencyCode}
52
+ </p>
53
+ {variant && <AddToCartButton productVariantId={variant.id} />}
54
+ </div>
55
+ </div>
56
+ )
57
+ }
@@ -0,0 +1,35 @@
1
+ 'use client'
2
+
3
+ interface QuantitySelectorProps {
4
+ quantity: number
5
+ onIncrease: () => void
6
+ onDecrease: () => void
7
+ disabled?: boolean
8
+ }
9
+
10
+ export function QuantitySelector({
11
+ quantity,
12
+ onIncrease,
13
+ onDecrease,
14
+ disabled,
15
+ }: QuantitySelectorProps) {
16
+ return (
17
+ <div className="flex items-center gap-2">
18
+ <button
19
+ onClick={onDecrease}
20
+ disabled={disabled || quantity <= 1}
21
+ className="w-8 h-8 flex items-center justify-center border rounded-md hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed"
22
+ >
23
+ -
24
+ </button>
25
+ <span className="w-8 text-center">{quantity}</span>
26
+ <button
27
+ onClick={onIncrease}
28
+ disabled={disabled}
29
+ className="w-8 h-8 flex items-center justify-center border rounded-md hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed"
30
+ >
31
+ +
32
+ </button>
33
+ </div>
34
+ )
35
+ }
@@ -0,0 +1,158 @@
1
+ 'use client'
2
+
3
+ import {
4
+ createContext,
5
+ useContext,
6
+ useState,
7
+ useEffect,
8
+ useCallback,
9
+ ReactNode,
10
+ } from 'react'
11
+ import forgecart from '../lib/forgecart'
12
+
13
+ interface CartLine {
14
+ id: string
15
+ quantity: number
16
+ productVariant: {
17
+ id: string
18
+ name: string
19
+ price: number
20
+ priceWithTax: number
21
+ currencyCode: string
22
+ }
23
+ featuredAsset?: {
24
+ preview: string
25
+ }
26
+ unitPriceWithTax: number
27
+ linePriceWithTax: number
28
+ }
29
+
30
+ interface Cart {
31
+ id: string
32
+ lines: CartLine[]
33
+ totalQuantity: number
34
+ subTotalWithTax: number
35
+ totalWithTax: number
36
+ currencyCode: string
37
+ }
38
+
39
+ interface CartContextType {
40
+ cart: Cart | null
41
+ loading: boolean
42
+ itemCount: number
43
+ addToCart: (productVariantId: string, quantity: number) => Promise<void>
44
+ updateQuantity: (orderLineId: string, quantity: number) => Promise<void>
45
+ removeItem: (orderLineId: string) => Promise<void>
46
+ refreshCart: () => Promise<void>
47
+ }
48
+
49
+ const CartContext = createContext<CartContextType | undefined>(undefined)
50
+
51
+ export function CartProvider({ children }: { children: ReactNode }) {
52
+ const [cart, setCart] = useState<Cart | null>(null)
53
+ const [loading, setLoading] = useState(true)
54
+
55
+ const refreshCart = useCallback(async () => {
56
+ try {
57
+ const result = await forgecart.shop.order.activeOrder()
58
+ if (result.activeOrder) {
59
+ setCart(result.activeOrder as unknown as Cart)
60
+ } else {
61
+ setCart(null)
62
+ }
63
+ } catch (error) {
64
+ console.error('Failed to fetch cart:', error)
65
+ } finally {
66
+ setLoading(false)
67
+ }
68
+ }, [])
69
+
70
+ useEffect(() => {
71
+ refreshCart()
72
+ }, [refreshCart])
73
+
74
+ const addToCart = async (productVariantId: string, quantity: number) => {
75
+ setLoading(true)
76
+ try {
77
+ const result = await forgecart.shop.order.addItemToOrder({
78
+ productVariantId,
79
+ quantity,
80
+ })
81
+ if (
82
+ result.addItemToOrder &&
83
+ result.addItemToOrder.__typename === 'Order'
84
+ ) {
85
+ setCart(result.addItemToOrder as unknown as Cart)
86
+ }
87
+ } catch (error) {
88
+ console.error('Failed to add item:', error)
89
+ } finally {
90
+ setLoading(false)
91
+ }
92
+ }
93
+
94
+ const updateQuantity = async (orderLineId: string, quantity: number) => {
95
+ setLoading(true)
96
+ try {
97
+ const result = await forgecart.shop.order.adjustOrderLine({
98
+ orderLineId,
99
+ quantity,
100
+ })
101
+ if (
102
+ result.adjustOrderLine &&
103
+ result.adjustOrderLine.__typename === 'Order'
104
+ ) {
105
+ setCart(result.adjustOrderLine as unknown as Cart)
106
+ }
107
+ } catch (error) {
108
+ console.error('Failed to update quantity:', error)
109
+ } finally {
110
+ setLoading(false)
111
+ }
112
+ }
113
+
114
+ const removeItem = async (orderLineId: string) => {
115
+ setLoading(true)
116
+ try {
117
+ const result = await forgecart.shop.order.removeOrderLine({
118
+ orderLineId,
119
+ })
120
+ if (
121
+ result.removeOrderLine &&
122
+ result.removeOrderLine.__typename === 'Order'
123
+ ) {
124
+ setCart(result.removeOrderLine as unknown as Cart)
125
+ }
126
+ } catch (error) {
127
+ console.error('Failed to remove item:', error)
128
+ } finally {
129
+ setLoading(false)
130
+ }
131
+ }
132
+
133
+ const itemCount = cart?.totalQuantity ?? 0
134
+
135
+ return (
136
+ <CartContext.Provider
137
+ value={{
138
+ cart,
139
+ loading,
140
+ itemCount,
141
+ addToCart,
142
+ updateQuantity,
143
+ removeItem,
144
+ refreshCart,
145
+ }}
146
+ >
147
+ {children}
148
+ </CartContext.Provider>
149
+ )
150
+ }
151
+
152
+ export function useCart() {
153
+ const context = useContext(CartContext)
154
+ if (!context) {
155
+ throw new Error('useCart must be used within CartProvider')
156
+ }
157
+ return context
158
+ }
@@ -1,11 +1,22 @@
1
- import { ForgecartClient } from '@forgecart/sdk'
1
+ import { ForgeCartSDK } from '@forgecart/sdk'
2
2
 
3
- // Initialize the ForgéCart SDK client
4
- // The channel token is read from environment variables
5
- export const forgecart = new ForgecartClient({
6
- channelToken: process.env.FORGECART_CHANNEL_TOKEN || '',
7
- apiUrl: process.env.FORGECART_API_URL || 'https://api.forgecart.com',
8
- })
3
+ // Singleton instance of the ForgeCart SDK
4
+ // Initialized once to maintain socket connection
5
+ let sdkInstance: ForgeCartSDK | null = null
6
+
7
+ export function getForgeCartSDK(): ForgeCartSDK {
8
+ if (!sdkInstance) {
9
+ sdkInstance = new ForgeCartSDK({
10
+ endpoint:
11
+ process.env.NEXT_PUBLIC_FORGECART_API_URL ||
12
+ 'https://api.forgecart.com',
13
+ token: process.env.NEXT_PUBLIC_FORGECART_CHANNEL_TOKEN || '',
14
+ })
15
+ }
16
+ return sdkInstance
17
+ }
18
+
19
+ // Export singleton instance for convenience
20
+ export const forgecart = getForgeCartSDK()
9
21
 
10
- // Export for use in server components
11
22
  export default forgecart
@@ -0,0 +1,8 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ content: ['./src/**/*.{js,ts,jsx,tsx,mdx}'],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [],
8
+ }
@@ -0,0 +1,26 @@
1
+ import { defineConfig, devices } from '@playwright/test'
2
+ import { nxE2EPreset } from '@nx/playwright/preset'
3
+
4
+ import { workspaceRoot } from '@nx/devkit'
5
+
6
+ const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'
7
+
8
+ export default defineConfig({
9
+ ...nxE2EPreset(__filename, { testDir: './src' }),
10
+ use: {
11
+ baseURL,
12
+ trace: 'on-first-retry',
13
+ },
14
+ webServer: {
15
+ command: 'npx nx run storefront:dev',
16
+ url: 'http://localhost:4200',
17
+ reuseExistingServer: !process.env.CI,
18
+ cwd: workspaceRoot,
19
+ },
20
+ projects: [
21
+ {
22
+ name: 'chromium',
23
+ use: { ...devices['Desktop Chrome'] },
24
+ },
25
+ ],
26
+ })
@@ -0,0 +1,11 @@
1
+ import { test, expect } from '@playwright/test'
2
+
3
+ test('has title', async ({ page }) => {
4
+ await page.goto('/')
5
+ expect(await page.locator('h1').innerText()).toContain('Our Products')
6
+ })
7
+
8
+ test('has cart link', async ({ page }) => {
9
+ await page.goto('/')
10
+ await expect(page.locator('a[href="/cart"]')).toBeVisible()
11
+ })
@@ -0,0 +1,2 @@
1
+ # ForgeCart deployment directories - exclude from Nx project detection
2
+ .forgecart
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWnC,wBAAgB,aAAa,IAAI,OAAO,CAqBvC"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAA;IAClD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAA;IACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACtC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAEzC,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;SAC9B,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA4B,EAAE,EAAE;QAC3D,MAAM,gBAAgB,CAAC,IAAsB,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEJ,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAoB,EACpB,OAA4B;IAE5B,gBAAgB;IAChB,IAAI,IAAI,KAAK,cAAc,CAAC,UAAU,IAAI,IAAI,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IAE5E,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAA;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,uCAAuC,IAAI,4CAA4C;gBAChG,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACjC,OAAM;QACR,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,WAAW,CACf,YAAY,IAAI,gBAAgB,EAChC,GAAG,IAAI,qBAAqB,EAC5B,oBAAoB,IAAI,aAAa,EACrC,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C"}
@@ -1,128 +0,0 @@
1
- import * as path from 'path';
2
- import { Command } from 'commander';
3
- import logger from '../lib/logger.js';
4
- import { requireConfig, getProjectRoot } from '../lib/config.js';
5
- import { ForgecartApiClient } from '../lib/api-client.js';
6
- import { createArchive, getIgnoreFileForType } from '../lib/archive.js';
7
- import { runNxBuild } from '../lib/nx-generator.js';
8
- import { detectProjectType, getCurrentAppDir } from '../utils/validation.js';
9
- import { withSpinner } from '../utils/spinner.js';
10
- import { DeploymentType } from '../types/index.js';
11
- export function createDeployCommand() {
12
- const cmd = new Command('deploy')
13
- .description('Deploy the current application')
14
- .option('--skip-build', 'Skip the build step')
15
- .action(async (options) => {
16
- await deploy(options);
17
- });
18
- return cmd;
19
- }
20
- async function deploy(options) {
21
- logger.title('ForgéCart Deployment');
22
- // Get config and validate
23
- const config = requireConfig();
24
- const projectRoot = getProjectRoot();
25
- const cwd = process.cwd();
26
- // Determine what we're deploying
27
- let deployType;
28
- let appDir;
29
- // Check if we're in a specific app directory
30
- const currentApp = getCurrentAppDir(projectRoot);
31
- if (currentApp) {
32
- deployType = currentApp.type;
33
- appDir = path.join(projectRoot, `apps/${deployType}`);
34
- logger.info(`Detected ${deployType} application`);
35
- }
36
- else {
37
- // We're in project root - detect type or default to storefront
38
- const storefrontPath = path.join(projectRoot, config.storefrontPath);
39
- const type = detectProjectType(storefrontPath);
40
- if (type === DeploymentType.STOREFRONT) {
41
- deployType = DeploymentType.STOREFRONT;
42
- appDir = storefrontPath;
43
- logger.info('Deploying storefront');
44
- }
45
- else {
46
- logger.error('Cannot determine what to deploy. Please run from apps/storefront or apps/application directory.');
47
- process.exit(1);
48
- }
49
- }
50
- // Validate that the app exists
51
- const appType = detectProjectType(appDir);
52
- if (!appType) {
53
- logger.error(`No valid application found in ${appDir}`);
54
- process.exit(1);
55
- }
56
- // Initialize API client
57
- const apiClient = new ForgecartApiClient(config.apiUrl, config.channelToken);
58
- // Validate token
59
- await withSpinner('Validating channel token...', 'Channel token validated', 'Invalid channel token', async () => {
60
- const isValid = await apiClient.validateChannelToken();
61
- if (!isValid) {
62
- throw new Error('Invalid channel token');
63
- }
64
- });
65
- // Check/create deployment
66
- let deployment = await withSpinner('Checking deployment status...', 'Deployment ready', 'Failed to check deployment', async () => {
67
- let dep = await apiClient.getDeployment(deployType);
68
- if (!dep) {
69
- logger.info('Creating new deployment...');
70
- dep = await apiClient.createDeployment(deployType);
71
- }
72
- return dep;
73
- });
74
- // Build the app
75
- if (!options.skipBuild) {
76
- await withSpinner(`Building ${deployType}...`, 'Build completed', 'Build failed', async () => {
77
- const success = await runNxBuild(deployType, projectRoot);
78
- if (!success) {
79
- throw new Error('Build failed');
80
- }
81
- });
82
- }
83
- else {
84
- logger.info('Skipping build step');
85
- }
86
- // Create archive
87
- const zipBuffer = await withSpinner('Creating deployment archive...', 'Archive created', 'Failed to create archive', async () => {
88
- const ignoreFile = getIgnoreFileForType(deployType);
89
- return createArchive({
90
- sourceDir: appDir,
91
- ignoreFile,
92
- });
93
- });
94
- logger.info(`Archive size: ${(zipBuffer.length / 1024 / 1024).toFixed(2)} MB`);
95
- // Upload and deploy
96
- deployment = await withSpinner('Uploading and deploying...', 'Deployment successful', 'Deployment failed', async () => {
97
- return apiClient.uploadAndDeploy(deployType, zipBuffer);
98
- });
99
- // Wait for deployment to be ready
100
- await withSpinner('Waiting for deployment to be ready...', 'Deployment is live', 'Deployment check failed', async () => {
101
- let attempts = 0;
102
- const maxAttempts = 60; // 5 minutes max
103
- while (attempts < maxAttempts) {
104
- const status = await apiClient.refreshDeploymentStatus(deployType);
105
- if (status?.status === 'RUNNING') {
106
- deployment = status;
107
- return;
108
- }
109
- if (status?.status === 'ERROR') {
110
- throw new Error(status.errorMessage || 'Deployment failed');
111
- }
112
- await new Promise((resolve) => setTimeout(resolve, 5000));
113
- attempts++;
114
- }
115
- throw new Error('Deployment timed out');
116
- });
117
- // Success message
118
- logger.newline();
119
- logger.box(`Deployment successful!
120
-
121
- Type: ${deployType}
122
- Status: ${deployment.status}
123
- URL: ${deployment.url}
124
-
125
- View logs with:
126
- forgecart logs ${deployType}`);
127
- }
128
- //# sourceMappingURL=deploy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,gBAAgB,IAAI,OAAO,CA0B1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsBnC,wBAAgB,iBAAiB,IAAI,OAAO,CAY3C;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAQtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}