@cimplify/sdk 0.44.34 → 0.45.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 (451) hide show
  1. package/README.md +21 -16
  2. package/dist/styles.css +1 -1
  3. package/package.json +5 -9
  4. package/dist/cli/commands/deploy.mjs +0 -717
  5. package/dist/cli/commands/dev.mjs +0 -479
  6. package/dist/cli/commands/domains.mjs +0 -769
  7. package/dist/cli/commands/env.mjs +0 -705
  8. package/dist/cli/commands/link.mjs +0 -378
  9. package/dist/cli/commands/login.mjs +0 -584
  10. package/dist/cli/commands/logout.mjs +0 -75
  11. package/dist/cli/commands/logs.mjs +0 -432
  12. package/dist/cli/commands/projects.mjs +0 -473
  13. package/dist/cli/commands/repo.mjs +0 -584
  14. package/dist/cli/commands/rollback.mjs +0 -553
  15. package/dist/cli/commands/status.mjs +0 -450
  16. package/dist/cli/commands/unlink.mjs +0 -79
  17. package/dist/cli/commands/whoami.mjs +0 -285
  18. package/dist/cli.js +0 -184
  19. package/dist/dispatcher.mjs +0 -360
  20. package/registry/booking-page.json +0 -18
  21. package/registry/bookings-page.json +0 -17
  22. package/registry/service-card.json +0 -16
  23. package/registry/service-grid.json +0 -16
  24. package/templates/storefront-bakery/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  25. package/templates/storefront-bakery/.cursor/rules/cimplify-storefront.mdc +0 -25
  26. package/templates/storefront-bakery/.env.example +0 -16
  27. package/templates/storefront-bakery/AGENTS.md +0 -120
  28. package/templates/storefront-bakery/CLAUDE.md +0 -22
  29. package/templates/storefront-bakery/README.md +0 -73
  30. package/templates/storefront-bakery/__tests__/brand.test.ts +0 -4
  31. package/templates/storefront-bakery/__tests__/cart-flow.test.ts +0 -4
  32. package/templates/storefront-bakery/__tests__/contract.test.ts +0 -4
  33. package/templates/storefront-bakery/app/about/page.tsx +0 -38
  34. package/templates/storefront-bakery/app/accessibility/page.tsx +0 -11
  35. package/templates/storefront-bakery/app/account/addresses/page.tsx +0 -21
  36. package/templates/storefront-bakery/app/account/orders/page.tsx +0 -21
  37. package/templates/storefront-bakery/app/account/page.tsx +0 -22
  38. package/templates/storefront-bakery/app/account/settings/page.tsx +0 -21
  39. package/templates/storefront-bakery/app/cart/page.tsx +0 -9
  40. package/templates/storefront-bakery/app/categories/[slug]/listing-client.tsx +0 -19
  41. package/templates/storefront-bakery/app/categories/[slug]/page.tsx +0 -118
  42. package/templates/storefront-bakery/app/checkout/page.tsx +0 -17
  43. package/templates/storefront-bakery/app/collections/[slug]/listing-client.tsx +0 -20
  44. package/templates/storefront-bakery/app/collections/[slug]/page.tsx +0 -118
  45. package/templates/storefront-bakery/app/contact/contact-form.tsx +0 -109
  46. package/templates/storefront-bakery/app/contact/page.tsx +0 -54
  47. package/templates/storefront-bakery/app/error.tsx +0 -60
  48. package/templates/storefront-bakery/app/faq/page.tsx +0 -46
  49. package/templates/storefront-bakery/app/globals.css +0 -47
  50. package/templates/storefront-bakery/app/layout.tsx +0 -82
  51. package/templates/storefront-bakery/app/llms.txt/route.ts +0 -94
  52. package/templates/storefront-bakery/app/login/page.tsx +0 -17
  53. package/templates/storefront-bakery/app/not-found.tsx +0 -39
  54. package/templates/storefront-bakery/app/opensearch.xml/route.ts +0 -37
  55. package/templates/storefront-bakery/app/orders/[id]/page.tsx +0 -21
  56. package/templates/storefront-bakery/app/page.tsx +0 -97
  57. package/templates/storefront-bakery/app/privacy/page.tsx +0 -44
  58. package/templates/storefront-bakery/app/returns/page.tsx +0 -11
  59. package/templates/storefront-bakery/app/robots.ts +0 -18
  60. package/templates/storefront-bakery/app/search/page.tsx +0 -38
  61. package/templates/storefront-bakery/app/search/search-client.tsx +0 -7
  62. package/templates/storefront-bakery/app/shipping/page.tsx +0 -16
  63. package/templates/storefront-bakery/app/shop/page.tsx +0 -31
  64. package/templates/storefront-bakery/app/shop/shop-client.tsx +0 -27
  65. package/templates/storefront-bakery/app/signup/page.tsx +0 -17
  66. package/templates/storefront-bakery/app/sitemap-page/page.tsx +0 -167
  67. package/templates/storefront-bakery/app/sitemap.ts +0 -62
  68. package/templates/storefront-bakery/app/terms/page.tsx +0 -44
  69. package/templates/storefront-bakery/app/track-order/page.tsx +0 -24
  70. package/templates/storefront-bakery/app/track-order/track-order-form.tsx +0 -69
  71. package/templates/storefront-bakery/components/account-iframe.tsx +0 -13
  72. package/templates/storefront-bakery/components/cart-drawer.tsx +0 -14
  73. package/templates/storefront-bakery/components/cart-pill.tsx +0 -36
  74. package/templates/storefront-bakery/components/category-grid.tsx +0 -28
  75. package/templates/storefront-bakery/components/collection-strip.tsx +0 -45
  76. package/templates/storefront-bakery/components/footer.tsx +0 -148
  77. package/templates/storefront-bakery/components/header.tsx +0 -43
  78. package/templates/storefront-bakery/components/hero.tsx +0 -25
  79. package/templates/storefront-bakery/components/nav-link.tsx +0 -20
  80. package/templates/storefront-bakery/components/policy-page.tsx +0 -49
  81. package/templates/storefront-bakery/components/product-modal.tsx +0 -104
  82. package/templates/storefront-bakery/components/providers.tsx +0 -35
  83. package/templates/storefront-bakery/components/store-product-card.tsx +0 -87
  84. package/templates/storefront-bakery/lib/brand.ts +0 -570
  85. package/templates/storefront-bakery/lib/cart.ts +0 -12
  86. package/templates/storefront-bakery/next.config.ts +0 -42
  87. package/templates/storefront-bakery/package.json +0 -35
  88. package/templates/storefront-bakery/postcss.config.mjs +0 -7
  89. package/templates/storefront-bakery/tsconfig.json +0 -23
  90. package/templates/storefront-bakery/vitest.config.ts +0 -9
  91. package/templates/storefront-fashion/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  92. package/templates/storefront-fashion/.cursor/rules/cimplify-storefront.mdc +0 -25
  93. package/templates/storefront-fashion/.env.example +0 -16
  94. package/templates/storefront-fashion/AGENTS.md +0 -126
  95. package/templates/storefront-fashion/CLAUDE.md +0 -22
  96. package/templates/storefront-fashion/README.md +0 -77
  97. package/templates/storefront-fashion/__tests__/brand.test.ts +0 -4
  98. package/templates/storefront-fashion/__tests__/cart-flow.test.ts +0 -55
  99. package/templates/storefront-fashion/__tests__/contract.test.ts +0 -4
  100. package/templates/storefront-fashion/app/about/page.tsx +0 -41
  101. package/templates/storefront-fashion/app/accessibility/page.tsx +0 -11
  102. package/templates/storefront-fashion/app/account/addresses/page.tsx +0 -21
  103. package/templates/storefront-fashion/app/account/orders/page.tsx +0 -21
  104. package/templates/storefront-fashion/app/account/page.tsx +0 -22
  105. package/templates/storefront-fashion/app/account/settings/page.tsx +0 -21
  106. package/templates/storefront-fashion/app/cart/page.tsx +0 -9
  107. package/templates/storefront-fashion/app/categories/[slug]/listing-client.tsx +0 -19
  108. package/templates/storefront-fashion/app/categories/[slug]/page.tsx +0 -130
  109. package/templates/storefront-fashion/app/checkout/page.tsx +0 -17
  110. package/templates/storefront-fashion/app/collections/[slug]/listing-client.tsx +0 -20
  111. package/templates/storefront-fashion/app/collections/[slug]/page.tsx +0 -130
  112. package/templates/storefront-fashion/app/contact/contact-form.tsx +0 -109
  113. package/templates/storefront-fashion/app/contact/page.tsx +0 -54
  114. package/templates/storefront-fashion/app/error.tsx +0 -61
  115. package/templates/storefront-fashion/app/faq/page.tsx +0 -46
  116. package/templates/storefront-fashion/app/globals.css +0 -46
  117. package/templates/storefront-fashion/app/layout.tsx +0 -78
  118. package/templates/storefront-fashion/app/llms.txt/route.ts +0 -94
  119. package/templates/storefront-fashion/app/login/page.tsx +0 -17
  120. package/templates/storefront-fashion/app/lookbook/page.tsx +0 -132
  121. package/templates/storefront-fashion/app/not-found.tsx +0 -39
  122. package/templates/storefront-fashion/app/opensearch.xml/route.ts +0 -37
  123. package/templates/storefront-fashion/app/orders/[id]/page.tsx +0 -24
  124. package/templates/storefront-fashion/app/page.tsx +0 -183
  125. package/templates/storefront-fashion/app/privacy/page.tsx +0 -44
  126. package/templates/storefront-fashion/app/products/[slug]/page.tsx +0 -165
  127. package/templates/storefront-fashion/app/products/[slug]/product-detail.tsx +0 -70
  128. package/templates/storefront-fashion/app/returns/page.tsx +0 -11
  129. package/templates/storefront-fashion/app/robots.ts +0 -18
  130. package/templates/storefront-fashion/app/search/page.tsx +0 -38
  131. package/templates/storefront-fashion/app/search/search-client.tsx +0 -7
  132. package/templates/storefront-fashion/app/shipping/page.tsx +0 -16
  133. package/templates/storefront-fashion/app/shop/page.tsx +0 -63
  134. package/templates/storefront-fashion/app/shop/shop-client.tsx +0 -32
  135. package/templates/storefront-fashion/app/signup/page.tsx +0 -17
  136. package/templates/storefront-fashion/app/sitemap-page/page.tsx +0 -167
  137. package/templates/storefront-fashion/app/sitemap.ts +0 -59
  138. package/templates/storefront-fashion/app/size-guide/page.tsx +0 -155
  139. package/templates/storefront-fashion/app/terms/page.tsx +0 -44
  140. package/templates/storefront-fashion/app/track-order/page.tsx +0 -24
  141. package/templates/storefront-fashion/app/track-order/track-order-form.tsx +0 -69
  142. package/templates/storefront-fashion/components/account-iframe.tsx +0 -13
  143. package/templates/storefront-fashion/components/brand-marquee.tsx +0 -27
  144. package/templates/storefront-fashion/components/cart-drawer.tsx +0 -14
  145. package/templates/storefront-fashion/components/cart-pill.tsx +0 -36
  146. package/templates/storefront-fashion/components/category-grid.tsx +0 -28
  147. package/templates/storefront-fashion/components/category-tiles.tsx +0 -104
  148. package/templates/storefront-fashion/components/collection-strip.tsx +0 -45
  149. package/templates/storefront-fashion/components/feature-hero.tsx +0 -82
  150. package/templates/storefront-fashion/components/footer.tsx +0 -153
  151. package/templates/storefront-fashion/components/header.tsx +0 -43
  152. package/templates/storefront-fashion/components/hero.tsx +0 -28
  153. package/templates/storefront-fashion/components/nav-link.tsx +0 -20
  154. package/templates/storefront-fashion/components/newsletter.tsx +0 -50
  155. package/templates/storefront-fashion/components/policy-page.tsx +0 -49
  156. package/templates/storefront-fashion/components/promo-banner.tsx +0 -41
  157. package/templates/storefront-fashion/components/providers.tsx +0 -35
  158. package/templates/storefront-fashion/components/section-heading.tsx +0 -37
  159. package/templates/storefront-fashion/components/store-product-card.tsx +0 -87
  160. package/templates/storefront-fashion/components/trade-in-cta.tsx +0 -54
  161. package/templates/storefront-fashion/components/trust-bar.tsx +0 -66
  162. package/templates/storefront-fashion/e2e/visual.spec.ts +0 -52
  163. package/templates/storefront-fashion/lib/brand.ts +0 -518
  164. package/templates/storefront-fashion/lib/cart.ts +0 -12
  165. package/templates/storefront-fashion/next.config.ts +0 -42
  166. package/templates/storefront-fashion/package.json +0 -38
  167. package/templates/storefront-fashion/playwright.config.ts +0 -48
  168. package/templates/storefront-fashion/postcss.config.mjs +0 -7
  169. package/templates/storefront-fashion/tsconfig.json +0 -23
  170. package/templates/storefront-fashion/vitest.config.ts +0 -9
  171. package/templates/storefront-grocery/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  172. package/templates/storefront-grocery/.cursor/rules/cimplify-storefront.mdc +0 -25
  173. package/templates/storefront-grocery/.env.example +0 -16
  174. package/templates/storefront-grocery/AGENTS.md +0 -96
  175. package/templates/storefront-grocery/CLAUDE.md +0 -22
  176. package/templates/storefront-grocery/README.md +0 -73
  177. package/templates/storefront-grocery/__tests__/brand.test.ts +0 -4
  178. package/templates/storefront-grocery/__tests__/cart-flow.test.ts +0 -4
  179. package/templates/storefront-grocery/__tests__/contract.test.ts +0 -4
  180. package/templates/storefront-grocery/app/about/page.tsx +0 -38
  181. package/templates/storefront-grocery/app/accessibility/page.tsx +0 -11
  182. package/templates/storefront-grocery/app/account/addresses/page.tsx +0 -21
  183. package/templates/storefront-grocery/app/account/orders/page.tsx +0 -21
  184. package/templates/storefront-grocery/app/account/page.tsx +0 -22
  185. package/templates/storefront-grocery/app/account/settings/page.tsx +0 -21
  186. package/templates/storefront-grocery/app/cart/page.tsx +0 -9
  187. package/templates/storefront-grocery/app/categories/[slug]/listing-client.tsx +0 -19
  188. package/templates/storefront-grocery/app/categories/[slug]/page.tsx +0 -118
  189. package/templates/storefront-grocery/app/checkout/page.tsx +0 -17
  190. package/templates/storefront-grocery/app/collections/[slug]/listing-client.tsx +0 -20
  191. package/templates/storefront-grocery/app/collections/[slug]/page.tsx +0 -118
  192. package/templates/storefront-grocery/app/contact/contact-form.tsx +0 -109
  193. package/templates/storefront-grocery/app/contact/page.tsx +0 -54
  194. package/templates/storefront-grocery/app/error.tsx +0 -60
  195. package/templates/storefront-grocery/app/faq/page.tsx +0 -46
  196. package/templates/storefront-grocery/app/globals.css +0 -45
  197. package/templates/storefront-grocery/app/layout.tsx +0 -77
  198. package/templates/storefront-grocery/app/llms.txt/route.ts +0 -94
  199. package/templates/storefront-grocery/app/login/page.tsx +0 -17
  200. package/templates/storefront-grocery/app/not-found.tsx +0 -39
  201. package/templates/storefront-grocery/app/opensearch.xml/route.ts +0 -37
  202. package/templates/storefront-grocery/app/orders/[id]/page.tsx +0 -21
  203. package/templates/storefront-grocery/app/page.tsx +0 -97
  204. package/templates/storefront-grocery/app/privacy/page.tsx +0 -44
  205. package/templates/storefront-grocery/app/returns/page.tsx +0 -11
  206. package/templates/storefront-grocery/app/robots.ts +0 -18
  207. package/templates/storefront-grocery/app/search/page.tsx +0 -38
  208. package/templates/storefront-grocery/app/search/search-client.tsx +0 -7
  209. package/templates/storefront-grocery/app/shipping/page.tsx +0 -16
  210. package/templates/storefront-grocery/app/shop/page.tsx +0 -31
  211. package/templates/storefront-grocery/app/shop/shop-client.tsx +0 -27
  212. package/templates/storefront-grocery/app/signup/page.tsx +0 -17
  213. package/templates/storefront-grocery/app/sitemap-page/page.tsx +0 -167
  214. package/templates/storefront-grocery/app/sitemap.ts +0 -62
  215. package/templates/storefront-grocery/app/terms/page.tsx +0 -44
  216. package/templates/storefront-grocery/app/track-order/page.tsx +0 -24
  217. package/templates/storefront-grocery/app/track-order/track-order-form.tsx +0 -69
  218. package/templates/storefront-grocery/components/account-iframe.tsx +0 -13
  219. package/templates/storefront-grocery/components/cart-drawer.tsx +0 -14
  220. package/templates/storefront-grocery/components/cart-pill.tsx +0 -36
  221. package/templates/storefront-grocery/components/category-grid.tsx +0 -28
  222. package/templates/storefront-grocery/components/collection-strip.tsx +0 -45
  223. package/templates/storefront-grocery/components/footer.tsx +0 -148
  224. package/templates/storefront-grocery/components/header.tsx +0 -43
  225. package/templates/storefront-grocery/components/hero.tsx +0 -25
  226. package/templates/storefront-grocery/components/nav-link.tsx +0 -20
  227. package/templates/storefront-grocery/components/policy-page.tsx +0 -49
  228. package/templates/storefront-grocery/components/product-modal.tsx +0 -104
  229. package/templates/storefront-grocery/components/providers.tsx +0 -35
  230. package/templates/storefront-grocery/components/store-product-card.tsx +0 -87
  231. package/templates/storefront-grocery/lib/brand.ts +0 -375
  232. package/templates/storefront-grocery/lib/cart.ts +0 -12
  233. package/templates/storefront-grocery/next.config.ts +0 -42
  234. package/templates/storefront-grocery/package.json +0 -35
  235. package/templates/storefront-grocery/postcss.config.mjs +0 -7
  236. package/templates/storefront-grocery/tsconfig.json +0 -23
  237. package/templates/storefront-grocery/vitest.config.ts +0 -9
  238. package/templates/storefront-restaurant/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  239. package/templates/storefront-restaurant/.cursor/rules/cimplify-storefront.mdc +0 -25
  240. package/templates/storefront-restaurant/.env.example +0 -16
  241. package/templates/storefront-restaurant/AGENTS.md +0 -102
  242. package/templates/storefront-restaurant/CLAUDE.md +0 -22
  243. package/templates/storefront-restaurant/README.md +0 -73
  244. package/templates/storefront-restaurant/__tests__/brand.test.ts +0 -4
  245. package/templates/storefront-restaurant/__tests__/cart-flow.test.ts +0 -4
  246. package/templates/storefront-restaurant/__tests__/contract.test.ts +0 -4
  247. package/templates/storefront-restaurant/app/about/page.tsx +0 -38
  248. package/templates/storefront-restaurant/app/accessibility/page.tsx +0 -11
  249. package/templates/storefront-restaurant/app/account/addresses/page.tsx +0 -21
  250. package/templates/storefront-restaurant/app/account/orders/page.tsx +0 -21
  251. package/templates/storefront-restaurant/app/account/page.tsx +0 -22
  252. package/templates/storefront-restaurant/app/account/settings/page.tsx +0 -21
  253. package/templates/storefront-restaurant/app/cart/page.tsx +0 -9
  254. package/templates/storefront-restaurant/app/categories/[slug]/listing-client.tsx +0 -19
  255. package/templates/storefront-restaurant/app/categories/[slug]/page.tsx +0 -118
  256. package/templates/storefront-restaurant/app/checkout/page.tsx +0 -17
  257. package/templates/storefront-restaurant/app/collections/[slug]/listing-client.tsx +0 -20
  258. package/templates/storefront-restaurant/app/collections/[slug]/page.tsx +0 -118
  259. package/templates/storefront-restaurant/app/contact/contact-form.tsx +0 -109
  260. package/templates/storefront-restaurant/app/contact/page.tsx +0 -54
  261. package/templates/storefront-restaurant/app/error.tsx +0 -60
  262. package/templates/storefront-restaurant/app/faq/page.tsx +0 -46
  263. package/templates/storefront-restaurant/app/globals.css +0 -44
  264. package/templates/storefront-restaurant/app/layout.tsx +0 -82
  265. package/templates/storefront-restaurant/app/llms.txt/route.ts +0 -94
  266. package/templates/storefront-restaurant/app/login/page.tsx +0 -17
  267. package/templates/storefront-restaurant/app/not-found.tsx +0 -39
  268. package/templates/storefront-restaurant/app/opensearch.xml/route.ts +0 -37
  269. package/templates/storefront-restaurant/app/orders/[id]/page.tsx +0 -21
  270. package/templates/storefront-restaurant/app/page.tsx +0 -97
  271. package/templates/storefront-restaurant/app/privacy/page.tsx +0 -44
  272. package/templates/storefront-restaurant/app/reservations/page.tsx +0 -66
  273. package/templates/storefront-restaurant/app/reservations/reservations-client.tsx +0 -234
  274. package/templates/storefront-restaurant/app/returns/page.tsx +0 -11
  275. package/templates/storefront-restaurant/app/robots.ts +0 -18
  276. package/templates/storefront-restaurant/app/search/page.tsx +0 -38
  277. package/templates/storefront-restaurant/app/search/search-client.tsx +0 -7
  278. package/templates/storefront-restaurant/app/shipping/page.tsx +0 -16
  279. package/templates/storefront-restaurant/app/shop/page.tsx +0 -31
  280. package/templates/storefront-restaurant/app/shop/shop-client.tsx +0 -27
  281. package/templates/storefront-restaurant/app/signup/page.tsx +0 -17
  282. package/templates/storefront-restaurant/app/sitemap-page/page.tsx +0 -167
  283. package/templates/storefront-restaurant/app/sitemap.ts +0 -62
  284. package/templates/storefront-restaurant/app/terms/page.tsx +0 -44
  285. package/templates/storefront-restaurant/app/track-order/page.tsx +0 -24
  286. package/templates/storefront-restaurant/app/track-order/track-order-form.tsx +0 -69
  287. package/templates/storefront-restaurant/components/account-iframe.tsx +0 -13
  288. package/templates/storefront-restaurant/components/cart-drawer.tsx +0 -14
  289. package/templates/storefront-restaurant/components/cart-pill.tsx +0 -36
  290. package/templates/storefront-restaurant/components/category-grid.tsx +0 -28
  291. package/templates/storefront-restaurant/components/collection-strip.tsx +0 -45
  292. package/templates/storefront-restaurant/components/footer.tsx +0 -148
  293. package/templates/storefront-restaurant/components/header.tsx +0 -43
  294. package/templates/storefront-restaurant/components/hero.tsx +0 -25
  295. package/templates/storefront-restaurant/components/nav-link.tsx +0 -20
  296. package/templates/storefront-restaurant/components/policy-page.tsx +0 -49
  297. package/templates/storefront-restaurant/components/product-modal.tsx +0 -104
  298. package/templates/storefront-restaurant/components/providers.tsx +0 -35
  299. package/templates/storefront-restaurant/components/store-product-card.tsx +0 -87
  300. package/templates/storefront-restaurant/lib/brand.ts +0 -377
  301. package/templates/storefront-restaurant/lib/cart.ts +0 -12
  302. package/templates/storefront-restaurant/next.config.ts +0 -42
  303. package/templates/storefront-restaurant/package.json +0 -35
  304. package/templates/storefront-restaurant/postcss.config.mjs +0 -7
  305. package/templates/storefront-restaurant/tsconfig.json +0 -23
  306. package/templates/storefront-restaurant/vitest.config.ts +0 -9
  307. package/templates/storefront-retail/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  308. package/templates/storefront-retail/.cursor/rules/cimplify-storefront.mdc +0 -25
  309. package/templates/storefront-retail/.env.example +0 -16
  310. package/templates/storefront-retail/AGENTS.md +0 -117
  311. package/templates/storefront-retail/CLAUDE.md +0 -22
  312. package/templates/storefront-retail/README.md +0 -77
  313. package/templates/storefront-retail/__tests__/brand.test.ts +0 -4
  314. package/templates/storefront-retail/__tests__/cart-flow.test.ts +0 -4
  315. package/templates/storefront-retail/__tests__/contract.test.ts +0 -4
  316. package/templates/storefront-retail/app/about/page.tsx +0 -41
  317. package/templates/storefront-retail/app/accessibility/page.tsx +0 -11
  318. package/templates/storefront-retail/app/account/addresses/page.tsx +0 -21
  319. package/templates/storefront-retail/app/account/orders/page.tsx +0 -21
  320. package/templates/storefront-retail/app/account/page.tsx +0 -22
  321. package/templates/storefront-retail/app/account/settings/page.tsx +0 -21
  322. package/templates/storefront-retail/app/cart/page.tsx +0 -9
  323. package/templates/storefront-retail/app/categories/[slug]/listing-client.tsx +0 -19
  324. package/templates/storefront-retail/app/categories/[slug]/page.tsx +0 -130
  325. package/templates/storefront-retail/app/checkout/page.tsx +0 -17
  326. package/templates/storefront-retail/app/collections/[slug]/listing-client.tsx +0 -20
  327. package/templates/storefront-retail/app/collections/[slug]/page.tsx +0 -130
  328. package/templates/storefront-retail/app/contact/contact-form.tsx +0 -109
  329. package/templates/storefront-retail/app/contact/page.tsx +0 -54
  330. package/templates/storefront-retail/app/error.tsx +0 -61
  331. package/templates/storefront-retail/app/faq/page.tsx +0 -46
  332. package/templates/storefront-retail/app/globals.css +0 -47
  333. package/templates/storefront-retail/app/layout.tsx +0 -77
  334. package/templates/storefront-retail/app/llms.txt/route.ts +0 -94
  335. package/templates/storefront-retail/app/login/page.tsx +0 -17
  336. package/templates/storefront-retail/app/not-found.tsx +0 -39
  337. package/templates/storefront-retail/app/opensearch.xml/route.ts +0 -37
  338. package/templates/storefront-retail/app/orders/[id]/page.tsx +0 -24
  339. package/templates/storefront-retail/app/page.tsx +0 -182
  340. package/templates/storefront-retail/app/privacy/page.tsx +0 -44
  341. package/templates/storefront-retail/app/products/[slug]/page.tsx +0 -165
  342. package/templates/storefront-retail/app/products/[slug]/product-detail.tsx +0 -70
  343. package/templates/storefront-retail/app/returns/page.tsx +0 -11
  344. package/templates/storefront-retail/app/robots.ts +0 -18
  345. package/templates/storefront-retail/app/search/page.tsx +0 -38
  346. package/templates/storefront-retail/app/search/search-client.tsx +0 -7
  347. package/templates/storefront-retail/app/shipping/page.tsx +0 -16
  348. package/templates/storefront-retail/app/shop/page.tsx +0 -63
  349. package/templates/storefront-retail/app/shop/shop-client.tsx +0 -32
  350. package/templates/storefront-retail/app/signup/page.tsx +0 -17
  351. package/templates/storefront-retail/app/sitemap-page/page.tsx +0 -167
  352. package/templates/storefront-retail/app/sitemap.ts +0 -59
  353. package/templates/storefront-retail/app/terms/page.tsx +0 -44
  354. package/templates/storefront-retail/app/track-order/page.tsx +0 -24
  355. package/templates/storefront-retail/app/track-order/track-order-form.tsx +0 -69
  356. package/templates/storefront-retail/components/account-iframe.tsx +0 -13
  357. package/templates/storefront-retail/components/brand-marquee.tsx +0 -27
  358. package/templates/storefront-retail/components/cart-drawer.tsx +0 -14
  359. package/templates/storefront-retail/components/cart-pill.tsx +0 -36
  360. package/templates/storefront-retail/components/category-grid.tsx +0 -28
  361. package/templates/storefront-retail/components/category-tiles.tsx +0 -104
  362. package/templates/storefront-retail/components/collection-strip.tsx +0 -45
  363. package/templates/storefront-retail/components/feature-hero.tsx +0 -84
  364. package/templates/storefront-retail/components/footer.tsx +0 -153
  365. package/templates/storefront-retail/components/header.tsx +0 -45
  366. package/templates/storefront-retail/components/hero.tsx +0 -28
  367. package/templates/storefront-retail/components/nav-link.tsx +0 -20
  368. package/templates/storefront-retail/components/newsletter.tsx +0 -50
  369. package/templates/storefront-retail/components/policy-page.tsx +0 -49
  370. package/templates/storefront-retail/components/promo-banner.tsx +0 -41
  371. package/templates/storefront-retail/components/providers.tsx +0 -35
  372. package/templates/storefront-retail/components/section-heading.tsx +0 -37
  373. package/templates/storefront-retail/components/store-product-card.tsx +0 -87
  374. package/templates/storefront-retail/components/trade-in-cta.tsx +0 -54
  375. package/templates/storefront-retail/components/trust-bar.tsx +0 -66
  376. package/templates/storefront-retail/lib/brand.ts +0 -664
  377. package/templates/storefront-retail/lib/cart.ts +0 -12
  378. package/templates/storefront-retail/next.config.ts +0 -42
  379. package/templates/storefront-retail/package.json +0 -35
  380. package/templates/storefront-retail/postcss.config.mjs +0 -7
  381. package/templates/storefront-retail/tsconfig.json +0 -23
  382. package/templates/storefront-retail/vitest.config.ts +0 -9
  383. package/templates/storefront-services/.claude/skills/cimplify-storefront/SKILL.md +0 -145
  384. package/templates/storefront-services/.cursor/rules/cimplify-storefront.mdc +0 -25
  385. package/templates/storefront-services/.env.example +0 -16
  386. package/templates/storefront-services/AGENTS.md +0 -101
  387. package/templates/storefront-services/CLAUDE.md +0 -22
  388. package/templates/storefront-services/README.md +0 -73
  389. package/templates/storefront-services/__tests__/brand.test.ts +0 -4
  390. package/templates/storefront-services/__tests__/cart-flow.test.ts +0 -4
  391. package/templates/storefront-services/__tests__/contract.test.ts +0 -4
  392. package/templates/storefront-services/app/about/page.tsx +0 -38
  393. package/templates/storefront-services/app/accessibility/page.tsx +0 -11
  394. package/templates/storefront-services/app/account/addresses/page.tsx +0 -21
  395. package/templates/storefront-services/app/account/orders/page.tsx +0 -21
  396. package/templates/storefront-services/app/account/page.tsx +0 -22
  397. package/templates/storefront-services/app/account/settings/page.tsx +0 -21
  398. package/templates/storefront-services/app/book/book-client.tsx +0 -195
  399. package/templates/storefront-services/app/book/page.tsx +0 -65
  400. package/templates/storefront-services/app/cart/page.tsx +0 -9
  401. package/templates/storefront-services/app/categories/[slug]/listing-client.tsx +0 -19
  402. package/templates/storefront-services/app/categories/[slug]/page.tsx +0 -118
  403. package/templates/storefront-services/app/checkout/page.tsx +0 -17
  404. package/templates/storefront-services/app/collections/[slug]/listing-client.tsx +0 -20
  405. package/templates/storefront-services/app/collections/[slug]/page.tsx +0 -118
  406. package/templates/storefront-services/app/contact/contact-form.tsx +0 -109
  407. package/templates/storefront-services/app/contact/page.tsx +0 -54
  408. package/templates/storefront-services/app/error.tsx +0 -60
  409. package/templates/storefront-services/app/faq/page.tsx +0 -46
  410. package/templates/storefront-services/app/globals.css +0 -45
  411. package/templates/storefront-services/app/layout.tsx +0 -82
  412. package/templates/storefront-services/app/llms.txt/route.ts +0 -94
  413. package/templates/storefront-services/app/login/page.tsx +0 -17
  414. package/templates/storefront-services/app/not-found.tsx +0 -39
  415. package/templates/storefront-services/app/opensearch.xml/route.ts +0 -37
  416. package/templates/storefront-services/app/orders/[id]/page.tsx +0 -21
  417. package/templates/storefront-services/app/page.tsx +0 -97
  418. package/templates/storefront-services/app/privacy/page.tsx +0 -44
  419. package/templates/storefront-services/app/returns/page.tsx +0 -11
  420. package/templates/storefront-services/app/robots.ts +0 -18
  421. package/templates/storefront-services/app/search/page.tsx +0 -38
  422. package/templates/storefront-services/app/search/search-client.tsx +0 -7
  423. package/templates/storefront-services/app/shipping/page.tsx +0 -16
  424. package/templates/storefront-services/app/shop/page.tsx +0 -31
  425. package/templates/storefront-services/app/shop/shop-client.tsx +0 -27
  426. package/templates/storefront-services/app/signup/page.tsx +0 -17
  427. package/templates/storefront-services/app/sitemap-page/page.tsx +0 -167
  428. package/templates/storefront-services/app/sitemap.ts +0 -62
  429. package/templates/storefront-services/app/terms/page.tsx +0 -44
  430. package/templates/storefront-services/app/track-order/page.tsx +0 -24
  431. package/templates/storefront-services/app/track-order/track-order-form.tsx +0 -69
  432. package/templates/storefront-services/components/account-iframe.tsx +0 -13
  433. package/templates/storefront-services/components/cart-drawer.tsx +0 -14
  434. package/templates/storefront-services/components/cart-pill.tsx +0 -36
  435. package/templates/storefront-services/components/category-grid.tsx +0 -28
  436. package/templates/storefront-services/components/collection-strip.tsx +0 -45
  437. package/templates/storefront-services/components/footer.tsx +0 -148
  438. package/templates/storefront-services/components/header.tsx +0 -43
  439. package/templates/storefront-services/components/hero.tsx +0 -25
  440. package/templates/storefront-services/components/nav-link.tsx +0 -20
  441. package/templates/storefront-services/components/policy-page.tsx +0 -49
  442. package/templates/storefront-services/components/product-modal.tsx +0 -104
  443. package/templates/storefront-services/components/providers.tsx +0 -35
  444. package/templates/storefront-services/components/store-product-card.tsx +0 -87
  445. package/templates/storefront-services/lib/brand.ts +0 -396
  446. package/templates/storefront-services/lib/cart.ts +0 -12
  447. package/templates/storefront-services/next.config.ts +0 -42
  448. package/templates/storefront-services/package.json +0 -35
  449. package/templates/storefront-services/postcss.config.mjs +0 -7
  450. package/templates/storefront-services/tsconfig.json +0 -23
  451. package/templates/storefront-services/vitest.config.ts +0 -9
