@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.
- package/README.md +119 -2
- package/dist/base-command.d.ts +4 -3
- package/dist/base-command.js +20 -14
- package/dist/base-command.js.map +1 -1
- package/dist/commands/analytics/ga4/all.d.ts +1 -1
- package/dist/commands/analytics/ga4/all.js +2 -2
- package/dist/commands/analytics/ga4/all.js.map +1 -1
- package/dist/commands/analytics/ga4/overview.d.ts +1 -1
- package/dist/commands/analytics/ga4/overview.js +2 -2
- package/dist/commands/analytics/ga4/overview.js.map +1 -1
- package/dist/commands/analytics/ga4/sessions-by-channel.d.ts +1 -1
- package/dist/commands/analytics/ga4/sessions-by-channel.js +2 -2
- package/dist/commands/analytics/ga4/sessions-by-channel.js.map +1 -1
- package/dist/commands/analytics/ga4/trends.d.ts +1 -1
- package/dist/commands/analytics/ga4/trends.js +2 -2
- package/dist/commands/analytics/ga4/trends.js.map +1 -1
- package/dist/commands/analytics/ga4/users-by-country.d.ts +1 -1
- package/dist/commands/analytics/ga4/users-by-country.js +2 -2
- package/dist/commands/analytics/ga4/users-by-country.js.map +1 -1
- package/dist/commands/analytics/ga4/views-by-page.d.ts +1 -1
- package/dist/commands/analytics/ga4/views-by-page.js +2 -2
- package/dist/commands/analytics/ga4/views-by-page.js.map +1 -1
- package/dist/commands/analytics/gsc/all.d.ts +1 -1
- package/dist/commands/analytics/gsc/all.js +2 -2
- package/dist/commands/analytics/gsc/all.js.map +1 -1
- package/dist/commands/analytics/gsc/search-console.d.ts +1 -1
- package/dist/commands/analytics/gsc/search-console.js +2 -2
- package/dist/commands/analytics/gsc/search-console.js.map +1 -1
- package/dist/commands/analytics/sales/all.d.ts +1 -1
- package/dist/commands/analytics/sales/all.js +2 -2
- package/dist/commands/analytics/sales/all.js.map +1 -1
- package/dist/commands/analytics/sales/summary.d.ts +1 -1
- package/dist/commands/analytics/sales/summary.js +2 -2
- package/dist/commands/analytics/sales/summary.js.map +1 -1
- package/dist/commands/analytics/sales/time-series.d.ts +1 -1
- package/dist/commands/analytics/sales/time-series.js +2 -2
- package/dist/commands/analytics/sales/time-series.js.map +1 -1
- package/dist/commands/assets/bulk-delete.d.ts +1 -1
- package/dist/commands/assets/bulk-delete.js +3 -3
- package/dist/commands/assets/bulk-delete.js.map +1 -1
- package/dist/commands/assets/delete.d.ts +1 -1
- package/dist/commands/assets/delete.js +3 -3
- package/dist/commands/assets/delete.js.map +1 -1
- package/dist/commands/assets/get-by-entity.d.ts +1 -1
- package/dist/commands/assets/get-by-entity.js +2 -2
- package/dist/commands/assets/get-by-entity.js.map +1 -1
- package/dist/commands/assets/get.d.ts +1 -1
- package/dist/commands/assets/get.js +2 -2
- package/dist/commands/assets/get.js.map +1 -1
- package/dist/commands/assets/link.d.ts +1 -1
- package/dist/commands/assets/link.js +3 -3
- package/dist/commands/assets/link.js.map +1 -1
- package/dist/commands/assets/list.d.ts +1 -1
- package/dist/commands/assets/list.js +2 -2
- package/dist/commands/assets/list.js.map +1 -1
- package/dist/commands/assets/replace.d.ts +1 -1
- package/dist/commands/assets/replace.js +3 -3
- package/dist/commands/assets/replace.js.map +1 -1
- package/dist/commands/assets/unlink.d.ts +1 -1
- package/dist/commands/assets/unlink.js +3 -3
- package/dist/commands/assets/unlink.js.map +1 -1
- package/dist/commands/assets/update.d.ts +1 -1
- package/dist/commands/assets/update.js +3 -3
- package/dist/commands/assets/update.js.map +1 -1
- package/dist/commands/assets/upload-and-link.d.ts +1 -1
- package/dist/commands/assets/upload-and-link.js +3 -3
- package/dist/commands/assets/upload-and-link.js.map +1 -1
- package/dist/commands/assets/upload-video.d.ts +1 -1
- package/dist/commands/assets/upload-video.js +3 -3
- package/dist/commands/assets/upload-video.js.map +1 -1
- package/dist/commands/assets/upload.d.ts +1 -1
- package/dist/commands/assets/upload.js +3 -3
- package/dist/commands/assets/upload.js.map +1 -1
- package/dist/commands/attributes/create.d.ts +21 -0
- package/dist/commands/attributes/create.js +37 -0
- package/dist/commands/attributes/create.js.map +1 -0
- package/dist/commands/{shipping-programs → attributes}/delete.d.ts +3 -2
- package/dist/commands/attributes/delete.js +45 -0
- package/dist/commands/attributes/delete.js.map +1 -0
- package/dist/commands/attributes/list.d.ts +20 -0
- package/dist/commands/attributes/list.js +36 -0
- package/dist/commands/attributes/list.js.map +1 -0
- package/dist/commands/{shipping-methods → attributes}/update.d.ts +4 -7
- package/dist/commands/attributes/update.js +41 -0
- package/dist/commands/attributes/update.js.map +1 -0
- package/dist/commands/attributes/values/create.d.ts +28 -0
- package/dist/commands/attributes/values/create.js +45 -0
- package/dist/commands/attributes/values/create.js.map +1 -0
- package/dist/commands/{shipping-programs/get-rule.d.ts → attributes/values/delete.d.ts} +6 -5
- package/dist/commands/attributes/values/delete.js +48 -0
- package/dist/commands/attributes/values/delete.js.map +1 -0
- package/dist/commands/attributes/values/list.d.ts +24 -0
- package/dist/commands/attributes/values/list.js +29 -0
- package/dist/commands/attributes/values/list.js.map +1 -0
- package/dist/commands/{shipping-programs/calculate.d.ts → attributes/values/update.d.ts} +18 -11
- package/dist/commands/attributes/values/update.js +50 -0
- package/dist/commands/attributes/values/update.js.map +1 -0
- package/dist/commands/auth/login.d.ts +5 -1
- package/dist/commands/auth/login.js +61 -3
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/logout.d.ts +1 -1
- package/dist/commands/auth/profiles/delete.d.ts +1 -1
- package/dist/commands/auth/profiles/list.d.ts +1 -1
- package/dist/commands/auth/profiles/list.js +1 -1
- package/dist/commands/auth/profiles/list.js.map +1 -1
- package/dist/commands/auth/profiles/use.d.ts +1 -1
- package/dist/commands/auth/register.d.ts +1 -1
- package/dist/commands/auth/status.d.ts +1 -1
- package/dist/commands/auth/status.js +2 -2
- package/dist/commands/auth/status.js.map +1 -1
- package/dist/commands/auth/verify.d.ts +1 -1
- package/dist/commands/banners/create.d.ts +1 -1
- package/dist/commands/banners/create.js +3 -3
- package/dist/commands/banners/create.js.map +1 -1
- package/dist/commands/banners/delete.d.ts +1 -1
- package/dist/commands/banners/delete.js +3 -3
- package/dist/commands/banners/delete.js.map +1 -1
- package/dist/commands/banners/get.d.ts +1 -1
- package/dist/commands/banners/get.js +2 -2
- package/dist/commands/banners/get.js.map +1 -1
- package/dist/commands/banners/list.d.ts +1 -1
- package/dist/commands/banners/list.js +2 -2
- package/dist/commands/banners/list.js.map +1 -1
- package/dist/commands/banners/update.d.ts +1 -1
- package/dist/commands/banners/update.js +3 -3
- package/dist/commands/banners/update.js.map +1 -1
- package/dist/commands/blog-categories/all.d.ts +1 -1
- package/dist/commands/blog-categories/all.js +2 -2
- package/dist/commands/blog-categories/all.js.map +1 -1
- package/dist/commands/blog-categories/create.d.ts +1 -1
- package/dist/commands/blog-categories/create.js +3 -4
- package/dist/commands/blog-categories/create.js.map +1 -1
- package/dist/commands/blog-categories/delete.d.ts +1 -1
- package/dist/commands/blog-categories/delete.js +3 -3
- package/dist/commands/blog-categories/delete.js.map +1 -1
- package/dist/commands/blog-categories/list.d.ts +1 -1
- package/dist/commands/blog-categories/list.js +2 -2
- package/dist/commands/blog-categories/list.js.map +1 -1
- package/dist/commands/blog-categories/update.d.ts +1 -1
- package/dist/commands/blog-categories/update.js +3 -3
- package/dist/commands/blog-categories/update.js.map +1 -1
- package/dist/commands/blog-posts/all.d.ts +1 -1
- package/dist/commands/blog-posts/all.js +2 -2
- package/dist/commands/blog-posts/all.js.map +1 -1
- package/dist/commands/blog-posts/batch-create.d.ts +1 -1
- package/dist/commands/blog-posts/batch-create.js +3 -3
- package/dist/commands/blog-posts/batch-create.js.map +1 -1
- package/dist/commands/blog-posts/batch-delete.d.ts +1 -1
- package/dist/commands/blog-posts/batch-delete.js +2 -2
- package/dist/commands/blog-posts/batch-delete.js.map +1 -1
- package/dist/commands/blog-posts/batch-update.d.ts +1 -1
- package/dist/commands/blog-posts/batch-update.js +3 -3
- package/dist/commands/blog-posts/batch-update.js.map +1 -1
- package/dist/commands/blog-posts/create.d.ts +1 -1
- package/dist/commands/blog-posts/create.js +3 -4
- package/dist/commands/blog-posts/create.js.map +1 -1
- package/dist/commands/blog-posts/delete.d.ts +1 -1
- package/dist/commands/blog-posts/delete.js +3 -3
- package/dist/commands/blog-posts/delete.js.map +1 -1
- package/dist/commands/blog-posts/get.d.ts +1 -1
- package/dist/commands/blog-posts/get.js +2 -2
- package/dist/commands/blog-posts/get.js.map +1 -1
- package/dist/commands/blog-posts/import.d.ts +1 -1
- package/dist/commands/blog-posts/import.js +3 -3
- package/dist/commands/blog-posts/import.js.map +1 -1
- package/dist/commands/blog-posts/list.d.ts +1 -1
- package/dist/commands/blog-posts/list.js +2 -2
- package/dist/commands/blog-posts/list.js.map +1 -1
- package/dist/commands/blog-posts/stats.d.ts +1 -1
- package/dist/commands/blog-posts/stats.js +2 -2
- package/dist/commands/blog-posts/stats.js.map +1 -1
- package/dist/commands/blog-posts/update.d.ts +1 -1
- package/dist/commands/blog-posts/update.js +3 -3
- package/dist/commands/blog-posts/update.js.map +1 -1
- package/dist/commands/blog-settings/get.d.ts +1 -1
- package/dist/commands/blog-settings/get.js +2 -2
- package/dist/commands/blog-settings/get.js.map +1 -1
- package/dist/commands/blog-settings/update.d.ts +1 -1
- package/dist/commands/blog-settings/update.js +3 -3
- package/dist/commands/blog-settings/update.js.map +1 -1
- package/dist/commands/blog-tags/all.d.ts +1 -1
- package/dist/commands/blog-tags/all.js +2 -2
- package/dist/commands/blog-tags/all.js.map +1 -1
- package/dist/commands/blog-tags/create.d.ts +1 -1
- package/dist/commands/blog-tags/create.js +3 -4
- package/dist/commands/blog-tags/create.js.map +1 -1
- package/dist/commands/blog-tags/delete.d.ts +1 -1
- package/dist/commands/blog-tags/delete.js +3 -3
- package/dist/commands/blog-tags/delete.js.map +1 -1
- package/dist/commands/blog-tags/list.d.ts +1 -1
- package/dist/commands/blog-tags/list.js +2 -2
- package/dist/commands/blog-tags/list.js.map +1 -1
- package/dist/commands/categories/all.d.ts +1 -1
- package/dist/commands/categories/all.js +2 -2
- package/dist/commands/categories/all.js.map +1 -1
- package/dist/commands/categories/create.d.ts +1 -1
- package/dist/commands/categories/create.js +3 -3
- package/dist/commands/categories/create.js.map +1 -1
- package/dist/commands/categories/delete.d.ts +1 -1
- package/dist/commands/categories/delete.js +3 -3
- package/dist/commands/categories/delete.js.map +1 -1
- package/dist/commands/categories/get.d.ts +1 -1
- package/dist/commands/categories/get.js +2 -2
- package/dist/commands/categories/get.js.map +1 -1
- package/dist/commands/categories/list.d.ts +1 -1
- package/dist/commands/categories/list.js +2 -2
- package/dist/commands/categories/list.js.map +1 -1
- package/dist/commands/categories/update.d.ts +1 -1
- package/dist/commands/categories/update.js +3 -3
- package/dist/commands/categories/update.js.map +1 -1
- package/dist/commands/collections/all.d.ts +1 -1
- package/dist/commands/collections/all.js +2 -2
- package/dist/commands/collections/all.js.map +1 -1
- package/dist/commands/collections/create.d.ts +1 -1
- package/dist/commands/collections/create.js +3 -3
- package/dist/commands/collections/create.js.map +1 -1
- package/dist/commands/collections/delete.d.ts +1 -1
- package/dist/commands/collections/delete.js +3 -3
- package/dist/commands/collections/delete.js.map +1 -1
- package/dist/commands/collections/get.d.ts +1 -1
- package/dist/commands/collections/get.js +2 -2
- package/dist/commands/collections/get.js.map +1 -1
- package/dist/commands/collections/list.d.ts +1 -1
- package/dist/commands/collections/list.js +2 -2
- package/dist/commands/collections/list.js.map +1 -1
- package/dist/commands/collections/update.d.ts +1 -1
- package/dist/commands/collections/update.js +3 -3
- package/dist/commands/collections/update.js.map +1 -1
- package/dist/commands/customers/addresses.d.ts +5 -2
- package/dist/commands/customers/addresses.js +8 -7
- package/dist/commands/customers/addresses.js.map +1 -1
- package/dist/commands/customers/create.d.ts +1 -1
- package/dist/commands/customers/create.js +4 -5
- package/dist/commands/customers/create.js.map +1 -1
- package/dist/commands/customers/delete.d.ts +1 -1
- package/dist/commands/customers/delete.js +3 -3
- package/dist/commands/customers/delete.js.map +1 -1
- package/dist/commands/customers/get.d.ts +5 -2
- package/dist/commands/customers/get.js +9 -7
- package/dist/commands/customers/get.js.map +1 -1
- package/dist/commands/{shipping-methods/get.d.ts → customers/insights.d.ts} +2 -2
- package/dist/commands/customers/insights.js +30 -0
- package/dist/commands/customers/insights.js.map +1 -0
- package/dist/commands/customers/list.d.ts +1 -1
- package/dist/commands/customers/list.js +3 -3
- package/dist/commands/customers/list.js.map +1 -1
- package/dist/commands/customers/stats.d.ts +1 -1
- package/dist/commands/customers/stats.js +2 -2
- package/dist/commands/customers/stats.js.map +1 -1
- package/dist/commands/customers/timeline.d.ts +26 -0
- package/dist/commands/customers/timeline.js +66 -0
- package/dist/commands/customers/timeline.js.map +1 -0
- package/dist/commands/customers/update.d.ts +1 -1
- package/dist/commands/customers/update.js +4 -4
- package/dist/commands/customers/update.js.map +1 -1
- package/dist/commands/deploy.d.ts +22 -0
- package/dist/commands/deploy.js +72 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/{shipping-zones/location-data.d.ts → deployments/index.d.ts} +2 -2
- package/dist/commands/deployments/index.js +17 -0
- package/dist/commands/deployments/index.js.map +1 -0
- package/dist/commands/deployments/promote.d.ts +22 -0
- package/dist/commands/deployments/promote.js +39 -0
- package/dist/commands/deployments/promote.js.map +1 -0
- package/dist/commands/deployments/rollback.d.ts +5 -0
- package/dist/commands/deployments/rollback.js +12 -0
- package/dist/commands/deployments/rollback.js.map +1 -0
- package/dist/commands/deployments/unpublish.d.ts +18 -0
- package/dist/commands/deployments/unpublish.js +21 -0
- package/dist/commands/deployments/unpublish.js.map +1 -0
- package/dist/commands/describe.d.ts +1 -1
- package/dist/commands/env/index.d.ts +18 -0
- package/dist/commands/env/index.js +17 -0
- package/dist/commands/env/index.js.map +1 -0
- package/dist/commands/env/set.d.ts +23 -0
- package/dist/commands/env/set.js +44 -0
- package/dist/commands/env/set.js.map +1 -0
- package/dist/commands/env/unset.d.ts +21 -0
- package/dist/commands/env/unset.js +26 -0
- package/dist/commands/env/unset.js.map +1 -0
- package/dist/commands/health/check.d.ts +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +3 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/logs.d.ts +21 -0
- package/dist/commands/logs.js +23 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/orders/batch-cancel.d.ts +1 -1
- package/dist/commands/orders/batch-cancel.js +2 -2
- package/dist/commands/orders/batch-cancel.js.map +1 -1
- package/dist/commands/orders/batch-fulfill.d.ts +1 -1
- package/dist/commands/orders/batch-fulfill.js +2 -2
- package/dist/commands/orders/batch-fulfill.js.map +1 -1
- package/dist/commands/orders/batch-update.d.ts +1 -1
- package/dist/commands/orders/batch-update.js +3 -3
- package/dist/commands/orders/batch-update.js.map +1 -1
- package/dist/commands/orders/cancel.d.ts +1 -1
- package/dist/commands/orders/cancel.js +3 -3
- package/dist/commands/orders/cancel.js.map +1 -1
- package/dist/commands/orders/create.d.ts +1 -1
- package/dist/commands/orders/create.js +4 -5
- package/dist/commands/orders/create.js.map +1 -1
- package/dist/commands/orders/deliver.d.ts +1 -1
- package/dist/commands/orders/deliver.js +3 -3
- package/dist/commands/orders/deliver.js.map +1 -1
- package/dist/commands/orders/fulfill.d.ts +1 -1
- package/dist/commands/orders/fulfill.js +3 -3
- package/dist/commands/orders/fulfill.js.map +1 -1
- package/dist/commands/orders/get.d.ts +1 -1
- package/dist/commands/orders/get.js +2 -2
- package/dist/commands/orders/get.js.map +1 -1
- package/dist/commands/orders/list.d.ts +1 -1
- package/dist/commands/orders/list.js +2 -2
- package/dist/commands/orders/list.js.map +1 -1
- package/dist/commands/orders/resume.d.ts +1 -1
- package/dist/commands/orders/resume.js +3 -3
- package/dist/commands/orders/resume.js.map +1 -1
- package/dist/commands/orders/ship.d.ts +1 -1
- package/dist/commands/orders/ship.js +3 -3
- package/dist/commands/orders/ship.js.map +1 -1
- package/dist/commands/orders/stats.d.ts +1 -1
- package/dist/commands/orders/stats.js +2 -2
- package/dist/commands/orders/stats.js.map +1 -1
- package/dist/commands/orders/transitions.d.ts +1 -1
- package/dist/commands/orders/transitions.js +2 -2
- package/dist/commands/orders/transitions.js.map +1 -1
- package/dist/commands/orders/update.d.ts +1 -1
- package/dist/commands/orders/update.js +3 -3
- package/dist/commands/orders/update.js.map +1 -1
- package/dist/commands/{shipping-methods → product-tags}/create.d.ts +2 -5
- package/dist/commands/product-tags/create.js +52 -0
- package/dist/commands/product-tags/create.js.map +1 -0
- package/dist/commands/product-tags/delete.d.ts +21 -0
- package/dist/commands/product-tags/delete.js +35 -0
- package/dist/commands/product-tags/delete.js.map +1 -0
- package/dist/commands/product-tags/list.d.ts +18 -0
- package/dist/commands/product-tags/list.js +27 -0
- package/dist/commands/product-tags/list.js.map +1 -0
- package/dist/commands/product-tags/merge.d.ts +22 -0
- package/dist/commands/product-tags/merge.js +45 -0
- package/dist/commands/product-tags/merge.js.map +1 -0
- package/dist/commands/product-tags/rename.d.ts +22 -0
- package/dist/commands/product-tags/rename.js +36 -0
- package/dist/commands/product-tags/rename.js.map +1 -0
- package/dist/commands/products/all.d.ts +1 -1
- package/dist/commands/products/all.js +2 -2
- package/dist/commands/products/all.js.map +1 -1
- package/dist/commands/products/batch-create.d.ts +1 -1
- package/dist/commands/products/batch-create.js +3 -3
- package/dist/commands/products/batch-create.js.map +1 -1
- package/dist/commands/products/batch-delete.d.ts +1 -1
- package/dist/commands/products/batch-delete.js +2 -2
- package/dist/commands/products/batch-delete.js.map +1 -1
- package/dist/commands/products/batch-update.d.ts +1 -1
- package/dist/commands/products/batch-update.js +3 -3
- package/dist/commands/products/batch-update.js.map +1 -1
- package/dist/commands/products/create.d.ts +1 -1
- package/dist/commands/products/create.js +3 -4
- package/dist/commands/products/create.js.map +1 -1
- package/dist/commands/products/delete.d.ts +1 -1
- package/dist/commands/products/delete.js +3 -3
- package/dist/commands/products/delete.js.map +1 -1
- package/dist/commands/products/get.d.ts +1 -1
- package/dist/commands/products/get.js +2 -2
- package/dist/commands/products/get.js.map +1 -1
- package/dist/commands/products/list.d.ts +2 -2
- package/dist/commands/products/list.js +9 -5
- package/dist/commands/products/list.js.map +1 -1
- package/dist/commands/products/search.d.ts +2 -2
- package/dist/commands/products/search.js +11 -6
- package/dist/commands/products/search.js.map +1 -1
- package/dist/commands/products/stats.d.ts +1 -1
- package/dist/commands/products/stats.js +2 -2
- package/dist/commands/products/stats.js.map +1 -1
- package/dist/commands/products/update.d.ts +1 -1
- package/dist/commands/products/update.js +3 -3
- package/dist/commands/products/update.js.map +1 -1
- package/dist/commands/products/variant-options.d.ts +1 -1
- package/dist/commands/products/variant-options.js +12 -10
- package/dist/commands/products/variant-options.js.map +1 -1
- package/dist/commands/promotions/batch-delete.d.ts +1 -1
- package/dist/commands/promotions/batch-delete.js +2 -2
- package/dist/commands/promotions/batch-delete.js.map +1 -1
- package/dist/commands/promotions/create.d.ts +1 -1
- package/dist/commands/promotions/create.js +3 -4
- package/dist/commands/promotions/create.js.map +1 -1
- package/dist/commands/promotions/delete.d.ts +1 -1
- package/dist/commands/promotions/delete.js +3 -3
- package/dist/commands/promotions/delete.js.map +1 -1
- package/dist/commands/promotions/get-by-code.d.ts +1 -1
- package/dist/commands/promotions/get-by-code.js +2 -2
- package/dist/commands/promotions/get-by-code.js.map +1 -1
- package/dist/commands/promotions/get.d.ts +1 -1
- package/dist/commands/promotions/get.js +2 -2
- package/dist/commands/promotions/get.js.map +1 -1
- package/dist/commands/promotions/list.d.ts +1 -1
- package/dist/commands/promotions/list.js +2 -2
- package/dist/commands/promotions/list.js.map +1 -1
- package/dist/commands/promotions/stats.d.ts +1 -1
- package/dist/commands/promotions/stats.js +2 -2
- package/dist/commands/promotions/stats.js.map +1 -1
- package/dist/commands/promotions/update.d.ts +1 -1
- package/dist/commands/promotions/update.js +3 -3
- package/dist/commands/promotions/update.js.map +1 -1
- package/dist/commands/reviews/bulk-import.d.ts +1 -1
- package/dist/commands/reviews/bulk-import.js +3 -3
- package/dist/commands/reviews/bulk-import.js.map +1 -1
- package/dist/commands/reviews/bulk-moderate.d.ts +1 -1
- package/dist/commands/reviews/bulk-moderate.js +3 -3
- package/dist/commands/reviews/bulk-moderate.js.map +1 -1
- package/dist/commands/reviews/create.d.ts +1 -1
- package/dist/commands/reviews/create.js +3 -3
- package/dist/commands/reviews/create.js.map +1 -1
- package/dist/commands/reviews/delete-reply.d.ts +1 -1
- package/dist/commands/reviews/delete-reply.js +3 -3
- package/dist/commands/reviews/delete-reply.js.map +1 -1
- package/dist/commands/reviews/delete.d.ts +1 -1
- package/dist/commands/reviews/delete.js +3 -3
- package/dist/commands/reviews/delete.js.map +1 -1
- package/dist/commands/reviews/get.d.ts +1 -1
- package/dist/commands/reviews/get.js +2 -2
- package/dist/commands/reviews/get.js.map +1 -1
- package/dist/commands/reviews/list.d.ts +1 -1
- package/dist/commands/reviews/list.js +2 -2
- package/dist/commands/reviews/list.js.map +1 -1
- package/dist/commands/reviews/reply.d.ts +1 -1
- package/dist/commands/reviews/reply.js +3 -3
- package/dist/commands/reviews/reply.js.map +1 -1
- package/dist/commands/reviews/stats.d.ts +1 -1
- package/dist/commands/reviews/stats.js +2 -2
- package/dist/commands/reviews/stats.js.map +1 -1
- package/dist/commands/reviews/update-reply.d.ts +1 -1
- package/dist/commands/reviews/update-reply.js +3 -3
- package/dist/commands/reviews/update-reply.js.map +1 -1
- package/dist/commands/reviews/update.d.ts +1 -1
- package/dist/commands/reviews/update.js +3 -3
- package/dist/commands/reviews/update.js.map +1 -1
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.js +4 -4
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shipping/locations.d.ts +20 -0
- package/dist/commands/shipping/locations.js +42 -0
- package/dist/commands/shipping/locations.js.map +1 -0
- package/dist/commands/{shipping-programs → shipping-rates}/create.d.ts +14 -9
- package/dist/commands/shipping-rates/create.js +89 -0
- package/dist/commands/shipping-rates/create.js.map +1 -0
- package/dist/commands/{shipping-methods → shipping-rates}/delete.d.ts +3 -2
- package/dist/commands/shipping-rates/delete.js +32 -0
- package/dist/commands/shipping-rates/delete.js.map +1 -0
- package/dist/commands/{shipping-programs → shipping-rates}/get.d.ts +3 -2
- package/dist/commands/shipping-rates/get.js +36 -0
- package/dist/commands/shipping-rates/get.js.map +1 -0
- package/dist/commands/{shipping-programs/delete-rule.d.ts → shipping-rates/list.d.ts} +5 -12
- package/dist/commands/shipping-rates/list.js +47 -0
- package/dist/commands/shipping-rates/list.js.map +1 -0
- package/dist/commands/{shipping-programs → shipping-rates}/update.d.ts +14 -9
- package/dist/commands/shipping-rates/update.js +94 -0
- package/dist/commands/shipping-rates/update.js.map +1 -0
- package/dist/commands/shipping-zones/create.d.ts +1 -1
- package/dist/commands/shipping-zones/create.js +4 -4
- package/dist/commands/shipping-zones/create.js.map +1 -1
- package/dist/commands/shipping-zones/delete.d.ts +1 -1
- package/dist/commands/shipping-zones/delete.js +4 -4
- package/dist/commands/shipping-zones/delete.js.map +1 -1
- package/dist/commands/shipping-zones/get.d.ts +1 -1
- package/dist/commands/shipping-zones/get.js +3 -3
- package/dist/commands/shipping-zones/get.js.map +1 -1
- package/dist/commands/shipping-zones/list.d.ts +2 -2
- package/dist/commands/shipping-zones/list.js +6 -6
- package/dist/commands/shipping-zones/list.js.map +1 -1
- package/dist/commands/shipping-zones/update.d.ts +1 -1
- package/dist/commands/shipping-zones/update.js +4 -4
- package/dist/commands/shipping-zones/update.js.map +1 -1
- package/dist/commands/skills/install.d.ts +20 -0
- package/dist/commands/skills/install.js +26 -0
- package/dist/commands/skills/install.js.map +1 -0
- package/dist/commands/store-menus/create.d.ts +1 -1
- package/dist/commands/store-menus/create.js +3 -4
- package/dist/commands/store-menus/create.js.map +1 -1
- package/dist/commands/store-menus/delete.d.ts +1 -1
- package/dist/commands/store-menus/delete.js +3 -3
- package/dist/commands/store-menus/delete.js.map +1 -1
- package/dist/commands/store-menus/get-by-ref.d.ts +1 -1
- package/dist/commands/store-menus/get-by-ref.js +2 -2
- package/dist/commands/store-menus/get-by-ref.js.map +1 -1
- package/dist/commands/store-menus/get.d.ts +1 -1
- package/dist/commands/store-menus/get.js +2 -2
- package/dist/commands/store-menus/get.js.map +1 -1
- package/dist/commands/store-menus/list.d.ts +1 -1
- package/dist/commands/store-menus/list.js +2 -2
- package/dist/commands/store-menus/list.js.map +1 -1
- package/dist/commands/store-menus/update.d.ts +1 -1
- package/dist/commands/store-menus/update.js +3 -3
- package/dist/commands/store-menus/update.js.map +1 -1
- package/dist/commands/store-pages/all.d.ts +1 -1
- package/dist/commands/store-pages/all.js +2 -2
- package/dist/commands/store-pages/all.js.map +1 -1
- package/dist/commands/store-pages/create.d.ts +1 -1
- package/dist/commands/store-pages/create.js +3 -4
- package/dist/commands/store-pages/create.js.map +1 -1
- package/dist/commands/store-pages/delete.d.ts +1 -1
- package/dist/commands/store-pages/delete.js +3 -3
- package/dist/commands/store-pages/delete.js.map +1 -1
- package/dist/commands/store-pages/duplicate.d.ts +1 -1
- package/dist/commands/store-pages/duplicate.js +3 -3
- package/dist/commands/store-pages/duplicate.js.map +1 -1
- package/dist/commands/store-pages/get.d.ts +1 -1
- package/dist/commands/store-pages/get.js +2 -2
- package/dist/commands/store-pages/get.js.map +1 -1
- package/dist/commands/store-pages/list.d.ts +1 -1
- package/dist/commands/store-pages/list.js +2 -2
- package/dist/commands/store-pages/list.js.map +1 -1
- package/dist/commands/store-pages/stats.d.ts +1 -1
- package/dist/commands/store-pages/stats.js +2 -2
- package/dist/commands/store-pages/stats.js.map +1 -1
- package/dist/commands/store-pages/update.d.ts +1 -1
- package/dist/commands/store-pages/update.js +3 -3
- package/dist/commands/store-pages/update.js.map +1 -1
- package/dist/commands/store-settings/get.d.ts +1 -1
- package/dist/commands/store-settings/get.js +2 -2
- package/dist/commands/store-settings/get.js.map +1 -1
- package/dist/commands/store-settings/update.d.ts +1 -1
- package/dist/commands/store-settings/update.js +3 -3
- package/dist/commands/store-settings/update.js.map +1 -1
- package/dist/commands/storefront/init.d.ts +43 -0
- package/dist/commands/storefront/init.js +137 -0
- package/dist/commands/storefront/init.js.map +1 -0
- package/dist/commands/storefront/key.d.ts +20 -0
- package/dist/commands/storefront/key.js +42 -0
- package/dist/commands/storefront/key.js.map +1 -0
- package/dist/commands/storefront/skill.d.ts +20 -0
- package/dist/commands/storefront/skill.js +54 -0
- package/dist/commands/storefront/skill.js.map +1 -0
- package/dist/commands/stores/current.d.ts +1 -1
- package/dist/commands/stores/current.js +5 -5
- package/dist/commands/stores/current.js.map +1 -1
- package/dist/commands/stores/info.d.ts +2 -5
- package/dist/commands/stores/info.js +4 -4
- package/dist/commands/stores/info.js.map +1 -1
- package/dist/commands/stores/list.d.ts +1 -1
- package/dist/commands/stores/switch.d.ts +2 -5
- package/dist/commands/stores/switch.js +8 -8
- package/dist/commands/stores/switch.js.map +1 -1
- package/dist/lib/api-client.d.ts +5 -3
- package/dist/lib/api-client.js +20 -6
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/attribute-errors.d.ts +12 -0
- package/dist/lib/attribute-errors.js +20 -0
- package/dist/lib/attribute-errors.js.map +1 -0
- package/dist/lib/codex-skill.d.ts +9 -0
- package/dist/lib/codex-skill.js +70 -0
- package/dist/lib/codex-skill.js.map +1 -0
- package/dist/lib/config.d.ts +4 -4
- package/dist/lib/config.js +8 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deployments.d.ts +59 -0
- package/dist/lib/deployments.js +212 -0
- package/dist/lib/deployments.js.map +1 -0
- package/dist/lib/email-login.d.ts +28 -0
- package/dist/lib/email-login.js +69 -0
- package/dist/lib/email-login.js.map +1 -0
- package/dist/lib/env-vars.d.ts +16 -0
- package/dist/lib/env-vars.js +33 -0
- package/dist/lib/env-vars.js.map +1 -0
- package/dist/lib/errors.d.ts +3 -1
- package/dist/lib/errors.js +2 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/github-flow.d.ts +7 -0
- package/dist/lib/github-flow.js +34 -0
- package/dist/lib/github-flow.js.map +1 -0
- package/dist/lib/output.d.ts +6 -6
- package/dist/lib/output.js +10 -10
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/pack-prebuilt.d.ts +12 -0
- package/dist/lib/pack-prebuilt.js +138 -0
- package/dist/lib/pack-prebuilt.js.map +1 -0
- package/dist/lib/pack-source.d.ts +10 -0
- package/dist/lib/pack-source.js +119 -0
- package/dist/lib/pack-source.js.map +1 -0
- package/dist/lib/project-setup.d.ts +15 -0
- package/dist/lib/project-setup.js +65 -0
- package/dist/lib/project-setup.js.map +1 -0
- package/dist/lib/publishable-key.d.ts +18 -0
- package/dist/lib/publishable-key.js +10 -0
- package/dist/lib/publishable-key.js.map +1 -0
- package/dist/lib/skill-update.d.ts +11 -0
- package/dist/lib/skill-update.js +74 -0
- package/dist/lib/skill-update.js.map +1 -0
- package/dist/lib/sse.d.ts +5 -0
- package/dist/lib/sse.js +36 -0
- package/dist/lib/sse.js.map +1 -0
- package/dist/lib/template-download.d.ts +9 -0
- package/dist/lib/template-download.js +15 -0
- package/dist/lib/template-download.js.map +1 -0
- package/dist/lib/template-scaffold.d.ts +18 -0
- package/dist/lib/template-scaffold.js +91 -0
- package/dist/lib/template-scaffold.js.map +1 -0
- package/dist/lib/validators.js +48 -65
- package/dist/lib/validators.js.map +1 -1
- package/oclif.manifest.json +7321 -5958
- package/package.json +23 -12
- package/dist/commands/analytics/summary.js.map +0 -1
- package/dist/commands/analytics/time-series.js.map +0 -1
- package/dist/commands/blog-posts/generate.d.ts +0 -22
- package/dist/commands/blog-posts/generate.js +0 -42
- package/dist/commands/blog-posts/generate.js.map +0 -1
- package/dist/commands/blog-posts/search.d.ts +0 -27
- package/dist/commands/blog-posts/search.js +0 -55
- package/dist/commands/blog-posts/search.js.map +0 -1
- package/dist/commands/shipping-methods/create.js +0 -63
- package/dist/commands/shipping-methods/create.js.map +0 -1
- package/dist/commands/shipping-methods/delete.js +0 -30
- package/dist/commands/shipping-methods/delete.js.map +0 -1
- package/dist/commands/shipping-methods/get.js +0 -31
- package/dist/commands/shipping-methods/get.js.map +0 -1
- package/dist/commands/shipping-methods/list.d.ts +0 -26
- package/dist/commands/shipping-methods/list.js +0 -63
- package/dist/commands/shipping-methods/list.js.map +0 -1
- package/dist/commands/shipping-methods/update.js +0 -69
- package/dist/commands/shipping-methods/update.js.map +0 -1
- package/dist/commands/shipping-programs/calculate.js +0 -72
- package/dist/commands/shipping-programs/calculate.js.map +0 -1
- package/dist/commands/shipping-programs/create-rule.d.ts +0 -40
- package/dist/commands/shipping-programs/create-rule.js +0 -110
- package/dist/commands/shipping-programs/create-rule.js.map +0 -1
- package/dist/commands/shipping-programs/create.js +0 -75
- package/dist/commands/shipping-programs/create.js.map +0 -1
- package/dist/commands/shipping-programs/delete-rule.js +0 -42
- package/dist/commands/shipping-programs/delete-rule.js.map +0 -1
- package/dist/commands/shipping-programs/delete.js +0 -30
- package/dist/commands/shipping-programs/delete.js.map +0 -1
- package/dist/commands/shipping-programs/get-rule.js +0 -38
- package/dist/commands/shipping-programs/get-rule.js.map +0 -1
- package/dist/commands/shipping-programs/get.js +0 -32
- package/dist/commands/shipping-programs/get.js.map +0 -1
- package/dist/commands/shipping-programs/list-rules.d.ts +0 -34
- package/dist/commands/shipping-programs/list-rules.js +0 -86
- package/dist/commands/shipping-programs/list-rules.js.map +0 -1
- package/dist/commands/shipping-programs/list.d.ts +0 -30
- package/dist/commands/shipping-programs/list.js +0 -74
- package/dist/commands/shipping-programs/list.js.map +0 -1
- package/dist/commands/shipping-programs/update-rule.d.ts +0 -44
- package/dist/commands/shipping-programs/update-rule.js +0 -120
- package/dist/commands/shipping-programs/update-rule.js.map +0 -1
- package/dist/commands/shipping-programs/update.js +0 -81
- package/dist/commands/shipping-programs/update.js.map +0 -1
- package/dist/commands/shipping-zones/location-data.js +0 -25
- 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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"}
|
package/dist/lib/sse.js
ADDED
|
@@ -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,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;
|