@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,378 +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
- NETWORK_ERROR: "NETWORK_ERROR",
9
- AUTH_FAILED: "AUTH_FAILED",
10
- PROJECT_NOT_FOUND: "PROJECT_NOT_FOUND",
11
- INVALID_INPUT: "INVALID_INPUT",
12
- ALREADY_LINKED: "ALREADY_LINKED",
13
- SERVER_ERROR: "SERVER_ERROR"};
14
- var EXIT_CODE = {
15
- ABORTED: 3,
16
- NOT_LINKED: 4,
17
- ALREADY_LINKED: 5,
18
- GIT_ERROR: 6,
19
- INTERACTIVE_REQUIRED: 7,
20
- PROJECT_NOT_FOUND: 8,
21
- NETWORK_ERROR: 10,
22
- SERVER_ERROR: 11,
23
- TIMEOUT: 12,
24
- NOT_LOGGED_IN: 20,
25
- AUTH_FAILED: 21,
26
- UNAUTHORIZED: 22,
27
- INVALID_INPUT: 30
28
- };
29
- var EXIT_CODE_FOR = {
30
- NOT_LOGGED_IN: EXIT_CODE.NOT_LOGGED_IN,
31
- NOT_LINKED: EXIT_CODE.NOT_LINKED,
32
- NETWORK_ERROR: EXIT_CODE.NETWORK_ERROR,
33
- AUTH_FAILED: EXIT_CODE.AUTH_FAILED,
34
- PROJECT_NOT_FOUND: EXIT_CODE.PROJECT_NOT_FOUND,
35
- GIT_ERROR: EXIT_CODE.GIT_ERROR,
36
- INVALID_INPUT: EXIT_CODE.INVALID_INPUT,
37
- ALREADY_LINKED: EXIT_CODE.ALREADY_LINKED,
38
- SERVER_ERROR: EXIT_CODE.SERVER_ERROR,
39
- ABORTED: EXIT_CODE.ABORTED,
40
- UNAUTHORIZED: EXIT_CODE.UNAUTHORIZED,
41
- TIMEOUT: EXIT_CODE.TIMEOUT,
42
- INTERACTIVE_REQUIRED: EXIT_CODE.INTERACTIVE_REQUIRED
43
- };
44
- var CliError = class extends Error {
45
- constructor(code, message, options = {}) {
46
- super(message);
47
- this.name = "CliError";
48
- this.code = code;
49
- this.exitCode = options.exitCode ?? EXIT_CODE_FOR[code];
50
- this.remediation = options.remediation;
51
- }
52
- };
53
-
54
- // src/cli/api-client.ts
55
- var DEFAULT_API_BASE_URL = "https://api.cimplify.io";
56
- var ENV_API_BASE_URL = "CIMPLIFY_API_URL";
57
- var DEFAULT_TIMEOUT_MS = 3e4;
58
- var HEADER_AUTHORIZATION = "Authorization";
59
- var HEADER_CONTENT_TYPE = "Content-Type";
60
- var HEADER_ACCEPT = "Accept";
61
- var HEADER_USER_AGENT = "User-Agent";
62
- var BEARER_PREFIX = "Bearer ";
63
- var CONTENT_TYPE_JSON = "application/json";
64
- var USER_AGENT = "cimplify-cli";
65
- var METHOD_GET = "GET";
66
- var METHOD_POST = "POST";
67
- var METHOD_PUT = "PUT";
68
- var METHOD_DELETE = "DELETE";
69
- var STATUS_UNAUTHORIZED = 401;
70
- var STATUS_FORBIDDEN = 403;
71
- var STATUS_NOT_FOUND = 404;
72
- var STATUS_CONFLICT = 409;
73
- var STATUS_BAD_REQUEST_MIN = 400;
74
- var STATUS_SERVER_ERROR_MIN = 500;
75
- var ApiClient = class _ApiClient {
76
- constructor(baseUrl, apiKey) {
77
- this.baseUrl = baseUrl.replace(/\/+$/, "");
78
- this.apiKey = apiKey;
79
- }
80
- static fromAuth(auth) {
81
- return new _ApiClient(auth.apiBaseUrl, auth.apiKey);
82
- }
83
- static unauthenticated(baseUrl = resolveBaseUrl()) {
84
- return new _ApiClient(baseUrl, "");
85
- }
86
- static withKey(apiKey, baseUrl = resolveBaseUrl()) {
87
- return new _ApiClient(baseUrl, apiKey);
88
- }
89
- get(pathname, options) {
90
- return this.request(METHOD_GET, pathname, void 0, options);
91
- }
92
- post(pathname, body, options) {
93
- return this.request(METHOD_POST, pathname, body, options);
94
- }
95
- put(pathname, body, options) {
96
- return this.request(METHOD_PUT, pathname, body, options);
97
- }
98
- delete(pathname, options) {
99
- return this.request(METHOD_DELETE, pathname, void 0, options);
100
- }
101
- async request(method, pathname, body, options) {
102
- const url = this.buildUrl(pathname, options?.query);
103
- const headers = {
104
- [HEADER_ACCEPT]: CONTENT_TYPE_JSON,
105
- [HEADER_USER_AGENT]: USER_AGENT
106
- };
107
- if (this.apiKey) {
108
- headers[HEADER_AUTHORIZATION] = `${BEARER_PREFIX}${this.apiKey}`;
109
- }
110
- let payload;
111
- if (body !== void 0) {
112
- headers[HEADER_CONTENT_TYPE] = CONTENT_TYPE_JSON;
113
- payload = JSON.stringify(body);
114
- }
115
- const controller = new AbortController();
116
- const timeoutMs = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
117
- const timer = setTimeout(() => controller.abort(), timeoutMs);
118
- let response;
119
- try {
120
- response = await fetch(url, {
121
- method,
122
- headers,
123
- body: payload,
124
- signal: controller.signal
125
- });
126
- } catch (err) {
127
- clearTimeout(timer);
128
- throw toNetworkError(err);
129
- }
130
- clearTimeout(timer);
131
- return parseResponse(response);
132
- }
133
- buildUrl(pathname, query) {
134
- const base = pathname.startsWith("/") ? pathname : `/${pathname}`;
135
- const url = new URL(`${this.baseUrl}${base}`);
136
- if (query) {
137
- for (const [k, v] of Object.entries(query)) {
138
- if (v === void 0 || v === null) continue;
139
- url.searchParams.set(k, String(v));
140
- }
141
- }
142
- return url.toString();
143
- }
144
- };
145
- function resolveBaseUrl(override) {
146
- const fromEnv = process.env[ENV_API_BASE_URL];
147
- return fromEnv && fromEnv.length > 0 ? fromEnv : DEFAULT_API_BASE_URL;
148
- }
149
- async function parseResponse(response) {
150
- const text = await response.text();
151
- let body = void 0;
152
- if (text.length > 0) {
153
- try {
154
- body = JSON.parse(text);
155
- } catch {
156
- throw new CliError(
157
- CLI_ERROR_CODE.SERVER_ERROR,
158
- `Server returned non-JSON response (status ${response.status}): ${truncate(text)}`
159
- );
160
- }
161
- }
162
- if (response.ok) {
163
- if (body && typeof body === "object" && "data" in body) {
164
- return body.data;
165
- }
166
- return body;
167
- }
168
- const code = mapStatusToCode(response.status);
169
- const message = extractErrorMessage(body, response.status);
170
- throw new CliError(code, message);
171
- }
172
- function mapStatusToCode(status) {
173
- if (status === STATUS_UNAUTHORIZED) return CLI_ERROR_CODE.AUTH_FAILED;
174
- if (status === STATUS_FORBIDDEN) return CLI_ERROR_CODE.AUTH_FAILED;
175
- if (status === STATUS_NOT_FOUND) return CLI_ERROR_CODE.PROJECT_NOT_FOUND;
176
- if (status === STATUS_CONFLICT) return CLI_ERROR_CODE.ALREADY_LINKED;
177
- if (status >= STATUS_SERVER_ERROR_MIN) return CLI_ERROR_CODE.SERVER_ERROR;
178
- if (status >= STATUS_BAD_REQUEST_MIN) return CLI_ERROR_CODE.INVALID_INPUT;
179
- return CLI_ERROR_CODE.SERVER_ERROR;
180
- }
181
- function extractErrorMessage(body, status) {
182
- if (body && typeof body === "object") {
183
- const envelope = body;
184
- if (envelope.error && typeof envelope.error.error_message === "string") {
185
- return envelope.error.error_code ? `${envelope.error.error_code}: ${envelope.error.error_message}` : envelope.error.error_message;
186
- }
187
- if (typeof envelope.message === "string") return envelope.message;
188
- }
189
- return `HTTP ${status}`;
190
- }
191
- function toNetworkError(err) {
192
- if (err instanceof DOMException && err.name === "AbortError") {
193
- return new CliError(CLI_ERROR_CODE.NETWORK_ERROR, "Request timed out.");
194
- }
195
- const message = err instanceof Error ? err.message : String(err);
196
- return new CliError(CLI_ERROR_CODE.NETWORK_ERROR, `Network error: ${message}`);
197
- }
198
- function truncate(value, max = 200) {
199
- return value.length > max ? `${value.slice(0, max)}\u2026` : value;
200
- }
201
-
202
- // src/cli/args.ts
203
- function parseArgs(argv) {
204
- const positional = [];
205
- const flags = /* @__PURE__ */ new Map();
206
- for (let i = 0; i < argv.length; i++) {
207
- const arg = argv[i];
208
- if (!arg.startsWith("--")) {
209
- positional.push(arg);
210
- continue;
211
- }
212
- const eq = arg.indexOf("=");
213
- if (eq !== -1) {
214
- flags.set(arg.slice(2, eq), arg.slice(eq + 1));
215
- continue;
216
- }
217
- const name = arg.slice(2);
218
- const next = argv[i + 1];
219
- if (next !== void 0 && !next.startsWith("--")) {
220
- flags.set(name, next);
221
- i++;
222
- } else {
223
- flags.set(name, true);
224
- }
225
- }
226
- return { positional, flags };
227
- }
228
- var AUTH_FILE_NAME = "auth.json";
229
- var PROJECT_FILE_NAME = "project.json";
230
- var STATE_FILE_NAME = "state.json";
231
- var PROJECT_DIR_NAME = ".cimplify";
232
- var GITIGNORE_FILE_NAME = ".gitignore";
233
- var ENV_XDG_CONFIG_HOME = "XDG_CONFIG_HOME";
234
- var APP_CONFIG_DIR_NAME = "cimplify";
235
- var HOME_CONFIG_DIR_NAME = ".config";
236
- var FILE_MODE_DIR = 448;
237
- var ENCODING_UTF8 = "utf8";
238
- var STATE_GITIGNORE_LINE = `${PROJECT_DIR_NAME}/${STATE_FILE_NAME}`;
239
- var STATE_GITIGNORE_HEADER = "# cimplify CLI state";
240
- function authConfigDir() {
241
- const xdg = process.env[ENV_XDG_CONFIG_HOME];
242
- return xdg ? path.join(xdg, APP_CONFIG_DIR_NAME) : path.join(os.homedir(), HOME_CONFIG_DIR_NAME, APP_CONFIG_DIR_NAME);
243
- }
244
- function authConfigPath() {
245
- return path.join(authConfigDir(), AUTH_FILE_NAME);
246
- }
247
- function projectConfigDir(cwd = process.cwd()) {
248
- return path.join(cwd, PROJECT_DIR_NAME);
249
- }
250
- function projectConfigPath(cwd = process.cwd()) {
251
- return path.join(projectConfigDir(cwd), PROJECT_FILE_NAME);
252
- }
253
- async function readJsonFile(filePath) {
254
- try {
255
- const raw = await promises.readFile(filePath, ENCODING_UTF8);
256
- return JSON.parse(raw);
257
- } catch (err) {
258
- if (err.code === "ENOENT") return null;
259
- throw err;
260
- }
261
- }
262
- async function writeJsonFile(filePath, value, mode) {
263
- await promises.mkdir(path.dirname(filePath), { recursive: true, mode: FILE_MODE_DIR });
264
- const payload = `${JSON.stringify(value, null, 2)}
265
- `;
266
- await promises.writeFile(filePath, payload, { encoding: ENCODING_UTF8, mode });
267
- }
268
- async function readAuth() {
269
- const data = await readJsonFile(authConfigPath());
270
- if (!data) {
271
- throw new CliError(
272
- CLI_ERROR_CODE.NOT_LOGGED_IN,
273
- "Not logged in. Run `cimplify login` first."
274
- );
275
- }
276
- return data;
277
- }
278
- async function writeProjectLink(link, cwd = process.cwd()) {
279
- await writeJsonFile(projectConfigPath(cwd), link);
280
- await ensureStateGitignored(cwd);
281
- }
282
- async function ensureStateGitignored(cwd) {
283
- const gitignore = path.join(cwd, GITIGNORE_FILE_NAME);
284
- let current;
285
- try {
286
- current = await promises.readFile(gitignore, ENCODING_UTF8);
287
- } catch (err) {
288
- if (err.code === "ENOENT") return;
289
- throw err;
290
- }
291
- const lines = current.split("\n").map((l) => l.trim());
292
- if (lines.includes(STATE_GITIGNORE_LINE)) return;
293
- const separator = current.endsWith("\n") ? "" : "\n";
294
- const next = `${current}${separator}
295
- ${STATE_GITIGNORE_HEADER}
296
- ${STATE_GITIGNORE_LINE}
297
- `;
298
- await promises.writeFile(gitignore, next, ENCODING_UTF8);
299
- }
300
-
301
- // src/cli/output.ts
302
- var RESET = "\x1B[0m";
303
- var DIM_OPEN = "\x1B[2m";
304
- var GREEN_OPEN = "\x1B[32m";
305
- var PREFIX_SUCCESS = "\u2713";
306
- var ENV_JSON = "CIMPLIFY_JSON";
307
- function envFlag(name) {
308
- const v = process.env[name];
309
- return v === "1" || v === "true";
310
- }
311
- function isJsonMode() {
312
- return envFlag(ENV_JSON);
313
- }
314
- function wrap(open, value) {
315
- return `${open}${value}${RESET}`;
316
- }
317
- function dim(value) {
318
- return isJsonMode() ? value : wrap(DIM_OPEN, value);
319
- }
320
- function green(value) {
321
- return isJsonMode() ? value : wrap(GREEN_OPEN, value);
322
- }
323
- function success(message) {
324
- if (isJsonMode()) return;
325
- console.log(`${green(PREFIX_SUCCESS)} ${message}`);
326
- }
327
- function info(message) {
328
- if (isJsonMode()) return;
329
- console.log(message);
330
- }
331
- var ENV_EMITTED = "__CIMPLIFY_RESULT_EMITTED";
332
- function result(data) {
333
- if (!isJsonMode()) return;
334
- if (process.env[ENV_EMITTED] === "1") return;
335
- process.env[ENV_EMITTED] = "1";
336
- process.stdout.write(`${JSON.stringify({ ok: true, data })}
337
- `);
338
- }
339
-
340
- // src/cli/commands/link.ts
341
- function projectEndpoint(businessId, projectId) {
342
- return `/v1/businesses/${encodeURIComponent(businessId)}/projects/${encodeURIComponent(projectId)}`;
343
- }
344
- async function run(argv) {
345
- const args = parseArgs(argv);
346
- const projectId = args.positional[0];
347
- if (!projectId) {
348
- throw new CliError(
349
- CLI_ERROR_CODE.INVALID_INPUT,
350
- "Usage: cimplify link <project-id>\nList projects with `cimplify projects ls`."
351
- );
352
- }
353
- const auth = await readAuth();
354
- const client = ApiClient.fromAuth(auth);
355
- const project = await client.get(
356
- projectEndpoint(auth.businessId, projectId)
357
- );
358
- const link = {
359
- projectId: project.id,
360
- businessId: project.business_id,
361
- businessHandle: auth.businessHandle ?? project.business_handle ?? void 0,
362
- remoteUrl: project.metadata?.repo?.url,
363
- defaultBranch: project.metadata?.repo?.default_branch,
364
- framework: project.metadata?.framework ?? project.project_type,
365
- linkedAt: (/* @__PURE__ */ new Date()).toISOString()
366
- };
367
- await writeProjectLink(link);
368
- success(`Linked to ${project.name} (${project.id})`);
369
- if (link.remoteUrl) info(dim(`remote: ${link.remoteUrl}`));
370
- result({
371
- project: { id: project.id, name: project.name },
372
- business: { id: project.business_id },
373
- remote_url: link.remoteUrl ?? null,
374
- default_branch: link.defaultBranch ?? null
375
- });
376
- }
377
-
378
- export { run as default };