@ecomweb/cli 0.1.0 → 0.2.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 (648) hide show
  1. package/README.md +119 -2
  2. package/dist/base-command.d.ts +4 -3
  3. package/dist/base-command.js +20 -14
  4. package/dist/base-command.js.map +1 -1
  5. package/dist/commands/analytics/ga4/all.d.ts +1 -1
  6. package/dist/commands/analytics/ga4/all.js +2 -2
  7. package/dist/commands/analytics/ga4/all.js.map +1 -1
  8. package/dist/commands/analytics/ga4/overview.d.ts +1 -1
  9. package/dist/commands/analytics/ga4/overview.js +2 -2
  10. package/dist/commands/analytics/ga4/overview.js.map +1 -1
  11. package/dist/commands/analytics/ga4/sessions-by-channel.d.ts +1 -1
  12. package/dist/commands/analytics/ga4/sessions-by-channel.js +2 -2
  13. package/dist/commands/analytics/ga4/sessions-by-channel.js.map +1 -1
  14. package/dist/commands/analytics/ga4/trends.d.ts +1 -1
  15. package/dist/commands/analytics/ga4/trends.js +2 -2
  16. package/dist/commands/analytics/ga4/trends.js.map +1 -1
  17. package/dist/commands/analytics/ga4/users-by-country.d.ts +1 -1
  18. package/dist/commands/analytics/ga4/users-by-country.js +2 -2
  19. package/dist/commands/analytics/ga4/users-by-country.js.map +1 -1
  20. package/dist/commands/analytics/ga4/views-by-page.d.ts +1 -1
  21. package/dist/commands/analytics/ga4/views-by-page.js +2 -2
  22. package/dist/commands/analytics/ga4/views-by-page.js.map +1 -1
  23. package/dist/commands/analytics/gsc/all.d.ts +1 -1
  24. package/dist/commands/analytics/gsc/all.js +2 -2
  25. package/dist/commands/analytics/gsc/all.js.map +1 -1
  26. package/dist/commands/analytics/gsc/search-console.d.ts +1 -1
  27. package/dist/commands/analytics/gsc/search-console.js +2 -2
  28. package/dist/commands/analytics/gsc/search-console.js.map +1 -1
  29. package/dist/commands/analytics/sales/all.d.ts +1 -1
  30. package/dist/commands/analytics/sales/all.js +2 -2
  31. package/dist/commands/analytics/sales/all.js.map +1 -1
  32. package/dist/commands/analytics/sales/summary.d.ts +1 -1
  33. package/dist/commands/analytics/sales/summary.js +2 -2
  34. package/dist/commands/analytics/sales/summary.js.map +1 -1
  35. package/dist/commands/analytics/sales/time-series.d.ts +1 -1
  36. package/dist/commands/analytics/sales/time-series.js +2 -2
  37. package/dist/commands/analytics/sales/time-series.js.map +1 -1
  38. package/dist/commands/assets/bulk-delete.d.ts +1 -1
  39. package/dist/commands/assets/bulk-delete.js +3 -3
  40. package/dist/commands/assets/bulk-delete.js.map +1 -1
  41. package/dist/commands/assets/delete.d.ts +1 -1
  42. package/dist/commands/assets/delete.js +3 -3
  43. package/dist/commands/assets/delete.js.map +1 -1
  44. package/dist/commands/assets/get-by-entity.d.ts +1 -1
  45. package/dist/commands/assets/get-by-entity.js +2 -2
  46. package/dist/commands/assets/get-by-entity.js.map +1 -1
  47. package/dist/commands/assets/get.d.ts +1 -1
  48. package/dist/commands/assets/get.js +2 -2
  49. package/dist/commands/assets/get.js.map +1 -1
  50. package/dist/commands/assets/link.d.ts +1 -1
  51. package/dist/commands/assets/link.js +3 -3
  52. package/dist/commands/assets/link.js.map +1 -1
  53. package/dist/commands/assets/list.d.ts +1 -1
  54. package/dist/commands/assets/list.js +2 -2
  55. package/dist/commands/assets/list.js.map +1 -1
  56. package/dist/commands/assets/replace.d.ts +1 -1
  57. package/dist/commands/assets/replace.js +3 -3
  58. package/dist/commands/assets/replace.js.map +1 -1
  59. package/dist/commands/assets/unlink.d.ts +1 -1
  60. package/dist/commands/assets/unlink.js +3 -3
  61. package/dist/commands/assets/unlink.js.map +1 -1
  62. package/dist/commands/assets/update.d.ts +1 -1
  63. package/dist/commands/assets/update.js +3 -3
  64. package/dist/commands/assets/update.js.map +1 -1
  65. package/dist/commands/assets/upload-and-link.d.ts +1 -1
  66. package/dist/commands/assets/upload-and-link.js +3 -3
  67. package/dist/commands/assets/upload-and-link.js.map +1 -1
  68. package/dist/commands/assets/upload-video.d.ts +1 -1
  69. package/dist/commands/assets/upload-video.js +3 -3
  70. package/dist/commands/assets/upload-video.js.map +1 -1
  71. package/dist/commands/assets/upload.d.ts +1 -1
  72. package/dist/commands/assets/upload.js +3 -3
  73. package/dist/commands/assets/upload.js.map +1 -1
  74. package/dist/commands/attributes/create.d.ts +21 -0
  75. package/dist/commands/attributes/create.js +37 -0
  76. package/dist/commands/attributes/create.js.map +1 -0
  77. package/dist/commands/{shipping-programs → attributes}/delete.d.ts +3 -2
  78. package/dist/commands/attributes/delete.js +45 -0
  79. package/dist/commands/attributes/delete.js.map +1 -0
  80. package/dist/commands/attributes/list.d.ts +20 -0
  81. package/dist/commands/attributes/list.js +36 -0
  82. package/dist/commands/attributes/list.js.map +1 -0
  83. package/dist/commands/{shipping-methods → attributes}/update.d.ts +4 -7
  84. package/dist/commands/attributes/update.js +41 -0
  85. package/dist/commands/attributes/update.js.map +1 -0
  86. package/dist/commands/attributes/values/create.d.ts +28 -0
  87. package/dist/commands/attributes/values/create.js +45 -0
  88. package/dist/commands/attributes/values/create.js.map +1 -0
  89. package/dist/commands/{shipping-programs/get-rule.d.ts → attributes/values/delete.d.ts} +6 -5
  90. package/dist/commands/attributes/values/delete.js +48 -0
  91. package/dist/commands/attributes/values/delete.js.map +1 -0
  92. package/dist/commands/attributes/values/list.d.ts +24 -0
  93. package/dist/commands/attributes/values/list.js +29 -0
  94. package/dist/commands/attributes/values/list.js.map +1 -0
  95. package/dist/commands/{shipping-programs/calculate.d.ts → attributes/values/update.d.ts} +18 -11
  96. package/dist/commands/attributes/values/update.js +50 -0
  97. package/dist/commands/attributes/values/update.js.map +1 -0
  98. package/dist/commands/auth/login.d.ts +5 -1
  99. package/dist/commands/auth/login.js +61 -3
  100. package/dist/commands/auth/login.js.map +1 -1
  101. package/dist/commands/auth/logout.d.ts +1 -1
  102. package/dist/commands/auth/profiles/delete.d.ts +1 -1
  103. package/dist/commands/auth/profiles/list.d.ts +1 -1
  104. package/dist/commands/auth/profiles/list.js +1 -1
  105. package/dist/commands/auth/profiles/list.js.map +1 -1
  106. package/dist/commands/auth/profiles/use.d.ts +1 -1
  107. package/dist/commands/auth/register.d.ts +1 -1
  108. package/dist/commands/auth/status.d.ts +1 -1
  109. package/dist/commands/auth/status.js +2 -2
  110. package/dist/commands/auth/status.js.map +1 -1
  111. package/dist/commands/auth/verify.d.ts +1 -1
  112. package/dist/commands/banners/create.d.ts +1 -1
  113. package/dist/commands/banners/create.js +3 -3
  114. package/dist/commands/banners/create.js.map +1 -1
  115. package/dist/commands/banners/delete.d.ts +1 -1
  116. package/dist/commands/banners/delete.js +3 -3
  117. package/dist/commands/banners/delete.js.map +1 -1
  118. package/dist/commands/banners/get.d.ts +1 -1
  119. package/dist/commands/banners/get.js +2 -2
  120. package/dist/commands/banners/get.js.map +1 -1
  121. package/dist/commands/banners/list.d.ts +1 -1
  122. package/dist/commands/banners/list.js +2 -2
  123. package/dist/commands/banners/list.js.map +1 -1
  124. package/dist/commands/banners/update.d.ts +1 -1
  125. package/dist/commands/banners/update.js +3 -3
  126. package/dist/commands/banners/update.js.map +1 -1
  127. package/dist/commands/blog-categories/all.d.ts +1 -1
  128. package/dist/commands/blog-categories/all.js +2 -2
  129. package/dist/commands/blog-categories/all.js.map +1 -1
  130. package/dist/commands/blog-categories/create.d.ts +1 -1
  131. package/dist/commands/blog-categories/create.js +3 -4
  132. package/dist/commands/blog-categories/create.js.map +1 -1
  133. package/dist/commands/blog-categories/delete.d.ts +1 -1
  134. package/dist/commands/blog-categories/delete.js +3 -3
  135. package/dist/commands/blog-categories/delete.js.map +1 -1
  136. package/dist/commands/blog-categories/list.d.ts +1 -1
  137. package/dist/commands/blog-categories/list.js +2 -2
  138. package/dist/commands/blog-categories/list.js.map +1 -1
  139. package/dist/commands/blog-categories/update.d.ts +1 -1
  140. package/dist/commands/blog-categories/update.js +3 -3
  141. package/dist/commands/blog-categories/update.js.map +1 -1
  142. package/dist/commands/blog-posts/all.d.ts +1 -1
  143. package/dist/commands/blog-posts/all.js +2 -2
  144. package/dist/commands/blog-posts/all.js.map +1 -1
  145. package/dist/commands/blog-posts/batch-create.d.ts +1 -1
  146. package/dist/commands/blog-posts/batch-create.js +3 -3
  147. package/dist/commands/blog-posts/batch-create.js.map +1 -1
  148. package/dist/commands/blog-posts/batch-delete.d.ts +1 -1
  149. package/dist/commands/blog-posts/batch-delete.js +2 -2
  150. package/dist/commands/blog-posts/batch-delete.js.map +1 -1
  151. package/dist/commands/blog-posts/batch-update.d.ts +1 -1
  152. package/dist/commands/blog-posts/batch-update.js +3 -3
  153. package/dist/commands/blog-posts/batch-update.js.map +1 -1
  154. package/dist/commands/blog-posts/create.d.ts +1 -1
  155. package/dist/commands/blog-posts/create.js +3 -4
  156. package/dist/commands/blog-posts/create.js.map +1 -1
  157. package/dist/commands/blog-posts/delete.d.ts +1 -1
  158. package/dist/commands/blog-posts/delete.js +3 -3
  159. package/dist/commands/blog-posts/delete.js.map +1 -1
  160. package/dist/commands/blog-posts/get.d.ts +1 -1
  161. package/dist/commands/blog-posts/get.js +2 -2
  162. package/dist/commands/blog-posts/get.js.map +1 -1
  163. package/dist/commands/blog-posts/import.d.ts +1 -1
  164. package/dist/commands/blog-posts/import.js +3 -3
  165. package/dist/commands/blog-posts/import.js.map +1 -1
  166. package/dist/commands/blog-posts/list.d.ts +1 -1
  167. package/dist/commands/blog-posts/list.js +2 -2
  168. package/dist/commands/blog-posts/list.js.map +1 -1
  169. package/dist/commands/blog-posts/stats.d.ts +1 -1
  170. package/dist/commands/blog-posts/stats.js +2 -2
  171. package/dist/commands/blog-posts/stats.js.map +1 -1
  172. package/dist/commands/blog-posts/update.d.ts +1 -1
  173. package/dist/commands/blog-posts/update.js +3 -3
  174. package/dist/commands/blog-posts/update.js.map +1 -1
  175. package/dist/commands/blog-settings/get.d.ts +1 -1
  176. package/dist/commands/blog-settings/get.js +2 -2
  177. package/dist/commands/blog-settings/get.js.map +1 -1
  178. package/dist/commands/blog-settings/update.d.ts +1 -1
  179. package/dist/commands/blog-settings/update.js +3 -3
  180. package/dist/commands/blog-settings/update.js.map +1 -1
  181. package/dist/commands/blog-tags/all.d.ts +1 -1
  182. package/dist/commands/blog-tags/all.js +2 -2
  183. package/dist/commands/blog-tags/all.js.map +1 -1
  184. package/dist/commands/blog-tags/create.d.ts +1 -1
  185. package/dist/commands/blog-tags/create.js +3 -4
  186. package/dist/commands/blog-tags/create.js.map +1 -1
  187. package/dist/commands/blog-tags/delete.d.ts +1 -1
  188. package/dist/commands/blog-tags/delete.js +3 -3
  189. package/dist/commands/blog-tags/delete.js.map +1 -1
  190. package/dist/commands/blog-tags/list.d.ts +1 -1
  191. package/dist/commands/blog-tags/list.js +2 -2
  192. package/dist/commands/blog-tags/list.js.map +1 -1
  193. package/dist/commands/categories/all.d.ts +1 -1
  194. package/dist/commands/categories/all.js +2 -2
  195. package/dist/commands/categories/all.js.map +1 -1
  196. package/dist/commands/categories/create.d.ts +1 -1
  197. package/dist/commands/categories/create.js +3 -3
  198. package/dist/commands/categories/create.js.map +1 -1
  199. package/dist/commands/categories/delete.d.ts +1 -1
  200. package/dist/commands/categories/delete.js +3 -3
  201. package/dist/commands/categories/delete.js.map +1 -1
  202. package/dist/commands/categories/get.d.ts +1 -1
  203. package/dist/commands/categories/get.js +2 -2
  204. package/dist/commands/categories/get.js.map +1 -1
  205. package/dist/commands/categories/list.d.ts +1 -1
  206. package/dist/commands/categories/list.js +2 -2
  207. package/dist/commands/categories/list.js.map +1 -1
  208. package/dist/commands/categories/update.d.ts +1 -1
  209. package/dist/commands/categories/update.js +3 -3
  210. package/dist/commands/categories/update.js.map +1 -1
  211. package/dist/commands/collections/all.d.ts +1 -1
  212. package/dist/commands/collections/all.js +2 -2
  213. package/dist/commands/collections/all.js.map +1 -1
  214. package/dist/commands/collections/create.d.ts +1 -1
  215. package/dist/commands/collections/create.js +3 -3
  216. package/dist/commands/collections/create.js.map +1 -1
  217. package/dist/commands/collections/delete.d.ts +1 -1
  218. package/dist/commands/collections/delete.js +3 -3
  219. package/dist/commands/collections/delete.js.map +1 -1
  220. package/dist/commands/collections/get.d.ts +1 -1
  221. package/dist/commands/collections/get.js +2 -2
  222. package/dist/commands/collections/get.js.map +1 -1
  223. package/dist/commands/collections/list.d.ts +1 -1
  224. package/dist/commands/collections/list.js +2 -2
  225. package/dist/commands/collections/list.js.map +1 -1
  226. package/dist/commands/collections/update.d.ts +1 -1
  227. package/dist/commands/collections/update.js +3 -3
  228. package/dist/commands/collections/update.js.map +1 -1
  229. package/dist/commands/customers/addresses.d.ts +5 -2
  230. package/dist/commands/customers/addresses.js +8 -7
  231. package/dist/commands/customers/addresses.js.map +1 -1
  232. package/dist/commands/customers/create.d.ts +1 -1
  233. package/dist/commands/customers/create.js +4 -5
  234. package/dist/commands/customers/create.js.map +1 -1
  235. package/dist/commands/customers/delete.d.ts +1 -1
  236. package/dist/commands/customers/delete.js +3 -3
  237. package/dist/commands/customers/delete.js.map +1 -1
  238. package/dist/commands/customers/get.d.ts +5 -2
  239. package/dist/commands/customers/get.js +9 -7
  240. package/dist/commands/customers/get.js.map +1 -1
  241. package/dist/commands/{shipping-methods/get.d.ts → customers/insights.d.ts} +2 -2
  242. package/dist/commands/customers/insights.js +30 -0
  243. package/dist/commands/customers/insights.js.map +1 -0
  244. package/dist/commands/customers/list.d.ts +1 -1
  245. package/dist/commands/customers/list.js +3 -3
  246. package/dist/commands/customers/list.js.map +1 -1
  247. package/dist/commands/customers/stats.d.ts +1 -1
  248. package/dist/commands/customers/stats.js +2 -2
  249. package/dist/commands/customers/stats.js.map +1 -1
  250. package/dist/commands/customers/timeline.d.ts +26 -0
  251. package/dist/commands/customers/timeline.js +66 -0
  252. package/dist/commands/customers/timeline.js.map +1 -0
  253. package/dist/commands/customers/update.d.ts +1 -1
  254. package/dist/commands/customers/update.js +4 -4
  255. package/dist/commands/customers/update.js.map +1 -1
  256. package/dist/commands/deploy.d.ts +22 -0
  257. package/dist/commands/deploy.js +72 -0
  258. package/dist/commands/deploy.js.map +1 -0
  259. package/dist/commands/{shipping-zones/location-data.d.ts → deployments/index.d.ts} +2 -2
  260. package/dist/commands/deployments/index.js +17 -0
  261. package/dist/commands/deployments/index.js.map +1 -0
  262. package/dist/commands/deployments/promote.d.ts +22 -0
  263. package/dist/commands/deployments/promote.js +39 -0
  264. package/dist/commands/deployments/promote.js.map +1 -0
  265. package/dist/commands/deployments/rollback.d.ts +5 -0
  266. package/dist/commands/deployments/rollback.js +12 -0
  267. package/dist/commands/deployments/rollback.js.map +1 -0
  268. package/dist/commands/deployments/unpublish.d.ts +18 -0
  269. package/dist/commands/deployments/unpublish.js +21 -0
  270. package/dist/commands/deployments/unpublish.js.map +1 -0
  271. package/dist/commands/describe.d.ts +1 -1
  272. package/dist/commands/env/index.d.ts +18 -0
  273. package/dist/commands/env/index.js +17 -0
  274. package/dist/commands/env/index.js.map +1 -0
  275. package/dist/commands/env/set.d.ts +23 -0
  276. package/dist/commands/env/set.js +44 -0
  277. package/dist/commands/env/set.js.map +1 -0
  278. package/dist/commands/env/unset.d.ts +21 -0
  279. package/dist/commands/env/unset.js +26 -0
  280. package/dist/commands/env/unset.js.map +1 -0
  281. package/dist/commands/health/check.d.ts +1 -1
  282. package/dist/commands/init.d.ts +1 -1
  283. package/dist/commands/init.js +3 -3
  284. package/dist/commands/init.js.map +1 -1
  285. package/dist/commands/logs.d.ts +21 -0
  286. package/dist/commands/logs.js +23 -0
  287. package/dist/commands/logs.js.map +1 -0
  288. package/dist/commands/orders/batch-cancel.d.ts +1 -1
  289. package/dist/commands/orders/batch-cancel.js +2 -2
  290. package/dist/commands/orders/batch-cancel.js.map +1 -1
  291. package/dist/commands/orders/batch-fulfill.d.ts +1 -1
  292. package/dist/commands/orders/batch-fulfill.js +2 -2
  293. package/dist/commands/orders/batch-fulfill.js.map +1 -1
  294. package/dist/commands/orders/batch-update.d.ts +1 -1
  295. package/dist/commands/orders/batch-update.js +3 -3
  296. package/dist/commands/orders/batch-update.js.map +1 -1
  297. package/dist/commands/orders/cancel.d.ts +1 -1
  298. package/dist/commands/orders/cancel.js +3 -3
  299. package/dist/commands/orders/cancel.js.map +1 -1
  300. package/dist/commands/orders/create.d.ts +1 -1
  301. package/dist/commands/orders/create.js +4 -5
  302. package/dist/commands/orders/create.js.map +1 -1
  303. package/dist/commands/orders/deliver.d.ts +1 -1
  304. package/dist/commands/orders/deliver.js +3 -3
  305. package/dist/commands/orders/deliver.js.map +1 -1
  306. package/dist/commands/orders/fulfill.d.ts +1 -1
  307. package/dist/commands/orders/fulfill.js +3 -3
  308. package/dist/commands/orders/fulfill.js.map +1 -1
  309. package/dist/commands/orders/get.d.ts +1 -1
  310. package/dist/commands/orders/get.js +2 -2
  311. package/dist/commands/orders/get.js.map +1 -1
  312. package/dist/commands/orders/list.d.ts +1 -1
  313. package/dist/commands/orders/list.js +2 -2
  314. package/dist/commands/orders/list.js.map +1 -1
  315. package/dist/commands/orders/resume.d.ts +1 -1
  316. package/dist/commands/orders/resume.js +3 -3
  317. package/dist/commands/orders/resume.js.map +1 -1
  318. package/dist/commands/orders/ship.d.ts +1 -1
  319. package/dist/commands/orders/ship.js +3 -3
  320. package/dist/commands/orders/ship.js.map +1 -1
  321. package/dist/commands/orders/stats.d.ts +1 -1
  322. package/dist/commands/orders/stats.js +2 -2
  323. package/dist/commands/orders/stats.js.map +1 -1
  324. package/dist/commands/orders/transitions.d.ts +1 -1
  325. package/dist/commands/orders/transitions.js +2 -2
  326. package/dist/commands/orders/transitions.js.map +1 -1
  327. package/dist/commands/orders/update.d.ts +1 -1
  328. package/dist/commands/orders/update.js +3 -3
  329. package/dist/commands/orders/update.js.map +1 -1
  330. package/dist/commands/{shipping-methods → product-tags}/create.d.ts +2 -5
  331. package/dist/commands/product-tags/create.js +52 -0
  332. package/dist/commands/product-tags/create.js.map +1 -0
  333. package/dist/commands/product-tags/delete.d.ts +21 -0
  334. package/dist/commands/product-tags/delete.js +35 -0
  335. package/dist/commands/product-tags/delete.js.map +1 -0
  336. package/dist/commands/product-tags/list.d.ts +18 -0
  337. package/dist/commands/product-tags/list.js +27 -0
  338. package/dist/commands/product-tags/list.js.map +1 -0
  339. package/dist/commands/product-tags/merge.d.ts +22 -0
  340. package/dist/commands/product-tags/merge.js +45 -0
  341. package/dist/commands/product-tags/merge.js.map +1 -0
  342. package/dist/commands/product-tags/rename.d.ts +22 -0
  343. package/dist/commands/product-tags/rename.js +36 -0
  344. package/dist/commands/product-tags/rename.js.map +1 -0
  345. package/dist/commands/products/all.d.ts +1 -1
  346. package/dist/commands/products/all.js +2 -2
  347. package/dist/commands/products/all.js.map +1 -1
  348. package/dist/commands/products/batch-create.d.ts +1 -1
  349. package/dist/commands/products/batch-create.js +3 -3
  350. package/dist/commands/products/batch-create.js.map +1 -1
  351. package/dist/commands/products/batch-delete.d.ts +1 -1
  352. package/dist/commands/products/batch-delete.js +2 -2
  353. package/dist/commands/products/batch-delete.js.map +1 -1
  354. package/dist/commands/products/batch-update.d.ts +1 -1
  355. package/dist/commands/products/batch-update.js +3 -3
  356. package/dist/commands/products/batch-update.js.map +1 -1
  357. package/dist/commands/products/create.d.ts +1 -1
  358. package/dist/commands/products/create.js +3 -4
  359. package/dist/commands/products/create.js.map +1 -1
  360. package/dist/commands/products/delete.d.ts +1 -1
  361. package/dist/commands/products/delete.js +3 -3
  362. package/dist/commands/products/delete.js.map +1 -1
  363. package/dist/commands/products/get.d.ts +1 -1
  364. package/dist/commands/products/get.js +2 -2
  365. package/dist/commands/products/get.js.map +1 -1
  366. package/dist/commands/products/list.d.ts +2 -2
  367. package/dist/commands/products/list.js +9 -5
  368. package/dist/commands/products/list.js.map +1 -1
  369. package/dist/commands/products/search.d.ts +2 -2
  370. package/dist/commands/products/search.js +11 -6
  371. package/dist/commands/products/search.js.map +1 -1
  372. package/dist/commands/products/stats.d.ts +1 -1
  373. package/dist/commands/products/stats.js +2 -2
  374. package/dist/commands/products/stats.js.map +1 -1
  375. package/dist/commands/products/update.d.ts +1 -1
  376. package/dist/commands/products/update.js +3 -3
  377. package/dist/commands/products/update.js.map +1 -1
  378. package/dist/commands/products/variant-options.d.ts +1 -1
  379. package/dist/commands/products/variant-options.js +12 -10
  380. package/dist/commands/products/variant-options.js.map +1 -1
  381. package/dist/commands/promotions/batch-delete.d.ts +1 -1
  382. package/dist/commands/promotions/batch-delete.js +2 -2
  383. package/dist/commands/promotions/batch-delete.js.map +1 -1
  384. package/dist/commands/promotions/create.d.ts +1 -1
  385. package/dist/commands/promotions/create.js +3 -4
  386. package/dist/commands/promotions/create.js.map +1 -1
  387. package/dist/commands/promotions/delete.d.ts +1 -1
  388. package/dist/commands/promotions/delete.js +3 -3
  389. package/dist/commands/promotions/delete.js.map +1 -1
  390. package/dist/commands/promotions/get-by-code.d.ts +1 -1
  391. package/dist/commands/promotions/get-by-code.js +2 -2
  392. package/dist/commands/promotions/get-by-code.js.map +1 -1
  393. package/dist/commands/promotions/get.d.ts +1 -1
  394. package/dist/commands/promotions/get.js +2 -2
  395. package/dist/commands/promotions/get.js.map +1 -1
  396. package/dist/commands/promotions/list.d.ts +1 -1
  397. package/dist/commands/promotions/list.js +2 -2
  398. package/dist/commands/promotions/list.js.map +1 -1
  399. package/dist/commands/promotions/stats.d.ts +1 -1
  400. package/dist/commands/promotions/stats.js +2 -2
  401. package/dist/commands/promotions/stats.js.map +1 -1
  402. package/dist/commands/promotions/update.d.ts +1 -1
  403. package/dist/commands/promotions/update.js +3 -3
  404. package/dist/commands/promotions/update.js.map +1 -1
  405. package/dist/commands/reviews/bulk-import.d.ts +1 -1
  406. package/dist/commands/reviews/bulk-import.js +3 -3
  407. package/dist/commands/reviews/bulk-import.js.map +1 -1
  408. package/dist/commands/reviews/bulk-moderate.d.ts +1 -1
  409. package/dist/commands/reviews/bulk-moderate.js +3 -3
  410. package/dist/commands/reviews/bulk-moderate.js.map +1 -1
  411. package/dist/commands/reviews/create.d.ts +1 -1
  412. package/dist/commands/reviews/create.js +3 -3
  413. package/dist/commands/reviews/create.js.map +1 -1
  414. package/dist/commands/reviews/delete-reply.d.ts +1 -1
  415. package/dist/commands/reviews/delete-reply.js +3 -3
  416. package/dist/commands/reviews/delete-reply.js.map +1 -1
  417. package/dist/commands/reviews/delete.d.ts +1 -1
  418. package/dist/commands/reviews/delete.js +3 -3
  419. package/dist/commands/reviews/delete.js.map +1 -1
  420. package/dist/commands/reviews/get.d.ts +1 -1
  421. package/dist/commands/reviews/get.js +2 -2
  422. package/dist/commands/reviews/get.js.map +1 -1
  423. package/dist/commands/reviews/list.d.ts +1 -1
  424. package/dist/commands/reviews/list.js +2 -2
  425. package/dist/commands/reviews/list.js.map +1 -1
  426. package/dist/commands/reviews/reply.d.ts +1 -1
  427. package/dist/commands/reviews/reply.js +3 -3
  428. package/dist/commands/reviews/reply.js.map +1 -1
  429. package/dist/commands/reviews/stats.d.ts +1 -1
  430. package/dist/commands/reviews/stats.js +2 -2
  431. package/dist/commands/reviews/stats.js.map +1 -1
  432. package/dist/commands/reviews/update-reply.d.ts +1 -1
  433. package/dist/commands/reviews/update-reply.js +3 -3
  434. package/dist/commands/reviews/update-reply.js.map +1 -1
  435. package/dist/commands/reviews/update.d.ts +1 -1
  436. package/dist/commands/reviews/update.js +3 -3
  437. package/dist/commands/reviews/update.js.map +1 -1
  438. package/dist/commands/setup.d.ts +1 -1
  439. package/dist/commands/setup.js +4 -4
  440. package/dist/commands/setup.js.map +1 -1
  441. package/dist/commands/shipping/locations.d.ts +20 -0
  442. package/dist/commands/shipping/locations.js +42 -0
  443. package/dist/commands/shipping/locations.js.map +1 -0
  444. package/dist/commands/{shipping-programs → shipping-rates}/create.d.ts +14 -9
  445. package/dist/commands/shipping-rates/create.js +89 -0
  446. package/dist/commands/shipping-rates/create.js.map +1 -0
  447. package/dist/commands/{shipping-methods → shipping-rates}/delete.d.ts +3 -2
  448. package/dist/commands/shipping-rates/delete.js +32 -0
  449. package/dist/commands/shipping-rates/delete.js.map +1 -0
  450. package/dist/commands/{shipping-programs → shipping-rates}/get.d.ts +3 -2
  451. package/dist/commands/shipping-rates/get.js +36 -0
  452. package/dist/commands/shipping-rates/get.js.map +1 -0
  453. package/dist/commands/{shipping-programs/delete-rule.d.ts → shipping-rates/list.d.ts} +5 -12
  454. package/dist/commands/shipping-rates/list.js +47 -0
  455. package/dist/commands/shipping-rates/list.js.map +1 -0
  456. package/dist/commands/{shipping-programs → shipping-rates}/update.d.ts +14 -9
  457. package/dist/commands/shipping-rates/update.js +94 -0
  458. package/dist/commands/shipping-rates/update.js.map +1 -0
  459. package/dist/commands/shipping-zones/create.d.ts +1 -1
  460. package/dist/commands/shipping-zones/create.js +4 -4
  461. package/dist/commands/shipping-zones/create.js.map +1 -1
  462. package/dist/commands/shipping-zones/delete.d.ts +1 -1
  463. package/dist/commands/shipping-zones/delete.js +4 -4
  464. package/dist/commands/shipping-zones/delete.js.map +1 -1
  465. package/dist/commands/shipping-zones/get.d.ts +1 -1
  466. package/dist/commands/shipping-zones/get.js +3 -3
  467. package/dist/commands/shipping-zones/get.js.map +1 -1
  468. package/dist/commands/shipping-zones/list.d.ts +2 -2
  469. package/dist/commands/shipping-zones/list.js +6 -6
  470. package/dist/commands/shipping-zones/list.js.map +1 -1
  471. package/dist/commands/shipping-zones/update.d.ts +1 -1
  472. package/dist/commands/shipping-zones/update.js +4 -4
  473. package/dist/commands/shipping-zones/update.js.map +1 -1
  474. package/dist/commands/skills/install.d.ts +20 -0
  475. package/dist/commands/skills/install.js +26 -0
  476. package/dist/commands/skills/install.js.map +1 -0
  477. package/dist/commands/store-menus/create.d.ts +1 -1
  478. package/dist/commands/store-menus/create.js +3 -4
  479. package/dist/commands/store-menus/create.js.map +1 -1
  480. package/dist/commands/store-menus/delete.d.ts +1 -1
  481. package/dist/commands/store-menus/delete.js +3 -3
  482. package/dist/commands/store-menus/delete.js.map +1 -1
  483. package/dist/commands/store-menus/get-by-ref.d.ts +1 -1
  484. package/dist/commands/store-menus/get-by-ref.js +2 -2
  485. package/dist/commands/store-menus/get-by-ref.js.map +1 -1
  486. package/dist/commands/store-menus/get.d.ts +1 -1
  487. package/dist/commands/store-menus/get.js +2 -2
  488. package/dist/commands/store-menus/get.js.map +1 -1
  489. package/dist/commands/store-menus/list.d.ts +1 -1
  490. package/dist/commands/store-menus/list.js +2 -2
  491. package/dist/commands/store-menus/list.js.map +1 -1
  492. package/dist/commands/store-menus/update.d.ts +1 -1
  493. package/dist/commands/store-menus/update.js +3 -3
  494. package/dist/commands/store-menus/update.js.map +1 -1
  495. package/dist/commands/store-pages/all.d.ts +1 -1
  496. package/dist/commands/store-pages/all.js +2 -2
  497. package/dist/commands/store-pages/all.js.map +1 -1
  498. package/dist/commands/store-pages/create.d.ts +1 -1
  499. package/dist/commands/store-pages/create.js +3 -4
  500. package/dist/commands/store-pages/create.js.map +1 -1
  501. package/dist/commands/store-pages/delete.d.ts +1 -1
  502. package/dist/commands/store-pages/delete.js +3 -3
  503. package/dist/commands/store-pages/delete.js.map +1 -1
  504. package/dist/commands/store-pages/duplicate.d.ts +1 -1
  505. package/dist/commands/store-pages/duplicate.js +3 -3
  506. package/dist/commands/store-pages/duplicate.js.map +1 -1
  507. package/dist/commands/store-pages/get.d.ts +1 -1
  508. package/dist/commands/store-pages/get.js +2 -2
  509. package/dist/commands/store-pages/get.js.map +1 -1
  510. package/dist/commands/store-pages/list.d.ts +1 -1
  511. package/dist/commands/store-pages/list.js +2 -2
  512. package/dist/commands/store-pages/list.js.map +1 -1
  513. package/dist/commands/store-pages/stats.d.ts +1 -1
  514. package/dist/commands/store-pages/stats.js +2 -2
  515. package/dist/commands/store-pages/stats.js.map +1 -1
  516. package/dist/commands/store-pages/update.d.ts +1 -1
  517. package/dist/commands/store-pages/update.js +3 -3
  518. package/dist/commands/store-pages/update.js.map +1 -1
  519. package/dist/commands/store-settings/get.d.ts +1 -1
  520. package/dist/commands/store-settings/get.js +2 -2
  521. package/dist/commands/store-settings/get.js.map +1 -1
  522. package/dist/commands/store-settings/update.d.ts +1 -1
  523. package/dist/commands/store-settings/update.js +3 -3
  524. package/dist/commands/store-settings/update.js.map +1 -1
  525. package/dist/commands/storefront/init.d.ts +43 -0
  526. package/dist/commands/storefront/init.js +137 -0
  527. package/dist/commands/storefront/init.js.map +1 -0
  528. package/dist/commands/storefront/key.d.ts +20 -0
  529. package/dist/commands/storefront/key.js +42 -0
  530. package/dist/commands/storefront/key.js.map +1 -0
  531. package/dist/commands/storefront/skill.d.ts +20 -0
  532. package/dist/commands/storefront/skill.js +54 -0
  533. package/dist/commands/storefront/skill.js.map +1 -0
  534. package/dist/commands/stores/current.d.ts +1 -1
  535. package/dist/commands/stores/current.js +5 -5
  536. package/dist/commands/stores/current.js.map +1 -1
  537. package/dist/commands/stores/info.d.ts +2 -5
  538. package/dist/commands/stores/info.js +4 -4
  539. package/dist/commands/stores/info.js.map +1 -1
  540. package/dist/commands/stores/list.d.ts +1 -1
  541. package/dist/commands/stores/switch.d.ts +2 -5
  542. package/dist/commands/stores/switch.js +8 -8
  543. package/dist/commands/stores/switch.js.map +1 -1
  544. package/dist/lib/api-client.d.ts +5 -3
  545. package/dist/lib/api-client.js +20 -6
  546. package/dist/lib/api-client.js.map +1 -1
  547. package/dist/lib/attribute-errors.d.ts +12 -0
  548. package/dist/lib/attribute-errors.js +20 -0
  549. package/dist/lib/attribute-errors.js.map +1 -0
  550. package/dist/lib/codex-skill.d.ts +9 -0
  551. package/dist/lib/codex-skill.js +70 -0
  552. package/dist/lib/codex-skill.js.map +1 -0
  553. package/dist/lib/config.d.ts +4 -4
  554. package/dist/lib/config.js +8 -8
  555. package/dist/lib/config.js.map +1 -1
  556. package/dist/lib/deployments.d.ts +59 -0
  557. package/dist/lib/deployments.js +212 -0
  558. package/dist/lib/deployments.js.map +1 -0
  559. package/dist/lib/email-login.d.ts +28 -0
  560. package/dist/lib/email-login.js +69 -0
  561. package/dist/lib/email-login.js.map +1 -0
  562. package/dist/lib/env-vars.d.ts +16 -0
  563. package/dist/lib/env-vars.js +33 -0
  564. package/dist/lib/env-vars.js.map +1 -0
  565. package/dist/lib/errors.d.ts +3 -1
  566. package/dist/lib/errors.js +2 -0
  567. package/dist/lib/errors.js.map +1 -1
  568. package/dist/lib/github-flow.d.ts +7 -0
  569. package/dist/lib/github-flow.js +34 -0
  570. package/dist/lib/github-flow.js.map +1 -0
  571. package/dist/lib/output.d.ts +6 -6
  572. package/dist/lib/output.js +10 -10
  573. package/dist/lib/output.js.map +1 -1
  574. package/dist/lib/pack-prebuilt.d.ts +12 -0
  575. package/dist/lib/pack-prebuilt.js +138 -0
  576. package/dist/lib/pack-prebuilt.js.map +1 -0
  577. package/dist/lib/pack-source.d.ts +10 -0
  578. package/dist/lib/pack-source.js +119 -0
  579. package/dist/lib/pack-source.js.map +1 -0
  580. package/dist/lib/project-setup.d.ts +15 -0
  581. package/dist/lib/project-setup.js +65 -0
  582. package/dist/lib/project-setup.js.map +1 -0
  583. package/dist/lib/publishable-key.d.ts +18 -0
  584. package/dist/lib/publishable-key.js +10 -0
  585. package/dist/lib/publishable-key.js.map +1 -0
  586. package/dist/lib/skill-update.d.ts +11 -0
  587. package/dist/lib/skill-update.js +74 -0
  588. package/dist/lib/skill-update.js.map +1 -0
  589. package/dist/lib/sse.d.ts +5 -0
  590. package/dist/lib/sse.js +36 -0
  591. package/dist/lib/sse.js.map +1 -0
  592. package/dist/lib/template-download.d.ts +9 -0
  593. package/dist/lib/template-download.js +15 -0
  594. package/dist/lib/template-download.js.map +1 -0
  595. package/dist/lib/template-scaffold.d.ts +18 -0
  596. package/dist/lib/template-scaffold.js +91 -0
  597. package/dist/lib/template-scaffold.js.map +1 -0
  598. package/dist/lib/validators.js +48 -65
  599. package/dist/lib/validators.js.map +1 -1
  600. package/oclif.manifest.json +7321 -5958
  601. package/package.json +23 -12
  602. package/dist/commands/analytics/summary.js.map +0 -1
  603. package/dist/commands/analytics/time-series.js.map +0 -1
  604. package/dist/commands/blog-posts/generate.d.ts +0 -22
  605. package/dist/commands/blog-posts/generate.js +0 -42
  606. package/dist/commands/blog-posts/generate.js.map +0 -1
  607. package/dist/commands/blog-posts/search.d.ts +0 -27
  608. package/dist/commands/blog-posts/search.js +0 -55
  609. package/dist/commands/blog-posts/search.js.map +0 -1
  610. package/dist/commands/shipping-methods/create.js +0 -63
  611. package/dist/commands/shipping-methods/create.js.map +0 -1
  612. package/dist/commands/shipping-methods/delete.js +0 -30
  613. package/dist/commands/shipping-methods/delete.js.map +0 -1
  614. package/dist/commands/shipping-methods/get.js +0 -31
  615. package/dist/commands/shipping-methods/get.js.map +0 -1
  616. package/dist/commands/shipping-methods/list.d.ts +0 -26
  617. package/dist/commands/shipping-methods/list.js +0 -63
  618. package/dist/commands/shipping-methods/list.js.map +0 -1
  619. package/dist/commands/shipping-methods/update.js +0 -69
  620. package/dist/commands/shipping-methods/update.js.map +0 -1
  621. package/dist/commands/shipping-programs/calculate.js +0 -72
  622. package/dist/commands/shipping-programs/calculate.js.map +0 -1
  623. package/dist/commands/shipping-programs/create-rule.d.ts +0 -40
  624. package/dist/commands/shipping-programs/create-rule.js +0 -110
  625. package/dist/commands/shipping-programs/create-rule.js.map +0 -1
  626. package/dist/commands/shipping-programs/create.js +0 -75
  627. package/dist/commands/shipping-programs/create.js.map +0 -1
  628. package/dist/commands/shipping-programs/delete-rule.js +0 -42
  629. package/dist/commands/shipping-programs/delete-rule.js.map +0 -1
  630. package/dist/commands/shipping-programs/delete.js +0 -30
  631. package/dist/commands/shipping-programs/delete.js.map +0 -1
  632. package/dist/commands/shipping-programs/get-rule.js +0 -38
  633. package/dist/commands/shipping-programs/get-rule.js.map +0 -1
  634. package/dist/commands/shipping-programs/get.js +0 -32
  635. package/dist/commands/shipping-programs/get.js.map +0 -1
  636. package/dist/commands/shipping-programs/list-rules.d.ts +0 -34
  637. package/dist/commands/shipping-programs/list-rules.js +0 -86
  638. package/dist/commands/shipping-programs/list-rules.js.map +0 -1
  639. package/dist/commands/shipping-programs/list.d.ts +0 -30
  640. package/dist/commands/shipping-programs/list.js +0 -74
  641. package/dist/commands/shipping-programs/list.js.map +0 -1
  642. package/dist/commands/shipping-programs/update-rule.d.ts +0 -44
  643. package/dist/commands/shipping-programs/update-rule.js +0 -120
  644. package/dist/commands/shipping-programs/update-rule.js.map +0 -1
  645. package/dist/commands/shipping-programs/update.js +0 -81
  646. package/dist/commands/shipping-programs/update.js.map +0 -1
  647. package/dist/commands/shipping-zones/location-data.js +0 -25
  648. package/dist/commands/shipping-zones/location-data.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.MAX_PREBUILT_BYTES = void 0;