@@ -1,432 +0,0 @@
1
- import { promises } from 'fs';
2
- import os from 'os';
3
- import path from 'path';
4
-
5
- // src/cli/errors.ts
6
- var CLI_ERROR_CODE = {
7
- NOT_LOGGED_IN: "NOT_LOGGED_IN",
8
- NOT_LINKED: "NOT_LINKED",
9
- NETWORK_ERROR: "NETWORK_ERROR",
10
- AUTH_FAILED: "AUTH_FAILED",
11
- PROJECT_NOT_FOUND: "PROJECT_NOT_FOUND",
12
- INVALID_INPUT: "INVALID_INPUT",
13
- ALREADY_LINKED: "ALREADY_LINKED",
14
- SERVER_ERROR: "SERVER_ERROR"};
15
- var EXIT_CODE = {
16
- ABORTED: 3,
17
- NOT_LINKED: 4,
18
- ALREADY_LINKED: 5,
19
- GIT_ERROR: 6,
20
- INTERACTIVE_REQUIRED: 7,
21
- PROJECT_NOT_FOUND: 8,
22
- NETWORK_ERROR: 10,
23
- SERVER_ERROR: 11,
24
- TIMEOUT: 12,
25
- NOT_LOGGED_IN: 20,
26
- AUTH_FAILED: 21,
27
- UNAUTHORIZED: 22,
28
- INVALID_INPUT: 30
29
- };
30
- var EXIT_CODE_FOR = {
31
- NOT_LOGGED_IN: EXIT_CODE.NOT_LOGGED_IN,
32
- NOT_LINKED: EXIT_CODE.NOT_LINKED,
33
- NETWORK_ERROR: EXIT_CODE.NETWORK_ERROR,
34
- AUTH_FAILED: EXIT_CODE.AUTH_FAILED,
35
- PROJECT_NOT_FOUND: EXIT_CODE.PROJECT_NOT_FOUND,
36
- GIT_ERROR: EXIT_CODE.GIT_ERROR,
37
- INVALID_INPUT: EXIT_CODE.INVALID_INPUT,
38
- ALREADY_LINKED: EXIT_CODE.ALREADY_LINKED,
39
- SERVER_ERROR: EXIT_CODE.SERVER_ERROR,
40
- ABORTED: EXIT_CODE.ABORTED,
41
- UNAUTHORIZED: EXIT_CODE.UNAUTHORIZED,
42
- TIMEOUT: EXIT_CODE.TIMEOUT,
43
- INTERACTIVE_REQUIRED: EXIT_CODE.INTERACTIVE_REQUIRED
44
- };
45
- var CliError = class extends Error {
46
- constructor(code, message, options = {}) {
47
- super(message);
48
- this.name = "CliError";
49
- this.code = code;
50
- this.exitCode = options.exitCode ?? EXIT_CODE_FOR[code];
51
- this.remediation = options.remediation;
52
- }
53
- };
54
-
55
- // src/cli/api-client.ts
56
- var DEFAULT_API_BASE_URL = "https://api.cimplify.io";
57
- var ENV_API_BASE_URL = "CIMPLIFY_API_URL";
58
- var DEFAULT_TIMEOUT_MS = 3e4;
59
- var HEADER_AUTHORIZATION = "Authorization";
60
- var HEADER_CONTENT_TYPE = "Content-Type";
61
- var HEADER_ACCEPT = "Accept";
62
- var HEADER_USER_AGENT = "User-Agent";
63
- var BEARER_PREFIX = "Bearer ";
64
- var CONTENT_TYPE_JSON = "application/json";
65
- var USER_AGENT = "cimplify-cli";
66
- var METHOD_GET = "GET";
67
- var METHOD_POST = "POST";
68
- var METHOD_PUT = "PUT";
69
- var METHOD_DELETE = "DELETE";
70
- var STATUS_UNAUTHORIZED = 401;
71
- var STATUS_FORBIDDEN = 403;
72
- var STATUS_NOT_FOUND = 404;
73
- var STATUS_CONFLICT = 409;
74
- var STATUS_BAD_REQUEST_MIN = 400;
75
- var STATUS_SERVER_ERROR_MIN = 500;
76
- var ApiClient = class _ApiClient {
77
- constructor(baseUrl, apiKey) {
78
- this.baseUrl = baseUrl.replace(/\/+$/, "");
79
- this.apiKey = apiKey;
80
- }
81
- static fromAuth(auth) {
82
- return new _ApiClient(auth.apiBaseUrl, auth.apiKey);
83
- }
84
- static unauthenticated(baseUrl = resolveBaseUrl()) {
85
- return new _ApiClient(baseUrl, "");
86
- }
87
- static withKey(apiKey, baseUrl = resolveBaseUrl()) {
88
- return new _ApiClient(baseUrl, apiKey);
89
- }
90
- get(pathname, options) {
91
- return this.request(METHOD_GET, pathname, void 0, options);
92
- }
93
- post(pathname, body, options) {
94
- return this.request(METHOD_POST, pathname, body, options);
95
- }
96
- put(pathname, body, options) {
97
- return this.request(METHOD_PUT, pathname, body, options);
98
- }
99
- delete(pathname, options) {
100
- return this.request(METHOD_DELETE, pathname, void 0, options);
101
- }
102
- async request(method, pathname, body, options) {
103
- const url = this.buildUrl(pathname, options?.query);
104
- const headers = {
105
- [HEADER_ACCEPT]: CONTENT_TYPE_JSON,
106
- [HEADER_USER_AGENT]: USER_AGENT
107
- };
108
- if (this.apiKey) {
109
- headers[HEADER_AUTHORIZATION] = `${BEARER_PREFIX}${this.apiKey}`;
110
- }
111
- let payload;
112
- if (body !== void 0) {
113
- headers[HEADER_CONTENT_TYPE] = CONTENT_TYPE_JSON;
114
- payload = JSON.stringify(body);
115
- }
116
- const controller = new AbortController();
117
- const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
118
- const timer = setTimeout(() => controller.abort(), timeoutMs);
119
- let response;
120
- try {
121
- response = await fetch(url, {
122
- method,
123
- headers,
124
- body: payload,
125
- signal: controller.signal
126
- });
127
- } catch (err) {
128
- clearTimeout(timer);
129
- throw toNetworkError(err);
130
- }
131
- clearTimeout(timer);
132
- return parseResponse(response);
133
- }
134
- buildUrl(pathname, query) {
135
- const base = pathname.startsWith("/") ? pathname : `/${pathname}`;
136
- const url = new URL(`${this.baseUrl}${base}`);
137
- if (query) {
138
- for (const [k, v] of Object.entries(query)) {
139
- if (v === void 0 || v === null) continue;
140
- url.searchParams.set(k, String(v));
141
- }
142
- }
143
- return url.toString();
144
- }
145
- };
146
- function resolveBaseUrl(override) {
147
- const fromEnv = process.env[ENV_API_BASE_URL];
148
- return fromEnv && fromEnv.length > 0 ? fromEnv : DEFAULT_API_BASE_URL;
149
- }
150
- async function parseResponse(response) {
151
- const text = await response.text();
152
- let body = void 0;
153
- if (text.length > 0) {
154
- try {
155
- body = JSON.parse(text);
156
- } catch {
157
- throw new CliError(
158
- CLI_ERROR_CODE.SERVER_ERROR,
159
- `Server returned non-JSON response (status ${response.status}): ${truncate(text)}`
160
- );
161
- }
162
- }
163
- if (response.ok) {
164
- if (body && typeof body === "object" && "data" in body) {
165
- return body.data;
166
- }
167
- return body;
168
- }
169
- const code = mapStatusToCode(response.status);
170
- const message = extractErrorMessage(body, response.status);
171
- throw new CliError(code, message);
172
- }
173
- function mapStatusToCode(status) {
174
- if (status === STATUS_UNAUTHORIZED) return CLI_ERROR_CODE.AUTH_FAILED;
175
- if (status === STATUS_FORBIDDEN) return CLI_ERROR_CODE.AUTH_FAILED;
176
- if (status === STATUS_NOT_FOUND) return CLI_ERROR_CODE.PROJECT_NOT_FOUND;
177
- if (status === STATUS_CONFLICT) return CLI_ERROR_CODE.ALREADY_LINKED;
178
- if (status >= STATUS_SERVER_ERROR_MIN) return CLI_ERROR_CODE.SERVER_ERROR;
179
- if (status >= STATUS_BAD_REQUEST_MIN) return CLI_ERROR_CODE.INVALID_INPUT;
180
- return CLI_ERROR_CODE.SERVER_ERROR;
181
- }
182
- function extractErrorMessage(body, status) {
183
- if (body && typeof body === "object") {
184
- const envelope = body;
185
- if (envelope.error && typeof envelope.error.error_message === "string") {
186
- return envelope.error.error_code ? `${envelope.error.error_code}: ${envelope.error.error_message}` : envelope.error.error_message;
187
- }
188
- if (typeof envelope.message === "string") return envelope.message;
189
- }
190
- return `HTTP ${status}`;
191
- }
192
- function toNetworkError(err) {
193
- if (err instanceof DOMException && err.name === "AbortError") {
194
- return new CliError(CLI_ERROR_CODE.NETWORK_ERROR, "Request timed out.");
195
- }
196
- const message = err instanceof Error ? err.message : String(err);
197
- return new CliError(CLI_ERROR_CODE.NETWORK_ERROR, `Network error: ${message}`);
198
- }
199
- function truncate(value, max = 200) {
200
- return value.length > max ? `${value.slice(0, max)}\u2026` : value;
201
- }
202
-
203
- // src/cli/args.ts
204
- function parseArgs(argv) {
205
- const positional = [];
206
- const flags = /* @__PURE__ */ new Map();
207
- for (let i = 0; i < argv.length; i++) {
208
- const arg = argv[i];
209
- if (!arg.startsWith("--")) {
210
- positional.push(arg);
211
- continue;
212
- }
213
- const eq = arg.indexOf("=");
214
- if (eq !== -1) {
215
- flags.set(arg.slice(2, eq), arg.slice(eq + 1));
216
- continue;
217
- }
218
- const name = arg.slice(2);
219
- const next = argv[i + 1];
220
- if (next !== void 0 && !next.startsWith("--")) {
221
- flags.set(name, next);
222
- i++;
223
- } else {
224
- flags.set(name, true);
225
- }
226
- }
227
- return { positional, flags };
228
- }
229
- function flagString(args, name) {
230
- const v = args.flags.get(name);
231
- return typeof v === "string" ? v : void 0;
232
- }
233
- function flagBool(args, name) {
234
- return args.flags.has(name);
235
- }
236
- var AUTH_FILE_NAME = "auth.json";
237
- var PROJECT_FILE_NAME = "project.json";
238
- var STATE_FILE_NAME = "state.json";
239
- var PROJECT_DIR_NAME = ".cimplify";
240
- var ENV_XDG_CONFIG_HOME = "XDG_CONFIG_HOME";
241
- var APP_CONFIG_DIR_NAME = "cimplify";
242
- var HOME_CONFIG_DIR_NAME = ".config";
243
- var ENCODING_UTF8 = "utf8";
244
- function authConfigDir() {
245
- const xdg = process.env[ENV_XDG_CONFIG_HOME];
246
- return xdg ? path.join(xdg, APP_CONFIG_DIR_NAME) : path.join(os.homedir(), HOME_CONFIG_DIR_NAME, APP_CONFIG_DIR_NAME);
247
- }
248
- function authConfigPath() {
249
- return path.join(authConfigDir(), AUTH_FILE_NAME);
250
- }
251
- function projectConfigDir(cwd = process.cwd()) {
252
- return path.join(cwd, PROJECT_DIR_NAME);
253
- }
254
- function projectConfigPath(cwd = process.cwd()) {
255
- return path.join(projectConfigDir(cwd), PROJECT_FILE_NAME);
256
- }
257
- function projectStatePath(cwd = process.cwd()) {
258
- return path.join(projectConfigDir(cwd), STATE_FILE_NAME);
259
- }
260
- async function readJsonFile(filePath) {
261
- try {
262
- const raw = await promises.readFile(filePath, ENCODING_UTF8);
263
- return JSON.parse(raw);
264
- } catch (err) {
265
- if (err.code === "ENOENT") return null;
266
- throw err;
267
- }
268
- }
269
- async function readAuth() {
270
- const data = await readJsonFile(authConfigPath());
271
- if (!data) {
272
- throw new CliError(
273
- CLI_ERROR_CODE.NOT_LOGGED_IN,
274
- "Not logged in. Run `cimplify login` first."
275
- );
276
- }
277
- return data;
278
- }
279
- async function readProjectLink(cwd = process.cwd()) {
280
- const data = await readJsonFile(projectConfigPath(cwd));
281
- if (!data) {
282
- throw new CliError(
283
- CLI_ERROR_CODE.NOT_LINKED,
284
- "No project linked. Run `cimplify link <project-id>` first."
285
- );
286
- }
287
- return data;
288
- }
289
- async function readProjectState(cwd = process.cwd()) {
290
- return readJsonFile(projectStatePath(cwd));
291
- }
292
-
293
- // src/cli/output.ts
294
- var RESET = "\x1B[0m";
295
- var RED_OPEN = "\x1B[31m";
296
- var PREFIX_FAILURE = "\u2717";
297
- var ENV_JSON = "CIMPLIFY_JSON";
298
- function envFlag(name) {
299
- const v = process.env[name];
300
- return v === "1" || v === "true";
301
- }
302
- function isJsonMode() {
303
- return envFlag(ENV_JSON);
304
- }
305
- function wrap(open, value) {
306
- return `${open}${value}${RESET}`;
307
- }
308
- function red(value) {
309
- return isJsonMode() ? value : wrap(RED_OPEN, value);
310
- }
311
- function failure(message) {
312
- if (isJsonMode()) return;
313
- console.error(`${red(PREFIX_FAILURE)} ${message}`);
314
- }
315
- var ENV_EMITTED = "__CIMPLIFY_RESULT_EMITTED";
316
- function result(data) {
317
- if (!isJsonMode()) return;
318
- if (process.env[ENV_EMITTED] === "1") return;
319
- process.env[ENV_EMITTED] = "1";
320
- process.stdout.write(`${JSON.stringify({ ok: true, data })}
321
- `);
322
- }
323
-
324
- // src/cli/types.ts
325
- var DEPLOYMENT_STATUS = {
326
- ACTIVE: "active",
327
- FAILED: "failed",
328
- CANCELLED: "cancelled",
329
- SUPERSEDED: "superseded"
330
- };
331
- var TERMINAL_DEPLOYMENT_STATUSES = /* @__PURE__ */ new Set([
332
- DEPLOYMENT_STATUS.ACTIVE,
333
- DEPLOYMENT_STATUS.FAILED,
334
- DEPLOYMENT_STATUS.CANCELLED,
335
- DEPLOYMENT_STATUS.SUPERSEDED
336
- ]);
337
- var REPO_PROVIDER = {
338
- FREESTYLE: "freestyle",
339
- GITHUB: "github",
340
- GITEA: "gitea",
341
- EXTERNAL: "external"
342
- };
343
- new Set(Object.values(REPO_PROVIDER));
344
-
345
- // src/cli/commands/logs.ts
346
- var FLAG_DEPLOYMENT = "deployment";
347
- var FLAG_FOLLOW = "follow";
348
- var POLL_INTERVAL_MS = 1e3;
349
- var POLL_MAX_MS = 60 * 60 * 1e3;
350
- function progressEndpoint(businessId, projectId, deploymentId) {
351
- return `/v1/businesses/${encodeURIComponent(businessId)}/projects/${encodeURIComponent(projectId)}/deployments/${encodeURIComponent(deploymentId)}/progress`;
352
- }
353
- function nextChunk(cursor, full) {
354
- if (!full) return "";
355
- if (full.length <= cursor.printed) return "";
356
- const chunk = full.slice(cursor.printed);
357
- cursor.printed = full.length;
358
- return chunk;
359
- }
360
- function sleep(ms) {
361
- return new Promise((resolve) => setTimeout(resolve, ms));
362
- }
363
- async function run(argv) {
364
- const args = parseArgs(argv);
365
- const auth = await readAuth();
366
- const link = await readProjectLink();
367
- const client = ApiClient.fromAuth(auth);
368
- let deploymentId = flagString(args, FLAG_DEPLOYMENT);
369
- if (!deploymentId) {
370
- const state = await readProjectState();
371
- deploymentId = state?.lastDeploymentId;
372
- }
373
- if (!deploymentId) {
374
- throw new CliError(
375
- CLI_ERROR_CODE.INVALID_INPUT,
376
- "No deployment specified and no recent deployment in state.\nPass --deployment <id> or run `cimplify deploy` first."
377
- );
378
- }
379
- const endpoint = progressEndpoint(link.businessId, link.projectId, deploymentId);
380
- const follow = flagBool(args, FLAG_FOLLOW);
381
- const json = isJsonMode();
382
- if (!follow) {
383
- const progress = await client.get(endpoint);
384
- if (!json) {
385
- if (progress.build_logs) process.stdout.write(progress.build_logs);
386
- if (progress.error_message) failure(progress.error_message);
387
- }
388
- result({
389
- deployment_id: deploymentId,
390
- status: progress.status,
391
- build_logs: progress.build_logs ?? null,
392
- error_message: progress.error_message ?? null
393
- });
394
- return;
395
- }
396
- const cursor = { printed: 0 };
397
- const startedAt = Date.now();
398
- let lastErrorMessage;
399
- let finalProgress = null;
400
- while (true) {
401
- const progress = await client.get(endpoint);
402
- if (!json) {
403
- const chunk = nextChunk(cursor, progress.build_logs);
404
- if (chunk.length > 0) process.stdout.write(chunk);
405
- if (progress.error_message && progress.error_message !== lastErrorMessage) {
406
- process.stdout.write(`
407
- ${red(progress.error_message)}
408
- `);
409
- lastErrorMessage = progress.error_message;
410
- }
411
- }
412
- if (TERMINAL_DEPLOYMENT_STATUSES.has(progress.status)) {
413
- finalProgress = progress;
414
- break;
415
- }
416
- if (Date.now() - startedAt > POLL_MAX_MS) {
417
- throw new CliError(
418
- CLI_ERROR_CODE.NETWORK_ERROR,
419
- "Logs polling timed out (1 hour). Re-run `cimplify logs --follow` to resume."
420
- );
421
- }
422
- await sleep(POLL_INTERVAL_MS);
423
- }
424
- result({
425
- deployment_id: deploymentId,
426
- status: finalProgress.status,
427
- build_logs: finalProgress.build_logs ?? null,
428
- error_message: finalProgress.error_message ?? null
429
- });
430
- }
431
-
432
- export { run as default, nextChunk };