orionplace-react 0.7.8 → 0.8.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 +7 -614
- package/bin/orionplace-react.mjs +10 -176
- package/package.json +7 -59
- package/LICENSE +0 -21
- package/runtime/app.d.mts +0 -6
- package/runtime/app.mjs +0 -48
- package/runtime/marketplace.d.mts +0 -129
- package/runtime/marketplace.mjs +0 -905
- package/src/install.mjs +0 -356
- package/src/project-readme.mjs +0 -442
- package/src/service.mjs +0 -186
- package/src/setup.mjs +0 -274
- package/src/sitemap.mjs +0 -93
- package/src/update.mjs +0 -36
- package/src/validation.mjs +0 -27
- package/templates/app/StorefrontShell.tsx +0 -443
- package/templates/app/[[...path]]/page.app.tsx +0 -11
- package/templates/app/_storefront/ActivityPage.tsx +0 -23
- package/templates/app/_storefront/AddressesPage.tsx +0 -29
- package/templates/app/_storefront/AppRoutes.tsx +0 -184
- package/templates/app/_storefront/ArticlePage.tsx +0 -84
- package/templates/app/_storefront/CartPage.tsx +0 -53
- package/templates/app/_storefront/CatalogPage.tsx +0 -37
- package/templates/app/_storefront/CategoryPage.tsx +0 -68
- package/templates/app/_storefront/ContactPage.tsx +0 -32
- package/templates/app/_storefront/HomePage.tsx +0 -140
- package/templates/app/_storefront/JournalPage.tsx +0 -36
- package/templates/app/_storefront/LogoutPage.tsx +0 -91
- package/templates/app/_storefront/ManufacturersPage.tsx +0 -64
- package/templates/app/_storefront/OrdersPage.tsx +0 -129
- package/templates/app/_storefront/PrivacyPage.tsx +0 -15
- package/templates/app/_storefront/ProductPage.tsx +0 -113
- package/templates/app/_storefront/ProfilePage.tsx +0 -75
- package/templates/app/_storefront/PromoPage.tsx +0 -66
- package/templates/app/_storefront/PromocodesPage.tsx +0 -17
- package/templates/app/_storefront/SearchPage.tsx +0 -225
- package/templates/app/_storefront/SellersPage.tsx +0 -166
- package/templates/app/_storefront/StorefrontErrorRoute.tsx +0 -42
- package/templates/app/_storefront/StorefrontPageMetadata.tsx +0 -117
- package/templates/app/_storefront/StorefrontPageStatus.tsx +0 -61
- package/templates/app/_storefront/StorefrontProductStructuredData.tsx +0 -77
- package/templates/app/_storefront/StoresPage.tsx +0 -53
- package/templates/app/_storefront/SubscriptionsPage.tsx +0 -62
- package/templates/app/_storefront/SupportPage.tsx +0 -141
- package/templates/app/_storefront/TariffsPage.tsx +0 -180
- package/templates/app/_storefront/UnsubscribePage.tsx +0 -29
- package/templates/app/_storefront/WalletPage.tsx +0 -78
- package/templates/app/_storefront/WishlistPage.tsx +0 -79
- package/templates/app/_storefront/storefrontRoutes.tsx +0 -769
- package/templates/app/_storefront/useAccountWallet.ts +0 -27
- package/templates/app/_storefront/useBlogComments.ts +0 -389
- package/templates/app/_storefront/useProductSearch.ts +0 -242
- package/templates/app/_storefront/useStorefrontNavigation.ts +0 -36
- package/templates/app/activity/page.tsx +0 -9
- package/templates/app/addresses/page.tsx +0 -9
- package/templates/app/api/[...orionplace]/route.ts +0 -21
- package/templates/app/browse/page.tsx +0 -27
- package/templates/app/cart/page.tsx +0 -9
- package/templates/app/catalog/page.tsx +0 -9
- package/templates/app/category/[id]/page.tsx +0 -9
- package/templates/app/contact/page.tsx +0 -9
- package/templates/app/error.tsx +0 -7
- package/templates/app/featured/page.tsx +0 -9
- package/templates/app/global-error.tsx +0 -61
- package/templates/app/globals.css +0 -58
- package/templates/app/journal/[id]/page.tsx +0 -9
- package/templates/app/journal/page.tsx +0 -9
- package/templates/app/layout.app.tsx +0 -20
- package/templates/app/layout.tsx +0 -66
- package/templates/app/logout/page.tsx +0 -9
- package/templates/app/manufacturers/page.tsx +0 -9
- package/templates/app/not-found.tsx +0 -5
- package/templates/app/orders/page.tsx +0 -9
- package/templates/app/page.module.css +0 -137
- package/templates/app/page.tsx +0 -9
- package/templates/app/privacy/page.tsx +0 -9
- package/templates/app/product/[id]/page.tsx +0 -9
- package/templates/app/profile/page.tsx +0 -9
- package/templates/app/promo/[id]/page.tsx +0 -9
- package/templates/app/promocodes/page.tsx +0 -9
- package/templates/app/ps3/blog/[...orionplace]/route.ts +0 -13
- package/templates/app/robots.txt/route.ts +0 -11
- package/templates/app/sellers/page.tsx +0 -9
- package/templates/app/sitemap.xml/route.ts +0 -12
- package/templates/app/storefront.module.css +0 -406
- package/templates/app/stores/page.tsx +0 -9
- package/templates/app/subscriptions/page.tsx +0 -9
- package/templates/app/tariffs/[slug]/[id]/page.tsx +0 -9
- package/templates/app/tariffs/page.tsx +0 -9
- package/templates/app/tickets/page.tsx +0 -9
- package/templates/app/unsubscribe/page.tsx +0 -9
- package/templates/app/wallet/page.tsx +0 -9
- package/templates/app/wishlist/page.tsx +0 -9
- package/templates/components/orionplace/account/AccountActivity.README.md +0 -70
- package/templates/components/orionplace/account/AccountActivity.module.css +0 -16
- package/templates/components/orionplace/account/AccountActivity.tsx +0 -94
- package/templates/components/orionplace/account/AccountPromocodes.README.md +0 -70
- package/templates/components/orionplace/account/AccountPromocodes.module.css +0 -92
- package/templates/components/orionplace/account/AccountPromocodes.tsx +0 -257
- package/templates/components/orionplace/account/AccountSection.README.md +0 -46
- package/templates/components/orionplace/account/AccountSection.module.css +0 -110
- package/templates/components/orionplace/account/AccountSection.tsx +0 -109
- package/templates/components/orionplace/account/ProfileAvatar.README.md +0 -48
- package/templates/components/orionplace/account/ProfileAvatar.module.css +0 -31
- package/templates/components/orionplace/account/ProfileAvatar.tsx +0 -138
- package/templates/components/orionplace/account/ProfileDeleteAccount.README.md +0 -59
- package/templates/components/orionplace/account/ProfileDeleteAccount.module.css +0 -51
- package/templates/components/orionplace/account/ProfileDeleteAccount.tsx +0 -171
- package/templates/components/orionplace/account/ProfileDetailsForm.README.md +0 -48
- package/templates/components/orionplace/account/ProfileDetailsForm.module.css +0 -35
- package/templates/components/orionplace/account/ProfileDetailsForm.tsx +0 -183
- package/templates/components/orionplace/account/ProfileEmailSettings.README.md +0 -52
- package/templates/components/orionplace/account/ProfileEmailSettings.module.css +0 -51
- package/templates/components/orionplace/account/ProfileEmailSettings.tsx +0 -276
- package/templates/components/orionplace/account/ProfilePasswordForm.README.md +0 -45
- package/templates/components/orionplace/account/ProfilePasswordForm.module.css +0 -43
- package/templates/components/orionplace/account/ProfilePasswordForm.tsx +0 -227
- package/templates/components/orionplace/account/ProfileSignIn.README.md +0 -64
- package/templates/components/orionplace/account/ProfileSignIn.module.css +0 -86
- package/templates/components/orionplace/account/ProfileSignIn.tsx +0 -463
- package/templates/components/orionplace/account/SignInHistory.README.md +0 -52
- package/templates/components/orionplace/account/SignInHistory.module.css +0 -81
- package/templates/components/orionplace/account/SignInHistory.tsx +0 -231
- package/templates/components/orionplace/account/StorefrontLogout.README.md +0 -48
- package/templates/components/orionplace/account/StorefrontLogout.module.css +0 -166
- package/templates/components/orionplace/account/StorefrontLogout.tsx +0 -73
- package/templates/components/orionplace/account/StorefrontProfile.README.md +0 -71
- package/templates/components/orionplace/account/StorefrontProfile.module.css +0 -65
- package/templates/components/orionplace/account/StorefrontProfile.tsx +0 -189
- package/templates/components/orionplace/account/account.module.css +0 -1180
- package/templates/components/orionplace/account/profile.module.css +0 -696
- package/templates/components/orionplace/address/AddressForm.README.md +0 -152
- package/templates/components/orionplace/address/AddressForm.module.css +0 -336
- package/templates/components/orionplace/address/AddressForm.tsx +0 -827
- package/templates/components/orionplace/address/StorefrontAddresses.README.md +0 -99
- package/templates/components/orionplace/address/StorefrontAddresses.module.css +0 -271
- package/templates/components/orionplace/address/StorefrontAddresses.tsx +0 -438
- package/templates/components/orionplace/banners/MainBanner.README.md +0 -65
- package/templates/components/orionplace/banners/MainBanner.module.css +0 -112
- package/templates/components/orionplace/banners/MainBanner.tsx +0 -159
- package/templates/components/orionplace/blog/BlogArticle.README.md +0 -183
- package/templates/components/orionplace/blog/BlogArticle.module.css +0 -333
- package/templates/components/orionplace/blog/BlogArticle.tsx +0 -545
- package/templates/components/orionplace/blog/BlogCommentForm.README.md +0 -51
- package/templates/components/orionplace/blog/BlogCommentForm.module.css +0 -93
- package/templates/components/orionplace/blog/BlogCommentForm.tsx +0 -125
- package/templates/components/orionplace/blog/BlogComments.README.md +0 -98
- package/templates/components/orionplace/blog/BlogComments.module.css +0 -151
- package/templates/components/orionplace/blog/BlogComments.tsx +0 -590
- package/templates/components/orionplace/blog/BlogPostCard.README.md +0 -51
- package/templates/components/orionplace/blog/BlogPostCard.module.css +0 -167
- package/templates/components/orionplace/blog/BlogPostCard.tsx +0 -177
- package/templates/components/orionplace/blog/BlogPostGroup.README.md +0 -49
- package/templates/components/orionplace/blog/BlogPostGroup.module.css +0 -37
- package/templates/components/orionplace/blog/BlogPostGroup.tsx +0 -129
- package/templates/components/orionplace/blog/StorefrontJournal.README.md +0 -105
- package/templates/components/orionplace/blog/StorefrontJournal.module.css +0 -387
- package/templates/components/orionplace/blog/StorefrontJournal.tsx +0 -549
- package/templates/components/orionplace/branding/BrandLogos.README.md +0 -29
- package/templates/components/orionplace/branding/BrandLogos.module.css +0 -7
- package/templates/components/orionplace/branding/BrandLogos.tsx +0 -30
- package/templates/components/orionplace/cart/CartCheckoutDetails.README.md +0 -96
- package/templates/components/orionplace/cart/CartCheckoutDetails.module.css +0 -159
- package/templates/components/orionplace/cart/CartCheckoutDetails.tsx +0 -381
- package/templates/components/orionplace/cart/CartDeliverySelector.README.md +0 -166
- package/templates/components/orionplace/cart/CartDeliverySelector.module.css +0 -105
- package/templates/components/orionplace/cart/CartDeliverySelector.tsx +0 -679
- package/templates/components/orionplace/cart/CartItemOptions.README.md +0 -172
- package/templates/components/orionplace/cart/CartItemOptions.module.css +0 -113
- package/templates/components/orionplace/cart/CartItemOptions.tsx +0 -503
- package/templates/components/orionplace/cart/CartLineItem.README.md +0 -138
- package/templates/components/orionplace/cart/CartLineItem.module.css +0 -57
- package/templates/components/orionplace/cart/CartLineItem.tsx +0 -263
- package/templates/components/orionplace/cart/CartPreview.README.md +0 -99
- package/templates/components/orionplace/cart/CartPreview.module.css +0 -225
- package/templates/components/orionplace/cart/CartPreview.tsx +0 -188
- package/templates/components/orionplace/cart/DeliveryMap.README.md +0 -65
- package/templates/components/orionplace/cart/DeliveryMap.module.css +0 -32
- package/templates/components/orionplace/cart/DeliveryMap.tsx +0 -131
- package/templates/components/orionplace/cart/StorefrontCart.README.md +0 -281
- package/templates/components/orionplace/cart/StorefrontCart.module.css +0 -460
- package/templates/components/orionplace/cart/StorefrontCart.tsx +0 -937
- package/templates/components/orionplace/catalog/CatalogHeader.README.md +0 -136
- package/templates/components/orionplace/catalog/CatalogHeader.module.css +0 -387
- package/templates/components/orionplace/catalog/CatalogHeader.tsx +0 -644
- package/templates/components/orionplace/catalog/CatalogRepresentative.README.md +0 -68
- package/templates/components/orionplace/catalog/CatalogRepresentative.tsx +0 -51
- package/templates/components/orionplace/catalog/StorefrontCatalog.README.md +0 -120
- package/templates/components/orionplace/catalog/StorefrontCatalog.module.css +0 -179
- package/templates/components/orionplace/catalog/StorefrontCatalog.tsx +0 -304
- package/templates/components/orionplace/categories/CategoryGroup.README.md +0 -68
- package/templates/components/orionplace/categories/CategoryGroup.module.css +0 -110
- package/templates/components/orionplace/categories/CategoryGroup.tsx +0 -123
- package/templates/components/orionplace/categories/StorefrontCategory.README.md +0 -155
- package/templates/components/orionplace/categories/StorefrontCategory.module.css +0 -148
- package/templates/components/orionplace/categories/StorefrontCategory.tsx +0 -225
- package/templates/components/orionplace/contact/AboutPage.README.md +0 -40
- package/templates/components/orionplace/contact/AboutPage.module.css +0 -216
- package/templates/components/orionplace/contact/AboutPage.tsx +0 -191
- package/templates/components/orionplace/contact/ContactForm.README.md +0 -93
- package/templates/components/orionplace/contact/ContactForm.module.css +0 -264
- package/templates/components/orionplace/contact/ContactForm.tsx +0 -382
- package/templates/components/orionplace/contact/EmailUnsubscribe.README.md +0 -67
- package/templates/components/orionplace/contact/EmailUnsubscribe.module.css +0 -95
- package/templates/components/orionplace/contact/EmailUnsubscribe.tsx +0 -130
- package/templates/components/orionplace/contact/StorefrontContact.README.md +0 -73
- package/templates/components/orionplace/contact/StorefrontContact.module.css +0 -101
- package/templates/components/orionplace/contact/StorefrontContact.tsx +0 -62
- package/templates/components/orionplace/currencies/MainCurrencySwitcher.README.md +0 -37
- package/templates/components/orionplace/currencies/MainCurrencySwitcher.tsx +0 -68
- package/templates/components/orionplace/events/EventEnrollmentDialog.README.md +0 -108
- package/templates/components/orionplace/events/EventEnrollmentDialog.module.css +0 -110
- package/templates/components/orionplace/events/EventEnrollmentDialog.tsx +0 -315
- package/templates/components/orionplace/events/EventsBlock.README.md +0 -58
- package/templates/components/orionplace/events/EventsBlock.module.css +0 -101
- package/templates/components/orionplace/events/EventsBlock.tsx +0 -109
- package/templates/components/orionplace/legal/CookieNotice.README.md +0 -42
- package/templates/components/orionplace/legal/CookieNotice.module.css +0 -48
- package/templates/components/orionplace/legal/CookieNotice.tsx +0 -82
- package/templates/components/orionplace/legal/StorefrontPrivacy.README.md +0 -49
- package/templates/components/orionplace/legal/StorefrontPrivacy.module.css +0 -166
- package/templates/components/orionplace/legal/StorefrontPrivacy.tsx +0 -83
- package/templates/components/orionplace/locale/MainLanguageSwitcher.README.md +0 -46
- package/templates/components/orionplace/locale/MainLanguageSwitcher.module.css +0 -196
- package/templates/components/orionplace/locale/MainLanguageSwitcher.tsx +0 -387
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.README.md +0 -83
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.module.css +0 -271
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.tsx +0 -218
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.README.md +0 -122
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.module.css +0 -92
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.tsx +0 -455
- package/templates/components/orionplace/orders/OrderDetails.README.md +0 -116
- package/templates/components/orionplace/orders/OrderDetails.module.css +0 -730
- package/templates/components/orionplace/orders/OrderDetails.tsx +0 -693
- package/templates/components/orionplace/orders/OrderPaymentForm.README.md +0 -92
- package/templates/components/orionplace/orders/OrderPaymentForm.module.css +0 -105
- package/templates/components/orionplace/orders/OrderPaymentForm.tsx +0 -90
- package/templates/components/orionplace/orders/StorefrontOrders.README.md +0 -131
- package/templates/components/orionplace/orders/StorefrontOrders.module.css +0 -633
- package/templates/components/orionplace/orders/StorefrontOrders.tsx +0 -922
- package/templates/components/orionplace/payments/PaymentPanel.README.md +0 -114
- package/templates/components/orionplace/payments/PaymentPanel.module.css +0 -134
- package/templates/components/orionplace/payments/PaymentPanel.tsx +0 -76
- package/templates/components/orionplace/products/HoverImageViewer.README.md +0 -62
- package/templates/components/orionplace/products/HoverImageViewer.module.css +0 -88
- package/templates/components/orionplace/products/HoverImageViewer.tsx +0 -179
- package/templates/components/orionplace/products/ProductCard.README.md +0 -154
- package/templates/components/orionplace/products/ProductCard.module.css +0 -333
- package/templates/components/orionplace/products/ProductCard.tsx +0 -730
- package/templates/components/orionplace/products/ProductCardActions.README.md +0 -84
- package/templates/components/orionplace/products/ProductCardActions.module.css +0 -146
- package/templates/components/orionplace/products/ProductCardActions.tsx +0 -311
- package/templates/components/orionplace/products/ProductCardBadges.README.md +0 -44
- package/templates/components/orionplace/products/ProductCardBadges.module.css +0 -15
- package/templates/components/orionplace/products/ProductCardBadges.tsx +0 -78
- package/templates/components/orionplace/products/ProductCardDescription.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardDescription.module.css +0 -6
- package/templates/components/orionplace/products/ProductCardDescription.tsx +0 -43
- package/templates/components/orionplace/products/ProductCardFavorite.README.md +0 -52
- package/templates/components/orionplace/products/ProductCardFavorite.module.css +0 -64
- package/templates/components/orionplace/products/ProductCardFavorite.tsx +0 -90
- package/templates/components/orionplace/products/ProductCardPrice.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardPrice.module.css +0 -22
- package/templates/components/orionplace/products/ProductCardPrice.tsx +0 -50
- package/templates/components/orionplace/products/ProductCardRating.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardRating.module.css +0 -7
- package/templates/components/orionplace/products/ProductCardRating.tsx +0 -56
- package/templates/components/orionplace/products/ProductCardSeller.README.md +0 -36
- package/templates/components/orionplace/products/ProductCardSeller.module.css +0 -31
- package/templates/components/orionplace/products/ProductCardSeller.tsx +0 -61
- package/templates/components/orionplace/products/ProductCardStockNotice.README.md +0 -36
- package/templates/components/orionplace/products/ProductCardStockNotice.module.css +0 -8
- package/templates/components/orionplace/products/ProductCardStockNotice.tsx +0 -35
- package/templates/components/orionplace/products/ProductCardTitle.README.md +0 -30
- package/templates/components/orionplace/products/ProductCardTitle.module.css +0 -13
- package/templates/components/orionplace/products/ProductCardTitle.tsx +0 -31
- package/templates/components/orionplace/products/ProductCardVariants.README.md +0 -77
- package/templates/components/orionplace/products/ProductCardVariants.module.css +0 -97
- package/templates/components/orionplace/products/ProductCardVariants.tsx +0 -350
- package/templates/components/orionplace/products/ProductGroup.README.md +0 -91
- package/templates/components/orionplace/products/ProductGroup.module.css +0 -64
- package/templates/components/orionplace/products/ProductGroup.tsx +0 -186
- package/templates/components/orionplace/products/ProductPreorderDialog.README.md +0 -89
- package/templates/components/orionplace/products/ProductPreorderDialog.module.css +0 -320
- package/templates/components/orionplace/products/ProductPreorderDialog.tsx +0 -346
- package/templates/components/orionplace/products/ProductReviewForm.README.md +0 -72
- package/templates/components/orionplace/products/ProductReviewForm.module.css +0 -217
- package/templates/components/orionplace/products/ProductReviewForm.tsx +0 -288
- package/templates/components/orionplace/products/ProductReviewGallery.README.md +0 -61
- package/templates/components/orionplace/products/ProductReviewGallery.module.css +0 -108
- package/templates/components/orionplace/products/ProductReviewGallery.tsx +0 -110
- package/templates/components/orionplace/products/ProductReviewImageViewer.README.md +0 -60
- package/templates/components/orionplace/products/ProductReviewImageViewer.module.css +0 -59
- package/templates/components/orionplace/products/ProductReviewImageViewer.tsx +0 -312
- package/templates/components/orionplace/products/ProductReviews.README.md +0 -137
- package/templates/components/orionplace/products/ProductReviews.module.css +0 -602
- package/templates/components/orionplace/products/ProductReviews.tsx +0 -944
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.README.md +0 -67
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.module.css +0 -79
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.tsx +0 -324
- package/templates/components/orionplace/products/ProductSpecificationsDialog.README.md +0 -52
- package/templates/components/orionplace/products/ProductSpecificationsDialog.module.css +0 -138
- package/templates/components/orionplace/products/ProductSpecificationsDialog.tsx +0 -117
- package/templates/components/orionplace/products/StorefrontProduct.README.md +0 -200
- package/templates/components/orionplace/products/StorefrontProduct.module.css +0 -767
- package/templates/components/orionplace/products/StorefrontProduct.tsx +0 -1339
- package/templates/components/orionplace/products/StorefrontWishlist.README.md +0 -162
- package/templates/components/orionplace/products/StorefrontWishlist.module.css +0 -71
- package/templates/components/orionplace/products/StorefrontWishlist.tsx +0 -402
- package/templates/components/orionplace/promo/PromoProducts.README.md +0 -133
- package/templates/components/orionplace/promo/PromoProducts.module.css +0 -68
- package/templates/components/orionplace/promo/PromoProducts.tsx +0 -345
- package/templates/components/orionplace/search/MainSearch.README.md +0 -73
- package/templates/components/orionplace/search/MainSearch.module.css +0 -202
- package/templates/components/orionplace/search/MainSearch.tsx +0 -217
- package/templates/components/orionplace/search/ProductSearchResults.README.md +0 -166
- package/templates/components/orionplace/search/ProductSearchResults.module.css +0 -361
- package/templates/components/orionplace/search/ProductSearchResults.tsx +0 -359
- package/templates/components/orionplace/search/SearchFilters.README.md +0 -109
- package/templates/components/orionplace/search/SearchFilters.module.css +0 -274
- package/templates/components/orionplace/search/SearchFilters.tsx +0 -439
- package/templates/components/orionplace/sellers/SellerFilters.README.md +0 -66
- package/templates/components/orionplace/sellers/SellerFilters.module.css +0 -232
- package/templates/components/orionplace/sellers/SellerFilters.tsx +0 -201
- package/templates/components/orionplace/sellers/SellerPhotoGallery.README.md +0 -72
- package/templates/components/orionplace/sellers/SellerPhotoGallery.module.css +0 -314
- package/templates/components/orionplace/sellers/SellerPhotoGallery.tsx +0 -335
- package/templates/components/orionplace/sellers/SellerSummary.README.md +0 -62
- package/templates/components/orionplace/sellers/SellerSummary.module.css +0 -182
- package/templates/components/orionplace/sellers/SellerSummary.tsx +0 -107
- package/templates/components/orionplace/sellers/StorefrontSellers.README.md +0 -120
- package/templates/components/orionplace/sellers/StorefrontSellers.module.css +0 -147
- package/templates/components/orionplace/sellers/StorefrontSellers.tsx +0 -360
- package/templates/components/orionplace/shared/OrionplaceAvatar.README.md +0 -35
- package/templates/components/orionplace/shared/OrionplaceAvatar.module.css +0 -35
- package/templates/components/orionplace/shared/OrionplaceAvatar.tsx +0 -61
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +0 -33
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.module.css +0 -81
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.tsx +0 -91
- package/templates/components/orionplace/shared/OrionplaceEmptyState.README.md +0 -37
- package/templates/components/orionplace/shared/OrionplaceEmptyState.module.css +0 -126
- package/templates/components/orionplace/shared/OrionplaceEmptyState.tsx +0 -78
- package/templates/components/orionplace/shared/OrionplaceImage.README.md +0 -45
- package/templates/components/orionplace/shared/OrionplaceImage.module.css +0 -22
- package/templates/components/orionplace/shared/OrionplaceImage.tsx +0 -97
- package/templates/components/orionplace/shared/OrionplaceInfoHint.README.md +0 -31
- package/templates/components/orionplace/shared/OrionplaceInfoHint.module.css +0 -59
- package/templates/components/orionplace/shared/OrionplaceInfoHint.tsx +0 -126
- package/templates/components/orionplace/shared/OrionplacePasswordInput.README.md +0 -39
- package/templates/components/orionplace/shared/OrionplacePasswordInput.module.css +0 -79
- package/templates/components/orionplace/shared/OrionplacePasswordInput.tsx +0 -103
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.README.md +0 -97
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.module.css +0 -246
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.tsx +0 -367
- package/templates/components/orionplace/shared/OrionplaceSelect.README.md +0 -69
- package/templates/components/orionplace/shared/OrionplaceSelect.module.css +0 -233
- package/templates/components/orionplace/shared/OrionplaceSelect.tsx +0 -439
- package/templates/components/orionplace/shared/StorefrontErrorPage.README.md +0 -52
- package/templates/components/orionplace/shared/StorefrontErrorPage.module.css +0 -141
- package/templates/components/orionplace/shared/StorefrontErrorPage.tsx +0 -103
- package/templates/components/orionplace/shared/StorefrontPagination.README.md +0 -45
- package/templates/components/orionplace/shared/StorefrontPagination.module.css +0 -69
- package/templates/components/orionplace/shared/StorefrontPagination.tsx +0 -158
- package/templates/components/orionplace/shared/dialogs.css +0 -36
- package/templates/components/orionplace/shared/emptyStateArt.ts +0 -231
- package/templates/components/orionplace/shared/features.module.css +0 -162
- package/templates/components/orionplace/social/SocialLinks.README.md +0 -16
- package/templates/components/orionplace/social/SocialLinks.module.css +0 -36
- package/templates/components/orionplace/social/SocialLinks.tsx +0 -59
- package/templates/components/orionplace/storefront/StorefrontAccount.README.md +0 -59
- package/templates/components/orionplace/storefront/StorefrontAccount.module.css +0 -159
- package/templates/components/orionplace/storefront/StorefrontAccount.tsx +0 -303
- package/templates/components/orionplace/storefront/StorefrontCartButton.README.md +0 -47
- package/templates/components/orionplace/storefront/StorefrontCartButton.module.css +0 -88
- package/templates/components/orionplace/storefront/StorefrontCartButton.tsx +0 -54
- package/templates/components/orionplace/storefront/StorefrontFooter.README.md +0 -55
- package/templates/components/orionplace/storefront/StorefrontFooter.module.css +0 -118
- package/templates/components/orionplace/storefront/StorefrontFooter.tsx +0 -168
- package/templates/components/orionplace/storefront/StorefrontHeader.README.md +0 -150
- package/templates/components/orionplace/storefront/StorefrontHeader.module.css +0 -186
- package/templates/components/orionplace/storefront/StorefrontHeader.tsx +0 -389
- package/templates/components/orionplace/storefront/StorefrontHome.README.md +0 -138
- package/templates/components/orionplace/storefront/StorefrontHome.module.css +0 -116
- package/templates/components/orionplace/storefront/StorefrontHome.tsx +0 -282
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.README.md +0 -51
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.module.css +0 -95
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.tsx +0 -80
- package/templates/components/orionplace/stores/StorefrontStores.README.md +0 -87
- package/templates/components/orionplace/stores/StorefrontStores.module.css +0 -218
- package/templates/components/orionplace/stores/StorefrontStores.tsx +0 -397
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +0 -183
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.module.css +0 -347
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.tsx +0 -884
- package/templates/components/orionplace/subscriptions/StorefrontTariff.README.md +0 -124
- package/templates/components/orionplace/subscriptions/StorefrontTariff.module.css +0 -311
- package/templates/components/orionplace/subscriptions/StorefrontTariff.tsx +0 -485
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.README.md +0 -115
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.module.css +0 -219
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.tsx +0 -367
- package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +0 -67
- package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.tsx +0 -175
- package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +0 -95
- package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.tsx +0 -634
- package/templates/components/orionplace/subscriptions/SubscriptionDialog.module.css +0 -453
- package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +0 -75
- package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.tsx +0 -384
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +0 -116
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.module.css +0 -168
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.tsx +0 -236
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +0 -123
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.module.css +0 -57
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.tsx +0 -101
- package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +0 -109
- package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.tsx +0 -253
- package/templates/components/orionplace/support/StorefrontSupport.README.md +0 -157
- package/templates/components/orionplace/support/StorefrontSupport.tsx +0 -1040
- package/templates/components/orionplace/support/Support.module.css +0 -1133
- package/templates/components/orionplace/support/TicketConversation.README.md +0 -105
- package/templates/components/orionplace/support/TicketConversation.tsx +0 -502
- package/templates/components/orionplace/support/TicketImage.README.md +0 -52
- package/templates/components/orionplace/support/TicketImage.tsx +0 -254
- package/templates/components/orionplace/support/TicketItemCard.README.md +0 -66
- package/templates/components/orionplace/support/TicketItemCard.tsx +0 -140
- package/templates/components/orionplace/support/TicketMessageForm.README.md +0 -88
- package/templates/components/orionplace/support/TicketMessageForm.tsx +0 -261
- package/templates/components/orionplace/support/TicketSubscriptionCard.README.md +0 -53
- package/templates/components/orionplace/support/TicketSubscriptionCard.tsx +0 -118
- package/templates/components/orionplace/tariffs/TariffCard.README.md +0 -108
- package/templates/components/orionplace/tariffs/TariffCard.module.css +0 -86
- package/templates/components/orionplace/tariffs/TariffCard.tsx +0 -225
- package/templates/components/orionplace/tariffs/TariffCardDescription.README.md +0 -40
- package/templates/components/orionplace/tariffs/TariffCardDescription.module.css +0 -72
- package/templates/components/orionplace/tariffs/TariffCardDescription.tsx +0 -58
- package/templates/components/orionplace/tariffs/TariffCardFeatures.README.md +0 -58
- package/templates/components/orionplace/tariffs/TariffCardFeatures.module.css +0 -60
- package/templates/components/orionplace/tariffs/TariffCardFeatures.tsx +0 -140
- package/templates/components/orionplace/tariffs/TariffCardImage.README.md +0 -36
- package/templates/components/orionplace/tariffs/TariffCardImage.module.css +0 -8
- package/templates/components/orionplace/tariffs/TariffCardImage.tsx +0 -32
- package/templates/components/orionplace/tariffs/TariffCardPrices.README.md +0 -82
- package/templates/components/orionplace/tariffs/TariffCardPrices.module.css +0 -142
- package/templates/components/orionplace/tariffs/TariffCardPrices.tsx +0 -191
- package/templates/components/orionplace/tariffs/TariffCardTitle.README.md +0 -32
- package/templates/components/orionplace/tariffs/TariffCardTitle.module.css +0 -9
- package/templates/components/orionplace/tariffs/TariffCardTitle.tsx +0 -29
- package/templates/components/orionplace/tariffs/TariffCards.README.md +0 -88
- package/templates/components/orionplace/tariffs/TariffCards.module.css +0 -24
- package/templates/components/orionplace/tariffs/TariffCards.tsx +0 -44
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.README.md +0 -92
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.module.css +0 -214
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.tsx +0 -299
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.README.md +0 -30
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.module.css +0 -8
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.tsx +0 -32
- package/templates/components/orionplace/units/UnitSwitcher.README.md +0 -35
- package/templates/components/orionplace/units/UnitSwitcher.tsx +0 -58
- package/templates/components/orionplace/wallet/StorefrontWallet.README.md +0 -154
- package/templates/components/orionplace/wallet/StorefrontWallet.module.css +0 -507
- package/templates/components/orionplace/wallet/StorefrontWallet.tsx +0 -915
- package/templates/components/orionplace/wallet/WalletBalance.README.md +0 -46
- package/templates/components/orionplace/wallet/WalletBalance.module.css +0 -46
- package/templates/components/orionplace/wallet/WalletBalance.tsx +0 -51
- package/templates/components/orionplace/wallet/WalletTopUpForm.README.md +0 -54
- package/templates/components/orionplace/wallet/WalletTopUpForm.module.css +0 -152
- package/templates/components/orionplace/wallet/WalletTopUpForm.tsx +0 -181
- package/templates/hooks/useAccountActivity.ts +0 -251
- package/templates/hooks/useAccountAddresses.ts +0 -81
- package/templates/hooks/useAccountPromocodes.ts +0 -91
- package/templates/hooks/useOrionplaceActionMenu.ts +0 -118
- package/templates/hooks/useOrionplaceAddressForm.ts +0 -262
- package/templates/hooks/useOrionplaceApi.ts +0 -98
- package/templates/hooks/useOrionplaceAppLoad.ts +0 -66
- package/templates/hooks/useOrionplaceBlogReading.ts +0 -351
- package/templates/hooks/useOrionplaceDialog.ts +0 -85
- package/templates/hooks/useOrionplaceHomeProducts.ts +0 -97
- package/templates/hooks/useOrionplaceMap.tsx +0 -230
- package/templates/hooks/useOrionplaceMediaFormat.ts +0 -33
- package/templates/hooks/useOrionplaceProduct.ts +0 -28
- package/templates/hooks/useOrionplaceProfile.ts +0 -347
- package/templates/hooks/useOrionplaceReviews.ts +0 -352
- package/templates/hooks/useOrionplaceStableHeight.ts +0 -65
- package/templates/hooks/useOrionplaceStorefront.tsx +0 -593
- package/templates/hooks/useOrionplaceTariffPurchase.ts +0 -212
- package/templates/interfaces/orionplace/accounts/IContact.ts +0 -21
- package/templates/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +0 -17
- package/templates/interfaces/orionplace/accounts/IEmailVerification.ts +0 -59
- package/templates/interfaces/orionplace/accounts/IProfileActions.ts +0 -38
- package/templates/interfaces/orionplace/accounts/IProfileData.ts +0 -125
- package/templates/interfaces/orionplace/accounts/IProfileMedia.ts +0 -17
- package/templates/interfaces/orionplace/accounts/IStorefrontProfile.ts +0 -54
- package/templates/interfaces/orionplace/address/IAddressCitySuggestion.ts +0 -19
- package/templates/interfaces/orionplace/address/IAddressEditor.ts +0 -9
- package/templates/interfaces/orionplace/address/IAddressLocationSuggestion.ts +0 -22
- package/templates/interfaces/orionplace/address/IAddressRegionSearch.ts +0 -30
- package/templates/interfaces/orionplace/address/IAddressSuggestion.ts +0 -20
- package/templates/interfaces/orionplace/address/IUserAddress.ts +0 -87
- package/templates/interfaces/orionplace/apiBase/TMethod.ts +0 -1
- package/templates/interfaces/orionplace/appBase/IAppLoad.ts +0 -16
- package/templates/interfaces/orionplace/appBase/IAppLoadCommon.ts +0 -47
- package/templates/interfaces/orionplace/appBase/IApploadUserProfile.ts +0 -15
- package/templates/interfaces/orionplace/appBase/IForm.ts +0 -21
- package/templates/interfaces/orionplace/appBase/ISEO.ts +0 -21
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +0 -11
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonContact.ts +0 -8
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonCurrency.ts +0 -15
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonEvents.ts +0 -18
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLocale.ts +0 -14
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLogos.ts +0 -6
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +0 -22
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +0 -26
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSocial.ts +0 -15
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +0 -7
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonUnit.ts +0 -12
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +0 -8
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVisualSettings.ts +0 -11
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonWalletValue.ts +0 -3
- package/templates/interfaces/orionplace/blog/IBlogApi.ts +0 -247
- package/templates/interfaces/orionplace/blog/IBlogPostPreview.ts +0 -30
- package/templates/interfaces/orionplace/cart/ICartActions.ts +0 -67
- package/templates/interfaces/orionplace/cart/ICartData.ts +0 -382
- package/templates/interfaces/orionplace/cart/ICartDeliveryActions.ts +0 -68
- package/templates/interfaces/orionplace/cart/ICartModal.ts +0 -22
- package/templates/interfaces/orionplace/cart/IDeliveryMap.ts +0 -29
- package/templates/interfaces/orionplace/catalog/ICatalogDirectory.ts +0 -75
- package/templates/interfaces/orionplace/category/ICategory.ts +0 -41
- package/templates/interfaces/orionplace/domains/IDomain.ts +0 -13
- package/templates/interfaces/orionplace/forms/ICustomerSubfilter.ts +0 -19
- package/templates/interfaces/orionplace/index.ts +0 -64
- package/templates/interfaces/orionplace/marketing/IPromoActions.ts +0 -51
- package/templates/interfaces/orionplace/orders/IOrderActions.ts +0 -99
- package/templates/interfaces/orionplace/orders/IOrderHistory.ts +0 -259
- package/templates/interfaces/orionplace/orders/IProductPreorder.ts +0 -31
- package/templates/interfaces/orionplace/payments/IInvoice.ts +0 -147
- package/templates/interfaces/orionplace/products/IProduct.ts +0 -262
- package/templates/interfaces/orionplace/products/IProductFeedbackApi.ts +0 -218
- package/templates/interfaces/orionplace/products/IProductSearchApi.ts +0 -146
- package/templates/interfaces/orionplace/products/IProductSearchFacets.ts +0 -35
- package/templates/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +0 -15
- package/templates/interfaces/orionplace/products/IProductSpecification.ts +0 -14
- package/templates/interfaces/orionplace/products/IWishlist.ts +0 -22
- package/templates/interfaces/orionplace/sellers/ISellerDirectory.ts +0 -70
- package/templates/interfaces/orionplace/shared/IBreadcrumb.ts +0 -10
- package/templates/interfaces/orionplace/shared/IGeoCoordinates.ts +0 -4
- package/templates/interfaces/orionplace/shared/IStorefrontControls.ts +0 -6
- package/templates/interfaces/orionplace/shared/ITransformValue.ts +0 -3
- package/templates/interfaces/orionplace/state.ts +0 -4
- package/templates/interfaces/orionplace/stores/IStoreDirectory.ts +0 -63
- package/templates/interfaces/orionplace/subscribeOptions/ISubscribeOption.ts +0 -9
- package/templates/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +0 -56
- package/templates/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +0 -11
- package/templates/interfaces/orionplace/subscribes/ISubscribe.ts +0 -28
- package/templates/interfaces/orionplace/subscribes/ISubscriptionApi.ts +0 -127
- package/templates/interfaces/orionplace/tickets/ICustomerTicketApi.ts +0 -223
- package/templates/interfaces/orionplace/transport.ts +0 -34
- package/templates/lib/orionplace/accountLabels.ts +0 -29
- package/templates/lib/orionplace/activityLabels.ts +0 -96
- package/templates/lib/orionplace/activityPresentation.ts +0 -9
- package/templates/lib/orionplace/addressChanges.ts +0 -26
- package/templates/lib/orionplace/addressPresentation.ts +0 -58
- package/templates/lib/orionplace/api.ts +0 -326
- package/templates/lib/orionplace/appLoadClient.ts +0 -80
- package/templates/lib/orionplace/appLoadResult.ts +0 -120
- package/templates/lib/orionplace/appLoadServer.ts +0 -183
- package/templates/lib/orionplace/blogArticle.ts +0 -122
- package/templates/lib/orionplace/blogArticleHtml.ts +0 -371
- package/templates/lib/orionplace/blogComments.ts +0 -102
- package/templates/lib/orionplace/blogImageViewer.ts +0 -84
- package/templates/lib/orionplace/blogJournal.ts +0 -128
- package/templates/lib/orionplace/blogLabels.ts +0 -158
- package/templates/lib/orionplace/blogPresentation.ts +0 -67
- package/templates/lib/orionplace/blogProductPlacements.ts +0 -105
- package/templates/lib/orionplace/browseLabels.ts +0 -145
- package/templates/lib/orionplace/cartAddress.ts +0 -86
- package/templates/lib/orionplace/cartController.ts +0 -104
- package/templates/lib/orionplace/cartLabels.ts +0 -390
- package/templates/lib/orionplace/cartOptions.ts +0 -115
- package/templates/lib/orionplace/cartPreview.ts +0 -135
- package/templates/lib/orionplace/cartPromo.ts +0 -150
- package/templates/lib/orionplace/cartShipment.ts +0 -61
- package/templates/lib/orionplace/cartSnapshot.ts +0 -21
- package/templates/lib/orionplace/catalog.ts +0 -150
- package/templates/lib/orionplace/categoryLabels.ts +0 -29
- package/templates/lib/orionplace/contact.ts +0 -47
- package/templates/lib/orionplace/contactLabels.ts +0 -152
- package/templates/lib/orionplace/currency.ts +0 -128
- package/templates/lib/orionplace/deliveryMap.ts +0 -86
- package/templates/lib/orionplace/directoryLabels.ts +0 -198
- package/templates/lib/orionplace/domain.ts +0 -21
- package/templates/lib/orionplace/errorPageLabels.ts +0 -89
- package/templates/lib/orionplace/eventEnrollment.ts +0 -22
- package/templates/lib/orionplace/featureData.ts +0 -28
- package/templates/lib/orionplace/featureLabels.ts +0 -406
- package/templates/lib/orionplace/featuredLabels.ts +0 -38
- package/templates/lib/orionplace/footerLabels.ts +0 -53
- package/templates/lib/orionplace/guestSession.ts +0 -55
- package/templates/lib/orionplace/headerLabels.ts +0 -98
- package/templates/lib/orionplace/homeContent.ts +0 -193
- package/templates/lib/orionplace/homeLabels.ts +0 -74
- package/templates/lib/orionplace/htmlText.ts +0 -51
- package/templates/lib/orionplace/manufacturerDirectory.ts +0 -71
- package/templates/lib/orionplace/manufacturerIndex.ts +0 -107
- package/templates/lib/orionplace/modalWindow.ts +0 -109
- package/templates/lib/orionplace/nativeApp.ts +0 -365
- package/templates/lib/orionplace/navigation.tsx +0 -121
- package/templates/lib/orionplace/notice.ts +0 -22
- package/templates/lib/orionplace/orderLabels.ts +0 -458
- package/templates/lib/orionplace/orderPresentation.ts +0 -617
- package/templates/lib/orionplace/pageMetadata.ts +0 -361
- package/templates/lib/orionplace/pageSeo.ts +0 -662
- package/templates/lib/orionplace/paginationScroll.ts +0 -131
- package/templates/lib/orionplace/phone.ts +0 -22
- package/templates/lib/orionplace/presentation.ts +0 -84
- package/templates/lib/orionplace/privacyLabels.ts +0 -273
- package/templates/lib/orionplace/productActionLabels.ts +0 -108
- package/templates/lib/orionplace/productAvailability.ts +0 -30
- package/templates/lib/orionplace/productGallery.ts +0 -64
- package/templates/lib/orionplace/productLabels.ts +0 -119
- package/templates/lib/orionplace/productListLocation.ts +0 -130
- package/templates/lib/orionplace/productPage.ts +0 -308
- package/templates/lib/orionplace/productPhotos.ts +0 -67
- package/templates/lib/orionplace/productSearch.ts +0 -280
- package/templates/lib/orionplace/productSeller.ts +0 -56
- package/templates/lib/orionplace/productStructuredData.ts +0 -221
- package/templates/lib/orionplace/profile.ts +0 -169
- package/templates/lib/orionplace/profileLabels.ts +0 -227
- package/templates/lib/orionplace/promoLabels.ts +0 -111
- package/templates/lib/orionplace/promoPresentation.ts +0 -381
- package/templates/lib/orionplace/reviewLabels.ts +0 -256
- package/templates/lib/orionplace/reviewPresentation.ts +0 -64
- package/templates/lib/orionplace/reviewScope.ts +0 -38
- package/templates/lib/orionplace/searchFilters.ts +0 -99
- package/templates/lib/orionplace/searchHistory.ts +0 -144
- package/templates/lib/orionplace/sellerDirectory.ts +0 -120
- package/templates/lib/orionplace/seo.ts +0 -52
- package/templates/lib/orionplace/serverApi.ts +0 -158
- package/templates/lib/orionplace/serverLocale.ts +0 -29
- package/templates/lib/orionplace/serverMetadata.ts +0 -93
- package/templates/lib/orionplace/serverRecords.ts +0 -31
- package/templates/lib/orionplace/serverRoute.tsx +0 -59
- package/templates/lib/orionplace/sessionLabels.ts +0 -38
- package/templates/lib/orionplace/signInReturn.ts +0 -89
- package/templates/lib/orionplace/storeDirectory.ts +0 -47
- package/templates/lib/orionplace/storefrontRecords.ts +0 -42
- package/templates/lib/orionplace/subscriptionChanges.ts +0 -120
- package/templates/lib/orionplace/subscriptionLabels.ts +0 -100
- package/templates/lib/orionplace/subscriptionManageLabels.ts +0 -422
- package/templates/lib/orionplace/subscriptionPlans.ts +0 -122
- package/templates/lib/orionplace/subscriptionRemote.ts +0 -85
- package/templates/lib/orionplace/subscriptionUsage.ts +0 -58
- package/templates/lib/orionplace/tariffLabels.ts +0 -176
- package/templates/lib/orionplace/tariffPage.ts +0 -54
- package/templates/lib/orionplace/tariffVariables.ts +0 -174
- package/templates/lib/orionplace/tariffs.ts +0 -241
- package/templates/lib/orionplace/ticketItems.ts +0 -75
- package/templates/lib/orionplace/ticketLabels.ts +0 -428
- package/templates/lib/orionplace/ticketLocation.ts +0 -79
- package/templates/lib/orionplace/ticketRequests.ts +0 -70
- package/templates/lib/orionplace/walletTransaction.ts +0 -105
- package/templates/orionplace/COMPONENT-DOWNLOAD.md +0 -66
- package/templates/orionplace/COMPONENTS.md +0 -35
- package/templates/providers/OrionplaceProvider.tsx +0 -191
- package/templates/proxy.ts +0 -63
- package/templates/stores/orionplace.ts +0 -282
- package/templates/stores/orionplaceBrowse.ts +0 -89
- package/templates/stores/orionplaceCatalog.ts +0 -162
- package/templates/stores/orionplaceProducts.ts +0 -389
- package/templates/stores/orionplaceScope.ts +0 -104
- package/templates/stores/orionplaceSelections.ts +0 -130
- package/templates/themes/orionplace.ts +0 -106
package/src/project-readme.mjs
DELETED
|
@@ -1,442 +0,0 @@
|
|
|
1
|
-
export function projectReadme(settings, base = '') {
|
|
2
|
-
const frontend = settings.frontend || 'shop.example.com';
|
|
3
|
-
const backend =
|
|
4
|
-
settings.backend || 'https://your-project.orionplace.app/api';
|
|
5
|
-
return `# Your Orionplace React integration
|
|
6
|
-
|
|
7
|
-
This folder contains the integration source for your Next.js storefront.
|
|
8
|
-
Your personal backend API is provided in your account at https://orionmarket.place.
|
|
9
|
-
You can change that backend domain in your account, then update this project.
|
|
10
|
-
|
|
11
|
-
## Quick start from zero
|
|
12
|
-
|
|
13
|
-
Install Node.js 20.9 or newer (including npm). Run these commands from the folder
|
|
14
|
-
where you want to create a new project; no existing Next.js project is needed:
|
|
15
|
-
|
|
16
|
-
\`\`\`bash
|
|
17
|
-
npx --yes orionplace-react init my-marketplace
|
|
18
|
-
cd my-marketplace
|
|
19
|
-
npm install
|
|
20
|
-
npx orionplace-react set backend your-project.orionplace.app
|
|
21
|
-
npx orionplace-react add frontend shop.example.com
|
|
22
|
-
npm run dev
|
|
23
|
-
\`\`\`
|
|
24
|
-
|
|
25
|
-
Replace \`your-project.orionplace.app\` with the personal backend domain shown in
|
|
26
|
-
your profile at [orionmarket.place](https://orionmarket.place), and
|
|
27
|
-
\`shop.example.com\` with your storefront domain. The first frontend also becomes
|
|
28
|
-
the local MIMIC domain.
|
|
29
|
-
|
|
30
|
-
Open the local URL printed by Next.js (normally http://localhost:3000). The home
|
|
31
|
-
page should show the configured catalog and storefront content. If it shows the
|
|
32
|
-
initialization error state, check the domain mapping and backend response.
|
|
33
|
-
|
|
34
|
-
This project is already generated. To configure or run it, use the following
|
|
35
|
-
sections from its root directory; do not create another project inside it.
|
|
36
|
-
|
|
37
|
-
## Current setup
|
|
38
|
-
|
|
39
|
-
- Frontend domains: ${settings.frontends?.length ? settings.frontends.map((domain) => '\`' + domain + '\`').join(', ') : 'not configured yet'}
|
|
40
|
-
- Local MIMIC domain: \`${settings.frontend || 'empty'}\`
|
|
41
|
-
- Personal API: \`${settings.backend || 'not configured yet'}\`
|
|
42
|
-
|
|
43
|
-
Set or change these values from the project root:
|
|
44
|
-
|
|
45
|
-
\`\`\`bash
|
|
46
|
-
npx orionplace-react set backend ${backend}
|
|
47
|
-
npx orionplace-react add frontend ${frontend}
|
|
48
|
-
npx orionplace-react add frontend www.${frontend}
|
|
49
|
-
npx orionplace-react remove frontend www.${frontend}
|
|
50
|
-
\`\`\`
|
|
51
|
-
|
|
52
|
-
Set the backend or add a frontend first; either order works. Each frontend has its
|
|
53
|
-
own \`sitemaps/<domain>.cfg\` mapping to your personal API. Adding a domain again
|
|
54
|
-
is safe. Changing the backend updates every CLI-managed frontend mapping.
|
|
55
|
-
|
|
56
|
-
MIMIC is empty in a new project: \`MIMIC_FRONT_DOMAIN=""\`. Setting the backend
|
|
57
|
-
alone leaves it empty. The first added frontend sets MIMIC; adding more domains
|
|
58
|
-
preserves that choice.
|
|
59
|
-
|
|
60
|
-
Use \`npx orionplace-react set mimic <domain>\` to select an already-added frontend
|
|
61
|
-
for localhost. It changes MIMIC without editing domain mappings. Add an unknown
|
|
62
|
-
domain with \`add frontend\` first. The legacy \`set frontend\` shortcut still
|
|
63
|
-
adds and selects a frontend.
|
|
64
|
-
|
|
65
|
-
\`\`\`bash
|
|
66
|
-
npx orionplace-react help
|
|
67
|
-
npx orionplace-react set mimic ${frontend}
|
|
68
|
-
\`\`\`
|
|
69
|
-
|
|
70
|
-
Removing a frontend deletes only its unchanged generated \`.cfg\` file. If it was
|
|
71
|
-
the selected MIMIC domain, the first remaining domain takes its place. Removing
|
|
72
|
-
the last frontend clears MIMIC; add a frontend again before making API requests.
|
|
73
|
-
Unknown or manually edited mappings are not removed automatically.
|
|
74
|
-
|
|
75
|
-
Restart a running development server after changing domains so Next.js reloads
|
|
76
|
-
\`.env\`. Production reads domain files on each request; restart or reload the
|
|
77
|
-
process environment when changing MIMIC. DNS, TLS and hosting-proxy settings must
|
|
78
|
-
also cover each public frontend domain. Existing unrelated environment variables
|
|
79
|
-
and Next.js configuration are preserved.
|
|
80
|
-
|
|
81
|
-
## Files you can read and customize
|
|
82
|
-
|
|
83
|
-
| File | Purpose |
|
|
84
|
-
| --- | --- |
|
|
85
|
-
| \`runtime/marketplace.mjs\` | Domain lookup, configuration validation, API transport and cookies. |
|
|
86
|
-
| \`runtime/marketplace.d.mts\` | Types for the gateway functions used by your TypeScript source. |
|
|
87
|
-
| \`settings.json\` | The CLI's frontend list, local MIMIC domain and personal backend; not a secret store. |
|
|
88
|
-
| \`../${base}app/page.tsx\`, \`../${base}app/*/page.tsx\` | Server-rendered public and account storefront routes. |
|
|
89
|
-
| \`../${base}app/_storefront/\` | Route controllers that connect components, navigation and API actions. |
|
|
90
|
-
| \`../${base}app/api/[...orionplace]/route.ts\` | The route handler serving \`/api/...\` from your project. |
|
|
91
|
-
| \`../${base}app/ps3/blog/[...orionplace]/route.ts\` | The route handler serving guarded blog images and videos under \`/ps3/blog/...\`. |
|
|
92
|
-
| \`../${base}app/robots.txt/route.ts\`, \`../${base}app/sitemap.xml/route.ts\` | \`/robots.txt\` and the storefront sitemap. |
|
|
93
|
-
| \`../${base}proxy.ts\` | Marks personalized pages private and answers HTTP 503 when Application Load fails. |
|
|
94
|
-
| \`../sitemaps/${frontend}.cfg\` | The backend URL used for this frontend domain. |
|
|
95
|
-
| \`../.env\` | Local MIMIC setting; keep secrets out of version control. |
|
|
96
|
-
|
|
97
|
-
You can edit these files; subsequent setup runs preserve customized source and
|
|
98
|
-
this README. The CLI refuses to overwrite an unknown or manually changed domain
|
|
99
|
-
mapping, and never replaces your own layout, page or middleware.
|
|
100
|
-
|
|
101
|
-
## Import aliases
|
|
102
|
-
|
|
103
|
-
Application imports use \`@/\`. In \`tsconfig.json\`, merge these entries into
|
|
104
|
-
\`compilerOptions.paths\` while keeping your other settings:
|
|
105
|
-
|
|
106
|
-
\`\`\`json
|
|
107
|
-
{
|
|
108
|
-
"@/*": ["./${base}*"],
|
|
109
|
-
"@orionplace-runtime/*": ["./orionplace/runtime/*"]
|
|
110
|
-
}
|
|
111
|
-
\`\`\`
|
|
112
|
-
|
|
113
|
-
The \`@/\` alias follows this project's \`${base || '.'}\` source layout. The gateway alias
|
|
114
|
-
points to the project-root \`orionplace/runtime/\` directory. Setup writes
|
|
115
|
-
these mappings for new projects and updates unchanged generated configuration.
|
|
116
|
-
If you already own \`tsconfig.json\`, it is preserved; merge these aliases before
|
|
117
|
-
starting the application. Imports then work at any component directory depth.
|
|
118
|
-
|
|
119
|
-
## How requests reach your personal API
|
|
120
|
-
|
|
121
|
-
The trusted hosting proxy supplies the public domain through \`X-Front-Domain\`,
|
|
122
|
-
\`X-Forwarded-Host\`, or \`Host\`, in that order. On localhost,
|
|
123
|
-
\`MIMIC_FRONT_DOMAIN\` supplies the domain instead. A known public domain takes
|
|
124
|
-
priority over MIMIC; an unconfigured public domain returns \`503\`.
|
|
125
|
-
|
|
126
|
-
The domain file is read for each request. The gateway preserves the request method,
|
|
127
|
-
query, body, authorization and cookies. Backend HTTP status codes are preserved.
|
|
128
|
-
Backend cookie domains are removed so cookies belong to the active frontend.
|
|
129
|
-
Responses are not cached by this gateway. Network failures return \`502\`.
|
|
130
|
-
|
|
131
|
-
The configuration directory defaults to \`sitemaps\` under the process working
|
|
132
|
-
directory. Set \`SITEMAPS_DIR\` only if you store it elsewhere. Nothing here sets
|
|
133
|
-
a fixed public site URL. Use \`getStorefrontDomain()\` from
|
|
134
|
-
\`${base}lib/orionplace/domain.ts\` when you build canonical URLs or page metadata.
|
|
135
|
-
|
|
136
|
-
## Start and verify
|
|
137
|
-
|
|
138
|
-
Use Node.js 20.9 or newer. After scaffolding a new project, install dependencies:
|
|
139
|
-
|
|
140
|
-
\`\`\`bash
|
|
141
|
-
npm install
|
|
142
|
-
npm run dev
|
|
143
|
-
\`\`\`
|
|
144
|
-
|
|
145
|
-
In another terminal:
|
|
146
|
-
|
|
147
|
-
\`\`\`bash
|
|
148
|
-
curl -i http://localhost:3000/api/appload \\
|
|
149
|
-
-H 'Content-Type: application/json' \\
|
|
150
|
-
--data '{"ignore_cache":false,"detalize_mode":"light"}'
|
|
151
|
-
\`\`\`
|
|
152
|
-
|
|
153
|
-
Check both the HTTP status and \`form_errors\`. Successful initialization returns
|
|
154
|
-
\`page_data\`; HTTP 200 by itself is insufficient. Public storefront requests do
|
|
155
|
-
not require a login prompt. Protected actions still require backend permission.
|
|
156
|
-
|
|
157
|
-
## Application Load architecture
|
|
158
|
-
|
|
159
|
-
The root layout initializes the marketplace before your page renders. The request
|
|
160
|
-
uses \`POST /api/appload\` with \`ignore_cache: false\`.
|
|
161
|
-
Tenant settings may override these options.
|
|
162
|
-
|
|
163
|
-
| Project file | Responsibility |
|
|
164
|
-
| --- | --- |
|
|
165
|
-
| \`${base}app/layout.tsx\` | Awaits initialization, then passes the snapshot to the provider. |
|
|
166
|
-
| \`${base}app/StorefrontShell.tsx\` | Shows initialization failures and mounts storefront content after success. |
|
|
167
|
-
| \`${base}lib/orionplace/appLoadServer.ts\` | Server transport: one request per render through \`cache()\`. |
|
|
168
|
-
| \`${base}lib/orionplace/appLoadClient.ts\` | Browser transport for explicit initialize and refresh. |
|
|
169
|
-
| \`${base}lib/orionplace/appLoadResult.ts\` | HTTP, form-error and bootstrap-envelope checks. |
|
|
170
|
-
| \`${base}lib/orionplace/domain.ts\` | The storefront domain selected for the current request. |
|
|
171
|
-
| \`${base}stores/orionplace.ts\` | The typed snapshot, status, errors, merged discovery and selectors. |
|
|
172
|
-
| \`${base}stores/orionplaceSelections.ts\` | Current locale, currency and unit choices. |
|
|
173
|
-
| \`${base}stores/orionplaceCatalog.ts\` | Categories and subscription plans from initialization or later requests. |
|
|
174
|
-
| \`${base}stores/orionplaceProducts.ts\` | Product collections, confirmed updates and customer counters. |
|
|
175
|
-
| \`${base}stores/orionplaceBrowse.ts\` | Search choices, selected filters and journal results. |
|
|
176
|
-
| \`${base}stores/orionplaceScope.ts\` | Creates and synchronizes the stores before child components render. |
|
|
177
|
-
| \`${base}providers/OrionplaceProvider.tsx\` | Provides one coordinated store scope per browser session. |
|
|
178
|
-
| \`${base}hooks/useOrionplaceAppLoad.ts\` | Explicit initialize, refresh and reset actions. |
|
|
179
|
-
| \`${base}interfaces/orionplace/index.ts\` | Response envelope and all nested models. |
|
|
180
|
-
|
|
181
|
-
The server render owns initialization. Rendering a component or calling the hook
|
|
182
|
-
never starts another request, and initialization never opens an authentication
|
|
183
|
-
prompt.
|
|
184
|
-
|
|
185
|
-
### Read data in a client component
|
|
186
|
-
|
|
187
|
-
\`\`\`tsx
|
|
188
|
-
'use client';
|
|
189
|
-
|
|
190
|
-
import { useOrionplace } from '@/providers/OrionplaceProvider';
|
|
191
|
-
import { selectCurrencies, selectFailure, selectIsReady, selectProducts, selectStatus } from '@/stores/orionplace';
|
|
192
|
-
|
|
193
|
-
export function MarketplaceSummary() {
|
|
194
|
-
const isReady = useOrionplace(selectIsReady);
|
|
195
|
-
const status = useOrionplace(selectStatus);
|
|
196
|
-
const failure = useOrionplace(selectFailure);
|
|
197
|
-
const products = useOrionplace(selectProducts);
|
|
198
|
-
const currencies = useOrionplace(selectCurrencies);
|
|
199
|
-
|
|
200
|
-
if (failure) return <p role="alert">Marketplace initialization failed.</p>;
|
|
201
|
-
if (!isReady) return <p role="status">Application Load: {status}</p>;
|
|
202
|
-
return <p>{products.length} products; {Object.keys(currencies).length} currencies.</p>;
|
|
203
|
-
}
|
|
204
|
-
\`\`\`
|
|
205
|
-
|
|
206
|
-
Select one value at a time. Each selector returns a stable reference, so a
|
|
207
|
-
component re-renders only when its own data changes. The \`@/\` alias resolves
|
|
208
|
-
to the source root configured above, so imports work in nested component folders.
|
|
209
|
-
|
|
210
|
-
| Selector | Available data |
|
|
211
|
-
| --- | --- |
|
|
212
|
-
| \`selectResult\` | Response envelope, HTTP status and load time. |
|
|
213
|
-
| \`selectData\` | Complete \`page_data\`, including optional sections. |
|
|
214
|
-
| \`selectInit\` | All initialization settings, banners, events, contacts, SEO, units and other sections. |
|
|
215
|
-
| \`selectProfile\`, \`selectIsAuthenticated\` | Current profile and session state. |
|
|
216
|
-
| \`selectLocales\`, \`selectCurrencies\`, \`selectCatalog\`, \`selectProducts\`, \`selectTariffs\` | Common initial collections. |
|
|
217
|
-
| \`selectPublicEndpoints\`, \`selectAuthenticatedEndpoints\`, \`selectEndpoints\` | Current discovery groups and their combined view. |
|
|
218
|
-
| \`selectIsReady\`, \`selectStatus\`, \`selectFailure\` | Readiness, loading/success/error state and sanitized failure details. |
|
|
219
|
-
|
|
220
|
-
Use \`selectEndpoint(section, name)\` with section and endpoint keys from the
|
|
221
|
-
current response. It returns the endpoint's target, methods and forms, or
|
|
222
|
-
\`undefined\` when unavailable. Some endpoint descriptions may be omitted.
|
|
223
|
-
Discovery describes availability; the backend checks permissions on every call.
|
|
224
|
-
|
|
225
|
-
### Read data in a server component
|
|
226
|
-
|
|
227
|
-
\`\`\`tsx
|
|
228
|
-
import { getOrionplaceAppLoad } from '@/lib/orionplace/appLoadServer';
|
|
229
|
-
|
|
230
|
-
export default async function CatalogPage() {
|
|
231
|
-
const { result, failure } = await getOrionplaceAppLoad();
|
|
232
|
-
if (failure || !result) return <p role="alert">Marketplace initialization failed.</p>;
|
|
233
|
-
const categories = result.response.page_data.init.catalog ?? [];
|
|
234
|
-
return <p>{categories.length} catalog roots.</p>;
|
|
235
|
-
}
|
|
236
|
-
\`\`\`
|
|
237
|
-
|
|
238
|
-
\`getOrionplaceAppLoad()\` is cached per render, so the layout and your page share
|
|
239
|
-
one request. Do not import it from a client component.
|
|
240
|
-
|
|
241
|
-
### Refresh after a session change
|
|
242
|
-
|
|
243
|
-
\`\`\`tsx
|
|
244
|
-
'use client';
|
|
245
|
-
|
|
246
|
-
import { useOrionplaceAppLoad } from '@/hooks/useOrionplaceAppLoad';
|
|
247
|
-
|
|
248
|
-
export function SessionActions() {
|
|
249
|
-
const { reset, refresh } = useOrionplaceAppLoad();
|
|
250
|
-
async function afterSessionChanged() {
|
|
251
|
-
reset();
|
|
252
|
-
await refresh();
|
|
253
|
-
}
|
|
254
|
-
return <button type="button" onClick={() => void afterSessionChanged()}>Reload marketplace</button>;
|
|
255
|
-
}
|
|
256
|
-
\`\`\`
|
|
257
|
-
|
|
258
|
-
Call this after the session-changing API request has completed. Reset clears the
|
|
259
|
-
profile, initialization and discovery, aborts pending initialization and prevents
|
|
260
|
-
late responses restoring the old session. Refresh replaces the whole snapshot.
|
|
261
|
-
On failure, stale data and permissions remain cleared; the store exposes the error.
|
|
262
|
-
|
|
263
|
-
### Storefront pages
|
|
264
|
-
|
|
265
|
-
Navigation hides categories with \`exclude_from_tree: true\` and their descendants.
|
|
266
|
-
The full published tree remains available for product category lookup and breadcrumbs.
|
|
267
|
-
|
|
268
|
-
The maintained components and routes cover catalog and search, product details,
|
|
269
|
-
variants, journal, directories, contact, tariffs and the customer's account flows.
|
|
270
|
-
Public events and banner images come from Application Load. Page metadata follows
|
|
271
|
-
client navigation and the selected language.
|
|
272
|
-
|
|
273
|
-
A signed-in request that receives HTTP \`401\` removes private account values and
|
|
274
|
-
refreshes Application Load as a guest while retaining public data and selections.
|
|
275
|
-
The failed request is not repeated and no sign-in dialog opens automatically.
|
|
276
|
-
|
|
277
|
-
### Session and CSRF cookies
|
|
278
|
-
|
|
279
|
-
Session and CSRF cookies travel in HTTP headers, not in the initialization JSON.
|
|
280
|
-
Keep the signed HttpOnly \`sessionid\` opaque: the browser sends it automatically.
|
|
281
|
-
Never log, decode, rewrite or put cookie values in the store or localStorage.
|
|
282
|
-
Read the current \`csrftoken\` for each protected browser action and send it as
|
|
283
|
-
\`X-CSRFToken\` through the same-origin \`/api/\` gateway with credentials enabled.
|
|
284
|
-
Login can rotate the token. The Application Load loaders handle initialization; they are
|
|
285
|
-
not a general CSRF-aware client for other endpoints.
|
|
286
|
-
|
|
287
|
-
The server render forwards the incoming request's cookies and domain to the same
|
|
288
|
-
gateway, in process. React Server Components cannot write response cookies, so a
|
|
289
|
-
new backend cookie from that render is not relayed to the browser: the browser
|
|
290
|
-
establishes and updates its own session through \`/api/...\` requests. The raw
|
|
291
|
-
\`Set-Cookie\` headers are available as \`cookies\` from \`requestAppLoad()\` if you
|
|
292
|
-
relay them from your own route handler or server action. New response cookies
|
|
293
|
-
never update the current render's request. Never share a cookie jar across visitors.
|
|
294
|
-
|
|
295
|
-
Renew CSRF using \`POST /api/csrf_renew\` with \`{}\`, then re-read the cookie.
|
|
296
|
-
HTTP \`419\`, or HTTP \`403\` with \`page_data.csrf: false\`, means CSRF
|
|
297
|
-
rejection. A \`403\` without that flag can mean permissions or origin rejection.
|
|
298
|
-
The shared client renews the token for the next action and returns the failed
|
|
299
|
-
request; the customer retries explicitly. After confirmed login/logout, reset and refresh Application Load; these actions
|
|
300
|
-
change application data and do not log in/out or delete cookies.
|
|
301
|
-
|
|
302
|
-
[Cookie lifecycle and browser request example](https://orionmarket.place/en/sandbox/appload/react#session-cookies)
|
|
303
|
-
|
|
304
|
-
### Rendering, navigation and failures
|
|
305
|
-
|
|
306
|
-
Each server render gets its own request-scoped snapshot; the provider creates one
|
|
307
|
-
coordinated store scope per browser session and hydrates every store from that
|
|
308
|
-
snapshot, so hydration and client navigation do not repeat initialization.
|
|
309
|
-
Concurrent \`load\` calls share one request per scope.
|
|
310
|
-
|
|
311
|
-
Failures also survive hydration and navigation. They never open a login modal or
|
|
312
|
-
trigger an automatic retry on every route. The supplied shell shows
|
|
313
|
-
\`StorefrontErrorPage\` and keeps the header, route content and footer unmounted
|
|
314
|
-
until initialization succeeds. Retry reloads the page; an unknown address keeps
|
|
315
|
-
the 404 page. App Router pages cannot change their status once they stream, so
|
|
316
|
-
\`${base}proxy.ts\` starts Application Load for a full page load and hands it
|
|
317
|
-
to the render (still one request): when it fails, the error page is sent with
|
|
318
|
-
HTTP 503. A project that keeps its own \`proxy.ts\` sends it with HTTP 200 unless
|
|
319
|
-
it does the same. Feature components should check \`selectIsReady\` before using
|
|
320
|
-
required data.
|
|
321
|
-
|
|
322
|
-
Page responses use \`private, no-store\` through \`${base}proxy.ts\`. Do not put
|
|
323
|
-
personalized HTML in shared caches or persist the snapshot in localStorage. The
|
|
324
|
-
storefront does not render account keys or backend exception stacks.
|
|
325
|
-
|
|
326
|
-
Interfaces cover initialization, discovery/forms, profile and nested models.
|
|
327
|
-
Plugin-defined configuration uses JSON types; interfaces are not full runtime
|
|
328
|
-
validation of every nested field. Existing edited generated source is preserved;
|
|
329
|
-
review and merge newer templates manually where the CLI reports preserved files.
|
|
330
|
-
|
|
331
|
-
## Update the package and components
|
|
332
|
-
|
|
333
|
-
Run this from your project root whenever you want the latest release:
|
|
334
|
-
|
|
335
|
-
\`\`\`bash
|
|
336
|
-
npx orionplace-react update
|
|
337
|
-
\`\`\`
|
|
338
|
-
|
|
339
|
-
The command fetches the latest CLI, adds new template files, refreshes unchanged
|
|
340
|
-
generated source, updates the package dependency, and runs \`npm install\`.
|
|
341
|
-
It preserves edited files and lists them for manual review. Find their incoming
|
|
342
|
-
versions under \`node_modules/orionplace-react/templates\` or \`runtime\`.
|
|
343
|
-
Domain mappings, domain settings and \`.env\` are preserved. Upstream file removals
|
|
344
|
-
do not delete local source. Restart development or rebuild and redeploy afterward.
|
|
345
|
-
|
|
346
|
-
Use \`npx orionplace-react update --dry-run\` to review changes without modifying
|
|
347
|
-
project files or installed dependencies; downloading the CLI may update npm's
|
|
348
|
-
cache. The alias \`npm run orionplace:update\` performs the same normal update.
|
|
349
|
-
If installation fails after source generation, run \`npm install\` and retry.
|
|
350
|
-
|
|
351
|
-
## Deploy on your VPS
|
|
352
|
-
|
|
353
|
-
The quickest way: prepare the server with the OrionMarketplace server script,
|
|
354
|
-
then run \`sudo npx orionplace-react install\` in this folder. It builds the
|
|
355
|
-
project, runs it as a system service and connects your domains with nginx and
|
|
356
|
-
HTTPS. Steps: [Install a storefront](https://orionmarket.place/en/sandbox/install/storefront?framework=react).
|
|
357
|
-
Then manage it from this folder: \`npx orionplace-react status\`, \`sudo npx orionplace-react restart\`,
|
|
358
|
-
\`sudo npx orionplace-react stop\`, \`sudo npx orionplace-react start\` and \`sudo npx orionplace-react logs\`.
|
|
359
|
-
\`sudo npx orionplace-react uninstall\` (or \`cleanup\`) stops and removes the service; this folder stays.
|
|
360
|
-
|
|
361
|
-
To set the server up yourself instead:
|
|
362
|
-
|
|
363
|
-
This integration needs a Node.js server and its domain configuration files.
|
|
364
|
-
It does not support static export or edge-only hosting. Deploy the build,
|
|
365
|
-
dependencies, \`sitemaps\`, and your environment configuration together; use an
|
|
366
|
-
absolute \`SITEMAPS_DIR\` when running from another working directory.
|
|
367
|
-
|
|
368
|
-
\`\`\`bash
|
|
369
|
-
npm run build
|
|
370
|
-
HOSTNAME=127.0.0.1 PORT=3000 node --env-file=.env node_modules/next/dist/bin/next start
|
|
371
|
-
\`\`\`
|
|
372
|
-
|
|
373
|
-
The production process explicitly reads \`MIMIC_FRONT_DOMAIN\`. A public domain
|
|
374
|
-
still takes precedence. The Node port must stay private behind your HTTPS proxy.
|
|
375
|
-
|
|
376
|
-
Inside the storefront's HTTPS Nginx server block:
|
|
377
|
-
|
|
378
|
-
\`\`\`nginx
|
|
379
|
-
location / {
|
|
380
|
-
proxy_pass http://127.0.0.1:3000;
|
|
381
|
-
proxy_http_version 1.1;
|
|
382
|
-
proxy_set_header Host $host;
|
|
383
|
-
proxy_set_header X-Forwarded-Host $host;
|
|
384
|
-
proxy_set_header X-Front-Domain $host;
|
|
385
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
386
|
-
proxy_set_header X-Init-Ip $remote_addr;
|
|
387
|
-
proxy_buffering off;
|
|
388
|
-
}
|
|
389
|
-
\`\`\`
|
|
390
|
-
|
|
391
|
-
Here localhost is your frontend process on your VPS. That process selects the
|
|
392
|
-
remote personal API from the domain file. The proxy must overwrite those headers.
|
|
393
|
-
An unknown domain never falls back to another tenant. \`/robots.txt\` points
|
|
394
|
-
crawlers to \`/sitemap.xml\`, which lists the public pages, categories, products
|
|
395
|
-
on sale and journal publications in every storefront language (each publication
|
|
396
|
-
only in the languages it is written in). The sitemap is built from the backend
|
|
397
|
-
and kept for an hour in \`node_modules/.cache/orionplace/sitemaps/\`
|
|
398
|
-
(\`ORIONPLACE_CACHE_DIR\` moves it). After you publish or change content, rebuild
|
|
399
|
-
it at once from the project folder; the running storefront serves the new
|
|
400
|
-
sitemap without a restart:
|
|
401
|
-
|
|
402
|
-
\`\`\`bash
|
|
403
|
-
npm run orionplace:sitemap # every frontend domain
|
|
404
|
-
npx orionplace-react sitemap rebuild shop.example.com # one domain
|
|
405
|
-
npx orionplace-react sitemap status # when each was built
|
|
406
|
-
\`\`\`
|
|
407
|
-
|
|
408
|
-
To keep a demo or staging storefront's shop pages out of search engines, set
|
|
409
|
-
\`ORIONPLACE_NOINDEX_PATHS\` in \`.env\` to path prefixes separated by spaces,
|
|
410
|
-
for example \`ORIONPLACE_NOINDEX_PATHS="/catalog /category /product"\`. Those
|
|
411
|
-
pages answer with \`X-Robots-Tag: noindex, follow\` and the sitemap leaves them
|
|
412
|
-
out; the journal and other pages stay indexable. Leave it empty on a live shop.
|
|
413
|
-
|
|
414
|
-
Every product page carries schema.org product data for Google and Yandex: the
|
|
415
|
-
price, the crossed-out old price, stock, photos, brand, seller, rating and the
|
|
416
|
-
return terms the page shows. The return terms name the shop's shipping
|
|
417
|
-
countries, which Application Load sends in \`init.shipping_countries\`; without
|
|
418
|
-
a shipping country they are left out. The delivery cost is not included: it
|
|
419
|
-
depends on the buyer's address.
|
|
420
|
-
|
|
421
|
-
This setup does not add analytics.
|
|
422
|
-
|
|
423
|
-
## Android app
|
|
424
|
-
|
|
425
|
-
Deploy the website first, then build the app with Capacitor 8. With
|
|
426
|
-
\`ORIONPLACE_APP_ORIGIN\` set to your public storefront (HTTPS) the build is
|
|
427
|
-
client-only and sends every API request to that storefront through Capacitor's
|
|
428
|
-
native HTTP (\`lib/orionplace/nativeApp.ts\`). Without the variable the
|
|
429
|
-
website build is unchanged. Steps:
|
|
430
|
-
[Android app guide](https://orionmarket.place/en/sandbox/android-app?framework=react).
|
|
431
|
-
|
|
432
|
-
\`\`\`bash
|
|
433
|
-
ORIONPLACE_APP_ORIGIN=https://shop.example.com npx next build
|
|
434
|
-
npx cap sync android
|
|
435
|
-
\`\`\`
|
|
436
|
-
|
|
437
|
-
## More documentation
|
|
438
|
-
|
|
439
|
-
- [React package installation and domain setup](https://orionmarket.place/en/sandbox/new-project/react)
|
|
440
|
-
- [Application Load](https://orionmarket.place/en/sandbox)
|
|
441
|
-
`;
|
|
442
|
-
}
|
package/src/service.mjs
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
// Manages the storefront service that "install" set up: start, stop, restart,
|
|
2
|
-
// status, logs and the list of every storefront service on this server.
|
|
3
|
-
// The service is found by its folder (the project root) or by --name.
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
5
|
-
import { readFile, rm } from 'node:fs/promises';
|
|
6
|
-
import { join, resolve } from 'node:path';
|
|
7
|
-
import { defaultPaths, framework, homeStatus, readApps, runCommand, waitForHttp } from './install.mjs';
|
|
8
|
-
|
|
9
|
-
export const SERVICE_ACTIONS = ['start', 'stop', 'restart', 'status', 'logs', 'list', 'uninstall'];
|
|
10
|
-
// "cleanup" is another name for uninstall.
|
|
11
|
-
export const SERVICE_ALIASES = { cleanup: 'uninstall' };
|
|
12
|
-
|
|
13
|
-
async function frontends(dir) {
|
|
14
|
-
try { return JSON.parse(await readFile(join(dir, 'orionplace/settings.json'), 'utf8')).frontends || []; }
|
|
15
|
-
catch { return []; }
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// The registered storefront of this folder, or the one named with --name.
|
|
19
|
-
export async function findApp({ cwd = process.cwd(), name, paths = defaultPaths } = {}) {
|
|
20
|
-
const apps = await readApps(paths);
|
|
21
|
-
const root = resolve(cwd);
|
|
22
|
-
const app = name ? apps.find(item => item.NAME === name) : apps.find(item => item.DIR === root);
|
|
23
|
-
if (app) return app;
|
|
24
|
-
const known = apps.map(item => item.NAME).join(', ');
|
|
25
|
-
if (name) throw new Error(`No storefront service named ${name}.${known ? ` Installed: ${known}.` : ''}`);
|
|
26
|
-
throw new Error(`${root} is not installed as a service. Install it first: sudo npx orionplace-${framework.id} install`
|
|
27
|
-
+ (known ? `\nOr name another storefront: --name ${apps[0].NAME} (installed: ${known})` : ''));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// true / false; "unknown" when neither systemd nor OpenRC answers.
|
|
31
|
-
async function isRunning(service, { run, systemd }) {
|
|
32
|
-
const result = systemd
|
|
33
|
-
? await run('systemctl', ['is-active', '--quiet', service], { capture: true })
|
|
34
|
-
: await run('rc-service', [service, 'status'], { capture: true });
|
|
35
|
-
return result.code === 0;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async function isEnabled(service, { run, systemd }) {
|
|
39
|
-
const result = systemd
|
|
40
|
-
? await run('systemctl', ['is-enabled', '--quiet', service], { capture: true })
|
|
41
|
-
: await run('rc-update', ['show', 'default'], { capture: true });
|
|
42
|
-
return systemd ? result.code === 0 : new RegExp(`^\\s*${service}\\s`, 'm').test(result.output);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async function lastLogs(app, { run, systemd, paths, lines = 40 }) {
|
|
46
|
-
const result = systemd
|
|
47
|
-
? await run('journalctl', ['-u', app.SERVICE || `orionplace-${app.NAME}`, '-n', String(lines), '--no-pager'], { capture: true })
|
|
48
|
-
: await run('tail', ['-n', String(lines), join(paths.logs, `${app.NAME}.log`)], { capture: true });
|
|
49
|
-
return result.output;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// One storefront's state: service, autostart, and the home page as its first domain sees it.
|
|
53
|
-
export async function serviceStatus(app, { run = runCommand, systemd = existsSync('/run/systemd/system'), probe = homeStatus } = {}) {
|
|
54
|
-
const service = app.SERVICE || `orionplace-${app.NAME}`;
|
|
55
|
-
const domains = await frontends(app.DIR);
|
|
56
|
-
const running = await isRunning(service, { run, systemd });
|
|
57
|
-
const enabled = await isEnabled(service, { run, systemd });
|
|
58
|
-
const http = running ? await probe(Number(app.PORT), domains[0] || 'localhost') : 0;
|
|
59
|
-
return { name: app.NAME, service, framework: app.FRAMEWORK, dir: app.DIR, port: Number(app.PORT), running, enabled, http, domains };
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* controlService({ action, cwd, name, lines, follow }) runs one action and
|
|
64
|
-
* returns what happened; logs and follow print straight to the terminal.
|
|
65
|
-
*/
|
|
66
|
-
export async function controlService({
|
|
67
|
-
action, cwd = process.cwd(), name, lines = 100, follow = false,
|
|
68
|
-
paths = defaultPaths, run = runCommand, uid = process.getuid?.(),
|
|
69
|
-
systemd = existsSync('/run/systemd/system'), openrc = existsSync('/sbin/openrc-run'),
|
|
70
|
-
platform = process.platform, probe = homeStatus, wait = waitForHttp, dryRun = false,
|
|
71
|
-
} = {}) {
|
|
72
|
-
action = SERVICE_ALIASES[action] || action;
|
|
73
|
-
if (!SERVICE_ACTIONS.includes(action)) throw new Error(`Unknown service command ${action}. Use ${SERVICE_ACTIONS.join(', ')}.`);
|
|
74
|
-
if (platform !== 'linux') throw new Error(`${action} manages the Linux service that install set up. Run it on your server.`);
|
|
75
|
-
if (!systemd && !openrc) throw new Error('Neither systemd nor OpenRC was found on this server.');
|
|
76
|
-
|
|
77
|
-
if (action === 'list') {
|
|
78
|
-
const apps = await readApps(paths);
|
|
79
|
-
return { action, apps: await Promise.all(apps.map(app => serviceStatus(app, { run, systemd, probe }))) };
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const app = await findApp({ cwd, name, paths });
|
|
83
|
-
const service = app.SERVICE || `orionplace-${app.NAME}`;
|
|
84
|
-
if (action === 'status') return { action, ...await serviceStatus(app, { run, systemd, probe }) };
|
|
85
|
-
|
|
86
|
-
if (action === 'logs') {
|
|
87
|
-
const count = Number(lines);
|
|
88
|
-
if (!Number.isInteger(count) || count < 1) throw new Error('Give the number of log lines as a whole number, for example: logs 200');
|
|
89
|
-
const args = systemd
|
|
90
|
-
? ['journalctl', ['-u', service, '-n', String(count), '--no-pager', ...(follow ? ['--follow'] : [])]]
|
|
91
|
-
: ['tail', ['-n', String(count), ...(follow ? ['-F'] : []), join(paths.logs, `${app.NAME}.log`)]];
|
|
92
|
-
const result = await run(...args);
|
|
93
|
-
if (result.code) throw new Error(`${args[0]} could not read the logs of ${service}${uid !== 0 ? `; try: sudo npx orionplace-${framework.id} logs` : ''}.`);
|
|
94
|
-
return { action, name: app.NAME, service };
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (action === 'uninstall') return uninstallService(app, { paths, run, uid, systemd, name, dryRun });
|
|
98
|
-
if (uid !== 0) throw new Error(`${action} needs root: sudo npx orionplace-${framework.id} ${action}${name ? ` --name ${name}` : ''}`);
|
|
99
|
-
const result = systemd
|
|
100
|
-
? await run('systemctl', [action, service], { capture: true })
|
|
101
|
-
: await run('rc-service', [service, action], { capture: true });
|
|
102
|
-
if (result.code) throw new Error(`Could not ${action} ${service}:\n${result.output.trim()}`);
|
|
103
|
-
if (action === 'stop') return { action, name: app.NAME, service, running: false };
|
|
104
|
-
|
|
105
|
-
const domains = await frontends(app.DIR);
|
|
106
|
-
const http = await wait(Number(app.PORT), domains[0] || 'localhost', 90);
|
|
107
|
-
if (!http) {
|
|
108
|
-
throw new Error(`${service} did not answer on port ${app.PORT} within 90 seconds. Last log lines:\n${await lastLogs(app, { run, systemd, paths })}`);
|
|
109
|
-
}
|
|
110
|
-
return { action, name: app.NAME, service, port: Number(app.PORT), running: true, http, domains };
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Stops the service, removes it from autostart, deletes its unit or init
|
|
115
|
-
* script and its registration. The project folder and its build stay. With
|
|
116
|
-
* the orionplace server tool, "orionplace app remove" does it and also turns
|
|
117
|
-
* the storefront's domains into a placeholder page.
|
|
118
|
-
*/
|
|
119
|
-
async function uninstallService(app, { paths, run, uid, systemd, name, dryRun }) {
|
|
120
|
-
const service = app.SERVICE || `orionplace-${app.NAME}`;
|
|
121
|
-
const unitPath = systemd ? join(paths.systemd, `${service}.service`) : join(paths.openrc, service);
|
|
122
|
-
const confPath = join(paths.etc, 'apps', `${app.NAME}.conf`);
|
|
123
|
-
const tool = (paths.tool || []).find(path => existsSync(path));
|
|
124
|
-
const result = { action: 'uninstall', name: app.NAME, service, dir: app.DIR, domains: await frontends(app.DIR), tool: Boolean(tool), unitPath, confPath, dryRun };
|
|
125
|
-
if (dryRun) return result;
|
|
126
|
-
if (uid !== 0) throw new Error(`uninstall needs root: sudo npx orionplace-${framework.id} uninstall${name ? ` --name ${name}` : ''}`);
|
|
127
|
-
if (tool) {
|
|
128
|
-
const removed = await run(tool, ['app', 'remove', app.NAME, '--yes']);
|
|
129
|
-
if (removed.code) throw new Error(`orionplace app remove ${app.NAME} failed; see the messages above.`);
|
|
130
|
-
return result;
|
|
131
|
-
}
|
|
132
|
-
// A service that is already stopped or missing is fine: the goal is that it is gone.
|
|
133
|
-
if (systemd) await run('systemctl', ['disable', '--now', service], { capture: true });
|
|
134
|
-
else {
|
|
135
|
-
await run('rc-service', [service, 'stop'], { capture: true });
|
|
136
|
-
await run('rc-update', ['del', service, 'default'], { capture: true });
|
|
137
|
-
}
|
|
138
|
-
await rm(unitPath, { force: true });
|
|
139
|
-
if (systemd) await run('systemctl', ['daemon-reload'], { capture: true });
|
|
140
|
-
await rm(confPath, { force: true });
|
|
141
|
-
return result;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// The CLI output of controlService; returns the process exit code.
|
|
145
|
-
export function printService(result, log = console.log) {
|
|
146
|
-
const line = item => {
|
|
147
|
-
const state = item.running ? (item.http ? `running, home page HTTP ${item.http}` : 'running, home page does not answer') : 'stopped';
|
|
148
|
-
return `${item.name.padEnd(16)} ${String(item.framework || '').padEnd(7)} ${String(item.port).padEnd(6)} ${state}`;
|
|
149
|
-
};
|
|
150
|
-
if (result.action === 'list') {
|
|
151
|
-
if (!result.apps.length) {
|
|
152
|
-
log(`No storefront services on this server. Install one from its folder: sudo npx orionplace-${framework.id} install`);
|
|
153
|
-
return 0;
|
|
154
|
-
}
|
|
155
|
-
log(`${'NAME'.padEnd(16)} ${'TYPE'.padEnd(7)} ${'PORT'.padEnd(6)} STATE`);
|
|
156
|
-
for (const item of result.apps) log(line(item));
|
|
157
|
-
return 0;
|
|
158
|
-
}
|
|
159
|
-
if (result.action === 'status') {
|
|
160
|
-
log(`${result.service} (${result.framework || framework.id}) in ${result.dir}`);
|
|
161
|
-
log(` Service: ${result.running ? 'running' : 'stopped'}${result.enabled ? ', starts with the server' : ', does not start with the server'}`);
|
|
162
|
-
log(` Port: 127.0.0.1:${result.port}`);
|
|
163
|
-
log(` Home page: ${result.running ? (result.http ? `HTTP ${result.http}` : 'does not answer') : '-'}`);
|
|
164
|
-
for (const domain of result.domains) log(` Domain: https://${domain}`);
|
|
165
|
-
return result.running && result.http && result.http < 500 ? 0 : 3;
|
|
166
|
-
}
|
|
167
|
-
if (result.action === 'uninstall') {
|
|
168
|
-
if (result.dryRun) {
|
|
169
|
-
log(`Would stop and remove ${result.service}:`);
|
|
170
|
-
log(result.tool ? ` orionplace app remove ${result.name} --yes (also turns its domains into a placeholder)` : ` ${result.unitPath}\n ${result.confPath}`);
|
|
171
|
-
log(`The project stays in ${result.dir}.`);
|
|
172
|
-
return 0;
|
|
173
|
-
}
|
|
174
|
-
log(`Removed the service ${result.service}. The project and its build stay in ${result.dir}; delete the folder when you no longer need it.`);
|
|
175
|
-
if (!result.tool && result.domains.length) {
|
|
176
|
-
log(`nginx still sends ${result.domains.join(', ')} to the stopped service; remove those sites from your nginx configuration.`);
|
|
177
|
-
}
|
|
178
|
-
log(`Install it again with: sudo npx orionplace-${framework.id} install`);
|
|
179
|
-
return 0;
|
|
180
|
-
}
|
|
181
|
-
if (result.action === 'stop') log(`Stopped ${result.service}.`);
|
|
182
|
-
else if (result.action === 'start' || result.action === 'restart') {
|
|
183
|
-
log(`${result.action === 'start' ? 'Started' : 'Restarted'} ${result.service}: home page HTTP ${result.http} on 127.0.0.1:${result.port}.`);
|
|
184
|
-
}
|
|
185
|
-
return 0;
|
|
186
|
-
}
|