@forgecart/cli 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/bin/forgecart.d.ts +2 -0
  2. package/dist/bin/forgecart.js +4 -0
  3. package/dist/bin/forgecart.js.map +1 -0
  4. package/dist/src/cli.d.ts +14 -1
  5. package/dist/src/cli.js +30 -15
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/commands/init.d.ts +20 -2
  8. package/dist/src/commands/init.js +88 -255
  9. package/dist/src/commands/init.js.map +1 -1
  10. package/dist/src/commands/placeholders.d.ts +19 -0
  11. package/dist/src/commands/placeholders.js +109 -0
  12. package/dist/src/commands/placeholders.js.map +1 -0
  13. package/dist/src/output.d.ts +11 -0
  14. package/dist/src/output.js +16 -0
  15. package/dist/src/output.js.map +1 -0
  16. package/package.json +21 -11
  17. package/templates/storefront/.env.example +12 -0
  18. package/templates/storefront/.forgecartignore +2 -0
  19. package/templates/storefront/Procfile +1 -0
  20. package/templates/storefront/README.md +87 -0
  21. package/templates/storefront/next.config.js +14 -0
  22. package/templates/storefront/package.json +25 -0
  23. package/templates/storefront/postcss.config.js +6 -0
  24. package/templates/storefront/src/app/cart/page.tsx +110 -0
  25. package/templates/storefront/src/app/globals.css +13 -0
  26. package/templates/storefront/src/app/layout.tsx +30 -0
  27. package/templates/storefront/src/app/page.tsx +49 -0
  28. package/templates/storefront/src/app/products/[slug]/not-found.tsx +20 -0
  29. package/templates/storefront/src/app/products/[slug]/page.tsx +96 -0
  30. package/templates/storefront/src/app/products/page.tsx +27 -0
  31. package/templates/storefront/src/components/AddToCartButton.tsx +30 -0
  32. package/templates/storefront/src/components/Header.tsx +36 -0
  33. package/templates/storefront/src/components/ProductCard.tsx +43 -0
  34. package/templates/storefront/src/lib/cart-context.tsx +116 -0
  35. package/templates/storefront/src/lib/forgecart.ts +202 -0
  36. package/templates/storefront/tailwind.config.js +8 -0
  37. package/templates/storefront/tsconfig.json +23 -0
  38. package/LICENSE +0 -21
  39. package/README.md +0 -179
  40. package/bin/forgecart.js +0 -3
  41. package/dist/package.json +0 -49
  42. package/dist/src/cli.d.ts.map +0 -1
  43. package/dist/src/commands/delete.d.ts +0 -3
  44. package/dist/src/commands/delete.d.ts.map +0 -1
  45. package/dist/src/commands/delete.js +0 -58
  46. package/dist/src/commands/delete.js.map +0 -1
  47. package/dist/src/commands/deploy.d.ts +0 -3
  48. package/dist/src/commands/deploy.d.ts.map +0 -1
  49. package/dist/src/commands/deploy.js +0 -235
  50. package/dist/src/commands/deploy.js.map +0 -1
  51. package/dist/src/commands/env.d.ts +0 -3
  52. package/dist/src/commands/env.d.ts.map +0 -1
  53. package/dist/src/commands/env.js +0 -151
  54. package/dist/src/commands/env.js.map +0 -1
  55. package/dist/src/commands/init.d.ts.map +0 -1
  56. package/dist/src/commands/list.d.ts +0 -3
  57. package/dist/src/commands/list.d.ts.map +0 -1
  58. package/dist/src/commands/list.js +0 -63
  59. package/dist/src/commands/list.js.map +0 -1
  60. package/dist/src/commands/login.d.ts +0 -3
  61. package/dist/src/commands/login.d.ts.map +0 -1
  62. package/dist/src/commands/login.js +0 -120
  63. package/dist/src/commands/login.js.map +0 -1
  64. package/dist/src/commands/logs.d.ts +0 -3
  65. package/dist/src/commands/logs.d.ts.map +0 -1
  66. package/dist/src/commands/logs.js +0 -88
  67. package/dist/src/commands/logs.js.map +0 -1
  68. package/dist/src/commands/scale.d.ts +0 -3
  69. package/dist/src/commands/scale.d.ts.map +0 -1
  70. package/dist/src/commands/scale.js +0 -48
  71. package/dist/src/commands/scale.js.map +0 -1
  72. package/dist/src/commands/status.d.ts +0 -3
  73. package/dist/src/commands/status.d.ts.map +0 -1
  74. package/dist/src/commands/status.js +0 -87
  75. package/dist/src/commands/status.js.map +0 -1
  76. package/dist/src/commands/whoami.d.ts +0 -3
  77. package/dist/src/commands/whoami.d.ts.map +0 -1
  78. package/dist/src/commands/whoami.js +0 -57
  79. package/dist/src/commands/whoami.js.map +0 -1
  80. package/dist/src/index.d.ts +0 -3
  81. package/dist/src/index.d.ts.map +0 -1
  82. package/dist/src/index.js +0 -5
  83. package/dist/src/index.js.map +0 -1
  84. package/dist/src/lib/api-client.d.ts +0 -28
  85. package/dist/src/lib/api-client.d.ts.map +0 -1
  86. package/dist/src/lib/api-client.js +0 -137
  87. package/dist/src/lib/api-client.js.map +0 -1
  88. package/dist/src/lib/archive.d.ts +0 -9
  89. package/dist/src/lib/archive.d.ts.map +0 -1
  90. package/dist/src/lib/archive.js +0 -118
  91. package/dist/src/lib/archive.js.map +0 -1
  92. package/dist/src/lib/config-updater.d.ts +0 -10
  93. package/dist/src/lib/config-updater.d.ts.map +0 -1
  94. package/dist/src/lib/config-updater.js +0 -34
  95. package/dist/src/lib/config-updater.js.map +0 -1
  96. package/dist/src/lib/config.d.ts +0 -53
  97. package/dist/src/lib/config.d.ts.map +0 -1
  98. package/dist/src/lib/config.js +0 -162
  99. package/dist/src/lib/config.js.map +0 -1
  100. package/dist/src/lib/env-sync.d.ts +0 -36
  101. package/dist/src/lib/env-sync.d.ts.map +0 -1
  102. package/dist/src/lib/env-sync.js +0 -118
  103. package/dist/src/lib/env-sync.js.map +0 -1
  104. package/dist/src/lib/logger.d.ts +0 -15
  105. package/dist/src/lib/logger.d.ts.map +0 -1
  106. package/dist/src/lib/logger.js +0 -54
  107. package/dist/src/lib/logger.js.map +0 -1
  108. package/dist/src/lib/nx-generator.d.ts +0 -20
  109. package/dist/src/lib/nx-generator.d.ts.map +0 -1
  110. package/dist/src/lib/nx-generator.js +0 -338
  111. package/dist/src/lib/nx-generator.js.map +0 -1
  112. package/dist/src/lib/standalone.d.ts +0 -28
  113. package/dist/src/lib/standalone.d.ts.map +0 -1
  114. package/dist/src/lib/standalone.js +0 -107
  115. package/dist/src/lib/standalone.js.map +0 -1
  116. package/dist/src/types/index.d.ts +0 -80
  117. package/dist/src/types/index.d.ts.map +0 -1
  118. package/dist/src/types/index.js +0 -14
  119. package/dist/src/types/index.js.map +0 -1
  120. package/dist/src/utils/spinner.d.ts +0 -4
  121. package/dist/src/utils/spinner.d.ts.map +0 -1
  122. package/dist/src/utils/spinner.js +0 -20
  123. package/dist/src/utils/spinner.js.map +0 -1
  124. package/dist/src/utils/validation.d.ts +0 -12
  125. package/dist/src/utils/validation.d.ts.map +0 -1
  126. package/dist/src/utils/validation.js +0 -82
  127. package/dist/src/utils/validation.js.map +0 -1
  128. package/dist/templates/application-additions/.forgecartignore +0 -37
  129. package/dist/templates/application-additions/Procfile +0 -1
  130. package/dist/templates/application-additions/env.example +0 -7
  131. package/dist/templates/application-additions/src/app/app.module.ts +0 -16
  132. package/dist/templates/application-additions/src/services/forgecart.service.ts +0 -62
  133. package/dist/templates/application-additions/src/services/index.ts +0 -2
  134. package/dist/templates/application-additions/src/services/price-fetcher.service.ts +0 -71
  135. package/dist/templates/storefront-additions/.forgecartignore +0 -64
  136. package/dist/templates/storefront-additions/Procfile +0 -1
  137. package/dist/templates/storefront-additions/env.example +0 -3
  138. package/dist/templates/storefront-additions/package.json +0 -11
  139. package/dist/templates/storefront-additions/src/app/products/page.tsx +0 -66
  140. package/dist/templates/storefront-additions/src/lib/forgecart.ts +0 -22
  141. package/dist/templates/workspace/.nxignore +0 -2
  142. package/templates/application-additions/.forgecartignore +0 -37
  143. package/templates/application-additions/Procfile +0 -1
  144. package/templates/application-additions/env.example +0 -7
  145. package/templates/application-additions/src/app/app.module.ts +0 -16
  146. package/templates/application-additions/src/services/forgecart.service.ts +0 -62
  147. package/templates/application-additions/src/services/index.ts +0 -2
  148. package/templates/application-additions/src/services/price-fetcher.service.ts +0 -71
  149. package/templates/storefront-additions/.forgecartignore +0 -64
  150. package/templates/storefront-additions/Procfile +0 -1
  151. package/templates/storefront-additions/env.example +0 -3
  152. package/templates/storefront-additions/package.json +0 -11
  153. package/templates/storefront-additions/src/app/products/page.tsx +0 -66
  154. package/templates/storefront-additions/src/lib/forgecart.ts +0 -22
  155. package/templates/workspace/.nxignore +0 -2
