@vendure-platform/create 0.5.0 → 0.5.1
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/CHANGELOG.md +4 -0
- package/README.md +39 -39
- package/dist/add-to-existing.js +1 -1
- package/dist/assets/demo-data/initial-data.json +663 -663
- package/dist/assets/storefront/components.json +20 -20
- package/dist/assets/storefront/eslint.config.mjs +10 -10
- package/dist/assets/storefront/graphql.config.yml +1 -1
- package/dist/assets/storefront/next.config.ts +5 -4
- package/dist/assets/storefront/package.json +1 -1
- package/dist/assets/storefront/postcss.config.mjs +1 -1
- package/dist/assets/storefront/src/app/[locale]/(catalog)/catalog/page.tsx +17 -21
- package/dist/assets/storefront/src/app/[locale]/(catalog)/collection/[slug]/page.tsx +64 -42
- package/dist/assets/storefront/src/app/[locale]/(catalog)/layout.tsx +1 -5
- package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/actions.ts +69 -65
- package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/page.tsx +64 -38
- package/dist/assets/storefront/src/app/[locale]/(catalog)/search/page.tsx +24 -27
- package/dist/assets/storefront/src/app/[locale]/(catalog)/search/search-results.tsx +11 -9
- package/dist/assets/storefront/src/app/[locale]/(catalog)/search/search-term.tsx +4 -4
- package/dist/assets/storefront/src/app/[locale]/(scenario)/[...path]/page.tsx +1 -1
- package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/accept-invitation-client.tsx +8 -13
- package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/actions.ts +11 -14
- package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/page.tsx +30 -33
- package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/sign-out-and-retry.tsx +6 -6
- package/dist/assets/storefront/src/app/[locale]/account/addresses/actions.ts +30 -45
- package/dist/assets/storefront/src/app/[locale]/account/addresses/address-form.tsx +166 -159
- package/dist/assets/storefront/src/app/[locale]/account/addresses/addresses-client.tsx +35 -26
- package/dist/assets/storefront/src/app/[locale]/account/addresses/loading.tsx +1 -3
- package/dist/assets/storefront/src/app/[locale]/account/addresses/page.tsx +16 -18
- package/dist/assets/storefront/src/app/[locale]/account/approvals/actions.ts +5 -8
- package/dist/assets/storefront/src/app/[locale]/account/approvals/page.tsx +77 -69
- package/dist/assets/storefront/src/app/[locale]/account/company/actions.ts +10 -11
- package/dist/assets/storefront/src/app/[locale]/account/company/addresses/actions.ts +6 -15
- package/dist/assets/storefront/src/app/[locale]/account/company/addresses/address-form.tsx +57 -49
- package/dist/assets/storefront/src/app/[locale]/account/company/addresses/addresses-client.tsx +23 -25
- package/dist/assets/storefront/src/app/[locale]/account/company/addresses/page.tsx +30 -30
- package/dist/assets/storefront/src/app/[locale]/account/company/business-units/actions.ts +20 -29
- package/dist/assets/storefront/src/app/[locale]/account/company/business-units/business-unit-form.tsx +32 -37
- package/dist/assets/storefront/src/app/[locale]/account/company/business-units/business-units-client.tsx +32 -25
- package/dist/assets/storefront/src/app/[locale]/account/company/business-units/page.tsx +24 -24
- package/dist/assets/storefront/src/app/[locale]/account/company/business-units/types.ts +7 -4
- package/dist/assets/storefront/src/app/[locale]/account/company/edit-company-form.tsx +11 -21
- package/dist/assets/storefront/src/app/[locale]/account/company/page.tsx +23 -28
- package/dist/assets/storefront/src/app/[locale]/account/company/payment-methods/page.tsx +24 -24
- package/dist/assets/storefront/src/app/[locale]/account/company/payment-methods/payment-methods-client.tsx +5 -7
- package/dist/assets/storefront/src/app/[locale]/account/company/roles/page.tsx +22 -25
- package/dist/assets/storefront/src/app/[locale]/account/company/roles/roles-client.tsx +11 -26
- package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/actions.ts +6 -10
- package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/page.tsx +18 -16
- package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/tax-ids-client.tsx +74 -67
- package/dist/assets/storefront/src/app/[locale]/account/company/users/actions.ts +16 -25
- package/dist/assets/storefront/src/app/[locale]/account/company/users/edit-user-form.tsx +27 -25
- package/dist/assets/storefront/src/app/[locale]/account/company/users/invite-user-form.tsx +27 -19
- package/dist/assets/storefront/src/app/[locale]/account/company/users/page.tsx +32 -29
- package/dist/assets/storefront/src/app/[locale]/account/company/users/users-client.tsx +35 -38
- package/dist/assets/storefront/src/app/[locale]/account/error.tsx +1 -3
- package/dist/assets/storefront/src/app/[locale]/account/layout.tsx +16 -22
- package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/page.tsx +151 -103
- package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/reorder-actions.ts +6 -7
- package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/reorder-dialog.tsx +22 -48
- package/dist/assets/storefront/src/app/[locale]/account/orders/loading.tsx +8 -8
- package/dist/assets/storefront/src/app/[locale]/account/orders/page.tsx +101 -61
- package/dist/assets/storefront/src/app/[locale]/account/profile/actions.ts +32 -23
- package/dist/assets/storefront/src/app/[locale]/account/profile/change-password-form.tsx +6 -16
- package/dist/assets/storefront/src/app/[locale]/account/profile/edit-email-form.tsx +7 -17
- package/dist/assets/storefront/src/app/[locale]/account/profile/edit-profile-form.tsx +6 -16
- package/dist/assets/storefront/src/app/[locale]/account/profile/loading.tsx +12 -18
- package/dist/assets/storefront/src/app/[locale]/account/profile/page.tsx +15 -15
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/file-upload-tab.tsx +2 -6
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/manual-entry-tab.tsx +18 -15
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/page.tsx +3 -6
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/preview-table.tsx +10 -2
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/save-to-list-dialog.tsx +24 -26
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/sku-autocomplete.tsx +19 -10
- package/dist/assets/storefront/src/app/[locale]/account/quick-order/text-input-tab.tsx +3 -8
- package/dist/assets/storefront/src/app/[locale]/account/quotes/[id]/page.tsx +86 -59
- package/dist/assets/storefront/src/app/[locale]/account/quotes/actions.ts +38 -45
- package/dist/assets/storefront/src/app/[locale]/account/quotes/new/new-quote-form.tsx +3 -5
- package/dist/assets/storefront/src/app/[locale]/account/quotes/new/page.tsx +6 -6
- package/dist/assets/storefront/src/app/[locale]/account/quotes/page.tsx +92 -59
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/add-item-search.tsx +11 -9
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/add-member-form.tsx +31 -15
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/members-panel.tsx +52 -33
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/page.tsx +22 -14
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/[id]/rename-dialog.tsx +34 -13
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/actions.ts +117 -72
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/new/new-shared-cart-form.tsx +21 -14
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/new/page.tsx +10 -10
- package/dist/assets/storefront/src/app/[locale]/account/shared-carts/page.tsx +54 -41
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/[id]/page.tsx +22 -8
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/[id]/shopping-list-detail-client.tsx +62 -49
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/actions.ts +9 -4
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/create-shopping-list-form.tsx +5 -11
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/loading.tsx +1 -1
- package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/page.tsx +32 -42
- package/dist/assets/storefront/src/app/[locale]/account/store-credits/actions.ts +8 -8
- package/dist/assets/storefront/src/app/[locale]/account/store-credits/claim-form.tsx +6 -10
- package/dist/assets/storefront/src/app/[locale]/account/store-credits/page.tsx +76 -55
- package/dist/assets/storefront/src/app/[locale]/account/store-credits/reveal-code.tsx +10 -6
- package/dist/assets/storefront/src/app/[locale]/account/verify-email/page.tsx +32 -39
- package/dist/assets/storefront/src/app/[locale]/cart/actions.ts +29 -23
- package/dist/assets/storefront/src/app/[locale]/cart/cart-items.tsx +111 -40
- package/dist/assets/storefront/src/app/[locale]/cart/cart-line-actions.tsx +9 -9
- package/dist/assets/storefront/src/app/[locale]/cart/cart-quantity-control.tsx +61 -48
- package/dist/assets/storefront/src/app/[locale]/cart/cart-remove-button.tsx +15 -9
- package/dist/assets/storefront/src/app/[locale]/cart/cart.tsx +38 -41
- package/dist/assets/storefront/src/app/[locale]/cart/code-input.tsx +8 -8
- package/dist/assets/storefront/src/app/[locale]/cart/order-summary.tsx +50 -32
- package/dist/assets/storefront/src/app/[locale]/cart/page.tsx +11 -11
- package/dist/assets/storefront/src/app/[locale]/cart/promotion-code.tsx +48 -42
- package/dist/assets/storefront/src/app/[locale]/cart/reapproval-confirm.tsx +22 -20
- package/dist/assets/storefront/src/app/[locale]/cart/request-quote-button.tsx +7 -16
- package/dist/assets/storefront/src/app/[locale]/checkout/actions.ts +39 -65
- package/dist/assets/storefront/src/app/[locale]/checkout/cancel-quote-checkout-button.tsx +5 -5
- package/dist/assets/storefront/src/app/[locale]/checkout/checkout-flow.tsx +202 -202
- package/dist/assets/storefront/src/app/[locale]/checkout/checkout-provider.tsx +142 -142
- package/dist/assets/storefront/src/app/[locale]/checkout/order-summary.tsx +158 -139
- package/dist/assets/storefront/src/app/[locale]/checkout/page.tsx +56 -47
- package/dist/assets/storefront/src/app/[locale]/checkout/steps/delivery-step.tsx +86 -88
- package/dist/assets/storefront/src/app/[locale]/checkout/steps/payment-step.tsx +90 -91
- package/dist/assets/storefront/src/app/[locale]/checkout/steps/review-step.tsx +166 -161
- package/dist/assets/storefront/src/app/[locale]/checkout/steps/shipping-address-step.tsx +573 -494
- package/dist/assets/storefront/src/app/[locale]/error.tsx +3 -5
- package/dist/assets/storefront/src/app/[locale]/forgot-password/actions.ts +10 -7
- package/dist/assets/storefront/src/app/[locale]/forgot-password/forgot-password-form.tsx +10 -25
- package/dist/assets/storefront/src/app/[locale]/forgot-password/page.tsx +5 -5
- package/dist/assets/storefront/src/app/[locale]/globals.css +48 -48
- package/dist/assets/storefront/src/app/[locale]/layout.tsx +53 -47
- package/dist/assets/storefront/src/app/[locale]/not-found.tsx +3 -5
- package/dist/assets/storefront/src/app/[locale]/order-confirmation/[code]/order-confirmation.tsx +71 -44
- package/dist/assets/storefront/src/app/[locale]/order-confirmation/[code]/page.tsx +7 -5
- package/dist/assets/storefront/src/app/[locale]/page.tsx +33 -35
- package/dist/assets/storefront/src/app/[locale]/register/actions.ts +7 -7
- package/dist/assets/storefront/src/app/[locale]/register/page.tsx +22 -16
- package/dist/assets/storefront/src/app/[locale]/register/registration-form.tsx +22 -34
- package/dist/assets/storefront/src/app/[locale]/register-company/actions.ts +15 -19
- package/dist/assets/storefront/src/app/[locale]/register-company/page.tsx +17 -15
- package/dist/assets/storefront/src/app/[locale]/register-company/registration-form.tsx +9 -15
- package/dist/assets/storefront/src/app/[locale]/reset-password/actions.ts +7 -8
- package/dist/assets/storefront/src/app/[locale]/reset-password/page.tsx +18 -12
- package/dist/assets/storefront/src/app/[locale]/reset-password/reset-password-form.tsx +8 -16
- package/dist/assets/storefront/src/app/[locale]/shopping-list/[code]/add-to-cart-button.tsx +10 -4
- package/dist/assets/storefront/src/app/[locale]/shopping-list/[code]/page.tsx +62 -30
- package/dist/assets/storefront/src/app/[locale]/sign-in/actions.ts +14 -16
- package/dist/assets/storefront/src/app/[locale]/sign-in/login-form.tsx +17 -30
- package/dist/assets/storefront/src/app/[locale]/sign-in/page.tsx +35 -30
- package/dist/assets/storefront/src/app/[locale]/verify/actions.ts +8 -8
- package/dist/assets/storefront/src/app/[locale]/verify/page.tsx +18 -14
- package/dist/assets/storefront/src/app/[locale]/verify/verify-content.tsx +25 -27
- package/dist/assets/storefront/src/app/[locale]/verify-pending/page.tsx +23 -23
- package/dist/assets/storefront/src/app/api/clear-company-context/route.ts +6 -3
- package/dist/assets/storefront/src/app/api/revalidate/route.ts +19 -28
- package/dist/assets/storefront/src/app/api/search-analytics/route.ts +1 -1
- package/dist/assets/storefront/src/components/commerce/account-nav-items.ts +43 -18
- package/dist/assets/storefront/src/components/commerce/account-sidebar.tsx +30 -22
- package/dist/assets/storefront/src/components/commerce/active-filters.tsx +1 -1
- package/dist/assets/storefront/src/components/commerce/add-to-shared-cart.tsx +49 -27
- package/dist/assets/storefront/src/components/commerce/approval-decision-form.tsx +9 -13
- package/dist/assets/storefront/src/components/commerce/approval-status-badge.tsx +23 -15
- package/dist/assets/storefront/src/components/commerce/business-unit-switcher.tsx +11 -11
- package/dist/assets/storefront/src/components/commerce/catalog-search-bar.tsx +2 -2
- package/dist/assets/storefront/src/components/commerce/category-product-section.tsx +28 -16
- package/dist/assets/storefront/src/components/commerce/category-sidebar.tsx +31 -18
- package/dist/assets/storefront/src/components/commerce/collection-hero-banner.tsx +2 -4
- package/dist/assets/storefront/src/components/commerce/company-state-badge.tsx +10 -16
- package/dist/assets/storefront/src/components/commerce/company-switcher.tsx +12 -12
- package/dist/assets/storefront/src/components/commerce/configurator-form.tsx +188 -79
- package/dist/assets/storefront/src/components/commerce/facet-filters.tsx +29 -49
- package/dist/assets/storefront/src/components/commerce/gift-card-pdp.tsx +4 -4
- package/dist/assets/storefront/src/components/commerce/gift-card-product-info.tsx +20 -30
- package/dist/assets/storefront/src/components/commerce/instant-search-dropdown.tsx +258 -227
- package/dist/assets/storefront/src/components/commerce/order-status-badge.tsx +27 -19
- package/dist/assets/storefront/src/components/commerce/packaging-unit-selector.tsx +27 -26
- package/dist/assets/storefront/src/components/commerce/permission-gate.tsx +4 -4
- package/dist/assets/storefront/src/components/commerce/price-range-filter.tsx +5 -5
- package/dist/assets/storefront/src/components/commerce/price-tiers.tsx +38 -21
- package/dist/assets/storefront/src/components/commerce/price.tsx +3 -3
- package/dist/assets/storefront/src/components/commerce/product-card-list.tsx +35 -14
- package/dist/assets/storefront/src/components/commerce/product-card.tsx +31 -16
- package/dist/assets/storefront/src/components/commerce/product-carousel.tsx +20 -12
- package/dist/assets/storefront/src/components/commerce/product-grid.tsx +14 -13
- package/dist/assets/storefront/src/components/commerce/product-image-carousel.tsx +10 -8
- package/dist/assets/storefront/src/components/commerce/product-info.tsx +118 -74
- package/dist/assets/storefront/src/components/commerce/product-list-expansion.tsx +102 -74
- package/dist/assets/storefront/src/components/commerce/product-list-view.tsx +1 -1
- package/dist/assets/storefront/src/components/commerce/product-sidebar.tsx +36 -11
- package/dist/assets/storefront/src/components/commerce/product-view-switcher.tsx +33 -21
- package/dist/assets/storefront/src/components/commerce/quote-action-buttons.tsx +54 -36
- package/dist/assets/storefront/src/components/commerce/quote-activity-timeline.tsx +126 -50
- package/dist/assets/storefront/src/components/commerce/quote-comment-form.tsx +9 -13
- package/dist/assets/storefront/src/components/commerce/quote-csv-export-button.tsx +6 -6
- package/dist/assets/storefront/src/components/commerce/quote-product-search.tsx +22 -18
- package/dist/assets/storefront/src/components/commerce/quote-request-form.tsx +28 -27
- package/dist/assets/storefront/src/components/commerce/quote-status-badge.tsx +26 -18
- package/dist/assets/storefront/src/components/commerce/quote-validity-indicator.tsx +7 -7
- package/dist/assets/storefront/src/components/commerce/quote-version-comparison.tsx +50 -30
- package/dist/assets/storefront/src/components/commerce/related-products.tsx +37 -28
- package/dist/assets/storefront/src/components/commerce/shared-cart-status-badge.tsx +12 -8
- package/dist/assets/storefront/src/components/commerce/shop-by-category.tsx +8 -7
- package/dist/assets/storefront/src/components/commerce/shopping-list-toggle.tsx +14 -20
- package/dist/assets/storefront/src/components/commerce/sort-dropdown.tsx +9 -16
- package/dist/assets/storefront/src/components/commerce/store-credit-summary.tsx +30 -32
- package/dist/assets/storefront/src/components/commerce/subcollection-tiles.tsx +11 -13
- package/dist/assets/storefront/src/components/layout/auth-page-shell.tsx +2 -2
- package/dist/assets/storefront/src/components/layout/draft-mode-indicator.tsx +2 -7
- package/dist/assets/storefront/src/components/layout/draft-mode-link.tsx +4 -2
- package/dist/assets/storefront/src/components/layout/footer.tsx +70 -28
- package/dist/assets/storefront/src/components/layout/navbar/actions.ts +9 -12
- package/dist/assets/storefront/src/components/layout/navbar/cart-icon.tsx +9 -9
- package/dist/assets/storefront/src/components/layout/navbar/channel-picker-wrapper.tsx +4 -9
- package/dist/assets/storefront/src/components/layout/navbar/channel-picker.tsx +13 -8
- package/dist/assets/storefront/src/components/layout/navbar/currency-picker-wrapper.tsx +4 -4
- package/dist/assets/storefront/src/components/layout/navbar/currency-picker.tsx +11 -6
- package/dist/assets/storefront/src/components/layout/navbar/language-picker.tsx +7 -7
- package/dist/assets/storefront/src/components/layout/navbar/login-button.tsx +24 -21
- package/dist/assets/storefront/src/components/layout/navbar/mobile-nav.tsx +8 -8
- package/dist/assets/storefront/src/components/layout/navbar/nav-menu-items.tsx +4 -6
- package/dist/assets/storefront/src/components/layout/navbar/navbar-cart.tsx +1 -1
- package/dist/assets/storefront/src/components/layout/navbar/navbar-collections.tsx +41 -42
- package/dist/assets/storefront/src/components/layout/navbar/navbar-link.tsx +7 -10
- package/dist/assets/storefront/src/components/layout/navbar/navbar-user.tsx +18 -23
- package/dist/assets/storefront/src/components/layout/navbar/theme-switcher.tsx +9 -9
- package/dist/assets/storefront/src/components/layout/navbar.tsx +36 -31
- package/dist/assets/storefront/src/components/layout/search-input.tsx +35 -32
- package/dist/assets/storefront/src/components/providers/awaiting-approval-banner.tsx +12 -10
- package/dist/assets/storefront/src/components/providers/cart-count-server.tsx +14 -12
- package/dist/assets/storefront/src/components/providers/company-context-guard.tsx +4 -4
- package/dist/assets/storefront/src/components/providers/company-permissions-server.tsx +2 -6
- package/dist/assets/storefront/src/components/providers/theme-provider.tsx +3 -3
- package/dist/assets/storefront/src/components/shared/breadcrumbs.tsx +4 -1
- package/dist/assets/storefront/src/components/shared/country-select.tsx +63 -67
- package/dist/assets/storefront/src/components/shared/pagination.tsx +15 -28
- package/dist/assets/storefront/src/components/shared/prefetch-link.tsx +1 -1
- package/dist/assets/storefront/src/components/shared/skeletons/search-input-skeleton.tsx +1 -3
- package/dist/assets/storefront/src/components/ui/accordion.tsx +46 -51
- package/dist/assets/storefront/src/components/ui/alert-dialog.tsx +94 -121
- package/dist/assets/storefront/src/components/ui/alert.tsx +48 -54
- package/dist/assets/storefront/src/components/ui/aspect-ratio.tsx +5 -7
- package/dist/assets/storefront/src/components/ui/avatar.tsx +29 -44
- package/dist/assets/storefront/src/components/ui/badge.tsx +28 -37
- package/dist/assets/storefront/src/components/ui/breadcrumb.tsx +82 -89
- package/dist/assets/storefront/src/components/ui/button.tsx +43 -49
- package/dist/assets/storefront/src/components/ui/calendar.tsx +157 -198
- package/dist/assets/storefront/src/components/ui/card.tsx +53 -76
- package/dist/assets/storefront/src/components/ui/carousel.tsx +194 -212
- package/dist/assets/storefront/src/components/ui/chart.tsx +274 -317
- package/dist/assets/storefront/src/components/ui/checkbox.tsx +24 -27
- package/dist/assets/storefront/src/components/ui/collapsible.tsx +9 -21
- package/dist/assets/storefront/src/components/ui/command.tsx +114 -159
- package/dist/assets/storefront/src/components/ui/context-menu.tsx +167 -199
- package/dist/assets/storefront/src/components/ui/dialog.tsx +97 -114
- package/dist/assets/storefront/src/components/ui/drawer.tsx +93 -107
- package/dist/assets/storefront/src/components/ui/dropdown-menu.tsx +171 -206
- package/dist/assets/storefront/src/components/ui/empty-state.tsx +5 -5
- package/dist/assets/storefront/src/components/ui/field.tsx +196 -208
- package/dist/assets/storefront/src/components/ui/form.tsx +115 -139
- package/dist/assets/storefront/src/components/ui/hover-card.tsx +27 -33
- package/dist/assets/storefront/src/components/ui/input-otp.tsx +50 -59
- package/dist/assets/storefront/src/components/ui/input.tsx +17 -17
- package/dist/assets/storefront/src/components/ui/kbd-shortcut.tsx +3 -1
- package/dist/assets/storefront/src/components/ui/label.tsx +16 -19
- package/dist/assets/storefront/src/components/ui/menubar.tsx +193 -223
- package/dist/assets/storefront/src/components/ui/navigation-menu.tsx +123 -130
- package/dist/assets/storefront/src/components/ui/pagination.tsx +87 -108
- package/dist/assets/storefront/src/components/ui/popover.tsx +29 -35
- package/dist/assets/storefront/src/components/ui/progress.tsx +19 -26
- package/dist/assets/storefront/src/components/ui/radio-group.tsx +32 -38
- package/dist/assets/storefront/src/components/ui/resizable.tsx +37 -42
- package/dist/assets/storefront/src/components/ui/scroll-area.tsx +41 -47
- package/dist/assets/storefront/src/components/ui/select.tsx +130 -152
- package/dist/assets/storefront/src/components/ui/separator.tsx +21 -21
- package/dist/assets/storefront/src/components/ui/sheet.tsx +90 -111
- package/dist/assets/storefront/src/components/ui/sidebar.tsx +611 -649
- package/dist/assets/storefront/src/components/ui/skeleton.tsx +10 -10
- package/dist/assets/storefront/src/components/ui/slider.tsx +50 -55
- package/dist/assets/storefront/src/components/ui/sonner.tsx +20 -20
- package/dist/assets/storefront/src/components/ui/switch.tsx +23 -26
- package/dist/assets/storefront/src/components/ui/table.tsx +65 -97
- package/dist/assets/storefront/src/components/ui/tabs.tsx +39 -55
- package/dist/assets/storefront/src/components/ui/textarea.tsx +14 -14
- package/dist/assets/storefront/src/components/ui/toggle-group.tsx +56 -62
- package/dist/assets/storefront/src/components/ui/toggle.tsx +37 -38
- package/dist/assets/storefront/src/components/ui/tooltip.tsx +38 -46
- package/dist/assets/storefront/src/config/scenario-meta.ts +2 -2
- package/dist/assets/storefront/src/config/scenario.ts +14 -16
- package/dist/assets/storefront/src/contexts/auth-context.tsx +5 -6
- package/dist/assets/storefront/src/graphql.ts +5 -5
- package/dist/assets/storefront/src/hooks/use-mobile.ts +13 -13
- package/dist/assets/storefront/src/i18n/locale-utils.ts +3 -3
- package/dist/assets/storefront/src/i18n/navigation.ts +4 -4
- package/dist/assets/storefront/src/i18n/request.ts +4 -4
- package/dist/assets/storefront/src/i18n/routing.ts +5 -5
- package/dist/assets/storefront/src/i18n/server.ts +3 -3
- package/dist/assets/storefront/src/lib/actions/switch-channel.ts +9 -9
- package/dist/assets/storefront/src/lib/actions/switch-currency.ts +7 -7
- package/dist/assets/storefront/src/lib/auth.ts +1 -1
- package/dist/assets/storefront/src/lib/backend-health.ts +3 -3
- package/dist/assets/storefront/src/lib/cart-count-context.tsx +10 -4
- package/dist/assets/storefront/src/lib/cart-guard-utils.ts +2 -1
- package/dist/assets/storefront/src/lib/cart-guard.ts +7 -6
- package/dist/assets/storefront/src/lib/channel-server.ts +4 -4
- package/dist/assets/storefront/src/lib/company-context.ts +1 -1
- package/dist/assets/storefront/src/lib/company-permissions-context.tsx +1 -5
- package/dist/assets/storefront/src/lib/currency-server.ts +4 -4
- package/dist/assets/storefront/src/lib/format.ts +16 -7
- package/dist/assets/storefront/src/lib/metadata.ts +39 -44
- package/dist/assets/storefront/src/lib/quantity.ts +2 -4
- package/dist/assets/storefront/src/lib/search-bar-context.tsx +7 -4
- package/dist/assets/storefront/src/lib/use-recent-searches.ts +8 -6
- package/dist/assets/storefront/src/lib/utils.ts +3 -3
- package/dist/assets/storefront/src/lib/vendure/actions.ts +18 -16
- package/dist/assets/storefront/src/lib/vendure/api.ts +36 -23
- package/dist/assets/storefront/src/lib/vendure/approval-utils.ts +9 -8
- package/dist/assets/storefront/src/lib/vendure/cached.ts +20 -15
- package/dist/assets/storefront/src/lib/vendure/queries.ts +15 -5
- package/dist/assets/storefront/src/middleware.ts +1 -1
- package/dist/assets/storefront/src/scenarios/customer/hero.tsx +2 -2
- package/dist/assets/storefront/src/scenarios/customer/meta.ts +1 -1
- package/dist/bin/run.js +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -1
- package/dist/scaffold-storefront-only.js +1 -1
- package/dist/scaffolder.js +1 -1
- package/dist/template-renderer.js +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {cacheLife, cacheTag} from 'next/cache';
|
|
2
|
-
import {publicClient} from './api';
|
|
3
|
-
import {GetActiveChannelQuery, GetAvailableCountriesQuery, GetTopCollectionsQuery} from './queries';
|
|
1
|
+
import { cacheLife, cacheTag } from 'next/cache';
|
|
2
|
+
import { publicClient } from './api';
|
|
3
|
+
import { GetActiveChannelQuery, GetAvailableCountriesQuery, GetTopCollectionsQuery } from './queries';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Get the active channel with caching enabled.
|
|
@@ -19,11 +19,18 @@ export async function getActiveChannelCached(channelToken?: string) {
|
|
|
19
19
|
const [result, error] = await publicClient.query(
|
|
20
20
|
GetActiveChannelQuery,
|
|
21
21
|
undefined,
|
|
22
|
-
channelToken ? {channelToken} : undefined,
|
|
22
|
+
channelToken ? { channelToken } : undefined,
|
|
23
23
|
);
|
|
24
24
|
if (error) {
|
|
25
25
|
// Vendure API unavailable during build
|
|
26
|
-
return {
|
|
26
|
+
return {
|
|
27
|
+
id: '',
|
|
28
|
+
code: '',
|
|
29
|
+
defaultLanguageCode: 'en' as const,
|
|
30
|
+
availableLanguageCodes: [],
|
|
31
|
+
defaultCurrencyCode: 'USD' as const,
|
|
32
|
+
availableCurrencyCodes: [],
|
|
33
|
+
};
|
|
27
34
|
}
|
|
28
35
|
return result.data.activeChannel;
|
|
29
36
|
}
|
|
@@ -38,11 +45,10 @@ export async function getAvailableCountriesCached(locale: string, channelToken?:
|
|
|
38
45
|
cacheLife('max');
|
|
39
46
|
cacheTag(`countries-${locale}${channelToken ? `-${channelToken}` : ''}`);
|
|
40
47
|
|
|
41
|
-
const [result, error] = await publicClient.query(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
);
|
|
48
|
+
const [result, error] = await publicClient.query(GetAvailableCountriesQuery, undefined, {
|
|
49
|
+
languageCode: locale,
|
|
50
|
+
...(channelToken ? { channelToken } : {}),
|
|
51
|
+
});
|
|
46
52
|
if (error) {
|
|
47
53
|
return [];
|
|
48
54
|
}
|
|
@@ -59,11 +65,10 @@ export async function getTopCollections(locale: string, channelToken?: string) {
|
|
|
59
65
|
cacheLife('days');
|
|
60
66
|
cacheTag(`collections-${locale}${channelToken ? `-${channelToken}` : ''}`);
|
|
61
67
|
|
|
62
|
-
const [result, error] = await publicClient.query(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
);
|
|
68
|
+
const [result, error] = await publicClient.query(GetTopCollectionsQuery, undefined, {
|
|
69
|
+
languageCode: locale,
|
|
70
|
+
...(channelToken ? { channelToken } : {}),
|
|
71
|
+
});
|
|
67
72
|
if (error) {
|
|
68
73
|
return [];
|
|
69
74
|
}
|
|
@@ -381,7 +381,9 @@ export const GetActiveOrderQuery = graphql(`
|
|
|
381
381
|
`);
|
|
382
382
|
|
|
383
383
|
/** A store credit applied to the active order. */
|
|
384
|
-
export type StoreCredit = NonNullable<
|
|
384
|
+
export type StoreCredit = NonNullable<
|
|
385
|
+
ResultOf<typeof GetActiveOrderQuery>['activeOrder']
|
|
386
|
+
>['storeCreditsApplied'][number];
|
|
385
387
|
|
|
386
388
|
export const GetActiveOrderForCheckoutQuery = graphql(`
|
|
387
389
|
query GetActiveOrderForCheckout {
|
|
@@ -871,7 +873,9 @@ export const GetMyCompaniesQuery = graphql(`
|
|
|
871
873
|
}
|
|
872
874
|
`);
|
|
873
875
|
|
|
874
|
-
export type CompanyUserCompany = NonNullable<
|
|
876
|
+
export type CompanyUserCompany = NonNullable<
|
|
877
|
+
ResultOf<typeof GetMyCompaniesQuery>['activeCustomer']
|
|
878
|
+
>['companyUsers'][number]['company'];
|
|
875
879
|
|
|
876
880
|
export const GetActiveCustomerCompanyQuery = graphql(
|
|
877
881
|
`
|
|
@@ -1144,7 +1148,9 @@ export const GetGiftCardTemplatesQuery = graphql(`
|
|
|
1144
1148
|
`);
|
|
1145
1149
|
|
|
1146
1150
|
/** A gift card template. */
|
|
1147
|
-
export type GiftCardTemplate = ResultOf<
|
|
1151
|
+
export type GiftCardTemplate = ResultOf<
|
|
1152
|
+
typeof GetGiftCardTemplatesQuery
|
|
1153
|
+
>['giftCardTemplates']['items'][number];
|
|
1148
1154
|
|
|
1149
1155
|
export const GetMyQuoteDetailQuery = graphql(`
|
|
1150
1156
|
query GetMyQuoteDetail($id: ID!) {
|
|
@@ -1281,7 +1287,9 @@ export const GetConfiguratorSystemQuery = graphql(`
|
|
|
1281
1287
|
}
|
|
1282
1288
|
`);
|
|
1283
1289
|
|
|
1284
|
-
export type ConfiguratorSystem = NonNullable<
|
|
1290
|
+
export type ConfiguratorSystem = NonNullable<
|
|
1291
|
+
ResultOf<typeof GetConfiguratorSystemQuery>['configuratorSystem']
|
|
1292
|
+
>;
|
|
1285
1293
|
export type ConfiguratorModule = ConfiguratorSystem['modules'][number];
|
|
1286
1294
|
export type ConfiguratorField = ConfiguratorModule['fields'][number];
|
|
1287
1295
|
|
|
@@ -1350,7 +1358,9 @@ export const EvaluateConfigurationQuery = graphql(`
|
|
|
1350
1358
|
}
|
|
1351
1359
|
`);
|
|
1352
1360
|
|
|
1353
|
-
export type ConfigurationEvaluation = ResultOf<
|
|
1361
|
+
export type ConfigurationEvaluation = ResultOf<
|
|
1362
|
+
typeof EvaluateConfigurationQuery
|
|
1363
|
+
>['evaluateProductConfiguration'];
|
|
1354
1364
|
export type EvaluatedField = ConfigurationEvaluation['fields'][number];
|
|
1355
1365
|
export type EvaluatedLine = ConfigurationEvaluation['lines'][number];
|
|
1356
1366
|
export type EvaluatedExecutedRule = ConfigurationEvaluation['executedRules'][number];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import createMiddleware from 'next-intl/middleware';
|
|
2
|
-
import {routing} from './i18n/routing';
|
|
2
|
+
import { routing } from './i18n/routing';
|
|
3
3
|
|
|
4
4
|
// Next.js 16 renamed "middleware" to "proxy" but next-intl still uses the
|
|
5
5
|
// middleware convention. The deprecation warning is cosmetic and doesn't
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getTranslations } from 'next-intl/server';
|
|
2
1
|
import { Button } from '@/components/ui/button';
|
|
3
|
-
import { Link } from '@/i18n/navigation';
|
|
4
2
|
import { getBranding } from '@/config/branding';
|
|
3
|
+
import { Link } from '@/i18n/navigation';
|
|
5
4
|
import { ArrowRight } from 'lucide-react';
|
|
5
|
+
import { getTranslations } from 'next-intl/server';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Generic hero shipped with the `customer` scenario. Purely visual — no
|
package/dist/bin/run.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(o){if(o&&o.__esModule)return o;var r={};if(null!=o)for(var i=n(o),a=0;a<i.length;a++)"default"!==i[a]&&e(r,o,i[a]);return t(r,o),r}}();Object.defineProperty(exports,"__esModule",{value:!0});const o=
|
|
2
|
+
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(o){if(o&&o.__esModule)return o;var r={};if(null!=o)for(var i=n(o),a=0;a<i.length;a++)"default"!==i[a]&&e(r,o,i[a]);return t(r,o),r}}();Object.defineProperty(exports,"__esModule",{value:!0});const o=require("commander"),r=n(require("fs")),i=n(require("path")),a=require("../add-to-existing"),s=require("../cli"),u=require("../scaffold-storefront-only"),l=require("../scaffolder");function c(){const e=i.join(__dirname,"..","..","package.json");return JSON.parse(r.readFileSync(e,"utf8")).version}const p=(new o.Command).name("create-vendure-platform").description("Scaffold a Vendure project with Vendure Platform plugins, or a standalone storefront").version(c(),"-v, --version").enablePositionalOptions();p.command("add").description("Add Vendure Platform to an existing Vendure project (run from the project root)").option("--plugins <list>","Comma-separated list of plugin keys to include (skips the interactive prompt)").option("--registry-token <token>","Vendure private-registry npm auth token (written to project .npmrc as _authToken)").option("--license-token <token>","Vendure Platform server-side license token (written to .env as VENDURE_PLATFORM_LICENSE_TOKEN)").option("--dry-run","Show what would be changed without writing files").action(async e=>{const t=await(0,a.runAddToExistingCli)({plugins:e.plugins,dryRun:e.dryRun,registryToken:e.registryToken,licenseToken:e.licenseToken});await(0,a.addToExisting)(t)}),p.argument("[project-name]","Name of the project to create").option("--plugins <list>","Comma-separated list of plugin keys to include").option("--company <name>","Company name for the demo project").option("--no-storefront","Skip the Next.js storefront").option("--github","Create a GitHub repository").option("--github-org <org>","GitHub organization (only used with --github)","vendurehq").option("--no-github","Do not create a GitHub repository").option("--no-install","Skip dependency install").option("--no-git","Skip git init").option("--dry-run","Show what would be created without writing files").option("--storefront-only","Scaffold just the Next.js storefront, no server or plugins").option("--api-url <url>","Vendure Shop API URL (storefront-only mode)").option("--scenario <name>","Storefront scenario (storefront-only mode; default: customer)").option("--pm <bun|npm|pnpm>","Package manager used for the install step (default: bun)").option("--registry-token <token>","Vendure private-registry npm auth token (written to project .npmrc as _authToken)").option("--license-token <token>","Vendure Platform server-side license token (written to .env as VENDURE_PLATFORM_LICENSE_TOKEN)").action(async(e,t)=>{const n={plugins:t.plugins,company:t.company,storefront:t.storefront,github:t.github,githubOrg:t.githubOrg,install:t.install,git:t.git,dryRun:t.dryRun,storefrontOnly:t.storefrontOnly,apiUrl:t.apiUrl,scenario:t.scenario,pm:t.pm,registryToken:t.registryToken,licenseToken:t.licenseToken};if(n.storefrontOnly){const t=await(0,s.runStorefrontOnlyCli)(e,n);return void await(0,u.scaffoldStorefrontOnly)(t)}const o=await(0,s.runCli)(e,n);await(0,l.scaffold)(o)}),p.parseAsync().catch(e=>{console.error("Error:",e.message),process.exit(1)});
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ScaffoldOptions, StorefrontOnlyOptions
|
|
1
|
+
import { CliFlags, ScaffoldOptions, StorefrontOnlyOptions } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Run the CLI in storefront-only mode. Returns options for `scaffoldStorefrontOnly`.
|
|
4
4
|
* Interactive prompts kick in for any value not provided via flags.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { scaffoldStorefrontOnly } from './scaffold-storefront-only';
|
|
3
|
-
export { pluginRegistry, INTERNAL_PACKAGES, resolveActivePluginKeys, ALWAYS_ACTIVE_KEYS, SELECTABLE_KEYS, getPlugin, } from './plugin-registry';
|
|
1
|
+
export type { PluginCategory, PluginKey, PluginMeta, PluginMetaKey, PluginTier, } from '@vendure-platform/plugin-meta';
|
|
4
2
|
export { runCli, runStorefrontOnlyCli } from './cli';
|
|
5
|
-
export {
|
|
6
|
-
export
|
|
3
|
+
export { ALWAYS_ACTIVE_KEYS, INTERNAL_PACKAGES, SELECTABLE_KEYS, getPlugin, pluginRegistry, resolveActivePluginKeys, } from './plugin-registry';
|
|
4
|
+
export { scaffoldStorefrontOnly } from './scaffold-storefront-only';
|
|
5
|
+
export { TEMPLATE_FILES, scaffold } from './scaffolder';
|
|
6
|
+
export { CliFlags, EnvVar, PackageManager, PluginDefinition, ScaffoldOptions, ScaffolderPluginExtras, StorefrontOnlyOptions, } from './types';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.scaffold=exports.TEMPLATE_FILES=exports.scaffoldStorefrontOnly=exports.resolveActivePluginKeys=exports.pluginRegistry=exports.getPlugin=exports.SELECTABLE_KEYS=exports.INTERNAL_PACKAGES=exports.ALWAYS_ACTIVE_KEYS=exports.runStorefrontOnlyCli=exports.runCli=void 0;var e=require("./cli");Object.defineProperty(exports,"runCli",{enumerable:!0,get:function(){return e.runCli}}),Object.defineProperty(exports,"runStorefrontOnlyCli",{enumerable:!0,get:function(){return e.runStorefrontOnlyCli}});var r=require("./plugin-registry");Object.defineProperty(exports,"ALWAYS_ACTIVE_KEYS",{enumerable:!0,get:function(){return r.ALWAYS_ACTIVE_KEYS}}),Object.defineProperty(exports,"INTERNAL_PACKAGES",{enumerable:!0,get:function(){return r.INTERNAL_PACKAGES}}),Object.defineProperty(exports,"SELECTABLE_KEYS",{enumerable:!0,get:function(){return r.SELECTABLE_KEYS}}),Object.defineProperty(exports,"getPlugin",{enumerable:!0,get:function(){return r.getPlugin}}),Object.defineProperty(exports,"pluginRegistry",{enumerable:!0,get:function(){return r.pluginRegistry}}),Object.defineProperty(exports,"resolveActivePluginKeys",{enumerable:!0,get:function(){return r.resolveActivePluginKeys}});var t=require("./scaffold-storefront-only");Object.defineProperty(exports,"scaffoldStorefrontOnly",{enumerable:!0,get:function(){return t.scaffoldStorefrontOnly}});var n=require("./scaffolder");Object.defineProperty(exports,"TEMPLATE_FILES",{enumerable:!0,get:function(){return n.TEMPLATE_FILES}}),Object.defineProperty(exports,"scaffold",{enumerable:!0,get:function(){return n.scaffold}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(){var r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},r(e)};return function(n){if(n&&n.__esModule)return n;var o={};if(null!=n)for(var a=r(n),i=0;i<a.length;i++)"default"!==a[i]&&e(o,n,a[i]);return t(o,n),o}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.scaffoldStorefrontOnly=c;const n=r(require("
|
|
1
|
+
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(){var r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},r(e)};return function(n){if(n&&n.__esModule)return n;var o={};if(null!=n)for(var a=r(n),i=0;i<a.length;i++)"default"!==a[i]&&e(o,n,a[i]);return t(o,n),o}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.scaffoldStorefrontOnly=c;const n=r(require("@clack/prompts")),o=r(require("fs-extra")),a=r(require("path")),i=require("./scaffold-shared"),s=require("./storefront-copier");async function c(e){const{projectName:t,apiUrl:r,scenario:c,packageManager:l,skipInstall:u,skipGit:p,dryRun:d}=e,f=a.resolve(process.cwd(),t);if(await o.pathExists(f)&&(await o.readdir(f)).length>0&&(n.log.error(`Directory "${f}" already exists and is not empty.`),process.exit(1)),d){const e=[`Project: ${t} \u2192 ${f}`,"","Mode: storefront-only",`Scenario: ${c}`,`API URL: ${null!=r?r:"(use default localhost)"}`,`Package manager: ${l}`,"Install deps: "+(u?"no":"yes"),"Git init: "+(p?"no":"yes")].join("\n");return n.note(e,"Dry run"),void n.outro("Dry run complete \u2014 no files written.")}const y=n.spinner();y.start("Creating project directory..."),await o.ensureDir(f),y.message("Copying storefront..."),await(0,s.copyStorefront)(f,{mode:"storefront-only",scenario:c,apiUrl:r,packageName:t}),u||await(0,i.installDependencies)(f,l,y),p||await(0,i.initRepository)(f,!1,void 0,y),y.stop(`Project "${t}" created successfully!`);const g=[`cd ${t}`,r?`# .env.local already points VENDURE_SHOP_API_URL at ${r}`:"# Edit .env.local and set VENDURE_SHOP_API_URL to your Vendure server","npm"===l?"npm run dev":`${l} run dev`,"","Storefront: http://localhost:${STOREFRONT_PORT:-3001}"].join("\n");n.note(g,"Next steps"),n.outro("Happy building!")}
|
package/dist/scaffolder.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(){var o=function(e){return o=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},o(e)};return function(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var s=o(r),i=0;i<s.length;i++)"default"!==s[i]&&e(n,r,s[i]);return t(n,r),n}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.TEMPLATE_FILES=void 0,exports.scaffold=c;const r=o(require("
|
|
1
|
+
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(){var o=function(e){return o=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},o(e)};return function(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var s=o(r),i=0;i<s.length;i++)"default"!==s[i]&&e(n,r,s[i]);return t(n,r),n}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.TEMPLATE_FILES=void 0,exports.scaffold=c;const r=o(require("@clack/prompts")),n=o(require("fs-extra")),s=o(require("path")),i=require("./plugin-registry"),a=require("./scaffold-shared"),u=require("./storefront-copier"),p=require("./template-renderer");async function c(e){const{projectName:t,companyName:o,selectedPlugins:c,includeStorefront:l,createGithubRepo:m,githubOrg:g,packageManager:f="bun",skipInstall:h,skipGit:j,dryRun:y,registryToken:v,licenseToken:b}=e,w=s.resolve(process.cwd(),t),E=(0,i.resolveActivePluginKeys)(c),_=i.ALWAYS_ACTIVE_KEYS.map(e=>(0,i.getPlugin)(e).displayName);if(_.length>0&&r.log.info(`Always-on core plugins: ${_.join(", ")}`),await n.pathExists(w)&&(await n.readdir(w)).length>0&&(r.log.error(`Directory "${w}" already exists and is not empty.`),process.exit(1)),y){const e=E.map(e=>(0,i.getPlugin)(e).displayName),o=[`Project: ${t} \u2192 ${w}`,"","Files to generate:",exports.TEMPLATE_FILES.map(e=>` ${e.output}`).join("\n"),[" server/src/demo-data/products.csv"," server/src/demo-data/initial-data.json"," server/src/demo-data/images/.gitkeep"].join("\n")," server/src/migrations/ (empty dir)","",`Plugins (${e.length}):`,` ${e.join(", ")}`,"","Storefront: "+(l?"yes":"no"),`Install deps with ${f}: ${h?"no":"yes"}`,"Git init: "+(j?"no":"yes"),"GitHub repo: "+(m?"yes":"no")].join("\n");return r.note(o,"Dry run"),void r.outro("Dry run complete \u2014 no files written.")}const k=r.spinner();k.start("Creating project directory..."),await n.ensureDir(w);const{context:P,hbs:T}=(0,p.buildTemplateContext)(t,o,c,l,{registryToken:v,licenseToken:b});k.message("Generating server files...");const $=s.join(w,"server"),x=s.join($,"src");await n.ensureDir(x);for(const{template:e,output:t}of exports.TEMPLATE_FILES){const o=(0,p.getTemplatePath)(e),r=(0,p.renderTemplate)(o,P,T),i=s.join(w,t);await n.ensureDir(s.dirname(i)),await n.writeFile(i,r)}if(k.message("Creating demo data skeleton..."),await d(x),await n.ensureDir(s.join(x,"migrations")),l){k.message("Copying storefront...");try{await(0,u.copyStorefront)(w,{mode:"full-project",scenario:"customer",packageName:`${t}-storefront`,registryToken:v})}catch(e){k.stop("Storefront copy failed.");const t=e instanceof Error?e.message:String(e);r.log.warn(`Storefront copy failed \u2014 you can set it up manually later. (${t})`),k.start("Continuing...")}}h||await(0,a.installDependencies)(w,f,k),j||await(0,a.initRepository)(w,m,g,k),k.stop(`Project "${t}" created successfully!`);const D="npm"===f?"npm run":`${f} run`,S=[`cd ${t}`,"docker compose up -d",`${D} populate`,`${D} dev`,"","Dashboard: http://localhost:3500/dashboard",l?"Storefront: http://localhost:3001":""].filter(Boolean).join("\n");r.note(S,"Next steps"),r.outro("Happy building!")}function l(){const e=[s.join(__dirname,"..","..","scenario-default","assets"),s.join(__dirname,"assets","demo-data")];for(const t of e)if(n.pathExistsSync(t))return t;throw new Error("Could not find scenario-default assets. Tried:\n"+e.map(e=>` - ${e}`).join("\n"))}async function d(e){const t=l(),o=s.join(e,"demo-data");await n.ensureDir(o),await n.copy(s.join(t,"initial-data.json"),s.join(o,"initial-data.json")),await n.copy(s.join(t,"products.csv"),s.join(o,"products.csv")),await n.copy(s.join(t,"images"),s.join(o,"images"))}exports.TEMPLATE_FILES=[{template:"vendure-config.ts.hbs",output:"server/src/vendure-config.ts"},{template:"populate.ts.hbs",output:"server/src/populate.ts"},{template:"custom-populate.ts.hbs",output:"server/src/custom-populate.ts"},{template:"index.ts.hbs",output:"server/src/index.ts"},{template:"server-package.json.hbs",output:"server/package.json"},{template:"root-package.json.hbs",output:"package.json"},{template:"env.hbs",output:".env"},{template:"docker-compose.yml.hbs",output:"docker-compose.yml"},{template:"CLAUDE.md.hbs",output:"CLAUDE.md"},{template:"README.md.hbs",output:"README.md"},{template:"tsconfig.root.json.hbs",output:"tsconfig.json"},{template:"tsconfig.server.json.hbs",output:"server/tsconfig.json"},{template:"vite.config.mts.hbs",output:"server/vite.config.mts"},{template:"tsconfig.dashboard.json.hbs",output:"server/tsconfig.dashboard.json"},{template:"environment.d.ts.hbs",output:"server/src/environment.d.ts"},{template:"gitignore.hbs",output:".gitignore"},{template:"npmrc.hbs",output:".npmrc"},{template:"bunfig.toml.hbs",output:"bunfig.toml"}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var o={};if(null!=r)for(var i=n(r),s=0;s<i.length;s++)"default"!==i[s]&&e(o,r,i[s]);return t(o,r),o}}(),r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolvePluginVersionSpec=c,exports.buildTemplateContext=g,exports.renderTemplate=m,exports.getTemplatePath=d;const o=
|
|
1
|
+
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(){var n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},n(e)};return function(r){if(r&&r.__esModule)return r;var o={};if(null!=r)for(var i=n(r),s=0;s<i.length;s++)"default"!==i[s]&&e(o,r,i[s]);return t(o,r),o}}(),r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolvePluginVersionSpec=c,exports.buildTemplateContext=g,exports.renderTemplate=m,exports.getTemplatePath=d;const o=n(require("fs")),i=r(require("handlebars")),s=n(require("path")),a=require("./plugin-registry"),u=require("./registry"),l=require("./sort-package-json");function c(e){const t=null!=e?e:f();return t.includes("-")?"nightly":`^${t}`}function f(){const e=s.join(__dirname,"..","package.json");return JSON.parse(o.readFileSync(e,"utf8")).version}function p(e,t,n){const r=i.default.create(),o=new Set(e);return r.registerHelper("ifPlugin",function(e,t){return o.has(e)?t.fn(this):t.inverse(this)}),r.registerHelper("pluginDependencies",function(){const t=e.map(e=>` "${(0,a.getPlugin)(e).packageName}": "${n}"`);return 0===t.length?new r.SafeString(""):new r.SafeString(",\n"+t.join(",\n"))}),r.registerHelper("platformPackageExcludes",function(){const e=a.pluginRegistry.map(e=>e.packageName),t=Array.from(new Set(["@vendure-platform/data-populator","@vendure-platform/integration","@vendure-platform/platform","@vendure-platform/scenario-default","@vendure-platform/storefront-client",...e])).sort().map(e=>` "${e}",`);return new r.SafeString(t.join("\n"))}),r.registerHelper("platformPluginImports",function(){const t=["import { VendurePlatform } from '@vendure-platform/platform';"];for(const n of e){const e=(0,a.getPlugin)(n).platformImports;e&&t.push(...e)}return new r.SafeString(t.join("\n"))}),r.registerHelper("platformPluginOptions",function(){const n=[];for(const t of e){const e=(0,a.getPlugin)(t).platformOptionsBlock;e&&n.push(` ${e},`)}for(const e of t)n.push(` ${(0,a.getPlugin)(e).platformKey}: false,`);return new r.SafeString(n.join("\n"))}),r}function g(e,t,n,r,o={}){var i,s;const l=(0,a.resolveActivePluginKeys)(n),f=l.map(e=>(0,a.getPlugin)(e)),g=new Set(l),m=a.pluginRegistry.filter(e=>"optional"===e.tier&&!g.has(e.key)).map(e=>e.key),d=c(o.versionOverride);return{context:{projectName:e,companyName:t,resolvedPluginKeys:l,resolvedPlugins:f,disabledPluginKeys:m,includeStorefront:r,registryUrl:(0,u.getRegistryUrl)(),registryHost:(0,u.getRegistryHostname)(),pluginVersionSpec:d,registryToken:null!==(i=o.registryToken)&&void 0!==i?i:"",licenseToken:null!==(s=o.licenseToken)&&void 0!==s?s:""},hbs:p(l,m,d)}}function m(e,t,n){const r=o.readFileSync(e,"utf8"),i=n.compile(r,{noEscape:!0})(t);return s.basename(e).endsWith("package.json.hbs")?(0,l.sortPackageJson)(i):i}function d(e){const t=[s.join(__dirname,"assets","templates",e),s.join(__dirname,"..","assets","templates",e)];for(const e of t)if(o.existsSync(e))return e;throw new Error(`Template not found: ${e}\n __dirname: ${__dirname}\n Searched:\n${t.map(e=>` - ${e} (exists: ${o.existsSync(s.dirname(e))})`).join("\n")}`)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure-platform/create",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "CLI tool to scaffold a Vendure demo project with Vendure Platform plugins",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@clack/prompts": "^0.10.0",
|
|
41
|
-
"@vendure-platform/plugin-meta": "0.5.
|
|
41
|
+
"@vendure-platform/plugin-meta": "0.5.1",
|
|
42
42
|
"commander": "^13.1.0",
|
|
43
43
|
"fs-extra": "^11.3.0",
|
|
44
44
|
"handlebars": "^4.7.8",
|