40
+ exports.foreignNativeModules = foreignNativeModules;
41
+ exports.packPrebuilt = packPrebuilt;
42
+ exports.buildStandalone = buildStandalone;
43
+ const node_crypto_1 = require("node:crypto");
44
+ const node_fs_1 = require("node:fs");
45
+ const node_os_1 = require("node:os");
46
+ const node_path_1 = __importDefault(require("node:path"));
47
+ const node_child_process_1 = require("node:child_process");
48
+ const tar = __importStar(require("tar"));
49
+ const errors_1 = require("./errors");
50
+ exports.MAX_PREBUILT_BYTES = 250 * 1024 * 1024;
51
+ const ELF = [0x7f, 0x45, 0x4c, 0x46];
52
+ const X86_64 = 0x3e;
53
+ function walk(dir, rel = "") {
54
+ return (0, node_fs_1.readdirSync)(node_path_1.default.join(dir, rel), { withFileTypes: true }).flatMap((e) => {
55
+ const r = rel ? `${rel}/${e.name}` : e.name;
56
+ if (e.isSymbolicLink())
57
+ return [];
58
+ return e.isDirectory() ? walk(dir, r) : [r];
59
+ });
60
+ }
61
+ function foreignNativeModules(standaloneDir) {
62
+ return walk(standaloneDir)
63
+ .filter((rel) => rel.endsWith(".node"))
64
+ .filter((rel) => {
65
+ const fd = (0, node_fs_1.openSync)(node_path_1.default.join(standaloneDir, rel), "r");
66
+ try {
67
+ const head = Buffer.alloc(20);
68
+ const read = (0, node_fs_1.readSync)(fd, head, 0, 20, 0);
69
+ if (read < 20 || !ELF.every((b, i) => head[i] === b))
70
+ return true;
71
+ return head[5] !== 1 || head.readUInt16LE(18) !== X86_64;
72
+ }
73
+ finally {
74
+ (0, node_fs_1.closeSync)(fd);
75
+ }
76
+ })
77
+ .sort();
78
+ }
79
+ function sha256File(file) {
80
+ return new Promise((resolve, reject) => {
81
+ const hash = (0, node_crypto_1.createHash)("sha256");
82
+ (0, node_fs_1.createReadStream)(file)
83
+ .on("data", (c) => hash.update(c))
84
+ .on("error", reject)
85
+ .on("end", () => resolve(hash.digest("hex")));
86
+ });
87
+ }
88
+ const isEnvFile = (p) => /(^|\/)\.env(\..*)?$/.test(p.replace(/\\/g, "/"));
89
+ async function packPrebuilt(projectDir, opts = {}) {
90
+ const root = node_path_1.default.resolve(projectDir);
91
+ const standalone = node_path_1.default.join(root, ".next/standalone");
92
+ if (!(0, node_fs_1.existsSync)(node_path_1.default.join(standalone, "server.js"))) {
93
+ throw new errors_1.CliError("NOT_BUILT", "No standalone build in .next/standalone", errors_1.ExitCode.VALIDATION, {
94
+ hint: "Build it with NEXT_STANDALONE=true pnpm build (or let ecomweb deploy --prebuilt build it).",
95
+ });
96
+ }
97
+ const foreign = foreignNativeModules(standalone);
98
+ if (foreign.length) {
99
+ throw new errors_1.CliError("NOT_LINUX", "This build has native modules that aren't Linux x86-64 (built on macOS, Windows or arm64); ecomweb runs Linux x86-64", errors_1.ExitCode.VALIDATION, {
100
+ hint: "Build on Linux x86-64: CI, Codex cloud, Claude Code on the web, or Docker with --platform linux/amd64 (e.g. node:24-slim).",
101
+ details: { modules: foreign.slice(0, 10) },
102
+ });
103
+ }
104
+ const stage = (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), "ecomweb-prebuilt-"));
105
+ try {
106
+ const app = node_path_1.default.join(stage, "app");
107
+ const copy = (from, to) => (0, node_fs_1.cpSync)(from, to, { recursive: true, verbatimSymlinks: true, filter: (src) => !isEnvFile(node_path_1.default.relative(from, src)) });
108
+ copy(standalone, app);
109
+ if ((0, node_fs_1.existsSync)(node_path_1.default.join(root, ".next/static")))
110
+ copy(node_path_1.default.join(root, ".next/static"), node_path_1.default.join(app, ".next/static"));
111
+ if ((0, node_fs_1.existsSync)(node_path_1.default.join(root, "public")))
112
+ copy(node_path_1.default.join(root, "public"), node_path_1.default.join(app, "public"));
113
+ const file = node_path_1.default.join(opts.outDir ?? (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), "ecomweb-deploy-")), "prebuilt.tar.gz");
114
+ await tar.c({ gzip: true, cwd: stage, file, portable: true, follow: false }, ["app"]);
115
+ const bytes = (0, node_fs_1.statSync)(file).size;
116
+ const max = opts.maxBytes ?? exports.MAX_PREBUILT_BYTES;
117
+ if (bytes > max) {
118
+ throw new errors_1.CliError("ARTIFACT_TOO_LARGE", `The build is ${(bytes / 1024 / 1024).toFixed(1)} MB packed, over the ${(max / 1024 / 1024).toFixed(1)} MB limit`, errors_1.ExitCode.VALIDATION, { hint: "Move large media to your store's assets or a CDN instead of public/." });
119
+ }
120
+ return { file, bytes, sha256: await sha256File(file) };
121
+ }
122
+ finally {
123
+ (0, node_fs_1.rmSync)(stage, { recursive: true, force: true });
124
+ }
125
+ }
126
+ const spawnBuild = (cmd, args, cwd, env) => {
127
+ const r = (0, node_child_process_1.spawnSync)(cmd, args, { cwd, env: { ...process.env, ...env }, stdio: ["ignore", 2, 2] });
128
+ return { status: r.status, error: r.error };
129
+ };
130
+ function buildStandalone(projectDir, run = spawnBuild) {
131
+ const r = run("pnpm", ["build"], projectDir, { NEXT_STANDALONE: "true" });
132
+ if (r.error || r.status !== 0) {
133
+ throw new errors_1.CliError("BUILD_FAILED", "The build failed: fix it and deploy again", errors_1.ExitCode.BUILD_FAILED, {
134
+ hint: "The errors are above. Run pnpm build to reproduce them.",
135
+ });
136
+ }
137
+ }
138
+ //# sourceMappingURL=pack-prebuilt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-prebuilt.js","sourceRoot":"","sources":["../../src/lib/pack-prebuilt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const MAX_SOURCE_BYTES: number;
2
+ export interface PackedSource {
3
+ file: string;
4
+ bytes: number;
5
+ sha256: string;
6
+ }
7
+ export declare function packSource(dir: string, opts?: {
8
+ outDir?: string;
9
+ maxBytes?: number;
10
+ }): Promise<PackedSource>;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.MAX_SOURCE_BYTES = void 0;
40
+ exports.packSource = packSource;
41
+ const node_crypto_1 = require("node:crypto");
42
+ const node_fs_1 = require("node:fs");
43
+ const node_os_1 = require("node:os");
44
+ const node_path_1 = __importDefault(require("node:path"));
45
+ const ignore_1 = __importDefault(require("ignore"));
46
+ const tar = __importStar(require("tar"));
47
+ const errors_1 = require("./errors");
48
+ exports.MAX_SOURCE_BYTES = 50 * 1024 * 1024;
49
+ const ALWAYS_EXCLUDED = new Set(["node_modules", ".next", ".git", ".vercel", ".turbo"]);
50
+ function isEnvFile(name) {
51
+ return (name === ".env" || name.startsWith(".env.")) && name !== ".env.example";
52
+ }
53
+ function linkStaysInside(root, rel) {
54
+ const target = (0, node_fs_1.readlinkSync)(node_path_1.default.join(root, rel));
55
+ if (node_path_1.default.isAbsolute(target))
56
+ return false;
57
+ const resolved = node_path_1.default.resolve(root, node_path_1.default.dirname(rel), target);
58
+ return resolved === root || resolved.startsWith(root + node_path_1.default.sep);
59
+ }
60
+ function collect(root) {
61
+ const out = [];
62
+ const walk = (relDir, rules) => {
63
+ const abs = node_path_1.default.join(root, relDir);
64
+ const gitignore = node_path_1.default.join(abs, ".gitignore");
65
+ const scoped = (0, node_fs_1.existsSync)(gitignore)
66
+ ? [...rules, { base: relDir, ig: (0, ignore_1.default)().add((0, node_fs_1.readFileSync)(gitignore, "utf8")) }]
67
+ : rules;
68
+ const ignored = (rel, isDir) => scoped.some(({ base, ig }) => {
69
+ const p = node_path_1.default.posix.relative(base, rel);
70
+ return ig.ignores(isDir ? `${p}/` : p);
71
+ });
72
+ for (const entry of (0, node_fs_1.readdirSync)(abs, { withFileTypes: true })) {
73
+ const rel = node_path_1.default.posix.join(relDir, entry.name);
74
+ if (ALWAYS_EXCLUDED.has(entry.name) || isEnvFile(entry.name))
75
+ continue;
76
+ if (entry.isDirectory()) {
77
+ if (!ignored(rel, true))
78
+ walk(rel, scoped);
79
+ }
80
+ else if (entry.isFile()) {
81
+ if (!ignored(rel, false))
82
+ out.push(rel);
83
+ }
84
+ else if (entry.isSymbolicLink()) {
85
+ if (!ignored(rel, false) && linkStaysInside(root, rel))
86
+ out.push(rel);
87
+ }
88
+ }
89
+ };
90
+ walk("", []);
91
+ return out.sort();
92
+ }
93
+ function sha256File(file) {
94
+ return new Promise((resolve, reject) => {
95
+ const hash = (0, node_crypto_1.createHash)("sha256");
96
+ (0, node_fs_1.createReadStream)(file)
97
+ .on("data", (chunk) => hash.update(chunk))
98
+ .on("error", reject)
99
+ .on("end", () => resolve(hash.digest("hex")));
100
+ });
101
+ }
102
+ const mb = (bytes) => (bytes / 1024 / 1024).toFixed(1);
103
+ async function packSource(dir, opts = {}) {
104
+ const root = node_path_1.default.resolve(dir);
105
+ if (!(0, node_fs_1.existsSync)(node_path_1.default.join(root, "package.json"))) {
106
+ throw new errors_1.CliError("NOT_A_PROJECT", `No package.json in ${root}`, errors_1.ExitCode.VALIDATION, {
107
+ hint: "Run ecomweb deploy from your storefront's folder, or pass --dir.",
108
+ });
109
+ }
110
+ const file = node_path_1.default.join(opts.outDir ?? (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), "ecomweb-deploy-")), "source.tar.gz");
111
+ await tar.c({ gzip: true, cwd: root, file, portable: true, follow: false, noDirRecurse: true }, collect(root));
112
+ const bytes = (0, node_fs_1.statSync)(file).size;
113
+ const max = opts.maxBytes ?? exports.MAX_SOURCE_BYTES;
114
+ if (bytes > max) {
115
+ throw new errors_1.CliError("SOURCE_TOO_LARGE", `Source is ${mb(bytes)} MB packed, over the ${mb(max)} MB limit`, errors_1.ExitCode.VALIDATION, { hint: "Add large files (videos, datasets) to .gitignore and serve them from a CDN or your store's assets." });
116
+ }
117
+ return { file, bytes, sha256: await sha256File(file) };
118
+ }
119
+ //# sourceMappingURL=pack-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-source.js","sourceRoot":"","sources":["../../src/lib/pack-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type StdioOptions } from "node:child_process";
2
+ export declare const CHILD_STDIO: StdioOptions;
3
+ export declare function projectStoreRef(dir: string): string | undefined;
4
+ export type RunCommand = (cmd: string, args: string[], cwd: string) => {
5
+ status: number | null;
6
+ error?: Error;
7
+ };
8
+ export declare function installDependencies(dir: string, run?: RunCommand): "installed" | "failed";
9
+ export declare function nextSteps(dir: string, opts: {
10
+ installed: boolean;
11
+ }): string;
12
+ export declare function writeCloneDevSettings(dir: string, fetchKey: () => Promise<string>, cfg: {
13
+ storeRef: string;
14
+ siteUrl: string;
15
+ }): Promise<string | null>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CHILD_STDIO = void 0;
7
+ exports.projectStoreRef = projectStoreRef;
8
+ exports.installDependencies = installDependencies;
9
+ exports.nextSteps = nextSteps;
10
+ exports.writeCloneDevSettings = writeCloneDevSettings;
11
+ const node_child_process_1 = require("node:child_process");
12
+ const node_fs_1 = require("node:fs");
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const template_scaffold_1 = require("./template-scaffold");
15
+ exports.CHILD_STDIO = ["ignore", 2, 2];
16
+ function projectStoreRef(dir) {
17
+ const file = node_path_1.default.join(dir, ".ecomweb.json");
18
+ if (!(0, node_fs_1.existsSync)(file))
19
+ return undefined;
20
+ try {
21
+ const ref = JSON.parse((0, node_fs_1.readFileSync)(file, "utf8")).storeRef;
22
+ return typeof ref === "string" && ref ? ref : undefined;
23
+ }
24
+ catch {
25
+ return undefined;
26
+ }
27
+ }
28
+ const spawnRun = (cmd, args, cwd) => {
29
+ const r = (0, node_child_process_1.spawnSync)(cmd, args, { cwd, stdio: exports.CHILD_STDIO });
30
+ return { status: r.status, error: r.error };
31
+ };
32
+ function installDependencies(dir, run = spawnRun) {
33
+ const r = run("pnpm", ["install"], dir);
34
+ return !r.error && r.status === 0 ? "installed" : "failed";
35
+ }
36
+ function nextSteps(dir, opts) {
37
+ return [
38
+ "Next:",
39
+ ` cd ${dir}`,
40
+ ...(opts.installed ? [] : [" pnpm install"]),
41
+ " pnpm dev # http://localhost:3002",
42
+ "",
43
+ "Then open this folder in Claude Code (`claude`) or Codex (`codex`) and ask for what you want, for example:",
44
+ ' - "Build my home page from my best-selling products, in my brand colours."',
45
+ ' - "Redesign the product page for phones, using my real products and photos."',
46
+ ' - "Add a size guide to product pages and check everything with pnpm check."',
47
+ "",
48
+ "The project carries an ecomweb skill that teaches the agent this storefront.",
49
+ ].join("\n");
50
+ }
51
+ async function writeCloneDevSettings(dir, fetchKey, cfg) {
52
+ try {
53
+ const publishableKey = await fetchKey();
54
+ (0, node_fs_1.writeFileSync)(node_path_1.default.join(dir, ".env.development.local"), (0, template_scaffold_1.envDevelopment)({ ...cfg, publishableKey, templateVersion: "" }));
55
+ return null;
56
+ }
57
+ catch (error) {
58
+ if ((0, node_fs_1.existsSync)(node_path_1.default.join(dir, ".env.development")))
59
+ return null;
60
+ return (`Couldn't get the store's publishable key (${error.message}). ` +
61
+ `For pnpm dev, put ECOMWEB_STORE_REF, ECOMWEB_PUBLISHABLE_KEY (from: ecomweb storefront key) ` +
62
+ `and SITE_URL=http://localhost:3002 in ${node_path_1.default.join(dir, ".env.development.local")}`);
63
+ }
64
+ }
65
+ //# sourceMappingURL=project-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-setup.js","sourceRoot":"","sources":["../../src/lib/project-setup.ts"],"names":[],"mappings":";;;;;;AASA,0CASC;AAaD,kDAGC;AAGD,8BAcC;AAOD,sDAoBC;AA9ED,2DAAkE;AAClE,qCAAkE;AAClE,0DAA6B;AAC7B,2DAAqD;AAGxC,QAAA,WAAW,GAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAG1D,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5D,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAID,MAAM,QAAQ,GAAe,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,IAAA,8BAAS,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAW,EAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9C,CAAC,CAAC;AAMF,SAAgB,mBAAmB,CAAC,GAAW,EAAE,MAAkB,QAAQ;IACzE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAGD,SAAgB,SAAS,CAAC,GAAW,EAAE,IAA4B;IACjE,OAAO;QACL,OAAO;QACP,QAAQ,GAAG,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC7C,qDAAqD;QACrD,EAAE;QACF,4GAA4G;QAC5G,8EAA8E;QAC9E,gFAAgF;QAChF,+EAA+E;QAC/E,EAAE;QACF,8EAA8E;KAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAOM,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,QAA+B,EAC/B,GAA0C;IAE1C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,QAAQ,EAAE,CAAC;QACxC,IAAA,uBAAa,EACX,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,EACxC,IAAA,kCAAc,EAAC,EAAE,GAAG,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAA,oBAAU,EAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,CACL,6CAA8C,KAAe,CAAC,OAAO,KAAK;YAC1E,8FAA8F;YAC9F,yCAAyC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface StorePublishableKey {
2
+ key: string;
3
+ prefix: string;
4
+ allowed_origins: string[];
5
+ created_at: string;
6
+ retiring: {
7
+ prefix: string;
8
+ retires_at: string;
9
+ } | null;
10
+ }
11
+ interface StoreClient {
12
+ storeGet<T = any>(path: string): Promise<T>;
13
+ storePost<T = any>(path: string, body?: unknown): Promise<T>;
14
+ }
15
+ export declare function fetchPublishableKey(client: StoreClient, { roll }: {
16
+ roll: boolean;
17
+ }): Promise<StorePublishableKey>;
18
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchPublishableKey = fetchPublishableKey;
4
+ async function fetchPublishableKey(client, { roll }) {
5
+ const res = roll
6
+ ? await client.storePost("/publishable-key/roll")
7
+ : await client.storeGet("/publishable-key");
8
+ return (res && typeof res === "object" && "data" in res ? res.data : res);
9
+ }
10
+ //# sourceMappingURL=publishable-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishable-key.js","sourceRoot":"","sources":["../../src/lib/publishable-key.ts"],"names":[],"mappings":";;AAmBA,kDAQC;AARM,KAAK,UAAU,mBAAmB,CACvC,MAAmB,EACnB,EAAE,IAAI,EAAqB;IAE3B,MAAM,GAAG,GAAQ,IAAI;QACnB,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC;QACjD,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAwB,CAAC;AACnG,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const SKILL_DIR = ".claude/skills/ecomweb-storefront";
2
+ export interface SkillUpdate {
3
+ added: string[];
4
+ removed: string[];
5
+ changed: string[];
6
+ unchanged: number;
7
+ }
8
+ export declare function assertStorefront(projectDir: string): string;
9
+ export declare function updateSkill(projectDir: string, zip: Buffer, opts?: {
10
+ dryRun?: boolean;
11
+ }): Promise<SkillUpdate>;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SKILL_DIR = void 0;
7
+ exports.assertStorefront = assertStorefront;
8
+ exports.updateSkill = updateSkill;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const jszip_1 = __importDefault(require("jszip"));
12
+ const errors_1 = require("./errors");
13
+ const template_scaffold_1 = require("./template-scaffold");
14
+ exports.SKILL_DIR = ".claude/skills/ecomweb-storefront";
15
+ function filesIn(dir, rel = "") {
16
+ if (!(0, node_fs_1.existsSync)(node_path_1.default.join(dir, rel)))
17
+ return [];
18
+ return (0, node_fs_1.readdirSync)(node_path_1.default.join(dir, rel), { withFileTypes: true }).flatMap((e) => {
19
+ const r = rel ? `${rel}/${e.name}` : e.name;
20
+ return e.isDirectory() ? filesIn(dir, r) : [r];
21
+ });
22
+ }
23
+ function assertStorefront(projectDir) {
24
+ const root = node_path_1.default.resolve(projectDir);
25
+ if (!(0, node_fs_1.existsSync)(node_path_1.default.join(root, ".ecomweb.json"))) {
26
+ throw new errors_1.CliError("NOT_A_STOREFRONT", `${root} is not an ecomweb storefront project (no .ecomweb.json)`, errors_1.ExitCode.VALIDATION, {
27
+ hint: "Run this inside a project created by ecomweb storefront init, or pass --dir.",
28
+ });
29
+ }
30
+ return root;
31
+ }
32
+ async function updateSkill(projectDir, zip, opts = {}) {
33
+ const root = assertStorefront(projectDir);
34
+ const skillRoot = node_path_1.default.join(root, exports.SKILL_DIR);
35
+ const prefix = `${exports.SKILL_DIR}/`;
36
+ const archive = await jszip_1.default.loadAsync(zip);
37
+ const incoming = new Map();
38
+ for (const entry of Object.values(archive.files)) {
39
+ const original = entry.unsafeOriginalName ?? entry.name;
40
+ if (entry.dir || !(original.startsWith(prefix) || entry.name.startsWith(prefix)))
41
+ continue;
42
+ (0, template_scaffold_1.targetPath)(skillRoot, original.slice(prefix.length));
43
+ (0, template_scaffold_1.targetPath)(skillRoot, entry.name.slice(prefix.length));
44
+ incoming.set(entry.name.slice(prefix.length), await entry.async("nodebuffer"));
45
+ }
46
+ if (!incoming.size) {
47
+ throw new errors_1.CliError("TEMPLATE_HAS_NO_SKILL", "The store's template has no ecomweb-storefront skill", errors_1.ExitCode.ERROR);
48
+ }
49
+ const current = new Set(filesIn(skillRoot));
50
+ const result = { added: [], removed: [], changed: [], unchanged: 0 };
51
+ for (const [rel, content] of incoming) {
52
+ if (!current.has(rel))
53
+ result.added.push(rel);
54
+ else if (!(0, node_fs_1.readFileSync)(node_path_1.default.join(skillRoot, rel)).equals(content))
55
+ result.changed.push(rel);
56
+ else
57
+ result.unchanged++;
58
+ }
59
+ for (const rel of current)
60
+ if (!incoming.has(rel))
61
+ result.removed.push(rel);
62
+ for (const list of [result.added, result.removed, result.changed])
63
+ list.sort();
64
+ if (opts.dryRun)
65
+ return result;
66
+ (0, node_fs_1.rmSync)(skillRoot, { recursive: true, force: true });
67
+ for (const [rel, content] of incoming) {
68
+ const target = (0, template_scaffold_1.targetPath)(skillRoot, rel);
69
+ (0, node_fs_1.mkdirSync)(node_path_1.default.dirname(target), { recursive: true });
70
+ (0, node_fs_1.writeFileSync)(target, content);
71
+ }
72
+ return result;
73
+ }
74
+ //# sourceMappingURL=skill-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-update.js","sourceRoot":"","sources":["../../src/lib/skill-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface SseEvent {
2
+ event: string;
3
+ data: string;
4
+ }
5
+ export declare function parseSse(source: AsyncIterable<Buffer | string>): AsyncGenerator<SseEvent>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseSse = parseSse;
4
+ async function* parseSse(source) {
5
+ let buffer = "";
6
+ let event = "message";
7
+ let data = [];
8
+ const decoder = new TextDecoder();
9
+ for await (const chunk of source) {
10
+ buffer += typeof chunk === "string" ? chunk : decoder.decode(chunk, { stream: true });
11
+ let newline;
12
+ while ((newline = buffer.indexOf("\n")) >= 0) {
13
+ const line = buffer.slice(0, newline).replace(/\r$/, "");
14
+ buffer = buffer.slice(newline + 1);
15
+ if (line === "") {
16
+ if (data.length)
17
+ yield { event, data: data.join("\n") };
18
+ event = "message";
19
+ data = [];
20
+ }
21
+ else if (line.startsWith(":")) {
22
+ continue;
23
+ }
24
+ else {
25
+ const colon = line.indexOf(":");
26
+ const field = colon < 0 ? line : line.slice(0, colon);
27
+ const value = colon < 0 ? "" : line.slice(colon + 1).replace(/^ /, "");
28
+ if (field === "event")
29
+ event = value;
30
+ else if (field === "data")
31
+ data.push(value);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/lib/sse.ts"],"names":[],"mappings":";;AAMA,4BA2BC;AA3BM,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAsC;IACpE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,IAAI,IAAI,GAAa,EAAE,CAAC;IAExB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,OAAe,CAAC;QACpB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,KAAK,GAAG,SAAS,CAAC;gBAClB,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,KAAK,KAAK,OAAO;oBAAE,KAAK,GAAG,KAAK,CAAC;qBAChC,IAAI,KAAK,KAAK,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ interface TemplateClient {
2
+ storeGet<T = any>(path: string): Promise<T>;
3
+ storeDownload(path: string): Promise<Buffer>;
4
+ }
5
+ export declare function downloadTemplate(client: TemplateClient): Promise<{
6
+ zip: Buffer;
7
+ version: string;
8
+ }>;
9
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.downloadTemplate = downloadTemplate;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const errors_1 = require("./errors");
6
+ async function downloadTemplate(client) {
7
+ const template = await client.storeGet("/storefront/template");
8
+ const zip = await client.storeDownload("/storefront/template/download");
9
+ const actual = (0, node_crypto_1.createHash)("sha256").update(zip).digest("hex");
10
+ if (actual !== template.sha256) {
11
+ throw new errors_1.CliError("CHECKSUM_MISMATCH", "The downloaded template does not match its published checksum", errors_1.ExitCode.ERROR);
12
+ }
13
+ return { zip, version: template.version };
14
+ }
15
+ //# sourceMappingURL=template-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-download.js","sourceRoot":"","sources":["../../src/lib/template-download.ts"],"names":[],"mappings":";;AASA,4CAQC;AAjBD,6CAAyC;AACzC,qCAA8C;AAQvC,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAsC,sBAAsB,CAAC,CAAC;IACpG,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAQ,CAAC,mBAAmB,EAAE,+DAA+D,EAAE,iBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface StoreRepoConfig {
2
+ storeRef: string;
3
+ publishableKey: string;
4
+ siteUrl: string;
5
+ templateVersion: string;
6
+ }
7
+ export declare function envProduction(cfg: StoreRepoConfig): string;
8
+ export declare function envDevelopment(cfg: StoreRepoConfig): string;
9
+ export declare function ecomwebJson(cfg: StoreRepoConfig): string;
10
+ export declare function assertEmptyDir(dir: string): void;
11
+ export declare function targetPath(root: string, name: string): string;
12
+ export declare function scaffoldFromZip(args: StoreRepoConfig & {
13
+ zip: Buffer;
14
+ dir: string;
15
+ }): Promise<{
16
+ files: number;
17
+ }>;
18
+ export declare function gitInitialCommit(dir: string, message: string): void;