@@ -1,64 +0,0 @@
1
- # ForgeCart deployment ignore file
2
- # Files and directories listed here will not be uploaded during deployment
3
-
4
- # Dependencies - only exclude root node_modules (standalone has its own)
5
- /node_modules/
6
-
7
- # Development files
8
- .git/
9
- .gitignore
10
- .env
11
- .env.local
12
- .env.development
13
- .env.development.local
14
-
15
- # IDE
16
- .idea/
17
- .vscode/
18
- *.swp
19
- *.swo
20
-
21
- # Build artifacts - exclude root level only (standalone has nested .next that must be kept)
22
- /.next/cache/
23
- /.next/server/
24
- /.next/types/
25
- /.next/trace
26
- /.next/trace-build
27
- /.next/dev/
28
- /.next/build/
29
- /.next/diagnostics/
30
- # Keep .next/standalone/ and everything inside it
31
- /out/
32
-
33
- # Test files
34
- __tests__/
35
- *.test.ts
36
- *.test.tsx
37
- *.spec.ts
38
- *.spec.tsx
39
- coverage/
40
- specs/
41
-
42
- # Source files - not needed for runtime
43
- src/
44
-
45
- # Config files not needed at runtime
46
- tsconfig.json
47
- tsconfig.spec.json
48
- project.json
49
- jest.config.cts
50
- eslint.config.mjs
51
- postcss.config.js
52
- tailwind.config.js
53
- .swcrc
54
- index.d.ts
55
- next-env.d.ts
56
-
57
- # Documentation
58
- README.md
59
- CHANGELOG.md
60
- docs/
61
-
62
- # OS files
63
- .DS_Store
64
- Thumbs.db
@@ -1 +0,0 @@
1
- web: node .next/standalone/apps/storefront/server.js
@@ -1,3 +0,0 @@
1
- # ForgeCart API Configuration
2
- NEXT_PUBLIC_FORGECART_API_URL=http://localhost:3000
3
- NEXT_PUBLIC_FORGECART_CHANNEL_TOKEN=your-channel-token-here
@@ -1,11 +0,0 @@
1
- {
2
- "name": "storefront",
3
- "version": "1.0.0",
4
- "private": true,
5
- "engines": {
6
- "node": ">=20.0.0"
7
- },
8
- "scripts": {
9
- "start": "node .next/standalone/apps/storefront/server.js"
10
- }
11
- }
@@ -1,66 +0,0 @@
1
- import { ProductList, Product } from '@forgecart/sdk/shop'
2
- import forgecart from '../../lib/forgecart'
3
-
4
- async function getProducts(): Promise<ProductList> {
5
- try {
6
- // Fetch products from ForgeCart API
7
- const result = await forgecart.shop.products.products({
8
- options: {
9
- take: 10,
10
- },
11
- })
12
- return (result.products as ProductList) || { items: [], totalItems: 0 }
13
- } catch (error) {
14
- console.error('Failed to fetch products:', error)
15
- return {
16
- items: [] as Product[],
17
- totalItems: 0,
18
- }
19
- }
20
- }
21
-
22
- export default async function ProductsPage() {
23
- const products = await getProducts()
24
-
25
- return (
26
- <div className="container mx-auto px-4 py-8">
27
- <h1 className="text-3xl font-bold mb-8">Products</h1>
28
-
29
- {products.items.length === 0 ? (
30
- <p className="text-gray-600">
31
- No products found. Make sure your ForgeCart channel is configured
32
- correctly.
33
- </p>
34
- ) : (
35
- <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
36
- {products.items.map((product: Product) => (
37
- <div
38
- key={product.id}
39
- className="border rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-shadow"
40
- >
41
- {product.featuredAsset && (
42
- <img
43
- src={product.featuredAsset.preview}
44
- alt={product.name}
45
- className="w-full h-48 object-cover"
46
- />
47
- )}
48
- <div className="p-4">
49
- <h2 className="text-lg font-semibold mb-2">{product.name}</h2>
50
- <p className="text-gray-600 text-sm mb-3 line-clamp-2">
51
- {product.description}
52
- </p>
53
- {product.variants[0] && (
54
- <p className="text-lg font-bold text-blue-600">
55
- {(product.variants[0].price / 100).toFixed(2)}{' '}
56
- {product.variants[0].currencyCode}
57
- </p>
58
- )}
59
- </div>
60
- </div>
61
- ))}
62
- </div>
63
- )}
64
- </div>
65
- )
66
- }
@@ -1,22 +0,0 @@
1
- import { ForgeCartSDK } from '@forgecart/sdk'
2
-
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()
21
-
22
- export default forgecart
@@ -1,2 +0,0 @@
1
- # ForgeCart deployment directories - exclude from Nx project detection
2
- .forgecart